Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-01-22doc(version): extensively revamp documentation for version subcommandsLevente Polyak
Enhanced and overhauled the documentation for the 'version' subcommand. The improvements include comprehensive details on the subcommand's behavior, usage, and a variety of scenarios it handles. Added a central section within the pkgctl-version manpage that documents the nvchecker configuration and rules. Component: pkgctl version Singled-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-22feat(version): use exit code for check to indicate out-of-date versionsLevente Polyak
It can be handy to have an exit code that allows better status indication or chaining. On exit, return one of the following codes: - 0: Normal exit condition, all checked versions are up-to-date - 1: Unknown cause of failure - 2: Normal exit condition, but there are out-of-date versions - 3: Failed to run some version checks Component: pkgctl version check Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-22feat(version): add verbose option to display up-to-date versionsLevente Polyak
Sometimes it can be desired to get a results for each entry even if the current version is up-to-date. Add a --verbose option to print this optional detail. Component: pkgctl version check Component: pkgctl version upgrade Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-22feat(version): add spinner while checking upstream versionsLevente Polyak
It may take quite some time to check a lot of upstream versions. However, we still want to nicely group the results together. To avoid just showing a static status message it makes much more sense to show a dynamic spinner with a summary of the progress. Component: pkgctl version check Component: pkgctl version upgrade Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-22feat(term): add terminal utils to handle a dynamic spinnerLevente Polyak
The spinner uses a status file that can be used to dynamically update the message. The spinner itself buffers the output in a frame buffer variable before flushing a frame in one go. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-21feat(version): pretty print and group together version check resultsLevente Polyak
Collect all check results in arrays and pretty print the results after grouping them together based on out-of-date, up-to-date and failures. Print a summary that shows a brief statistic about the results when processing multiple check items. Component: pkgctl version check Component: pkgctl version upgrade Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-21feat(version): support nvchecker keyfile from user config homeLevente Polyak
This adds support for global keyfile from the user config home XDG_CONFIG_HOME which allows to set tokens for GitHub and GitLab for certain nvchecker configuration. When ~/.config/nvchecker/keyfile.toml exists, it will automatically be appended as keyfile of the local .nvchecker.toml file. Component: pkgctl version check Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-21fix(version): add error handling to version check subcommandLevente Polyak
Add defensive programming to the execution chain of the version check subcommand for graceful error handling of subprocesses as well as errors returned from nvchecker itself indicated in the returned JSON. Furthermore this fixes a bug when processing multiple packages where the pkgbase variable is stuck for subsequent packages that do not declare a pkgbase variable itself. Component: pkgctl version check Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2024-01-21feat(upgrade): introduce the version upgrade subcommandChristian Heusel
This subcommand applies the detected upstream version upgrades to a PKGBUILD. Component: pkgctl version upgrade Co-authored-by: Levente Polyak <anthraxx@archlinux.org> Signed-off-by: Christian Heusel <christian@heusel.eu>
2024-01-21chore(check): factor out function to get upstream versionChristian Heusel
Component: pkgctl version check Signed-off-by: Christian Heusel <christian@heusel.eu>
2024-01-21chore(build): factor out functions to modify PKGBUILDsChristian Heusel
Component: pkgctl build Signed-off-by: Christian Heusel <christian@heusel.eu>
2024-01-18chore(search): correct typo in optional dependency batLevente Polyak
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>