Due to this change, `./xbps-src sort-dependencies` will take
checkdepends into account when using -Q or -K.
Before this commit, if `pkgA` checkdepends on `pkgB`, sort-dependencies
could still print `pkgA` before `pkgB`. This causes CI to build `pkgB`
twice: first when building `pkgA`, which forces implicit build of pkgB;
second when building `pkgB` (explicit, so it will ignore the package is
already built).
The implementation uses `skip_check_step()` from previous commit, for
consistency, so checkdepends are only taken into account if the check
step would be enabled.
In particular, nothing is changed unless -Q or -K flag is passed.
EXAMPLE:
Before:
```
$ ./xbps-src -Q sort-dependencies python3-process-tests python3-pytest-cov
python3-pytest-cov
python3-process-tests
```
After:
```
$ ./xbps-src -Q sort-dependencies python3-process-tests python3-pytest-cov
python3-process-tests
python3-pytest-cov
```
This function contains the logic that determines whether the check step
will be skipped for the current pkg, taking into account `make_check`.
Use this new function in `install_pkg_deps()` so that it uses a more
accurate condition to skip installing check dependencies.
For instance, check dependencies for a pkg with `make_check=extended`
will no longer be installed when using `-Q`. Similar for `make_check=ci-skip`.
Replaces: #46207
Most terminals see '1m' as being a "bright colour" modifier, but others
consider it to be the "bold font" modifier, like the GitHub Actions log.
'97m' is a standalone "bright white" that is supported in most terminals,
including GitHub Actions, and is ignored where not supported.
When packages in `hostdir/binpkgs` are signed, it causes `xbps-src` to
annoyingly request to import the associated key (every time, in the case
of automation tools like `xxbuild` or `ymir`). This allows the user to
add their personal public key `.plist` to `etc/repo-keys/` so this
prompting does not happen.
Messages like "building [rust] for <platform>" could lead to mild panic as they
might be read as "building <large toolchain> on your laptop".
Simply adding "with" before the style/helpers should solve that.
It works for build_style, build_helper, both, and none.
=> ircdog-0.4.0_2: building with [go] for x86_64...
=> firefox-111.0.1_1: building with [rust] for x86_64...
=> riff-2.23.2_1: building with [cargo] [rust] for x86_64...
=> discord-0.0.26_1: building for x86_64...
It is not possible to use version other than currently in template.
Specifying pattern breaks build if dependency isn't in binary repo
already. That it worked when in repo was a coincidence.
Let's detect exact version requirement with regex equivalent to
`xbps-uhelper getpkgname`.
bash-5.1$ for x in a-{a,0,-,_}{a,0,-,_}{a,0,-,_}{a,0,-,_}{a,0,-,_}{a,0,-,_}{a,0,-,_}{a,0,-,_}; do [[ $x = *[\>\<]* || $x =~ -[^-_]*[0-9][^-_]*_[0-9_]+$ ]]; bash=$?; xbps-uhelper getpkgname $x > /dev/null 2> /dev/null; xbps=$?; if [ $bash != $xbps ]; then echo $x; fi; done
bash-5.1$
Co-authored-by: Duncaen <duncaen@voidlinux.org>
previously this defaulted to 1. In some rare cases, nproc is not
desirable, but that can be easily overriden in the standard ways,
etc/conf or -jN.
For compatibility with other distros, it defaults to 1 when nproc
is not available.
previously, if there was a newline in some variables, it would not format
properly in `xbps-src show`. This fixes it by always splitting it by word
in some cases, like if there is a new line in the variable's value, and
removing internal commas in some cases.
This logic was split into a function for consistency.
fixes#40996
Example:
```
$ ./xbps-src show keepassxc
pkgname: keepassxc
...
License(s): GPL-3.0-or-later
License(s): BSD-3-Clause
License(s): CC0-1.0
License(s): LGPL-2.0-only
License(s): LGPL-2.1-only
License(s): LGPL-3.0-or-later
License(s): Nokia-Qt-exception-1.1
License(s): MIT
License(s): BSL-1.0
```
A regression introduced in 4c43245e0b is causing the 'xbps-src update-sys'
command to skip the final step of installing the updated packages.
This happens because the `cmd` variable name clashes with a loop
variable used in common/environment/setup/install.sh script (line 16).
Thus the `"$cmd" == installed` comparison
(common/xbps-src/shutils/bulk.sh line 122) fails and the installation
step is skipped.
Using unique variable names in `bulk.sh` avoids this problem.
Closes: #39969 [via git-merge-pr]
The `/-/` sequence is always between e.g. archive and the repo path,
so this should work reliably for distfiles.
If gitlab is used only as a homepage, this still wroks if homepage
points to the base repo (which it usually does)