Skip to content

Merge debian latest into resolute - #82

Closed
Ekansh Gupta (ekanshibu) wants to merge 140 commits into
qcom/ubuntu/resolutefrom
merge-debian-latest-into-resolute1
Closed

Merge debian latest into resolute#82
Ekansh Gupta (ekanshibu) wants to merge 140 commits into
qcom/ubuntu/resolutefrom
merge-debian-latest-into-resolute1

Conversation

@ekanshibu

@ekanshibu Ekansh Gupta (ekanshibu) commented Aug 4, 2026

Copy link
Copy Markdown

Merge debian latest into resolute

quic-kdybcio and others added 30 commits December 2, 2025 11:55
Newer compiler versions include various improvements, ranging from
codegen and support for newer arch extensions to improved warning
messages, which help keep the code less buggy.

Discourage the use of the six year old GCC 7.5, in favor of using
whatever newest revision the user's distribution decides to ship.

Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Create systemd service files for DSP RPC daemons (aDSP, cDSP,
gDSP, sDSP) with device-conditional startup.

Each service uses After directives to ensure proper ordering with
corresponding device units (dev-fastrpc-*-device and
dev-fastrpc-*-secure.device),and ConditionPathExists directives to
conditionally start only when at least one of the device paths
exists (/dev/fastrpc-* or /dev/fastrpc-*-secure). Includes
automatic restart on failure with 5-second delay between attempts.
Services are enabled for multi-user.target.

Signed-off-by: Vinayak Katoch <vkatoch@qti.qualcomm.com>
Configure systemd unit directory through DISTCHECK_CONFIGURE_FLAGS
to avoid permission denied errors during distcheck.

Signed-off-by: Vinayak Katoch <vkatoch@qti.qualcomm.com>
Create systemd service files for DSP RPC daemons (aDSP, cDSP, gDSP,
sDSP) with device-conditional startup.

Each service uses After directives to ensure proper ordering with
corresponding device units (dev-fastrpc-\*-device and
dev-fastrpc-\*-secure.device),and ConditionPathExists directives to
conditionally start only when at least one of the device paths exists
(/dev/fastrpc-\* or /dev/fastrpc-\*-secure). Includes automatic restart
on failure with 5-second delay between attempts. Services are enabled
for multi-user.target.

Fixes: #245
Add generated gdsprpcd file to .gitignore.

Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
- Updated `runs-on` to use self-hosted runner group: `GHA-fastrpc-Prd-SelfHosted-RG`
- Use AWS runners to support uploading artifacts to the configured S3 location

Signed-off-by: Tharun Kumar Merugu <mtharu@qti.qualcomm.com>
Add generated gdsprpcd file to .gitignore.
To streamline the bug reporting process, ask some questions upfront.

Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
To streamline the bug reporting process, ask some questions upfront.
**Summary**
- Updated runs-on to use the self-hosted runner group:
GHA-fastrpc-Prd-SelfHosted-RG
- Configured AWS runners to support uploading artifacts to the
designated S3 location.


**Why This Change?**
- Track changes and results generated from the repository
- Maintain backward compatibility at the repo level
- Display these details in the
[Armor](https://armor.qualcomm.com/public-overview/public_headers)
dashboard for better visibility

**Impact**
- Ensures seamless artifact uploads to S3 using AWS runners.
- Enhances observability and traceability for CI/CD workflows.
- No breaking changes introduced; backward compatibility is preserved.

CRs-Fixed: 4400385
Clean up unused PM QoS implementation.
PM QoS is not supported by fastrpc driver, so related code is removed.

Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
Add a systemd unit file for the audiopd RPC daemon, allowing the
aDSP to load modules dynamically as needed.
This supports features such as runtime loading of decoder modules
for compress‑offload audio playback.

Signed-off-by: Sairamreddy Bojja <sbojja@qti.qualcomm.com>
Add a systemd service to manage the audiopd RPC daemon to support
dynamic module loading on the aDSP.
This PR addresses issue #225 by removing unused PM QoS code.

Changes include:

- Removal of PM_Qos-related fastrpc code
- Cleanup of associated headers and macros
- Verified that no active components depend on the removed code
- This cleanup improves maintainability and aligns with the current
usage patterns of fastRPC

Fixes #225.
Poll job state via lavacli inside Docker
Handle cancelled/incomplete states and enforce 2‑hour timeout
On completion, fetch results and determine pass/fail
Update GitHub summary with job status, job ID, and URL
Prevent incorrect reporting when jobs fail early or never finish

Signed-off-by: Tharun Kumar Merugu <mtharu@qti.qualcomm.com>
Standard glibc does not provide BSD-specific string functions like
strlcpy and strlcat, which are needed for safe string operations.
Android includes these functions natively, but Linux GNU builds
require an external library to provide them.

Add dependency on libbsd-overlay for non-Android targets to provide
the missing BSD functions. Configure the build system to detect and
link against libbsd when building for Linux GNU platforms.

Signed-off-by: Vinayak Katoch <vkatoch@qti.qualcomm.com>
Add libbsd-dev:arm64 to ARM64 workflows (build_linux_arm64.yml,
codeql.yml, abi-compat.yml) and ensure libbsd-dev is in
build_linux_gnu.yml to resolve configure errors during compilation.

Signed-off-by: Vinayak Katoch <vkatoch@qti.qualcomm.com>
Check for libbsd on non-Android targets and export BSD_CFLAGS and
BSD_LIBS. Include BSD flags in CFLAGS and link BSD libs alongside YAML
libs.

Add libbsd-dev:arm64 to ARM64 workflows and ensure libbsd-dev is in
build_linux_gnu.yml.

## Technical Details

@BSD_CFLAGS@ adds the BSD include path (e.g., `-isystem
/usr/include/bsd`). With libbsd-overlay, when `<string.h>` is included,
the BSD header chain is pulled in indirectly through the overlay
mechanism.

As a result, the compiler sees the strlcpy/strlcat prototypes and no
longer warns about implicit declarations, without requiring an explicit
`#include <bsd/string.h>`.

## Changes

- **configure.ac**: Added PKG_CHECK_MODULES for libbsd-overlay on
non-Android builds
- **src/Makefile.am**: Added @BSD_CFLAGS@ to LIBDSPRPC_CFLAGS and
@BSD_LIBS@ to library link flags
- **Workflows**: Updated CI workflows to install libbsd-dev package for
Linux builds

Fixes: #265
Document required dependencies (libyaml, libmd, libbsd) for
cross-compiling FastRPC on Ubuntu. Include step-by-step build
instructions with proper cross-compilation configuration for
aarch64-linux-gnu target to resolve dependency missing failures
during the build process.

Signed-off-by: Vinayak Katoch <vkatoch@qti.qualcomm.com>
Some may send the RPC_PM_QOS control-domain command. The current
driver does not support PM QoS operations, so return a false
success to preserve compatibility and avoid triggering unexpected
failures.

Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
- Introduces GitHub Actions workflow to build the Linux kernel using the
  FastRPC Docker image
- Runs weekly every Sunday at midnight UTC
- Builds kernel from qcom-next branch of qualcomm-linux/kernel
- Uploads compressed artifacts for debugging and validation

Signed-off-by: Tharun Kumar Merugu <mtharu@qti.qualcomm.com>
This workflow is an adapted copy of this workflow :
https://github.com/qualcomm-linux/pkg-template/blob/main/.github/workflows/to_paste_in_upstream/pkg-build-pr-check.yml

With this workflow in position, a PR in the upstream project repo (this
one) triggers a build or the sister package repo. The special repo
variable PKG_REPO_GITHUB_NAME will need to be set.

See visit https://github.com/qualcomm-linux/pkg-template for more info
about this whole CI workflow

Signed-off-by: Simon Beaudoin <sbeaudoi@qti.qualcomm.com>
This workflow is an adapted copy of this workflow :
https://github.com/qualcomm-linux/pkg-template/blob/main/.github/workflows/to_paste_in_upstream/pkg-build-pr-check.yml

With this workflow in position, a PR in the upstream project repo (this
one) triggers a build or the sister package repo (in this case, it will
be https://github.com/qualcomm-linux/pkg-fastrpc). The special repo
variable PKG_REPO_GITHUB_NAME will need to be set to
"qualcomm-linux/pkg-fastrpc" in this repo for this to work.

See visit https://github.com/qualcomm-linux/pkg-template for more info
about this whole CI workflow.

When a PR is open in this repo, this workflow will in turn call this one
:

https://github.com/qualcomm-linux/qcom-build-utils/blob/main/.github/workflows/qcom-upstream-pr-pkg-build-reusable-workflow.yml
What it will do is try to compile the debian package from the
"qualcomm-linux/pkg-fastrpc" but with the changes from the PR opened on
this side added in order to test that the debian package will still
build if this PR were to be merged.

Ultimately, there will be even more tests downstream from that, like
integration tests in a whole distro.
Some may send the RPC_PM_QOS control-domain command. The current driver
does not support PM QoS operations, so return a false success to
preserve compatibility and avoid triggering unexpected failures.
This change updates the workflow to:

- Check LAVA job status using lavacli inside the Docker container
- Handle additional states such as Cancelled, Incomplete, or timeout (>2
hours)
- Wait until the job reaches Finished before proceeding
- Fetch test results on completion and set pass/fail summary in GitHub
Actions
- Update the step summary with job ID, URL, and final status

This improves reliability of LAVA-triggered test pipelines and prevents
workflows from hanging or reporting incorrect results.
## Summary
This PR adds a new GitHub Actions workflow that performs a weekly kernel
build using the FastRPC Docker image. The workflow automatically builds
the Linux kernel from the `qcom-next` branch of the
`qualcomm-linux/kernel` repository and uploads the generated artifacts.

## Key Features
- Weekly scheduled run (`cron: 0 0 * * 0`)
- Builds kernel using custom FastRPC Docker environment
- Zips and uploads all build artifacts for downstream testing
- Ensures automated, consistent kernel snapshots for validation

## Verification
The workflow has been successfully tested and verified in the staging
environment. You can review the successful run here:

🔗 **Staging Run:**  
https://github.com/qualcomm-linux-stg/fastrpc/actions/runs/21269727139

## Why This Change?
- Provides regular kernel builds aligned with upstream changes
- Enables automated testing and faster detection of regressions
- Ensures stable and reproducible artifact availability for the team

## Notes
- Workflow triggers automatically every Sunday at midnight UTC
- No changes to existing workflows or build logic outside this addition
-This change adds support for a precompiled kernel
 image by implementing a nightly kernel build workflow
 that compiles the kernel once and uploads the resulting
 artifacts to S3. PR workflows are updated to download
 these nightly artifacts when generating the ramdisk,
 removing the need to rebuild the kernel within every PR.
-This eliminates repeated kernel rebuilds across PRs,
 significantly reducing CI time, compute usage, and
 kernel‑related failure noise.

Signed-off-by: Tharun Kumar Merugu <mtharu@qti.qualcomm.com>
Document required dependencies (libyaml, libmd, libbsd) for
cross-compiling FastRPC on Ubuntu. Include step-by-step build
instructions with proper cross-compilation configuration for
aarch64-linux-gnu target to resolve dependency missing failures during
the build process.

Fixes: #274
Autotools expects library dependencies to be specified via *_LIBADD,
not LDFLAGS. Placing -ldl -lm and $(USE_LOG) in *_LIBADD ensures
libtool orders them after objects and before dependent libs, and
prevents it from treating dependent libs as linker flags.

This fixes a non-Android link failure on aarch64 where libtool tried
to load a .la for BSD and errored with:
  libtool:   error: '/usr/aarch64-linux-gnu/lib/libbsd.la' is not a
  valid libtool archive

By moving these flags into lib{adsp,cdsp,sdsp,gdsp}rpc_la_LIBADD and
keeping LDFLAGS limited to versioning, the link completes cleanly
across targets.

Signed-off-by: Abhinav Parihar <parihar@qti.qualcomm.com>
Loïc Minier (lool) and others added 27 commits May 7, 2026 13:56
Remove unused 'pn' and 'pnn' variables that were declared but never
used in the remote_munmap64 function as part of f68b30a; fixes build
warning.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Various build warning fixes, and improvements to CI builds flags.
- **Fix format string warnings for 64-bit integer types**
- **Fix const qualifier warnings from fopen_from_dirlist**
- **Fix -Wrestrict warnings due to overlapping buffers**
- **Fix -Wint-in-bool-context warnings in _ALLOCATE**
- **Fix unused label warnings in dsprpcd daemons**
- **Fix GDSP library build configuration**
- **Fix unused result warnings for trace marker writes**
- **Add and use --enable-stricter configure flag**
- **Remove unused userspace allocation check**

Fixes: #329
systemd derives unit names from device paths by replacing each '/'
with '-' and escaping any literal '-' in the path as '\x2d'. So for
/dev/fastrpc-* nodes the correct device unit name for e.g.
/dev/fastrpc-adsp is dev-fastrpc\x2dadsp.device, not
dev-fastrpc-adsp.device (which would refer to /dev/fastrpc/adsp).

Fix all seven service files accordingly. Without this the After=
ordering constraints were silently ignored.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Set up udev rules to enable FastRPC access through the fastrpc
group. Non-secure device nodes use root:fastrpc ownership and
0660 permissions to allow daemon and client access without root.

Leave secure device nodes unchanged to preserve default
ownership and permissions. Changes to secure node handling
will be addressed separately.

Set SYSTEMD_WANTS for device-triggered daemon start and add
audiopd service trigger for ADSP devices.

Add configure support for installing udev rules and sysusers
configuration to create the fastrpc group. Document user/group
requirements in README.md.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
Services are automatically started when device nodes appear, so
attempting to starting services again on multi-user.target will not
do anything since these depend on the device nodes being present and
either won't start or would have already started.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Use PKG_CHECK_VAR to query systemd.pc for the installation directory
for systemd system unit files.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
The *rpcd daemons are system services that should be started with
the fastrpc group by udev/systemd, not user commands. Move them to
sbin following standard FHS conventions.

Fix the hardcoding of these pathnames in service files to be
properly generated by generating them dynamically.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Converge systemd services from Debian packaging with upstream ones with
fastrpc user/group.
- **files: fix device unit names in After= dependencies**
- **files: run daemons as dedicated fastrpc user**
- **files: add udev rules and fastrpc user/group**
Signed-off-by: GitHub Service Bot <githubservice@qti.qualcomm.com>
Replace stale debian/latest pkg-pr-hook.yml with the current

version from qcom/debian/latest.

Signed-off-by: Simon Beaudoin <sbeaudoi@qti.qualcomm.com>
This commit pulls in upstream changes from 'v1.0.6' into the
Debian packaging branch.

Since upstream project might have content of their own in their .github/
folder (because they have CI stuff on their side), it's important to NOT
pick up .github/ folder from upstream, and only leave the .github/
folder from debian packaging branch.

The same applies to debian/ folder if upstream has one (which is rare
but possible).

This commit was generated automatically by
qcom-build-utils/scripts/merge_debian_packaging_upstream.

Signed-off-by: GitHub Service Bot <githubservice@qti.qualcomm.com>
Signed-off-by: GitHub Service Bot <githubservice@qti.qualcomm.com>
Add libbsd-dev to Build-Depends for libbsd-overlay
pkg-config checks introduced in upstream 1.0.6.

Signed-off-by: Simon Beaudoin <sbeaudoi@qti.qualcomm.com>
Debusine build failed at dh_install because fastrpc-support.install

expected adsprpcd/cdsprpcd/sdsprpcd under usr/bin while upstream

installs them as sbin_PROGRAMS (usr/sbin).

Update fastrpc-support.install to reference usr/sbin for those daemons

and align debian/not-installed for gdsprpcd to usr/sbin as well.

Signed-off-by: Simon Beaudoin <sbeaudoi@qti.qualcomm.com>
fastrpc 1.0.6 now installs systemd, udev, and sysusers files from
files/ into debian/tmp.

This branch still uses Debian-maintained integration files, so the
new autogenerated paths were unclaimed and dh_missing aborted the
package build in PR validation.

Add those generated paths to debian/not-installed so dh_missing
treats the omission as intentional while preserving current
service behavior.

Signed-off-by: Simon Beaudoin <sbeaudoi@qti.qualcomm.com>
Remove the Debian-specific adsprpcd.service and cdsprpcd.service
files and install the service units directly from the upstream
source tree.

Also drop the Debian-maintained fastrpc-support.postinst and
fastrpc-support.udev files. User and group creation is now handled
by the upstream sysusers.d configuration, and device node
permissions are provided by the upstream udev rules, so the local
maintainer script and udev rule are no longer required.

This installs the complete set of DSP service units, udev rules,
and sysusers configuration provided by upstream, ensuring the
Debian package remains aligned with the source project and reduces
duplicate maintenance.

Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
Import the Debusine CI workflow set from the reference location at
qualcomm-linux/debusine-action to enable Debusine-based packaging CI.

- debusine-pr-hook.yml: creates a pending "Debusine CI" commit status on
  pull requests targeting the qli/debian/**, qli-staging/debian/** and
  qcom/debian/** packaging branches.
- debusine-release.yml: provides a manually dispatched workflow that runs
  the shared debusine.yml reference workflow, with an optional release
  step, for the enabled packaging branches.
- README.debusine.md: documents that these debusine-*.yml files are
  imported copies and must not be modified except to sync updates from
  the reference location.

Note: these workflow files must also be copied into each packaging
branch in order to function as intended.

Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
This reverts bogus parts of commit
7f17723 and keeps the libbsd-dev
addition and changelog update. libbsd-dev is sorted properly in
build-deps.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Consolidate "new upstream release" work under a cleaner single
changelog entry.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Add systemd-dev build-dep to allow upstream configure to detect the
target udev and systemd directories to install systemd unit files
and udev rules to.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Wrap Build-Depends in control to have better diffs and respect
target terminal width.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Add myself to Uploaders, avoids triggering NMU warnings etc.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Make sure to mention the addition of the gdsprpcd service as part of
the changes that went with the new upstream release.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Add explicit list of new services that get installed with the new
upstream release.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
Update changelog for 1.0.6-1 release.

Signed-off-by: Loïc Minier <loic.minier@oss.qualcomm.com>
…resolute

Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.