Age | Commit message (Collapse) | Author |
|
Use the workdir location which gets cleaned up automatically. Previously
this was leaking tmpfiles if the commitpkg command got aborted after
file creation.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
config path: @pkgdatadir@/mount.d/${arch}
config format:
Each line will start with 'ro' and 'rw' will be used, other lines will
be ignore, rest of line is out/path:in/path. e.g.
```
ro /some/path:/proc/cpuinfo
rw /some/some/path:/var/cache/pacman/pkg
```
For example, in the RISC-V port, if we use qemu-user to build, we need
to pass a parameter to makechrootpkg to map a correct /proc/cpuinfo, so
that software that relies on /proc/cpuinfo to obtain information can be
built normally.
Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
|
|
systemd by default limits the /tmp folder to be 10% of the host memory:
https://github.com/systemd/systemd/blob/6f2cea06bfce6ad99f0ac37ab12af61ef7549fe3/src/shared/mount-util.h#L33
This is problematic to our builds because many toolchains opt to put
build artifacts in /tmp, and expecting the host memory to be 10 times
larger is not optimal or even realistic sometimes.
This MR attempts to enlarge it to 50% memory as the host machine's
default value of /tmp. This should be a fair compromise between being
overly conservative and taking up too much memory to crash the system.
|
|
|
|
This enables DEBUG_RUSTFLAGS with the appropriate debuginfo settings.
The empty RUSTFLAGS variable is required workaround to avoid double
compilation during package function call. The issue is that the
behavior of the current implementation of buildenv_debugflags is not
idempotent, so consecutive calls will append the same flags again
leading to cargo consider the build inputs to have changed.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
It's been deprecated for a few years now.
https://github.com/archlinux/arch-install-scripts/commit/91562aa99cd8237a2dec1aff5101949e40bf7d75
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
|
|
`makerepropkg` has a hardcoded "x86_64", so fails to run on other
[unofficial] architectures, because it tries to use an x86_64-specific
makepkg config, which overrides CARCH=x86_64.
This patch addresses hardcoded half of the problem; ArchLinux derivates
still needs to ship a custom `devtools` package with their own
`makepkg-$CARCH.conf`. Usually, the only thing that really needs to be
changed in the per-architecture custom makepkg.conf is CARCH and CHOST.
See: https://lists.archlinux.org/archives/list/arch-projects@lists.archlinux.org/thread/XEEW5LXYFN3XXI5YXAUY5E4LZLMKOFTL/
|
|
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
|
|
|
|
We changed the glob in 5d02c6df7f9cd3a2820149886e8a32e7d8e7a566
but we forgot to quote the newly introduced variables.
|
|
Currently, when multiple short options are passed as a single argument,
only the one that matches the first case statement will be parsed. This
shall be fixed by using switch-case resume.
|
|
find_cached_package was unnecessarily looping over all packages which
uses a lot of CPU and could be exceptionally slow when PKGDEST contains
a lot of packages.
Fix this by adding the target pkgname, pkgver and arch to the glob and
only process potential candidates.
|
|
|
|
Instead only enable it for whatever operation requires them.
Example sides effects:
commitpkg can accidently execute PKGBUILD functions when sourcing the
PKGBUILD that has function names like package_libsigc++()
Fixes #87
|
|
|
|
Diffoscope has a different option, called --text-color which only
understands the verbose options. Hence we extend the --color shorthand
for --color=auto and pass the changed option name to diffoscope.
|
|
We did not copy over the optional debug packages to the staging
environment before db-updating the moved state. Afterwards the db-remove
call removed the debug packages from the source repo. This lead to
dropping debug packages when using crossrepomove.
This approach ensures we have a uniform shell to avoid shell glob
behavior inconsistencies. The copy of the package path is mandatory and
will error out if missing while the debug package path is optional as
reflected by a subshell that succeeds either way.
Fixes #92
|
|
|
|
The option switch case only matches by splitting via '|' instead of ','
|
|
On certain packaging machines where the pacman cache gets updated very
infrequently, the behavior of diffpkg may not function correctly as old
packages were to be downloaded as diff target. In such cases we look for
a pool directory first and search via a glob for an available pool
package sorted by version.
The pool search glob has three glob segments each disallowing the dash
delimiter to split across pkgrel, pkgver and arch. This will return the
correct package from the pool without considering overly eager wildcards
that potentially match different pkgnames.
The default pool search directory is /srv/ftp/pool
|
|
The magic values `columns` and `auto` allow to set specific aspects,
with 'auto' as the default value:
- auto: Set width to the maximum line length of all input files
- columns: Set width to the shell defined $COLUMNS env var
Furthermore any number can be passed to set a static width.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Use wildcard for the lib directory for all binprogs
- Fix individual man page prerequisites for asciidoc.conf and footer
- Require all as prerequisite for the install target
|
|
This introduces a BUILDDIR make variable that is used as the target
directory. This gives us more flexibility and easier control of a none
dirty worktree by not polluting the main workdirs.
|
|
Those files should not be executable, its simply a wrong bit on the
files as they are useless without preprocessing.
|
|
|
|
In case the validpgpkeys array is empty or undefined, the empty printf
line only included a single line break which lead to mapfile -t
consuming it as an array with 1 element consisting of an empty string.
Fix this by only calling the printf in case the validpgpkeys array is
not empty. Without any output, the mapfile -t will simply produce an
empty array.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
|
|
We need to support subdirectories for the `keys` directory used to
distribute PGP keys alongside the packaging sources.
This is achieved by using `svn ls` to list the files and directories
in the packaging root and leverage the behavior of `svn copy` to
consider subdirectories inside the root but only copy over files and
directories under the subdirectory that are already tracked by svn.
As a step in between, we now use `svn ls --recursive` to list all
tracked svn files in the current repos directory and remove all tracked
files in the staging area. Hence the `svn copy` in combination with the
`svn rm` will result in a sync behavior from the packaging root to the
repos directory.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Signed-off-by: Allan McRae <allan@archlinux.org>
|
|
|
|
The manpage doc has been added without a suffix which fails during
install.
|
|
This avoids the possibility to pollute the keys directory with temporary
files if the script is aborted in between.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Provide a tool to export keys listed in the PKGBUILDs validpgpkeys to
keys/pgp/$fingerprint.asc.
The presense of the "keys" directory alongside the PKGBUILD in trunk/
is tested during commitpkg. If the directory is abscent, keys are
exported and added to the commit. If the directory is present, a
check is made to ensure all valid PGP keys are provided.
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
systemd >= 251 is forcing nspawns to use LANG=C.UTF-8:
https://github.com/systemd/systemd/commit/b626f6959bcee11d966f96bd29a00502f4aa2ce4
It makes sense to generate the C.UTF-8 locate here when using it as the
default LANG value.
Related to: https://bugs.archlinux.org/task/74864
|
|
While `extra-x86_64-build -c` is running `pacstrap` and has
`/var/lib/archbuild/extra-x86_64/root/run` mounted, another user logs
in, thus creating a new mountpoint `/run/user/$uid` that propagates into
`/var/lib/archbuild/extra-x86_64/root/run/user/$uid` leading to a broken
root chroot.
Successive `extra-x86_64-build -c` calls will result in cleanup errors:
```
$ extra-x86_64-build -c
==> Creating chroot for [extra] (x86_64)...
-> Deleting chroot copy 'root'...
rm: skipping '/var/lib/archbuild/extra-x86_64/root/run', since it's on a different device
rm: skipping '/var/lib/archbuild/extra-x86_64/root/run', since it's on a different device
==> ERROR: Working directory '/var/lib/archbuild/extra-x86_64/root' already exists
==> ERROR: Aborting...
```
Reported by and patch adjusted from archlinuxcn.
Fixes FS#64698
|
|
This adds support similar to diffpkg from the infrastructure repo
that is based on the assumption that two archives can be passed
to the tooling in order to compare them.
|
|
This adds support for the following diff modes:
- content list (default)
- diffoscope
- .PKGINFO diff
- .BUILDINFO diff
|
|
Include a new tool as alternative to checkpkg, this runs diffoscope on a
newly build package and the current repository package. This can be
useful for finding new files / binaries.
|