diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index da3bef2..ab24ede 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,15 +4,39 @@ void-packages is the backbone of the Void Linux distribution. It contains all th This document describes how you, as a contributor, can help with adding packages, correcting bugs and adding features to void-packages. -## Getting your packages into Void by yourself +## Package Requirements -If you really want to get a package into Void Linux, we recommend you package it yourself. +To be included in the Void repository, software must meet at least one of the following requirements. +Exceptions to the list are possible, and might be accepted, but are extremely unlikely. +If you believe you have an exception, start a PR and make an argument for why that particular piece of software, +while not meeting any of the following requirements, is a good candidate for the Void packages system. + +1. **System**: The software should be installed system-wide, not per-user. + +1. **Compiled**: The software needs to be compiled before being used, even if it is software that is not needed by the whole system. + +1. **Required**: Another package either within the repository or pending inclusion requires the package. + +In particular, new themes are highly unlikely to be accepted. +Simple shell scripts are unlikely to be accepted unless they provide considerable value to a broad user base. +New fonts may be accepted if they provide value beyond aesthetics (e.g. they contain glyphs for a script missing in already packaged fonts). + +Browser forks, including those based on Chromium and Firefox, are generally not accepted. +Such forks require heavy patching, maintenance and hours of build time. + +Software need to be used in version announced by authors as ready to use by the general public - usually called releases. +Betas, arbitrary VCS revisions, templates using tip of development branch taken at build time and releases created by the package maintainer won't be accepted. + +## Creating, updating, and modifying packages in Void by yourself + +If you really want to get a new package or package update into Void Linux, we recommend you contribute it yourself. We provide a [comprehensive Manual](./Manual.md) on how to create new packages. -There's also a [manual for xbps-src](./README.md), which is used -to build package files from templates. +There's also a [manual for xbps-src](./README.md), which is used to build package files from templates. -For this guide, we assume you have basic knowledge about [git](http://git-scm.org), as well as a [GitHub Account](http://github.com). +For this guide, we assume you have basic knowledge about [git](http://git-scm.org), as well as a [GitHub Account](http://github.com) with [SSH set up](https://docs.github.com/en/authentication/connecting-to-github-with-ssh). + +You should also [set the email](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address) on your GitHub account and in git so your commits are associated with your GitHub account properly. To get started, [fork](https://help.github.com/articles/fork-a-repo) the void-linux `void-packages` git repository on GitHub and clone it: @@ -23,9 +47,24 @@ To keep your forked repository up to date, setup the `upstream` remote to pull i $ git remote add upstream https://github.com/void-linux/void-packages.git $ git pull --rebase upstream master +This can also be done with the `github-cli` tool: + + $ gh repo fork void-linux/void-packages + $ gh repo clone /void-packages + +This automatically sets up the `upstream` remote, so `git pull --rebase upstream master` can still be used to keep your fork up-to-date. + +Using the GitHub web editor for making changes is strongly discouraged, because you will need to clone the repo anyways to edit and test your changes. + +using the the `master` branch of your fork for contributing is also strongly discouraged. +It can cause many issues with updating your pull request (also called a PR), and having multiple PRs open at once. +To create a new branch: + + $ git checkout master -b + ### Creating a new template -You can use the helper tool `xnew`, from the [xtools](https://github.com/chneukirchen/xtools) package, to create new templates: +You can use the helper tool `xnew`, from the [xtools](https://github.com/leahneukirchen/xtools) package, to create new templates: $ xnew pkgname subpkg1 subpkg2 ... @@ -33,44 +72,58 @@ Templates must have the name `void-packages/srcpkgs//template`, where ` For deeper insights on the contents of template files, please read the [manual](./Manual.md), and be sure to browse the existing template files in the `srcpkgs` directory of this repository for concrete examples. -When you've finished working on the template file, please check it with `xlint` helper from the [xtools](https://github.com/chneukirchen/xtools) package: +### Updating a template + +At minimum, a template update will consist of changing `version` and `checksum`, if there was an upstream version change, and/or `revision`, if a template-specific change (e.g. patch, correction, etc.) is needed. +Other changes to the template may be needed depending on what changes the upstream has made. + +The checksum can be updated automatically with the `xgensum` helper from the [xtools](https://github.com/leahneukirchen/xtools) package: + + $ xgensum -i + +### Committing your changes + +After making your changes, please check that the package builds successfully. From the top level directory of your local copy of the `void-packages` repository, run: + + $ ./xbps-src pkg + +Your package must build successfully for at least x86, but we recommend also trying a cross-build for armv6l* as well, e.g.: + + $ ./xbps-src -a armv6l pkg + +When building for `x86_64*` or `i686`, building with the `-Q` flag or with `XBPS_CHECK_PKGS=yes` set in `etc/conf` (to run the check phase) is strongly encouraged. +Also, new packages and updates will not be accepted unless they have been runtime tested by installing and running the package. + +When you've finished working on the template file, please check it with `xlint` helper from the [xtools](https://github.com/leahneukirchen/xtools) package: $ xlint template If `xlint` reports any issues, resolve them before committing. -### Committing your changes - Once you have made and verified your changes to the package template and/or other files, make one commit per package (including all changes to its sub-packages). Each commit message should have one of the following formats: -* for new packages, use ```New package: -``` ([example](https://github.com/void-linux/void-packages/commit/176d9655429188aac10cd229827f99b72982ab10)). +* for new packages, use `New package: -` ([example](https://github.com/void-linux/void-packages/commit/8ed8d41c40bf6a82cf006c7e207e05942c15bff8)). -* for package updates, use ```: update to .``` ([example](https://github.com/void-linux/void-packages/commit/b6b82dcbd4aeea5fc37a32e4b6a8dd8bd980d5a3)). +* for package updates, use `: update to .` ([example](https://github.com/void-linux/void-packages/commit/c92203f1d6f33026ae89f3e4c1012fb6450bbac1)). -* for template modifications without a version change, use ```: ``` ([example](https://github.com/void-linux/void-packages/commit/8b68d6bf1eb997cd5e7c095acd040e2c5379c91d)). +* for template modifications without a version change, use `: ` ([example](https://github.com/void-linux/void-packages/commit/ff39c912d412717d17232de9564f659b037e95b5)). -* for package removals, use ```: remove package``` ([example](https://github.com/void-linux/void-packages/commit/83784632d94deee5d038c8e1c4c1dffa922fca21)). +* for package removals, use `: remove package` and include the removal reason in the commit body ([example](https://github.com/void-linux/void-packages/commit/4322f923bdf5d4e0eb36738d4f4717d72d0a0ca4)). -* for `common/shlibs` modifications, use `common/shlibs: ` ([example](https://github.com/void-linux/void-packages/commit/613651c91811cb4fd2e1a6be701c87072d759a9f)). +* for changes to any other file, use `: ` ([example](https://github.com/void-linux/void-packages/commit/e00bea014c36a70d60acfa1758514b0c7cb0627d), + [example](https://github.com/void-linux/void-packages/commit/93bf159ce10d8e474da5296e5bc98350d00c6c82), [example](https://github.com/void-linux/void-packages/commit/dc62938c67b66a7ff295eab541dc37b92fb9fb78), [example](https://github.com/void-linux/void-packages/commit/e52317e939d41090562cf8f8131a68772245bdde)) -If you want to describe your changes in more detail, add an empty line followed by those details ([example](https://github.com/void-linux/void-packages/commit/f1c45a502086ba1952f23ace9084a870ce437bc6)). +If you want to describe your changes in more detail, explain in the commit body (separated from the first line with a blank line) ([example](https://github.com/void-linux/void-packages/commit/f1c45a502086ba1952f23ace9084a870ce437bc6)). -`xbump`, available in the [xtools](https://github.com/chneukirchen/xtools) package, can be used to commit a new or updated package: +`xbump`, available in the [xtools](https://github.com/leahneukirchen/xtools) package, can be used to commit a new or updated package: $ xbump -`xbump` will use `git commit` to commit the changes with the appropriate commit message. For more fine-grained control over the commit, specific options can be passed to `git commit` by adding them after the package name. +`xrevbump`, also available in the [xtools](https://github.com/leahneukirchen/xtools) package, can be used to commit a template modification for a package: -After committing your changes, please check that the package builds successfully. From the top level directory of your local copy of the `void-packages` repository, run: + $ xrevbump '' - $ ./xbps-src pkg - -Your package must build successfully for at least x86, but we recommend trying to build for armv* as well, e.g.: - - $ ./xbps-src -a armv7l pkg - -Runtime testing of packages and building with the `-Q` flag or with `XBPS_CHECK_PKGS=yes` set in the environment or `etc/conf` are strongly encouraged. -New packages will not be accepted unless they have been runtime tested. +`xbump` and `xrevbump` will use `git commit` to commit the changes with the appropriate commit message. For more fine-grained control over the commit, specific options can be passed to `git commit` by adding them after the package name. ### Starting a pull request @@ -123,9 +176,31 @@ Once you have applied all requested changes, the reviewers will merge your reque If the pull request becomes inactive for some days, the reviewers may or may not warn you when they are about to close it. If it stays inactive further, it will be closed. -Please abstain from temporarily closing a pull request while revising the templates. Instead, leave a comment on the PR describing what still needs work, or add "[WIP]" to the PR title. Only close your pull request if you're sure you don't want your changes to be included. +Please abstain from temporarily closing a pull request while revising the templates. Instead, leave a comment on the PR describing what still needs work, [mark it as a draft](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#converting-a-pull-request-to-a-draft), or add "[WIP]" to the PR title. Only close your pull request if you're sure you don't want your changes to be included. #### Publishing the package Once the reviewers have merged the pull request, our [build server](http://build.voidlinux.org) is automatically triggered and builds all packages in the pull request for all supported platforms. Upon completion, the packages are available to all Void Linux users. + +## Testing Pull Requests + +While it is the responsibility of the PR creator to test changes before sending it, one person can't test all configuration options, usecases, hardware, etc. +Testing new package submissions and updates is always helpful, and is a great way to get started with contributing. +First, [clone the repository](https://github.com/void-linux/void-packages#quick-start) if you haven't done so already. +Then check out the pull request, either with `github-cli`: + + $ gh pr checkout + +Or with `git`: + +If your local void-packages repository is cloned from your fork, you may need to add the main repository as a remote first: + + $ git remote add upstream https://github.com/void-linux/void-packages.git + +Then fetch and check out the PR (replacing `` with either `origin` or `upstream`): + + $ git fetch pull//head: + $ git checkout + +Then [build and install](https://github.com/void-linux/void-packages#building-packages) the package and test its functionality. diff --git a/Manual.md b/Manual.md index 8ec7554..fa552f6 100644 --- a/Manual.md +++ b/Manual.md @@ -6,7 +6,6 @@ packages for XBPS, the `Void Linux` native packaging system. *Table of Contents* * [Introduction](#Introduction) - * [Quality Requirements](#quality_requirements) * [Package build phases](#buildphase) * [Package naming conventions](#namingconventions) * [Libraries](#libs) @@ -62,6 +61,7 @@ packages for XBPS, the `Void Linux` native packaging system. * [kernel-hooks](#triggers_kernel_hooks) * [mimedb](#triggers_mimedb) * [mkdirs](#triggers_mkdirs) + * [openjdk-profile](#triggers_openjdk_profile) * [pango-modules](#triggers_pango_module) * [pycompile](#triggers_pycompile) * [register-shell](#triggers_register_shell) @@ -123,38 +123,6 @@ If everything went fine after running a binary package named `foo-1.0_1..xbps` will be generated in the local repository `hostdir/binpkgs`. - -### Quality Requirements - -To be included in the Void repository, software must meet at least one -of the following requirements. Exceptions to the list are possible, -and might be accepted, but are extremely unlikely. If you believe you have an -exception, start a PR and make an argument for why that particular piece of -software, while not meeting any of the following requirements, is a good candidate for -the Void packages system. - -1. System: The software should be installed system-wide, not per-user. - -1. Compiled: The software needs to be compiled before being used, even if it is - software that is not needed by the whole system. - -1. Required: Another package either within the repository or pending inclusion - requires the package. - -In particular, new themes are highly unlikely to be accepted. Simple shell -scripts are unlikely to be accepted unless they provide considerable value to a -broad user base. New fonts may be accepted if they provide value beyond -aesthetics (e.g. they contain glyphs for a script missing in already packaged -fonts). - -Browser forks, including those based on Chromium and Firefox, are generally not -accepted. Such forks require heavy patching, maintenance and hours of build time. - -Software need to be used in version announced by authors as ready to use by -the general public - usually called releases. Betas, arbitrary VCS revisions, -templates using tip of development branch taken at build time and releases -created by the package maintainer won't be accepted. - ### Package build phases @@ -427,6 +395,8 @@ in this directory such as `${XBPS_BUILDDIR}/${wrksrc}`. - `XBPS_RUST_TARGET` The target architecture triplet used by `rustc` and `cargo`. +- `XBPS_BUILD_ENVIRONMENT` Enables continuous-integration-specific operations. Set to `void-packages-ci` if in continuous integration. + ### Available variables @@ -463,7 +433,7 @@ the generated `binary packages` have been modified. - `short_desc` A string with a brief description for this package. Max 72 chars. - `version` A string with the package version. Must not contain dashes or underscore -and at least one digit is required. Shell's variable substition usage is not allowed. +and at least one digit is required. Shell's variable substitution usage is not allowed. Neither `pkgname` or `version` should contain special characters which make it necessary to quote them, so they shouldn't be quoted in the template. @@ -542,13 +512,14 @@ can be specified by prepending a commercial at (@). For tarballs you can find the contents checksum by using the command `tar xf --to-stdout | sha256sum`. -- `wrksrc` The directory name where the package sources are extracted, by default -set to `${pkgname}-${version}`. If the top level directory of a package's `distfile` is different from the default, `wrksrc` must be set to the top level directory name inside the archive. +- `wrksrc` The directory name where the package sources are extracted, set to `${pkgname}-${version}`. - `build_wrksrc` A directory relative to `${wrksrc}` that will be used when building the package. -- `create_wrksrc` Enable it to create the `${wrksrc}` directory. Required if a package -contains multiple `distfiles`. +- `create_wrksrc` Usually, after extracting, if there're multiple top-level + files and/or directories or when there're no directories at all, top-level files, + and directories will be wrapped inside one more layer of directory. + Set `create_wrksrc` to force this behaviour. - `build_style` This specifies the `build method` for a package. Read below to know more about the available package `build methods` or effect of leaving this not set. @@ -577,10 +548,8 @@ build methods. Unset by default. `${build_style}` is set to `configure`, `gnu-configure` or `gnu-makefile` build methods. Unset by default. -- `make_install_args` The arguments to be passed in to `${make_cmd}` at the `install-destdir` -phase if `${build_style}` is set to `configure`, `gnu-configure` or -`gnu-makefile` build methods. By default set to -`PREFIX=/usr DESTDIR=${DESTDIR}`. +- `make_install_args` The arguments to be passed in to `${make_cmd}` at the `install` +phase if `${build_style}` is set to `configure`, `gnu-configure` or `gnu-makefile` build methods. - `make_build_target` The build target. If `${build_style}` is set to `configure`, `gnu-configure` or `gnu-makefile`, this is the target passed to `${make_cmd}` in the build phase; @@ -600,6 +569,9 @@ path of the Python wheel produced by the build phase that will be installed; whe `python-pep517` build style will look for a wheel matching the package name and version in the current directory with respect to the install. +- `make_check_pre` The expression in front of `${make_cmd}`. This can be used for wrapper commands +or for setting environment variables for the check command. By default empty. + - `patch_args` The arguments to be passed in to the `patch(1)` command when applying patches to the package sources during `do_patch()`. Patches are stored in `srcpkgs//patches` and must be in `-p1` format. By default set to `-Np1`. @@ -609,6 +581,11 @@ and `XBPS_MAKEJOBS` will be set to 1. If a package does not work well with `XBPS but still has a mechanism to build in parallel, set `disable_parallel_build` and use `XBPS_ORIG_MAKEJOBS` (which holds the original value of `XBPS_MAKEJOBS`) in the template. +- `disable_parallel_check` If set tests for the package won't be built and run in parallel +and `XBPS_MAKEJOBS` will be set to 1. If a package does not work well with `XBPS_MAKEJOBS` +but still has a mechanism to run checks in parallel, set `disable_parallel_check` and +use `XBPS_ORIG_MAKEJOBS` (which holds the original value of `XBPS_MAKEJOBS`) in the template. + - `make_check` Sets the cases in which the `check` phase is run. This option has to be accompanied by a comment explaining why the tests fail. Allowed values: @@ -653,7 +630,7 @@ debugging symbols. Files can be given by full path or by filename. - `noshlibprovides` If set, the ELF binaries won't be inspected to collect the provided sonames in shared libraries. -- `noverifyrdeps` If set, the ELF binaries and shared libaries won't be inspected to collect +- `noverifyrdeps` If set, the ELF binaries and shared libraries won't be inspected to collect their reverse dependencies. You need to specify all dependencies in the `depends` when you need to set this. @@ -693,7 +670,7 @@ This appends to the generated file rather than replacing it. - `nopie` Only needs to be set to something to make active, disables building the package with hardening features (PIE, relro, etc). Not necessary for most packages. -- `nopie_files` White-space seperated list of ELF binaries that won't be checked +- `nopie_files` White-space separated list of ELF binaries that won't be checked for PIE. Files must be given by full path. - `reverts` xbps supports a unique feature which allows to downgrade from broken @@ -779,7 +756,7 @@ A special value `noarch` used to be available, but has since been removed. So far, we have listed four types of `depends` variables: `hostmakedepends`, `makedepends`, `checkdepends` and `depends`. These different kinds of variables are necessary because `xbps-src` supports cross compilation and to avoid -installing unecessary packages in the build environment. +installing unnecessary packages in the build environment. During a build process, there are programs that must be _run_ on the host, such as `yacc` or the C compiler. The packages that contain these programs should be @@ -1124,9 +1101,9 @@ Current working directory for functions is set as follows: - For do_fetch, post_fetch: `XBPS_BUILDDIR`. -- For do_extract, post_extract: `wrksrc`. +- For do_extract through do_patch: `wrksrc`. -- For pre_patch through post_install: `build_wrksrc` +- For post_patch through post_install: `build_wrksrc` if it is defined, otherwise `wrksrc`. @@ -1276,8 +1253,8 @@ declaring a virtual name and version in the `${provides}` template variable (e.g specific provider can declare a dependency on the virtual package name with the prefix `virtual?` (e.g., `depends="virtual?vpkg-0.1_1"`). When a package is built by `xbps-src`, providers for any virtual packages will be confirmed to exist and will be built if necessary. A map from virtual -packages to their default providers is defined in `etc/default.virtual`. Individual mappings can be -overridden by local preferences in `etc/virtual`. Comments in `etc/default.virtual` provide more +packages to their default providers is defined in `etc/defaults.virtual`. Individual mappings can be +overridden by local preferences in `etc/virtual`. Comments in `etc/defaults.virtual` provide more information on this map. @@ -1406,6 +1383,14 @@ If the service requires directories in parts of the system that are not generall temporary filesystems. Then use the `make_dirs` variable in the template to create those directories when the package is installed. +If the package installs a systemd service file or other unit, leave it in place as a +reference point so long as including it has no negative side effects. + +Examples of when *not* to install systemd units: + +1. When doing so changes runtime behavior of the packaged software. +2. When it is done via a compile time flag that also changes build dependencies. + ### 32bit packages @@ -1585,12 +1570,11 @@ recursively by the target python version. This differs from `pycompile_module` i path may be specified, Example: `pycompile_dirs="usr/share/foo"`. - `python_version`: this variable expects the supported Python major version. -By default it's set to `2`. This variable is needed for multi-language +In most cases version is inferred from shebang, install path or build style. +Only required for some multi-language applications (e.g., the application is written in C while the command is written in Python) or just single Python file ones that live in `/usr/bin`. -> NOTE: you need to define it *only* for non-Python modules. - Also, a set of useful variables are defined to use in the templates: | Variable | Value | @@ -1628,6 +1612,7 @@ The following template variables influence how Go packages are built: any go.mod files, `default` to use Go's default behavior, or anything accepted by `go build -mod MODE`. Defaults to `vendor` if there's a vendor directory, otherwise `default`. +- `go_ldflags`: Arguments to pass to the linking steps of go tool. The following environment variables influence how Go packages are built: @@ -1997,6 +1982,13 @@ During removal it will delete the directory using `rmdir`. To include this trigger use the `make_dirs` variable, as the trigger won't do anything unless it is defined. + +#### openjdk-profile + +The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that +sets the `JAVA_HOME` environment variable to the currently-selected alternative for +`/usr/bin/java` on installation. This trigger must be manually requested. + #### pango-modules diff --git a/common/build-helper/cmake-wxWidgets-gtk3.sh b/common/build-helper/cmake-wxWidgets-gtk3.sh index 68bc53d..7d813dc 100644 --- a/common/build-helper/cmake-wxWidgets-gtk3.sh +++ b/common/build-helper/cmake-wxWidgets-gtk3.sh @@ -3,3 +3,4 @@ if [ "$CROSS_BUILD" ]; then else export WX_CONFIG=/usr/bin/wx-config-gtk3 fi +configure_args+=" -DwxWidgets_CONFIG_EXECUTABLE=${WX_CONFIG} " diff --git a/common/build-helper/python3.sh b/common/build-helper/python3.sh new file mode 100644 index 0000000..4707599 --- /dev/null +++ b/common/build-helper/python3.sh @@ -0,0 +1,16 @@ +# fix building non-pure-python modules on cross +if [ -n "$CROSS_BUILD" ]; then + export PYPREFIX="$XBPS_CROSS_BASE" + export CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include" + export LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib" + export CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS" + export LDSHARED="${CC} -shared $LDFLAGS" + export PYTHON_CONFIG="${XBPS_CROSS_BASE}/usr/bin/python3-config" + export PYTHONPATH="${XBPS_CROSS_BASE}/${py3_lib}" + for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do + [ -f "$f" ] || continue + f=${f##*/} + _PYTHON_SYSCONFIGDATA_NAME=${f%.py} + done + [ -n "$_PYTHON_SYSCONFIGDATA_NAME" ] && export _PYTHON_SYSCONFIGDATA_NAME +fi diff --git a/common/build-style/cargo.sh b/common/build-style/cargo.sh index 53c4897..387e711 100644 --- a/common/build-style/cargo.sh +++ b/common/build-style/cargo.sh @@ -3,24 +3,24 @@ # do_build() { - : ${make_cmd:=cargo} + : ${make_cmd:=cargo auditable} ${make_cmd} build --release --target ${RUST_TARGET} ${configure_args} } do_check() { - : ${make_cmd:=cargo} + : ${make_cmd:=cargo auditable} - ${make_cmd} test --release --target ${RUST_TARGET} ${configure_args} \ + ${make_check_pre} ${make_cmd} test --release --target ${RUST_TARGET} ${configure_args} \ ${make_check_args} } do_install() { - : ${make_cmd:=cargo} + : ${make_cmd:=cargo auditable} : ${make_install_args:=--path .} ${make_cmd} install --target ${RUST_TARGET} --root="${DESTDIR}/usr" \ - --locked ${configure_args} ${make_install_args} + --offline --locked ${configure_args} ${make_install_args} rm -f "${DESTDIR}"/usr/.crates.toml rm -f "${DESTDIR}"/usr/.crates2.json diff --git a/common/build-style/cmake.sh b/common/build-style/cmake.sh index 33a556b..a38c341 100644 --- a/common/build-style/cmake.sh +++ b/common/build-style/cmake.sh @@ -54,6 +54,14 @@ _EOF cmake_args+=" -DCMAKE_INSTALL_PREFIX=/usr" cmake_args+=" -DCMAKE_BUILD_TYPE=None" cmake_args+=" -DCMAKE_INSTALL_LIBDIR=lib${XBPS_TARGET_WORDSIZE}" + cmake_args+=" -DCMAKE_INSTALL_SYSCONFDIR=/etc" + + if [ "$CROSS_BUILD" ]; then + cmake_args+=" -DQT_HOST_PATH=/usr" + # QT_HOST_PATH isn't enough in my system, + # which have binfmts support on and off + cmake_args+=" -DQT_HOST_PATH_CMAKE_DIR=/usr/lib/cmake" + fi if [[ $build_helper = *"qemu"* ]]; then echo "SET(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-${XBPS_TARGET_QEMU_MACHINE}-static)" \ @@ -116,7 +124,7 @@ do_check() { : ${make_check_target:=test} - ${make_cmd} ${make_check_args} ${make_check_target} + ${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target} } do_install() { diff --git a/common/build-style/configure.sh b/common/build-style/configure.sh index 0963fc3..7a6d136 100644 --- a/common/build-style/configure.sh +++ b/common/build-style/configure.sh @@ -29,7 +29,7 @@ do_check() { : ${make_cmd:=make} : ${make_check_target:=check} - ${make_cmd} ${make_check_args} ${make_check_target} + ${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target} } do_install() { diff --git a/common/build-style/gnu-configure.sh b/common/build-style/gnu-configure.sh index 8121136..4326d07 100644 --- a/common/build-style/gnu-configure.sh +++ b/common/build-style/gnu-configure.sh @@ -30,7 +30,7 @@ do_check() { : ${make_cmd:=make} : ${make_check_target:=check} - ${make_cmd} ${make_check_args} ${make_check_target} + ${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target} } do_install() { diff --git a/common/build-style/gnu-makefile.sh b/common/build-style/gnu-makefile.sh index d7ea148..f81ef4e 100644 --- a/common/build-style/gnu-makefile.sh +++ b/common/build-style/gnu-makefile.sh @@ -9,8 +9,10 @@ do_build() { CC="$CC" CXX="$CXX" LD="$LD" AR="$AR" RANLIB="$RANLIB" \ CPP="$CPP" AS="$AS" OBJCOPY="$OBJCOPY" OBJDUMP="$OBJDUMP" \ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ + PREFIX=/usr prefix=/usr \ ${makejobs} ${make_build_args} ${make_build_target} else + export PREFIX=/usr prefix=/usr ${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} fi } @@ -30,12 +32,12 @@ do_check() { : ${make_cmd:=make} : ${make_check_target:=check} - ${make_cmd} ${make_check_args} ${make_check_target} + ${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target} } do_install() { : ${make_cmd:=make} : ${make_install_target:=install} - ${make_cmd} STRIP=true PREFIX=/usr DESTDIR=${DESTDIR} ${make_install_args} ${make_install_target} + ${make_cmd} STRIP=true PREFIX=/usr prefix=/usr DESTDIR=${DESTDIR} ${make_install_args} ${make_install_target} } diff --git a/common/build-style/go.sh b/common/build-style/go.sh index d18116e..9093527 100644 --- a/common/build-style/go.sh +++ b/common/build-style/go.sh @@ -22,6 +22,13 @@ do_configure() { } do_build() { + # remove -s and -w from go_ldflags, we should let xbps-src strip binaries itself + for wd in $go_ldflags; do + if [ "$wd" == "-s" ] || [ "$wd" == "-w" ]; then + msg_error "$pkgname: remove -s and -w from go_ldflags\n" + fi + done + go_package=${go_package:-$go_import_path} # Build using Go modules if there's a go.mod file if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then diff --git a/common/build-style/meson.sh b/common/build-style/meson.sh index ab9f2ca..e983c5f 100644 --- a/common/build-style/meson.sh +++ b/common/build-style/meson.sh @@ -103,7 +103,7 @@ do_configure() { export AR="gcc-ar" # unbuffered output for continuous logging - PYTHONUNBUFFERED=1 ${meson_cmd} \ + PYTHONUNBUFFERED=1 ${meson_cmd} setup \ --prefix=/usr \ --libdir=/usr/lib${XBPS_TARGET_WORDSIZE} \ --libexecdir=/usr/libexec \ @@ -138,7 +138,7 @@ do_check() { : ${make_check_target:=test} : ${meson_builddir:=build} - ${make_cmd} -C ${meson_builddir} ${makejobs} ${make_check_args} ${make_check_target} + ${make_check_pre} ${make_cmd} -C ${meson_builddir} ${makejobs} ${make_check_args} ${make_check_target} } do_install() { diff --git a/common/build-style/perl-ModuleBuild.sh b/common/build-style/perl-ModuleBuild.sh index a84373b..f21d2b0 100644 --- a/common/build-style/perl-ModuleBuild.sh +++ b/common/build-style/perl-ModuleBuild.sh @@ -41,7 +41,7 @@ do_check() { if [ ! -x ./Build ]; then msg_error "$pkgver: cannot find ./Build script!\n" fi - ./Build test + ${make_check_pre} ./Build test } do_install() { diff --git a/common/build-style/perl-module.sh b/common/build-style/perl-module.sh index b9a01b1..2945787 100644 --- a/common/build-style/perl-module.sh +++ b/common/build-style/perl-module.sh @@ -79,7 +79,7 @@ do_check() { : ${make_cmd:=make} : ${make_check_target:=test} - ${make_cmd} ${make_check_args} ${make_check_target} + ${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target} } do_install() { diff --git a/common/build-style/python-module.sh b/common/build-style/python-module.sh index 15cf757..b80801a 100644 --- a/common/build-style/python-module.sh +++ b/common/build-style/python-module.sh @@ -49,7 +49,7 @@ do_check() { fi fi - python${pyver} setup.py ${make_check_target:-test} ${make_check_args} + ${make_check_pre} python${pyver} setup.py ${make_check_target:-test} ${make_check_args} rm build done } diff --git a/common/build-style/python3-module.sh b/common/build-style/python3-module.sh index 093bdae..b76d89c 100644 --- a/common/build-style/python3-module.sh +++ b/common/build-style/python3-module.sh @@ -3,30 +3,18 @@ # do_build() { - if [ -n "$CROSS_BUILD" ]; then - PYPREFIX="$XBPS_CROSS_BASE" - CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include" - LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib" - CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS" - LDSHARED="${CC} -shared $LDFLAGS" - for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do - f=${f##*/} - _PYTHON_SYSCONFIGDATA_NAME=${f%.py} - done - env CC="$CC" LDSHARED="$LDSHARED" \ - PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \ - PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \ - _PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \ - LDFLAGS="$LDFLAGS" python3 setup.py build ${make_build_args} - else - python3 setup.py build ${make_build_args} - fi + python3 setup.py build ${make_build_args} } do_check() { + local testjobs if python3 -c 'import pytest' >/dev/null 2>&1; then + if python3 -c 'import xdist' >/dev/null 2>&1; then + testjobs="-n $XBPS_MAKEJOBS" + fi PYTHONPATH="$(cd build/lib* && pwd)" \ - python3 -m pytest ${make_check_args} ${make_check_target} + ${make_check_pre} \ + python3 -m pytest ${testjobs} ${make_check_args} ${make_check_target} else # Fall back to deprecated setup.py test orchestration without pytest if [ -z "$make_check_target" ]; then @@ -37,28 +25,10 @@ do_check() { fi : ${make_check_target:=test} - python3 setup.py ${make_check_target} ${make_check_args} + ${make_check_pre} python3 setup.py ${make_check_target} ${make_check_args} fi } do_install() { - if [ -n "$CROSS_BUILD" ]; then - PYPREFIX="$XBPS_CROSS_BASE" - CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include" - LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib" - CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS" - LDSHARED="${CC} -shared $LDFLAGS" - for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do - f=${f##*/} - _PYTHON_SYSCONFIGDATA_NAME=${f%.py} - done - env CC="$CC" LDSHARED="$LDSHARED" \ - PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \ - PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \ - _PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \ - LDFLAGS="$LDFLAGS" python3 setup.py \ - install --prefix=/usr --root=${DESTDIR} ${make_install_args} - else - python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args} - fi + python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args} } diff --git a/common/build-style/python3-pep517.sh b/common/build-style/python3-pep517.sh index 075f954..b8bdee5 100644 --- a/common/build-style/python3-pep517.sh +++ b/common/build-style/python3-pep517.sh @@ -3,31 +3,31 @@ # do_build() { - # No PEP517 build tool currently supports compiled extensions - # Thus, there is no need to accommodate cross compilation here : ${make_build_target:=.} - - mkdir -p build - TMPDIR=build python3 -m pip wheel --no-deps --use-pep517 --no-clean \ - --no-build-isolation ${make_build_args} ${make_build_target} + : ${make_build_args:=--no-isolation --wheel} + python3 -m build ${make_build_args} ${make_build_target} } do_check() { + local testjobs if python3 -c 'import pytest' >/dev/null 2>&1; then - python3 -m pytest ${make_check_args} ${make_check_target} + if python3 -c 'import xdist' >/dev/null 2>&1; then + testjobs="-n $XBPS_MAKEJOBS" + fi + ${make_check_pre} python3 -m pytest ${testjobs} ${make_check_args} ${make_check_target} else - msg_warn "Unable to determine tests for PEP517 Python templates" + msg_warn "Unable to determine tests for PEP517 Python templates\n" return 0 fi } do_install() { - # As with do_build, no need to accommodate cross compilation here - : ${make_install_target:=${pkgname#python3-}-${version}-*-*-*.whl} + if [ -z "${make_install_target}" ]; then + # Default wheel name normalizes hyphens to underscores + local wheelbase="${pkgname#python3-}" + make_install_target="dist/${wheelbase//-/_}-${version}-*-*-*.whl" + fi - # If do_build was overridden, make sure the TMPDIR exists - mkdir -p build - TMPDIR=build python3 -m pip install --use-pep517 --prefix /usr \ - --root ${DESTDIR} --no-deps --no-build-isolation \ - --no-clean ${make_install_args} ${make_install_target} + python3 -m installer --destdir ${DESTDIR} \ + ${make_install_args} ${make_install_target} } diff --git a/common/build-style/qmake.sh b/common/build-style/qmake.sh index 25d6225..486bb06 100644 --- a/common/build-style/qmake.sh +++ b/common/build-style/qmake.sh @@ -1,17 +1,12 @@ # -# This helper is for templates using Qt4/Qt5 qmake. +# This helper is for templates using Qt5/Qt6 qmake. # do_configure() { local qmake local qmake_args if [ -x "/usr/lib/qt5/bin/qmake" ]; then - # Qt5 qmake qmake="/usr/lib/qt5/bin/qmake" fi - if [ -x "/usr/lib/qt/bin/qmake" ]; then - # Qt4 qmake - qmake="/usr/lib/qt/bin/qmake" - fi if [ -z "${qmake}" ]; then msg_error "${pkgver}: Could not find qmake - missing in hostmakedepends?\n" fi diff --git a/common/build-style/raku-dist.sh b/common/build-style/raku-dist.sh index 3b1f28d..6735016 100644 --- a/common/build-style/raku-dist.sh +++ b/common/build-style/raku-dist.sh @@ -3,7 +3,7 @@ # do_check() { - RAKULIB=lib prove -r -e raku t/ + RAKULIB=lib ${make_check_pre} prove -r -e raku t/ } do_install() { diff --git a/common/build-style/scons.sh b/common/build-style/scons.sh index 17527d7..f87c0dc 100644 --- a/common/build-style/scons.sh +++ b/common/build-style/scons.sh @@ -9,18 +9,27 @@ do_build() { CXXFLAGS="$CXXFLAGS" LINKFLAGS="$LDFLAGS" \ cxxflags="$CXXFLAGS" linkflags="$LDFLAGS" \ RANLIB="$RANLIB" ranlib="$RANLIB" \ - prefix=/usr destdir=${DESTDIR} DESTDIR=${DESTDIR} \ + prefix=/usr \ + ${scons_use_destdir:+DESTDIR="${DESTDIR}"} \ + ${scons_use_destdir:+destdir="${DESTDIR}"} \ ${make_build_args} ${make_build_target} } do_install() { : ${make_cmd:=scons} : ${make_install_target:=install} + local _sandbox= + + if [ -z "$scons_use_destdir" ]; then _sandbox=yes ; fi + ${make_cmd} ${makejobs} CC=$CC CXX=$CXX CCFLAGS="$CFLAGS" \ cc=$CC cxx=$CXX ccflags="$CFLAGS" \ CXXFLAGS="$CXXFLAGS" LINKFLAGS="$LDFLAGS" \ cxxflags="$CXXFLAGS" linkflags="$LDFLAGS" \ RANLIB="$RANLIB" ranlib="$RANLIB" \ - prefix=/usr destdir=${DESTDIR} DESTDIR=${DESTDIR} \ + prefix=/usr \ + ${scons_use_destdir:+DESTDIR="${DESTDIR}"} \ + ${scons_use_destdir:+destdir="${DESTDIR}"} \ + ${_sandbox:+--install-sandbox="${DESTDIR}"} \ ${make_install_args} ${make_install_target} } diff --git a/common/build-style/slashpackage.sh b/common/build-style/slashpackage.sh index 83ad030..5f4fe4f 100644 --- a/common/build-style/slashpackage.sh +++ b/common/build-style/slashpackage.sh @@ -5,7 +5,6 @@ # required variables # # build_style=slashpackage -# wrksrc= # build_wrksrc=${pkgname}-${version} # distfiles= # @@ -15,7 +14,6 @@ # pkgname=daemontools # version=0.76 # revision=1 -# wrksrc=admin # build_wrksrc=${pkgname}-${version} # build_style=slashpackage # short_desc="A collection of tools for managing UNIX services" diff --git a/common/environment/build-style/R-cran.sh b/common/environment/build-style/R-cran.sh index ded6679..4f996c7 100644 --- a/common/environment/build-style/R-cran.sh +++ b/common/environment/build-style/R-cran.sh @@ -1,8 +1,10 @@ makedepends+=" R" depends+=" R" -wrksrc="${XBPS_BUILDDIR}/${pkgname#R-cran-}" +create_wrksrc=required +build_wrksrc="${pkgname#R-cran-}" # default to cran if [ -z "$distfiles" ]; then - distfiles="https://cran.r-project.org/src/contrib/${pkgname#R-cran-}_${version//r/-}.tar.gz" + distfiles="https://cran.r-project.org/src/contrib/${pkgname#R-cran-}_${version//r/-}.tar.gz + https://cran.r-project.org/src/contrib/Archive/${pkgname#R-cran-}/${pkgname#R-cran-}_${version//r/-}.tar.gz" fi diff --git a/common/environment/build-style/cargo.sh b/common/environment/build-style/cargo.sh index c7c9863..473750c 100644 --- a/common/environment/build-style/cargo.sh +++ b/common/environment/build-style/cargo.sh @@ -1,5 +1,9 @@ hostmakedepends+=" cargo" +if ! [[ "$pkgname" =~ ^cargo-auditable(-bootstrap)?$ ]]; then + hostmakedepends+=" cargo-auditable" +fi + if [ "$CROSS_BUILD" ]; then makedepends+=" rust-std" fi diff --git a/common/environment/build-style/go.sh b/common/environment/build-style/go.sh index afa9082..a7b7dd8 100644 --- a/common/environment/build-style/go.sh +++ b/common/environment/build-style/go.sh @@ -43,3 +43,8 @@ case "$XBPS_TARGET_MACHINE" in *-musl) export GOCACHE="${XBPS_HOSTDIR}/gocache-muslc" ;; *) export GOCACHE="${XBPS_HOSTDIR}/gocache-glibc" ;; esac + +case "$XBPS_TARGET_MACHINE" in + # https://go.dev/cl/421935 + i686*) export CGO_CFLAGS="$CGO_CFLAGS -fno-stack-protector" ;; +esac diff --git a/common/environment/build-style/python3-module.sh b/common/environment/build-style/python3-module.sh index 56471fe..638f6be 100644 --- a/common/environment/build-style/python3-module.sh +++ b/common/environment/build-style/python3-module.sh @@ -1,2 +1,3 @@ lib32disabled=yes makedepends+=" python3" +build_helper+=" python3" diff --git a/common/environment/build-style/python3-pep517.sh b/common/environment/build-style/python3-pep517.sh index 48f0c1b..f4faf98 100644 --- a/common/environment/build-style/python3-pep517.sh +++ b/common/environment/build-style/python3-pep517.sh @@ -1,2 +1,3 @@ -hostmakedepends+=" python3-pip" +hostmakedepends+=" python3-build python3-installer" lib32disabled=yes +build_helper+=" python3" diff --git a/common/environment/build-style/texmf.sh b/common/environment/build-style/texmf.sh index 098b1b6..b0ecf47 100644 --- a/common/environment/build-style/texmf.sh +++ b/common/environment/build-style/texmf.sh @@ -2,4 +2,3 @@ hostmakedepends+=" rsync" # python_version isn't needed for everything either python_version=3 -create_wrksrc=yes diff --git a/common/environment/build-style/void-cross.sh b/common/environment/build-style/void-cross.sh index 62ce9ea..40df98e 100644 --- a/common/environment/build-style/void-cross.sh +++ b/common/environment/build-style/void-cross.sh @@ -1,6 +1,5 @@ lib32disabled=yes nopie=yes -create_wrksrc=yes nostrip_files+=" libcaf_single.a libgcc.a libgcov.a libgcc_eh.a libgnarl_pic.a libgnarl.a libgnat_pic.a libgnat.a libgmem.a" diff --git a/common/environment/configure/debug-debug-prefix-map.sh b/common/environment/configure/debug-debug-prefix-map.sh index ca30b61..40b3a7b 100644 --- a/common/environment/configure/debug-debug-prefix-map.sh +++ b/common/environment/configure/debug-debug-prefix-map.sh @@ -1,2 +1,16 @@ -CFLAGS="${CFLAGS} -fdebug-prefix-map=$wrksrc=." -CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$wrksrc=." +local _wrksrc="$wrksrc${build_wrksrc:+/$build_wrksrc}" +case "$build_style" in +cmake) + CFLAGS="${CFLAGS} -fdebug-prefix-map=$_wrksrc/${cmake_builddir:-build}=." + CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$_wrksrc/${cmake_builddir:-build}=." + ;; +meson) + CFLAGS="${CFLAGS} -fdebug-prefix-map=$_wrksrc/${meson_builddir:-build}=." + CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$_wrksrc/${meson_builddir:-build}=." + ;; +*) + CFLAGS="${CFLAGS} -fdebug-prefix-map=$_wrksrc=." + CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$_wrksrc=." +esac + +unset _wrksrc diff --git a/common/environment/setup/python.sh b/common/environment/setup/python.sh index 43ee4d0..606a4bc 100644 --- a/common/environment/setup/python.sh +++ b/common/environment/setup/python.sh @@ -7,7 +7,7 @@ py2_lib="usr/lib/python${py2_ver}" py2_sitelib="${py2_lib}/site-packages" py2_inc="usr/include/python${py2_ver}" -py3_ver="3.10" +py3_ver="3.11" py3_abiver="" py3_lib="usr/lib/python${py3_ver}" py3_sitelib="${py3_lib}/site-packages" diff --git a/common/environment/setup/sourcepkg.sh b/common/environment/setup/sourcepkg.sh index bc06f74..048096f 100644 --- a/common/environment/setup/sourcepkg.sh +++ b/common/environment/setup/sourcepkg.sh @@ -7,17 +7,24 @@ unset -v archs distfiles checksum build_style build_helper nocross broken unset -v configure_script configure_args wrksrc build_wrksrc create_wrksrc unset -v make_build_args make_check_args make_install_args unset -v make_build_target make_check_target make_install_target -unset -v make_cmd meson_cmd gem_cmd fetch_cmd +unset -v make_cmd meson_cmd gem_cmd fetch_cmd make_check_pre unset -v python_version stackage unset -v cmake_builddir meson_builddir unset -v meson_crossfile unset -v gemspec unset -v go_import_path go_package go_mod_mode -unset -v patch_args disable_parallel_build keep_libtool_archives make_use_env +unset -v patch_args disable_parallel_build disable_parallel_check +unset -v keep_libtool_archives make_use_env unset -v reverts subpackages makedepends hostmakedepends checkdepends depends restricted unset -v nopie build_options build_options_default bootstrap repository reverts unset -v CFLAGS CXXFLAGS FFLAGS CPPFLAGS LDFLAGS LD_LIBRARY_PATH unset -v CC CXX CPP GCC LD AR AS RANLIB NM OBJDUMP OBJCOPY STRIP READELF PKG_CONFIG +unset -v CMAKE_GENERATOR +# build-helper python3 +unset -v PYPREFIX LDSHARED PYTHON_CONFIG PYTHONPATH _PYTHON_SYSCONFIGDATA_NAME + +# unset all $build_option_ variables +unset -v "${!build_option_@}" # hooks/do-extract/00-distfiles unset -v skip_extraction diff --git a/common/environment/setup/vsed.sh b/common/environment/setup/vsed.sh index 5b5bf42..c74c086 100644 --- a/common/environment/setup/vsed.sh +++ b/common/environment/setup/vsed.sh @@ -57,8 +57,13 @@ vsed() { newdigest="$($XBPS_DIGEST_CMD "$f")" newdigest="${newdigest%% *}" + msgfunc=msg_warn + if [ -n "$XBPS_STRICT" ]; then + msgfunc=msg_error + fi + if [ "$olddigest" = "$newdigest" ]; then - msg_warn "$pkgver: vsed: regex \"$rx\" didn't change file \"$f\"\n" + $msgfunc "$pkgver: vsed: regex \"$rx\" didn't change file \"$f\"\n" fi olddigest="${newdigest}" done diff --git a/common/hooks/do-extract/00-distfiles.sh b/common/hooks/do-extract/00-distfiles.sh index 922f702..c173fe2 100644 --- a/common/hooks/do-extract/00-distfiles.sh +++ b/common/hooks/do-extract/00-distfiles.sh @@ -3,7 +3,7 @@ hook() { local srcdir="$XBPS_SRCDISTDIR/$pkgname-$version" - local f j curfile found extractdir + local f j curfile found extractdir innerdir num_dirs local TAR_CMD if [ -z "$distfiles" -a -z "$checksum" ]; then @@ -20,10 +20,6 @@ hook() { fi done - if [ -n "$create_wrksrc" ]; then - mkdir -p "${wrksrc}" || msg_error "$pkgver: failed to create wrksrc.\n" - fi - # Disable trap on ERR; the code is smart enough to report errors and abort. trap - ERR @@ -31,6 +27,9 @@ hook() { [ -z "$TAR_CMD" ] && TAR_CMD="$(command -v tar)" [ -z "$TAR_CMD" ] && msg_error "xbps-src: no suitable tar cmd (bsdtar, tar)\n" + extractdir=$(mktemp -d "$XBPS_BUILDDIR/.extractdir-XXXXXXX") || + msg_error "Cannot create temporary dir for do-extract\n" + msg_normal "$pkgver: extracting distfile(s), please wait...\n" for f in ${distfiles}; do @@ -73,12 +72,6 @@ hook() { *) msg_error "$pkgver: unknown distfile suffix for $curfile.\n";; esac - if [ -n "$create_wrksrc" ]; then - extractdir="$wrksrc" - else - extractdir="$XBPS_BUILDDIR" - fi - case ${cursufx} in tar|txz|tbz|tlz|tgz|crate) $TAR_CMD -x --no-same-permissions --no-same-owner -f $srcdir/$curfile -C "$extractdir" @@ -128,11 +121,7 @@ hook() { fi ;; txt) - if [ "$create_wrksrc" ]; then - cp -f $srcdir/$curfile "$extractdir" - else - msg_error "$pkgname: ${curfile##*.} files can only be extracted when create_wrksrc is set\n" - fi + cp -f $srcdir/$curfile "$extractdir" ;; 7z) if command -v 7z &>/dev/null; then @@ -150,16 +139,10 @@ hook() { fi ;; gem) - case "$TAR_CMD" in - *bsdtar) - $TAR_CMD -xOf $srcdir/$curfile data.tar.gz | \ - $TAR_CMD -xz -C "$extractdir" -s ",^,${wrksrc##*/}/," -f - - ;; - *) - $TAR_CMD -xOf $srcdir/$curfile data.tar.gz | \ - $TAR_CMD -xz -C "$extractdir" --transform="s,^,${wrksrc##*/}/," - ;; - esac + innerdir="$extractdir/${wrksrc##*/}" + mkdir -p "$innerdir" + $TAR_CMD -xOf $srcdir/$curfile data.tar.gz | + $TAR_CMD -xz -C "$innerdir" -f - if [ $? -ne 0 ]; then msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n" fi @@ -169,4 +152,31 @@ hook() { ;; esac done + + # find "$extractdir" -mindepth 1 -maxdepth 1 -printf '1\n' | wc -l + # However, it requires GNU's find + num_dirs=0 + for f in "$extractdir"/* "$extractdir"/.*; do + if [ -e "$f" ] || [ -L "$f" ]; then + case "$f" in + */. | */..) ;; + *) + innerdir="$f" + num_dirs=$(( num_dirs + 1 )) + ;; + esac + fi + done + rm -rf "$wrksrc" + if [ "$num_dirs" = 1 ] && [ -d "$innerdir" ] && [ -z "$create_wrksrc" ]; then + # rename the subdirectory (top-level of distfiles) to $wrksrc + mv "$innerdir" "$wrksrc" && + rmdir "$extractdir" + elif [ "$num_dirs" -gt 1 ] || [ -n "$create_wrksrc" ]; then + # rename the tmpdir to wrksrc + mv "$extractdir" "$wrksrc" + else + mkdir -p "$wrksrc" + fi || + msg_error "$pkgver: failed to move sources to $wrksrc\n" } diff --git a/common/hooks/do-fetch/00-distfiles.sh b/common/hooks/do-fetch/00-distfiles.sh index e2bf543..3d9f801 100644 --- a/common/hooks/do-fetch/00-distfiles.sh +++ b/common/hooks/do-fetch/00-distfiles.sh @@ -2,24 +2,6 @@ # the $distfiles variable and then verifies its sha256 checksum comparing # its value with the one stored in the $checksum variable. -# Get the checksum for $curfile at index $dfcount -get_cksum() { - local curfile="$1" dfcount="$2" ckcount cksum i - - ckcount=0 - cksum=0 - for i in ${checksum}; do - if [ $dfcount -eq $ckcount -a -n "$i" ]; then - cksum=$i - fi - ckcount=$((ckcount + 1)) - done - if [ -z "$cksum" ]; then - msg_error "$pkgver: cannot find checksum for $curfile.\n" - fi - echo "$cksum" -} - # Return the checksum of the contents of a tarball contents_cksum() { local curfile="$1" cursufx cksum @@ -110,9 +92,7 @@ contents_cksum() { # Verify the checksum for $curfile stored at $distfile and index $dfcount verify_cksum() { - local curfile="$1" distfile="$2" dfcount="$3" filesum cksum - - cksum=$(get_cksum $curfile $dfcount) + local curfile="$1" distfile="$2" cksum="$3" filesum # If the checksum starts with an commercial at (@) it is the contents checksum if [ "${cksum:0:1}" = "@" ]; then @@ -121,7 +101,7 @@ verify_cksum() { filesum=$(contents_cksum "$curfile") if [ "${cksum}" != "$filesum" ]; then echo - msg_red "SHA256 mismatch for '$curfile:'\n@$filesum\n" + msg_red "SHA256 mismatch for '${curfile}:'\n@${filesum}\n" errors=$((errors + 1)) else msg_normal_append "OK.\n" @@ -131,7 +111,7 @@ verify_cksum() { filesum=$(${XBPS_DIGEST_CMD} "$distfile") if [ "$cksum" != "$filesum" ]; then echo - msg_red "SHA256 mismatch for '$curfile:'\n$filesum\n" + msg_red "SHA256 mismatch for '${curfile}:'\n${filesum}\n" errors=$((errors + 1)) else if [ ! -f "$XBPS_SRCDISTDIR/by_sha256/${cksum}_${curfile}" ]; then @@ -145,22 +125,20 @@ verify_cksum() { # Link an existing cksum $distfile for $curfile at index $dfcount link_cksum() { - local curfile="$1" distfile="$2" dfcount="$3" filesum cksum - - cksum=$(get_cksum $curfile $dfcount) - + local curfile="$1" distfile="$2" cksum="$3" if [ -n "$cksum" -a -f "$XBPS_SRCDISTDIR/by_sha256/${cksum}_${curfile}" ]; then ln -f "$XBPS_SRCDISTDIR/by_sha256/${cksum}_${curfile}" "$distfile" msg_normal "$pkgver: using known distfile $curfile.\n" + return 0 fi + return 1 } try_mirrors() { - local curfile="$1" distfile="$2" dfcount="$3" subdir="$4" f="$5" - local filesum cksum basefile mirror path scheme - [ -z "$XBPS_DISTFILES_MIRROR" ] && return + local curfile="$1" distfile="$2" cksum="$3" f="$4" + local filesum basefile mirror path scheme good + [ -z "$XBPS_DISTFILES_MIRROR" ] && return 1 basefile="${f##*/}" - cksum=$(get_cksum $curfile $dfcount) for mirror in $XBPS_DISTFILES_MIRROR; do scheme="file" if [[ $mirror == *://* ]]; then @@ -179,28 +157,80 @@ try_mirrors() { fi if [[ "$mirror" == *voidlinux* ]]; then # For distfiles.voidlinux.* append the subdirectory - mirror="$mirror/$subdir" + mirror="$mirror/$pkgname-$version" fi - msg_normal "$pkgver: fetching distfile '$curfile' from '$mirror'...\n" + msg_normal "$pkgver: fetching distfile '$curfile' from mirror '$mirror'...\n" $fetch_cmd "$mirror/$curfile" # If basefile was not found, but a curfile file may exist, try to fetch it - if [ ! -f "$distfile" -a "$basefile" != "$curfile" ]; then - $fetch_cmd "$mirror/$basefile" - fi + # if [ ! -f "$distfile" -a "$basefile" != "$curfile" ]; then + # msg_normal "$pkgver: fetching distfile '$basefile' from mirror '$mirror'...\n" + # $fetch_cmd "$mirror/$basefile" + # fi [ ! -f "$distfile" ] && continue flock -n ${distfile}.part rm -f ${distfile}.part filesum=$(${XBPS_DIGEST_CMD} "$distfile") - [ "$cksum" == "$filesum" ] && break + if [ "$cksum" == "$filesum" ]; then + return 0 + fi msg_normal "$pkgver: checksum failed - removing '$curfile'...\n" rm -f ${distfile} done + return 1 +} + +try_urls() { + local curfile="$1" + local good= + for i in ${_file_idxs["$curfile"]}; do + local cksum=${_checksums["$i"]} + local url=${_distfiles["$i"]} + + # If distfile does not exist, download it from the original location. + if [[ "$FTP_RETRIES" && "${url}" =~ ^ftp:// ]]; then + max_retries="$FTP_RETRIES" + else + max_retries=1 + fi + for retry in $(seq 1 1 $max_retries); do + if [ ! -f "$distfile" ]; then + if [ "$retry" == 1 ]; then + msg_normal "$pkgver: fetching distfile '$curfile' from '$url'...\n" + else + msg_normal "$pkgver: fetch attempt $retry of $max_retries...\n" + fi + flock "${distfile}.part" $fetch_cmd "$url" + fi + done + + if [ ! -f "$distfile" ]; then + continue + fi + + # distfile downloaded, verify sha256 hash. + flock -n "${distfile}.part" rm -f "${distfile}.part" + verify_cksum "$curfile" "$distfile" "$cksum" + return 0 + done + return 1 } hook() { local srcdir="$XBPS_SRCDISTDIR/$pkgname-$version" local dfcount=0 dfgood=0 errors=0 max_retries - if [ ! -d "$srcdir" ]; then + local -a _distfiles=($distfiles) + local -a _checksums=($checksum) + local -A _file_idxs + + # Create a map from target file to index in _distfiles/_checksums + for i in ${!_distfiles[@]}; do + f="${_distfiles[$i]}" + curfile="${f#*>}" + curfile="${curfile##*/}" + _file_idxs["$curfile"]+=" $i" + done + + if [[ ! -d "$srcdir" ]]; then mkdir -p -m775 "$srcdir" chgrp $(id -g) "$srcdir" fi @@ -209,90 +239,72 @@ hook() { # Disable trap on ERR; the code is smart enough to report errors and abort. trap - ERR - # Detect bsdtar and GNU tar (in that order of preference) TAR_CMD="$(command -v bsdtar)" - if [ -z "$TAR_CMD" ]; then + if [[ -z "$TAR_CMD" ]]; then TAR_CMD="$(command -v tar)" fi # Detect distfiles with obsolete checksum and purge them from the cache - for f in ${distfiles}; do - curfile="${f#*>}" - curfile="${curfile##*/}" - distfile="$srcdir/$curfile" - - if [ -f "$distfile" ]; then - cksum=$(get_cksum $curfile $dfcount) - if [ "${cksum:0:1}" = "@" ]; then - cksum=${cksum:1} - filesum=$(contents_cksum "$distfile") - else - filesum=$(${XBPS_DIGEST_CMD} "$distfile") + for f in ${!_file_idxs[@]}; do + distfile="$srcdir/$f" + for i in ${_file_idxs["$f"]}; do + if [[ -f $distfile ]]; then + cksum=${_checksums["$i"]} + if [[ ${cksum:0:1} = @ ]]; then + cksum=${cksum:1} + filesum=$(contents_cksum "$distfile") + else + filesum=$(${XBPS_DIGEST_CMD} "$distfile") + fi + if [[ $cksum = $filesum ]]; then + dfgood=$((dfgood + 1)) + else + inode=$(stat "$distfile" --printf "%i") + msg_warn "$pkgver: wrong checksum found for ${curfile} - purging\n" + find ${XBPS_SRCDISTDIR} -inum ${inode} -delete -print + fi fi - if [ "$cksum" = "$filesum" ]; then - dfgood=$((dfgood + 1)) - else - inode=$(stat "$distfile" --printf "%i") - msg_warn "$pkgver: wrong checksum found for ${curfile} - purging\n" - find ${XBPS_SRCDISTDIR} -inum ${inode} -delete -print - fi - fi - dfcount=$((dfcount + 1)) + dfcount=$((dfcount + 1)) + done done # We're done, if all distfiles were found and had good checksums - [ $dfcount -eq $dfgood ] && return + [[ $dfcount -eq $dfgood ]] && return # Download missing distfiles and verify their checksums - dfcount=0 - for f in ${distfiles}; do - curfile="${f#*>}" - curfile="${curfile##*/}" + for curfile in ${!_file_idxs[@]}; do distfile="$srcdir/$curfile" + set -- ${_file_idxs["$curfile"]} + i="$1" # If file lock cannot be acquired wait until it's available. - while true; do - flock -w 1 ${distfile}.part true - [ $? -eq 0 ] && break + while ! flock -w 1 "${distfile}.part" true; do msg_warn "$pkgver: ${curfile} is already being downloaded, waiting for 1s ...\n" done + + if [[ -f "$distfile" ]]; then + continue + fi + # If distfile does not exist, try to link to it. - if [ ! -f "$distfile" ]; then - link_cksum $curfile $distfile $dfcount + if link_cksum "$curfile" "$distfile" "${_checksums[$i]}"; then + continue fi + # If distfile does not exist, download it from a mirror location. - if [ ! -f "$distfile" ]; then - try_mirrors $curfile $distfile $dfcount $pkgname-$version $f + if try_mirrors "$curfile" "$distfile" "${_checksums[$i]}" "${_distfiles[$i]}"; then + continue fi - # If distfile does not exist, download it from the original location. - if [[ "$FTP_RETRIES" && "${f}" =~ ^ftp:// ]]; then - max_retries="$FTP_RETRIES" - else - max_retries=1 + + if ! try_urls "$curfile"; then + msg_error "$pkgver: failed to fetch '$curfile'.\n" fi - for retry in $(seq 1 1 $max_retries); do - if [ ! -f "$distfile" ]; then - if [ "$retry" == 1 ]; then - msg_normal "$pkgver: fetching distfile '$curfile'...\n" - else - msg_normal "$pkgver: fetch attempt $retry of $max_retries...\n" - fi - flock "${distfile}.part" $fetch_cmd "$f" - fi - done - if [ ! -f "$distfile" ]; then - msg_error "$pkgver: failed to fetch $curfile.\n" - fi - # distfile downloaded, verify sha256 hash. - flock -n ${distfile}.part rm -f ${distfile}.part - verify_cksum $curfile $distfile $dfcount - dfcount=$((dfcount + 1)) done unset TAR_CMD - if [ $errors -gt 0 ]; then + if [[ $errors -gt 0 ]]; then msg_error "$pkgver: couldn't verify distfiles, exiting...\n" fi } diff --git a/common/hooks/do-patch/00-patches.sh b/common/hooks/do-patch/00-patches.sh index 9f7e21f..c75209f 100644 --- a/common/hooks/do-patch/00-patches.sh +++ b/common/hooks/do-patch/00-patches.sh @@ -6,23 +6,23 @@ _process_patch() { _args="-Np1" _patch=${i##*/} - if [ -f $PATCHESDIR/${_patch}.args ]; then - _args=$(<$PATCHESDIR/${_patch}.args) + if [ -f "$PATCHESDIR/${_patch}.args" ]; then + _args=$(<"$PATCHESDIR/${_patch}.args") elif [ -n "$patch_args" ]; then _args=$patch_args fi - cp -f $i "$wrksrc" + cp -f "$i" "$wrksrc" # Try to guess if its a compressed patch. - if [[ $f =~ .gz$ ]]; then + if [[ $i =~ .gz$ ]]; then gunzip "$wrksrc/${_patch}" _patch=${_patch%%.gz} - elif [[ $f =~ .bz2$ ]]; then + elif [[ $i =~ .bz2$ ]]; then bunzip2 "$wrksrc/${_patch}" _patch=${_patch%%.bz2} - elif [[ $f =~ .diff$ ]]; then + elif [[ $i =~ .diff$ ]]; then : - elif [[ $f =~ .patch$ ]]; then + elif [[ $i =~ .patch$ ]]; then : else msg_warn "$pkgver: unknown patch type: $i.\n" @@ -31,7 +31,7 @@ _process_patch() { cd "$wrksrc" msg_normal "$pkgver: patching: ${_patch}.\n" - patch -s ${_args} -i ${_patch} 2>/dev/null + patch -s ${_args} <"${_patch}" 2>/dev/null } hook() { @@ -44,11 +44,11 @@ hook() { done < $PATCHESDIR/series else for f in $PATCHESDIR/*; do - [ ! -f $f ] && continue + [ ! -f "$f" ] && continue if [[ $f =~ ^.*.args$ ]]; then continue fi - _process_patch $f + _process_patch "$f" done fi } diff --git a/common/hooks/post-install/11-pkglint-elf-in-usrshare.sh b/common/hooks/post-install/11-pkglint-elf-in-usrshare.sh index a665f3e..729f520 100644 --- a/common/hooks/post-install/11-pkglint-elf-in-usrshare.sh +++ b/common/hooks/post-install/11-pkglint-elf-in-usrshare.sh @@ -24,8 +24,7 @@ hook() { # Find all binaries in /usr/share and add them to the pool while read -r f; do - mime="${f##*:}" - mime="${mime// /}" + mime="${f##*: }" file="${f%:*}" file="${file#${PKGDESTDIR}}" case "${mime}" in @@ -37,7 +36,7 @@ hook() { fi ;; esac - done < <(find $PKGDESTDIR/usr/share $prune_expr -type f | file --mime-type --files-from -) + done < <(find $PKGDESTDIR/usr/share $prune_expr -type f | file --no-pad --mime-type --files-from -) # Check passed if no packages in pool if [ -z "$matches" ]; then diff --git a/common/hooks/pre-configure/02-script-wrapper.sh b/common/hooks/pre-configure/02-script-wrapper.sh index 09c7960..641d7ab 100644 --- a/common/hooks/pre-configure/02-script-wrapper.sh +++ b/common/hooks/pre-configure/02-script-wrapper.sh @@ -236,7 +236,7 @@ hook() { generic_wrapper3 libetpan-config generic_wrapper3 giblib-config python_wrapper python-config 2.7 - python_wrapper python3-config 3.10 + python_wrapper python3-config 3.11 apr_apu_wrapper apr-1-config apr_apu_wrapper apu-1-config } diff --git a/common/hooks/pre-pkg/04-generate-runtime-deps.sh b/common/hooks/pre-pkg/04-generate-runtime-deps.sh index c8f8c04..eb19ebf 100644 --- a/common/hooks/pre-pkg/04-generate-runtime-deps.sh +++ b/common/hooks/pre-pkg/04-generate-runtime-deps.sh @@ -34,15 +34,14 @@ add_rundep() { store_pkgdestdir_rundeps() { if [ -n "$run_depends" ]; then - : > ${PKGDESTDIR}/rdeps for f in ${run_depends}; do _curdep="$(echo "$f" | sed -e 's,\(.*\)?.*,\1,')" if [ -z "$($XBPS_UHELPER_CMD getpkgdepname ${_curdep} 2>/dev/null)" -a \ -z "$($XBPS_UHELPER_CMD getpkgname ${_curdep} 2>/dev/null)" ]; then _curdep="${_curdep}>=0" fi - printf -- "${_curdep} " >> ${PKGDESTDIR}/rdeps - done + printf -- "${_curdep}\n" + done | sort | xargs > ${PKGDESTDIR}/rdeps fi } @@ -166,6 +165,6 @@ hook() { sorequires+="${f} " done if [ -n "${sorequires}" ]; then - echo "${sorequires}" > ${PKGDESTDIR}/shlib-requires + echo "${sorequires}" | xargs -n1 | sort | xargs > ${PKGDESTDIR}/shlib-requires fi } diff --git a/common/hooks/pre-pkg/99-pkglint.sh b/common/hooks/pre-pkg/99-pkglint.sh index ea73c96..a63e372 100644 --- a/common/hooks/pre-pkg/99-pkglint.sh +++ b/common/hooks/pre-pkg/99-pkglint.sh @@ -22,7 +22,7 @@ hook() { fi done - for f in var/run usr/local; do + for f in var/run usr/local usr/etc; do if [ -d ${PKGDESTDIR}/${f} ]; then msg_red "${pkgver}: /${f} directory is not allowed, remove it!\n" error=1 @@ -103,11 +103,21 @@ hook() { error=1 fi + if [ -d ${PKGDESTDIR}/usr/usr ]; then + msg_red "${pkgver}: /usr/usr is forbidden, use /usr.\n" + error=1 + fi + if [ -d ${PKGDESTDIR}/usr/man ]; then msg_red "${pkgver}: /usr/man is forbidden, use /usr/share/man.\n" error=1 fi + if [[ -d ${PKGDESTDIR}/usr/share/man/man ]]; then + msg_red "${pkgver}: /usr/share/man/man is forbidden, use /usr/share/man.\n" + error=1 + fi + if [ -d ${PKGDESTDIR}/usr/doc ]; then msg_red "${pkgver}: /usr/doc is forbidden. Use /usr/share/doc.\n" error=1 @@ -182,7 +192,7 @@ hook() { if [ -z "$found" ]; then _myshlib="${libname}.so" [ "${_myshlib}" != "${rev}" ] && _myshlib+=".${rev}" - msg_warn "${pkgver}: ${_myshlib} not found in common/shlibs!\n" + msg_normal "${pkgver}: ${_myshlib} not found in common/shlibs.\n" fi; } done diff --git a/common/scripts/lint-commits b/common/scripts/lint-commits index 01c4eda..6aea99d 100755 --- a/common/scripts/lint-commits +++ b/common/scripts/lint-commits @@ -5,18 +5,17 @@ die() { exit 1 } -GIT_CMD=$(command -v chroot-git 2>/dev/null) || -GIT_CMD=$(command -v git 2>/dev/null) || +command -v git >/dev/null 2>&1 || die "neither chroot-git nor git could be found!" rev_parse() { if [ -n "$1" ]; then - "$GIT_CMD" rev-parse --verify "$1" + git rev-parse --verify "$1" else shift while test "$#" != 0 do - "$GIT_CMD" rev-parse --verify "$1" 2>/dev/null && return + git rev-parse --verify "$1" 2>/dev/null && return shift done return 1 @@ -27,26 +26,26 @@ base=$(rev_parse "$1" FETCH_HEAD ORIG_HEAD) || die "base commit not found" tip=$(rev_parse "$2" HEAD) || die "tip commit not found" status=0 -for cmt in $("$GIT_CMD" rev-list --abbrev-commit $base..$tip) +for cmt in $(git rev-list --abbrev-commit $base..$tip) do - "$GIT_CMD" cat-file commit "$cmt" | + git cat-file commit "$cmt" | awk -vC="$cmt" ' # skip header /^$/ && !msg { msg = 1; next } !msg { next } # 3: long-line-is-banned-except-footnote-like-this-for-url - (NF > 2) && (length > 80) { print C ": long line: " $0; exit 1 } + (NF > 2) && (length > 80) { print "::error title=Commit Lint::" C ": long line: " $0; exit 1 } !subject { - if (length > 50) { print C ": subject is a bit long" } - if (!($0 ~ ":" || $0 ~ "^Take over maintainership " || $0 ~ "^Orphan ")) { print C ": subject does not follow CONTRIBUTING.md guildelines"; exit 1 } + if (length > 50) { print "::warning title=Commit Lint::" C ": subject is a bit long" } + if (!($0 ~ ":" || $0 ~ "^Take over maintainership " || $0 ~ "^Orphan ")) { print "::error title=Commit Lint::" C ": subject does not follow CONTRIBUTING.md guildelines"; exit 1 } # Below check is too noisy? # if (!($0 ~ "^New package:" || $0 ~ ".*: update to")) { - # print C ": not new package/update/removal?" + # print "::warning title=Commit Lint::" C ": not new package/update/removal?" # } subject = 1; next } /^$/ { body = 1; next } - !body { print C ": second line must be blank"; exit 1 } + !body { print "::error title=Commit Lint::" C ": second line must be blank"; exit 1 } ' || status=1 done exit $status diff --git a/common/scripts/lint-conflicts b/common/scripts/lint-conflicts new file mode 100755 index 0000000..2917f72 --- /dev/null +++ b/common/scripts/lint-conflicts @@ -0,0 +1,198 @@ +#!/usr/bin/env bash + +# Report packages installing same file and not marked with +# conflicts or replaces. +# Without argument, find conflicts between packages in local +# repository at hostdir/binpkgs and packages indexed in xlocate. +# With single path as argument, read that local repository. +# With -a flag, find conflicts between packages indexed in xlocate. + +if [ "$#" = 0 ]; then + binpkgs="$PWD/hostdir/binpkgs" +elif [ "$1" = -a ]; then + all=1 +elif [ -d "$1" ]; then + binpkgs="$1" +else + echo "Usage:" + echo "$0" + echo " check packages in ./hostdir/binpkgs" + echo "$0 path/to/hostdir/binpkgs" + echo " check packages there" + echo "$0 -a" + echo " check all packages indexed in xlocate" + exit 1 +fi + +declare -A newly_built conflicts_cache providers_cache pairs owners +repositories=("--repository=${binpkgs}" "--repository=${binpkgs}/nonfree") +rv=0 + +template_exists() { + [ -f "srcpkgs/$1/template" ] +} + +partial_check() { + [ -z "$all" ] +} + +providers_of() { + # print the pkgname and packages that `provides` it + local pkgname=$1 + if [ "${providers_cache[$pkgname]}" = '' ]; then + local line provider_pkgver provided_pkgver provider_pkgname provided_pkgname + local -A providers + providers[$pkgname]=$pkgname + while read -r line; do + line=${line%%'('*} + provider_pkgver=${line%': '*} + provided_pkgver=${line#*': '} + provider_pkgname=${provider_pkgver%-*} + provided_pkgname=${provided_pkgver%-*} + # comes from $(xbps-query -s $pkgname), so $pkgname can be substring + if [ "$provided_pkgname" = "$pkgname" ]; then + providers[$provider_pkgname]=$provider_pkgname + fi + done < <(xbps-query "${repositories[@]}" -p provides -R -s "$pkgname") + # leading space ensures ${[]} != '' + providers_cache[$pkgname]=" ${providers[*]}" + fi + echo ${providers_cache[$pkgname]} +} + +conflicts_of() { + # print list of packages that are _marked_ as conflicting with given one + local pkgname=$1 + if [ "${conflicts_cache[$pkgname]}" = '' ]; then + local in_conflict provider + local -A all + while read -r in_conflict; do + in_conflict=${in_conflict%'<'*} + in_conflict=${in_conflict%'>'*} + providers_of "$in_conflict" > /dev/null # executing in same process to fill cache + for provider in $(providers_of "$in_conflict"); do + all[$provider]=$provider + done + done < <(xbps-query "${repositories[@]}" -p conflicts,replaces -R "$pkgname") + # leading space ensures ${[]} != '' + conflicts_cache[$pkgname]=" ${all[*]}" + fi + echo ${conflicts_cache[$pkgname]} +} + +conflict_between() { + # exit successfully if packages are _marked_ as conflicting + conflicts_of "$1" > /dev/null # executing in same process to fill cache + case " $(conflicts_of "$1") " in + *" $2 "*) return 0 + esac + conflicts_of "$2" > /dev/null # executing in same process to fill cache + case " $(conflicts_of "$2") " in + *" $1 "*) return 0 + esac + return 1 +} + +list_newly_built_files() { + # print one line per file in newly built packages + # each line contains pkgname and file path + local pkgver pkgname + while read -r pkgver; do + pkgname=${pkgver%-*} + xbps-query "${repositories[@]}" -i -f "$pkgname" | sed s'/ -> .*//;'" s/^/$pkgname /" + done < <(xbps-query "${repositories[@]}" -i -R -s '' | cut -d' ' -f 2) +} + +list_interesting_files() { + # list files potentially contained in more than one package + # each line contains pkgver/pkgname and file path + if partial_check; then + list_newly_built_files + else + xlocate / | sed s'/ -> .*//' | grep -F -f <(xlocate / | cut -f 2- | sed s'/ -> .*//' | sort | uniq -d) + fi +} + +group_by_file_full() { + # create associative array `owners` mapping file to list of packages + # for packages potentially conflicting with newly built ones + local pkgver file pkgname + while read -r pkgver file; do + pkgname=${pkgver%-*} + if template_exists "$pkgname"; then + owners[$file]+=" $pkgname" + fi + done < <(list_interesting_files) +} + +group_by_file_partial() { + # create associative array `owners` mapping file to list of packages + # for all packages in xlocate + local pkgname file + ## newly built packages + while read -r pkgver; do + pkgname=${pkgver%-*} + newly_built[$pkgname]=$pkgname + done < <(xbps-query "${repositories[@]}" -i -R -s '' | cut -d' ' -f 2) + while read -r pkgname file; do + owners[$file]+=" $pkgname" + done < <(list_newly_built_files) + ## rest of repository + while read -r pkgver file; do + pkgname=${pkgver%-*} + if [ -z "${newly_built[$pkgname]}" ] && template_exists "$pkgname"; then + owners[$file]+=" $pkgname" + fi + done < <(xlocate / | sed s'/ -> .*//' | grep -F -f <(list_newly_built_files | cut -d ' ' -f 2-)) +} + +group_by_pair() { + # find package pairs owning same file and not marked as conflicting + local pkg file a b + while read -r pkg file; do + for a in ${owners[$file]}; do + for b in ${owners[$file]}; do + if ! [ "$a" "<" "$b" ]; then + continue + fi + if partial_check && [ -z "${newly_built[$a]}" ] && [ -z "${newly_built[$b]}" ]; then + continue + fi + if ! conflict_between "$a" "$b"; then + unset pair_files + local -A pair_files + eval "${pairs["$a $b"]}" + pair_files[$file]="$file" + pairs["$a $b"]="${pair_files[@]@A}" + fi + done + done + done < <(list_interesting_files) +} + +print_out() { + local pair file + if [ "${#pairs[@]}" = 0 ]; then + echo 1>&2 "No conflicts found in" "${repositories[@]#*=}" + exit 0 + fi + while read -r pair; do + rv=1 + echo "${pair% *} and ${pair#* } conflict for" + unset pair_files + eval "${pairs[$pair]}" + for file in "${pair_files[@]}"; do + echo " $file" + done | sort + done < <(printf '%s\n' "${!pairs[@]}" | sort) +} + +if partial_check; then + group_by_file_partial +else + group_by_file_full +fi +group_by_pair +print_out + +exit $rv diff --git a/common/scripts/lint-version-change b/common/scripts/lint-version-change index 5e96877..f900d90 100755 --- a/common/scripts/lint-version-change +++ b/common/scripts/lint-version-change @@ -13,20 +13,17 @@ if ! [ "$base_rev" ]; then die "usage: $0 TEMPLATE BASE-REVISION [TIP-REVISION]" fi -if command -v chroot-git >/dev/null 2>&1; then - GIT_CMD=$(command -v chroot-git) -elif command -v git >/dev/null 2>&1; then - GIT_CMD=$(command -v git) -else +if ! command -v git >/dev/null 2>&1; then die "neither chroot-git nor git could be found" fi scan() { rx="$1" msg="$2" template_path=$template + maybe_git= if [ "$tip_rev" ]; then template_path="${tip_rev}:${template}" - maybe_git="$GIT_CMD" + maybe_git="git" revspec="[^:]*:" fi $maybe_git grep -P -Hn -e "$rx" "$template_path" | @@ -37,7 +34,7 @@ scan() { show_template() { rev="$1" if [ "$rev" ]; then - $GIT_CMD cat-file blob "${rev}:${template}" 2>/dev/null + git cat-file blob "${rev}:${template}" 2>/dev/null else cat "${template}" 2>/dev/null fi @@ -45,7 +42,10 @@ show_template() { show_template_var() { rev="$1" var="$2" - show_template "$rev" | grep -Po '^'${var}'=\K.*' + ( + show_template "$rev" + printf '%s\n' "printf '%s\\n' \"\$${var}\"" + ) | bash 2>/dev/null } revision_reset() { @@ -72,6 +72,28 @@ reverts_on_downgrade() { esac } +check_revert() { + for vr in $reverts; do + xbps-uhelper cmpver "${version}" "${vr%_*}" + case "$?" in + 0 | 1) + scan '^version=' "remove $vr from \$reverts" + status=1 + ;; + esac + done + for vr in $prev_reverts; do + if ! xbps-uhelper cmpver "$version" "${vr%_*}"; then + continue + fi + if [ $revision -gt "${vr##*_}" ]; then + continue + fi + scan '^revision=' "undo a revert with same revision as before" + status=1 + done +} + version_change() { version="$(show_template_var "$tip_rev" version)" revision="$(show_template_var "$tip_rev" revision)" @@ -83,6 +105,7 @@ version_change() { 1) revision_reset;; -1|255) reverts_on_downgrade;; esac + check_revert } version_change diff --git a/common/scripts/lint2annotations.awk b/common/scripts/lint2annotations.awk new file mode 100644 index 0000000..5405d69 --- /dev/null +++ b/common/scripts/lint2annotations.awk @@ -0,0 +1,11 @@ +# Converts xlint/etc format lints into GH Actions annotations +# The original line is printed alongside the annotation command +{ + split($0, a, ": ") + split(a[1], b, ":") + msg = substr($0, index($0, ": ") + 2) + if (b[2]) { + line = ",line=" b[2] + } + printf "::error title=Template Lint,file=%s%s::%s\n", b[1], line, msg +} diff --git a/common/shlibs b/common/shlibs index bb2f723..83da605 100644 --- a/common/shlibs +++ b/common/shlibs @@ -42,6 +42,8 @@ libnss_dns.so.2 glibc-2.32_1 libnss_hesiod.so.2 glibc-2.32_1 libcrypt.so.1 glibc-2.32_1 libBrokenLocale.so.1 glibc-2.32_1 +libSimGearCore.so.2020.3.13 simgear-2020.3.13_1 +libSimGearScene.so.2020.3.13 simgear-2020.3.13_1 libmemusage.so glibc-2.32_1 libSegFault.so glibc-2.32_1 libpcprofile.so glibc-2.32_1 @@ -59,7 +61,8 @@ libitm.so.1 libitm-4.7.3_1 liblto_plugin.so.0 gcc-4.7.3_1 libgcc_s.so.1 libgcc-4.4.0_1 libgo.so.16 libgo-10.2.0_1 -libperl.so.5.34 perl-5.34.0_1 +libgccjit.so.0 libgccjit-10.2.1pre1_1 +libperl.so.5.36 perl-5.36.0_1 libgmp.so.10 gmp-5.0.1_1 libgmpxx.so.4 gmpxx-6.0.0_2 libmpfi.so.0 mpfi-1.5.3_1 @@ -72,6 +75,12 @@ libcxsparse.so.3 SuiteSparse-5.10.1_1 libncurses.so.6 ncurses-libs-6.0_1 ignore libncursesw.so.6 ncurses-libs-5.8_1 ignore libtinfo.so.6 ncurses-libtinfo-libs-6.2_2 +libt3config.so.0 libt3config-1.0.0_1 +libt3highlight.so.2 libt3highlight-0.5.0_1 +libt3key.so.1 libt3key-0.2.10_1 +libt3window.so.0 libt3window-0.4.1_1 +libt3widget.so.2 libt3widget-1.2.2_1 +libtranscript.so.1 libtranscript-0.3.3_1 libnetcdf.so.15 netcdf-4.7.0_1 libformw.so.6 ncurses-libs-5.8_1 ignore libfplll.so.7 fplll-5.4.1_1 @@ -84,11 +93,11 @@ libmagic.so.1 libmagic-5.12_1 libbluetooth.so.3 libbluetooth-4.58_1 libwmf-0.2.so.7 libwmf-0.2.8.4_1 libwmflite-0.2.so.7 libwmf-0.2.8.4_1 -libgthread-2.0.so.0 glib-2.72.0_1 -libglib-2.0.so.0 glib-2.72.0_1 -libgmodule-2.0.so.0 glib-2.72.0_1 -libgio-2.0.so.0 glib-2.72.0_1 -libgobject-2.0.so.0 glib-2.72.0_1 +libgthread-2.0.so.0 glib-2.74.0_1 +libglib-2.0.so.0 glib-2.74.0_1 +libgmodule-2.0.so.0 glib-2.74.0_1 +libgio-2.0.so.0 glib-2.74.0_1 +libgobject-2.0.so.0 glib-2.74.0_1 libatk-1.0.so.0 atk-1.26.0_1 libpangocairo-1.0.so.0 pango-1.24.0_1 libpangoft2-1.0.so.0 pango-1.24.0_1 @@ -102,7 +111,7 @@ libgtk-x11-2.0.so.0 gtk+-2.16.0_1 libgdk_pixbuf-2.0.so.0 gdk-pixbuf-2.22.0_1 libgdk_pixbuf_xlib-2.0.so.0 gdk-pixbuf-xlib-2.30.8_1 libgailutil.so.18 gtk+-2.16.0_1 -libfreetype.so.6 freetype-2.3.9_1 +libfreetype.so.6 freetype-2.12.1_1 libfontconfig.so.1 fontconfig-2.6.0_1 libX11-xcb.so.1 libX11-1.2_1 libX11.so.6 libX11-1.2_1 @@ -137,13 +146,14 @@ libnvidia-gtk2.so.346.47 nvidia-gtklibs-346.47_1 ignore libnvidia-gtk3.so.346.47 nvidia-gtklibs-346.47_1 ignore libnvidia-glcore.so.390.87 nvidia390-libs-390.87_1 ignore libnvidia-glsi.so.346.72 nvidia-libs-346.72_1 ignore -libnvidia-fatbinaryloader.so.390.147 nvidia390-libs-390.147_1 ignore +libnvidia-fatbinaryloader.so.390.154 nvidia390-libs-390.154_1 ignore libnvidia-fatbinaryloader.so.430.40 nvidia-libs-430.40_1 ignore libglapi.so.0 libglapi-7.11_1 libgbm.so.1 libgbm-9.0_1 libOpenGL.so.0 libglvnd-1.3.0_1 libGLX.so.0 libglvnd-1.3.0_1 librsvg-2.so.2 librsvg-2.26.0_1 +librist.so.4 librist-0.2.7_1 libdbus-1.so.3 dbus-libs-1.2.10_1 libdbus-glib-1.so.2 dbus-glib-0.80_1 libxml2.so.2 libxml2-2.7.0_1 @@ -213,6 +223,7 @@ libgirepository-everything-1.0.so libgirepository-1.30_1 libgirepository-1.0.so.1 libgirepository-1.30_1 libudev.so.1 eudev-libudev-1.6_1 libgudev-1.0.so.0 libgudev-230_1 +libumockdev.so.0 libumockdev-0.17.6_1 libext2fs.so.2 e2fsprogs-libs-1.41.5_1 libcom_err.so.2 e2fsprogs-libs-1.41.5_1 libe2p.so.2 e2fsprogs-libs-1.41.5_1 @@ -277,7 +288,6 @@ libdrm_intel.so.1 libdrm-2.4.6_1 libdrm_nouveau.so.2 libdrm-2.4.34_1 libdrm_amdgpu.so.1 libdrm-2.4.64_1 libdrm_freedreno.so.1 libdrm-2.4.97_1 -libkms.so.1 libdrm-2.4.6_1 libXxf86vm.so.1 libXxf86vm-1.0.2_1 libXi.so.6 libXi-1.2.1_1 libdmx.so.1 libdmx-1.0.2_1 @@ -316,7 +326,6 @@ libnotify.so.4 libnotify-0.7_1 libexo-1.so.0 exo-0.7.3_1 libexo-2.so.0 exo-0.12.0_1 libglade-2.0.so.0 libglade-2.6.4_1 -libglademm-2.4.so.1 libglademm-2.6.7_1 libthunarx-3.so.0 Thunar-1.8.1_1 libexif.so.12 libexif-0.6.17_1 liboil-0.3.so.0 liboil-0.3.16_1 @@ -342,11 +351,8 @@ libgsf-1.so.114 libgsf-1.14.11_1 libMagickCore-7.Q16HDRI.so.10 libmagick-7.1.0.10_1 libMagickWand-7.Q16HDRI.so.10 libmagick-7.1.0.10_1 libMagick++-7.Q16HDRI.so.5 libmagick-7.0.11.1_1 -libMagickCore-6.Q16.so.7 libmagick6-6.9.11.61_1 -libMagickWand-6.Q16.so.7 libmagick6-6.9.11.61_1 -libMagick++-6.Q16.so.9 libmagick6-6.9.12.1_1 libltdl.so.7 libltdl-2.2.6_1 -libpoppler.so.111 libpoppler-21.07.0_1 +libpoppler.so.122 libpoppler-22.06.0_1 libpoppler-glib.so.8 poppler-glib-0.18.2_1 libpoppler-cpp.so.0 poppler-cpp-0.18.2_1 libpoppler-qt5.so.1 poppler-qt5-0.31.0_1 @@ -421,7 +427,7 @@ libField3D.so.1.7 Field3D-1.7.3_1 libMAC.so.6 libMAC-5.28_1 libmad.so.0 libmad-0.15.1b_1 libmatroska.so.7 libmatroska-1.6.0_1 -libmatrix_client.so.0.7.0 mtxclient-0.7.0_1 +libmatrix_client.so.0.8.2 mtxclient-0.8.2_1 libebml.so.5 libebml-1.4.0_1 libdvdread.so.8 libdvdread-6.1.1_1 libdvdnav.so.4 libdvdnav-4.1.3_1 @@ -450,7 +456,6 @@ liblsofui.so.9 libksysguard-5.18.90_1 libKSysGuardSensorFaces.so.1 libksysguard-5.18.90_1 libKSysGuardFormatter.so.1 libksysguard-5.19.5_1 libKSysGuardSystemStats.so.1 libksysguard-5.22.0_1 -libKWaylandServer.so.5 kwayland-server-5.18.90_1 libxenctrl.so.4.14 xen-libs-4.14.0_1 libxenfsimage.so.4.14 xen-libs-4.14.0_1 libxenguest.so.4.14 xen-libs-4.14.0_1 @@ -470,6 +475,7 @@ libfsimage.so.1.0 xen-libs-4.10.0_1 libxenstat.so.4.14 xen-libs-4.14.0_1 libfam.so.0 gamin-0.1.10_1 libgamin-1.so.0 gamin-0.1.10_1 +libkateprivate.so.22.08.2 libkate-22.08.2_1 libKF5SyntaxHighlighting.so.5 syntax-highlighting-5.29.0_1 libKF5Libkleo.so.5 libkleo-17.12.3_1 libKF5GrantleeTheme.so.5 grantleetheme-17.12.3_1 @@ -511,7 +517,6 @@ libKF5CalendarSupport.so.5 calendarsupport-17.12.3_1 libKF5AkonadiNotes.so.5 akonadi-notes-17.12.3_1 libKPimKDAV.so.5 kdav-5.72.0_1 libKF5DAV.so.5 kdav-5.72.0_1 -libKF5AlarmCalendar.so.5 kalarmcal-17.12.3_1 libakonadi-singlefileresource.so.5 kdepim-runtime-17.12.3_1 libkmindexreader.so.5 kdepim-runtime-17.12.3_1 libkdexoauth2.so.3 kdepim-runtime-17.12.3_1 @@ -539,9 +544,12 @@ libsoup-3.0.so.0 libsoup3-3.0.0_1 libsoup-gnome-2.4.so.1 libsoup-gnome-2.34.0_1 libgnome-panel.so.0 gnome-panel-3.37.1_1 libuninum.so.5 libuninum-2.7_1 -libunique-3.0.so.0 libunique-2.91.4_1 libwebkit2gtk-4.0.so.37 webkit2gtk-2.6.2_1 libjavascriptcoregtk-4.0.so.18 webkit2gtk-2.6.2_1 +libwebkit2gtk-4.1.so.0 libwebkit2gtk41-2.38.0_1 +libjavascriptcoregtk-4.1.so.0 libwebkit2gtk41-2.38.0_1 +libwebkit2gtk-5.0.so.0 libwebkit2gtk50-2.38.0_1 +libjavascriptcoregtk-5.0.so.0 libwebkit2gtk50-2.38.0_1 libgimp-2.0.so.0 libgimp-2.10.0_1 libgimpwidgets-2.0.so.0 libgimp-2.10.0_1 libgimpui-2.0.so.0 libgimp-2.10.0_1 @@ -620,37 +628,38 @@ libip4tc.so.2 iptables-1.8.3_1 libipq.so.0 iptables-1.4.7_1 libnm.so.0 libnm-1.0.0_1 libKF5ItemModels.so.5 kitemmodels-5.26.0_1 -libboost_context.so.1.72.0 libboost_context1.72-1.72.0_1 -libboost_coroutine.so.1.72.0 libboost_coroutine1.72-1.72.0_1 -libboost_container.so.1.72.0 libboost_container1.72-1.72.0_1 -libboost_prg_exec_monitor.so.1.72.0 libboost_prg_exec_monitor1.72-1.72.0_1 -libboost_timer.so.1.72.0 libboost_timer1.72-1.72.0_1 -libboost_random.so.1.72.0 libboost_random1.72-1.72.0_1 -libboost_filesystem.so.1.72.0 libboost_filesystem1.72-1.72.0_1 -libboost_unit_test_framework.so.1.72.0 libboost_unit_test_framework1.72-1.72.0_1 -libboost_math_c99.so.1.72.0 libboost_math_c991.72-1.72.0_1 -libboost_math_tr1.so.1.72.0 libboost_math_tr11.72-1.72.0_1 -libboost_regex.so.1.72.0 libboost_regex1.72-1.72.0_1 -libboost_serialization.so.1.72.0 libboost_serialization1.72-1.72.0_1 -libboost_chrono.so.1.72.0 libboost_chrono1.72-1.72.0_1 -libboost_wserialization.so.1.72.0 libboost_wserialization1.72-1.72.0_1 -libboost_graph.so.1.72.0 libboost_graph1.72-1.72.0_1 -libboost_log.so.1.72.0 libboost_log1.72-1.72.0_1 -libboost_locale.so.1.72.0 libboost_locale1.72-1.72.0_1 -libboost_program_options.so.1.72.0 libboost_program_options1.72-1.72.0_1 -libboost_iostreams.so.1.72.0 libboost_iostreams1.72-1.72.0_1 -libboost_system.so.1.72.0 libboost_system1.72-1.72.0_1 -libboost_thread.so.1.72.0 libboost_thread1.72-1.72.0_1 -libboost_log_setup.so.1.72.0 libboost_log_setup1.72-1.72.0_1 -libboost_date_time.so.1.72.0 libboost_date_time1.72-1.72.0_1 -libboost_wave.so.1.72.0 libboost_wave1.72-1.72.0_1 -libboost_atomic.so.1.72.0 libboost_atomic1.72-1.72.0_1 -libboost_type_erasure.so.1.72.0 libboost_type_erasure1.72-1.72.0_1 -libboost_fiber.so.1.72.0 libboost_fiber1.72-1.72.0_1 -libboost_stacktrace_noop.so.1.72.0 libboost_stacktrace_noop1.72-1.72.0_1 -libboost_stacktrace_addr2line.so.1.72.0 libboost_stacktrace_addr2line1.72-1.72.0_1 -libboost_stacktrace_basic.so.1.72.0 libboost_stacktrace_basic1.72-1.72.0_1 -libboost_python27.so.1.72.0 boost-python1.72-1.72.0_1 +libboost_context.so.1.80.0 libboost_context1.80-1.80.0_1 +libboost_coroutine.so.1.80.0 libboost_coroutine1.80-1.80.0_1 +libboost_container.so.1.80.0 libboost_container1.80-1.80.0_1 +libboost_prg_exec_monitor.so.1.80.0 libboost_prg_exec_monitor1.80-1.80.0_1 +libboost_timer.so.1.80.0 libboost_timer1.80-1.80.0_1 +libboost_random.so.1.80.0 libboost_random1.80-1.80.0_1 +libboost_filesystem.so.1.80.0 libboost_filesystem1.80-1.80.0_1 +libboost_unit_test_framework.so.1.80.0 libboost_unit_test_framework1.80-1.80.0_1 +libboost_math_c99.so.1.80.0 libboost_math_c991.80-1.80.0_1 +libboost_math_tr1.so.1.80.0 libboost_math_tr11.80-1.80.0_1 +libboost_nowide.so.1.80.0 libboost_nowide1.80-1.80.0_1 +libboost_json.so.1.80.0 libboost_json1.80-1.80.0_1 +libboost_regex.so.1.80.0 libboost_regex1.80-1.80.0_1 +libboost_serialization.so.1.80.0 libboost_serialization1.80-1.80.0_1 +libboost_chrono.so.1.80.0 libboost_chrono1.80-1.80.0_1 +libboost_wserialization.so.1.80.0 libboost_wserialization1.80-1.80.0_1 +libboost_graph.so.1.80.0 libboost_graph1.80-1.80.0_1 +libboost_log.so.1.80.0 libboost_log1.80-1.80.0_1 +libboost_locale.so.1.80.0 libboost_locale1.80-1.80.0_1 +libboost_program_options.so.1.80.0 libboost_program_options1.80-1.80.0_1 +libboost_iostreams.so.1.80.0 libboost_iostreams1.80-1.80.0_1 +libboost_system.so.1.80.0 libboost_system1.80-1.80.0_1 +libboost_thread.so.1.80.0 libboost_thread1.80-1.80.0_1 +libboost_log_setup.so.1.80.0 libboost_log_setup1.80-1.80.0_1 +libboost_date_time.so.1.80.0 libboost_date_time1.80-1.80.0_1 +libboost_wave.so.1.80.0 libboost_wave1.80-1.80.0_1 +libboost_atomic.so.1.80.0 libboost_atomic1.80-1.80.0_1 +libboost_type_erasure.so.1.80.0 libboost_type_erasure1.80-1.80.0_1 +libboost_fiber.so.1.80.0 libboost_fiber1.80-1.80.0_1 +libboost_stacktrace_noop.so.1.80.0 libboost_stacktrace_noop1.80-1.80.0_1 +libboost_stacktrace_addr2line.so.1.80.0 libboost_stacktrace_addr2line1.80-1.80.0_1 +libboost_stacktrace_basic.so.1.80.0 libboost_stacktrace_basic1.80-1.80.0_1 libboost_python311.so.1.80.0 boost-python3-1.80-1.80.0_6 libexempi.so.8 exempi-2.5.0_1 libatasmart.so.4 libatasmart-0.17_1 @@ -683,7 +692,9 @@ libatkmm-1.6.so.1 atkmm-2.22.1_1 libgtkmm-3.0.so.1 gtkmm-2.99.5_1 libgdkmm-3.0.so.1 gtkmm-2.99.5_1 libgtkmm-4.0.so.0 gtkmm4-4.0.0_1 -libgnome-bluetooth.so.13 gnome-bluetooth-3.12.0_1 +libgnome-bluetooth.so.13 gnome-bluetooth1-3.12.0_1 +libgnome-bluetooth-3.0.so.13 gnome-bluetooth-42.1_1 +libgnome-bluetooth-ui-3.0.so.13 gnome-bluetooth-42.1_1 libsasl2.so.3 libsasl-2.1.26_1 liblber-2.4.so.2 libldap-2.4.21_1 libldap-2.4.so.2 libldap-2.4.21_1 @@ -720,7 +731,7 @@ libdconf.so.1 dconf-0.13.90_1 libassuan.so.0 libassuan-2.0.1_1 libgpgme.so.11 libgpgme-1.12.0_2 libgpgmepp.so.6 gpgmepp-1.7.0_3 -libqgpgme.so.7 gpgmeqt-1.7.0_3 +libqgpgme.so.15 gpgmeqt-1.18.0_1 libgarcon-1.so.0 garcon-0.1.12_1 libgarcon-gtk2-1.so.0 garcon-0.4.0_1 libgarcon-gtk3-1.so.0 garcon-0.6.1_1 @@ -744,7 +755,6 @@ libpulsecore-15.0.so libpulseaudio-15.0_1 libprojectM.so.3 projectM-3.1.7_2 liborc-0.4.so.0 orc-0.4.11_1 liborc-test-0.4.so.0 orc-0.4.11_1 -libgmime-2.6.so.0 gmime-2.6.4_1 libtotem-plparser.so.18 totem-pl-parser-3.26.1_1 libtotem-plparser-mini.so.18 libtotem-plparser-mini-3.26.1_1 libgladeui-2.so.13 libgladeui3-3.38.0_1 @@ -818,10 +828,12 @@ libchamplain-0.12.so.0 libchamplain-0.12.5_2 libchamplain-gtk-0.12.so.0 libchamplain-0.12.5_2 libvpx.so.5 libvpx5-1.7.0_1 libvpx.so.6 libvpx6-1.8.0_1 +libvpx.so.7 libvpx7-1.11.0_1 libXevie.so.1 libXevie-1.0.2_1 libatspi.so.0 at-spi2-core-1.91.91_1 libatk-bridge-2.0.so.0 at-spi2-atk-2.6.0_1 libvte-2.91.so.0 vte3-0.68.0_1 +libvte-2.91-gtk4.so.0 vte3-gtk4-0.70.0_1 libpipeline.so.1 libpipeline-1.2.0_1 libosp.so.5 opensp-1.5.2_1 libogrove.so.0 openjade-1.3.2_1 @@ -837,7 +849,7 @@ liblua5.1.so.5.1 lua51-5.1.5_1 liblua5.2.so.5.2 lua52-5.2.4_2 liblua5.3.so.5.3 lua53-5.3.5_4 liblua5.4.so.5.4 lua54-5.4.0_1 -libsurgescript.so.0.5.5 surgescript-0.5.5_1 +libsurgescript.so.0.5.6 surgescript-0.5.6_1 libburn.so.4 libburn-0.7.2_1 libKF5Auth.so.5 kauth-5.26.0_1 libKF5AuthCore.so.5 kauth-5.56.0_1 @@ -868,8 +880,10 @@ libcogl-gst.so.20 cogl-1.18.0_1 libcogl-gles2.so.20 cogl-1.18.0_1 libcogl-path.so.20 cogl-1.18.0_1 libp11-kit.so.0 p11-kit-0.7_1 -librest-0.7.so.0 rest-0.7_1 -librest-extras-0.7.so.0 rest-0.7_1 +librest-0.7.so.0 rest0-0.8.1_1 +librest-1.0.so.0 rest-0.9.1_1 +librest-extras-0.7.so.0 rest0-0.8.1_1 +librest-extras-1.0.so.0 rest-0.9.1_1 libgoa-1.0.so.0 gnome-online-accounts-3.2.0_1 libgoa-backend-1.0.so.1 gnome-online-accounts-3.10.0_1 liboauth.so.0 liboauth-0.9.4_1 @@ -887,12 +901,9 @@ libepc-ui-1.0.so.3 libepc-0.4.1_1 libgupnp-dlna-2.0.so.3 gupnp-dlna-0.10.0_1 libgupnp-dlna-gst-2.0.so.3 gupnp-dlna-0.10.0_1 libgupnp-dlna-1.0.so.2 gupnp-dlna-0.6.1_1 -libtracker-common.so libtracker-2.2.0_1 -libtracker-data.so libtracker-2.2.0_1 libfm.so.4 libfm-1.2.3_3 libfm-gtk3.so.4 libfm-gtk+3-1.3.1_2 libfm-extra.so.4 libfm-extra-1.2.3_3 -libunique-1.0.so.0 libunique1-1.1.6_1 libdiscid.so.0 libdiscid-0.2.2_1 librhythmbox-core.so.10 librhythmbox-3.4.1_1 libdmapsharing-3.0.so.2 libdmapsharing-2.9.12_1 @@ -961,14 +972,14 @@ libIceDiscovery.so.37 libIce-3.7.5_2 libIceLocatorDiscovery.so.37 libIce-3.7.5_2 libvdpau.so.1 libvdpau-0.4.1_1 libgsm.so.1 libgsm-1.0.13_13 -libcgroup.so.1 libcgroup-0.37.1_1 +libcgroup.so.3 libcgroup-3.0.0_1 libxdg-basedir.so.1 libxdg-basedir-1.1.1_1 libev.so.4 libev-4.04_1 libell.so.0 ell-0.45_1 libgvnc-1.0.so.0 gtk-vnc-0.4.4_1 libgtk-vnc-2.0.so.0 gtk-vnc-0.4.4_1 libgvncpulse-1.0.so.0 gtk-vnc-1.2.0_2 -libyaml-0.so.2 libyaml-0.7.0_1 +libyaml-0.so.2 libyaml-0.1.4_1 libuchardet.so.0 uchardet-0.0.6_1 libgtksourceviewmm-3.0.so.0 gtksourceviewmm-3.2.0_1 libyajl.so.2 yajl-2.0.1_1 @@ -990,6 +1001,7 @@ libmdbsql.so.0 libmdb-0.5_1 libkmod.so.2 libkmod-5_1 libestr.so.0 libestr-0.1.2_1 libee.so.0 libee-0.3.2_1 +libopendht.so.2 opendht-2.3.1_1 libobt.so.2 libopenbox-3.5.2_1 libobrender.so.32 libopenbox-3.6.1_1 libgssglue.so.1 libgssglue-0.3_1 @@ -1083,7 +1095,6 @@ libxar.so.1 xar-1.6.1_9 libmikmod.so.3 libmikmod-3.1.12_1 libSDL_sound-1.0.so.1 SDL_sound-1.0.3_1 libgtksourceview-2.0.so.0 gtksourceview2-2.10.5_1 -libraul.so.10 raul-0.8.0_1 libxdot.so.4 graphviz-libs-2.28.0_6 libgvpr.so.2 graphviz-libs-2.28.0_6 libcgraph.so.6 graphviz-libs-2.28.0_6 @@ -1125,8 +1136,11 @@ libgstplayer-1.0.so.0 gst-plugins-bad1-1.18.3_2 libgstwebrtc-1.0.so.0 gst-plugins-bad1-1.18.4_2 libgstgl-1.0.so.0 gst-plugins-base1-1.14.0_1 libgnome-desktop-3.so.19 gnome-desktop-3.37.90.1_1 +libgnome-desktop-4.so.1 gnome-desktop-42.0_1 +libgnome-bg-4.so.1 gnome-desktop-42.0_1 +libgnome-rr-4.so.1 gnome-desktop-42.0_1 libsecret-1.so.0 libsecret-0.10_1 -libgweather-3.so.16 libgweather-3.34.0_1 +libgweather-4.so.0 libgweather-4.0.0_1 libgnomekbd.so.8 libgnomekbd-3.6.0_1 libgnomekbdui.so.8 libgnomekbd-3.6.0_1 libibus-1.0.so.5 ibus-1.4.99.20120917_1 @@ -1147,14 +1161,14 @@ librygel-renderer-gst-2.6.so.2 librygel-0.26.0_1 librygel-ruih-2.0.so.1 librygel-0.26.0_1 librygel-server-2.6.so.2 librygel-0.26.0_1 librygel-db-2.6.so.2 librygel-0.28.0_1 -libharfbuzz.so.0 libharfbuzz-0.9.4_1 -libharfbuzz-icu.so.0 libharfbuzz-0.9.19_1 -libharfbuzz-subset.so.0 libharfbuzz-1.7.6_1 -libharfbuzz-gobject.so.0 libharfbuzz-2.7.2_2 -libosinfo-1.0.so.0 libosinfo-0.2.0_1 -libspice-client-gtk-3.0.so.5 spice-gtk-0.37_6 -libspice-client-glib-2.0.so.8 spice-gtk-0.37_6 -libspice-controller.so.0 spice-gtk-0.37_6 +libharfbuzz.so.0 libharfbuzz-5.1.0_1 +libharfbuzz-icu.so.0 libharfbuzz-5.1.0_1 +libharfbuzz-subset.so.0 libharfbuzz-5.1.0_1 +libharfbuzz-gobject.so.0 libharfbuzz-5.1.0_1 +libosinfo-1.0.so.0 libosinfo-0.10.0_2 +libspice-client-gtk-3.0.so.5 spice-gtk-0.41_2 +libspice-client-glib-2.0.so.8 spice-gtk-0.41_2 +libspice-controller.so.0 spice-gtk-0.41_2 libvirt-gconfig-1.0.so.0 libvirt-glib-0.1.2_1 libvirt-gobject-1.0.so.0 libvirt-glib-0.1.2_1 libgsasl.so.7 libgsasl-1.8.0_1 @@ -1191,13 +1205,14 @@ libconfig.so.11 libconfig-1.7.1_1 libopusfile.so.0 opusfile-0.12_2 libopusurl.so.0 opusfile-0.12_2 libopusenc.so.0 libopusenc-0.2_1 +libgranite-7.so.7 granite7-7.0.0_1 libgranite.so.6 granite-6.2.0_1 libprotobuf-vala.so.0 libprotobuf-vala-0.1.0_1 librlog.so.5 librlog-1.4_1 libtinyxml.so.0 tinyxml-2.6.2_1 libtinyxml2.so.9 tinyxml2-9.0.0_1 libbluray.so.2 libbluray-1.0.0_1 -libnfs.so.13 libnfs-4.0.0_1 +libnfs.so.14 libnfs-5.0.1_1 libzip.so.5 libzip-1.7.3_2 libluajit-5.1.so.2 LuaJIT-2.0.0_1 libOSMesa.so.8 libOSMesa-9.1_1 @@ -1325,7 +1340,7 @@ libunwind-ppc64.so.8 libunwind-1.5.0_3 libunwind-setjmp.so.0 libunwind-1.5.0_3 libmicrohttpd.so.12 libmicrohttpd-0.9.73_1 libmicrodns.so.1 libmicrodns-0.2.0_1 -libgit2.so.1.0 libgit2-1.0.1_3 +libgit2.so.1.5 libgit2-1.5.0_1 libgit2-glib-1.0.so.0 libgit2-glib-0.23.4_1 libagg.so.2 agg-2.5_1 libzzip-0.so.13 zziplib-0.13.62_1 @@ -1396,7 +1411,6 @@ libopts.so.25 libopts-5.18.4_6 libanjuta-3.so.0 anjuta-3.8.4_1 libgmlib.so.1 gmtk-1.0.8_1 libgmtk.so.1 gmtk-1.0.8_1 -liblrzip.so.0 liblrzip-0.614_3 libsilcclient-1.1.so.4 silc-toolkit-1.1.11_1 libsilc-1.1.so.4 silc-toolkit-1.1.11_1 libphorward.so.0 libphorward-0.17_1 @@ -1412,12 +1426,15 @@ libCHART-1.6.so.0 fox-1.6.49_1 libchromaprint.so.1 chromaprint-1.5.0_1 libedit.so.0 libedit-20130712.3.1_1 libnet.so.9 libnet-1.2_1 -libgpaste.so.13 libgpaste-3.38.2_1 +libgpaste-2.so.0 libgpaste-42.1_1 +libgpaste-gtk-3.so.0 libgpaste-42.1_1 +libgpaste-gtk4.so.0 libgpaste-42.1_1 libthreadutil.so.6 libupnp-1.6.18_1 libupnp.so.17 libupnp-1.14.0_1 libixml.so.11 libupnp-1.14.0_1 -libupnpp.so.11 libupnpp-0.21.0_1 -libgeocode-glib.so.0 geocode-glib-3.10.0_1 +libupnpp.so.12 libupnpp-0.22.2_1 +libgeocode-glib.so.0 geocode-glib-libsoup2-3.26.4_1 +libgeocode-glib-2.so.0 geocode-glib-3.26.4_2 libzeitgeist-2.0.so.0 libzeitgeist2-0.9.14_1 libpotrace.so.0 libpotrace-1.11_1 libSDL2-2.0.so.0 SDL2-2.0.0_1 @@ -1436,7 +1453,7 @@ libgfrpc.so.0 libglusterfs-8.3_2 libgfxdr.so.0 libglusterfs-8.3_2 libgfapi.so.0 libglusterfs-8.3_2 libglusterd.so.0 libglusterfs-8.3_2 -libsnapper.so.5 libsnapper-0.4.1_1 +libsnapper.so.6 libsnapper-0.10.2_1 libtsm.so.3 libtsm-3_1 libxine.so.2 libxine-1.2.4_1 libjbig2dec.so.0 libjbig2dec-0.11_1 @@ -1488,10 +1505,10 @@ libector.so.1 efl-1.25.1_2 libemile.so.1 efl-1.25.1_2 libcjs.so.0 cjs-2.0.0_1 libmuffin.so.0 muffin-2.0.5_1 -libmuffin-cogl-pango-0.so muffin-4.0.5_1 -libmuffin-cogl-path-0.so muffin-4.0.5_1 -libmuffin-cogl-0.so muffin-4.0.5_1 -libmuffin-clutter-0.so muffin-4.0.5_1 +libmuffin-cogl-pango-0.so.0 muffin-5.4.5_1 +libmuffin-cogl-path-0.so.0 muffin-5.4.5_1 +libmuffin-cogl-0.so.0 muffin-5.4.5_1 +libmuffin-clutter-0.so.0 muffin-5.4.5_1 libcinnamon-desktop.so.4 cinnamon-desktop-2.0.4_1 libcinnamon-control-center.so.1 libcinnamon-control-center-2.4.2_1 libcvc.so.0 cinnamon-desktop-3.2.0_1 @@ -1563,8 +1580,7 @@ libslim.so.1.3.6 slim-1.3.6_1 libmediaart-2.0.so.0 libmediaart-1.9.1_1 libinput.so.10 libinput-1.2.0_1 libuhttpmock-0.0.so.0 uhttpmock-0.2.0_1 -libgfbgraph-0.2.so.0 gfbgraph-0.2.2_1 -libgtkhex-3.so.0 libgtkhex-3.10.0_1 +libgtkhex-4.so.0 libgtkhex-42.1_1 libgdlmm-3.0.so.2 libgdlmm-3.7.3_1 libdmraid.so.1 dmraid-1.0.0.rc16.3_5 libdovecot.so.0 dovecot-2.3.13_3 @@ -1573,9 +1589,9 @@ libdovecot-compression.so.0 dovecot-2.3.13_3 libdovecot-sql.so.0 dovecot-2.3.13_3 libdovecot-storage.so.0 dovecot-2.3.13_3 libdovecot-lda.so.0 dovecot-2.3.13_3 -libwiretap.so.12 libwireshark-3.6.3_1 -libwireshark.so.15 libwireshark-3.6.3_1 -libwsutil.so.13 libwireshark-3.6.3_1 +libwiretap.so.13 libwireshark-4.0.0_1 +libwireshark.so.16 libwireshark-4.0.0_1 +libwsutil.so.14 libwireshark-4.0.0_1 libKF5ContactEditor.so.5 akonadi-contacts-17.12.1_1 libKF5AkonadiContact.so.5 akonadi-contacts-17.12.1_1 libKF5Prison.so.5 prison-5.43.0_1 @@ -1584,6 +1600,7 @@ libKF5Mime.so.5 kmime-17.12.1_1 libKF5Kirigami2.so.5 kirigami2-5.47.0_1 libtaskmanager.so.6 plasma-workspace-5.8.4_1 libnotificationmanager.so.1 plasma-workspace-5.15.90_1 +libKPipeWire.so.5 kpipewire-5.26.0_1 libZXing.so.1 zxing-cpp-1.2.0_1 libfreerdp-client2.so.2 libfreerdp-2.2.0_3 libfreerdp2.so.2 libfreerdp-2.2.0_3 @@ -1649,9 +1666,9 @@ libgdkglext-x11-1.0.so.0 gtkglext-1.2.0_4 libXaw3d.so.8 libXaw3d-1.6.2_1 libshiboken2.so.5.15 libshiboken2-5.15.0_1 libpyside2.so.5.15 libpyside2-python3-5.15.0_1 -libupsclient.so.4 libnetwork-ups-tools-2.7.4_12 -libnutclient.so.0 libnetwork-ups-tools-2.7.4_12 -libnutscan.so.1 libnetwork-ups-tools-2.7.4_12 +libupsclient.so.6 libnetwork-ups-tools-2.8.0_1 +libnutclient.so.2 libnetwork-ups-tools-2.8.0_1 +libnutscan.so.2 libnetwork-ups-tools-2.8.0_1 libsphinxad.so.0 sphinxbase-0.8_1 libsphinxbase.so.1 sphinxbase-0.8_1 libpocketsphinx.so.1 libpocketsphinx-0.8_3 @@ -1776,7 +1793,7 @@ libspiro.so.1 libspiro-20190731_1 libopenjp2.so.7 libopenjpeg2-2.1.0_1 libcln.so.6 cln-1.3.3_1 libchm.so.0 libchmlib-0.40_1 -libOkular5Core.so.9 libokular-18.04.1_1 +libOkular5Core.so.10 libokular-22.04.1_1 libmnl.so.0 libmnl-1.0.3_1 libnftnl.so.11 libnftnl-1.1.2_1 libfcgi.so.0 fcgi-2.4.0_2 @@ -1801,6 +1818,7 @@ libmateweather.so.1 libmateweather-1.8.0_1 libmate-panel-applet-4.so.1 libmate-panel-1.8.0_1 libslab.so.0 libmate-control-center-1.8.2_1 liblz4.so.1 liblz4-1.8.2_1 +libdxcompiler.so.3.7 DirectXShaderCompiler-1.7.2207_1 libatrilview.so.3 libatril-1.8.0_1 libatrildocument.so.3 libatril-1.8.0_1 libjawt.so openjdk8-jre-8u20_2 @@ -1809,12 +1827,12 @@ libawt_xawt.so openjdk8-jre-8u20_1 libjava.so openjdk8-jre-8u20_1 libjli.so openjdk8-jre-8u20_1 libjvm.so openjdk8-jre-8u20_1 -libjawt.so openjdk11-11.0.5+10_1 -libawt.so openjdk11-11.0.5+10_1 -libawt_xawt.so openjdk11-11.0.5+10_1 -libjava.so openjdk11-11.0.5+10_1 -libjli.so openjdk11-11.0.5+10_1 -libjvm.so openjdk11-11.0.5+10_1 +libjawt.so openjdk11-jre-11.0.5+10_1 +libawt.so openjdk11-jre-11.0.5+10_1 +libawt_xawt.so openjdk11-jre-11.0.5+10_1 +libjava.so openjdk11-jre-11.0.5+10_1 +libjli.so openjdk11-jre-11.0.5+10_1 +libjvm.so openjdk11-jre-11.0.5+10_1 libjawt.so openjdk7-bootstrap-7u221b02_1 libawt.so openjdk7-bootstrap-7u221b02_1 libawt_xawt.so openjdk7-bootstrap-7u221b02_1 @@ -1981,7 +1999,7 @@ libQt5WebKitWidgets.so.5 qt5-webkit-5.6.0_1 libx265.so.199 x265-3.5_1 libQt5Xdg.so.3 libqtxdg-3.1.0_1 libQt5XdgIconLoader.so.3 libqtxdg-3.1.0_1 -libqwt.so.6 qwt-6.1.3_1 +libqwt.so.6.2 qwt-6.2.0_1 liblxqt-qt5.so.0 liblxqt-0.8.0_1 liblxqt-globalkeys-qt5.so.0 lxqt-globalkeys-0.8.0_1 liblxqt-globalkeys-ui-qt5.so.0 lxqt-globalkeys-0.8.0_1 @@ -1989,7 +2007,7 @@ libsysstat-qt5.so.0 libsysstat-0.3.2_1 libpolkit-qt5-agent-1.so.1 polkit-qt5-0.112.0_1 libpolkit-qt5-gui-1.so.1 polkit-qt5-0.112.0_1 libpolkit-qt5-core-1.so.1 polkit-qt5-0.112.0_1 -libfm-qt.so.10 libfm-qt-1.0.0_1 +libfm-qt.so.11 libfm-qt-1.1.0_1 libqtermwidget5.so.1 qtermwidget-1.0.0_1 libQt6Core.so.6 qt6-core-6.0.0_1 libQt6OpenGL.so.6 qt6-gui-6.0.0_1 @@ -2028,6 +2046,7 @@ libQt6Quick.so.6 qt6-declarative-6.0.0_1 libQt6QmlModels.so.6 qt6-declarative-6.0.0_1 libQt6QuickLayouts.so.6 qt6-declarative-6.1.0_1 libQt6QuickParticles.so.6 qt6-declarative-6.0.0_1 +libQt6QmlCompiler.so.6 qt6-declarative-6.4.0_1 libQt6ShaderTools.so.6 qt6-shadertools-6.0.0_1 libQt6Quick3D.so.6 qt6-quick3d-6.0.0_1 libQt6Quick3DRuntimeRender.so.6 qt6-quick3d-6.0.0_1 @@ -2035,6 +2054,9 @@ libQt6Quick3DUtils.so.6 qt6-quick3d-6.0.0_1 libQt6Quick3DAssetImport.so.6 qt6-quick3d-6.0.0_1 libQt6Quick3DIblBaker.so.6 qt6-quick3d-6.0.3_1 libQt6Quick3DParticles.so.6 qt6-quick3d-6.1.0_1 +libQt6Quick3DGlslParser.so.6 qt6-quick3d-6.3.0_1 +libQt6Quick3DAssetUtils.so.6 qt6-quick3d-6.1.0_1 +libQt6QuickTimeline.so.6 qt6-quicktimeline-6.3.0_1 libQt6QuickControls2Impl.so.6 qt6-declarative-6.0.0_1 libQt6QuickControls2.so.6 qt6-declarative-6.0.0_1 libQt6QuickTemplates2.so.6 qt6-declarative-6.0.0_1 @@ -2061,14 +2083,23 @@ libQt6Designer.so.6 qt6-tools-6.1.0_1 libQt6DesignerComponents.so.6 qt6-tools-6.1.0_1 libQt6Help.so.6 qt6-tools-6.1.0_1 libQt6UiTools.so.6 qt6-tools-6.1.0_1 +libQt6Nfc.so.6 qt6-connectivity-6.3.1_1 +libQt6Bluetooth.so.6 qt6-connectivity-6.3.1_1 +libQt6RemoteObjects.so.6 qt6-remoteobjects-6.3.1_1 +libQt6RemoteObjectsQml.so.6 qt6-remoteobjects-6.3.1_1 +libQt6Sensors.so.6 qt6-sensors-6.3.1_1 +libQt6SensorsQuick.so.6 qt6-sensors-6.3.1_1 libQt6HunspellInputMethod.so.6 qt6-virtualkeyboard-6.1.0_1 libQt6VirtualKeyboard.so.6 qt6-virtualkeyboard-6.1.0_1 libQt6SerialPort.so.6 qt6-serialport-6.2.0alpha_1 libQt6WebSockets.so.6 qt6-websockets-6.2.0alpha_1 libQt6WebChannel.so.6 qt6-webchannel-6.2.0alpha_1 libQt6Positioning.so.6 qt6-location-6.2.0alpha_1 +libQt6MultimediaWidgets.so.6 qt6-multimedia-6.3.1_1 +libQt6MultimediaQuick.so.6 qt6-multimedia-6.3.1_1 +libQt6Multimedia.so.6 qt6-multimedia-6.3.1_1 libnpth.so.0 npth-1.1_1 -libnpupnp.so.4 libnpupnp-4.0.2_1 +libnpupnp.so.9 libnpupnp-5.0.0_1 libglfw.so.3 glfw-3.0.4_1 libusbmuxd-2.0.so.6 libusbmuxd-2.0.2_1 libimobiledevice-1.0.so.6 libimobiledevice-1.3.0_2 @@ -2078,80 +2109,63 @@ libldns.so.3 libldns-1.7.1_4 libopenjpeg.so.5 libopenjpeg-1.5.2_1 liboping.so.0 liboping-1.8.0_1 libloudmouth-1.so.0 loudmouth-1.5.3_12 -libtorrent-rasterbar.so.10 libtorrent-rasterbar-1.2.12_2 +libtorrent-rasterbar.so.10 libtorrent-rasterbar-1.2.18_1 libcapstone.so.4 capstone-4.0_1 libhavege.so.2 libhaveged-1.9.11_1 libnih.so.1 libnih-1.0.3_1 libnih-dbus.so.1 libnih-1.0.3_1 -libopencv_ml.so.3.4 libopencv-3.4.1_1 -libopencv_objdetect.so.3.4 libopencv-3.4.1_1 -libopencv_dnn.so.3.4 libopencv-3.4.1_1 -libopencv_shape.so.3.4 libopencv-3.4.1_1 -libopencv_stitching.so.3.4 libopencv-3.4.1_1 -libopencv_photo.so.3.4 libopencv-3.4.1_1 -libopencv_video.so.3.4 libopencv-3.4.1_1 -libopencv_calib3d.so.3.4 libopencv-3.4.1_1 -libopencv_features2d.so.3.4 libopencv-3.4.1_1 -libopencv_flann.so.3.4 libopencv-3.4.1_1 -libopencv_highgui.so.3.4 libopencv-3.4.1_1 -libopencv_videoio.so.3.4 libopencv-3.4.1_1 -libopencv_imgcodecs.so.3.4 libopencv-3.4.1_1 -libopencv_imgproc.so.3.4 libopencv-3.4.1_1 -libopencv_core.so.3.4 libopencv-3.4.1_1 -libopencv_superres.so.3.4 libopencv-3.4.1_1 -libopencv_videostab.so.3.4 libopencv-3.4.1_1 -libopencv_quality.so.4.5 libopencv4-4.5.3_1 -libopencv_reg.so.4.5 libopencv4-4.5.3_1 -libopencv_surface_matching.so.4.5 libopencv4-4.5.3_1 -libopencv_xphoto.so.4.5 libopencv4-4.5.3_1 -libopencv_freetype.so.4.5 libopencv4-4.5.3_1 -libopencv_fuzzy.so.4.5 libopencv4-4.5.3_1 -libopencv_hfs.so.4.5 libopencv4-4.5.3_1 -libopencv_img_hash.so.4.5 libopencv4-4.5.3_1 -libopencv_line_descriptor.so.4.5 libopencv4-4.5.3_1 -libopencv_saliency.so.4.5 libopencv4-4.5.3_1 -libopencv_structured_light.so.4.5 libopencv4-4.5.3_1 -libopencv_aruco.so.4.5 libopencv4-4.5.3_1 -libopencv_bgsegm.so.4.5 libopencv4-4.5.3_1 -libopencv_bioinspired.so.4.5 libopencv4-4.5.3_1 -libopencv_ccalib.so.4.5 libopencv4-4.5.3_1 -libopencv_face.so.4.5 libopencv4-4.5.3_1 -libopencv_tracking.so.4.5 libopencv4-4.5.3_1 -libopencv_xfeatures2d.so.4.5 libopencv4-4.5.3_1 -libopencv_optflow.so.4.5 libopencv4-4.5.3_1 -libopencv_ximgproc.so.4.5 libopencv4-4.5.3_1 -libopencv_plot.so.4.5 libopencv4-4.5.3_1 -libopencv_text.so.4.5 libopencv4-4.5.3_1 -libopencv_ml.so.4.5 libopencv4-4.5.3_1 -libopencv_objdetect.so.4.5 libopencv4-4.5.3_1 -libopencv_dnn.so.4.5 libopencv4-4.5.3_1 -libopencv_shape.so.4.5 libopencv4-4.5.3_1 -libopencv_stitching.so.4.5 libopencv4-4.5.3_1 -libopencv_photo.so.4.5 libopencv4-4.5.3_1 -libopencv_video.so.4.5 libopencv4-4.5.3_1 -libopencv_calib3d.so.4.5 libopencv4-4.5.3_1 -libopencv_features2d.so.4.5 libopencv4-4.5.3_1 -libopencv_flann.so.4.5 libopencv4-4.5.3_1 -libopencv_highgui.so.4.5 libopencv4-4.5.3_1 -libopencv_videoio.so.4.5 libopencv4-4.5.3_1 -libopencv_imgcodecs.so.4.5 libopencv4-4.5.3_1 -libopencv_imgproc.so.4.5 libopencv4-4.5.3_1 -libopencv_core.so.4.5 libopencv4-4.5.3_1 -libopencv_superres.so.4.5 libopencv4-4.5.3_1 -libopencv_videostab.so.4.5 libopencv4-4.5.3_1 -libopencv_gapi.so.4.5 libopencv4-4.5.3_1 -libopencv_xobjdetect.so.4.5 libopencv4-4.5.3_1 -libopencv_datasets.so.4.5 libopencv4-4.5.3_1 -libopencv_dnn_objdetect.so.4.5 libopencv4-4.5.3_1 -libopencv_dnn_superres.so.4.5 libopencv4-4.5.3_1 -libopencv_dpm.so.4.5 libopencv4-4.5.3_1 -libopencv_phase_unwrapping.so.4.5 libopencv4-4.5.3_1 -libopencv_stereo.so.4.5 libopencv4-4.5.3_1 -libopencv_rapid.so.4.5 libopencv4-4.5.3_1 -libopencv_intensity_transform.so.4.5 libopencv4-4.5.3_1 -libopencv_alphamat.so.4.5 libopencv4-4.5.3_1 -libopencv_barcode.so.4.5 libopencv4-4.5.3_1 -libopencv_mcc.so.4.5 libopencv4-4.5.3_1 +libopencv_quality.so.406 libopencv-4.6.0_1 +libopencv_reg.so.406 libopencv-4.6.0_1 +libopencv_surface_matching.so.406 libopencv-4.6.0_1 +libopencv_xphoto.so.406 libopencv-4.6.0_1 +libopencv_freetype.so.406 libopencv-4.6.0_1 +libopencv_fuzzy.so.406 libopencv-4.6.0_1 +libopencv_hfs.so.406 libopencv-4.6.0_1 +libopencv_img_hash.so.406 libopencv-4.6.0_1 +libopencv_line_descriptor.so.406 libopencv-4.6.0_1 +libopencv_saliency.so.406 libopencv-4.6.0_1 +libopencv_structured_light.so.406 libopencv-4.6.0_1 +libopencv_aruco.so.406 libopencv-4.6.0_1 +libopencv_bgsegm.so.406 libopencv-4.6.0_1 +libopencv_bioinspired.so.406 libopencv-4.6.0_1 +libopencv_ccalib.so.406 libopencv-4.6.0_1 +libopencv_face.so.406 libopencv-4.6.0_1 +libopencv_tracking.so.406 libopencv-4.6.0_1 +libopencv_xfeatures2d.so.406 libopencv-4.6.0_1 +libopencv_optflow.so.406 libopencv-4.6.0_1 +libopencv_ximgproc.so.406 libopencv-4.6.0_1 +libopencv_plot.so.406 libopencv-4.6.0_1 +libopencv_text.so.406 libopencv-4.6.0_1 +libopencv_ml.so.406 libopencv-4.6.0_1 +libopencv_objdetect.so.406 libopencv-4.6.0_1 +libopencv_dnn.so.406 libopencv-4.6.0_1 +libopencv_shape.so.406 libopencv-4.6.0_1 +libopencv_stitching.so.406 libopencv-4.6.0_1 +libopencv_photo.so.406 libopencv-4.6.0_1 +libopencv_video.so.406 libopencv-4.6.0_1 +libopencv_calib3d.so.406 libopencv-4.6.0_1 +libopencv_features2d.so.406 libopencv-4.6.0_1 +libopencv_flann.so.406 libopencv-4.6.0_1 +libopencv_highgui.so.406 libopencv-4.6.0_1 +libopencv_videoio.so.406 libopencv-4.6.0_1 +libopencv_imgcodecs.so.406 libopencv-4.6.0_1 +libopencv_imgproc.so.406 libopencv-4.6.0_1 +libopencv_core.so.406 libopencv-4.6.0_1 +libopencv_superres.so.406 libopencv-4.6.0_1 +libopencv_videostab.so.406 libopencv-4.6.0_1 +libopencv_gapi.so.406 libopencv-4.6.0_1 +libopencv_xobjdetect.so.406 libopencv-4.6.0_1 +libopencv_datasets.so.406 libopencv-4.6.0_1 +libopencv_dnn_objdetect.so.406 libopencv-4.6.0_1 +libopencv_dnn_superres.so.406 libopencv-4.6.0_1 +libopencv_dpm.so.406 libopencv-4.6.0_1 +libopencv_phase_unwrapping.so.406 libopencv-4.6.0_1 +libopencv_stereo.so.406 libopencv-4.6.0_1 +libopencv_rapid.so.406 libopencv-4.6.0_1 +libopencv_intensity_transform.so.406 libopencv-4.6.0_1 +libopencv_alphamat.so.406 libopencv-4.6.0_1 +libopencv_barcode.so.406 libopencv-4.6.0_1 +libopencv_mcc.so.406 libopencv-4.6.0_1 libuniconf.so.4.6 wvstreams-4.6.1_20 libwvbase.so.4.6 wvstreams-4.6.1_20 libwvutils.so.4.6 wvstreams-4.6.1_20 @@ -2179,7 +2193,7 @@ libdruntime-ldc-debug-shared.so.98 ldc-runtime-1.28.0_1 libdruntime-ldc-shared.so.98 ldc-runtime-1.28.0_1 libphobos2-ldc-shared.so.98 ldc-runtime-1.28.0_1 libphobos2-ldc-debug-shared.so.98 ldc-runtime-1.28.0_1 -libldc-jit.so.98 ldc-runtime-1.28.0_1 +libldc-jit.so.99 ldc-runtime-1.29.0_1 libmarblewidget-qt5.so.28 marble5-17.12.2_1 libastro.so.2 marble5-17.12.2_1 libparrot.so.6.9.0 parrot-6.9.0_1 @@ -2187,7 +2201,6 @@ libasr.so.0 libasr-1.0.0_1 libssr-glinject.so ssr-0.3.1_1 libgdict-1.0.so.10 gnome-dictionary-3.18.1_1 libasignify.so.1 asignify-1.0_1 -libvte2_90.so.9 vte290-0.36.3_1 libd0_blind_id.so.0 xonotic-0.8.0_1 libuecc.so.0 libuecc-5_1 libKF5WindowSystem.so.5 kwindowsystem-5.6.0_1 @@ -2359,11 +2372,10 @@ libgnunettransport.so.2 gnunet-0.12.2_1 libgnunettransportapplication.so.0 gnunet-0.12.2_1 libgnunettransportcore.so.0 gnunet-0.12.2_1 libgnunettransportcommunicator.so.0 gnunet-0.12.2_1 -libskarnet.so.2.11 skalibs-2.11.0.0_1 +libskarnet.so.2.12 skalibs-2.12.0.0_1 libKF5BalooWidgets.so.5 baloo-widgets5-17.04.3_1 libtidy.so.58 libtidy5-5.8.0_1 libSDL2_gfx-1.0.so.0 SDL2_gfx-1.0.1_1 -libQupZilla.so.2 qupzilla-2.0.0_1 libinjeqt.so.1 injeqt-1.1.0_1 libgadu.so.3 libgadu-1.12.1_1 libhiredis.so.1.0.0 hiredis-1.0.0_1 @@ -2394,20 +2406,6 @@ libSILLY.so.1 silly-0.1.0_1 libkeybinder-3.0.so.0 libkeybinder3-0.3.0_1 libbrlapi.so.0.8 brltty-6.1_1 liblouis.so.20 liblouis-3.11.0_1 -libCEGUIBase-0.7.9.so cegui07-0.7.9_1 -libCEGUIFalagardWRBase-0.7.9.so cegui07-0.7.9_1 -libCEGUIDevILImageCodec-0.7.9.so cegui07-0.7.9_1 -libCEGUIExpatParser-0.7.9.so cegui07-0.7.9_1 -libCEGUIOpenGLRenderer-0.7.9.so cegui07-0.7.9_1 -libCEGUIIrrlichtRenderer-0.7.9.so cegui07-0.7.9_1 -libCEGUILibxmlParser-0.7.9.so cegui07-0.7.9_1 -libCEGUILuaScriptModule-0.7.9.so cegui07-0.7.9_1 -libCEGUISILLYImageCodec-0.7.9.so cegui07-0.7.9_1 -libCEGUISTBImageCodec-0.7.9.so cegui07-0.7.9_1 -libCEGUIFreeImageImageCodec-0.7.9.so cegui07-0.7.9_3 -libCEGUITGAImageCodec-0.7.9.so cegui07-0.7.9_1 -libCEGUITinyXMLParser-0.7.9.so cegui07-0.7.9_1 -libCEGUItoluapp-0.7.9.so cegui07-0.7.9_1 libCEGUIBase-0.so.2 cegui-0.8.7_1 libCEGUIOpenGLRenderer-0.so.2 cegui-0.8.7_1 libCEGUIOgreRenderer-0.so.2 cegui-0.8.7_1 @@ -2432,7 +2430,7 @@ libtermkey.so.1 libtermkey-0.17_1 libicu4lua.so.0 icu4lua-0.2B_1 libKF5I18n.so.5 ki18n-5.26.0_1 libKF5I18nLocaleData.so.5 ki18n-5.88.0_1 -libglog.so.0 glog-0.3.4_1 +libglog.so.1 glog-0.6.0_1 libzita-convolver.so.4 zita-convolver-4.0.3_1 libzita-alsa-pcmi.so.0 zita-alsa-pcmi-0.2.0_1 libpugixml.so.1 pugixml-1.6_1 @@ -2500,7 +2498,7 @@ libi3ipc-glib-1.0.so.0 i3ipc-glib-0.6.0_1 libcsound64.so.6.0 csound-6.05.0_1 libcsnd6.so.6.0 csound-6.05.0_1 libfko.so.3 libfko-2.6.9_1 -libvterm.so.0 libvterm-0.0.20151005_1 +libvterm.so.0 libvterm-0.3_1 libboinc_opencl.so.7 boinc-7.16.16_2 libboinc_api.so.7 boinc-7.16.16_2 libboinc_graphics2.so.7 boinc-7.16.16_2 @@ -2511,7 +2509,7 @@ libu2f-host.so.0 libu2f-host-1.1.10_5 libu2f-server.so.0 libu2f-server-1.1.0_9 libsqlcipher.so.0 sqlcipher-4.3.0_3 libgta.so.1 libgta-1.2.0_1 -libgdal.so.26 libgdal-3.0.4_9 +libgdal.so.31 libgdal-3.5.3_1 libosgViewer.so.131 osg-3.4.1_1 libosgShadow.so.131 osg-3.4.1_1 libosgParticle.so.131 osg-3.4.1_1 @@ -2537,7 +2535,6 @@ libKF5Solid.so.5 libksolid-5.15.0_2 libfreeimage.so.3 freeimage-3.17.0_1 libfreeimageplus.so.3 freeimage-plus-3.17.0_1 libtoluapp.so toluapp-1.0.93_1 -libmpd.so.1 libmpd-11.8.17_1 libfa.so.1 augeas-1.4.0_1 libaugeas.so.0 augeas-1.4.0_1 libplot.so.2 plotutils-2.6_1 @@ -2550,7 +2547,6 @@ libfann.so.2 fann-2.2.0_1 libdoublefann.so.2 fann-2.2.0_1 libxerces-c-3.2.so libxerces-c-3.2.0_1 libunibreak.so.3 libunibreak-4.0_1 -libgconfmm-2.6.so.1 gconfmm-2.28.3_1 libiperf.so.0 iperf3-3.1.1_1 libKF5UnitConversion.so.5 kunitconversion-5.26.0_1 libfdk-aac.so.2 fdk-aac-2.0.0_1 @@ -2581,13 +2577,12 @@ libglob.so.0 libglob-1.0_1 libepub.so.0 ebook-tools-0.2.2_1 libosmgpsmap-1.0.so.1 libosmgpsmap-1.1.0_1 libtspi.so.1 trousers-0.3.14_11 -libpsiconv.so.6 psiconv-0.9.9_1 libshout.so.3 libshout-2.4.1_1 libfirm.so.1.22 libfirm-1.22.0_1 libaudiofile.so.1 audiofile-0.3.6_1 libbs2b.so.0 libbs2b-3.1.0_1 libmunge.so.2 munge-libs-0.5.14_3 -libmgba.so.0.9 libmgba-0.9.2_1 +libmgba.so.0.10 libmgba-0.10.0_1 libglabels-3.0.so.8 libglabels30-3.2.1_1 libglbarcode-3.0.so.0 libglabels30-3.2.1_1 libjim.so.0.81 jimtcl-0.81_1 @@ -2619,7 +2614,7 @@ libhwloc.so.15 libhwloc-2.0.4_1 libnetfilter_cttimeout.so.1 libnetfilter_cttimeout-1.0.0_1 libnetfilter_cthelper.so.0 libnetfilter_cthelper-1.0.0_1 libnetfilter_queue.so.1 libnetfilter_queue-1.0.2_1 -libfilezilla.so.24 libfilezilla-0.36.0_1 +libfilezilla.so.32 libfilezilla-0.39.2_1 libtommath.so.1 libtommath-1.0_1 libKF5ItemViews.so.5 kitemviews-5.26.0_1 libunicorn.so.1 unicorn-1.0_1 @@ -2639,11 +2634,11 @@ libCbc.so.3 CoinMP-1.8.3_1 libOsiCommonTests.so.1 CoinMP-1.8.3_1 libCbcSolver.so.3 CoinMP-1.8.3_1 libmwaw-0.3.so.3 libmwaw-0.3.7_1 -libixion-0.16.so.0 libixion-0.16.1_1 -liborcus-parser-0.16.so.0 liborcus-0.16.1_1 -liborcus-mso-0.16.so.0 liborcus-0.16.1_1 -liborcus-0.16.so.0 liborcus-0.16.1_1 -liborcus-spreadsheet-model-0.16.so.0 liborcus-0.16.1_1 +libixion-0.17.so.0 libixion-0.17.0_1 +liborcus-parser-0.17.so.0 liborcus-0.17.2_1 +liborcus-mso-0.17.so.0 liborcus-0.17.2_1 +liborcus-0.17.so.0 liborcus-0.17.2_1 +liborcus-spreadsheet-model-0.17.so.0 liborcus-0.17.2_1 libnumbertext-1.0.so.0 libnumbertext-1.0.4_1 libGeneratedSaxParser.so opencollada-0.0.20160223_1 libMathMLSolver.so opencollada-0.0.20160223_1 @@ -2675,27 +2670,27 @@ libcmark.so.0 cmark-0.24.1_1 libspotify.so.12 libspotify-12.1.51_1 libvidstab.so.1.1 libvidstab-1.1.0_1 libxdo.so.3 xdotool-3.20150503.1_1 -libabigail.so.0 libabigail-1.0.rc3_1 +libabigail.so.1 libabigail-2.1_1 libgnome-games-support-1.so.3 libgnome-games-support-1.4.0_1 -libKDevCMakeCommon.so.35 kdevelop-21.12.2_1 -libKDevClangPrivate.so.35 kdevelop-21.12.2_1 -libKDevCompileAnalyzerCommon.so.35 kdevelop-21.12.2_1 -libKDevPlatformDebugger.so.57 kdevelop-21.12.2_1 -libKDevPlatformDocumentation.so.57 kdevelop-21.12.2_1 -libKDevPlatformInterfaces.so.57 kdevelop-21.12.2_1 -libKDevPlatformLanguage.so.57 kdevelop-21.12.2_1 -libKDevPlatformOutputView.so.57 kdevelop-21.12.2_1 -libKDevPlatformProject.so.57 kdevelop-21.12.2_1 -libKDevPlatformSerialization.so.57 kdevelop-21.12.2_1 -libKDevPlatformShell.so.57 kdevelop-21.12.2_1 -libKDevPlatformSublime.so.57 kdevelop-21.12.2_1 -libKDevPlatformTests.so.57 kdevelop-21.12.2_1 -libKDevPlatformUtil.so.57 kdevelop-21.12.2_1 -libKDevPlatformVcs.so.57 kdevelop-21.12.2_1 +libKDevCMakeCommon.so.36 kdevelop-22.04.1_1 +libKDevClangPrivate.so.36 kdevelop-22.04.1_1 +libKDevCompileAnalyzerCommon.so.36 kdevelop-22.04.1_1 +libKDevPlatformDebugger.so.58 kdevelop-22.04.1_1 +libKDevPlatformDocumentation.so.58 kdevelop-22.04.1_1 +libKDevPlatformInterfaces.so.58 kdevelop-22.04.1_1 +libKDevPlatformLanguage.so.58 kdevelop-22.04.1_1 +libKDevPlatformOutputView.so.58 kdevelop-22.04.1_1 +libKDevPlatformProject.so.58 kdevelop-22.04.1_1 +libKDevPlatformSerialization.so.58 kdevelop-22.04.1_1 +libKDevPlatformShell.so.58 kdevelop-22.04.1_1 +libKDevPlatformSublime.so.58 kdevelop-22.04.1_1 +libKDevPlatformTests.so.58 kdevelop-22.04.1_1 +libKDevPlatformUtil.so.58 kdevelop-22.04.1_1 +libKDevPlatformVcs.so.58 kdevelop-22.04.1_1 libts.so.0 tslib-1.6_1 libobs.so.0 obs-0.14.1_2 -libobsglad.so.0 obs-0.14.1_2 -libobs-opengl.so.0 obs-0.14.1_2 +libobsglad.so.1 obs-28.0.1_1 +libobs-opengl.so.1 obs-28.0.1_1 libobs-frontend-api.so.0 obs-20.1.3_1 libzimg.so.2 zimg-2.0.4_1 libvapoursynth.so vapoursynth-R32_2 @@ -2807,8 +2802,8 @@ libMonoPosixHelper.so mono-4.0.1.44_2 libMonoSupportW.so mono-4.0.1.44_2 libmono-btls-shared.so mono-5.2.0.215_1 libxcb-xrm.so.0 xcb-util-xrm-1.0_1 -libinchi.so.0 openbabel-2.3.2_1 -libopenbabel.so.5 openbabel-2.4.1_1 +libinchi.so.0 openbabel-3.1.1_1 +libopenbabel.so.7 openbabel-3.1.1_1 libcourier-unicode.so.7 courier-unicode-2.2.2_1 libzstd.so.1 libzstd-1.0.0_1 libudis86.so.0 udis86-1.7.2_4 @@ -2823,6 +2818,7 @@ libKF5Archive.so.5 karchive-5.26.0_1 libKF5Codecs.so.5 kcodecs-5.26.0_1 libKF5ConfigCore.so.5 kconfig-5.26.0_1 libKF5ConfigGui.so.5 kconfig-5.26.0_1 +libKF5ConfigQml.so.5 kconfig-5.95.0_1 libKF5Completion.so.5 kcompletion-5.26.0_1 libKF5Crash.so.5 kcrash-5.26.0_1 libKF5ConfigWidgets.so.5 kconfigwidgets-5.26.0_1 @@ -2849,10 +2845,12 @@ libKF5Declarative.so.5 kdeclarative-5.26.0_1 libKF5QuickAddons.so.5 kdeclarative-5.26.0_1 libKF5CalendarEvents.so.5 kdeclarative-5.26.0_1 libKF5KCMUtils.so.5 kcmutils-5.26.0_1 +libKF5KCMUtilsCore.so.5 kcmutils-5.95.0_1 libKF5Style.so.5 frameworkintegration-5.26.0_1 libkdeinit5_klauncher.so kinit-5.26.0_1 libKF5NewStuff.so.5 knewstuff-5.26.0_1 libKF5NewStuffCore.so.5 knewstuff-5.36.0_1 +libKF5NewStuffWidgets.so.5 knewstuff-5.95.0_1 libKF5NotifyConfig.so.5 knotifyconfig-5.26.0_1 libKF5Parts.so.5 kparts-5.26.0_1 libKF5Activities.so.5 kactivities5-5.26.0_1 @@ -2897,7 +2895,7 @@ libKDb3.so.4 kdb-3.1.0_1 libKPropertyWidgets3.so.4 kproperty-3.1.0_1 libKPropertyCore3.so.4 kproperty-3.1.0_1 libKReport3.so.4 kreport-3.1.0_1 -libbotan-2.so.16 botan-2.16.0_3 +libbotan-2.so.19 botan-2.19.1_1 libswipl.so.8 swi-prolog-8.2.4_2 libpcre2-16.so.0 libpcre2-10.22_1 libpcre2-32.so.0 libpcre2-10.22_1 @@ -2911,37 +2909,36 @@ libite.so.5 libite-2.0.1_1 liblog4cplus-1.2.so.5 log4cplus-1.2.0_1 liblog4cplus-2.0.so.3 log4cplus-2.0.0_1 liblog4cplusU-2.0.so.3 log4cplus-2.0.3_1 -libpng12.so.0 libpng12-1.2.56_2 -libpng.so.3 libpng12-1.2.56_2 -libcapnpc-0.9.1.so capnproto-0.9.1_1 -libcapnp-json-0.9.1.so capnproto-0.9.1_1 -libcapnp-rpc-0.9.1.so capnproto-0.9.1_1 -libcapnp-websocket-0.9.1.so capnproto-0.9.1_1 -libcapnp-0.9.1.so capnproto-0.9.1_1 -libkj-http-0.9.1.so capnproto-0.9.1_1 -libkj-async-0.9.1.so capnproto-0.9.1_1 -libkj-test-0.9.1.so capnproto-0.9.1_1 -libkj-0.9.1.so capnproto-0.9.1_1 -libkea-asiodns.so.12 libkea-1.9.5_2 -libkea-asiolink.so.23 libkea-1.9.5_2 -libkea-cc.so.22 libkea-1.9.5_2 -libkea-cfgclient.so.22 libkea-1.9.5_2 -libkea-cryptolink.so.16 libkea-1.9.5_2 -libkea-database.so.21 libkea-1.9.5_2 -libkea-dhcp++.so.33 libkea-1.9.5_2 -libkea-dhcp_ddns.so.15 libkea-1.9.5_2 -libkea-dhcpsrv.so.43 libkea-1.9.5_2 -libkea-dns++.so.16 libkea-1.9.5_2 -libkea-eval.so.25 libkea-1.9.5_2 -libkea-exceptions.so.0 libkea-1.9.5_2 -libkea-hooks.so.31 libkea-1.9.5_2 -libkea-http.so.23 libkea-1.9.5_2 -libkea-log.so.18 libkea-1.9.5_2 -libkea-pgsql.so.18 libkea-1.9.5_2 -libkea-process.so.26 libkea-1.9.5_2 -libkea-stats.so.18 libkea-1.9.5_2 -libkea-util-io.so.0 libkea-1.9.5_2 -libkea-util.so.32 libkea-1.9.5_2 +libcapnpc-0.10.2.so capnproto-0.10.2_1 +libcapnp-json-0.10.2.so capnproto-0.10.2_1 +libcapnp-rpc-0.10.2.so capnproto-0.10.2_1 +libcapnp-websocket-0.10.2.so capnproto-0.10.2_1 +libcapnp-0.10.2.so capnproto-0.10.2_1 +libkj-http-0.10.2.so capnproto-0.10.2_1 +libkj-async-0.10.2.so capnproto-0.10.2_1 +libkj-test-0.10.2.so capnproto-0.10.2_1 +libkj-0.10.2.so capnproto-0.10.2_1 +libkea-asiodns.so.24 libkea-2.2.0_1 +libkea-asiolink.so.40 libkea-2.2.0_1 +libkea-cc.so.39 libkea-2.2.0_1 +libkea-cfgclient.so.36 libkea-2.2.0_1 +libkea-cryptolink.so.28 libkea-2.2.0_1 +libkea-d2srv.so.16 libkea-2.2.0_1 +libkea-database.so.35 libkea-2.2.0_1 +libkea-dhcp++.so.54 libkea-2.2.0_1 +libkea-dhcp_ddns.so.29 libkea-2.2.0_1 +libkea-dhcpsrv.so.69 libkea-2.2.0_1 +libkea-dns++.so.30 libkea-2.2.0_1 +libkea-eval.so.39 libkea-2.2.0_1 +libkea-exceptions.so.13 libkea-2.2.0_1 +libkea-hooks.so.57 libkea-2.2.0_1 +libkea-http.so.42 libkea-2.2.0_1 +libkea-log.so.35 libkea-2.2.0_1 +libkea-pgsql.so.36 libkea-2.2.0_1 +libkea-process.so.40 libkea-2.2.0_1 +libkea-stats.so.18 libkea-2.2.0_1 +libkea-util-io.so.0 libkea-2.2.0_1 +libkea-util.so.52 libkea-2.2.0_1 libytnef.so.0 ytnef-1.8_1 libpisock.so.9 pilot-link-0.12.5_1 libpisync.so.1 pilot-link-0.12.5_1 @@ -2979,12 +2976,12 @@ libdecoration.so.0 compiz-core-0.8.14_1 libcompizconfig.so.0 libcompizconfig-0.8.14_1 libemeraldengine.so.0 emerald-0.8.14_1 libhangul.so.1 libhangul-0.1.0_1 -libmutter-9.so.0 mutter-41.0_1 -libmutter-clutter-9.so.0 mutter-41.0_1 -libmutter-cogl-9.so.0 mutter-41.0_1 -libmutter-cogl-pango-9.so.0 mutter-41.0_1 +libmutter-10.so.0 mutter-42.0_1 +libmutter-clutter-10.so.0 mutter-42.0_1 +libmutter-cogl-10.so.0 mutter-42.0_1 +libmutter-cogl-pango-10.so.0 mutter-42.0_1 libgeoclue-2.so.0 geoclue2-2.4.4_1 -libgepub.so.0 libgepub-0.4_1 +libgepub-0.6.so.0 libgepub-0.6.0_4 libslopy.so.7.6 slop-7.6_1 libbcunit.so.1 bcunit-3.0_1 libzbar.so.0 libzbar-0.10_1 @@ -3087,7 +3084,7 @@ libbrotlienc.so.1 brotli-1.0.2_1 libfilteraudio.so filter_audio-0.0.1_1 libgstreamermm-1.0.so.1 gstreamermm-1.8.0_1 libmovit.so.8 movit-1.6.0_1 -libduktape.so.206 duktape-2.6.0_1 +libduktape.so.207 duktape-2.7.0_1 libccgnu2-1.8.so.0 commoncpp2-1.8.1_1 libccext2-1.8.so.0 commoncpp2-1.8.1_1 libucommon.so.8 ucommon-7.0.0_1 @@ -3099,25 +3096,16 @@ libm17n-flt.so.0 m17n-lib-1.7.0_1 libm17n-gui.so.0 m17n-lib-1.7.0_1 libm17n-core.so.0 m17n-lib-1.7.0_1 libm17n.so.0 m17n-lib-1.7.0_1 -libprotobuf-lite.so.30 libprotobuf-lite-3.19.4_1 -libprotoc.so.30 libprotoc-3.19.4_1 -libprotobuf.so.30 libprotobuf-3.19.4_1 +libprotobuf-lite.so.32 libprotobuf-lite-21.4_1 +libprotoc.so.32 libprotoc-21.4_1 +libprotobuf.so.32 libprotobuf-21.4_1 libsombok.so.3 sombok-2.4.0_1 libdeviceclient.so.0 pragha-1.3.3_1 -libguile-srfi-srfi-1-v-3.so.3 guile1.8-1.8.8_1 -libguile-srfi-srfi-4-v-3.so.3 guile1.8-1.8.8_1 -libguile-srfi-srfi-60-v-2.so.2 guile1.8-1.8.8_1 -libguile.so.17 guile1.8-1.8.8_1 -libguilereadline-v-17.so.17 guile1.8-1.8.8_1 -libguile-srfi-srfi-13-14-v-3.so.3 guile1.8-1.8.8_1 libykclient.so.3 ykclient-2.15_1 libbooster.so.0 cppcms-1.0.5_1 libcppcms.so.1 cppcms-1.0.5_1 libcppdb.so.0 cppdb-0.3.1_1 -libtracker-control-2.0.so.0 libtracker-2.0.0_1 -libtracker-sparql-2.0.so.0 libtracker-2.0.0_1 -libtracker-miner-2.0.so.0 libtracker-2.0.1_1 -libtracker-sparql-3.0.so.0 libtracker3-3.0.0_1 +libtracker-sparql-3.0.so.0 libtracker-3.0.0_1 libdockapp.so.3 libdockapp-0.7.2_1 libkrdccore.so.5 krdc-17.04.3_1 libArcus.so.3 libArcus-3.1.0_1 @@ -3130,7 +3118,7 @@ libsysprof-ui-4.so sysprof-3.37.90_1 libvala-0.56.so.0 libvala-0.56.0_1 libvaladoc-0.56.so.0 libvaladoc-0.56.0_1 libvalaccodegen.so libvala-0.44.0_1 -libphodav-2.0.so.0 phodav-2.2_1 +libphodav-3.0.so.0 phodav-3.0_1 libgfshare.so.2 libgfshare-2.0.0_1 libtacacs.so.1 tacacs-4.0.4.28_1 libffms2.so.4 libffms2-2.23.1_1 @@ -3176,37 +3164,38 @@ libsquirrel.so.0 squirrel-libs-3.1_1 libsqstdlib.so.0 squirrel-libs-3.1_1 libexecinfo.so.1 libexecinfo-1.1_1 libkdeconnectpluginkcm.so.2 kdeconnect-20.12.2_1 -libkdeconnectinterfaces.so.21 kdeconnect-21.03.80_1 -libkdeconnectcore.so.21 kdeconnect-21.03.80_1 +libkdeconnectinterfaces.so.22 kdeconnect-22.04.1_1 +libkdeconnectcore.so.22 kdeconnect-22.04.1_1 libkpmcore.so.12 kpmcore-22.04.1_1 libpkcs11-helper.so.1 pkcs11-helper-1.25.1_6 -libr_core.so.5.0.0 radare2-5.0.0_1 -libr_config.so.5.0.0 radare2-5.0.0_1 -libr_cons.so.5.0.0 radare2-5.0.0_1 -libr_util.so.5.0.0 radare2-5.0.0_1 -libr_flag.so.5.0.0 radare2-5.0.0_1 -libr_asm.so.5.0.0 radare2-5.0.0_1 -libr_bin.so.5.0.0 radare2-5.0.0_1 -libr_anal.so.5.0.0 radare2-5.0.0_1 -libr_lang.so.5.0.0 radare2-5.0.0_1 -libr_debug.so.5.0.0 radare2-5.0.0_1 -libr_egg.so.5.0.0 radare2-5.0.0_1 -libr_bp.so.5.0.0 radare2-5.0.0_1 -libr_search.so.5.0.0 radare2-5.0.0_1 -libr_io.so.5.0.0 radare2-5.0.0_1 -libr_hash.so.5.0.0 radare2-5.0.0_1 -libr_socket.so.5.0.0 radare2-5.0.0_1 -libr_parse.so.5.0.0 radare2-5.0.0_1 -libr_syscall.so.5.0.0 radare2-5.0.0_1 -libr_crypto.so.5.0.0 radare2-5.0.0_1 -libr_fs.so.5.0.0 radare2-5.0.0_1 -libr_magic.so.5.0.0 radare2-5.0.0_1 -libr_reg.so.5.0.0 radare2-5.0.0_1 +libr_core.so.5.7.8 radare2-5.7.8_1 +libr_config.so.5.7.8 radare2-5.7.8_1 +libr_cons.so.5.7.8 radare2-5.7.8_1 +libr_util.so.5.7.8 radare2-5.7.8_1 +libr_flag.so.5.7.8 radare2-5.7.8_1 +libr_asm.so.5.7.8 radare2-5.7.8_1 +libr_bin.so.5.7.8 radare2-5.7.8_1 +libr_anal.so.5.7.8 radare2-5.7.8_1 +libr_lang.so.5.7.8 radare2-5.7.8_1 +libr_debug.so.5.7.8 radare2-5.7.8_1 +libr_egg.so.5.7.8 radare2-5.7.8_1 +libr_bp.so.5.7.8 radare2-5.7.8_1 +libr_search.so.5.7.8 radare2-5.7.8_1 +libr_io.so.5.7.8 radare2-5.7.8_1 +libr_hash.so.5.7.8 radare2-5.7.8_1 +libr_socket.so.5.7.8 radare2-5.7.8_1 +libr_parse.so.5.7.8 radare2-5.7.8_1 +libr_syscall.so.5.7.8 radare2-5.7.8_1 +libr_crypto.so.5.7.8 radare2-5.7.8_1 +libr_fs.so.5.7.8 radare2-5.7.8_1 +libr_magic.so.5.7.8 radare2-5.7.8_1 +libr_reg.so.5.7.8 radare2-5.7.8_1 +libr_main.so.5.7.8 radare2-5.7.8_1 libykpiv.so.1 libykpiv-2.1.1_2 libykcs11.so.1 libykcs11-2.1.1_2 libKF5KExiv2.so.15.0.0 libkexiv25-17.04.3_1 libqmobipocket.so.2 libqmobipocket-17.04.3_1 -libgloox.so.17 gloox-1.0.20_1 +libgloox.so.18 gloox-1.0.24_1 libgsmsd.so.8 gammu-smsd-1.39.0_1 libGammu.so.8 gammu-1.39.0_1 libz3.so z3-4.6.0_2 @@ -3226,6 +3215,7 @@ libKF5AkonadiWidgets.so.5 akonadi5-17.12.0_1 libKF5AkonadiXml.so.5 akonadi5-17.12.0_1 libKF5PimTextEdit.so.5 kpimtextedit-17.12.0_1 libKF5IdentityManagement.so.5 kidentitymanagement-17.12.0_1 +libKF5IdentityManagementWidgets.so.5 kidentitymanagement-22.04.0_1 libKChart.so.2 kdiagram-2.6.0_1 libKGantt.so.2 kdiagram-2.6.0_1 libscrypt.so.0 libscrypt-1.21_1 @@ -3236,31 +3226,36 @@ libaacs.so.0 libaacs-0.9.0_1 libttfautohint.so.1 ttfautohint-1.8.1_1 libcob.so.4 gnucobol-libs-2.2_1 libkrfbprivate.so.5.0 krfb-17.08.1_1 -libarcan_shmif.so.0.14 arcan-0.6.1_1 -libarcan_shmif_ext.so.0.14 arcan-0.6.1_1 -libarcan_shmif_server.so.0.14 arcan-0.6.1_1 -libarcan_tui.so.0.14 arcan-0.6.1_1 -libarcan_a12.so.0.1 arcan-0.6.1_1 +libarcan_shmif.so.0.15 arcan-0.6.1.1_1 +libarcan_shmif_ext.so.0.15 arcan-0.6.1.1_1 +libarcan_shmif_server.so.0.15 arcan-0.6.1.1_1 +libarcan_tui.so.0.15 arcan-0.6.1.1_1 +libarcan_a12.so.0.1 arcan-0.6.1.1_1 liblwipv6.so.2 lwipv6-1.5a_1 -libpipewire-0.2.so.1 libpipewire0.2-0.2.7_1 libpipewire-0.3.so.0 libpipewire-0.3.6_1 libvolk.so.2.5 volk-2.5.0_1 -libgnuradio-runtime.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-pmt.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-blocks.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-audio.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-fec.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-fft.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-filter.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-analog.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-digital.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-dtv.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-channels.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-trellis.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-video-sdl.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-vocoder.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-wavelet.so.3.8.0 gnuradio-3.8.0.0_1 -libgnuradio-uhd.so.3.8.0 gnuradio-3.8.0.0_1 +libgnuradio-runtime.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-pmt.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-blocks.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-audio.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-fec.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-fft.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-filter.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-analog.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-digital.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-dtv.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-channels.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-trellis.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-video-sdl.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-vocoder.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-wavelet.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-uhd.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-network.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-soapy.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-qtgui.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-zeromq.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-iio.so.3.10.3 gnuradio-3.10.3.0_1 +libgnuradio-pdu.so.3.10.3 gnuradio-3.10.3.0_1 libgnuradio-osmosdr.so.0.2.0 gnuradio-osmosdr-0.2.0_1 libflann_cpp.so.1.9 flann-1.9.1_1 libflann.so.1.9 flann-1.9.1_1 @@ -3446,11 +3441,11 @@ libfifechan.so.0.1.5 fifechan-0.1.5_1 libfifechan_sdl.so.0.1.5 fifechan-0.1.5_1 libfifechan_opengl.so.0.1.5 fifechan-0.1.5_1 libpolyclipping.so.22 clipper-6.4.2_1 -libSoapySDR.so.0.7 SoapySDR-0.7.0_1 +libSoapySDR.so.0.8 SoapySDR-0.8.1_1 libeditorconfig.so.0 editorconfig-0.12.2_1 libcfitsio.so.9 cfitsio-3.480_1 libapparmor.so.1 libapparmor-2.12.0_1 -libplacebo.so.157 libplacebo-4.157.0_1 +libplacebo.so.192 libplacebo-4.192.1_1 libw2xc.so waifu2x-converter-cpp-5.2_1 libnova-0.15.so.0 libnova-0.15.0_1 libcue.so.2 libcue-2.2.0_1 @@ -3461,8 +3456,8 @@ libticalcs2.so.12 libticalcs2-1.1.9_1 libhtmlcxx.so.3 htmlcxx-0.86_1 libcss_parser_pp.so.0 htmlcxx-0.86_1 libcss_parser.so.0 htmlcxx-0.86_1 -libaom.so.2 libaom-2.0.0_1 -libre.so.1 re-2.0.1_1 +libaom.so.3 libaom-3.4.0_1 +libre.so.9 re-2.7.0_1 libtpms.so.0 libtpms-0.9.0_1 libswtpm_libtpms.so.0 libswtpm-0.6.1_1 libspandsp.so.2 spandsp-0.0.6_1 @@ -3471,12 +3466,11 @@ libspa-audioconvert.so libspa-audioconvert-0.3.6_1 libspa-audiomixer.so libspa-audiomixer-0.3.6_1 libspa-bluez5.so libspa-bluetooth-0.3.6_1 libspa-control.so libspa-control-0.3.6_1 -libspa-ffmpeg.so libspa-ffmpeg-0.3.6_1 libspa-jack.so libspa-jack-0.3.6_1 libspa-v4l2.so libspa-v4l2-0.3.6_1 libspa-videoconvert.so libspa-videoconvert-0.3.6_1 libspa-vulkan.so libspa-vulkan-0.3.6_1 -librem.so rem-0.5.3_1 +librem.so.3 rem-2.7.0_1 libshp.so.1 shapelib-1.4.1_1 libantlr3c.so libantlr3c-3.4_1 libbzrtp.so.0 bzrtp-1.0.6_1 @@ -3489,14 +3483,16 @@ liblinphone++.so.10 linphone-4.4.0_1 libbelr.so.1 belr-0.1.3_1 libbelcard.so.1 belcard-1.0.2_1 libshaderc_shared.so.1 shaderc-2018.0_1 -libglslang.so glslang-6.2.2596_1 -libHLSL.so glslang-8.13.3743_1 -libSPIRV.so glslang-6.2.2596_1 +libglslang.so.11 glslang-11.11.0_1 +libHLSL.so glslang-11.11.0_1 +libSPIRV.so glslang-11.11.0_1 +libSPIRV-Tools-shared.so SPIRV-Tools-2022.3_1 libmaxminddb.so.0 libmaxminddb-1.3.2_1 libmysqlpp.so.3 mysql++-3.2.5_1 libKF5Syndication.so.5 syndication-5.50.0_1 liblqr-1.so.0 liblqr-0.4.2_1 libmozjs-78.so.0 mozjs78-78.1.0_1 +libmozjs-91.so.0 mozjs91-91.5.0_1 libebur128.so.1 libebur128-1.2.4_1 libgtksourceview-4.so.0 gtksourceview4-4.0.2_1 libgtksourceview-5.so.0 gtksourceview5-5.2.0_1 @@ -3525,7 +3521,6 @@ libhandy-1.so.0 libhandy1-0.90.0_1 libadwaita-1.so.0 libadwaita-1.0.0alpha2_1 libswitchboard-2.0.so.0 switchboard-2.3.2_1 libcodecore.so.0 libio.elementary.code-3.0_1 -libio.elementary.music-core.so.0 libio.elementary.music-5.0_1 libpantheon-files-core.so.6 libio.elementary.files-6.0.0_1 libpantheon-files-widgets.so.6 libio.elementary.files-6.0.0_1 libwlroots.so.9 wlroots0.14-0.14.1_1 @@ -3535,18 +3530,18 @@ libcotp.so.12 libcotp-1.2.1_1 libunarr.so.1 libunarr-1.0.1_1 libretro-gtk-1.so.0 retro-gtk-1.0.0_1 libmanette-0.2.so.0 libmanette-0.2.1_1 -libfmt.so.8 fmt-8.0.1_1 +libfmt.so.9 fmt-9.0.0_1 libelementary-calendar.so.0 libio.elementary.calendar-4.2.3_1 libolm.so.3 olm-3.0.0_1 -libtls.so.22 libtls-3.4.1_1 +libtls.so.26 libtls-3.6.1_1 libxmlb.so.2 libxmlb-0.2.1_1 libvoikko.so.1 libvoikko-4.2_1 libfstrcmp.so.0 libfstrcmp-0.7.D001_1 libUMP.so.3 libump-git-20181122_2 libdri2.so.1 libdri2-git-20140317_2 libpst.so.4 libpst-0.6.72_1 -libhamlib.so.4 hamlib-4.2_1 -libhamlib++.so.4 hamlib-4.2_1 +libhamlib.so.4 hamlib-4.4_1 +libhamlib++.so.4 hamlib-4.4_1 libnss_mdns_minimal.so.2 nss-mdns-0.14.1_1 libnss_mdns4_minimal.so.2 nss-mdns-0.14.1_1 libnss_mdns6_minimal.so.2 nss-mdns-0.14.1_1 @@ -3560,7 +3555,7 @@ libcsfml-window.so.2.5 CSFML-2.5_1 libcsfml-system.so.2.5 CSFML-2.5_1 libcsfml-network.so.2.5 CSFML-2.5_1 libtokyocabinet.so.9 tokyocabinet-1.4.48_1 -libdav1d.so.5 libdav1d4-0.8.1_1 +libdav1d.so.6 libdav1d6-1.0.0_1 libdqlite.so.0 dqlite-0.2.1_1 libwoff2common.so.1.0.2 libwoff2common1.0.2-1.0.2_1 libwoff2enc.so.1.0.2 libwoff2enc1.0.2-1.0.2_1 @@ -3569,7 +3564,7 @@ libcloudproviders.so.0 libcloudproviders-0.2.5_2 libKF5KDEGames.so.7 libkdegames-18.08.3_1 libKF5KDEGamesPrivate.so.7 libkdegames-21.04.0_1 libidn2.so.0 libidn2-2.1.1_1 -libgmime-3.0.so.0 gmime3-3.2.3_1 +libgmime-3.0.so.0 gmime-3.2.3_1 libgetdns.so.10 getdns-1.5.1_7 libgetdns_ext_event.so.10 getdns-1.5.1_7 libgetdns_ext_ev.so.10 getdns-1.5.1_7 @@ -3593,20 +3588,19 @@ libzhuyin.so.13 libzhuyin-2.6.0_3 libuhd.so.4.0.0 uhd-4.0.0.0_1 libeditline.so.1 editline-1.16.0_1 libgnuradio-rds.so.1 gnuradio-rds-3.8.0_1 -libgnuradio-nrsc5-1.0.0git.so.0.0.0 gnuradio-nrsc5-1.0.0_1 -libvkd3d-utils.so.1 vkd3d-1.1_1 -libvkd3d-shader.so.1 vkd3d-1.3_1 -libvkd3d.so.1 vkd3d-1.1_1 +libgnuradio-nrsc5.so.2.0.0git gnuradio-nrsc5-2.0.0_1 +libgamemode.so.0 libgamemode-1.6.1_1 +libgamemodeauto.so.0 libgamemode-1.6.1_1 libgaminggear.so.0 libgaminggear-0.15.1_1 libgaminggearfx.so.0 libgaminggear-0.15.1_1 libgaminggearwidget.so.0 libgaminggear-0.15.1_1 libopkg.so.1 libopkg-0.4.4_2 -libpkgconf.so.3 libpkgconf-1.8.0_1 +libpkgconf.so.4 libpkgconf-1.9.3_1 libkodiplatform.so.19.0 kodi-platform-20180302_1 libQuotient.so.0.6 libQuotient-0.6.11_1 libipset.so.13 libipset-7.9_1 libmp3splt.so.0 libmp3splt-0.9.2_1 -libliquid.so.1 liquid-dsp-1.3.1_1 +libliquid.so.1 liquid-dsp-1.4.0_1 libsnore-qt5.so.0.7 snorenotify-0.7.0_1 libsnoresettings-qt5.so.0.7 snorenotify-0.7.0_1 libTECkit.so.0 libteckit-2.5.8_1 @@ -3621,7 +3615,7 @@ libOsiCommonTests.so.1 libClp-1.16.11_1 libOsi.so.1 libClp-1.16.11_1 libOGDF.so libogdf-2018.03_1 libCOIN.so libogdf-2018.03_1 -librocksdb.so.5 rocksdb-5.17.2_1 +librocksdb.so.7 rocksdb-7.4.5_1 libfrr.so.0 libfrr-6.0_1 libkaccounts.so.2 kaccounts-integration-20.04.3_1 libfrrospfapiclient.so.0 libfrrospfapiclient-6.0_1 @@ -3631,7 +3625,6 @@ libibverbs.so.1 rdma-core-22.1_1 librdmacm.so.1 rdma-core-22.1_1 libdvdcss.so.2 libdvdcss-1.4.2_1 libvalapanel.so.0 vala-panel-0.4.87_1 -libappmenu-gtk2-parser.so.0 appmenu-gtk-module-0.7.1_1 libappmenu-gtk3-parser.so.0 appmenu-gtk3-module-0.7.1_1 libqhttpengine.so.1 qhttpengine-1.0.1_1 libqmdnsengine.so.0 qmdnsengine-0.1.0_1 @@ -3663,18 +3656,18 @@ liboblibs.so.0.1 oblibs-0.1.1.1_1 libaal-1.0.so.7 libaal-1.0.7_1 libaal-minimal.so.0 libaal-1.0.7_1 libcli.so.1.9 libcli-1.9.8.4_1 -libaddress_sorting.so.18 grpc-1.39.0_1 -libgpr.so.18 grpc-1.39.0_1 -libgrpc++.so.1.39 grpc-1.39.0_1 -libgrpc++_alts.so.1.39 grpc-1.39.0_1 -libgrpc++_error_details.so.1.39 grpc-1.39.0_1 -libgrpc++_reflection.so.1.39 grpc-1.39.0_1 -libgrpc++_unsecure.so.1.39 grpc-1.39.0_1 -libgrpc.so.18 grpc-1.39.0_1 -libgrpc_plugin_support.so.1.39 grpc-1.39.0_1 -libgrpc_unsecure.so.18 grpc-1.39.0_1 -libgrpcpp_channelz.so.1.39 grpc-1.39.0_1 -libupb.so.18 grpc-1.39.0_1 +libaddress_sorting.so.27 libgrpc-1.49.1_1 +libgpr.so.27 libgrpc-1.49.1_1 +libgrpc.so.27 libgrpc-1.49.1_1 +libgrpc_unsecure.so.27 libgrpc-1.49.1_1 +libupb.so.27 libgrpc-1.49.1_1 +libgrpc++.so.1.49 libgrpc-1.49.1_1 +libgrpc++_alts.so.1.49 libgrpc-1.49.1_1 +libgrpc++_error_details.so.1.49 libgrpc-1.49.1_1 +libgrpc++_reflection.so.1.49 libgrpc-1.49.1_1 +libgrpc++_unsecure.so.1.49 libgrpc-1.49.1_1 +libgrpc_plugin_support.so.1.49 libgrpc-1.49.1_1 +libgrpcpp_channelz.so.1.49 libgrpc-1.49.1_1 libircclient.so.1 libircclient-1.10_5 libFAudio.so.0 FAudio-19.05_1 libqaccessibilityclient-qt5.so.0 libqaccessibilityclient-0.4.0_1 @@ -3694,8 +3687,8 @@ librlottie.so.0 rlottie-0.0.20160709_1 libdocopt.so.0 docopt.cpp-0.6.3_1 libfstrm.so.0 fstrm-0.5.0_1 libfreecell-solver.so.0 libfreecell-solver-5.10.0_1 -libknot.so.12 libknot-3.1.0_1 -libdnssec.so.8 libknot-3.0.0_1 +libknot.so.13 libknot-3.2.0_1 +libdnssec.so.9 libknot-3.2.0_1 libzscanner.so.4 libknot-3.1.0_1 libkres.so.9 knot-resolver-4.0.0_1 libnsl.so.3 libnsl-2.0.0_1 @@ -3717,8 +3710,8 @@ libdrumstick-rt.so.1 drumstick-1.1.2_1 libnozzle.so.1 libnozzle1-1.11_4 libmygpo-qt5.so.1 libmygpo-qt-1.1.0_1 libluv.so.1 libluv-1.30.1.0_1 -libarmadillo.so.9 armadillo-9.700.2_1 -libvarnishapi.so.2 libvarnishapi-6.3.0_1 +libarmadillo.so.11 armadillo-11.0.1_1 +libvarnishapi.so.3 libvarnishapi-7.1.0_1 libicns.so.1 libicns-0.8.1_1 librabbitmq.so.4 rabbitmq-c-0.10.0_2 libuInputPlus.so.0 libuInputPlus-0.1.3_1 @@ -3879,14 +3872,13 @@ libnvpair.so.3 zfs-2.0.3_2 libgmio.so gmio-0.4.1_1 libjsonnet.so.0 jsonnet-0.14.0_2 libjsonnet++.so.0 jsonnet-0.14.0_2 -libigdgmm.so.11 intel-gmmlib-21.3.1_1 +libigdgmm.so.12 intel-gmmlib-22.1.3_1 libigfxcmrt.so.7 intel-media-driver-21.3.5_1 -libigdgmm.so.11 intel-gmmlib-19.4.1_1 libigraph.so.0 igraph-0.9.4_1 libgtk-layer-shell.so.0 gtk-layer-shell-0.1.0_1 librdkafka.so.1 librdkafka-1.4.4_3 librdkafka++.so.1 librdkafka-1.4.4_3 -libraft.so.0 raft-0.9.16_1 +libraft.so.2 raft-0.13.0_1 libmdnsd.so.1 libmdnsd-0.9_1 libosdGPU.so.3.4.3 OpenSubdiv-3.4.3_1 libosdCPU.so.3.4.3 OpenSubdiv-3.4.3_1 @@ -3899,7 +3891,6 @@ libcaribou.so.0 libcaribou-0.4.21_3 libtinyclipboard.so.1 tinyclipboard-16.01_1 libcbor.so.0.9 libcbor-0.9.0_1 libfido2.so.1 libfido2-1.6.0_2 -libjanet.so.1.21 janet-1.21.1_1 libOpenImageDenoise.so.1 openimagedenoise-1.3.0_1 libcbang0.so cbang-1.6.0_3 libblosc.so.1 c-blosc-1.17.1_1 @@ -3911,7 +3902,7 @@ libbudgie-private.so.0 budgie-desktop-10.5.1_1 libbudgietheme.so.0 budgie-desktop-10.5.1_1 libbudgie-plugin.so.0 budgie-desktop-10.5.1_1 libslirp.so.0 libslirp-4.2.0_1 -libqpdf.so.28 libqpdf-10.0.0_1 +libqpdf.so.29 libqpdf-11.0.0_1 libstk-4.6.1.so libstk-4.6.1_1 libc++utilities.so.5 cpp-utilities-5.2.0_1 libtagparser.so.11 tagparser-11.0.0_1 @@ -3929,7 +3920,9 @@ libhidrd_strm.so.0 hidrd-0.2.0_1 libhidrd_fmt.so.0 hidrd-0.2.0_1 libjcat.so.1 libjcat-0.1.2_1 libmatio.so.9 matio-1.5.17_2 -libportal.so.0 libportal-0.3_1 +libportal.so.1 libportal-0.6_1 +libportal-gtk3.so.1 libportal-gtk3-0.6_1 +libportal-gtk4.so.1 libportal-gtk4-0.6_1 libvips.so.42 libvips-8.9.2_1 libvips-cpp.so.42 libvips-8.9.2_1 libselinux.so.1 libselinux-3.0_1 @@ -3963,7 +3956,6 @@ libnotcurses-core.so.3 notcurses-3.0.5_1 libnotcurses++.so.3 notcurses-3.0.5_1 libnotcurses-ffi.so.3 notcurses-3.0.5_1 libevemu.so.3 evemu-2.7.0_1 -libantilib.so.1 libantimicrox-3.1.2_1 libinih.so.0 inih-52_1 libpcaudio.so.0 pcaudiolib-1.1_1 libdcerpc-samr.so.0 samba-4.13.2_1 @@ -4026,18 +4018,17 @@ libsimavrparts.so.1 simavr-1.6_2 libsword-1.8.1.so libsword-1.8.1_6 libgivaro.so.9 givaro-4.1.1_1 liblinbox.so.0 linbox-1.6.3_1 -libpari-gmp.so.7 pari-2.13.0_1 -libpari-gmp-tls.so.7 pari-2.13.2_1 +libpari-gmp-tls.so.8 pari-2.15.0_1 libtree-sitter.so.0 tree-sitter-0.19.0_1 libplanarity.so.0 planarity-3.0.1.1_1 -libgap.so.0 gap-4.11.1_1 +libgap.so.8 gap-4.12.0_1 libgtkdatabox.so.1 gtkdatabox3-1.0.0_1 libxcvt.so.0 libxcvt-0.1.1_1 libgf2x.so.3 gf2x-1.3.0_1 libntl.so.44 ntl-11.5.1_1 -libflint.so.16 flintlib-2.8.0_1 +libflint.so.17 flintlib-2.9.0_1 libarb.so.2 arb-2.20.0_1 -libec.so.8 eclib-20210625_1 +libec.so.10 eclib-20220621_1 libsymmetrica.so.2 symmetrica-3.0.1_1 libLfunction.so.1 lcalc-2.0.4_1 liblrcalc.so.2 lrcalc-2.1_1 @@ -4056,6 +4047,7 @@ libmariadbd.so.19 libmariadbclient-10.5.9_1 libinstpatch-1.0.so.2 libinstpatch-1.1.6_1 libbasu.so.0 basu-0.2.0_1 libhomfly.so.0 libhomfly-1.02r6_1 +libsrt.so.1.5 libsrt-1.5.0_1 libXcomp.so.3 nx-libs-3.5.99.24_1 libXcompshad.so.3 nx-libs-3.5.99.24_1 libNX_X11.so.6 nx-libs-3.5.99.24_1 @@ -4067,20 +4059,20 @@ libbraiding.so.0 libbraiding-1.1_1 libstemmer.so.2 libstemmer-2.1.0_1 libdecor-0.so.0 libdecor-0.1.0_1 libprimecount.so.7 primecount-7.2_1 -libprimesieve.so.9 primesieve-7.7_1 -libavif.so.13 libavif-0.9.3_1 -libkdumpfile.so.9 libkdumpfile-0.4.1_1 +libprimesieve.so.10 primesieve-8.0_1 +libavif.so.15 libavif-0.11.0_1 +libkdumpfile.so.10 libkdumpfile-0.4.1_1 libamd.so.2 SuiteSparse-5.10.1_1 libcholmod.so.3 SuiteSparse-5.10.1_1 libumfpack.so.5 SuiteSparse-5.10.1_1 libecl.so.21.2 ecl-21.2.1_1 libecm.so.1 ecm-7.0.4_3 libcliquer.so.1 cliquer-1.22_1 -libSingular-4.3.0.so singular-4.3.0_1 -libfactory-4.3.0.so singular-4.3.0_1 -libpolys-4.3.0.so singular-4.3.0_1 -libomalloc-0.9.6.so singular-4.3.0_1 -libsingular_resources-4.3.0.so singular-4.3.0_1 +libSingular-4.3.1.so singular-4.3.1p2_1 +libfactory-4.3.1.so singular-4.3.1p2_1 +libpolys-4.3.1.so singular-4.3.1p2_1 +libomalloc-0.9.6.so singular-4.3.1p2_1 +libsingular_resources-4.3.1.so singular-4.3.1p2_1 libbrial.so.3 brial-1.2.10_1 libbrial_groebner.so.3 brial-1.2.10_1 libm4ri-0.0.20200125.so m4ri-20200125_1 @@ -4118,34 +4110,93 @@ libjvm.so openjdk17-jre-17.0.1+12_1 librttopo.so.1 librttopo-1.1.0_1 libspatialite.so.7 libspatialite-5.0.1_1 mod_spatialite.so.7 libspatialite-5.0.1_1 -libSvtAv1Enc.so.0 libsvt-av1-0.9.0_1 +libSvtAv1Enc.so.1 libsvt-av1-1.0.0_1 libSvtAv1Dec.so.0 libsvt-av1-0.9.0_1 -librz_bp.so.0.3.4 rizin-0.3.4_1 -librz_reg.so.0.3.4 rizin-0.3.4_1 -librz_debug.so.0.3.4 rizin-0.3.4_1 -librz_hash.so.0.3.4 rizin-0.3.4_1 -librz_config.so.0.3.4 rizin-0.3.4_1 -librz_parse.so.0.3.4 rizin-0.3.4_1 -librz_asm.so.0.3.4 rizin-0.3.4_1 -librz_type.so.0.3.4 rizin-0.3.4_1 -librz_socket.so.0.3.4 rizin-0.3.4_1 -librz_egg.so.0.3.4 rizin-0.3.4_1 -librz_core.so.0.3.4 rizin-0.3.4_1 -librz_diff.so.0.3.4 rizin-0.3.4_1 -librz_main.so.0.3.4 rizin-0.3.4_1 -librz_cons.so.0.3.4 rizin-0.3.4_1 -librz_crypto.so.0.3.4 rizin-0.3.4_1 -librz_analysis.so.0.3.4 rizin-0.3.4_1 -librz_syscall.so.0.3.4 rizin-0.3.4_1 -librz_io.so.0.3.4 rizin-0.3.4_1 -librz_flag.so.0.3.4 rizin-0.3.4_1 -librz_magic.so.0.3.4 rizin-0.3.4_1 -librz_util.so.0.3.4 rizin-0.3.4_1 -librz_lang.so.0.3.4 rizin-0.3.4_1 -librz_search.so.0.3.4 rizin-0.3.4_1 -librz_bin.so.0.3.4 rizin-0.3.4_1 +libyascreen.so.0 yascreen-1.86_1 +librz_analysis.so.0.4 rizin-0.4.0_1 +librz_asm.so.0.4 rizin-0.4.0_1 +librz_bin.so.0.4 rizin-0.4.0_1 +librz_bp.so.0.4 rizin-0.4.0_1 +librz_config.so.0.4 rizin-0.4.0_1 +librz_cons.so.0.4 rizin-0.4.0_1 +librz_core.so.0.4 rizin-0.4.0_1 +librz_crypto.so.0.4 rizin-0.4.0_1 +librz_debug.so.0.4 rizin-0.4.0_1 +librz_demangler.so.0.4 rizin-0.4.0_1 +librz_diff.so.0.4 rizin-0.4.0_1 +librz_egg.so.0.4 rizin-0.4.0_1 +librz_flag.so.0.4 rizin-0.4.0_1 +librz_hash.so.0.4 rizin-0.4.0_1 +librz_io.so.0.4 rizin-0.4.0_1 +librz_lang.so.0.4 rizin-0.4.0_1 +librz_magic.so.0.4 rizin-0.4.0_1 +librz_main.so.0.4 rizin-0.4.0_1 +librz_parse.so.0.4 rizin-0.4.0_1 +librz_reg.so.0.4 rizin-0.4.0_1 +librz_search.so.0.4 rizin-0.4.0_1 +librz_sign.so.0.4 rizin-0.4.0_1 +librz_socket.so.0.4 rizin-0.4.0_1 +librz_syscall.so.0.4 rizin-0.4.0_1 +librz_type.so.0.4 rizin-0.4.0_1 +librz_util.so.0.4 rizin-0.4.0_1 libaravis-0.8.so.0 libaravis-0.8.21_1 -libLimeSuite.so.20.10-1 LimeSuite-20.10.0_1 +libLimeSuite.so.22.09-1 LimeSuite-22.09.0_1 +libnvme.so.1 libnvme-1.0_1 +libRInside.so R-cran-RInside-0.2.16_1 +libXrdUtils.so.3 xrootd-5.4.0_1 +libXrdCl.so.3 xrootd-5.4.0_1 +libXrdServer.so.3 xrootd-5.4.0_1 +libXrdCrypto.so.2 xrootd-5.4.0_1 +libXrdPosix.so.3 xrootd-5.4.0_1 +libXrdHttpUtils.so.2 xrootd-5.4.0_1 +libXrdSsiLib.so.2 xrootd-5.4.0_1 +libXrdCryptoLite.so.2 xrootd-5.4.0_1 +libTree.so root-6.24.06_1 +libRIO.so root-6.24.06_1 +libMatrix.so root-6.24.06_1 +libThread.so root-6.24.06_1 +libTMVA.so root-6.24.06_1 +libMathCore.so root-6.24.06_1 +libCore.so root-6.24.06_1 +libCore.so qtcreator-7.0.2_1 +liblowdown.so lowdown-0.11.2_1 +libjaylink.so.0 libjaylink-0.2.0_1 +libnvidia-container.so.1 libnvidia-container-1.10.0_1 +libnvidia-container-go.so.1 libnvidia-container-1.10.0_1 +libqtspell-qt5.so.1 qtspell-1.0.1_1 +libopensmtpd.so.0 libopensmtpd-0.7_1 +libiio.so.0 libiio-0.23_1 +libqtforkawesome.so.1 qtforkawesome-0.1.0_1 +libqtquickforkawesome.so.1 qtforkawesome-0.1.0_1 +libsyncthingwidgets.so.3 syncthingtray-1.3.0_1 +libsyncthingmodel.so.3 syncthingtray-1.3.0_1 +libsyncthingconnector.so.3 syncthingtray-1.3.0_1 +libglibutil.so.1 libglibutil-1.0.64_1 +libgbinder.so.1 libgbinder-1.1.20_1 +libsunpinyin.so.3 libsunpinyin-3.0.0rc2_1 +libtpm2-totp.so.0 libtpm2-totp-0.3.0_1 +libmujs.so.1.2.0 mujs-1.2.0_2 +libiir.so.1 libiir1-1.9.3_1 +libabsl_statusor.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_hash.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_raw_hash_set.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_bad_variant_access.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_status.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_random_internal_pool_urbg.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_random_internal_randen.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_random_internal_randen_hwaes_impl.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_random_internal_randen_slow.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_cord.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_city.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_bad_optional_access.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_cordz_info.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_str_format_internal.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_synchronization.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_time.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1 +libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1 libcalamares.so.3.2.61 calamares-3.2.61_2 libcalamaresui.so.3.2.61 calamares-3.2.61_2 libvulkan.so.1 heroic-bin-2.4.3_1 diff --git a/common/travis/build.sh b/common/travis/build.sh index f5cf9cf..007a61f 100755 --- a/common/travis/build.sh +++ b/common/travis/build.sh @@ -13,7 +13,7 @@ fi PKGS=$(/hostrepo/xbps-src sort-dependencies $(cat /tmp/templates)) for pkg in ${PKGS}; do - /hostrepo/xbps-src -j$(nproc) -H "$HOME"/hostdir $arch $test pkg "$pkg" + /hostrepo/xbps-src -j$(nproc) -s -H "$HOME"/hostdir $arch $test pkg "$pkg" [ $? -eq 1 ] && exit 1 done diff --git a/common/travis/changed_templates.sh b/common/travis/changed_templates.sh index 686436c..2bed225 100755 --- a/common/travis/changed_templates.sh +++ b/common/travis/changed_templates.sh @@ -2,19 +2,15 @@ # # changed_templates.sh -if command -v chroot-git >/dev/null 2>&1; then - GIT_CMD=$(command -v chroot-git) -elif command -v git >/dev/null 2>&1; then - GIT_CMD=$(command -v git) -fi - -tip="$($GIT_CMD rev-list -1 --parents HEAD)" +tip="$(git rev-list -1 --parents HEAD)" case "$tip" in + # This is a merge commit, pick last parent *" "*" "*) tip="${tip##* }" ;; + # This is a non-merge commit, pick itself *) tip="${tip%% *}" ;; esac -base="$($GIT_CMD merge-base FETCH_HEAD "$tip")" || { +base="$(git merge-base FETCH_HEAD "$tip")" || { echo "Your branches is based on too old copy." echo "Please rebase to newest copy." exit 1 @@ -23,7 +19,7 @@ base="$($GIT_CMD merge-base FETCH_HEAD "$tip")" || { echo "$base $tip" >/tmp/revisions /bin/echo -e '\x1b[32mChanged packages:\x1b[0m' -$GIT_CMD diff-tree -r --no-renames --name-only --diff-filter=AM \ +git diff-tree -r --no-renames --name-only --diff-filter=AM \ "$base" "$tip" \ -- 'srcpkgs/*/template' | cut -d/ -f 2 | diff --git a/common/travis/fetch-xbps.sh b/common/travis/fetch-xbps.sh index 5a4e458..e5c5881 100755 --- a/common/travis/fetch-xbps.sh +++ b/common/travis/fetch-xbps.sh @@ -7,7 +7,7 @@ TAR=tar command -v bsdtar >/dev/null && TAR=bsdtar ARCH=$(uname -m)-musl VERSION=0.59_5 -URL="https://alpha.de.repo.voidlinux.org/static/xbps-static-static-${VERSION}.${ARCH}.tar.xz" +URL="https://repo-ci.voidlinux.org/static/xbps-static-static-${VERSION}.${ARCH}.tar.xz" FILE=${URL##*/} mkdir -p /tmp/bin diff --git a/common/travis/fetch_upstream.sh b/common/travis/fetch_upstream.sh index 4531556..e5ec597 100755 --- a/common/travis/fetch_upstream.sh +++ b/common/travis/fetch_upstream.sh @@ -2,11 +2,8 @@ # # changed_templates.sh -if command -v chroot-git >/dev/null 2>&1; then - GIT_CMD=$(command -v chroot-git) -elif command -v git >/dev/null 2>&1; then - GIT_CMD=$(command -v git) -fi +# required by git 2.35.2+ +git config --global --add safe.directory "$PWD" /bin/echo -e '\x1b[32mFetching upstream...\x1b[0m' -$GIT_CMD fetch --depth 200 https://github.com/void-linux/void-packages.git master +git fetch --depth 200 https://github.com/void-linux/void-packages.git master diff --git a/common/travis/license.lst b/common/travis/license.lst index 78c4cb1..82ec537 100644 --- a/common/travis/license.lst +++ b/common/travis/license.lst @@ -31,6 +31,7 @@ Apache-1.0 Apache-1.1 Apache-2.0 App-s2p +Arphic-1999 Artistic-1.0-Perl Artistic-1.0-cl8 Artistic-1.0 @@ -58,12 +59,14 @@ BSD-Protection BSD-Source-Code BSL-1.0 BUSL-1.1 +Baekmuk Bahyph Barr Beerware Bison-exception-2.2 BitTorrent-1.0 BitTorrent-1.1 +Bitstream-Vera BlueOak-1.0.0 Bootloader-exception Borceux @@ -77,6 +80,7 @@ CC-BY-2.5-AU CC-BY-2.5 CC-BY-3.0-AT CC-BY-3.0-DE +CC-BY-3.0-IGO CC-BY-3.0-NL CC-BY-3.0-US CC-BY-3.0 @@ -220,6 +224,8 @@ GPL-3.0-linking-source-exception GPL-3.0-only GPL-3.0-or-later GPL-CC-1.0 +GStreamer-exception-2005 +GStreamer-exception-2008 Giftware Glide Glulxe @@ -244,6 +250,7 @@ JPNIC JSON Jam JasPer-2.0 +KiCad-libraries-exception LAL-1.2 LAL-1.3 LGPL-2.0-only @@ -262,6 +269,8 @@ LPPL-1.1 LPPL-1.2 LPPL-1.3a LPPL-1.3c +LZMA-SDK-9.11-to-9.20 +LZMA-SDK-9.22 LZMA-exception Latex2e Leptonica @@ -286,10 +295,12 @@ MPL-1.0 MPL-1.1 MPL-2.0-no-copyleft-exception MPL-2.0 +MS-LPL MS-PL MS-RL MTLL MakeIndex +Minpack MirOS Motosoto MulanPSL-1.0 @@ -302,6 +313,7 @@ NBPL-1.0 NCGL-UK-2.0 NCSA NGPL +NICTA-1.0 NIST-PD-fallback NIST-PD NLOD-1.0 @@ -379,6 +391,7 @@ Plexus PolyForm-Noncommercial-1.0.0 PolyForm-Small-Business-1.0.0 PostgreSQL +Python-2.0.1 Python-2.0 QPL-1.0 Qhull @@ -515,7 +528,9 @@ libpng-2.0 libselinux-1.0 libtiff mif-exception +mpi-permissive mpich2 +mplus openvpn-openssl-exception psfrag psutils diff --git a/common/travis/set_mirror.sh b/common/travis/set_mirror.sh index a57ab20..8159dac 100755 --- a/common/travis/set_mirror.sh +++ b/common/travis/set_mirror.sh @@ -1,15 +1,8 @@ #!/bin/sh -TRAVIS_PROTO=http -TRAVIS_MIRROR=repo-us.voidlinux.org +TRAVIS_MIRROR=repo-ci.voidlinux.org for _i in etc/xbps.d/repos-remote*.conf ; do /bin/echo -e "\x1b[32mUpdating $_i...\x1b[0m" - # First fix the proto, ideally we'd serve everything with HTTPS, - # but key management and rotation is a pain, and things are signed - # so we can afford to be a little lazy at times. - sed -i "s:https:$TRAVIS_PROTO:g" $_i - - # Now set the mirror - sed -i "s:alpha\.de\.repo\.voidlinux\.org:$TRAVIS_MIRROR:g" $_i + sed -i "s:repo-default\.voidlinux\.org:$TRAVIS_MIRROR:g" $_i done diff --git a/common/travis/xlint.sh b/common/travis/xlint.sh index 6b3d9e9..327417c 100755 --- a/common/travis/xlint.sh +++ b/common/travis/xlint.sh @@ -11,7 +11,8 @@ common/scripts/lint-commits $base $tip || EXITCODE=$? for t in $(awk '{ print "srcpkgs/" $0 "/template" }' /tmp/templates); do /bin/echo -e "\x1b[32mLinting $t...\x1b[0m" - xlint "$t" || EXITCODE=$? - common/scripts/lint-version-change "$t" $base $tip || EXITCODE=$? + xlint "$t" > /tmp/xlint_out || EXITCODE=$? + common/scripts/lint-version-change "$t" $base $tip > /tmp/vlint_out || EXITCODE=$? + awk -f common/scripts/lint2annotations.awk /tmp/xlint_out /tmp/vlint_out done exit $EXITCODE diff --git a/common/travis/xpkgdiff.sh b/common/travis/xpkgdiff.sh new file mode 100755 index 0000000..7caabe4 --- /dev/null +++ b/common/travis/xpkgdiff.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# +# xpkgdiff.sh + +export XBPS_DISTDIR=/hostrepo XBPS_HOSTDIR="$HOME/hostdir" +export DIFF='diff --unified=0 --report-identical-files --suppress-common-lines + --color=always --label REPO --label BUILT' +ARGS="-a $2 -R https://repo-ci.voidlinux.org/current" + +while read -r pkg; do + for subpkg in $(xsubpkg $pkg); do + if xbps-query --repository=$HOME/hostdir/binpkgs \ + --repository=$HOME/hostdir/binpkgs/nonfree \ + -i "$subpkg" >&/dev/null; then + /bin/echo -e "\x1b[34mFile Diff of $subpkg:\x1b[0m" + xpkgdiff $ARGS -f $subpkg + /bin/echo -e "\x1b[34mMetadata Diff of $subpkg:\x1b[0m" + xpkgdiff $ARGS -S $subpkg + /bin/echo -e "\x1b[34mDependency Diff of $subpkg:\x1b[0m" + xpkgdiff $ARGS -x $subpkg + else + /bin/echo -e "\x1b[33m$subpkg wasn't found\x1b[0m" + fi + done +done < /tmp/templates diff --git a/common/xbps-src/libexec/xbps-src-docheck.sh b/common/xbps-src/libexec/xbps-src-docheck.sh index 1e82c1a..cac0d48 100755 --- a/common/xbps-src/libexec/xbps-src-docheck.sh +++ b/common/xbps-src/libexec/xbps-src-docheck.sh @@ -20,6 +20,13 @@ done setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD +if [ -n "$disable_parallel_check" ]; then + XBPS_MAKEJOBS=1 +else + XBPS_MAKEJOBS="$XBPS_ORIG_MAKEJOBS" +fi +makejobs="-j$XBPS_MAKEJOBS" + XBPS_CHECK_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_check_done" if [ -n "$XBPS_CROSS_BUILD" ]; then diff --git a/common/xbps-src/shutils/build_dependencies.sh b/common/xbps-src/shutils/build_dependencies.sh index e4e2210..1d19de5 100644 --- a/common/xbps-src/shutils/build_dependencies.sh +++ b/common/xbps-src/shutils/build_dependencies.sh @@ -25,9 +25,9 @@ setup_pkg_depends() { _pkgname=$(xbps-uhelper getpkgname $_depname 2>/dev/null) [ -z "$_pkgname" ] && _pkgname="$_depname" if [ -s ${XBPS_DISTDIR}/etc/virtual ]; then - foo=$(egrep "^${_pkgname}[[:blank:]]" ${XBPS_DISTDIR}/etc/virtual|cut -d ' ' -f2) + foo=$(grep -E "^${_pkgname}[[:blank:]]" ${XBPS_DISTDIR}/etc/virtual|cut -d ' ' -f2) elif [ -s ${XBPS_DISTDIR}/etc/defaults.virtual ]; then - foo=$(egrep "^${_pkgname}[[:blank:]]" ${XBPS_DISTDIR}/etc/defaults.virtual|cut -d ' ' -f2) + foo=$(grep -E "^${_pkgname}[[:blank:]]" ${XBPS_DISTDIR}/etc/defaults.virtual|cut -d ' ' -f2) fi if [ -z "$foo" ]; then msg_error "$pkgver: failed to resolve virtual dependency for '$j' (missing from etc/virtual)\n" diff --git a/common/xbps-src/shutils/bulk.sh b/common/xbps-src/shutils/bulk.sh index 8eb6e92..31732ab 100644 --- a/common/xbps-src/shutils/bulk.sh +++ b/common/xbps-src/shutils/bulk.sh @@ -54,7 +54,7 @@ bulk_sortdeps() { } bulk_build() { - local sys="$1" + local bulk_build_cmd="$1" local NPROCS=$(($(nproc)*2)) local NRUNNING=0 @@ -67,10 +67,17 @@ bulk_build() { fi # Compare installed pkg versions vs srcpkgs - if [[ $sys ]]; then - xbps-checkvers -f '%n' -I -D $XBPS_DISTDIR + case "$bulk_build_cmd" in + installed) + bulk_sortdeps $(xbps-checkvers -f '%n' -I -D "$XBPS_DISTDIR") return $? - fi + ;; + local) + bulk_sortdeps $(xbps-checkvers -f '%n' -i -R "${XBPS_REPOSITORY}" -R "${XBPS_REPOSITORY}/nonfree" -D "$XBPS_DISTDIR") + return $? + ;; + esac + # compare repo pkg versions vs srcpkgs for f in $(xbps-checkvers -f '%n' -D $XBPS_DISTDIR); do if [ $NRUNNING -eq $NPROCS ]; then @@ -90,9 +97,9 @@ bulk_build() { } bulk_update() { - local args="$1" pkgs f rval + local bulk_update_cmd="$1" pkgs f rval - pkgs="$(bulk_build ${args})" + pkgs="$(bulk_build "${bulk_update_cmd}")" [[ -z $pkgs ]] && return 0 msg_normal "xbps-src: the following packages must be rebuilt and updated:\n" @@ -112,7 +119,7 @@ bulk_update() { msg_error "xbps-src: failed to build $pkgver pkg!\n" fi done - if [ -n "$pkgs" -a -n "$args" ]; then + if [ -n "$pkgs" -a "$bulk_update_cmd" == installed ]; then echo msg_normal "xbps-src: updating your system, confirm to proceed...\n" ${XBPS_SUCMD} "xbps-install --repository=$XBPS_REPOSITORY --repository=$XBPS_REPOSITORY/nonfree -u ${pkgs//[$'\n']/ }" || return 1 diff --git a/common/xbps-src/shutils/chroot.sh b/common/xbps-src/shutils/chroot.sh index 3083a27..a7100d4 100644 --- a/common/xbps-src/shutils/chroot.sh +++ b/common/xbps-src/shutils/chroot.sh @@ -8,22 +8,22 @@ install_base_chroot() { XBPS_TARGET_PKG="$1" fi # binary bootstrap - msg_normal "xbps-src: installing base-chroot-cereus...\n" + msg_normal "xbps-src: installing base-chroot...\n" # XBPS_TARGET_PKG == arch if [ "$XBPS_TARGET_PKG" ]; then _bootstrap_arch="env XBPS_TARGET_ARCH=$XBPS_TARGET_PKG" fi (export XBPS_MACHINE=$XBPS_TARGET_PKG XBPS_ARCH=$XBPS_TARGET_PKG; chroot_sync_repodata) - ${_bootstrap_arch} $XBPS_INSTALL_CMD ${XBPS_INSTALL_ARGS} -y base-chroot-cereus + ${_bootstrap_arch} $XBPS_INSTALL_CMD ${XBPS_INSTALL_ARGS} -y base-chroot if [ $? -ne 0 ]; then - msg_error "xbps-src: failed to install base-chroot-cereus!\n" + msg_error "xbps-src: failed to install base-chroot!\n" fi # Reconfigure base-files to create dirs/symlinks. - if xbps-query -r $XBPS_MASTERDIR base-files>=2022.07.03 &>/dev/null; then - XBPS_ARCH=$XBPS_TARGET_PKG xbps-reconfigure -r $XBPS_MASTERDIR -f base-files>=2022.07.03 &>/dev/null + if xbps-query -r $XBPS_MASTERDIR base-files &>/dev/null; then + XBPS_ARCH=$XBPS_TARGET_PKG xbps-reconfigure -r $XBPS_MASTERDIR -f base-files &>/dev/null fi - msg_normal "xbps-src: installed base-chroot-cereus successfully!\n" + msg_normal "xbps-src: installed base-chroot successfully!\n" chroot_prepare $XBPS_TARGET_PKG || msg_error "xbps-src: failed to initialize chroot!\n" chroot_check chroot_handler clean @@ -34,7 +34,7 @@ reconfigure_base_chroot() { local pkgs="glibc-locales ca-certificates" [ -z "$IN_CHROOT" -o -e $statefile ] && return 0 # Reconfigure ca-certificates. - msg_normal "xbps-src: reconfiguring base-chroot-cereus...\n" + msg_normal "xbps-src: reconfiguring base-chroot...\n" for f in ${pkgs}; do if xbps-query -r $XBPS_MASTERDIR $f &>/dev/null; then xbps-reconfigure -r $XBPS_MASTERDIR -f $f @@ -51,7 +51,7 @@ update_base_chroot() { if $(${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -nu|grep -q xbps); then ${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu xbps || msg_error "xbps-src: failed to update xbps!\n" fi - ${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu || msg_error "xbps-src: failed to update base-chroot-cereus!\n" + ${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu || msg_error "xbps-src: failed to update base-chroot!\n" msg_normal "xbps-src: cleaning up $XBPS_MASTERDIR masterdir...\n" [ -z "$XBPS_KEEP_ALL" -a -z "$XBPS_SKIP_DEPS" ] && remove_pkg_autodeps [ -z "$XBPS_KEEP_ALL" -a -z "$keep_all_force" ] && rm -rf $XBPS_MASTERDIR/builddir $XBPS_MASTERDIR/destdir @@ -115,14 +115,14 @@ chroot_prepare() { [ ! -d $XBPS_MASTERDIR/$f ] && mkdir -p $XBPS_MASTERDIR/$f done - # Copy /etc/passwd and /etc/group from base-files + # Copy /etc/passwd and /etc/group from base-files. cp -f $XBPS_SRCPKGDIR/base-files/files/passwd $XBPS_MASTERDIR/etc echo "$(whoami):x:$(id -u):$(id -g):$(whoami) user:/tmp:/bin/xbps-shell" \ >> $XBPS_MASTERDIR/etc/passwd cp -f $XBPS_SRCPKGDIR/base-files/files/group $XBPS_MASTERDIR/etc echo "$(whoami):x:$(id -g):" >> $XBPS_MASTERDIR/etc/group - # Copy /etc/hosts from base-files + # Copy /etc/hosts from base-files. cp -f $XBPS_SRCPKGDIR/base-files/files/hosts $XBPS_MASTERDIR/etc # Prepare default locale: en_US.UTF-8. diff --git a/common/xbps-src/shutils/common.sh b/common/xbps-src/shutils/common.sh index 47ff365..ea67dab 100644 --- a/common/xbps-src/shutils/common.sh +++ b/common/xbps-src/shutils/common.sh @@ -147,6 +147,23 @@ msg_normal() { fi } +report_broken() { + if [ "$show_problems" = "ignore-problems" ]; then + return + fi + if [ -z "$XBPS_IGNORE_BROKENNESS" ]; then + for line in "$@"; do + msg_red "$line" + done + exit 2 + elif [ "$XBPS_IGNORE_BROKENNESS" != reported ]; then + for line in "$@"; do + msg_warn "$line" + done + XBPS_IGNORE_BROKENNESS=reported + fi +} + msg_normal_append() { [ -n "$NOCOLORS" ] || printf "\033[1m" printf "$@" @@ -472,7 +489,15 @@ setup_pkg() { fi makejobs="-j$XBPS_MAKEJOBS" if [ -n "$XBPS_BINPKG_EXISTS" ]; then - local _binpkgver="$($XBPS_QUERY_XCMD -R -ppkgver $pkgver 2>/dev/null)" + local extraflags="" + if [ -n "$XBPS_SKIP_REMOTEREPOS" ]; then + extraflags="-i" + # filter out remote repositories + for repo in $(xbps-query -L | awk '{ print $2 }' | grep '^/host/'); do + extraflags+=" --repository=$repo" + done + fi + local _binpkgver="$($XBPS_QUERY_XCMD -R -ppkgver $pkgver $extraflags 2>/dev/null)" if [ "$_binpkgver" = "$pkgver" ]; then if [ -z "$XBPS_DEPENDENCY" ]; then local _repo="$($XBPS_QUERY_XCMD -R -prepository $pkgver 2>/dev/null)" @@ -630,20 +655,16 @@ setup_pkg() { fi # Setup some specific package vars. - if [ -z "$wrksrc" ]; then - wrksrc="$XBPS_BUILDDIR/${sourcepkg}-${version}" - else - wrksrc="$XBPS_BUILDDIR/$wrksrc" - fi + wrksrc="$XBPS_BUILDDIR/${sourcepkg}-${version}" - if [ "$cross" -a "$nocross" -a "$show_problems" != "ignore-problems" ]; then - msg_red "$pkgver: cannot be cross compiled, exiting...\n" - msg_red "$pkgver: $nocross\n" - exit 2 - elif [ "$broken" -a "$show_problems" != "ignore-problems" ]; then - msg_red "$pkgver: cannot be built, it's currently broken; see the build log:\n" - msg_red "$pkgver: $broken\n" - exit 2 + if [ "$cross" -a "$nocross" ]; then + report_broken \ + "$pkgver: cannot be cross compiled...\n" \ + "$pkgver: $nocross\n" + elif [ "$broken" ]; then + report_broken \ + "$pkgver: cannot be built, it's currently broken; see the build log:\n" \ + "$pkgver: $broken\n" fi if [ -n "$restricted" -a -z "$XBPS_ALLOW_RESTRICTED" -a "$show_problems" != "ignore-problems" ]; then diff --git a/common/xbps-src/shutils/cross.sh b/common/xbps-src/shutils/cross.sh index 5f65f38..fbf22f9 100644 --- a/common/xbps-src/shutils/cross.sh +++ b/common/xbps-src/shutils/cross.sh @@ -72,7 +72,7 @@ prepare_cross_sysroot() { fi rm -f $errlog # Create top level symlinks in sysroot. - XBPS_ARCH=$XBPS_TARGET_MACHINE xbps-reconfigure -r $XBPS_CROSS_BASE -f base-files-cereus>=2022.07.03 &>/dev/null + XBPS_ARCH=$XBPS_TARGET_MACHINE xbps-reconfigure -r $XBPS_CROSS_BASE -f base-files &>/dev/null # Create a sysroot/include and sysroot/lib symlink just in case. ln -s usr/include ${XBPS_CROSS_BASE}/include ln -s usr/lib ${XBPS_CROSS_BASE}/lib diff --git a/common/xbps-src/shutils/pkgtarget.sh b/common/xbps-src/shutils/pkgtarget.sh index 06fbcd8..ba8c63b 100644 --- a/common/xbps-src/shutils/pkgtarget.sh +++ b/common/xbps-src/shutils/pkgtarget.sh @@ -34,8 +34,7 @@ check_pkg_arch() { esac done if [ -z "$nonegation" -a -n "$match" ] || [ -n "$nonegation" -a -z "$match" ]; then - msg_red "${pkgname}-${version}_${revision}: this package cannot be built for ${_arch}.\n" - exit 2 + report_broken "${pkgname}-${version}_${revision}: this package cannot be built for ${_arch}.\n" fi fi } diff --git a/common/xbps-src/shutils/update_check.sh b/common/xbps-src/shutils/update_check.sh index 0a62427..e7193c9 100644 --- a/common/xbps-src/shutils/update_check.sh +++ b/common/xbps-src/shutils/update_check.sh @@ -4,6 +4,7 @@ update_check() { local i p url pkgurlname rx found_version consider local update_override=$XBPS_SRCPKGDIR/$XBPS_TARGET_PKG/update local original_pkgname=$pkgname + local pkgname=$sourcepkg local urlpfx urlsfx local -A fetchedurls @@ -23,8 +24,9 @@ update_check() { if [ -z "$site" ]; then case "$distfiles" in - # only consider versions those exist in ftp.gnome.org - *ftp.gnome.org*) ;; + # special case those sites provide better source elsewhere + *ftp.gnome.org*|*download.gnome.org*) ;; + *archive.xfce.org*) ;; *) printf '%s\n' "$homepage" ;; esac @@ -56,7 +58,8 @@ update_check() { *github.com*|\ *//gitlab.*|\ *bitbucket.org*|\ - *ftp.gnome.org*|\ + *ftp.gnome.org*|*download.gnome.org*|\ + *archive.xfce.org*|\ *kernel.org/pub/linux/kernel/*|\ *cran.r-project.org/src/contrib*|\ *rubygems.org*|\ @@ -122,8 +125,11 @@ update_check() { pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)" url="https://github.com/$pkgurlname/tags" rx='/archive/refs/tags/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar\.gz")';; - *//gitlab.*) - pkgurlname="$(printf %s "$url" | cut -d/ -f1-5)" + *//gitlab.*|*code.videolan.org*) + case "$url" in + */-/*) pkgurlname="$(printf %s "$url" | sed -e 's%/-/.*%%g; s%/$%%')";; + *) pkgurlname="$(printf %s "$url" | cut -d / -f 1-5)";; + esac url="$pkgurlname/tags" rx='/archive/[^/]+/\Q'"$pkgname"'\E-v?\K[\d.]+(?=\.tar\.gz")';; *bitbucket.org*) @@ -131,8 +137,11 @@ update_check() { url="https://bitbucket.org/$pkgurlname/downloads" rx='/(get|downloads)/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar)';; *ftp.gnome.org*|*download.gnome.org*) - : ${pattern="\Q$pkgname\E-\K(0|[13]\.[0-9]*[02468]|[4-9][0-9]+)\.[0-9.]*[0-9](?=)"} + : ${pattern="\Q$pkgname\E-\K(0|[13]\.[0-9]*[02468]|[4-9][0-9]+)\.[0-9.]*[0-9](?=.tar)"} url="https://download.gnome.org/sources/$pkgname/cache.json";; + *archive.xfce.org*) + : ${pattern="\Q$pkgname\E-\K((([4-9]|([1-9][0-9]+))\.[0-9]*[02468]\.[0-9.]*[0-9])|([0-3]\.[0-9.]*))(?=.tar)"} + url="https://archive.xfce.org/feeds/project/$pkgname" ;; *kernel.org/pub/linux/kernel/*) rx=linux-'\K'${version%.*}'[\d.]+(?=\.tar\.xz)';; *cran.r-project.org/src/contrib*) @@ -145,8 +154,8 @@ update_check() { rx='/crates/'${pkgname#rust-}'/\K[0-9.]*(?=/download)' ;; *codeberg.org*) pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)" - url="https://codeberg.org/$pkgurlname/releases" - rx='/archive/\K[\d.]+(?=\.tar\.gz)' ;; + url="https://codeberg.org/$pkgurlname/tags" + rx='/archive/(v-?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar\.gz)' ;; *hg.sr.ht*) pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)" url="https://hg.sr.ht/$pkgurlname/tags" diff --git a/xbps-src b/xbps-src index ff24901..2ad6ea7 100755 --- a/xbps-src +++ b/xbps-src @@ -122,6 +122,9 @@ show-repo-updates show-sys-updates Prints the list of outdated packages in your system. +show-local-updates + Prints the list of outdated packages in your local repositories. + sort-dependencies ... Given a list of packages specified as additional arguments, a sorted dependency list will be returned to stdout. @@ -132,6 +135,9 @@ update-bulk update-sys Rebuilds all packages in your system that are outdated and updates them. +update-local + Rebuilds all packages in your local repositories that are outdated. + update-check Check upstream site of for new releases. @@ -150,6 +156,8 @@ Options: $(print_cross_targets) +-b Build packages even if marked as broken, nocross, or excluded with archs. + -c If specified, etc/conf. will be used as the primary config file name; etc/conf will only be attempted if that does not exist. @@ -157,7 +165,7 @@ $(print_cross_targets) -C Do not remove build directory, automatic dependencies and package destdir after successful install. --E If a binary package exists in a local repository for the target package, +-E If a binary package exists in a repository for the target package, do not try to build it, exit immediately. -f Force running the specified stage (configure/build/install/pkg) @@ -216,6 +224,8 @@ $(print_cross_targets) This alternative repository will also be used to resolve dependencies with highest priority order than others. +-s Make vsed warnings errors. + -t Create a temporary masterdir to not pollute the current one. Note that the existing masterdir must be fully populated with binary-bootstrap first. Once the target has finished, this temporary masterdir will be removed. @@ -357,7 +367,7 @@ readonly XBPS_SRC_VERSION="113" export XBPS_MACHINE=$(xbps-uhelper -C /dev/null arch) XBPS_OPTIONS= -XBPS_OPTSTRING="1a:c:CEfgGhH:iIj:Lm:No:p:qQKr:tV" +XBPS_OPTSTRING="1a:bc:CEfgGhH:iIj:Lm:No:p:qsQKr:tV" # Preprocess arguments in order to allow options before and after XBPS_TARGET. eval set -- $(getopt "$XBPS_OPTSTRING" "$@"); @@ -365,10 +375,12 @@ eval set -- $(getopt "$XBPS_OPTSTRING" "$@"); # Options are saved as XBPS_ARG_FOO instead of XBPS_FOO for now; this is # because configuration files may override those and we want arguments to # take precedence over configuration files + while getopts "$XBPS_OPTSTRING" opt; do case $opt in 1) XBPS_ARG_BUILD_ONLY_ONE_PKG=yes; XBPS_OPTIONS+=" -1";; a) XBPS_ARG_CROSS_BUILD="$OPTARG"; XBPS_OPTIONS+=" -a $OPTARG";; + b) XBPS_ARG_IGNORE_BROKENNESS=yes; XBPS_OPTIONS+=" -b";; c) XBPS_ARG_CONFIG="$OPTARG"; XBPS_OPTIONS+=" -c $OPTARG";; C) XBPS_ARG_KEEP_ALL=1; XBPS_OPTIONS+=" -C";; E) XBPS_ARG_BINPKG_EXISTS=1; XBPS_OPTIONS+=" -E";; @@ -389,6 +401,7 @@ while getopts "$XBPS_OPTSTRING" opt; do Q) XBPS_ARG_CHECK_PKGS=yes; XBPS_OPTIONS+=" -Q";; K) XBPS_ARG_CHECK_PKGS=full; XBPS_OPTIONS+=" -K";; r) XBPS_ARG_ALT_REPOSITORY="$OPTARG"; XBPS_OPTIONS+=" -r $OPTARG";; + s) XBPS_ARG_STRICT=yes; XBPS_OPTIONS+=" -s";; t) XBPS_ARG_TEMP_MASTERDIR=1; XBPS_OPTIONS+=" -t -C";; V) echo "xbps-src-$XBPS_SRC_VERSION $(xbps-uhelper -V)" && exit 0;; --) shift; break;; @@ -459,6 +472,7 @@ fi # Set options passed on command line, after configuration files have been read [ -n "$XBPS_ARG_BUILD_ONLY_ONE_PKG" ] && XBPS_BUILD_ONLY_ONE_PKG=yes +[ -n "$XBPS_ARG_IGNORE_BROKENNESS" ] && XBPS_IGNORE_BROKENNESS=1 [ -n "$XBPS_ARG_SKIP_REMOTEREPOS" ] && XBPS_SKIP_REMOTEREPOS=1 [ -n "$XBPS_ARG_BUILD_FORCEMODE" ] && XBPS_BUILD_FORCEMODE=1 [ -n "$XBPS_ARG_INFORMATIVE_RUN" ] && XBPS_INFORMATIVE_RUN=1 @@ -471,6 +485,7 @@ fi [ -n "$XBPS_ARG_QUIET" ] && XBPS_QUIET=1 [ -n "$XBPS_ARG_PRINT_VARIABLES" ] && XBPS_PRINT_VARIABLES="$XBPS_ARG_PRINT_VARIABLES" [ -n "$XBPS_ARG_ALT_REPOSITORY" ] && XBPS_ALT_REPOSITORY="$XBPS_ARG_ALT_REPOSITORY" +[ -n "$XBPS_ARG_STRICT" ] && XBPS_STRICT="$XBPS_ARG_STRICT" [ -n "$XBPS_ARG_CROSS_BUILD" ] && XBPS_CROSS_BUILD="$XBPS_ARG_CROSS_BUILD" [ -n "$XBPS_ARG_CHECK_PKGS" ] && XBPS_CHECK_PKGS="$XBPS_ARG_CHECK_PKGS" [ -n "$XBPS_ARG_MAKEJOBS" ] && XBPS_MAKEJOBS="$XBPS_ARG_MAKEJOBS" @@ -478,8 +493,8 @@ fi export XBPS_BUILD_ONLY_ONE_PKG XBPS_SKIP_REMOTEREPOS XBPS_BUILD_FORCEMODE \ XBPS_INFORMATIVE_RUN XBPS_TEMP_MASTERDIR XBPS_BINPKG_EXISTS \ XBPS_USE_GIT_REVS XBPS_CHECK_PKGS XBPS_DEBUG_PKGS XBPS_SKIP_DEPS \ - XBPS_KEEP_ALL XBPS_QUIET XBPS_ALT_REPOSITORY XBPS_CROSS_BUILD \ - XBPS_MAKEJOBS XBPS_PRINT_VARIABLES + XBPS_KEEP_ALL XBPS_QUIET XBPS_ALT_REPOSITORY XBPS_STRICT XBPS_CROSS_BUILD \ + XBPS_MAKEJOBS XBPS_PRINT_VARIABLES XBPS_IGNORE_BROKENNESS # The masterdir/hostdir variables are forced and readonly in chroot if [ -z "$IN_CHROOT" ]; then @@ -626,7 +641,7 @@ readonly XBPS_CMPVER_CMD="xbps-uhelper cmpver" export XBPS_SHUTILSDIR XBPS_CROSSPFDIR XBPS_TRIGGERSDIR \ XBPS_SRCPKGDIR XBPS_COMMONDIR XBPS_BUILDDIR \ - XBPS_REPOSITORY XBPS_ALT_REPOSITORY XBPS_SRCDISTDIR XBPS_DIGEST_CMD \ + XBPS_REPOSITORY XBPS_ALT_REPOSITORY XBPS_STRICT XBPS_SRCDISTDIR XBPS_DIGEST_CMD \ XBPS_UHELPER_CMD XBPS_INSTALL_CMD XBPS_QUERY_CMD XBPS_BUILD_ONLY_ONE_PKG \ XBPS_RINDEX_CMD XBPS_RECONFIGURE_CMD XBPS_REMOVE_CMD XBPS_CHECKVERS_CMD \ XBPS_CMPVER_CMD XBPS_FETCH_CMD XBPS_VERSION XBPS_BUILDSTYLEDIR \ @@ -639,7 +654,7 @@ export XBPS_SHUTILSDIR XBPS_CROSSPFDIR XBPS_TRIGGERSDIR \ XBPS_LIBEXECDIR XBPS_DISTDIR XBPS_DISTFILES_MIRROR XBPS_ALLOW_RESTRICTED \ XBPS_USE_GIT_COMMIT_DATE XBPS_PKG_COMPTYPE XBPS_REPO_COMPTYPE \ XBPS_BUILDHELPERDIR XBPS_USE_BUILD_MTIME XBPS_BUILD_ENVIRONMENT \ - XBPS_PRESERVE_PKGS + XBPS_PRESERVE_PKGS XBPS_IGNORE_BROKENNESS for i in REPOSITORY DESTDIR BUILDDIR SRCDISTDIR; do eval val="\$XBPS_$i" @@ -797,6 +812,7 @@ case "$XBPS_TARGET" in if [ -n "$CHROOT_READY" -a -z "$IN_CHROOT" ]; then chroot_handler $XBPS_TARGET $XBPS_TARGET_PKG else + check_existing_pkg chroot_sync_repodata # prevent update_base_chroot from removing the builddir/destdir update_base_chroot keep-all-force @@ -952,7 +968,10 @@ case "$XBPS_TARGET" in bulk_build ;; show-sys-updates) - bulk_build -I + bulk_build installed + ;; + show-local-updates) + bulk_build local ;; sort-dependencies) bulk_sortdeps ${@/$XBPS_TARGET/} @@ -961,7 +980,10 @@ case "$XBPS_TARGET" in bulk_update ;; update-sys) - bulk_update -I + bulk_update installed + ;; + update-local) + bulk_update local ;; update-check) read_pkg ignore-problems