summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-01-18fix(doc): correct typo in optional dependency batLevente Polyak
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-10feat(version): introduce version check subcommandJelle van der Waa
The version subcommand handles pkgver related commands, the first subcommand being `check`. Check runs nvchecker if a `.nvchecker.toml` file exists and compares the current pkgver with the latest release. Introduces nvchecker as optional dependency which has to be installed in order to use this particular subcommand. BREAKING CHANGE: formerly pkgctl version would output the version of the pkgctl tool, now it is used as a version related subcommand. Fixes #140 Component: pkgctl version Component: pkgctl version check Co-authored-by: Christian Heusel <christian@heusel.eu>
2024-01-10fix(build): re-source the PKGBUILD to update changed valuesLevente Polyak
During certain operations like --edit, --pkgver etc the PKGBUILD may change since last sourced. If a modified checksum of the PKGBUILD is detected, re-source it before processing. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-10feat(build): update srcinfo file after buildLevente Polyak
The srcinfo file is essentially a representation of the current build recipes, hence generate an up to date version by adding it as secondary build artifact to the build process. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-10feat(util): add library function to generate source packagesLevente Polyak
2024-01-10feat(util): parallelize srcinfo generationLevente Polyak
Heavily improve the runtime of huge split packages, by creating an own parallelized high level implementation of the makepkg low level building blocks for srcinfo generation. This reduces the runtine to generate the srcinfo file for thunderbird from 24 seconds down to 1 second.
2024-01-09feat(aur): add subcommand to drop a package from the repos to the AURChristian Heusel
Add an aur command to interact with the Arch User Repository including the drop-from-repo subommand which allows to drop packages from the official repository to the Arch User Repository in one go. Related to #143 Component: pkgctl aur drop-from-repo Co-authored-by: Levente Polyak <anthraxx@archlinux.org> Signed-off-by: Christian Heusel <christian@heusel.eu>
2024-01-07fix(completion): support subcommands that have multiple dashesLevente Polyak
Dashes are not supported in function names and underscores were not automatically translated. Replace all dashes of the current completion token, if it is an arg which allows subcommands to use underscores instead of dashes to declare their completion handlers. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-07feat(search): add optional plain output formattingLevente Polyak
This allows to run the search command without bats, which is not used in the default pretty output format. Component: pkgctl search Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-07fix(util): open lock file in append mode to avoid overwriting filesLevente Polyak
Previously if we opened a lock on an existing file with useful content we overwrote it with an empty file. This is obviously not desired, hence open the file handle in append mode preserving its content. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-07feat(search): add subcommand to search across the packaging groupJelle van der Waa
Search for an expression across the GitLab packaging group. To use a filter, include it in your query. You may use wildcards (*) to use glob matching. Available filters for the blobs scope: path, extension. Every usage of the search command must be authenticated. Consult the 'pkgctl auth' command to authenticate with GitLab or view the authentication status. This command uses bats for pretty printing the results including line numbers and syntax highlighting. Component: pkgctl search Co-authored-by: Christian Heusel <christian@heusel.eu> Co-authored-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-05chore(offload-build): deprecate in favor of pkgctl build --offloadLevente Polyak
Emit a warning when offload-build is invoked to warn about future removal. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-05chore(build): use more intuitive update-checksums option for humansLevente Polyak
The philosophy of our CLI is to provide options that better match human expectations in an intuitive way rather than mimic wording of previous tools with abbreviation. Component: pkgctl build Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-12-19chore(make): suppress output when copying git hooks directoryLevente Polyak
2023-12-19fix(cliff): trim fix separator before checking merge request idLevente Polyak
The fix separator contains a whitespace, which made the check never match. We now trim the separator before checking, making it resilient against any kind of spaces. Fixes b7984c6073f07d06896dc5cfbe38cbbd563b078f
2023-12-19feat(cliff): add label for breaking changes to changelogLevente Polyak
2023-12-19feat(configure): ship default ignore via excludeLevente Polyak
BREAKING CHANGE: Increments the repo spec version which requires to reconfigure all existing packaging repo clones. Fixes #129 Component: pkgctl repo configure Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-12-03fix(commitpkg): prefer core.editor over $EDITOR and $VISUALChristian Heusel
This is done to closer mimick the behaviour of git here, as it prefers core.editor setting over the other editor options as per git-var(1): > The order of preference is the $GIT_EDITOR environment variable, then > core.editor configuration, then $VISUAL, then $EDITOR, and then the > default chosen at compile time, which is usually vi. Fixes #192 Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-12-03feat(clone): speedup maintainer and universe clone queryLevente Polyak
There is a single endpoint now to list all pkgbases and their current maintainers. Use this endpoint for speeding up the clone of all packages of a maintainer by only issuing a single API call. Component: pkgctl repo clone Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-12-03feat(config): Add -z pack-relative-relocs to LDFLAGSJan Alexander Steffens (heftig)
This moves relative relocations from the `.rela.dyn` section into a new `.relr.dyn` section with a significantly more compact encoding, supported since glibc 2.36, GNU Binutils 2.38 and LLVM 15. This can reduce the size of libraries a lot, e.g. the installed size of `libphonenumber` dropped from about 17 MB to 7 MB. For more info, see https://gitlab.archlinux.org/archlinux/rfcs/-/merge_requests/23. Signed-off-by: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
2023-12-03chore(config): Use one -Wl in LDFLAGS per logical flagJan Alexander Steffens (heftig)
This will separate logical flags with whitespace and make it easier to split the flags across multiple lines. Signed-off-by: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
2023-11-26feat(web): implement option to print the URL instead of opening itChristian Heusel
In certain situations, users may encounter limitations when unable to utilize xdg-open (e.g., when connected to an Arch machine via SSH). Consequently, this commit introduces the option to simply print the repository link to copy or click on it. Signed-off-by: Christian Heusel <christian@heusel.eu> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-11-26feat(makerepropkg): Add option to skip running check for speedupkpcyrd
Add -n to allow running makepkg with --nocheck. This is useful to reduce the time required to reproduce a package, as they should not depend on running the check function for being reproducible. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-11-26feat(makechrootpkg): add option to interactively inspect the chrootLevente Polyak
Implement the -x option for makechrootpkg which allows to get an interactive shell in the chroot after building the package. Useful to ease the debugging of a package build. Depending on the argument, the interactive shell is either always spawned or only when an error occurred during build. This option is also forwarded from `pkgctl build` via the `--inspect` flag. Component: pkgctl build Component: makechrootpkg Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-11-24fix(make): Specify GITLAB_HOST for glab to avoid default host confusionDavid Runge
Specify the upstream instance hostname for glab using the `GITLAB_HOST` environment variable. Without it `glab` will use whatever is set as host using the `host` key in its configuration and silently break the links of all uploaded assets. Signed-off-by: David Runge <dvzrv@archlinux.org>
2023-11-24chore(release): nicely format multiple "Component:" trailersChristian Heusel
Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-11-24chore(docs): correct the manpage for pkgctl db updateChristian Heusel
Turns out the manpages of pkgctl db update and pkgctl db move were just switched without having the page title adjusted. Fixing the initial error therefore turned out to create the same problem for the manpage of pkgctl db update, which this commit re-fixes. Fixes: 5e3ab4b321072b576ba0e5d8722c39f7a7768911 ("chore(docs): correct the manpage for pkgctl db move") Fixes: f834fc4700053cb9a83956c98835b0a158cc054c ("db: command for Pacman database modification like update, move etc") Fixes #195 Component: pkgctl db update Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-11-20chore(release): allow fixes tags without cluttering the changelogChristian Heusel
Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-11-20chore(docs): correct the manpage for pkgctl db moveChristian Heusel
So far the manpage for pkgctl db move seemed to be a copy of the pkgctl db update manpage which caused an error upon install as the move page was not created. Instead compiling this manpage overwrote the one for pkgctl db update which this commit fixes. Fixes: f834fc4700053cb9a83956c98835b0a158cc054c ("db: command for Pacman database modification like update, move etc") Fixes #195 Component: pkgctl db move Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-11-20feat(build): add --updpkgsums optionChristian Heusel
This is useful so people who update patches etc. can update their checksums on building. The functionality itself was already implemented for --pkgver, but was not available separately. Fixes #168 Component: pkgctl build Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-10-31fix(cliff): update the tag_pattern to use regexOrhun Parmaksız
2023-10-17fix(build): use correct variable to reference available architecturesLevente Polyak
The referenced places were missing in a previous refactoring commit and hence broke the build command in multiple ways. Fixes 0669315821ea0af00fcc2c6271eb474174173e0a
2023-10-14fix(build): allow using --install and --offload simultaneouslyAntonio Rojas
Don't take the full (local) path of the package to install when using --offload. Fixes #194 Component: pkgctl build
2023-10-02chore: refactor loop variable nameChristian Heusel
Component: pkgctl build Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-10-02chore: refactor variable names in valid-{tags,repos}.shChristian Heusel
Even though the variables in these files are globablly used they have a weirdly local sounding name. This commit fixes this by refactoring all usages throughout our codebase. Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-09-27chore(release): streamline release make target with git-cliff and glabLevente Polyak
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-27chore(release): version v1.0.4Levente Polyak
2023-09-26fix(clone): ssh connection may require user input (key unlocking etc)Levente Polyak
Anything that requires user input (such as a key unlock or hostkey verify) will block the terminal and wait for input which will never come. When cloning or configuring a repo via ssh we therefore initially connect to gitlab to warm the connection. Afterwards users are expected to either have setup a ssh ControlMaster or use something like a ssh agent. Fixes #148 Component: pkgctl repo clone/configure Co-Authored-by: Christian Heusel <christian@heusel.eu> Signed-off-by: Christian Heusel <christian@heusel.eu> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-26chore: add a config file for git cliffChristian Heusel
This is done so that the generated changelog carries more information (i.e. the scope of the change). Co-Authored-by: Levente Polyak <anthraxx@archlinux.org> Signed-off-by: Christian Heusel <christian@heusel.eu> Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-19fix(makepkg.conf): use breezy for the bzr protocol in makepkg.confLevente Polyak
Pacman does not resolve provides for the protocol packages, hence we need to switch to the new package name for bzr. Related-to: https://gitlab.archlinux.org/pacman/pacman/-/merge_requests/78 Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-10fix(pkgctl): avoid pacman db dependency checks during repo detectionLevente Polyak
By default the sync operation enables dependency checks during the preparation of the transaction. This isn't necessary for the print option, but is done nevertheless, which leads to issues for example during soname dependency problems. The result is a none functional automatic repo detection. Fix this by explicitly disabling dependency version checks. We specify this option twice to skip all dependency checks. Fixes #189 Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-09-04feat(release): always generate a .SRCINFO file on releaseJelle van der Waa
When releasing a package always generate a .SRCINFO file so we can build tooling based upon these files instead of having to parse bash in a non-bash language. Some tests have shown around 30 seconds or generating the metadata on packages like thunderbird. The implementation in makepkg becomes semi slow for some split packages that provide a huge number of individual packages, but it seems reasonably fast so we can instead have a uniform state of always providing .SRCINFO files. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-08-27fix(build): fix repo detection for special chars in package nameChristian Heusel
Currently we used grep -E, in a way that special characters in the package name such as the '+' in 'ls++' also became part of the regex. This commit switches this to become a literal string matching using awk. Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-08-27fix(build): installing packages into the chroot fails for relative linksChristian Heusel
As the relative links are relative to the pkgctl invocations PWD and not necessarily relative to the location where makechrootpkg is invoked from this fails unexpectedly. This commit fixes this by just using the full path when passing the location to makechrootpkg. Fixes https://gitlab.archlinux.org/archlinux/devtools/-/issues/181 Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-07-21feat(arch-nspawn): Use a unique scope name instead of --keep-unitJan Alexander Steffens (heftig)
`--keep-unit` is really only for use in services like `systemd-nspawn@.service`. The parameter was added in commit 000ea6c7bbf6191b because systemd-nspawn defaults the name of the machine (and thus the generated scope) to the name of the working directory, which is not unique. Thus spawning a container from `archbuild/extra-x86_64/foo` while `archbuild/testing-x86_64/foo` is already running would fail. We can avoid the unit conflict by giving the container a unique machine name. Creating a scope also allows us to place the container in a slice hierarchy for resource control.
2023-07-21chore(arch-nspawn): Simplify args construction for systemd-nspawnJan Alexander Steffens (heftig)
2023-07-06chore: fix spelling mistake packge -> packageChristian Heusel
it seems like the mistake was copied to a few locations, this commit fixes it. Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-07-06added more build links and config forbuild-supportAndreas Baumann
2023-07-05fix(make): use correct version variable for release targetLevente Polyak
2023-07-05chore(release): version v1.0.3Levente Polyak