Commit Graph

965 Commits

Author SHA1 Message Date
Martchus 8f09efbc0c Add builduser to same groups as on host
This prevents permission errors when relying on a user's group
for accessing certain files (made available within the container
via bind mounts).
2023-02-18 19:47:24 +01:00
Martchus 9b13cfccb6 Log systemd-nspawn invocation parameters
When debugging it is useful to know what parameters where
used.
2023-02-18 19:47:23 +01:00
Martchus ff078bddd8 Set TERM within the systemd-nspawn container in makechrootpkg
This is required by WINE to prevent
```
unknown: I need something more specific
```
2023-02-18 19:47:23 +01:00
Martchus 18e082ac27 Adjust systemd-nspawn flags
* Remove --keep-unit since it causes sometimes errors and does not seem
  to be required
* Increase maximum number of open files (the default of 1000 is too less
  for some packages)
* Use /etc/resolv.conf from host (otherwise systemd-nspawn uses a config
  which does not work on my host setup)
2023-02-18 19:47:23 +01:00
Kevin Mihelich d27d4882ce makechrootpkg: don't delete MAKEFLAGS and PACKAGER 2023-02-18 19:47:23 +01:00
Kevin Mihelich 79d7e66743 archbuild: no setarch 2023-02-18 19:47:23 +01:00
Kevin Mihelich 33bf3f2596 makechrootpkg: no default logging 2023-02-18 19:47:23 +01:00
Kevin Mihelich 8d9f8adef7 arch-nspawn: arm fix 2023-02-18 19:47:23 +01:00
Kevin Mihelich d73c3d70f1 makechrootpkg: distcc 2023-02-18 19:47:23 +01:00
Kevin Mihelich d8e0f8faae arch-nspawn: keep mirrorlist 2023-02-18 19:47:23 +01:00
Kevin Mihelich 252483a1c6 makechrootpkg: cache dir 2023-02-18 19:47:23 +01:00
Levente Polyak f870ab6864
Version 20230105 2023-01-05 16:20:42 +01:00
Levente Polyak ea782a8ab7
makepkg.conf: enable rust debuginfo
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>
2023-01-03 23:23:43 +01:00
Morten Linderud a510331698
mkarchroot: remove deprecated -d option
It's been deprecated for a few years now.

91562aa99c

Signed-off-by: Morten Linderud <foxboron@archlinux.org>
2022-11-21 21:48:22 +01:00
Hugo Osvaldo Barrera dca8f91d26
makerepropkg: Use $CARCH instead of hardcoded x86_64
`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/
2022-11-08 22:25:32 +01:00
Morten Linderud b64d8ebacf
makepkg.conf: Include debug option by default
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
2022-11-07 22:11:35 +01:00
Levente Polyak 248cdf7ff2
Version 20221012 2022-10-12 21:40:39 +02:00
Levente Polyak 04a821dddf
common: prevent globbing and word splitting in find_cached_package
We changed the glob in 5d02c6df7f
but we forgot to quote the newly introduced variables.
2022-10-12 21:29:30 +02:00
Mike Yuan d82bc69716
makechrootpkg: fix short option handling for makepkg_args
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.
2022-10-13 00:10:17 +08:00
Felix Yan 5d02c6df7f
common: improve performance of find_cached_package
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.
2022-10-11 20:25:08 +02:00
Levente Polyak 20f89df443
Version 20221002 2022-10-02 22:21:36 +02:00
Levente Polyak fcaf3ecec0
fix: do not set extglob globally to avoid side-effects
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
2022-09-01 23:40:21 +02:00
Levente Polyak 280ef10d37
make: declare lib files as build dependencies for bash src scripts 2022-09-01 23:40:21 +02:00
Levente Polyak f8d2ad9a7d
diffpkg: pass the --color option appropriately to diffoscope
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.
2022-09-01 23:38:44 +02:00
Levente Polyak 2e4060445a
crossrepomove: fix moving debug packages to the target repo
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
2022-08-31 23:55:05 +02:00
morganamilo 1e23bbc164
makechrootpkg: support -A makepkg flag 2022-08-31 23:38:13 +02:00
Levente Polyak 53be0527e2
fix: properly check for invalid argument in checkpkg and diffpkg
The option switch case only matches by splitting via '|' instead of ','
2022-08-31 02:26:47 +02:00
Levente Polyak f4e8047d65
diffpkg: prefer to search inside the pool dir if available
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
2022-08-31 02:26:47 +02:00
Levente Polyak 70a3041ff8
diffpkg: allow to set column width for side-by-side view
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.
2022-08-31 02:26:47 +02:00
Levente Polyak ba070f1ca9
diffpkg: add colored output option with default of auto 2022-08-23 20:23:51 +02:00
Levente Polyak b9dadc5576
diffpkg: allow to choose between unified context and two columns 2022-08-23 20:23:22 +02:00
Greg Land 6bd7e70e68
doc: Fixed spelling error in devtools man page 2022-08-13 15:23:14 +02:00
Levente Polyak 626aecb472
make: split out man page files into doc/man folder 2022-06-22 01:05:03 +02:00
Levente Polyak 2088244564
make: use GEN message for all generated content 2022-06-22 01:05:03 +02:00
Levente Polyak 37df0765d2
cleanup: move PKGBUILD.proto to contrib folder 2022-06-22 01:05:03 +02:00
Levente Polyak 6d946989f3
doc: update links and references after moving to GitLab 2022-06-22 01:05:03 +02:00
Levente Polyak 5e680513e6
make: automatically collect man pages via wildcard 2022-06-22 01:05:02 +02:00
Levente Polyak d94badcd0b
make: split out source files into src folder 2022-06-22 01:05:02 +02:00
Levente Polyak e1a51770b2
make: split out config files into conf directory 2022-06-22 01:05:02 +02:00
Levente Polyak bb1a89a837
make: split out completion scripts from root worktree 2022-06-22 01:05:02 +02:00
Levente Polyak 225bac5a49
make: properly handle build target prerequisites
- 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
2022-06-22 01:05:02 +02:00
Levente Polyak 6f5aa9f438
make: use build dir as target instead of polluting root workdir
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.
2022-06-22 01:05:02 +02:00
Levente Polyak b7f2f4935d
chore: remove executable bit from *.in source files
Those files should not be executable, its simply a wrong bit on the
files as they are useless without preprocessing.
2022-06-22 01:04:56 +02:00
Levente Polyak b8d9a2b4fd
Version 20220621 2022-06-22 00:58:19 +02:00
Levente Polyak f386c13142
export-pkgbuild-keys: fix export for packages without validpgpkeys
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>
2022-06-22 00:51:22 +02:00
Levente Polyak 49d889cb8d
Version 20220620 2022-06-20 22:54:34 +02:00
Levente Polyak ac222ae004
archrelease: support subdirectories in package directories
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>
2022-06-10 16:51:52 +02:00
Allan McRae cde012d25e
Add x86_64_v3 builders
Signed-off-by: Allan McRae <allan@archlinux.org>
2022-06-10 16:31:45 +02:00
Levente Polyak 383cfa7e60
Version 20220609 2022-06-09 21:29:10 +02:00
Levente Polyak 7a8f101498
doc/export-pkgbuild-keys.1: fix filename to detect manpage location
The manpage doc has been added without a suffix which fails during
install.
2022-06-09 21:25:10 +02:00