Commit Graph

933 Commits

Author SHA1 Message Date
Martchus 9dbd451089 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).
2022-07-14 22:56:12 +02:00
Martchus 0a4e766957 Log systemd-nspawn invocation parameters
When debugging it is useful to know what parameters where
used.
2022-07-14 22:56:12 +02:00
Martchus 790f1b870e Set TERM within the systemd-nspawn container in makechrootpkg
This is required by WINE to prevent
```
unknown: I need something more specific
```
2022-07-14 22:56:12 +02:00
Martchus ef8bae1874 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)
2022-07-14 22:56:12 +02:00
Kevin Mihelich 7753c3e62e makechrootpkg: don't delete MAKEFLAGS and PACKAGER 2022-07-14 22:56:12 +02:00
Kevin Mihelich 8fc8ad9b2e archbuild: no setarch 2022-07-14 22:56:12 +02:00
Kevin Mihelich 1a9894eeae makechrootpkg: no default logging 2022-07-14 22:56:12 +02:00
Kevin Mihelich 2489e76f97 arch-nspawn: arm fix 2022-07-14 22:56:12 +02:00
Kevin Mihelich 2cd43f31aa makechrootpkg: distcc 2022-07-14 22:56:12 +02:00
Kevin Mihelich 426c01c289 arch-nspawn: keep mirrorlist 2022-07-14 22:56:12 +02:00
Kevin Mihelich 80c78e500c makechrootpkg: cache dir 2022-07-14 22:56:12 +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
Levente Polyak 01b6196883
export-pkgbuild-keys: use TEMPDIR while exporting key
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>
2022-06-09 21:10:03 +02:00
Levente Polyak 8d4c46d368
export-pkgbuild-keys: add simple success export messages
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-06-09 21:06:38 +02:00
Allan McRae d00a28ea0e
Export source PGPs from PKGBUILD on commit
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>
2022-06-09 20:41:18 +02:00
Felix Yan 5e98478344
mkarchroot: generate and use C.UTF-8 by default
systemd >= 251 is forcing nspawns to use LANG=C.UTF-8:
b626f6959b

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
2022-06-09 01:07:43 +02:00
Felix Yan 0c61761f33
mkarchroot: unshare mount namespace to avoid broken root chroot creation
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
2022-06-09 00:56:41 +02:00
Levente Polyak c2f163b640
diffpkg: support comparing two given package archives
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.
2022-05-17 21:03:44 +02:00
Levente Polyak c339536a37
diffpkg: support multiple diff modes to compare with
This adds support for the following diff modes:

- content list (default)
- diffoscope
- .PKGINFO diff
- .BUILDINFO diff
2022-05-17 21:03:44 +02:00
Jelle van der Waa 11edc45048
diffpkg - diff repo vs. build package
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.
2022-05-17 21:03:43 +02:00
Levente Polyak f42b032c5e
make: respect PREFIX for bash completion instead of hardcoded /usr 2022-05-17 21:02:10 +02:00
Levente Polyak c52fab2562
make: remove bash completion symlinks on uninstall 2022-05-17 20:57:32 +02:00
Leonidas Spyropoulos 54acc5872c
build: enable gitlab-ci
Closes #85

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-04-28 19:10:59 +02:00
Haochen Tong 82cb6756aa
sogrep: fail if links database cannot be retrieved
If the links database (for some reason) does not exist on the mirror,
curl will save the html 404 page as ${repo}.links.tar.gz in the cache,
and sogrep will later fail with a decompression error from bsdtar.

This patch adds -f to curl so it doesn't save the error page, and exit
after displaying an error in such case.

Fixes !88

Signed-off-by: Haochen Tong <i@hexchain.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-04-06 00:11:16 +02:00
Evangelos Foutras 74164e348b
makepkg.conf: set LTOFLAGS="-flto=auto"
For use with pacman 6.0.1-4 which backports support for LTOFLAGS in
order to speed up builds that use gcc as the compiler. This is less
useful when clang is used, though a hack would be to specify in the
PKGBUILD `LTOFLAGS="-flto=thin"` (outside of any function).
2022-03-07 15:41:17 +02:00
Levente Polyak a17c9c6a70
Version 20220207 2022-02-07 23:28:03 +01:00
Evangelos Foutras 065c00ad8f
makepkg.conf: drop -fvar-tracking-assignments flag
According to gcc(1), this flag (like -fvar-tracking) is enabled by
default when compiling with optimization and debugging information.

As an additional benefit, packages building with the clang compiler
will work with the default flags without having to remove this flag
due to not being recognized by clang.
2022-01-31 16:34:07 +02:00
Levente Polyak ea162ef041
make: use gzip option to get reproducible tar dist like GitLab 2022-01-26 22:44:09 +01:00
Levente Polyak 648ab0ad5e
Version 20220126 2022-01-26 22:30:51 +01:00
Morten Linderud 63ad548818
commitpkg: Implement debug package handling
This implements the logic we need to properly figure out debug packages
when finding packages we are suppose to upload towards
repos.archlinux.org.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-01-26 21:31:37 +01:00
Morten Linderud 39a99e1664
common: Implement helper functions from dbscripts
This implements our current debug package detection logic.
Mostly taken from our dbscripts project.

Signed-off-by: Morten Linderud <foxboron@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-01-26 21:31:32 +01:00
Morten Linderud 95d06e0f60
commitpkg: Split signature check into own loop
This allows us to extend the uploads array without having to duplicate
the current signing logic.

This doesn't change anything as we still exit on any failed packages.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-01-26 21:31:27 +01:00
Morten Linderud ec16d6e4bd
common: implement validity as a function
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-01-26 21:31:21 +01:00
Felix Yan fa5afbc30b
checkpkg: set makepkg vars from build root to support none host archs
When building for an architecture different from the host, the correct
old package was downloaded as "$copydir"'s pacman was configured with
the target CARCH, but checkpkg doesn't know this and tries to search the
cache for host CARCH instead, producing the following error:

`==> ERROR: tarball not found for package: xxx`

This change fixes this by passing the appropriate makepkg config
explicitly, so that checkpkg behaves consistently.

Co-Authored-by: Levente Polyak <anthraxx@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-01-22 01:12:32 +01:00
Levente Polyak 412d032c26
Version 20211129 2021-11-29 20:43:22 +01:00
Levente Polyak 16b7a0e7e8
makepkg.conf: enable LTO option by default
Enable link time optimization (LTO) of packages by default by adding the
-flto flag. This provides smaller, faster executables/DSOs, and improves
GCC diagnostics.

This commit implements RFC 0004
https://gitlab.archlinux.org/archlinux/rfcs/-/blob/master/rfcs/0004-lto-by-default.rst
2021-11-28 14:33:52 +01:00
Levente Polyak cc6cf65ef9
makerepropkg: support parallel runs in dedicated namespaces
This adds proper namespace locking as well to fix screwing up the
running makerepropkg process.
2021-11-18 20:31:23 +01:00
Levente Polyak dacde204c9
makerepropkg: use correct devtools makepkg.conf files from dist
Use the recorded buildtool in order to download the matching dist
package and use the appropriate makepkg.conf for reproducing the
package. This is required as the flags are not recorded in the BUILDINFO
hence we need to provide the matching config that declared those flags.
2021-11-18 20:31:23 +01:00
Jan Alexander Steffens (heftig) 1f1f6be889
Revert "Layer gnome-unstable above staging, not testing"
This reverts commit 3231cf8c36.
2021-11-17 02:32:34 +01:00
Evangelos Foutras a23dcb0391
makepkg.conf: Sync with pacman 6.0.1-2: Pass -q as first option to curl
Includes the following hotfix:

> upgpkg: pacman 6.0.1-2: makepkg.conf: Pass -q as the first option to curl
>
> This is needed to disable reading the curlrc config file (if it exists).
>
> Same change submitted to upstream pacman:
> https://lists.archlinux.org/pipermail/pacman-dev/2021-September/025348.html
2021-11-16 22:49:44 +01:00
David Runge 7dd29dff46
lddd: Use bash instead of sh
lddd.in:
As all of the devtools scripts are based on bash, we need to use
/bin/bash and not posix sh.
2021-10-29 09:20:43 +02:00
David Runge d783cb511c Revert "Use #!/bin/bash instead of #!/bin/sh"
This reverts commit 594f972666.

We have not received a reply for the relicensing to GPL-3.0-or-later
from its author @drizzt, which is why we are removing this commit.
2021-10-29 09:19:28 +02:00
David Runge 539f09761c
Add GPL-3.0-or-later SPDX identifier to all scripts
Add the SPDX license identifier GPL-3.0-or-later to the header of all
scripts without a specific license and upgrading those that are stated
as GPL-2.0 to become GPL-3.0-or-later.
2021-10-29 09:16:13 +02:00
David Runge da7f267ef2
Add license statement to README
README.md:
Add license statement to README, specifying that devtools is licensed
under the terms of the GPL-3.0-or-later.
2021-10-29 09:16:11 +02:00