Age | Commit message (Collapse) | Author |
|
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
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.
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Emit a warning when offload-build is invoked to warn about future
removal.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
The referenced places were missing in a previous refactoring commit and
hence broke the build command in multiple ways.
Fixes 0669315821ea0af00fcc2c6271eb474174173e0a
|
|
Don't take the full (local) path of the package to install when using
--offload.
Fixes #194
Component: pkgctl build
|
|
Component: pkgctl build
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
`--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.
|
|
|
|
it seems like the mistake was copied to a few locations, this commit
fixes it.
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
This is done so that pkgctl can be better used to build aur packages
which can have arch=(...) settings for which we do not have a clean
chroot builder.
Signed-off-by: Christian Heusel <christian@heusel.eu>
|
|
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Early exit in case the PKGBUILD is not yet properly under version
control, which can happen for freshly initialized repositories.
Furthermore print an appropriate error message including a hint how to
resolve this.
Fixes #154
Fixes #167
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Not being in any official repo does not necessarily mean this is a new
package. One could simply be building an AUR or custom local package.
Make the message less confusing in such case.
|
|
|
|
Before porting commitpkg to Git, the code has checked the SVN status for
none commited files. During the port this has changed by straight
checking for any passed files if they were under version control or not.
In general the whole logic is very brittle as variables are searched by
regex and directly passed to eval while ignoring any function scoping.
This leads to missing files when they reference the $pkgname inside a
package function but also provide wrong ones when eval simply returns
the first $pkgname while ignoring and function scopes.
In the future this should completely be replaces by .SRCINFO processing.
Fixes #145
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
arch-nspawn, mkarchroot, makerepropkg all call "shift" after getopts
processing. Save the original args and pass on to check_root to prevent
options being discarded.
Fixes 41d4624879d01b1269d6af9c1440592a15ad7784
Fixes #149
Signed-off-by: Toolybird <toolybird@tuta.io>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Use new repo names for build targets. This follows /usr/bin/*-build
links other than x86_64_v3 ones.
|
|
This is a rather quick and simple implementation to override the current
logic and force clone with HTTPS. Allowing to explicitly clone over HTTPS
is currently required to unblock reproducible builds where no ssh keys
and GitLab user accounts are set up as of now. Hence this quick solution
comes into play to mitigate the regression on reproducible builds
builders.
Revisit the overall auto detection and protocol logic approach for a
later release related to some ideas floating around in pending
merge-requests.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
This currently makes .SRCINFO files opt-in and helps to keep the file up
to date if already present.
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
|
|
`diff_pkgs` needs to use a local variable for its options, otherwise
they will accumulate for each package diffed.
Whem comparing split packages this lead to earlier mutated DIFFOPTIONS
containing too many labels which resulted in a failure.
|
|
Check git status --porcelain, not --short.
`--short` is influenced by user configuration like `status.branch`
making it non-empty even on a clean tree. Use `--porcelain` to avoid
this.
|
|
Run up to N jobs in parallel. By default the number of jobs is equal to the
number of available processing units. For sequential processing this option
needs to be passed with 1.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Bumping the chroot version will result in the chroots checking against
the local version and force recreation in case they do not match.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
We only need to specifically use ssh:// protocol prefix if we want to
specify a special port. As we moved to support pulling directly over
port 22 from out GitLab instance we can change the url scheme to the
simple variant.
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Before modularizing the repo layout, we used m4_include to assemble
together sources into a single file. Now, we properly use a library
layout without assembling multiple files, which means we cannot anymore
rely on BASH_SOURCE inside the library file. Hence, pass along the
actual command and argv from the check_root caller.
Fixes: src: modularize repo layout into a library
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Allow overriding the worker slot with a dedicated option. Furthermore
detect if the current tty is no pts and fall back to choosing a random
worker slot between 1 and number of available processing units.
Fixes #137
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|
|
Git push will print its status, hence switch from a busy line
indicator to a single line message and allow Git to print its status
accordingly.
Otherwise we get:
==> Releasing package...Enumerating objects: 6, done.
|
|
Add an option to call the switch command after clone. Switch to a
specified version. The working tree and the index are updated to match
the version.
Signed-off-by: Christian Heusel <christian@heusel.eu>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
|