awalsh128 / cache-apt-pkgs-action Goto Github PK
View Code? Open in Web Editor NEWCache APT packages in GitHub Actions
License: Other
Cache APT packages in GitHub Actions
License: Other
In PR #11 it was mentioned by @jroddev that they were having trouble with g++ dependencies.
This fixed the "Package 'g++-11' not found." error in the cache action. However caching the newer g++ has proven difficult with all of its dependencies and I haven't been able to get it to work on the 2nd run.
@jroddev could you provide more details of the problem or perhaps the error scenario?
Currently the description is in a single long line. It can be formatted better and with newlines if block scalar folding style is used.
description: >
foo
bar baz
Currently, the action leads to the following (harmless) error message:
/home/runner/work/_actions/awalsh128/cache-apt-pkgs-action/v1/pre_cache_action.sh: line 6: validate_bool: command not found
Perhaps, validate_bool "${debug}" debug 1
in pre_cache_action
:
cache-apt-pkgs-action/pre_cache_action.sh
Lines 3 to 11 in 982de21
lib.sh
has been included.I tried to use this action to cache LaTeX packages:
- uses: awalsh128/[email protected]
with:
packages: texlive-latex-base # and other LaTeX packages
version: 1.0
An example repository is here. Storing cache (~61M) seems to work (log), but in the next commit, restoring the cache causes the subsequent step to fail (log):
Run pdflatex test.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex)
restricted \write18 enabled.
kpathsea: Running mktexfmt pdflatex.fmt
mktexfmt: mktexfmt is using the following fmtutil.cnf files (in precedence order):
mktexfmt: mktexfmt is using the following fmtutil.cnf file for writing changes:
mktexfmt: /home/runner/.texlive2019/texmf-config/web2c/fmtutil.cnf
mktexfmt [INFO]: writing formats under /home/runner/.texlive2019/texmf-var/web2c
mktexfmt [INFO]: did not find entry for byfmt=pdflatex, skipped
mktexfmt [INFO]: total formats: 0
mktexfmt [INFO]: exiting with status 0
I can't find the format file `pdflatex.fmt'!
Error: Process completed with exit code 1.
which sounds like some post-install processes might be omitted or performed in an incompatible way.
We tried this action to improve our apt install performance in our workflows and once cached it was often actually slower than just performing the apt-get install
.
I did a bit of digging and the main delay was "Verifying packages" process which is taking about 0.7s per package listed.
Testing locally apt-cache show ${package}
is ~40ms where as on github is ~700ms.
Given this and the current flow we could be spending ~1.4s per package just calling apt-cache show
.
pyvista/pyvista#3964 has failed since the release of v1.2.4
The logs aren't clear. Do you have any suggestions?
I've even updated the cache version, but the issue persists:
- uses: awalsh128/[email protected]
with:
packages: libosmesa6-dev libgl1-mesa-dev python3-tk pandoc git-restore-mtime
version: 3.1
Full GitHub action log:
2023-02-23T04:04:22.4117825Z Cache not found for input keys: cache-apt-pkgs_19984b10668ecdf6d9ff65268c47d6f4
2023-02-23T04:04:22.4196895Z ##[group]Run ${GITHUB_ACTION_PATH}/post_cache_action.sh \
2023-02-23T04:04:22.4197246Z �[36;1m${GITHUB_ACTION_PATH}/post_cache_action.sh \�[0m
2023-02-23T04:04:22.4197514Z �[36;1m ~/cache-apt-pkgs \�[0m
2023-02-23T04:04:22.4197724Z �[36;1m / \�[0m
2023-02-23T04:04:22.4197928Z �[36;1m "$CACHE_HIT" \�[0m
2023-02-23T04:04:22.4198147Z �[36;1m "$EXEC_INSTALL_SCRIPTS" \�[0m
2023-02-23T04:04:22.4198368Z �[36;1m "$DEBUG" \�[0m
2023-02-23T04:04:22.4198569Z �[36;1m "$PACKAGES"�[0m
2023-02-23T04:04:22.4198902Z �[36;1mfunction create_list { local list=$(cat ~/cache-apt-pkgs/manifest_${1}.log | tr '\n' ','); echo ${list:0:-1}; };�[0m
2023-02-23T04:04:22.4199312Z �[36;1mecho "package-version-list=$(create_list main)" >> $GITHUB_OUTPUT�[0m
2023-02-23T04:04:22.4199687Z �[36;1mecho "all-package-version-list=$(create_list all)" >> $GITHUB_OUTPUT�[0m
2023-02-23T04:04:22.4251852Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2023-02-23T04:04:22.4252117Z env:
2023-02-23T04:04:22.4252307Z USE_CACHE: true
2023-02-23T04:04:22.4252519Z PYVISTA_OFF_SCREEN: True
2023-02-23T04:04:22.4252732Z ALLOW_PLOTTING: true
2023-02-23T04:04:22.4252958Z SHELLOPTS: errexit:pipefail
2023-02-23T04:04:22.4253244Z pythonLocation: /opt/hostedtoolcache/Python/3.11.2/x64
2023-02-23T04:04:22.4253581Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.2/x64/lib/pkgconfig
2023-02-23T04:04:22.4253914Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.2/x64
2023-02-23T04:04:22.4254221Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.2/x64
2023-02-23T04:04:22.4254512Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.2/x64
2023-02-23T04:04:22.4254812Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.2/x64/lib
2023-02-23T04:04:22.4255101Z CACHE_KEY: 19984b10668ecdf6d9ff65268c47d6f4
2023-02-23T04:04:22.4255332Z CACHE_HIT:
2023-02-23T04:04:22.4255537Z EXEC_INSTALL_SCRIPTS: false
2023-02-23T04:04:22.4255737Z DEBUG: false
2023-02-23T04:04:22.4256031Z PACKAGES: libosmesa6-dev libgl1-mesa-dev python3-tk pandoc git-restore-mtime
2023-02-23T04:04:22.4256331Z ##[endgroup]
2023-02-23T04:04:22.4533360Z 04:04:22 Clean installing and caching 5 package(s).
2023-02-23T04:04:22.4533890Z
2023-02-23T04:04:22.4548222Z 04:04:22 Package list:
2023-02-23T04:04:23.3899420Z 04:04:23 - git-restore-mtime:2019.11-1
2023-02-23T04:04:24.3396939Z 04:04:24 - libgl1-mesa-dev:21.2.6-0ubuntu0.1~20.04.2
2023-02-23T04:04:25.2882823Z 04:04:25 - libosmesa6-dev:21.2.6-0ubuntu0.1~20.04.2
2023-02-23T04:04:26.2314942Z 04:04:26 - pandoc:2.5-3build2
2023-02-23T04:04:27.1877056Z 04:04:27 - python3-tk:3.8.10-0ubuntu1~20.04
2023-02-23T04:04:27.1893390Z 04:04:27 Writing main packages manifest to /home/runner/cache-apt-pkgs/manifest_main.log...
2023-02-23T04:04:27.1926396Z 04:04:27 done
2023-02-23T04:04:27.1926753Z
2023-02-23T04:04:27.1938873Z 04:04:27 Installing apt-fast for optimized installs...
2023-02-23T04:04:27.4080136Z --2023-02-23 04:04:27-- https://raw.githubusercontent.com/ilikenwf/apt-fast/master/apt-fast
2023-02-23T04:04:27.4100122Z Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...
2023-02-23T04:04:27.4154282Z Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.
2023-02-23T04:04:27.4340820Z HTTP request sent, awaiting response... 200 OK
2023-02-23T04:04:27.4341357Z Length: 22293 (22K) [text/plain]
2023-02-23T04:04:27.4342593Z Saving to: ‘/usr/local/sbin/apt-fast’
2023-02-23T04:04:27.4342979Z
2023-02-23T04:04:27.4346610Z 0K .......... .......... . 100% 49.2M=0s
2023-02-23T04:04:27.4346948Z
2023-02-23T04:04:27.4389612Z 2023-02-23 04:04:27 (49.2 MB/s) - ‘/usr/local/sbin/apt-fast’ saved [22293/22293]
2023-02-23T04:04:27.4389934Z 04:04:27 done
2023-02-23T04:04:27.4390060Z
2023-02-23T04:04:27.4411022Z 04:04:27 Updating APT package list...
2023-02-23T04:04:27.4441533Z
2023-02-23T04:04:35.6507190Z 04:04:35 done
2023-02-23T04:04:35.6507682Z
2023-02-23T04:04:35.6520948Z 04:04:35 Clean installing 5 packages...
2023-02-23T04:04:45.5248044Z 04:04:45 done
2023-02-23T04:04:45.5261864Z 04:04:45 Installation log written to /home/runner/cache-apt-pkgs/install.log
2023-02-23T04:04:45.5262307Z
2023-02-23T04:04:45.5328500Z 04:04:45 Installed package list:
2023-02-23T04:04:45.5340817Z 04:04:45 - tk8.6-blt2.5:2.5.3+dfsg-4
2023-02-23T04:04:45.5351883Z 04:04:45 - blt:2.5.3+dfsg-4
2023-02-23T04:04:45.5367027Z 04:04:45 - git-restore-mtime:2019.11-1
2023-02-23T04:04:45.5378464Z 04:04:45 - libegl-mesa0:21.2.6-0ubuntu0.1~20.04.2
2023-02-23T04:04:45.5392348Z 04:04:45 - libegl1:1.3.2-1~ubuntu0.20.04.2
2023-02-23T04:04:45.5406398Z 04:04:45 - libglx-dev:1.3.2-1~ubuntu0.20.04.2
2023-02-23T04:04:45.5419414Z 04:04:45 - libgl-dev:1.3.2-1~ubuntu0.20.04.2
2023-02-23T04:04:45.5431678Z 04:04:45 - libegl-dev:1.3.2-1~ubuntu0.20.04.2
2023-02-23T04:04:45.5444330Z 04:04:45 - libgles1:1.3.2-1~ubuntu0.20.04.2
2023-02-23T04:04:45.5456563Z 04:04:45 - libgles2:1.3.2-1~ubuntu0.20.04.2
2023-02-23T04:04:45.5468997Z 04:04:45 - libgles-dev:1.3.2-1~ubuntu0.20.04.2
2023-02-23T04:04:45.5481713Z 04:04:45 - libopengl0:1.3.2-1~ubuntu0.20.04.2
2023-02-23T04:04:45.5493905Z 04:04:45 - libopengl-dev:1.3.2-1~ubuntu0.20.04.2
2023-02-23T04:04:45.5506185Z 04:04:45 - pandoc-data:2.5-3build2
2023-02-23T04:04:45.5518513Z 04:04:45 - pandoc:2.5-3build2
2023-02-23T04:04:45.5530823Z 04:04:45 - python3-tk:3.8.10-0ubuntu1~20.04
2023-02-23T04:04:45.5543220Z 04:04:45 - libglvnd-dev:1.3.2-1~ubuntu0.20.04.2
2023-02-23T04:04:45.5555537Z 04:04:45 - libgl1-mesa-dev:21.2.6-0ubuntu0.1~20.04.2
2023-02-23T04:04:45.5567793Z 04:04:45 - libosmesa6:21.2.6-0ubuntu0.1~20.04.2
2023-02-23T04:04:45.5582539Z 04:04:45 - libosmesa6-dev:21.2.6-0ubuntu0.1~20.04.2
2023-02-23T04:04:45.5582733Z
2023-02-23T04:04:45.5613468Z 04:04:45 Caching 20 installed packages...
2023-02-23T04:04:45.5635013Z 04:04:45 * Caching tk8.6-blt2.5 to /home/runner/cache-apt-pkgs/tk8.6-blt2.5:2.5.3+dfsg-4.tar...
2023-02-23T04:04:45.6221798Z ##[error]Process completed with exit code 1.
I try to install mplayer
, but I got an error:
E: No packages found
10:58:36 * Caching libgbm-dev[22.0.1-1ubuntu2.1] to /home/runner/cache-apt-pkgs/libgbm-dev[22.0.1-1ubuntu2.1].tar.gz...
dpkg-query: error: --listfiles needs a valid package name but 'libgbm-dev[22.0.1-1ubuntu2.1]' is not: illegal package name in specifier 'libgbm-dev[22.0.1-1ubuntu2.1]': character '[' not allowed (only letters, digits and characters '-+._')
cache-apt-pkgs-action
try to compress the package, but it is not possible, because the filename is not valid.
Other improvement what I suggest is use zstd compression. It is much faster and supported in hosted runners.:
actions/runner-images#89
You can use with: tar -caf package.tar.zst package-directory
Package validation is currently done by using apt-cache show ${package}
. However, on the latest version of the GitHub actions runner for Ubuntu, some packages (e.g., libtk8.6
) are not visible to apt-cache
until after an apt-get update
.
This means that cache-apt-pkgs-action
errors our during validation even though the package would successfully install after an apt-fast update
.
Minimal reproducible example:
jobs:
example-broken-job:
name: example-broken-job
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
# Fetch the current and previous commits.
fetch-depth: 2
submodules: 'recursive'
- name: Install apt dependencies for Bazel bootstrapping
uses: awalsh128/cache-apt-pkgs-action@v1
with:
packages: libtk8.6
version: 1.0
To reproduce the issue directly in a runner:
$ docker attach $(docker run --name github-actions-ubuntu-2 -d -i -t catthehacker/ubuntu:act-latest /bin/bash)
root@e6d223c9b85a:/tmp# apt-cache show libtk8.6
N: Unable to locate package libtk8.6
N: Couldn't find any package by glob 'libtk8.6'
N: Couldn't find any package by regex 'libtk8.6'
E: No packages found
root@e6d223c9b85a:/tmp# apt-get install libtk8.6
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package libtk8.6
E: Couldn't find any package by glob 'libtk8.6'
E: Couldn't find any package by regex 'libtk8.6'
root@e6d223c9b85a:/tmp# apt-get update
<SNIP>
root@e6d223c9b85a:/tmp# apt-cache show libtk8.6
Package: libtk8.6
Architecture: amd64
Version: 8.6.12-1build1
Multi-Arch: same
Priority: optional
Section: libs
Source: tk8.6
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian Tcl/Tk Packagers <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 2367
Provides: libtk
Depends: libtcl8.6 (>= 8.6.0-2), libc6 (>= 2.35), libfontconfig1 (>= 2.12.6), libx11-6, libxft2 (>> 2.1.1), libxss1
Suggests: tk8.6
Conflicts: libtk-img (<< 1.2.5), tk40 (<= 4.0p3-2), tk8.6 (<< 8.6.0-2)
Replaces: tk8.6 (<< 8.6.0-2)
Filename: pool/main/t/tk8.6/libtk8.6_8.6.12-1build1_amd64.deb
Size: 783834
MD5sum: 0b77eaf674cddbcf4be3ae5daf33a5da
SHA1: e915a51f975e2c9f9f06105500dd346f939edc73
SHA256: fd394fe34bce405d66079518f122917e434dc269315ed4125dc982d31a03684d
SHA512: ab375b502a641ee170f940fd8775aa0fc1033f5c499886bcc8d9fb06b3bf5da2cd53cc8de6b96abec898215b8de70ec741c2bfad3ae9af4a94d4647988efc064
Homepage: http://www.tcl.tk/
Description: Tk toolkit for Tcl and X11 v8.6 - run-time files
Description-md5: 01d90661559e5ce16fbf055f91aff291
Task: ubuntustudio-desktop
As mentioned in another issue, installs can be drastically sped up using apt-fast
. It would be nice to introduce some of these efficiencies into the action as well.
My problem is quite simple actually when I used this method to cache the package vault
. it was compressed into this file vault:1.12.2-1.tar.gz
so when this method tries to fetch all the compressed packages it won't find it since the search command is cached_pkg_filepaths=$(ls -1 "${cache_dir}"/*.tar | sort)
Hi. In https://github.com/yandex/ch-tools we use your action. The issue follows:
uses: awalsh128/[email protected]
with:
packages: "python3-venv debhelper devscripts"
version: 1
execute_install_scripts: true
Tried using "latest" without "version" and "execute_", same situation.
4. In logs I see
2023-07-14T22:31:09.1226091Z 22:31:09 - debhelper=12.10ubuntu1.tar
2023-07-14T22:31:09.5310273Z 22:31:09 Reading from main requested packages manifest...
2023-07-14T22:31:09.5362700Z 22:31:09 - debhelper=13.6ubuntu1~bpo20.04.1
2023-07-14T22:31:09.5831281Z 22:31:09 - debhelper=12.10ubuntu1.tar restoring...
2023-07-14T22:31:09.6188311Z 22:31:09 done
So target package is restored but isn't available.
Issue can be reproduced on a test repository: https://github.com/myrrc/apt-cache-restore-test (see last 2 commits).
debhelper:
Installed: (none)
(while restoring from cache)
Hi,
I have setup my workflow where I have
strategy:
matrix:
version: ['${{ toJSON(github.ref) }}', latest]
steps:
- name: Clone Repository
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install PCL
uses: awalsh128/cache-apt-pkgs-action@v1
with:
packages: libpcl-dev
version: 1.0
and I want to cache the libpcl-dev
for both jobs, but it seems that one is canceling the other:
Example here:
Workflow: https://github.com/crdoconnor/apt-cache-bug/blob/main/.github/workflows/example.yml
Actions: https://github.com/crdoconnor/apt-cache-bug/actions
There are 3 runs of the github actions. First is an expected failure. Second is an expected pass (apt-get install fixes the issue).
Third is an unexpected failure - the cache restore should restore everything as before, but it doesn't quite seem to. It might be missing some files, I guess?
Anyway, very grateful for any help you could provide.
When using the following on a self-hosted runner:
- name: Install Packages
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: cmake curl gcc gnupg jq pkg-config python3-pip tar unzip zip zlib1g-dev
version: 1.0
It fails with the following error messages:
root is not in the sudoers file. This incident will be reported.
root is not in the sudoers file. This incident will be reported.
On self-hosted the user is "runner" and it does have permission to call sudo. But I suspect on managed runners if you call sudo as root it allows it whilst on self-hosted it does not.
Because the following code seems to somehow call sudo twice on the apt_fast_installation method:
apt_fast_installation() {
if ! type aria2c >/dev/null 2>&1; then
sudo apt-get update
sudo apt-get install -y aria2
fi
wget https://raw.githubusercontent.com/ilikenwf/apt-fast/master/apt-fast -O /usr/local/sbin/apt-fast
chmod +x /usr/local/sbin/apt-fast
if ! [[ -f /etc/apt-fast.conf ]]; then
wget https://raw.githubusercontent.com/ilikenwf/apt-fast/master/apt-fast.conf -O /etc/apt-fast.conf
fi
}
if [[ "$EUID" -eq 0 ]]; then
apt_fast_installation
else
type sudo >/dev/null 2>&1 || { echo "sudo not installed, change into root context" >&2; exit 1; }
DECL="$(declare -f apt_fast_installation)"
sudo bash -c "$DECL; apt_fast_installation"
fi'
Hi. I am using your apt action to cache my apt dependencies in my repo https://github.com/matinlotfali/KDE-Rounded-Corners
I noticed that when I list my packages in the yml file like this:
- name: Cache APT Packages
uses: awalsh128/[email protected]
with:
packages: gettext extra-cmake-modules qttools5-dev libqt5x11extras5-dev libkf5configwidgets-dev libkf5crash-dev libkf5globalaccel-dev libkf5kio-dev libkf5notifications-dev kinit-dev kwin-dev
version: 20.04
refresh: true
It successfully installs them and then reports that it has saved only 2 MB in the post job. But I believe installing these packages will include around 300 MB of dependencies that are not being kept in the cache and the list is too long to include all of them (It would be the whole Kubuntu installation).
As a result, the next time the action is run, it reuses the cache and because dependencies are not met, the build fails in the CMAKE.
Following shows up in output for step using this action.
Warning: The
set-output
command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
At first I suspected you were using an old version of actions/cache
, which would trigger this warning. But no, it looks like you are using current actions/cache@v3
However, you are maybe actually directly calling set-output?
cache-apt-pkgs-action/action.yml
Lines 61 to 62 in fc1d3ef
It seems like you will have to change this implementation to avoid the deprecation warnings, and keep working once the set-output
command is "disabled soon"?
Looks like technically "soon" is actually about 6 months probably:
We are monitoring telemetry for the usage of these commands and plan to fully disable them on 31st May 2023. Starting 1st June 2023 workflows using save-state or set-output commands via stdout will fail with an error.
Mentioned in issue #45 by @tamascsaba
Other improvement what I suggest is use zstd compression. It is much faster and supported in hosted runners.:
actions/runner-images#89
You can use with: tar -caf package.tar.zst package-directory
Will perform some due diligence and update this when I get a chance.
We are seeing an issue after the 1.2 release here: https://github.com/pyvista/pyvista/runs/8214751873?check_suite_focus=true#step:7:123
ls: cannot access '/home/runner/cache-apt-pkgs/*.tar': No such file or directory
I'm not sure what's going wrong and not sure where to start with debugging this, so I figured I'd make an issue since this release was fairly recent
In some workflows I only need a subset of packages while in others I need the full suite. So in order to only install the minimum amount of packages I used the action twice in one job. However if this job misses the cache and is the first one to save, both the keys will contain all installed packages.
For example, in one run I might need:
- uses: awalsh128/cache-apt-pkgs-action@v1
with:
packages: foo bar
while in another I need:
- uses: awalsh128/cache-apt-pkgs-action@v1
with:
packages: foo bar
- uses: awalsh128/cache-apt-pkgs-action@v1
with:
packages: baz
If the latter runs first and caches the packages then the cache now contains all (foo
, bar
and baz
) packages under two different keys.
So even if I only need foo
and bar
, baz
will also be installed.
Is this intended behavior?
We're seeing failures when upgrading to 1.2.2 in pyvista/pyvista#3773
If this is related to caching, is there a way you could reset the cache for new versions? That way dependabot PRs don't instantly fail.
Workflow traceback:
09:10:18 Reading from main requested packages manifest...
09:10:18 - git-restore-mtime 2019.11-1
09:10:18 - libgl1-mesa-dev 21.2.6-0ubuntu0.1~20.04.2
09:10:18 - libosmesa6-dev 21.2.6-0ubuntu0.1~20.04.2
09:10:18 - pandoc 2.5-3build2
09:10:18 - python3-tk 3.8.10-0ubuntu1~20.04
09:10:18 done
ls: cannot access '/home/runner/cache-apt-pkgs/*.tar': No such file or directory
Workflow Actions
I'm trying to cache and restore those packages:
As you can see the first run builds without problems but the second one miss the headers like string.h
Please read about the limitation of non-file dependencies before filing an issue.
Hello!
I recently set up a workflow to install and cache some APT packages before testing my project. Unfortunately once I introduced the cache-apt-pkgs-action
step, the action fails with the following message:
tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.
Error: Process completed with exit code 123.
This occurs during the package caching step.
This seems like a duplicate of #76, but I'm using the v1
tag of the action which supposedly includes the fix.
Did I miss something?
Ran this like every other day, might've been my 5th or 6th time for today.
This only happened right now, Cache service responded with 503.
Some info from build process:
> Run awalsh128/[email protected]
> Run /home/runner/work/_actions/awalsh128/cache-apt-pkgs-action/v1.0.1/pre_cache_action.sh \
Validating action arguments (version='', packages='openjdk-11-jdk')...done.
Verifying packages...done.
Creating cache key...
- Normalized package list is 'openjdk-11-jdk '.
- Value to hash is 'openjdk-11-jdk @'.
- Value hashed as '167ce49116dfc5b382b84fddb301067b'.
done.
Hash value written to /home/runner/cache-apt-pkgs/cache_key.md5
> Run actions/cache@v2
**Warning**: getCacheEntry failed: Cache service responded with 503
Run /home/runner/work/_actions/awalsh128/cache-apt-pkgs-action/v1.0.1/post_cache_action.sh \
Clean installing and caching 1 package(s).
Package list:
- openjdk-11-jdk
Updating APT package list...done.
Clean installing and caching 1 packages...
- openjdk-11-jdk
Installing...done.
Caching to /home/runner/cache-apt-pkgs/openjdk-11-jdk.tar.gz...done.
done.
Writing package manifest to /home/runner/cache-apt-pkgs/manifest.log...done.
Post job cleanup.
Post job cleanup.
**Warning**: reserveCache failed: Cache service responded with 503
How I generally use the action:
uses: awalsh128/[email protected]
with:
packages: openjdk-11-jdk
Edit:
I ran the action again, there is definitely something wrong.
There goes my Actions minutes 😆
Would it be possible to skip installing apt-fast
if there is a cache hit? Maybe the installation can be moved to right before it's use in install_and_cache_pkgs
?
Hi,
I tried to use this action to install packages but it throws me an error because the cut
command declared here is different from the one set up in the ubuntu-18.04 image I use for my workflows.
When I run command -v cut
inside my workflow it displays this : /usr/bin/cut
instead of /bin/cut
Add the $(command -v cut)
in the pre_cache_action.sh instead of /bin/cut
to ensure that the binary will always be called from the correct path no matter the distro.
Hi, I am trying to capture ghostscript
and almost everything is going perfect, with the only detail of a symbolic link that is not restored from the cache.
I run the solution manually (no problem), but it would be great if this didn't happen. As an example I have this test repo cache-apt-gs.
With the following configuration file:
name: Test cache-ghostscript
on:
push:
branches:
- "*"
pull_request:
jobs:
using-apt-fast:
runs-on: ubuntu-latest
env:
DEBIAN_FRONTEND: noninteractive
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Update sources and install ghostscript
run: >
sudo apt-fast -y update < /dev/null > /dev/null && sudo apt-fast -y install --no-install-recommends ghostscript < /dev/null > /dev/null
gsicclink=/usr/share/ghostscript/$(gs --version)/iccprofiles
if readlink -e "$gsicclink"; then
echo $gsicclink is a symlink
else
echo $gsicclink is not a symlink
fi
cache-apt-pkgs:
runs-on: ubuntu-latest
env:
DEBIAN_FRONTEND: noninteractive
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Update sources and install ghostscript
uses: awalsh128/[email protected]
with:
packages: fonts-urw-base35 libgs9-common libijs-0.35 libjbig2dec0 libopenjp2-7 libgs9 ghostscript
version: 1.0
refresh: true
# libgs9-common creates a symlink from /usr/share/ghostscript, but silently fails to create
- run: >
gsicclink=/usr/share/ghostscript/$(gs --version)/iccprofiles
if readlink -e "$gsicclink"; then
echo $gsicclink is a symlink
else
echo $gsicclink is not a symlink
fi
get for using-apt-fast:
/usr/share/ghostscript/9.50/iccprofiles is a symlink
get for cache-apt-pkgs:
/usr/share/ghostscript/9.50/iccprofiles is not a symlink
Thanks for the great work
Regards
11:16:56 Caching 157 installed packages...
11:16:56 * Caching fonts-droid-fallback to /home/runner/cache-apt-pkgs/fonts-droid-fallback:1:6.0.1r16-1.1.tar.gz...
11:16:57 done (compressed size 3.7M).
11:16:57 * Caching poppler-data to /home/runner/cache-apt-pkgs/poppler-data:0.4.9-2.tar.gz...
11:16:58 done (compressed size 4.0M).
11:16:58 * Caching libpcsclite1 to /home/runner/cache-apt-pkgs/libpcsclite1:1.8.26-3.tar.gz...
11:16:58 done (compressed size 24K).
11:16:58 * Caching openjdk-11-jre-headless to /home/runner/cache-apt-pkgs/openjdk-11-jre-headless:11.0.17+8-1ubuntu2~20.04.tar.gz...
11:17:06 done (compressed size 57M).
11:17:06 * Caching default-jre-headless to /home/runner/cache-apt-pkgs/default-jre-headless:2:1.11-72.tar.gz...
11:17:06 done (compressed size 4.0K).
11:17:06 * Caching ca-certificates-java to /home/runner/cache-apt-pkgs/ca-certificates-java:20190405ubuntu1.tar.gz...
tar: etc/default/cacerts: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
Error: Process completed with exit code 123.
See: https://github.com/SilverRainZ/bullet/actions/runs/3494642450/jobs/5854329890
I ran following
- name: Setup ctanify requirements
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libfile-copy-recursive-perl
debug: true
version: 1.0
I get following output
${GITHUB_ACTION_PATH}/pre_cache_action.sh \
~/cache-apt-pkgs \
"$VERSION" \
"$EXEC_INSTALL_SCRIPTS" \
"$DEBUG" \
"$PACKAGES"
echo "CACHE_KEY=$(cat ~/cache-apt-pkgs/cache_key.md5)" >> $GITHUB_ENV
shell: bash --noprofile --norc -e -o pipefail {0}
env:
VERSION: 1
EXEC_INSTALL_SCRIPTS: false
DEBUG: true
PACKAGES: libfile-copy-recursive-perl
realpath: --: No such file or directory
+ cache_dir=/github/home/cache-apt-pkgs
+ version=1
+ execute_install_scripts=false
+ debug=true
+ input_packages=libfile-copy-recursive-perl
++ get_normalized_package_list libfile-copy-recursive-perl
+++ echo libfile-copy-recursive-perl
+++ sed 's/[,\]/ /g; s/\s\+/ /g; s/^\s\+//g; s/\s\+$//g'
+++ sort '-t '
++ packages=libfile-copy-recursive-perl
++ log_err 'resolving package versions...'
+++ date +%T.%3N
++ echo 19:46:34. 'resolving package versions...'
19:46:34. resolving package versions...
+++ apt-cache --quiet=0 --no-all-versions show libfile-copy-recursive-perl
+++ grep -E '^(Package|Version|N):'
++ data=
++ log_err resolved
+++ date +%T.%3N
++ echo 19:46:34. resolved
19:46:34. resolved
++ local 'ORIG_IFS=
'
++ IFS='
'
++ declare -A missing
++ local package_versions=
++ local package= separator=
++ IFS='
'
++ '[' 0 -gt 0 ']'
++ echo ''
+ packages=
+ mkdir -p /github/home/cache-apt-pkgs
+ log 'Validating action arguments (version='\''1'\'', packages='\'''\'')...'
++ date +%T.%3N
+ echo 19:46:34. 'Validating action arguments (version='\''1'\'', packages='\'''\'')...'
19:46:34. Validating action arguments (version='1', packages='')...
+ grep -q ' '
+ test -z ''
+ log aborted
++ date +%T.%3N
+ echo 19:46:34. aborted
19:46:34. aborted
+ log 'Packages argument cannot be empty.'
++ date +%T.%3N
+ echo 19:46:34. 'Packages argument cannot be empty.'
19:46:34. Packages argument cannot be empty.
+ exit 3
Why does it say
PACKAGES: libfile-copy-recursive-perl
But fails with
19:46:34. Packages argument cannot be empty.
On a random Ubuntu machine, the output of apt-cache show is as follows
# apt-cache --quiet=0 --no-all-versions show libfile-copy-recursive-perl
Package: libfile-copy-recursive-perl
Architecture: all
Version: 0.45-1
Priority: optional
Section: universe/perl
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian Perl Group <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 48
Depends: perl
Filename: pool/universe/libf/libfile-copy-recursive-perl/libfile-copy-recursive-perl_0.45-1_all.deb
Size: 17252
MD5sum: 162971ea438eefd47fa3a6740ed482a2
SHA1: 01895634a8c4c527686de7a222463dc00e48e3ae
SHA256: e8878ff9eb1f84026daa5186f9c75fb3e2b8730775748eb834dd357e6abe3f64
SHA512: 09061b4b3a0a4d9f454902d84d3d86d6a3a34004224b01e4f2e6f7531dc9da757013f3314cfc683bdc9aeac99466e56f9b524ad63e54c7c2852405ac771ce988
Homepage: https://metacpan.org/release/File-Copy-Recursive
Description-en: Perl extension for recursively copying files and directories
File::Copy::Recursive module copies and moves directories recursively
(or single files, well... singley) to an optional depth and attempts
to preserve each file or directory's mode.
Description-md5: a107442d1b00e794c7a17b73e1706430
The requested package exists: https://packages.debian.org/buster/libfile-copy-recursive-perl
PR is gi-ev/biblatex-lni#22
There should be at least some hint in the README.md what to do if "Packages argument cannot be empty." is shown.
It would be cool to be able to specify third-party PPAs as package sources in addition to the default sources.
Use case: installing (and caching) the chromium package (not the official snap one, some plain .deb)
This use-case requires:
<some ramdom ppa repo>
I guess that simply providing an additional "with" parameter add-repository: <repository>
would be enough
and the action would then issue the relevant pre-flight commands cf above prior to the apt install
Artifact name is not valid: libgtk-3-dev:amd64%Linux-amd64. Contains the following character: Colon :
Basically, a Linux package is of form "package-name:package-arch", e.g. g++:i386. Currently this action doesn't support such packages.
I assume the issue is here
cache-apt-pkgs-action/action.yml
Line 79 in 9b2b4f2
Hello, thanks for the super useful repo!
I have an issue when caching the libgtk-3-dev package on Ubuntu 22.04, excerpt from my workflow:
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: awalsh128/[email protected]
with:
packages: libgtk-3-dev
Here is the error log:
...
09:49:08 * Caching libharfbuzz-gobject0 to /home/runner/cache-apt-pkgs/libharfbuzz-gobject0:2.7.4-1ubuntu3.1.tar.gz...
09:49:08 done (compressed size 28K).
09:49:08 * Caching libharfbuzz-icu0 to /home/runner/cache-apt-pkgs/libharfbuzz-icu0:2.7.4-1ubuntu3.1.tar.gz...
09:49:08 done (compressed size 8.0K).
E: Regex compilation error - Invalid range end
E: No packages found
09:49:08 * Caching libharfbuzz0b[2.7.4-1ubuntu3] to /home/runner/cache-apt-pkgs/libharfbuzz0b[2.7.4-1ubuntu3].tar.gz...
dpkg-query: error: --listfiles needs a valid package name but 'libharfbuzz0b[2.7.4-1ubuntu3]' is not: illegal package name in specifier 'libharfbuzz0b[2.7.4-1ubuntu3]': character '[' not allowed (only letters, digits and characters '-+._')
Use --help for help about querying packages.
tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.
Error: Process completed with exit code 123.
I believe the get_dep_packages function will have to be updated to better handle the output from apt --dry-run
. Here is what I get when running apt install --dry-run --yes libgtk-3-dev | grep "^Inst" | grep harfbuzz
:
Inst libharfbuzz0b [2.7.4-1ubuntu3] (2.7.4-1ubuntu3.1 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Inst gir1.2-harfbuzz-0.0 (2.7.4-1ubuntu3.1 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Inst libharfbuzz-icu0 (2.7.4-1ubuntu3.1 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Inst libharfbuzz-gobject0 (2.7.4-1ubuntu3.1 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
Inst libharfbuzz-dev (2.7.4-1ubuntu3.1 Ubuntu:22.04/jammy-updates, Ubuntu:22.04/jammy-security [amd64])
See the extra version number in square brackets on line 1 which means that there is already a 2.7.4-1ubuntu3 version of the libharfbuzz0b package installed and it will be replaced by the 2.7.4-1ubuntu3.1 version.
The other dependencies are fresh installs, so awk '{print $2 $3}'
works fine to extract the version number.
Hi,
Following stanza:
- name: Cache Debian packages (cache version 1.0)
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: openjdk-11-jre
version: 1.0
will fail with permissions error during certificate installation
Looks like tar
is being passed a list of filenames un-quoted, so files with spaces in the filenames break it?
eg https://github.com/shish/rosettaboy/actions/runs/3849566460/jobs/6558711183
19:00:40 Caching 57 installed packages...
19:00:40 * Caching libjsoncpp25 to /home/runner/cache-apt-pkgs/libjsoncpp25:1.9.5-3.tar...
19:00:40 done (compressed size 232K).
19:00:40 * Caching librhash0 to /home/runner/cache-apt-pkgs/librhash0:1.4.2-1ubuntu1.tar...
19:00:40 done (compressed size 212K).
19:00:40 * Caching dh-elpa-helper to /home/runner/cache-apt-pkgs/dh-elpa-helper:2.0.9ubuntu1.tar...
19:00:40 done (compressed size 20K).
19:00:40 * Caching cmake-data to /home/runner/cache-apt-pkgs/cmake-data:3.22.1-1ubuntu1.22.04.1.tar...
tar: usr/share/cmake-3.22/Help/generator/Borland: Cannot stat: No such file or directory
tar: Makefiles.rst: Cannot stat: No such file or directory
tar: usr/share/cmake-3.22/Help/generator/Eclipse: Cannot stat: No such file or directory
tar: CDT4.rst: Cannot stat: No such file or directory
[...]
It's cool to cache the packages, but it's a little less cool to have to update the packages every time first if they aren't already in the image.
What are your thoughts on the value and/or feasibility of caching the result of apt update
?
Hello, when I try to install alsa-ucm-conf
I get this error
| 02:32:03 * Caching alsa-ucm-conf to /root/cache-apt-pkgs/alsa-ucm-conf:1.2.6.3-1ubuntu1.1.tar...
| tar: usr/share/alsa/ucm2/NXP/iMX8/Librem_5_Devkit/Librem: Cannot stat: No such file or directory
| tar: 5: Cannot stat: No such file or directory
| tar: Devkit.conf: Cannot stat: No such file or directory
| tar: usr/share/alsa/ucm2/conf.d/simple-card/Librem: Cannot stat: No such file or directory
| tar: 5: Cannot stat: No such file or directory
| tar: Devkit.conf: Cannot stat: No such file or directory
| tar: usr/share/alsa/ucm2/conf.d/tegra/ASUS: Cannot stat: No such file or directory
| tar: Google: Cannot stat: No such file or directory
| tar: Nexus: Cannot stat: No such file or directory
| tar: 7: Cannot stat: No such file or directory
| tar: ALC5642.conf: Cannot stat: No such file or directory
| tar: usr/share/alsa/ucm2/conf.d/tegra/Acer: Cannot stat: No such file or directory
| tar: Iconia: Cannot stat: No such file or directory
| tar: Tab: Cannot stat: No such file or directory
| tar: A500: Cannot stat: No such file or directory
| tar: WM8903.conf: Cannot stat: No such file or directory
| tar: usr/share/alsa/ucm2/conf.d/tegra/Compal: Cannot stat: No such file or directory
| tar: PAZ00.conf: Cannot stat: No such file or directory
| tar: Exiting with failure status due to previous errors
This package contains the following files:
/usr
/usr/share
/usr/share/alsa
/usr/share/alsa/ucm
/usr/share/alsa/ucm/README.md
/usr/share/alsa/ucm2
/usr/share/alsa/ucm2/HDA
/usr/share/alsa/ucm2/HDA/DualCodecs
/usr/share/alsa/ucm2/HDA/DualCodecs/DualCodecs.conf
/usr/share/alsa/ucm2/HDA/DualCodecs/HiFi.conf
/usr/share/alsa/ucm2/HDA/HDA-Capture-value.conf
/usr/share/alsa/ucm2/HDA/HDA.conf
/usr/share/alsa/ucm2/HDA/Hdmi.conf
/usr/share/alsa/ucm2/HDA/HiFi-acp.conf
/usr/share/alsa/ucm2/HDA/HiFi-analog.conf
/usr/share/alsa/ucm2/HDA/HiFi.conf
/usr/share/alsa/ucm2/HDA/init.conf
/usr/share/alsa/ucm2/Intel
/usr/share/alsa/ucm2/Intel/SOF
/usr/share/alsa/ucm2/Intel/SOF/HiFi.conf
/usr/share/alsa/ucm2/Intel/SOF/SOF.conf
/usr/share/alsa/ucm2/Intel/bdw-rt5677
/usr/share/alsa/ucm2/Intel/bdw-rt5677/HiFi.conf
/usr/share/alsa/ucm2/Intel/bdw-rt5677/bdw-rt5677.conf
/usr/share/alsa/ucm2/Intel/broadwell-rt286
/usr/share/alsa/ucm2/Intel/broadwell-rt286/HiFi.conf
/usr/share/alsa/ucm2/Intel/broadwell-rt286/broadwell-rt286.conf
/usr/share/alsa/ucm2/Intel/broxton-rt298
/usr/share/alsa/ucm2/Intel/broxton-rt298/Hdmi.conf
/usr/share/alsa/ucm2/Intel/broxton-rt298/HiFi.conf
/usr/share/alsa/ucm2/Intel/broxton-rt298/broxton-rt298.conf
/usr/share/alsa/ucm2/Intel/bytcht-cx2072x
/usr/share/alsa/ucm2/Intel/bytcht-cx2072x/HiFi.conf
/usr/share/alsa/ucm2/Intel/bytcht-cx2072x/bytcht-cx2072x.conf
/usr/share/alsa/ucm2/Intel/bytcht-es8316
/usr/share/alsa/ucm2/Intel/bytcht-es8316/HiFi-Components.conf
/usr/share/alsa/ucm2/Intel/bytcht-es8316/HiFi-LongName.conf
/usr/share/alsa/ucm2/Intel/bytcht-es8316/HiFi.conf
/usr/share/alsa/ucm2/Intel/bytcht-es8316/bytcht-es8316.conf
/usr/share/alsa/ucm2/Intel/bytcr-rt5640
/usr/share/alsa/ucm2/Intel/bytcr-rt5640/HiFi-Components.conf
/usr/share/alsa/ucm2/Intel/bytcr-rt5640/HiFi-LongName.conf
/usr/share/alsa/ucm2/Intel/bytcr-rt5640/HiFi.conf
/usr/share/alsa/ucm2/Intel/bytcr-rt5640/bytcr-rt5640.conf
/usr/share/alsa/ucm2/Intel/bytcr-rt5651
/usr/share/alsa/ucm2/Intel/bytcr-rt5651/HiFi-Components.conf
/usr/share/alsa/ucm2/Intel/bytcr-rt5651/HiFi-LongName.conf
/usr/share/alsa/ucm2/Intel/bytcr-rt5651/HiFi.conf
/usr/share/alsa/ucm2/Intel/bytcr-rt5651/bytcr-rt5651.conf
/usr/share/alsa/ucm2/Intel/bytcr-wm5102
/usr/share/alsa/ucm2/Intel/bytcr-wm5102/HiFi.conf
/usr/share/alsa/ucm2/Intel/bytcr-wm5102/bytcr-wm5102.conf
/usr/share/alsa/ucm2/Intel/cht-bsw-rt5672
/usr/share/alsa/ucm2/Intel/cht-bsw-rt5672/HiFi.conf
/usr/share/alsa/ucm2/Intel/cht-bsw-rt5672/cht-bsw-rt5672.conf
/usr/share/alsa/ucm2/Intel/chtmax98090
/usr/share/alsa/ucm2/Intel/chtmax98090/HiFi.conf
/usr/share/alsa/ucm2/Intel/chtmax98090/chtmax98090.conf
/usr/share/alsa/ucm2/Intel/chtnau8824
/usr/share/alsa/ucm2/Intel/chtnau8824/HiFi.conf
/usr/share/alsa/ucm2/Intel/chtnau8824/chtnau8824.conf
/usr/share/alsa/ucm2/Intel/chtrt5645
/usr/share/alsa/ucm2/Intel/chtrt5645/HiFi.conf
/usr/share/alsa/ucm2/Intel/chtrt5645/chtrt5645.conf
/usr/share/alsa/ucm2/Intel/chtrt5650
/usr/share/alsa/ucm2/Intel/chtrt5650/HiFi.conf
/usr/share/alsa/ucm2/Intel/chtrt5650/chtrt5650.conf
/usr/share/alsa/ucm2/Intel/hda-dsp
/usr/share/alsa/ucm2/Intel/hda-dsp/Hdmi1.conf
/usr/share/alsa/ucm2/Intel/hda-dsp/Hdmi2.conf
/usr/share/alsa/ucm2/Intel/hda-dsp/HiFi.conf
/usr/share/alsa/ucm2/Intel/hda-dsp/hda-dsp.conf
/usr/share/alsa/ucm2/Intel/kblrt5660
/usr/share/alsa/ucm2/Intel/kblrt5660/Hdmi1.conf
/usr/share/alsa/ucm2/Intel/kblrt5660/Hdmi2.conf
/usr/share/alsa/ucm2/Intel/kblrt5660/HiFi.conf
/usr/share/alsa/ucm2/Intel/kblrt5660/kblrt5660.conf
/usr/share/alsa/ucm2/Intel/skylake-rt286
/usr/share/alsa/ucm2/Intel/skylake-rt286/Hdmi1.conf
/usr/share/alsa/ucm2/Intel/skylake-rt286/Hdmi2.conf
/usr/share/alsa/ucm2/Intel/skylake-rt286/HiFi.conf
/usr/share/alsa/ucm2/Intel/skylake-rt286/skylake-rt286.conf
/usr/share/alsa/ucm2/Intel/sof-ehl-rt5660
/usr/share/alsa/ucm2/Intel/sof-ehl-rt5660/Hdmi.conf
/usr/share/alsa/ucm2/Intel/sof-ehl-rt5660/HiFi.conf
/usr/share/alsa/ucm2/Intel/sof-ehl-rt5660/sof-ehl-rt5660.conf
/usr/share/alsa/ucm2/Intel/sof-hda-dsp
/usr/share/alsa/ucm2/Intel/sof-hda-dsp/Hdmi.conf
/usr/share/alsa/ucm2/Intel/sof-hda-dsp/HiFi.conf
/usr/share/alsa/ucm2/Intel/sof-hda-dsp/sof-hda-dsp.conf
/usr/share/alsa/ucm2/Librem_5
/usr/share/alsa/ucm2/Librem_5/HiFi.conf
/usr/share/alsa/ucm2/Librem_5/Librem_5.conf
/usr/share/alsa/ucm2/MediaTek
/usr/share/alsa/ucm2/MediaTek/mtk-rt5650
/usr/share/alsa/ucm2/MediaTek/mtk-rt5650/HDMI.conf
/usr/share/alsa/ucm2/MediaTek/mtk-rt5650/HiFi.conf
/usr/share/alsa/ucm2/MediaTek/mtk-rt5650/init.conf
/usr/share/alsa/ucm2/MediaTek/mtk-rt5650/mtk-rt5650.conf
/usr/share/alsa/ucm2/NXP
/usr/share/alsa/ucm2/NXP/iMX8
/usr/share/alsa/ucm2/NXP/iMX8/Librem_5_Devkit
/usr/share/alsa/ucm2/NXP/iMX8/Librem_5_Devkit/HiFi.conf
/usr/share/alsa/ucm2/NXP/iMX8/Librem_5_Devkit/Librem 5 Devkit.conf
/usr/share/alsa/ucm2/OMAP
/usr/share/alsa/ucm2/OMAP/abe-twl6040
/usr/share/alsa/ucm2/OMAP/abe-twl6040/Pandaboard
/usr/share/alsa/ucm2/OMAP/abe-twl6040/Pandaboard/FMAnalog.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/Pandaboard/HiFi.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/Pandaboard/HiFiLP.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/Pandaboard/Pandaboard.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/Pandaboard/Record.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/Pandaboard/Voice.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/Pandaboard/VoiceCall.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/SDP4430
/usr/share/alsa/ucm2/OMAP/abe-twl6040/SDP4430/FMAnalog.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/SDP4430/HiFi.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/SDP4430/HiFiLP.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/SDP4430/Record.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/SDP4430/SDP4430.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/SDP4430/Voice.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/SDP4430/VoiceCall.conf
/usr/share/alsa/ucm2/OMAP/abe-twl6040/abe-twl6040.conf
/usr/share/alsa/ucm2/PinePhone
/usr/share/alsa/ucm2/PinePhone/HiFi.conf
/usr/share/alsa/ucm2/PinePhone/PinePhone.conf
/usr/share/alsa/ucm2/PinePhone/VoiceCall.conf
/usr/share/alsa/ucm2/PineTab
/usr/share/alsa/ucm2/PineTab/HiFi.conf
/usr/share/alsa/ucm2/PineTab/PineTab.conf
/usr/share/alsa/ucm2/Qualcomm
/usr/share/alsa/ucm2/Qualcomm/apq8016-sbc
/usr/share/alsa/ucm2/Qualcomm/apq8016-sbc/HDMI.conf
/usr/share/alsa/ucm2/Qualcomm/apq8016-sbc/HiFi.conf
/usr/share/alsa/ucm2/Qualcomm/apq8016-sbc/apq8016-sbc.conf
/usr/share/alsa/ucm2/Qualcomm/apq8096
/usr/share/alsa/ucm2/Qualcomm/apq8096/HDMI.conf
/usr/share/alsa/ucm2/Qualcomm/apq8096/HiFi.conf
/usr/share/alsa/ucm2/Qualcomm/apq8096/apq8096.conf
/usr/share/alsa/ucm2/Qualcomm/sc7180
/usr/share/alsa/ucm2/Qualcomm/sc7180/rt5682-max98357a
/usr/share/alsa/ucm2/Qualcomm/sc7180/rt5682-max98357a/HiFi.conf
/usr/share/alsa/ucm2/Qualcomm/sc7180/rt5682-max98357a/init.conf
/usr/share/alsa/ucm2/Qualcomm/sc7180/rt5682-max98357a/sc7180-rt5682-max98357a-1mic.conf
/usr/share/alsa/ucm2/Qualcomm/sdm845
/usr/share/alsa/ucm2/Qualcomm/sdm845/HDMI.conf
/usr/share/alsa/ucm2/Qualcomm/sdm845/HiFi.conf
/usr/share/alsa/ucm2/Qualcomm/sdm845/sdm845.conf
/usr/share/alsa/ucm2/Qualcomm/sm8250
/usr/share/alsa/ucm2/Qualcomm/sm8250/HDMI.conf
/usr/share/alsa/ucm2/Qualcomm/sm8250/HiFi.conf
/usr/share/alsa/ucm2/Qualcomm/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf
/usr/share/alsa/ucm2/README.md
/usr/share/alsa/ucm2/Rockchip
/usr/share/alsa/ucm2/Rockchip/es8316
/usr/share/alsa/ucm2/Rockchip/es8316/HiFi.conf
/usr/share/alsa/ucm2/Rockchip/es8316/es8316.conf
/usr/share/alsa/ucm2/Rockchip/max98090
/usr/share/alsa/ucm2/Rockchip/max98090/HiFi.conf
/usr/share/alsa/ucm2/Rockchip/max98090/max98090.conf
/usr/share/alsa/ucm2/Rockchip/rk3399-gru-sound
/usr/share/alsa/ucm2/Rockchip/rk3399-gru-sound/HiFi.conf
/usr/share/alsa/ucm2/Rockchip/rk3399-gru-sound/rk3399-gru-sound.conf
/usr/share/alsa/ucm2/Samsung
/usr/share/alsa/ucm2/Samsung/snow
/usr/share/alsa/ucm2/Samsung/snow/HiFi.conf
/usr/share/alsa/ucm2/Samsung/snow/snow.conf
/usr/share/alsa/ucm2/Tegra
/usr/share/alsa/ucm2/Tegra/alc5632
/usr/share/alsa/ucm2/Tegra/alc5632/HiFi.conf
/usr/share/alsa/ucm2/Tegra/alc5632/Record.conf
/usr/share/alsa/ucm2/Tegra/alc5632/alc5632.conf
/usr/share/alsa/ucm2/Tegra/max98090
/usr/share/alsa/ucm2/Tegra/max98090/HiFi.conf
/usr/share/alsa/ucm2/Tegra/max98090/max98090.conf
/usr/share/alsa/ucm2/Tegra/rt5640
/usr/share/alsa/ucm2/Tegra/rt5640/Google-Nexus-7-HiFi.conf
/usr/share/alsa/ucm2/Tegra/rt5640/Google-Nexus-7.conf
/usr/share/alsa/ucm2/Tegra/tegra-hda
/usr/share/alsa/ucm2/Tegra/tegra-hda/tegra-hda-HiFi.conf
/usr/share/alsa/ucm2/Tegra/tegra-hda/tegra-hda.conf
/usr/share/alsa/ucm2/Tegra/wm8903
/usr/share/alsa/ucm2/Tegra/wm8903/Acer-A500-HiFi.conf
/usr/share/alsa/ucm2/Tegra/wm8903/Acer-A500.conf
/usr/share/alsa/ucm2/USB-Audio
/usr/share/alsa/ucm2/USB-Audio/Dell
/usr/share/alsa/ucm2/USB-Audio/Dell/Desktop-Front-Speaker-Headset.conf
/usr/share/alsa/ucm2/USB-Audio/Dell/Desktop-Front.conf
/usr/share/alsa/ucm2/USB-Audio/Dell/Desktop-Rear-Line.conf
/usr/share/alsa/ucm2/USB-Audio/Dell/Desktop-Rear.conf
/usr/share/alsa/ucm2/USB-Audio/Dell/WD15-Dock-HiFi.conf
/usr/share/alsa/ucm2/USB-Audio/Dell/WD15-Dock.conf
/usr/share/alsa/ucm2/USB-Audio/Gigabyte
/usr/share/alsa/ucm2/USB-Audio/Gigabyte/Aorus-Master-Main-Audio-HiFi.conf
/usr/share/alsa/ucm2/USB-Audio/Gigabyte/Aorus-Master-Main-Audio.conf
/usr/share/alsa/ucm2/USB-Audio/GoXLR
/usr/share/alsa/ucm2/USB-Audio/GoXLR/GoXLR-HiFi.conf
/usr/share/alsa/ucm2/USB-Audio/GoXLR/GoXLR.conf
/usr/share/alsa/ucm2/USB-Audio/Lenovo
/usr/share/alsa/ucm2/USB-Audio/Lenovo/ThinkStation-P620-Main-HiFi.conf
/usr/share/alsa/ucm2/USB-Audio/Lenovo/ThinkStation-P620-Main.conf
/usr/share/alsa/ucm2/USB-Audio/Lenovo/ThinkStation-P620-Rear-HiFi.conf
/usr/share/alsa/ucm2/USB-Audio/Lenovo/ThinkStation-P620-Rear.conf
/usr/share/alsa/ucm2/USB-Audio/Realtek
/usr/share/alsa/ucm2/USB-Audio/Realtek/ALC1220-VB-Desktop-HiFi.conf
/usr/share/alsa/ucm2/USB-Audio/Realtek/ALC1220-VB-Desktop.conf
/usr/share/alsa/ucm2/USB-Audio/USB-Audio.conf
/usr/share/alsa/ucm2/codecs
/usr/share/alsa/ucm2/codecs/cx2072x
/usr/share/alsa/ucm2/codecs/cx2072x/DisableSeq.conf
/usr/share/alsa/ucm2/codecs/cx2072x/EnableSeq.conf
/usr/share/alsa/ucm2/codecs/cx2072x/HeadPhones.conf
/usr/share/alsa/ucm2/codecs/cx2072x/HeadsetMic.conf
/usr/share/alsa/ucm2/codecs/cx2072x/InternalMic.conf
/usr/share/alsa/ucm2/codecs/cx2072x/Speaker.conf
/usr/share/alsa/ucm2/codecs/es8316
/usr/share/alsa/ucm2/codecs/es8316/EnableSeq.conf
/usr/share/alsa/ucm2/codecs/es8316/HeadPhones.conf
/usr/share/alsa/ucm2/codecs/es8316/IN1-HeadsetMic.conf
/usr/share/alsa/ucm2/codecs/es8316/IN1-InternalMic.conf
/usr/share/alsa/ucm2/codecs/es8316/IN2-HeadsetMic.conf
/usr/share/alsa/ucm2/codecs/es8316/IN2-InternalMic.conf
/usr/share/alsa/ucm2/codecs/es8316/MonoSpeaker.conf
/usr/share/alsa/ucm2/codecs/es8316/Speaker.conf
/usr/share/alsa/ucm2/codecs/hda
/usr/share/alsa/ucm2/codecs/hda/hdmi.conf
/usr/share/alsa/ucm2/codecs/max98090
/usr/share/alsa/ucm2/codecs/max98090/EnableSeq.conf
/usr/share/alsa/ucm2/codecs/max98090/Headphones.conf
/usr/share/alsa/ucm2/codecs/max98090/HeadsetMic.conf
/usr/share/alsa/ucm2/codecs/max98090/InternalMic.conf
/usr/share/alsa/ucm2/codecs/max98090/Speaker.conf
/usr/share/alsa/ucm2/codecs/nau8824
/usr/share/alsa/ucm2/codecs/nau8824/DMIC1_2.conf
/usr/share/alsa/ucm2/codecs/nau8824/EnableSeq.conf
/usr/share/alsa/ucm2/codecs/nau8824/HeadPhones.conf
/usr/share/alsa/ucm2/codecs/nau8824/HeadsetMic.conf
/usr/share/alsa/ucm2/codecs/nau8824/InternalMic.conf
/usr/share/alsa/ucm2/codecs/nau8824/MonoSpeaker.conf
/usr/share/alsa/ucm2/codecs/nau8824/Speaker.conf
/usr/share/alsa/ucm2/codecs/qcom-lpass
/usr/share/alsa/ucm2/codecs/qcom-lpass/va-macro
/usr/share/alsa/ucm2/codecs/qcom-lpass/va-macro/DMIC0DisableSeq.conf
/usr/share/alsa/ucm2/codecs/qcom-lpass/va-macro/DMIC0EnableSeq.conf
/usr/share/alsa/ucm2/codecs/qcom-lpass/wsa-macro
/usr/share/alsa/ucm2/codecs/qcom-lpass/wsa-macro/SpeakerDisableSeq.conf
/usr/share/alsa/ucm2/codecs/qcom-lpass/wsa-macro/SpeakerEnableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5640
/usr/share/alsa/ucm2/codecs/rt5640/DigitalMics.conf
/usr/share/alsa/ucm2/codecs/rt5640/EnableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5640/HeadPhones.conf
/usr/share/alsa/ucm2/codecs/rt5640/HeadPhones2.conf
/usr/share/alsa/ucm2/codecs/rt5640/HeadsetMic.conf
/usr/share/alsa/ucm2/codecs/rt5640/HeadsetMic2-IN1.conf
/usr/share/alsa/ucm2/codecs/rt5640/IN1-InternalMic.conf
/usr/share/alsa/ucm2/codecs/rt5640/IN3-InternalMic.conf
/usr/share/alsa/ucm2/codecs/rt5640/MonoSpeaker.conf
/usr/share/alsa/ucm2/codecs/rt5640/Speaker.conf
/usr/share/alsa/ucm2/codecs/rt5640/init.conf
/usr/share/alsa/ucm2/codecs/rt5645
/usr/share/alsa/ucm2/codecs/rt5645/AnalogMic.conf
/usr/share/alsa/ucm2/codecs/rt5645/DigitalMicDisableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5645/DigitalMicEnableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5645/DisableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5645/EnableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5645/HSMicDisableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5645/HSMicEnableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5645/HeadphonesEnableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5645/SpeakerEnableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5645/init.conf
/usr/share/alsa/ucm2/codecs/rt5651
/usr/share/alsa/ucm2/codecs/rt5651/DigitalMic.conf
/usr/share/alsa/ucm2/codecs/rt5651/EnableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5651/HeadPhones-swapped.conf
/usr/share/alsa/ucm2/codecs/rt5651/HeadPhones.conf
/usr/share/alsa/ucm2/codecs/rt5651/IN1-InternalMic.conf
/usr/share/alsa/ucm2/codecs/rt5651/IN12-InternalMic.conf
/usr/share/alsa/ucm2/codecs/rt5651/IN2-HeadsetMic.conf
/usr/share/alsa/ucm2/codecs/rt5651/IN2-InternalMic.conf
/usr/share/alsa/ucm2/codecs/rt5651/IN3-HeadsetMic.conf
/usr/share/alsa/ucm2/codecs/rt5651/MonoSpeaker.conf
/usr/share/alsa/ucm2/codecs/rt5651/Speaker.conf
/usr/share/alsa/ucm2/codecs/rt5651/init.conf
/usr/share/alsa/ucm2/codecs/rt5672
/usr/share/alsa/ucm2/codecs/rt5672/DMIC1.conf
/usr/share/alsa/ucm2/codecs/rt5672/DMIC2.conf
/usr/share/alsa/ucm2/codecs/rt5672/EnableSeq.conf
/usr/share/alsa/ucm2/codecs/rt5672/HeadPhones.conf
/usr/share/alsa/ucm2/codecs/rt5672/HeadsetMic.conf
/usr/share/alsa/ucm2/codecs/rt5672/MonoSpeaker.conf
/usr/share/alsa/ucm2/codecs/rt5672/Speaker.conf
/usr/share/alsa/ucm2/codecs/rt5682
/usr/share/alsa/ucm2/codecs/rt5682/init.conf
/usr/share/alsa/ucm2/codecs/rt700
/usr/share/alsa/ucm2/codecs/rt700/init.conf
/usr/share/alsa/ucm2/codecs/rt711
/usr/share/alsa/ucm2/codecs/rt711/init.conf
/usr/share/alsa/ucm2/codecs/rt711-sdca
/usr/share/alsa/ucm2/codecs/rt711-sdca/init.conf
/usr/share/alsa/ucm2/codecs/rt715
/usr/share/alsa/ucm2/codecs/rt715/init.conf
/usr/share/alsa/ucm2/codecs/rt715-sdca
/usr/share/alsa/ucm2/codecs/rt715-sdca/init.conf
/usr/share/alsa/ucm2/codecs/wcd934x
/usr/share/alsa/ucm2/codecs/wcd934x/DefaultDisableSeq.conf
/usr/share/alsa/ucm2/codecs/wcd934x/DefaultEnableSeq.conf
/usr/share/alsa/ucm2/codecs/wcd934x/HeadphoneDisableSeq.conf
/usr/share/alsa/ucm2/codecs/wcd934x/HeadphoneEnableSeq.conf
/usr/share/alsa/ucm2/codecs/wcd934x/HeadphoneMicDisableSeq.conf
/usr/share/alsa/ucm2/codecs/wcd934x/HeadphoneMicEnableSeq.conf
/usr/share/alsa/ucm2/codecs/wcd934x/SpeakerDisableSeq.conf
/usr/share/alsa/ucm2/codecs/wcd934x/SpeakerEnableSeq.conf
/usr/share/alsa/ucm2/codecs/wm5102
/usr/share/alsa/ucm2/codecs/wm5102/EnableSeq.conf
/usr/share/alsa/ucm2/codecs/wm5102/HeadPhones.conf
/usr/share/alsa/ucm2/codecs/wm5102/IN1-HeadsetMic.conf
/usr/share/alsa/ucm2/codecs/wm5102/IN3-InternalMic.conf
/usr/share/alsa/ucm2/codecs/wm5102/Speaker.conf
/usr/share/alsa/ucm2/codecs/wsa881x
/usr/share/alsa/ucm2/codecs/wsa881x/DefaultEnableSeq.conf
/usr/share/alsa/ucm2/codecs/wsa881x/SpeakerDisableSeq.conf
/usr/share/alsa/ucm2/codecs/wsa881x/SpeakerEnableSeq.conf
/usr/share/alsa/ucm2/common
/usr/share/alsa/ucm2/common/linked-card.conf
/usr/share/alsa/ucm2/common/linked.conf
/usr/share/alsa/ucm2/conf.d
/usr/share/alsa/ucm2/conf.d/DB410c
/usr/share/alsa/ucm2/conf.d/DB820c
/usr/share/alsa/ucm2/conf.d/HDA-Intel
/usr/share/alsa/ucm2/conf.d/SC7180
/usr/share/alsa/ucm2/conf.d/SOF
/usr/share/alsa/ucm2/conf.d/USB-Audio
/usr/share/alsa/ucm2/conf.d/acp
/usr/share/alsa/ucm2/conf.d/acp6x
/usr/share/alsa/ucm2/conf.d/bdw-rt5677
/usr/share/alsa/ucm2/conf.d/broadwell-rt286
/usr/share/alsa/ucm2/conf.d/broxton-rt298
/usr/share/alsa/ucm2/conf.d/bytcht-cx2072x
/usr/share/alsa/ucm2/conf.d/bytcht-es8316
/usr/share/alsa/ucm2/conf.d/bytcr-rt5640
/usr/share/alsa/ucm2/conf.d/bytcr-rt5651
/usr/share/alsa/ucm2/conf.d/bytcr-wm5102
/usr/share/alsa/ucm2/conf.d/cht-bsw-rt5672
/usr/share/alsa/ucm2/conf.d/chtmax98090
/usr/share/alsa/ucm2/conf.d/chtnau8824
/usr/share/alsa/ucm2/conf.d/chtrt5645
/usr/share/alsa/ucm2/conf.d/chtrt5650
/usr/share/alsa/ucm2/conf.d/hda-dsp
/usr/share/alsa/ucm2/conf.d/kblrt5660
/usr/share/alsa/ucm2/conf.d/mtk-rt5650
/usr/share/alsa/ucm2/conf.d/rockchip_es8316
/usr/share/alsa/ucm2/conf.d/sdm845
/usr/share/alsa/ucm2/conf.d/simple-card
/usr/share/alsa/ucm2/conf.d/skylake-rt286
/usr/share/alsa/ucm2/conf.d/sm8250
/usr/share/alsa/ucm2/conf.d/sof-ehl-rt5660
/usr/share/alsa/ucm2/conf.d/sof-hda-dsp
/usr/share/alsa/ucm2/conf.d/sof-soundwire
/usr/share/alsa/ucm2/conf.d/tegra
/usr/share/alsa/ucm2/conf.d/tegra-hda
/usr/share/alsa/ucm2/conf.virt.d
/usr/share/alsa/ucm2/lib
/usr/share/alsa/ucm2/lib/card-init.conf
/usr/share/alsa/ucm2/lib/ctl-remap.conf
/usr/share/alsa/ucm2/lib/generic.conf
/usr/share/alsa/ucm2/module
/usr/share/alsa/ucm2/platforms
/usr/share/alsa/ucm2/platforms/bytcr
/usr/share/alsa/ucm2/platforms/bytcr/PlatformDisableSeq.conf
/usr/share/alsa/ucm2/platforms/bytcr/PlatformEnableSeq.conf
/usr/share/alsa/ucm2/sof-soundwire
/usr/share/alsa/ucm2/sof-soundwire/Hdmi.conf
/usr/share/alsa/ucm2/sof-soundwire/HiFi.conf
/usr/share/alsa/ucm2/sof-soundwire/dmic.conf
/usr/share/alsa/ucm2/sof-soundwire/rt1308-1.conf
/usr/share/alsa/ucm2/sof-soundwire/rt1308-2.conf
/usr/share/alsa/ucm2/sof-soundwire/rt1316-1.conf
/usr/share/alsa/ucm2/sof-soundwire/rt1316-2.conf
/usr/share/alsa/ucm2/sof-soundwire/rt5682.conf
/usr/share/alsa/ucm2/sof-soundwire/rt700.conf
/usr/share/alsa/ucm2/sof-soundwire/rt711-sdca.conf
/usr/share/alsa/ucm2/sof-soundwire/rt711.conf
/usr/share/alsa/ucm2/sof-soundwire/rt715-sdca.conf
/usr/share/alsa/ucm2/sof-soundwire/rt715.conf
/usr/share/alsa/ucm2/sof-soundwire/sof-soundwire.conf
/usr/share/alsa/ucm2/ucm.conf
/usr/share/doc
/usr/share/doc/alsa-ucm-conf
/usr/share/doc/alsa-ucm-conf/changelog.Debian.gz
/usr/share/doc/alsa-ucm-conf/copyright
/usr/share/alsa/ucm2/Librem_5/wm8962.conf
/usr/share/alsa/ucm2/conf.d/DB410c/DB410c.conf
/usr/share/alsa/ucm2/conf.d/DB820c/DB820c.conf
/usr/share/alsa/ucm2/conf.d/HDA-Intel/HDA-Intel.conf
/usr/share/alsa/ucm2/conf.d/SC7180/sc7180-rt5682-max98357a-1mic.conf
/usr/share/alsa/ucm2/conf.d/SOF/SOF.conf
/usr/share/alsa/ucm2/conf.d/USB-Audio/USB-Audio.conf
/usr/share/alsa/ucm2/conf.d/acp/acp.conf
/usr/share/alsa/ucm2/conf.d/acp6x/acp6x.conf
/usr/share/alsa/ucm2/conf.d/bdw-rt5677/bdw-rt5677.conf
/usr/share/alsa/ucm2/conf.d/broadwell-rt286/broadwell-rt286.conf
/usr/share/alsa/ucm2/conf.d/broxton-rt298/broxton-rt298.conf
/usr/share/alsa/ucm2/conf.d/bytcht-cx2072x/bytcht-cx2072x.conf
/usr/share/alsa/ucm2/conf.d/bytcht-es8316/bytcht-es8316.conf
/usr/share/alsa/ucm2/conf.d/bytcr-rt5640/bytcr-rt5640.conf
/usr/share/alsa/ucm2/conf.d/bytcr-rt5651/bytcr-rt5651.conf
/usr/share/alsa/ucm2/conf.d/bytcr-wm5102/bytcr-wm5102.conf
/usr/share/alsa/ucm2/conf.d/cht-bsw-rt5672/cht-bsw-rt5672.conf
/usr/share/alsa/ucm2/conf.d/chtmax98090/chtmax98090.conf
/usr/share/alsa/ucm2/conf.d/chtnau8824/chtnau8824.conf
/usr/share/alsa/ucm2/conf.d/chtrt5645/chtrt5645.conf
/usr/share/alsa/ucm2/conf.d/chtrt5650/chtrt5650.conf
/usr/share/alsa/ucm2/conf.d/hda-dsp/hda-dsp.conf
/usr/share/alsa/ucm2/conf.d/kblrt5660/kblrt5660.conf
/usr/share/alsa/ucm2/conf.d/mtk-rt5650/mtk-rt5650.conf
/usr/share/alsa/ucm2/conf.d/rockchip_es8316/rockchip_es8316.conf
/usr/share/alsa/ucm2/conf.d/sdm845/DB845c.conf
/usr/share/alsa/ucm2/conf.d/simple-card/Librem 5 Devkit.conf
/usr/share/alsa/ucm2/conf.d/skylake-rt286/skylake-rt286.conf
/usr/share/alsa/ucm2/conf.d/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf
/usr/share/alsa/ucm2/conf.d/sof-ehl-rt5660/sof-ehl-rt5660.conf
/usr/share/alsa/ucm2/conf.d/sof-hda-dsp/sof-hda-dsp.conf
/usr/share/alsa/ucm2/conf.d/sof-hda-dsp/sof-skl_hda_card.conf
/usr/share/alsa/ucm2/conf.d/sof-skl_hda_card
/usr/share/alsa/ucm2/conf.d/sof-soundwire/sof-soundwire.conf
/usr/share/alsa/ucm2/conf.d/tegra/ASUS Google Nexus 7 ALC5642.conf
/usr/share/alsa/ucm2/conf.d/tegra/Acer Iconia Tab A500 WM8903.conf
/usr/share/alsa/ucm2/conf.d/tegra/Compal PAZ00.conf
/usr/share/alsa/ucm2/conf.d/tegra/GoogleNyanBig.conf
/usr/share/alsa/ucm2/conf.d/tegra/GoogleNyanBlaze.conf
/usr/share/alsa/ucm2/conf.d/tegra-hda/tegra-hda.conf
/usr/share/alsa/ucm2/module/snd_soc_apq8016_sbc.conf
/usr/share/alsa/ucm2/module/snd_soc_apq8096.conf
/usr/share/alsa/ucm2/module/snd_soc_omap_abe_twl6040.conf
/usr/share/alsa/ucm2/module/snd_soc_rk3399_gru_sound.conf
/usr/share/alsa/ucm2/module/snd_soc_rockchip_max98090.conf
/usr/share/alsa/ucm2/module/snd_soc_sdm845.conf
/usr/share/alsa/ucm2/module/snd_soc_snow.conf
/usr/share/alsa/ucm2/module/snd_soc_tegra_alc5632.conf
/usr/share/alsa/ucm2/module/snd_soc_tegra_max98090.conf
/usr/share/alsa/ucm2/wm8962
Please read about the limitation of non-file dependencies before filing an issue.
It appears that this package isn't being properly cached. Build succeeds without cache, fails on subsequent runs with the error of inttypes.h: file not found
, which indicates that newlib wasn't properly restored.
I encountered the following issue when caching libboost-dev.
Have no idea why :(
21:53:06 * Caching libboost1.74-dev to /home/runner/cache-apt-pkgs/libboost1.74-dev:1.74.0-14ubuntu3.tar...
tar: usr/include/boost/serialization/collection_size_type: Cannot stat: No such file or directory
tar: copy.hpp: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Error: Process completed with exit code 123.
If you have a lot of packages and use a multiline string for the packages parameter the setup fails, because bash attempts top run the second line as a command.
Instead of directly using the GitHub action variable interpolation you should pass the parameters as environment variables in order to prevent breakage (and command injection):
runs:
using: "composite"
steps:
- id: pre-cache
run: |
${GITHUB_ACTION_PATH}/pre_cache_action.sh \
~/cache-apt-pkgs \
"$VERSION" \
"$EXEC_INSTALL_SCRIPTS" \
"$DEBUG" \
"$PACKAGES"
echo "CACHE_KEY=$(cat ~/cache-apt-pkgs/cache_key.md5)" >> $GITHUB_ENV
shell: bash
env:
VERSION: "${{ inputs.version }}"
EXEC_INSTALL_SCRIPTS: "${{ inputs.execute_install_scripts }}"
DEBUG: "${{ inputs.debug }}"
PACKAGES: "${{ inputs.packages }}"
Change here:
cache-apt-pkgs-action/action.yml
Lines 44 to 52 in 9b2b4f2
cache-apt-pkgs-action/action.yml
Lines 61 to 73 in 9b2b4f2
Note that simply adding " " around ${{ inputs.packages }}
in the run command will still allow command injection if someone uses a " in the packages parameter. So using env vars is cleaner.
However, this then passes the packages as a single parameter, but since you then do this anyway it shouldn't matter (in fact make that simpler, since you merge it into a single string anyway):
cache-apt-pkgs-action/pre_cache_action.sh
Lines 28 to 31 in 9b2b4f2
cache-apt-pkgs-action/post_cache_action.sh
Lines 29 to 35 in 9b2b4f2
cache-apt-pkgs-action/install_and_cache_pkgs.sh
Lines 19 to 22 in 9b2b4f2
I'm getting an error with just:
- uses: awalsh128/cache-apt-pkgs-action@v1
with:
packages: libosmesa6-dev libgl1-mesa-dev python3-tk pandoc git-restore-mtime
version: 1.0
Any idea what I'm doing wrong? Seems like it's correct. It fails with or without refresh
.
Output from https://github.com/pyvista/pyvista/runs/7330225499?check_suite_focus=true:
...
2022-07-13T22:12:17.4876544Z ##[endgroup]
2022-07-13T22:12:17.6304815Z Validating action arguments (version='1', packages='libosmesa6-dev libgl1-mesa-dev python3-tk pandoc git-restore-mtime')...
2022-07-13T22:12:17.6331746Z ##[error]Process completed with exit code 1.
2022-07-13T22:12:17.6549645Z Post job cleanup.
...
There is a failed action. It said 'tar: etc/default/cacerts: Cannot open: Permission denied'.
So, sudo?
Hi,
Thanks for creating this, it looks like it could really speed up our unit tests.
The slowest install we have is from a non-standard repo, and (maybe because of this?) the caching script runs into an error. The final lines shown are:
tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.
Error: Process completed with exit code 123.
A full log is here: https://github.com/myokit/myokit/actions/runs/3707556270/jobs/6284113435
Any help with this would be much appreciated
While attempting to cache redis-server
21:11:14 * Caching redis-server to /home/runner/cache-apt-pkgs/redis-server:5:5.0.7-2ubuntu0.1.tar.gz...
tar: etc/redis/redis.conf: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
Error: Process completed with exit code 123.
Full Log:
https://github.com/dj12djdjs/apt-cache-redis/runs/8101754369?check_suite_focus=true
Action:
https://github.com/dj12djdjs/apt-cache-redis/blob/main/.github/workflows/blank.yml
Hello,
I'm unable to make this project working when using a custom container.
Here is an example yaml file:
name: Build
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
container: ubuntu:18.04
steps:
- name: Install packages
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: ca-certificates build-essential
version: 1.0
And here is the error:
Run awalsh128/cache-apt-pkgs-action@latest
with:
packages: ca-certificates build-essential
version: 1
refresh: false
Run /home/runner/work/_actions/awalsh128/cache-apt-pkgs-action/latest/pre_cache_action.sh \
/home/runner/work/_actions/awalsh128/cache-apt-pkgs-action/latest/pre_cache_action.sh \
~/cache-apt-pkgs \
"1" \
ca-certificates build-essential
echo "CACHE_KEY=$(cat ~/cache-apt-pkgs/cache_key.md5)" >> $GITHUB_ENV
shell: bash --noprofile --norc -e -o pipefail {0}
/__w/_temp/4a9fd062-d58a-4c3d-ab50-128748bc2e9c.sh: line 2: /home/runner/work/_actions/awalsh128/cache-apt-pkgs-action/latest/pre_cache_action.sh: No such file or directory
Error: Process completed with exit code 127.
Could you help me in making it work with a custom container?
Thank you.
Hi there,
I wanted to report a problem loading the LibVorbis shared library (details below.) Thanks for taking a look. Happy to try and provide more details as needed.
Our cache-apt-pkgs-action
config was:
- name: Install apt dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libvips-tools ffmpeg mediainfo poppler-utils
version: 1.0
(See sciencehistory/scihist_digicoll@4a4d80f )
The problem looks like this:
Running `ffmpeg -y -i /tmp/shrine20221130-3705-db66qh.flac -ac 1 -codec:a aac -b:a 64k /tmp/temp_deriv20221130-3705-e1b0o7.m4a` failed with
exit status: 127
stdout: Nothing written
stderr: ffmpeg: error while loading shared libraries: libvorbis.so.0: cannot open shared object file: No such file or directory
# ./app/uploaders/asset_uploader.rb:103:in `block in <class:AssetUploader>'
# ./spec/models/asset/derivatives_spec.rb:45:in `block (4 levels) in <main>'
Hi,
I'm using cache-apt-pkgs-action (thanks for making it, by the way) like this:
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libsdl2-dev build-essential gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu ffmpeg
version: 1.0
Lately it has been failing. The log ends like this:
10:20:18 Caching 153 installed packages...
10:20:18 * Caching libnss-systemd to /home/runner/cache-apt-pkgs/libnss-systemd:249.11-0ubuntu3.7.tar...
10:20:18 done (compressed size 320K).
10:20:18 * Caching libsystemd0 to /home/runner/cache-apt-pkgs/libsystemd0:249.11-0ubuntu3.7.tar...
10:20:18 done (compressed size 812K).
10:20:18 * Caching systemd-sysv to /home/runner/cache-apt-pkgs/systemd-sysv:249.11-0ubuntu3.7.tar...
10:20:18 done (compressed size 32K).
10:20:18 * Caching libpam-systemd to /home/runner/cache-apt-pkgs/libpam-systemd:249.11-0ubuntu3.7.tar...
10:20:18 done (compressed size 492K).
10:20:18 * Caching systemd to /home/runner/cache-apt-pkgs/systemd:249.11-0ubuntu3.7.tar...
tar: lib/systemd/system/system-systemdx2dcryptsetup.slice: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Error: Process completed with exit code 123.
I have tried both latest (v1.2.4) and v1.2.1, and I get the same error in both cases. I have also tried execute_install_scripts: true
What can I do to resolve the issue?
Hello,
Looks like there's been a regression in v1.1.0
, please see:
https://github.com/pyvista/pyvista/runs/7497535215?check_suite_focus=true
The action will report CLI instability warning messages.
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
This is because it isn't intended to be a non-interactive command. There are alternatives however as demonstrated in this StackExchange post. The scripts should get migrated eventually.
The workflow file related to this issue can be found at https://github.com/SlimeVR/SlimeVR-Server/actions/runs/3911317186/workflow
This workflow is being run on the ubuntu-20.04
container with awalsh128/cache-apt-pkgs-action@latest
.
I'm unsure what the cause of this is, but you can see it at:
"true" \
"true" \
"false" \
libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf
"${{ inputs.version }}" \
"${{ inputs.execute_install_scripts }}" \
"${{ inputs.debug }}" \
${{ inputs.packages }}
packages: libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf
# Increment to invalidate the cache
version: 1.0
# Enables a workaround to attempt to run pre and post install scripts
execute_install_scripts: true
# Disables uploading logs as a build artifact
debug: false
debug: false
is set in the workflow file explicitly, and is even false by default in this action. You can note in my first bullet that the corresponding value for debug
seems to be printed as true
? - name: Install dependencies for Ubuntu
if: matrix.os == 'ubuntu-latest'
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: >
libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev
libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
version: 1.0
Error log:
For more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging
Error: Artifact name is not valid: cache-apt-pkgs-logs%libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
%1. Contains the following character: Line feed \n
Invalid characters include: Double quote ", Colon :, Less than <, Greater than >, Vertical bar |, Asterisk *, Question mark ?, Carriage return \r, Line feed \n, Backslash \, Forward slash /
These characters are not allowed in the artifact name due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.
Version: 1.2.2 lastest
GitHub Actions can use the Folded Block Scalar
syntax. But It seems failed in the latest version.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.