summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-09export-pkgbuild-keys: use TEMPDIR while exporting keyLevente Polyak
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-09export-pkgbuild-keys: add simple success export messagesLevente Polyak
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-06-09Export source PGPs from PKGBUILD on commitAllan McRae
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-09mkarchroot: generate and use C.UTF-8 by defaultFelix Yan
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
2022-06-09mkarchroot: unshare mount namespace to avoid broken root chroot creationFelix Yan
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-05-17diffpkg: support comparing two given package archivesLevente Polyak
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-17diffpkg: support multiple diff modes to compare withLevente Polyak
This adds support for the following diff modes: - content list (default) - diffoscope - .PKGINFO diff - .BUILDINFO diff
2022-05-17diffpkg - diff repo vs. build packageJelle van der Waa
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-17make: respect PREFIX for bash completion instead of hardcoded /usrLevente Polyak
2022-05-17make: remove bash completion symlinks on uninstallLevente Polyak
2022-04-28build: enable gitlab-ciLeonidas Spyropoulos
Closes #85 Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-04-06sogrep: fail if links database cannot be retrievedHaochen Tong
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-03-07makepkg.conf: set LTOFLAGS="-flto=auto"Evangelos Foutras
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-02-07Version 2022020720220207Levente Polyak
2022-01-31makepkg.conf: drop -fvar-tracking-assignments flagEvangelos Foutras
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-26make: use gzip option to get reproducible tar dist like GitLabLevente Polyak
2022-01-26Version 2022012620220126Levente Polyak
2022-01-26commitpkg: Implement debug package handlingMorten Linderud
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-26common: Implement helper functions from dbscriptsMorten Linderud
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-26commitpkg: Split signature check into own loopMorten Linderud
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-26common: implement validity as a functionMorten Linderud
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-01-22checkpkg: set makepkg vars from build root to support none host archsFelix Yan
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>
2021-11-29Version 2021112920211129Levente Polyak
2021-11-28makepkg.conf: enable LTO option by defaultLevente Polyak
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-18makerepropkg: support parallel runs in dedicated namespacesLevente Polyak
This adds proper namespace locking as well to fix screwing up the running makerepropkg process.
2021-11-18makerepropkg: use correct devtools makepkg.conf files from distLevente Polyak
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-17Revert "Layer gnome-unstable above staging, not testing"Jan Alexander Steffens (heftig)
This reverts commit 3231cf8c364ff0c9473131314baaf6aee4bc9169.
2021-11-16makepkg.conf: Sync with pacman 6.0.1-2: Pass -q as first option to curlEvangelos Foutras
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-10-29lddd: Use bash instead of shDavid Runge
lddd.in: As all of the devtools scripts are based on bash, we need to use /bin/bash and not posix sh.
2021-10-29Revert "Use #!/bin/bash instead of #!/bin/sh"David Runge
This reverts commit 594f972666b4823b00041e2888faae30e9aea7a2. 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-29Add GPL-3.0-or-later SPDX identifier to all scriptsDavid Runge
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-29Add license statement to READMEDavid Runge
README.md: Add license statement to README, specifying that devtools is licensed under the terms of the GPL-3.0-or-later.
2021-10-29Add GPL-3.0 license fileDavid Runge
LICENSE: Add GPL-3.0 license.
2021-10-21makechrootpkg: preserve SSH_AUTH_SOCK to support ssh operationsBenjamin Denhartog
This commit introduces the preservation of SSH_AUTH_SOCK within the chroot environment, to support SSH-based operations, such as cloning repositories via SSH.
2021-09-08doc: Add arch-nspawn man pageyoursweetie
2021-09-07Sort man page links in `man 7 devtools`Jelle van der Waa
2021-09-07doc: Add archbuild man pagetsuibin
2021-09-07doc: Add makechrootpkg man pageyoursweetie
2021-09-04Fix CI and switch to GitHub CI (#68)Felix Yan
2021-07-17Drop pacutils:`pacconf` fallbackbartus
As of pacman:5.2 `pacman-conf` obsoletes `pacconf`
2021-07-17feat: support exposing buildtool to aid reproducible builds configsLevente Polyak
This helps to map the correct build tool configs that are required to reproduce a specific package and have the appropriate *FLAGS etc.
2021-07-17makerepropkg: avoid competing redirects into the same makepkg.conf fileLevente Polyak
2021-07-17allow to call setarch with a different value than $CARCHErich Eckner
Introduce setarch-aliases.d/ which gets installed inside /usr/share/devtools. This allows to assign aliases which map one CARCH to a different name which gets provided as argument for setarch. This is necessary on archlinuxarm ("armv6h" -> "armv6l", "armv7h" -> "armv7l") and allows for more fine-grained architectures (e.g. archlinux32 has "i686" and "pentium4", which differ in the required cpu capabilities). Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2021-07-01zsh-completion: complete makechrootpkg arguments after `*-build --`Chih-Hsuan Yen
2021-06-19pacman.conf: enable ParallelDownloads and NoProgressBarLevente Polyak
The progress bar feature creates noisy log files, especially with parallel downloads. Lets disable the progress bar and instead use parallel downloads.
2021-06-19pacman.conf: enable VerbosePkgLists for easier log consumptionLevente Polyak
2021-06-17sync pacman.conf with the pacman 6.0.0-3 packageLevente Polyak
This effectively does nothing but keep the commented options in sync to not deviate from the original file for no reason. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2021-06-17sync makepkg.conf with the pacman 6.0.0-3 packageLevente Polyak
The only effective difference is that -Wp,-D_GLIBCXX_ASSERTIONS is now only defined for CXXFLAGS as of pacman 6.0.0-1 Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2021-06-16sync makepkg.conf with the pacman packageEli Schwartz
Aside for comments, this implements the buildflags RFC from: https://lists.archlinux.org/pipermail/arch-dev-public/2021-March/030374.html https://gitlab.archlinux.org/archlinux/rfcs/-/merge_requests/3 Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
2021-06-16sogrep: refresh if any database is over a day oldEvangelos Foutras
Outdated sogrep cache has already bit us once in the past. Finding one or more databases older than a day is a good indication that a refresh is in order, so do that automatically.