Commit Graph

933 Commits

Author SHA1 Message Date
David Runge 4ee3f5c8dd
Add GPL-3.0 license file
LICENSE:
Add GPL-3.0 license.
2021-10-29 09:16:05 +02:00
Benjamin Denhartog be80928384
makechrootpkg: preserve SSH_AUTH_SOCK to support ssh operations
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-10-21 21:41:11 +02:00
yoursweetie 9028302ac7
doc: Add arch-nspawn man page 2021-09-08 22:13:36 +02:00
Jelle van der Waa a9bf4789b3
Sort man page links in `man 7 devtools` 2021-09-07 22:37:25 +02:00
tsuibin fd17f53cef
doc: Add archbuild man page 2021-09-07 22:23:32 +02:00
yoursweetie 80e8c1fc70
doc: Add makechrootpkg man page 2021-09-07 20:55:42 +02:00
Felix Yan 6535ac9b99
Fix CI and switch to GitHub CI (#68) 2021-09-04 22:19:59 +08:00
bartus c5c5dbc64f
Drop pacutils:`pacconf` fallback
As of pacman:5.2 `pacman-conf` obsoletes `pacconf`
2021-07-17 23:10:30 +02:00
Levente Polyak 0a0e66a784
feat: support exposing buildtool to aid reproducible builds configs
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-17 22:56:11 +02:00
Levente Polyak 60e96c9d4b
makerepropkg: avoid competing redirects into the same makepkg.conf file 2021-07-17 22:45:21 +02:00
Erich Eckner 30ed6920c7
allow to call setarch with a different value than $CARCH
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-17 22:35:04 +02:00
Chih-Hsuan Yen 4602659068
zsh-completion: complete makechrootpkg arguments after `*-build --` 2021-07-01 20:25:38 +02:00
Levente Polyak 43d58212c5
pacman.conf: enable ParallelDownloads and NoProgressBar
The progress bar feature creates noisy log files, especially with
parallel downloads. Lets disable the progress bar and instead use
parallel downloads.
2021-06-19 22:26:25 +02:00
Levente Polyak 6a628af422
pacman.conf: enable VerbosePkgLists for easier log consumption 2021-06-19 21:18:37 +02:00
Levente Polyak 0635f0c5ec
sync pacman.conf with the pacman 6.0.0-3 package
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-17 00:05:06 +02:00
Levente Polyak 04af0374f3
sync makepkg.conf with the pacman 6.0.0-3 package
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-17 00:04:52 +02:00
Eli Schwartz 54e03641a3
sync makepkg.conf with the pacman package
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-16 23:42:23 +02:00
Evangelos Foutras 385b47e56e
sogrep: refresh if any database is over a day old
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.
2021-06-16 23:37:10 +02:00
Evangelos Foutras 9d39abbefe
sogrep: store unextracted *.links.tar.gz databases
Extracting these databases is painfully slow on HDDs (especially laptop
ones). There shouldn't be a drawback to keeping the tarballs around and
extracting them to a temporary directory (usually tmpfs) to parse them.

The implemented update logic tries to avoid redownloading unchanged dbs.
2021-06-16 23:37:06 +02:00
Levente Polyak 90ba07d9be
Version 20210202 2021-02-02 00:51:57 +01:00
Levente Polyak 8c26438df8
makechrootpkg: only expose failed build logs instead of products
After further followups always moving all products isn't actually
desired as they can theoretically be broken in various ways if
arch-nspawn exists non successful.

However, as we would like to always preserve the produced log files we
instead split out the logfiles into an own function and call that for
unsuccessful buils.

Fixes 4f305aa3
2021-01-31 23:44:11 +01:00
Christian Hesse a49bcf2097
doc: update default build host
Commit 09e169b741 changed the default
build host from dragon.archlinux.org to build.archlinux.org - match
in documentation.

Signed-off-by: Christian Hesse <mail@eworm.de>
2021-01-31 02:16:44 +01:00
Eli Schwartz 0883f45b3a
makerepropkg: allow specifying the package in pacman -S format
We now accept:

1) # nothing

    in which case we'll use the PKGBUILD to retrieve...

2) name, or repo/name

    in which case we'll use pacman to cache the package and retrieve...

3) a filename

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
2021-01-27 00:56:48 +01:00
Eli Schwartz 99c2020d47
makerepropkg: do fast cache lookups
Teach get_pkgfile to call itself in local-only mode and find a cached
file no matter what its extension is. Avoids repetitively trying to curl
random files, fail with 404 errors, and proceed to discover a cache hit
under a different file extension.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
2021-01-27 00:56:48 +01:00
Christian Hesse 00f7a6a415
makepkg.conf: make rsync use new-style compression in makepkg.conf
Our rsync package is no longer built with bundled zlib, so old-style
compression is no longer supported.

https://www.archlinux.org/news/rsync-compatibility/

Signed-off-by: Christian Hesse <mail@eworm.de>
2021-01-26 20:56:46 +01:00
bartoszek 4f305aa316
makechrootpkg: Expose failed build logs/products
Since move_products() function is fairly robust we can make it run for
failed build also to expose logs for packages that fails in build(),
prepare() or package(). It also exposes partially packaged split
packages if they fail in latter package_xxx().
2021-01-26 20:43:29 +01:00
Levente Polyak 09e169b741
offload-build: change default host to build.archlinux.org 2021-01-26 20:40:47 +01:00
Jelle van der Waa 360a7611a8
doc: add devtools.7 man page
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2021-01-26 20:39:06 +01:00
Konstantin Gizdov d507db9490
offload-build: respect SRCEXT from makepkg.conf 2021-01-26 20:38:53 +01:00
Levente Polyak aff81d34fd
Version 20200407 2020-04-07 19:46:10 +02:00
Levente Polyak 5b1123e11f
offload-build: retrieve the PKGBUILD in case makepkg changes it via pkgver
Building a package may change the PKGBUILD during update_pkgver. Let's
retrieve the PKGBUILD after building to ensure we have the very same
file as the one we used to build the package. Otherwise this may lead to
the inability to distribute the package during commitpkg in case the
expected and the actual hashsum mismatch.
2020-03-09 23:27:03 +01:00
Levente Polyak a0f79fcce0
makerepropkg: prioritize downloading .zst packages over legacy format
First try a .zst location before falling back to legacy variants. This
should slightly speed up downloading of dependencies, especially over
time as .zst packages are or will be the dominant format.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2020-03-09 23:27:03 +01:00
Eli Schwartz 94b0413e13
arch-nspawn: fix up host_mirrors cachedir handling
This was incorrectly implemented in commit
0067176529, which added the host_mirrors
root directory as a cachedir, when we actually want to use the pool/*
subdirectories (the same ones installed on the build server's
/etc/pacman.conf).

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2020-02-27 14:50:27 +01:00
Eli Schwartz e963b6da9e
makechrootpkg: use the chroot database to find checkpkg packages
We don't want to check against the current version known to the host
system, because that will be incorrect in a wide variety of situations,
including:
- the build host hasn't done a full system upgrade yet
- we're building against staging, and want to see the delta between
  different staging versions
- we're building against extra, but the host runs testing which carries
  changes we don't want to visualize right now
- the chroot has a configured database not available to the host, and
  the package is only available there

Essentially, it's rarely 100% correct to run checkpkg on the host, but
we already have a database we *know* is correct, and that is the one we
just built the package against. So let's use that.

This also fixes a bug in the current logic, where in order to try
downloading fresh databases, we work in a non-cached temporary working
database to download the package files, but then let checkpkg default to
comparing packages in the system database. Since we are explicitly
trying to compare against packages that differ from the host's pacman
database, we need to pass the package files as options to checkpkg,
using the additional modes added in commit c14338c0fe

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2020-02-27 14:50:19 +01:00
Eli Schwartz b2cbb8628e
checkpkg: fix support for http:// url comparisons
Broken in commit c14338c0fe.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2020-02-27 14:50:14 +01:00
Eli Schwartz 6d273f79c3
zsh-completion: update for new makerepropkg options
Thanks to anthraxx for the guidance.

Original-patch-by: Levente Polyak <anthraxx@archlinux.org>
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2020-02-27 14:50:05 +01:00
Eli Schwartz 51842a1676
makerepropkg: support checking multiple split packages
By specifying multiple package files, we assume they are all from the
same PKGBUILD, and try to check them all against the produced artifacts.
Since the buildinfo should be comparable for all of them, we simply use
the first one passed on the command line.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2020-02-27 14:49:54 +01:00
Eli Schwartz 53fe5c67a1
makerepropkg: add support to check unreproducible packages using diffoscope
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2020-02-27 14:49:48 +01:00
Eli Schwartz 21d9984acc
makerepropkg: fix wonky indent
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2020-02-27 14:49:33 +01:00
Levente Polyak cb6484fe45
Version 20200213 2020-02-13 01:53:45 +01:00
Levente Polyak bcb1b4a163
offload-build: handle user specific makepkg.conf on the remote host
This ensures we take user specific config values for PKGDEST into
account when printing the package list. This is required as devtools
archbuild_cmd puts packages potentially into the user defined PKGDEST
which the package list would otherwise miss.
2020-02-12 00:05:00 +01:00
Levente Polyak 57fb44b976
offload-build: take makepkg.conf from devtools for appropriate packagelist
This fixes an issue with the usage of makepkg --packagelist to get the
produced artifacts filenames according to the PKGEXT used in devtools'
makepkg.conf instead of the one defined in pacman.

One goal we want to preserve is that devtools configuration should be
self contained and not require any editing of non owned files like
the host /etc/makepkg.conf to produce expected results.

Additionally modify the archbuild_cmd override for multilib builds to
use an independent variable and not fiddle with the actual arch
variable to select the appropriate cmd.
2020-02-11 01:42:17 +01:00
Levente Polyak 9b4d8ae930
offload-build: convert to in-prog so we can perform pre-processing 2020-02-10 23:02:41 +01:00
Levente Polyak 4c206ab549
makerepropkg: take makepkg.conf from devtools pkgdatadir location
This ensures we use the same configuration for reproducing packages as
we use for building them via devtools.
One example of why we care about this are the COMPRESS* settings that
may differ from the guest's pacman shipped makepkg.conf that affect the
reproducibility of packages.
2020-02-10 23:02:16 +01:00
Eli Schwartz 4c08847bfa
makerepropkg: correctly reproduce a pkgfile with any compression type
We don't want the default PKGEXT in the current version of devtools, we
want the PKGEXT we *know* the input file used.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2019-12-27 18:54:26 +01:00
Levente Polyak 74d7a70915
Version 20191227 2019-12-27 16:06:30 +01:00
Robin Broda 5eacb475cd
makerepopkg: fix zstd extension (.zstd -> .zst) 2019-12-27 16:05:14 +01:00
Robin Broda bcda211dd8
makepkg.conf: change default compression method to zstd 2019-12-27 16:04:56 +01:00
Levente Polyak d4546c59ce
Version 20191212 2019-12-12 01:01:44 +01:00
Levente Polyak d6866e0544
lib: support arbitrary compressed package files
We need to modify the matching of valid package files to support formats
like zstd. Let's try to use an eager approach instead of a simple
whitelist in order to be functional for arbitrary formats that may be
introduced in the future without the need to adjust any code.

Allow any single fragment word as compression type but filter out known
non-package content like signature files.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2019-12-08 20:59:11 +01:00