Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-05-19src: modularize repo layout into a libraryLevente Polyak
This will greatly help us to structure the functionality and commands in a more sane way. We will distribute the sources as actual libraries and reuse code with imports instead of processing everything with m4 and duplicating a lot of code.
2023-05-19pkgctl: add a unified command-line frontend for devtoolsLevente Polyak
This is the first step of a simple and highly structured unified interface to devtools commands in a single wrapper. The split is based on groups like `repo`, `build` and `diff` Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19pkgrepo: add subcommand to open the packaging repository's websiteLevente Polyak
This can be quite handy if a packager quickly wants to check the GitLab page for merge requests or but reports. Quickly calling a cli command inside the current packaging clone or with the pkgname provided will open the remote location inside the browser. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19pkgrepo: add option to clone all existing packagesLevente Polyak
This can be very handy for cache warming on the repo server or to perform mass operations on all PKGBUILDs. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19pkgrepo: rename archco as a general purpose tool for packaging reposLevente Polyak
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19commitpkg: use library location for common server and remote propertiesLevente Polyak
It makes a lot of sense to have them in a central place that can be swapped and also re-used across different execution units. Hence lets move the repos.archlinux.org host to lib/common.sh Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19archco: add option to clone all packages of a maintainerLevente Polyak
Query Archweb to retrieve a list of all packages of a maintainer by their pkgbase. AFterwards loop through all packages and clone them. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-19archco: implement clone and configure subcommandsLevente Polyak
Manages Git packaging repositories and helps with their configuration according to distro specs. Git author information and the used signing key is set up from makepkg.conf read from any valid location like /etc or XDG_CONFIG_HOME. The configure command can be used to synchronize the distro specs and makepkg.conf settings for previously cloned repositories. The unprivileged option can be used for cloning packaging repositories without SSH access using read-only HTTPS. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-03-19archco: convert tool to git cloneLevente Polyak
2023-03-19crossrepomove: drop support as this is not needed anymoreLevente Polyak
We unified the source repositories to a single location. Having to cross repo move them between physical locations is not required anymore.
2023-03-19commitpkg: omit pkgbase in commit msg as git repos are per pkgbaseLevente Polyak
2023-03-19archrelease: fix git tag conversion and use library function for itLevente Polyak
This allows us to reuse the code and have the conversion in a single place instead of cluttering rules across different execution units. It also fixes the implementations according to the specs of git-check-ref-format. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-03-19archrelease: explicitly push the main refspecLevente Polyak
2023-03-19archrelease: Added pkgver to git tag conversionMorten Linderud
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
2023-03-19archrelease: ensure we check the checksum of the packageMorten Linderud
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
2023-03-19commitpkg: ensure we always stage and rm filesMorten Linderud
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
2023-03-19commitpkg: ensure we always use the main branchMorten Linderud
Signed-off-by: Morten Linderud <foxboron@archlinux.org> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-03-19git: first iteration of git supportMorten Linderud
Signed-off-by: Morten Linderud <foxboron@archlinux.org> Adjusted-by: Levente Polyak <anthraxx@archlinux.org>
2023-03-19commitpkg: disallow weak hashing algorithmsJelle van der Waa
Do not allow uploads of source=() with only weak cryptographic hashing algorithms but require at least one strong algorithm. This doesn't 100% enforce it ofcourse, but it allows for an early failure instead of failing in `db-update`. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-03-16sogrep: do not hardcode the mirrornl6720
Use the first mirror that is configured for each repo in pacman.conf. With the default configuration, this means to use the first mirror from /etc/pacman.d/mirrorlist. If a repo is not configured in pacman.conf, fall back to https://geo.mirror.pkgbuild.com.
2023-03-06fix: enable extglob before func definition for bash-5.2 compatibilityTobias Powalowski
The `extglob` option changes the behavior of the shell parser, since extended glob patterns would otherwise be syntax errors. bash-5.2 changed the way a function definition is processed by calling the parser instead of relying on the ad-hoc code in bash-5.1 and earlier versions. This means, in bash-5.2 the shell function was parsed without `extglob` being enabled because the `shopt` command to enable it was part of the function body. Add `shopt` options for `extglob` around function definitions to address this issue and allow bash-5.2 to correctly parse the function. Co-authored-by: Frédéric Pierret (fepitre) <frederic.pierret@qubes-os.org> Co-authored-by: Levente Polyak <anthraxx@archlinux.org> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-02-15mkarchroot: stop adding C.UTF-8 to locale.genEvangelos Foutras
Adding such an entry is problematic as it results in locale -a showing: C C.UTF-8 C.utf8 POSIX (other locales) In the above, C.UTF-8 is built-in whereas C.utf8 comes from locale.gen. The duplicate locale has the potential to expose undesired behavior in upstream software: https://github.com/sudo-project/sudo/issues/241
2023-01-17commitpkg: abort execution if msg file editor exits none-successfullyLevente Polyak
Previously the script execution did not abort if the msg file editor exited none-successfully leading to undesired commits with a potentially unfinished message. Instead abort the commit if the msg file editor is deliberately terminated with a failure code. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-01-17commitpkg: properly cleanup commit msg file on abortLevente Polyak
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>
2023-01-06archbuild: add architecture-specific mount configCeleste Liu
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>
2023-01-06makechrootpkg: make /tmp inside nspawn largerFelix Yan
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.
2022-12-08archbuild.in: umount -l left-over mounts inside the to-be-deleted chrootErich Eckner
2022-12-08arch-nspawn: also parse our mirror layout ↵Erich Eckner
(http[s]://mirror.url/path/$arch/$repo)
2022-12-08makechrootpkg & mkarchroot: init and populate keyringsErich Eckner
We had trouble in the past with not properly initialized keyrings. This change aims at fixing this.
2022-12-08makechrootpkg: bend to allow running solely namcap via "*-build -- -- ↵Erich Eckner
--verifysource"
2022-12-08archbuild.in: set pacman cache dir to /var/cache/archbuild32 in case of ↵Erich Eckner
non-x86_64-build, so we do not use any-packages from x86_64 mirrors, and cross-mount inside to /var/cache/pacman/pkg
2022-12-08generate separate config file for i686 and x86_64Erich Eckner
2022-12-08mkarchroot.in: copy host's /etc/hosts into the chrootErich Eckner
2022-12-08arch-nspawn should use the correct pacman config fileErich Eckner
If arch-nspawn is called with -C, pacman inside the chroot will use the provided configuration file. This should also be the case for $pacconf_cmd and pacman outside the chroot. If arch-nspawn is called without -C, pacman inside the chroot will use $workdir/etc/pacman.conf -- again, $pacconf_cmd and pacman outside the chroot should use that, too. So lets just set $pac_conf in that case. For example, Arch Linux 32 provides separate pacman configurations inside /usr/share/devtools which use /etc/pacman.d/mirrorlist32 as mirrorlist for their build commands (extra-i686-build, etc.). This way, we can build i686 and x86_64 packages on the same x86_64 host with very minimal changes to devtools.
2022-12-08allow PKGEXT to be set from the environmentErich Eckner
2022-11-21mkarchroot: remove deprecated -d optionMorten Linderud
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>
2022-11-08makerepropkg: Use $CARCH instead of hardcoded x86_64Hugo Osvaldo Barrera
`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-10-13makechrootpkg: fix short option handling for makepkg_argsMike Yuan
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-09-01fix: do not set extglob globally to avoid side-effectsLevente Polyak
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-01diffpkg: pass the --color option appropriately to diffoscopeLevente Polyak
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-08-31crossrepomove: fix moving debug packages to the target repoLevente Polyak
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-31makechrootpkg: support -A makepkg flagmorganamilo
2022-08-31fix: properly check for invalid argument in checkpkg and diffpkgLevente Polyak
The option switch case only matches by splitting via '|' instead of ','
2022-08-31diffpkg: prefer to search inside the pool dir if availableLevente Polyak
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-31diffpkg: allow to set column width for side-by-side viewLevente Polyak
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-23diffpkg: add colored output option with default of autoLevente Polyak
2022-08-23diffpkg: allow to choose between unified context and two columnsLevente Polyak
2022-06-22cleanup: move PKGBUILD.proto to contrib folderLevente Polyak
2022-06-22make: split out source files into src folderLevente Polyak