commit bd2754de65a2e1a530622e59102f10136b87d397 Author: Tracker-Friendly Date: Sat Aug 5 21:19:04 2023 +0100 Migrated to codeberg diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ddae6f --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +template linguist-language=bash +common/shlibs merge=union +*.patch whitespace=-space-before-tab,-trailing-space +*.diff whitespace=-space-before-tab,-trailing-space diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ae75426 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +*.swo +*.swp +*~ +\#*# + +# exclude everything in root except files and directories from void-packages +/* +!/.gitattributes +!/.github +!/.gitignore +!/.mailmap +!/CONTRIBUTING.md +!/COPYING +!/Manual.md +!/README.md +!/common +!/etc +!/srcpkgs +!/xbps-src +etc/conf +etc/conf.* +etc/virtual +etc/xbps.d/custom diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..8e00cb2 --- /dev/null +++ b/.mailmap @@ -0,0 +1,64 @@ +# git mailmap (see git-shortlog(1)) +# format: New Name Old Name + +Tracker-Friendly Tracker-Friendly +Andrea Brancaleoni Andrea Brancaleoni +Andrea Brancaleoni Andrea Brancaleoni +Andrea Brancaleoni Andrea Brancaleoni +Andrew Benson Andrew Benson +Andrew Benson Andrewb Benson +Cameron Nemo Cameron Nemo +Cameron Nemo Cameron Nemo +Dominik Honnef Dominik Honnef +Duncaen Duncaen +Duncaen Duncan Overbruck +Duncaen Duncan Overbruck +Enno Boland Enno Boland +Enno Boland Enno Boland +Enno Boland Gottox +Jan S jan-schreib +John Regan John Regan +Jürgen Buchmüller Juergen Buchmueller +Leah Neukirchen Christian Neukirchen +Logen Kain Logen Kain +Michael Aldridge Michael Aldridge +Philipp Hirsch hanspolo +Piraty Piraty +Piraty Piraty +Stefan Mühlinghaus Stefan Mühlinghaus +bougyman bougyman +bougyman bougyman +bougyman bougyman +chrome-pepper-bot Enno Boland (bot) +onekk onekk +pancake pancake +pancake radare +xdave davehome +yopito yopito + +Duncaen Duncaen +Enno Boland Enno Boland +Juan RP Juan RP +Toyam Cox Toyam Cox +ananteris ananteris +bougyman bougyman + +Rasmus Thomsen Rasmus Thomsen +Rasmus Thomsen Rasmus Thomsen + +Renato Aguiar Renato Aguiar +Renato Aguiar Renato Aguiar +Renato Aguiar Renato Aguiar +Đoàn Trần Công Danh +Đoàn Trần Công Danh Doan Tran Cong Danh +John John +John John Zimmermann +Daniel Kolesa q66 +teldra Teldra +teldra xor +Andrew J. Hesford Andrew J. Hesford + +howtologinquickwiththirtyninecharacters It looks like the profile name is limited to 256 characters, just like most error messages here it says 255 characters but we know better, do we? As usual, let's try to fill it with meaningless words about nothing at all. Maybe I can reach its limit. End <61999526+howtologinquickwiththirtyninecharacters@users.noreply.github.com> + +Érico Nogueira Érico Rolim +Adam Gausmann Adam Gausmann diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..4e35a33 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,207 @@ +# Contributing to evolution-packages + +evolution-packages is the backbone of the Evolution Linux distribution. It contains all the definitions to build packages from source. + +This document describes how you, as a contributor, can help with adding packages, correcting bugs and adding features to evolution-packages. + +## Package Requirements + +To be included in the evolution 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 evolution 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). +Packages related to cryptocurrencies (wallets, miners, nodes, etc) are not accepted. + +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 evolution by yourself + +If you really want to get a new package or package update into evolution 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. + +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 evolution-linux `evolution-packages` git repository on GitHub and clone it: + + $ git clone git@github.com:/evolution-packages.git + +To keep your forked repository up to date, setup the `upstream` remote to pull in new changes: + + $ git remote add upstream https://github.com/evolution-linux/evolution-packages.git + $ git pull --rebase upstream master + +This can also be done with the `github-cli` tool: + + $ gh repo fork evolution-linux/evolution-packages + $ gh repo clone /evolution-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 `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/leahneukirchen/xtools) package, to create new templates: + + $ xnew pkgname subpkg1 subpkg2 ... + +Templates must have the name `evolution-packages/srcpkgs//template`, where `pkgname` is the same as the `pkgname` variable in the template. + +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. + +### 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 `evolution-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. + +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/evolution-linux/evolution-packages/commit/8ed8d41c40bf6a82cf006c7e207e05942c15bff8)). + +* for package updates, use `: update to .` ([example](https://github.com/evolution-linux/evolution-packages/commit/c92203f1d6f33026ae89f3e4c1012fb6450bbac1)). + +* for template modifications without a version change, use `: ` ([example](https://github.com/evolution-linux/evolution-packages/commit/ff39c912d412717d17232de9564f659b037e95b5)). + +* for package removals, use `: remove package` and include the removal reason in the commit body ([example](https://github.com/evolution-linux/evolution-packages/commit/4322f923bdf5d4e0eb36738d4f4717d72d0a0ca4)). + +* for changes to any other file, use `: ` ([example](https://github.com/evolution-linux/evolution-packages/commit/e00bea014c36a70d60acfa1758514b0c7cb0627d), + [example](https://github.com/evolution-linux/evolution-packages/commit/93bf159ce10d8e474da5296e5bc98350d00c6c82), [example](https://github.com/evolution-linux/evolution-packages/commit/dc62938c67b66a7ff295eab541dc37b92fb9fb78), [example](https://github.com/evolution-linux/evolution-packages/commit/e52317e939d41090562cf8f8131a68772245bdde)) + +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/evolution-linux/evolution-packages/commit/f1c45a502086ba1952f23ace9084a870ce437bc6)). + +`xbump`, available in the [xtools](https://github.com/leahneukirchen/xtools) package, can be used to commit a new or updated package: + + $ xbump + +`xrevbump`, also available in the [xtools](https://github.com/leahneukirchen/xtools) package, can be used to commit a template modification for a package: + + $ xrevbump '' + +`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 + +Once you have successfully built the package, you can [create a pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request). Pull requests are also known as PRs. + +Most pull requests should only contain a single package and dependencies which are not part of evolution-packages yet. + +If you make updates to packages containing a soname bump, you also need to update `common/shlibs` and revbump all packages that are dependant. +There should be a commit for each package revbump, and those commits should be part of the same pull request. + +When you make changes to your pull request, please *do not close and reopen your pull request*. Instead, just [forcibly git push](#review), overwriting any old commits. Closing and opening your pull requests repeatedly spams the evolution maintainers. + +#### Continuous Integration + +Pull requests are automatically submitted for Continuous Integration (CI) testing to ensure packages build and pass their tests (on native builds) on various combinations of C library and architecture. +Packages that take longer than 120 minutes or need more than 14G of storage to complete their build (for example, Firefox or the Linux kernel) will fail CI and should include `[ci skip]` in the PR title or body (the comment field when the PR is being opened) to stray from wasting CI builder time. +Use your best judgment on build times based on your local building experience. If you skip CI when submitting a PR, please build and cross-build for a variety of architectures locally, with both glibc and musl, and note your local results in PR comments. +Make sure to cover 64-bit and 32-bit architectures. + +If you notice a failure in CI that didn't happen locally, that is likely because you didn't run tests locally. +Use `./xbps-src -Q pkg ` to do so. +Some tests won't work in the CI environment or at all, and their templates should encode this information using the `make_check` variable. + +Continuous Integration will also check if the templates you have changed +comply with the our guidelines. At the moment not all packages comply with the rules, so if you update a package, it may report errors about places you haven't touched. Please feel free to fix those errors too. + +#### Review + +It's possible (and common) that a pull request will contain mistakes or reviewers will ask for additional tweaks. +Reviewers will comment on your pull request and point out which changes are needed before the pull request can be merged. + +Most PRs will have a single commit, as seen [above](#committing-your-changes), so if you need to make changes to the commit and already have a pull request open, you can use the following commands: + + $ git add + $ git commit --amend + $ git push -f + +A more powerful way of modifying commits than using `git commit --amend` is with [git-rebase](https://git-scm.com/docs/git-rebase#_interactive_mode), which allows you to join, reorder, change description of past commits and more. + +Alternatively, if there are issues with your git history, you can make another branch and push it to the existing PR: + + $ git checkout master -b + $ # do changes anew + $ git push -f : + +#### Closing the pull request + +Once you have applied all requested changes, the reviewers will merge your request. + +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, [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.evolutionlinux.org) is automatically triggered and builds +all packages in the pull request for all supported platforms. Upon completion, the packages are available to all evolution 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/evolution-linux/evolution-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 evolution-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/evolution-linux/evolution-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/evolution-linux/evolution-packages#building-packages) the package and test its functionality. diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..4def475 --- /dev/null +++ b/COPYING @@ -0,0 +1,23 @@ + Copyright (c) 2008-2020 Juan Romero Pardines and contributors + Copyright (c) 2017-2023 The Void Linux team and contributors + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Manual.md b/Manual.md new file mode 100644 index 0000000..6a00026 --- /dev/null +++ b/Manual.md @@ -0,0 +1 @@ +Evolution Linux cannot be bothered to ship with a custom Manual. If you want one, look up the one on the void website, and use that brain of your to figure stuff out. The only major difference is that evolution uses 2 main XBPS repos. diff --git a/README.md b/README.md new file mode 100644 index 0000000..b290722 --- /dev/null +++ b/README.md @@ -0,0 +1,507 @@ +## The XBPS source packages collection + +This repository contains the XBPS source packages collection to build binary packages +for the Evolution Linux distribution. + +The included `xbps-src` script will fetch and compile the sources, and install its +files into a `fake destdir` to generate XBPS binary packages that can be installed +or queried through the `xbps-install(1)` and `xbps-query(1)` utilities, respectively. + +See [Contributing](./CONTRIBUTING.md) for a general overview of how to contribute and the +[Manual](./Manual.md) for details of how to create source packages. + +### Table of Contents + +- [Requirements](#requirements) +- [Quick start](#quick-start) +- [chroot methods](#chroot-methods) +- [Install the bootstrap packages](#install-bootstrap) +- [Configuration](#configuration) +- [Directory hierarchy](#directory-hierarchy) +- [Building packages](#building-packages) +- [Package build options](#build-options) +- [Sharing and signing your local repositories](#sharing-and-signing) +- [Rebuilding and overwriting existing local packages](#rebuilding) +- [Enabling distcc for distributed compilation](#distcc) +- [Distfiles mirrors](#distfiles-mirrors) +- [Cross compiling packages for a target architecture](#cross-compiling) +- [Using xbps-src in a foreign Linux distribution](#foreign) +- [Remaking the masterdir](#remaking-masterdir) +- [Keeping your masterdir uptodate](#updating-masterdir) +- [Building 32bit packages on x86_64](#building-32bit) +- [Building packages natively for the musl C library](#building-for-musl) +- [Building evolution base-system from scratch](#building-base-system) + +### Requirements + +- GNU bash +- xbps >= 0.56 +- git(1) - unless configured to not, see etc/defaults.conf +- common POSIX utilities included by default in almost all UNIX systems +- curl(1) - required by `xbps-src update-check` + +For bootstrapping additionally: +- flock(1) - util-linux +- bsdtar or GNU tar (in that order of preference) +- install(1) - GNU coreutils +- objcopy(1), objdump(1), strip(1): binutils + +`xbps-src` requires [a utility to chroot](#chroot-methods) and bind mount existing directories +into a `masterdir` that is used as its main `chroot` directory. `xbps-src` supports +multiple utilities to accomplish this task. + +> NOTE: `xbps-src` does not allow building as root anymore. Use one of the chroot +methods. + + +### Quick start + +Clone the `evolution-packages` git repository and install the bootstrap packages: + +``` +$ git clone https://github.com/evolution-linux/evolution-packages.git +$ cd evolution-packages +$ ./xbps-src binary-bootstrap +``` + +Build a package by specifying the `pkg` target and the package name: + +``` +$ ./xbps-src pkg +``` + +Use `./xbps-src -h` to list all available targets and options. + +To build packages marked as 'restricted', modify `etc/conf`: + +``` +$ echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf +``` + +Once built, the package will be available in `hostdir/binpkgs` or an appropriate subdirectory (e.g. `hostdir/binpkgs/nonfree`). To install the package: + +``` +# xbps-install --repository hostdir/binpkgs +``` + +Alternatively, packages can be installed with the `xi` utility, from the `xtools` package. `xi` takes the repository of the current working directory into account. + +``` +# xi +``` + + +### chroot methods + +#### xbps-uunshare(1) (default) + +XBPS utility that uses `user_namespaces(7)` (part of xbps, default without `-t` flag). + +This utility requires these Linux kernel options: + +- CONFIG\_NAMESPACES +- CONFIG\_IPC\_NS +- CONFIG\_UTS\_NS +- CONFIG\_USER\_NS + +This is the default method, and if your system does not support any of the required kernel +options it will fail with `EINVAL (Invalid argument)`. + +#### xbps-uchroot(1) + +XBPS utility that uses `namespaces` and must be `setgid` (part of xbps). + +> NOTE: This is the only method that implements functionality of `xbps-src -t`, therefore the +flag ignores the choice made in configuration files and enables `xbps-uchroot`. + +This utility requires these Linux kernel options: + +- CONFIG\_NAMESPACES +- CONFIG\_IPC\_NS +- CONFIG\_PID\_NS +- CONFIG\_UTS\_NS + +Your user must be added to a special group to be able to use `xbps-uchroot(1)` and the +executable must be `setgid`: + + # chown root: xbps-uchroot + # chmod 4750 xbps-uchroot + # usermod -a -G + +> NOTE: by default in evolution you shouldn't do this manually, your user must be a member of +the `xbuilder` group. + +To enable it: + + $ cd evolution-packages + $ echo XBPS_CHROOT_CMD=uchroot >> etc/conf + +If for some reason it's erroring out as `ERROR clone (Operation not permitted)`, check that +your user is a member of the required `group` and that `xbps-uchroot(1)` utility has the +proper permissions and owner/group as explained above. + +#### bwrap(1) + +bubblewrap, sandboxing tool for unprivileged users that uses +user namespaces or setuid. +See . + +#### ethereal + +Destroys host system it runs on. Only useful for one-shot containers, i.e docker (used with CI). + + +### Install the bootstrap packages + +There is a set of packages that makes up the initial build container, called the `bootstrap`. +These packages are installed into the `masterdir` in order to create the container. + +The primary and recommended way to set up this container is using the `binary-bootstrap` +command. This will use pre-existing binary packages, either from remote `xbps` repositories +or from your local repository. + +There is also the `bootstrap` command, which will build all necessary `bootstrap` packages from +scratch. This is usually not recommended, since those packages are built using your host system's +toolchain and are neither fully featured nor reproducible (your host system may influence the +build) and thus should only be used as a stage 0 for bootstrapping new Evolution systems. + +If you still choose to use `bootstrap`, use the resulting stage 0 container to rebuild all +`bootstrap` packages again, then use `binary-bootstrap` (stage 1) and rebuild the `bootstrap` +packages once more (to gain stage 2, and then use `binary-bootstrap` again). Once you've done +that, you will have a `bootstrap` set equivalent to using `binary-bootstrap` in the first place. + +Also keep in mind that a full source `bootstrap` is time consuming and will require having an +assortment of utilities installed in your host system, such as `binutils`, `gcc`, `perl`, +`texinfo` and others. + +### Configuration + +The `etc/defaults.conf` file contains the possible settings that can be overridden +through the `etc/conf` configuration file for the `xbps-src` utility; if that file +does not exist, will try to read configuration settings from `$XDG_CONFIG_HOME/xbps-src.conf`, `~/.config/xbps-src.conf`, `~/.xbps-src.conf`. + +If you want to customize default `CFLAGS`, `CXXFLAGS` and `LDFLAGS`, don't override +those defined in `etc/defaults.conf`, set them on `etc/conf` instead i.e: + + $ echo 'XBPS_CFLAGS="your flags here"' >> etc/conf + $ echo 'XBPS_LDFLAGS="your flags here"' >> etc/conf + +Native and cross compiler/linker flags are set per architecture in `common/build-profiles` +and `common/cross-profiles` respectively. Ideally those settings are good enough by default, +and there's no need to set your own unless you know what you are doing. + +#### Virtual packages + +The `etc/defaults.virtual` file contains the default replacements for virtual packages, +used as dependencies in the source packages tree. + +If you want to customize those replacements, copy `etc/defaults.virtual` to `etc/virtual` +and edit it accordingly to your needs. + + +### Directory hierarchy + +The following directory hierarchy is used with a default configuration file: + + /evolution-packages + |- common + |- etc + |- srcpkgs + | |- xbps + | |- template + | + |- hostdir + | |- binpkgs ... + | |- ccache ... + | |- distcc- ... + | |- repocache ... + | |- sources ... + | + |- masterdir + | |- builddir -> ... + | |- destdir -> ... + | |- host -> bind mounted from + | |- evolution-packages -> bind mounted from + + +The description of these directories is as follows: + + - `masterdir`: master directory to be used as rootfs to build/install packages. + - `builddir`: to unpack package source tarballs and where packages are built. + - `destdir`: to install packages, aka **fake destdir**. + - `hostdir/ccache`: to store ccache data if the `XBPS_CCACHE` option is enabled. + - `hostdir/distcc-`: to store distcc data if the `XBPS_DISTCC` option is enabled. + - `hostdir/repocache`: to store binary packages from remote repositories. + - `hostdir/sources`: to store package sources. + - `hostdir/binpkgs`: local repository to store generated binary packages. + + +### Building packages + +The simplest form of building package is accomplished by running the `pkg` target in `xbps-src`: + +``` +$ cd evolution-packages +$ ./xbps-src pkg +``` + +When the package and its required dependencies are built, the binary packages will be created +and registered in the default local repository at `hostdir/binpkgs`; the path to this local repository can be added to +any xbps configuration file (see xbps.d(5)) or by explicitly appending them via cmdline, i.e: + + $ xbps-install --repository=hostdir/binpkgs ... + $ xbps-query --repository=hostdir/binpkgs ... + +By default **xbps-src** will try to resolve package dependencies in this order: + + - If a dependency exists in the local repository, use it (`hostdir/binpkgs`). + - If a dependency exists in a remote repository, use it. + - If a dependency exists in a source package, use it. + +It is possible to avoid using remote repositories completely by using the `-N` flag. + +> The default local repository may contain multiple *sub-repositories*: `debug`, `multilib`, etc. + + +### Package build options + +The supported build options for a source package can be shown with `xbps-src show-options`: + + $ ./xbps-src show-options foo + +Build options can be enabled with the `-o` flag of `xbps-src`: + + $ ./xbps-src -o option,option1 pkg foo + +Build options can be disabled by prefixing them with `~`: + + $ ./xbps-src -o ~option,~option1 pkg foo + +Both ways can be used together to enable and/or disable multiple options +at the same time with `xbps-src`: + + $ ./xbps-src -o option,~option1,~option2 pkg foo + +The build options can also be shown for binary packages via `xbps-query(1)`: + + $ xbps-query -R --property=build-options foo + +> NOTE: if you build a package with a custom option, and that package is available +in an official void / evolution repository, an update will ignore those options. Put that package +on `hold` mode via `xbps-pkgdb(1)`, i.e `xbps-pkgdb -m hold foo` to ignore updates +with `xbps-install -u`. Once the package is on `hold`, the only way to update it +is by declaring it explicitly: `xbps-install -u foo`. + +Permanent global package build options can be set via `XBPS_PKG_OPTIONS` variable in the +`etc/conf` configuration file. Per package build options can be set via +`XBPS_PKG_OPTIONS_`. + +> NOTE: if `pkgname` contains `dashes`, those should be replaced by `underscores` +i.e `XBPS_PKG_OPTIONS_xorg_server=opt`. + +The list of supported package build options and its description is defined in the +`common/options.description` file or in the `template` file. + + +### Sharing and signing your local repositories + +To share a local repository remotely it's mandatory to sign it and the binary packages +stored on it. This is accomplished with the `xbps-rindex(1)` utility. + +First a RSA key must be created with `openssl(1)` or `ssh-keygen(1)`: + + $ openssl genrsa -des3 -out privkey.pem 4096 + +or + + $ ssh-keygen -t rsa -b 4096 -m PEM -f privkey.pem + +> Only RSA keys in PEM format are currently accepted by xbps. + +Once the RSA private key is ready you can use it to initialize the repository metadata: + + $ xbps-rindex --sign --signedby "I'm Groot" --privkey privkey.pem $PWD/hostdir/binpkgs + +And then make a signature per package: + + $ xbps-rindex --sign-pkg --privkey privkey.pem $PWD/hostdir/binpkgs/*.xbps + +> If --privkey is unset, it defaults to `~/.ssh/id_rsa`. + +If the RSA key was protected with a passphrase you'll have to type it, or alternatively set +it via the `XBPS_PASSPHRASE` environment variable. + +Once the binary packages have been signed, check if the repository contains the appropriate `hex fingerprint`: + + $ xbps-query --repository=hostdir/binpkgs -vL + ... + +Each time a binary package is created, a package signature must be created with `--sign-pkg`. + +> It is not possible to sign a repository with multiple RSA keys. + + +### Rebuilding and overwriting existing local packages + +Packages are overwritten on every build to make getting package with changed build options easy. +To make xbps-src skip build and preserve first package build with given version and revision, +same as in official void / evolution repository, set `XBPS_PRESERVE_PKGS=yes` in `etc/conf` file. + +Reinstalling a package in your target `rootdir` can be easily done too: + + $ xbps-install --repository=/path/to/local/repo -yf xbps-0.25_1 + +Using `-f` flag twice will overwrite configuration files. + +> Please note that the `package expression` must be properly defined to explicitly pick up +the package from the desired repository. + + +### Enabling distcc for distributed compilation + +Setup the slaves (machines that will compile the code): + + # xbps-install -Sy distcc + +Modify the configuration to allow your local network machines to use distcc (e.g. `192.168.2.0/24`): + + # echo "192.168.2.0/24" >> /etc/distcc/clients.allow + +Enable and start the `distccd` service: + + # ln -s /etc/sv/distccd /var/service + +Install distcc on the host (machine that executes xbps-src) as well. +Unless you want to use the host as slave from other machines, there is no need +to modify the configuration. + +On the host you can now enable distcc in the `evolution-packages/etc/conf` file: + + XBPS_DISTCC=yes + XBPS_DISTCC_HOSTS="localhost/2 --localslots_cpp=24 192.168.2.101/9 192.168.2.102/2" + XBPS_MAKEJOBS=16 + +The example values assume a localhost CPU with 4 cores of which at most 2 are used for compiler jobs. +The number of slots for preprocessor jobs is set to 24 in order to have enough preprocessed data for other CPUs to compile. +The slave 192.168.2.101 has a CPU with 8 cores and the /9 for the number of jobs is a saturating choice. +The slave 192.168.2.102 is set to run at most 2 compile jobs to keep its load low, even if its CPU has 4 cores. +The XBPS_MAKEJOBS setting is increased to 16 to account for the possible parallelism (2 + 9 + 2 + some slack). + + +### Distfiles mirror(s) + +In etc/conf you may optionally define a mirror or a list of mirrors to search for distfiles. + + $ echo 'XBPS_DISTFILES_MIRROR="ftp://192.168.100.5/gentoo/distfiles"' >> etc/conf + +If more than one mirror is to be searched, you can either specify multiple URLs separated +with blanks, or add to the variable like this. Remeber, offically, Evolution Linux uses 2 REPOS. This means not all packages are included. + + $ echo 'XBPS_DISTFILES_MIRROR+=" https://sources.voidlinux.org/"' >> etc/conf + +Make sure to put the blank after the first double quote in this case. + +The mirrors are searched in order for the distfiles to build a package until the +checksum of the downloaded file matches the one specified in the template. + +Ultimately, if no mirror carries the distfile, or in case all downloads failed the +checksum verification, the original download location is used. + +If you use `uchroot` for your XBPS_CHROOT_CMD, you may also specify a local path +using the `file://` prefix or simply an absolute path on your build host (e.g. /mnt/distfiles). +Mirror locations specified this way are bind mounted inside the chroot environment +under $XBPS_MASTERDIR and searched for distfiles just the same as remote locations. + + +### Cross compiling packages for a target architecture + +Currently `xbps-src` can cross build packages for some target architectures with a cross compiler. +The supported target is shown with `./xbps-src -h`. + +If a source package has been adapted to be **cross buildable** `xbps-src` will automatically build the binary package(s) with a simple command: + + $ ./xbps-src -a pkg + +If the build for whatever reason fails, might be a new build issue or simply because it hasn't been adapted to be **cross compiled**. + + +### Using xbps-src in a foreign Linux distribution + +xbps-src can be used in any recent Linux distribution matching the CPU architecture. + +To use xbps-src in your Linux distribution use the following instructions. Let's start downloading the xbps static binaries: + + $ wget http://repo-default.voidlinux.org/static/xbps-static-latest.-musl.tar.xz + $ mkdir ~/XBPS + $ tar xvf xbps-static-latest.-musl.tar.xz -C ~/XBPS + $ export PATH=~/XBPS/usr/bin:$PATH + +If `xbps-uunshare` does not work because of lack of `user_namespaces(7)` support, +try other [chroot methods](#chroot-methods). + +Clone the `evolution-packages` git repository: + + $ git clone https://github.com/evolution-linux/evolution-packages.git + +and `xbps-src` should be fully functional; just start the `bootstrap` process, i.e: + + $ ./xbps-src binary-bootstrap + +The default masterdir is created in the current working directory, i.e `evolution-packages/masterdir`. + + +### Remaking the masterdir + +If for some reason you must update xbps-src and the `bootstrap-update` target is not enough, it's possible to recreate a masterdir with two simple commands (please note that `zap` keeps your `ccache/distcc/host` directories intact): + + $ ./xbps-src zap + $ ./xbps-src binary-bootstrap + + +### Keeping your masterdir uptodate + +Sometimes the bootstrap packages must be updated to the latest available version in repositories, this is accomplished with the `bootstrap-update` target: + + $ ./xbps-src bootstrap-update + + +### Building 32bit packages on x86_64 + +Two ways are available to build 32bit packages on x86\_64: + + - native mode with a 32bit masterdir (recommended, used in official repository) + - cross compilation mode to i686 [target](#cross-compiling) + +The canonical mode (native) needs a new x86 `masterdir`: + + $ ./xbps-src -m masterdir-x86 binary-bootstrap i686 + $ ./xbps-src -m masterdir-x86 ... + + +### Building packages natively for the musl C library + +Canonical way of building packages for same architecture but different C library is through dedicated masterdir. +To build for x86_64-musl on glibc x86_64 system, prepare a new masterdir with the musl packages: + + $ ./xbps-src -m masterdir-x86_64-musl binary-bootstrap x86_64-musl + +Your new masterdir is now ready to build packages natively for the musl C library: + + $ ./xbps-src -m masterdir-x86_64-musl pkg ... + + +### Building evolution base-system from scratch + +To rebuild all packages in `base-system` for your native architecture: + + $ ./xbps-src -N pkg base-system + +It's also possible to cross compile everything from scratch: + + $ ./xbps-src -a -N pkg base-system + +Once the build has finished, you can specify the path to the local repository to `void-mklive`, i.e: + + # cd void-mklive + # make + # ./mklive.sh ... -r /path/to/hostdir/binpkgs diff --git a/common/build-helper/cmake-wxWidgets-gtk3.sh b/common/build-helper/cmake-wxWidgets-gtk3.sh new file mode 100644 index 0000000..7d813dc --- /dev/null +++ b/common/build-helper/cmake-wxWidgets-gtk3.sh @@ -0,0 +1,6 @@ +if [ "$CROSS_BUILD" ]; then + export WX_CONFIG=${XBPS_WRAPPERDIR}/wx-config-gtk3 +else + export WX_CONFIG=/usr/bin/wx-config-gtk3 +fi +configure_args+=" -DwxWidgets_CONFIG_EXECUTABLE=${WX_CONFIG} " diff --git a/common/build-helper/gir.sh b/common/build-helper/gir.sh new file mode 100644 index 0000000..70699ad --- /dev/null +++ b/common/build-helper/gir.sh @@ -0,0 +1,42 @@ +# +# gir - build-helper for gobject-introspection +# +# This build-helper is used for packages that make use of +# the GObject introspection middleware layer. +# + +# Check if the 'gir' build_option is set or if there is no +# 'gir' build_option. +if [ "$build_option_gir" ] || [[ $build_options != *"gir"* ]]; then + if [[ $hostmakedepends != *"gobject-introspection"* ]]; then + # Provide the host tooling, g-ir-scanner, g-ir-compiler + # and its wrappers. + hostmakedepends+=" gobject-introspection" + fi + + if [ "$CROSS_BUILD" ]; then + # Required for running binaries produced from g-ir-compiler + # via g-ir-scanner-qemuwrapper + hostmakedepends+=" qemu-user-static" + + # Required for running the g-ir-scanner-lddwrapper + hostmakedepends+=" prelink-cross" + + if [[ $makedepends != *"gobject-introspection"* ]]; then + # Provide basic .gir types like GLib, GObject, DBus, Gio, cairo + # and tooling like g-ir-compiler + makedepends+=" gobject-introspection" + fi + + export VAPIGEN_VAPIDIRS=${XBPS_CROSS_BASE}/usr/share/vala/vapi + export VAPIGEN_GIRDIRS=${XBPS_CROSS_BASE}/usr/share/gir-1.0 + + # Provide some packages in hostmakedepends if they are in makedepends + for f in gtk+3-devel python3-gobject-devel; do + if [[ $makedepends == *"${f}"* ]]; then + hostmakedepends+=" ${f}" + fi + done + unset f + fi +fi diff --git a/common/build-helper/numpy.sh b/common/build-helper/numpy.sh new file mode 100644 index 0000000..74c6421 --- /dev/null +++ b/common/build-helper/numpy.sh @@ -0,0 +1,37 @@ +# +# numpy - build-helper for packages that compile against python3-numpy +# +# This build-helper makes sure packages can find python3-numpy libraries and +# headers on the target architecture rather than the host, as well as making +# sure the gfortran cross compiler is properly identified. + +# Even for cross compilation, numpy should be available on the host to ensure +# that the host interpreter doesn't complain about missing deps +if [[ $hostmakedepends != *"python3-numpy"* ]]; then + hostmakedepends+=" python3-numpy" +fi + +if [ "$CROSS_BUILD" ]; then + if [[ $makedepends != *"python3-numpy"* ]]; then + makedepends+=" python3-numpy" + fi + + # python3-setuptools finds numpy libs and headers on the host first; + # adding search paths up front allows the target to take priority + CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_sitelib}/numpy/core/include" + LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_sitelib}/numpy/core/lib" + LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_sitelib}/numpy/random/lib" + + # distutils from python3-numpy looks to environment variables F77 and + # F90 rather than the XBPS-set FC + export F77="${FC}" + export F90="${FC}" + + # When compiling and linking FORTRAN, distutils from python3-numpy + # refuses respect any linker name except "gfortran"; symlink to the + # cross-compiler to that the right linker and compiler will be used + if _gfortran=$(command -v "${FC}"); then + ln -sf "${_gfortran}" "${XBPS_WRAPPERDIR}/gfortran" + fi + unset _gfortran +fi 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-helper/qemu.sh b/common/build-helper/qemu.sh new file mode 100644 index 0000000..d6a4342 --- /dev/null +++ b/common/build-helper/qemu.sh @@ -0,0 +1,14 @@ +if [ "$CROSS_BUILD" ]; then + export QEMU_LD_PREFIX=${XBPS_CROSS_BASE} + if [[ $hostmakedepends != *"qemu-user-static"* ]]; then + hostmakedepends+=" qemu-user-static" + fi +fi + +vtargetrun() { + if [ "$CROSS_BUILD" ]; then + "/usr/bin/qemu-${XBPS_TARGET_QEMU_MACHINE}-static" "$@" + else + "$@" + fi +} diff --git a/common/build-helper/qmake.sh b/common/build-helper/qmake.sh new file mode 100644 index 0000000..bdda2de --- /dev/null +++ b/common/build-helper/qmake.sh @@ -0,0 +1,95 @@ +# This build-helper sets up qmake’s cross environment +# in cases the build-style is mixed, +# e.g. when in a gnu-configure style the configure +# script calls qmake or a makefile in a gnu-makefile style, +# respectively. + +if [ "$CROSS_BUILD" ]; then + mkdir -p "${XBPS_WRAPPERDIR}/target-spec/linux-g++" + cat > "${XBPS_WRAPPERDIR}/target-spec/linux-g++/qmake.conf" <<_EOF +MAKEFILE_GENERATOR = UNIX +CONFIG += incremental no_qt_rpath +QMAKE_INCREMENTAL_STYLE = sublib + +include(/usr/lib/qt5/mkspecs/common/linux.conf) +include(/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf) +include(/usr/lib/qt5/mkspecs/common/g++-unix.conf) + +QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qconfig.pri +QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qmodule.pri +QMAKEMODULES = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/modules +QMAKE_CC = ${CC} +QMAKE_CXX = ${CXX} +QMAKE_LINK = ${CXX} +QMAKE_LINK_C = ${CC} +QMAKE_LINK_SHLIB = ${CXX} + +QMAKE_AR = ${XBPS_CROSS_TRIPLET}-gcc-ar cqs +QMAKE_OBJCOPY = ${OBJCOPY} +QMAKE_NM = ${NM} -P +QMAKE_STRIP = ${STRIP} + +QMAKE_CFLAGS = ${CFLAGS} +QMAKE_CXXFLAGS = ${CXXFLAGS} +QMAKE_LFLAGS = ${LDFLAGS} +load(qt_config) +_EOF + echo "#include \"${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h\"" > "${XBPS_WRAPPERDIR}/target-spec/linux-g++/qplatformdefs.h" + + cat > "${XBPS_WRAPPERDIR}/qt.conf" <<_EOF +[Paths] +Sysroot=${XBPS_CROSS_BASE} +Prefix=${XBPS_CROSS_BASE}/usr +ArchData=${XBPS_CROSS_BASE}/usr/lib/qt5 +Data=${XBPS_CROSS_BASE}/usr/share/qt5 +Documentation=${XBPS_CROSS_BASE}/usr/share/doc/qt5 +Headers=${XBPS_CROSS_BASE}/usr/include/qt5 +Libraries=${XBPS_CROSS_BASE}/usr/lib +LibraryExecutables=/usr/lib/qt5/libexec +Binaries=/usr/lib/qt5/bin +Tests=${XBPS_CROSS_BASE}/usr/tests +Plugins=/usr/lib/qt5/plugins +Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/imports +Qml2Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/qml +Translations=${XBPS_CROSS_BASE}/usr/share/qt5/translations +Settings=${XBPS_CROSS_BASE}/etc/xdg +Examples=${XBPS_CROSS_BASE}/usr/share/qt5/examples +HostPrefix=/usr +HostData=/usr/lib/qt5 +HostBinaries=/usr/lib/qt5/bin +HostLibraries=/usr/lib +Spec=linux-g++ +TargetSpec=$XBPS_WRAPPERDIR/target-spec/linux-g++ +_EOF + + # create the qmake-wrapper here because it only + # makes sense together with the qmake build-helper + # and not to interfere with e.g. the qmake build-style + # + # + base flags will be picked up from QMAKE_{C,CXX,LD}FLAGS + # + hardening flags will be picked up from environment variables + cat > "${XBPS_WRAPPERDIR}/qmake" <<_EOF +#!/bin/sh +exec /usr/lib/qt5/bin/qmake "\$@" -qtconf "${XBPS_WRAPPERDIR}/qt.conf" \\ + QMAKE_CFLAGS+="\${CFLAGS}" \\ + QMAKE_CXXFLAGS+="\${CXXFLAGS}" \\ + QMAKE_LFLAGS+="\${LDFLAGS}" +_EOF +else + cat > "${XBPS_WRAPPERDIR}/qmake" <<_EOF +#!/bin/sh +exec /usr/lib/qt5/bin/qmake \ + "\$@" \ + PREFIX=/usr \ + QT_INSTALL_PREFIX=/usr \ + LIB=/usr/lib \ + QMAKE_CC="$CC" QMAKE_CXX="$CXX" \ + QMAKE_LINK="$CXX" QMAKE_LINK_C="$CC" \ + QMAKE_CFLAGS+="\${CFLAGS}" \ + QMAKE_CXXFLAGS+="\${CXXFLAGS}" \ + QMAKE_LFLAGS+="\${LDFLAGS}" \ + CONFIG+=no_qt_rpath +_EOF +fi +chmod 755 ${XBPS_WRAPPERDIR}/qmake +cp -p ${XBPS_WRAPPERDIR}/qmake{,-qt5} diff --git a/common/build-helper/rust.sh b/common/build-helper/rust.sh new file mode 100644 index 0000000..f689f7c --- /dev/null +++ b/common/build-helper/rust.sh @@ -0,0 +1,59 @@ +# Define equivalent of TOML config in environment +# [build] +# jobs = $XBPS_MAKEJOBS +export CARGO_BUILD_JOBS="$XBPS_MAKEJOBS" +export CARGO_HOME="/host/cargo" + +if [ "$CROSS_BUILD" ]; then + # Define equivalent of TOML config in environment + # [target.${RUST_TARGET}] + # linker = ${CC} + _XBPS_CROSS_RUST_TARGET_ENV="${XBPS_CROSS_RUST_TARGET^^}" + _XBPS_CROSS_RUST_TARGET_ENV="${_XBPS_CROSS_RUST_TARGET_ENV//-/_}" + export CARGO_TARGET_${_XBPS_CROSS_RUST_TARGET_ENV}_LINKER="$CC" + unset _XBPS_CROSS_RUST_TARGET_ENV + + # Define equivalent of TOML config in environment + # [build] + # target = ${RUST_TARGET} + export CARGO_BUILD_TARGET="$RUST_TARGET" + + # If cc-rs needs to build host binaries, it guesses the compiler and + # uses default (wrong) flags unless they are specified explicitly; + # innocuous flags are used here just to disable its defaults + export HOST_CC="gcc" + export HOST_CFLAGS="-O2" + + # Crates that use bindgen via build.rs are not cross-aware unless these are set + export BINDGEN_EXTRA_CLANG_ARGS+=" --sysroot=${XBPS_CROSS_BASE} -I${XBPS_CROSS_BASE}/usr/include" +else + unset CARGO_BUILD_TARGET +fi + +# For cross-compiling rust -sys crates +export PKG_CONFIG_ALLOW_CROSS=1 + +# gettext-rs +export GETTEXT_BIN_DIR=/usr/bin +export GETTEXT_LIB_DIR="${XBPS_CROSS_BASE}/usr/lib/gettext" +export GETTEXT_INCLUDE_DIR="${XBPS_CROSS_BASE}/usr/include" + +# libssh2-sys +export LIBSSH2_SYS_USE_PKG_CONFIG=1 + +# sodium-sys +export SODIUM_LIB_DIR="${XBPS_CROSS_BASE}/usr/include" +export SODIUM_INC_DIR="${XBPS_CROSS_BASE}/usr/lib" +export SODIUM_SHARED=1 + +# openssl-sys +export OPENSSL_NO_VENDOR=1 + +# pcre2-sys, only necessary for musl targets +export PCRE2_SYS_STATIC=0 + +# zstd-sys +export ZSTD_SYS_USE_PKG_CONFIG=1 + +# onig-sys +export RUSTONIG_SYSTEM_LIBONIG=1 diff --git a/common/build-profiles/README b/common/build-profiles/README new file mode 100644 index 0000000..41b18fc --- /dev/null +++ b/common/build-profiles/README @@ -0,0 +1,17 @@ +BUILD PROFILES +============== + +This directory contains build profiles to set properties on native builds +for a specific architecture: + + - XBPS_TRIPLET (the compiler triplet) + - XBPS_CFLAGS (C compiler flags for host compiler) + - XBPS_CXXFLAGS (C++ compiler flags for the host compiler) + - XBPS_FFLAGS (Fortran compiler flags for the host compiler) + - XBPS_RUST_TARGET (the compiler triplet for usage by cargo) + - XBPS_ZIG_TARGET (the arch-os-abi target triplet for zig) + - XBPS_ZIG_CPU (the cpu/feature set for zig) + +These properties are also set in a cross environment, but the compiler +flags are not added into the global flags. XBPS_RUST_TARGET is also +exposed as RUST_BUILD instead of RUST_TARGET. diff --git a/common/build-profiles/aarch64-musl.sh b/common/build-profiles/aarch64-musl.sh new file mode 100644 index 0000000..8427d04 --- /dev/null +++ b/common/build-profiles/aarch64-musl.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-march=armv8-a" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="aarch64-unknown-linux-musl" +XBPS_RUST_TARGET="$XBPS_TRIPLET" +XBPS_ZIG_TARGET="aarch64-linux-musl" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-profiles/aarch64.sh b/common/build-profiles/aarch64.sh new file mode 100644 index 0000000..59855df --- /dev/null +++ b/common/build-profiles/aarch64.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-march=armv8-a" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="aarch64-unknown-linux-gnu" +XBPS_RUST_TARGET="$XBPS_TRIPLET" +XBPS_ZIG_TARGET="aarch64-linux-gnu" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-profiles/armv6l-musl.sh b/common/build-profiles/armv6l-musl.sh new file mode 100644 index 0000000..b46941a --- /dev/null +++ b/common/build-profiles/armv6l-musl.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-march=armv6 -mfpu=vfp -mfloat-abi=hard" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="armv6l-linux-musleabihf" +XBPS_RUST_TARGET="arm-unknown-linux-musleabihf" +XBPS_ZIG_TARGET="arm-linux-musleabihf" +XBPS_ZIG_CPU="generic+v6" diff --git a/common/build-profiles/armv6l.sh b/common/build-profiles/armv6l.sh new file mode 100644 index 0000000..3b18223 --- /dev/null +++ b/common/build-profiles/armv6l.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-march=armv6 -mfpu=vfp -mfloat-abi=hard" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="armv6l-unknown-linux-gnueabihf" +XBPS_RUST_TARGET="arm-unknown-linux-gnueabihf" +XBPS_ZIG_TARGET="arm-linux-gnueabihf" +XBPS_ZIG_CPU="generic+v6" diff --git a/common/build-profiles/armv7l-musl.sh b/common/build-profiles/armv7l-musl.sh new file mode 100644 index 0000000..dbf3eb0 --- /dev/null +++ b/common/build-profiles/armv7l-musl.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard" +XBPS_TARGET_CXXFLAGS="$XBPS_CXXFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="armv7l-linux-musleabihf" +XBPS_RUST_TARGET="armv7-unknown-linux-musleabihf" +XBPS_ZIG_TARGET="arm-linux-musleabihf" +XBPS_ZIG_CPU="generic+v7a+vfp3" diff --git a/common/build-profiles/armv7l.sh b/common/build-profiles/armv7l.sh new file mode 100644 index 0000000..141639b --- /dev/null +++ b/common/build-profiles/armv7l.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="armv7l-unknown-linux-gnueabihf" +XBPS_RUST_TARGET="armv7-unknown-linux-gnueabihf" +XBPS_CROSS_ZIG_TARGET="arm-linux-gnueabihf" +XBPS_CROSS_ZIG_CPU="generic+v7a+vfp3" diff --git a/common/build-profiles/bootstrap.sh b/common/build-profiles/bootstrap.sh new file mode 100644 index 0000000..abc0c37 --- /dev/null +++ b/common/build-profiles/bootstrap.sh @@ -0,0 +1,3 @@ +XBPS_CFLAGS="-O2 -pipe" +XBPS_CXXFLAGS="$XBPS_CFLAGS" +XBPS_FFLAGS="-fPIC -pipe" diff --git a/common/build-profiles/i686-musl.sh b/common/build-profiles/i686-musl.sh new file mode 100644 index 0000000..a607ef6 --- /dev/null +++ b/common/build-profiles/i686-musl.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mtune=i686" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="i686-linux-musl" +XBPS_RUST_TARGET="i686-unknown-linux-musl" +XBPS_ZIG_TARGET="i686-linux-musl" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-profiles/i686.sh b/common/build-profiles/i686.sh new file mode 100644 index 0000000..ac69fb0 --- /dev/null +++ b/common/build-profiles/i686.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mtune=i686" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="i686-pc-linux-gnu" +XBPS_RUST_TARGET="i686-unknown-linux-gnu" +XBPS_ZIG_TARGET="i386-linux-gnu" +XBPS_ZIG_CPU="_i686+sse2" diff --git a/common/build-profiles/ppc-musl.sh b/common/build-profiles/ppc-musl.sh new file mode 100644 index 0000000..60b2e70 --- /dev/null +++ b/common/build-profiles/ppc-musl.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mtune=G4" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="powerpc-linux-musl" +XBPS_RUST_TARGET="powerpc-unknown-linux-musl" +XBPS_ZIG_TARGET="powerpc-linux-musl" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-profiles/ppc.sh b/common/build-profiles/ppc.sh new file mode 100644 index 0000000..b7a1131 --- /dev/null +++ b/common/build-profiles/ppc.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mtune=G4" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="powerpc-linux-gnu" +XBPS_RUST_TARGET="powerpc-unknown-linux-gnu" +XBPS_ZIG_TARGET="powerpc-linux-gnu" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-profiles/ppc64-musl.sh b/common/build-profiles/ppc64-musl.sh new file mode 100644 index 0000000..4ec7430 --- /dev/null +++ b/common/build-profiles/ppc64-musl.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mcpu=970 -mtune=power9" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="powerpc64-unknown-linux-musl" +XBPS_RUST_TARGET="$XBPS_TRIPLET" +XBPS_ZIG_TARGET="powerpc64-linux-musl" +XBPS_ZIG_CPU="970" diff --git a/common/build-profiles/ppc64.sh b/common/build-profiles/ppc64.sh new file mode 100644 index 0000000..1d0c04a --- /dev/null +++ b/common/build-profiles/ppc64.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mcpu=970 -mtune=power9" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="powerpc64-unknown-linux-gnu" +XBPS_RUST_TARGET="$XBPS_TRIPLET" +XBPS_ZIG_TARGET="powerpc64-linux-gnu" +XBPS_ZIG_CPU="970" diff --git a/common/build-profiles/ppc64le-musl.sh b/common/build-profiles/ppc64le-musl.sh new file mode 100644 index 0000000..8d2db1b --- /dev/null +++ b/common/build-profiles/ppc64le-musl.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mtune=power9" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="powerpc64le-unknown-linux-musl" +XBPS_RUST_TARGET="$XBPS_TRIPLET" +XBPS_ZIG_TARGET="powerpc64le-linux-musl" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-profiles/ppc64le.sh b/common/build-profiles/ppc64le.sh new file mode 100644 index 0000000..8f0e735 --- /dev/null +++ b/common/build-profiles/ppc64le.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mtune=power9" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="powerpc64le-unknown-linux-gnu" +XBPS_RUST_TARGET="$XBPS_TRIPLET" +XBPS_ZIG_TARGET="powerpc64le-linux-gnu" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-profiles/ppcle-musl.sh b/common/build-profiles/ppcle-musl.sh new file mode 100644 index 0000000..c8d7e28 --- /dev/null +++ b/common/build-profiles/ppcle-musl.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mcpu=power8 -mtune=power9" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="powerpcle-linux-musl" +XBPS_RUST_TARGET="powerpcle-unknown-linux-musl" +XBPS_ZIG_TARGET="powerpcle-linux-musl" +XBPS_ZIG_CPU="pwr8" diff --git a/common/build-profiles/ppcle.sh b/common/build-profiles/ppcle.sh new file mode 100644 index 0000000..7eccadf --- /dev/null +++ b/common/build-profiles/ppcle.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mcpu=power8 -mtune=power9" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="powerpcle-linux-gnu" +XBPS_RUST_TARGET="powerpcle-unknown-linux-gnu" +XBPS_ZIG_TARGET="powerpcle-linux-gnu" +XBPS_ZIG_CPU="pwr8" diff --git a/common/build-profiles/riscv64.sh b/common/build-profiles/riscv64.sh new file mode 100644 index 0000000..02ef7f8 --- /dev/null +++ b/common/build-profiles/riscv64.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-march=rv64imafdc" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="riscv64-unknown-linux-gnu" +XBPS_RUST_TARGET="riscv64gc-unknown-linux-gnu" +XBPS_ZIG_TARGET="riscv64-linux-gnu" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-profiles/x86_64-musl.sh b/common/build-profiles/x86_64-musl.sh new file mode 100644 index 0000000..538baea --- /dev/null +++ b/common/build-profiles/x86_64-musl.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mtune=generic" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="x86_64-unknown-linux-musl" +XBPS_RUST_TARGET="${XBPS_TRIPLET}" +XBPS_ZIG_TARGET="x86_64-linux-musl" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-profiles/x86_64.sh b/common/build-profiles/x86_64.sh new file mode 100644 index 0000000..388b556 --- /dev/null +++ b/common/build-profiles/x86_64.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-mtune=generic" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="x86_64-unknown-linux-gnu" +XBPS_RUST_TARGET="${XBPS_TRIPLET}" +XBPS_ZIG_TARGET="x86_64-linux-gnu" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-style/R-cran.sh b/common/build-style/R-cran.sh new file mode 100644 index 0000000..ab1acc2 --- /dev/null +++ b/common/build-style/R-cran.sh @@ -0,0 +1,7 @@ +# +# This helper is for templates using R-cran. +# +do_install() { + mkdir -p ${DESTDIR}/usr/lib/R/library + ( cd .. && R CMD INSTALL -l ${DESTDIR}/usr/lib/R/library ${pkgname#R-cran-} ) +} diff --git a/common/build-style/README b/common/build-style/README new file mode 100644 index 0000000..8ed990b --- /dev/null +++ b/common/build-style/README @@ -0,0 +1,12 @@ +BUILD STYLES +============ + +These shell snippets provide support for multiple build systems, i.e GNU configure, +CMake, etc. A build style file must provide at least the following functions: + + - do_configure + - do_build + - do_install + +If a source package defines its own do_xxx() function, the function defined in +the build style file is simply ignored. diff --git a/common/build-style/cargo.sh b/common/build-style/cargo.sh new file mode 100644 index 0000000..751911d --- /dev/null +++ b/common/build-style/cargo.sh @@ -0,0 +1,27 @@ +# +# This helper is for building rust projects which use cargo for building +# + +do_build() { + : ${make_cmd:=cargo auditable} + + ${make_cmd} build --release --locked --target ${RUST_TARGET} ${configure_args} +} + +do_check() { + : ${make_cmd:=cargo auditable} + + ${make_check_pre} ${make_cmd} test --release --locked --target ${RUST_TARGET} \ + ${configure_args} ${make_check_args} +} + +do_install() { + : ${make_cmd:=cargo auditable} + : ${make_install_args:=--path .} + + ${make_cmd} install --target ${RUST_TARGET} --root="${DESTDIR}/usr" \ + --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 new file mode 100644 index 0000000..43750ad --- /dev/null +++ b/common/build-style/cmake.sh @@ -0,0 +1,137 @@ +# +# This helper is for templates using cmake. +# +do_configure() { + local cmake_args= + [ ! -d ${cmake_builddir:=build} ] && mkdir -p ${cmake_builddir} + cd ${cmake_builddir} + + if [ -z "$CHROOT_READY" ]; then + cat >bootstrap.cmake <<_EOF +SET(CMAKE_SYSTEM_NAME Linux) +SET(CMAKE_SYSTEM_VERSION 1) + +SET(CMAKE_C_COMPILER ${CC}) +SET(CMAKE_CXX_COMPILER ${CXX}) + +SET(CMAKE_FIND_ROOT_PATH "${XBPS_MASTERDIR}/usr;${XBPS_MASTERDIR}") + +SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +_EOF + configure_args+=" -DCMAKE_TOOLCHAIN_FILE=bootstrap.cmake" + elif [ "$CROSS_BUILD" ]; then + case "$XBPS_TARGET_MACHINE" in + x86_64*) _CMAKE_SYSTEM_PROCESSOR=x86_64 ;; + i686*) _CMAKE_SYSTEM_PROCESSOR=x86 ;; + aarch64*) _CMAKE_SYSTEM_PROCESSOR=aarch64 ;; + arm*) _CMAKE_SYSTEM_PROCESSOR=arm ;; + mips*) _CMAKE_SYSTEM_PROCESSOR=mips ;; + ppc64le*) _CMAKE_SYSTEM_PROCESSOR=ppc64le ;; + ppc64*) _CMAKE_SYSTEM_PROCESSOR=ppc64 ;; + ppcle*) _CMAKE_SYSTEM_PROCESSOR=ppcle ;; + ppc*) _CMAKE_SYSTEM_PROCESSOR=ppc ;; + *) _CMAKE_SYSTEM_PROCESSOR=generic ;; + esac + cat > cross_${XBPS_CROSS_TRIPLET}.cmake <<_EOF +SET(CMAKE_SYSTEM_NAME Linux) +SET(CMAKE_SYSTEM_VERSION 1) + +SET(CMAKE_C_COMPILER ${CC}) +SET(CMAKE_CXX_COMPILER ${CXX}) +SET(CMAKE_CROSSCOMPILING TRUE) + +SET(CMAKE_SYSTEM_PROCESSOR ${_CMAKE_SYSTEM_PROCESSOR}) + +SET(CMAKE_FIND_ROOT_PATH "${XBPS_CROSS_BASE}/usr;${XBPS_CROSS_BASE}") + +SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +_EOF + cmake_args+=" -DCMAKE_TOOLCHAIN_FILE=${wrksrc}/${build_wrksrc}/${cmake_builddir}/cross_${XBPS_CROSS_TRIPLET}.cmake" + fi + 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" + cmake_args+=" -DFETCHCONTENT_FULLY_DISCONNECTED=ON" + + 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)" \ + >> cross_${XBPS_CROSS_TRIPLET}.cmake + fi + + cmake_args+=" -DCMAKE_INSTALL_SBINDIR=bin" + + export CMAKE_GENERATOR="${CMAKE_GENERATOR:-Ninja}" + # Remove -pipe: https://gitlab.kitware.com/cmake/cmake/issues/19590 + CFLAGS="-DNDEBUG ${CFLAGS/ -pipe / }" CXXFLAGS="-DNDEBUG ${CXXFLAGS/ -pipe / }" \ + cmake ${cmake_args} ${configure_args} \ + ${LIBS:+-DCMAKE_C_STANDARD_LIBRARIES="$LIBS"} \ + ${LIBS:+-DCMAKE_CXX_STANDARD_LIBRARIES="$LIBS"} \ + ${wrksrc}/${build_wrksrc} + + # Replace -isystem with -I + if [ "$CMAKE_GENERATOR" = "Unix Makefiles" ]; then + find . -name flags.make -exec sed -i -e 's/-isystem/-I/g' "{}" + + elif [ "$CMAKE_GENERATOR" = Ninja ]; then + sed -i -e 's/-isystem/-I/g' build.ninja + fi +} + +do_build() { + : ${make_cmd:=ninja} + + cd ${cmake_builddir:=build} + ${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} +} + +do_check() { + : ${make_cmd:=ninja} + + cd ${cmake_builddir:=build} + + if [ -z "$make_check_target" ]; then + case $make_cmd in + make) + if make -q test 2>/dev/null; then + : + else + if [ $? -eq 2 ]; then + msg_warn 'No target to "make test".\n' + return 0 + fi + fi + ;; + ninja) + if ! ninja -t query test >/dev/null 2>&1; then + msg_warn 'No target to "ninja test".\n' + return 0 + fi + ;; + *) + msg_warn "Can't run tests with '$make_cmd', define do_check.\n" + ;; + esac + fi + + : ${make_check_target:=test} + + ${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target} +} + +do_install() { + : ${make_cmd:=ninja} + : ${make_install_target:=install} + + cd ${cmake_builddir:=build} + DESTDIR=${DESTDIR} ${make_cmd} ${make_install_args} ${make_install_target} +} diff --git a/common/build-style/configure.sh b/common/build-style/configure.sh new file mode 100644 index 0000000..8fe3275 --- /dev/null +++ b/common/build-style/configure.sh @@ -0,0 +1,40 @@ +# +# This helper is for templates using configure scripts (not generated +# by the GNU autotools). +# +do_configure() { + : ${configure_script:=./configure} + + ${configure_script} ${configure_args} +} + +do_build() { + : ${make_cmd:=make} + + ${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} +} + +do_check() { + if [ -z "$make_cmd" ] && [ -z "$make_check_target" ]; then + if make -q check 2>/dev/null; then + : + else + if [ $? -eq 2 ]; then + msg_warn 'No target to "make check".\n' + return 0 + fi + fi + fi + + : ${make_cmd:=make} + : ${make_check_target:=check} + + ${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target} +} + +do_install() { + : ${make_cmd:=make} + : ${make_install_target:=install} + + ${make_cmd} DESTDIR=${DESTDIR} ${make_install_args} ${make_install_target} +} diff --git a/common/build-style/fetch.sh b/common/build-style/fetch.sh new file mode 100644 index 0000000..8ab140b --- /dev/null +++ b/common/build-style/fetch.sh @@ -0,0 +1,12 @@ +# fetch build_style: fetches and copies files to ${wrksrc}. + +do_extract() { + local f curfile + + mkdir -p "${wrksrc}" + for f in ${distfiles}; do + curfile="${f#*>}" + curfile="${curfile##*/}" + cp ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${curfile} "${wrksrc}/${curfile}" + done +} diff --git a/common/build-style/gem.sh b/common/build-style/gem.sh new file mode 100644 index 0000000..779e94e --- /dev/null +++ b/common/build-style/gem.sh @@ -0,0 +1,68 @@ +# +# This helper is for templates using gem files from RubyGems. +# +do_install() { + : ${gem_cmd:=gem} + + local _GEMDIR _INSTDIR + + _GEMDIR=$($gem_cmd env gemdir) + _INSTDIR=${DESTDIR}/${_GEMDIR}/gems/${pkgname#ruby-}-${version} + + $gem_cmd install \ + --local \ + --install-dir ${DESTDIR}/${_GEMDIR} \ + --bindir ${DESTDIR}/usr/bin \ + --ignore-dependencies \ + --no-document \ + --verbose \ + ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${pkgname#ruby-}-${version}.gem + + # Remove cache + rm -rf ${DESTDIR}/${_GEMDIR}/cache + + # Remove ext directory. they are only source code and configuration + # The actual extensions are guarded in an arch path + rm -rf ${_INSTDIR}/ext + + # Remove installed tests and benchmarks + rm -rf ${_INSTDIR}/{test,tests,autotest,benchmark,benchmarks,script,examples,demo} + + # Remove files shipped on the root of the gem, most of the time they are useless + find ${_INSTDIR} -maxdepth 1 -type f -delete + + # Remove unnecessary files + find ${DESTDIR}/${_GEMDIR}/extensions \( -name mkmf.log -o -name gem_make.out \) -delete + + # Place manpages in usr/share/man/man[0-9] + if [ -d ${_INSTDIR}/man ]; then + find ${_INSTDIR}/man -type f -name '*.[0-8n]' | while read -r m; do + vman ${m} + done + fi + + rm -rf "${_INSTDIR}/man" + + # Place executables in /usr/bin + if [ -d "${_INSTDIR}/bin" ]; then + for f in "${_INSTDIR}"/bin/*; do + vbin "${f}" + done + fi + + rm -rf ${_INSTDIR}/bin + + # Place conf files in their places + if [ -d ${_INSTDIR}/etc ]; then + find ${_INSTDIR}/etc -type f | while read -r c; do + vmkdir ${c%/*}/ + mv ${c} "${DESTDIR}/${c##*${_INSTDIR}/etc/}/" + done + fi + + rm -rf ${_INSTDIR}/etc + + # Ignore the ~> operator, replace it with >= + sed 's|~>|>=|g' \ + -i ${DESTDIR}/${_GEMDIR}/specifications/${pkgname#ruby-}-${version}.gemspec +} diff --git a/common/build-style/gemspec.sh b/common/build-style/gemspec.sh new file mode 100644 index 0000000..9568e81 --- /dev/null +++ b/common/build-style/gemspec.sh @@ -0,0 +1,190 @@ +# +# This helper is for templates using gemspec files from upstream or Rubygems. +# +do_build() { + : ${gem_cmd:=gem} + : ${gemspec:=${pkgname#ruby-}.gemspec} + + # Fix packages that keep Gem.gemspec as the name instead of the proper + # $pkgname.gemspec + if [ -f Gem.gemspec ]; then + gemspec=Gem.gemspec + fi + + if [ -f .gemspec ]; then + gemspec=.gemspec + fi + + # Hardcode name and version just in case they try something funny like + # requiring RELEASE to be on the environment to not append -rc0 to version + # Some even forget to update the version in the gemspec after releasing + sed -ri "s|(\.name .*)=.*|\1 = \"${pkgname#ruby-}\"|g" $gemspec + sed -ri "s|(\.version .*)=.*|\1 = \"${version}\"|g" $gemspec + + # Replace use of `git ls-files` with find, use printf so we can print without starting + # dot-slash path + sed -i 's|`git ls-files`|`find . -type f -printf "%P\\n"`|g' $gemspec + + # Sadly ruby isn't capable of handling nullbytes in a command so we have to use + # -print0, then try using sed to remove the suffix + # The end result is: + # `find . -type f -print0 | sed -e "s@\\./@@g"` + sed -i 's|`git ls-files -z`|`find . -type f -print0 \| sed -e "s@\\\\./@@g"`|g' $gemspec + + if [ "$CROSS_BUILD" ]; then + + local _TARGET_PLATFORM + + _TARGET_PLATFORM="$(ruby -r \ + $(find ${XBPS_CROSS_BASE}/usr/lib/ruby -iname rbconfig.rb) \ + -e 'puts RbConfig::CONFIG["arch"]' 2>/dev/null)" + + # Patch all instances of extconf that use create_makefile + for f in $(find . -type f -name 'extconf.rb'); do + if [ ! -f ${f}.orig ]; then + # Create a .extconf file that forces the Makefile to use our environment + # this allows us to cross-compile like it is done with meson cross-files + cat<append +\$CPPFLAGS = ENV['CPPFLAGS'] if ENV['CPPFLAGS'] +RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC'] +RbConfig::MAKEFILE_CONFIG['CXX'] = ENV['CXX'] if ENV['CXX'] +RbConfig::MAKEFILE_CONFIG['LD'] = ENV['LD'] if ENV['LD'] +RbConfig::MAKEFILE_CONFIG['CFLAGS'] = ENV['CFLAGS'] if ENV['CFLAGS'] +RbConfig::MAKEFILE_CONFIG['CPPFLAGS'] = ENV['CPPFLAGS'] if ENV['CPPFLAGS'] +RbConfig::MAKEFILE_CONFIG['CXXFLAGS'] = ENV['CXXFLAGS'] if ENV['CXXFLAGS'] +EOF + cat $f > append2 + # Use sed and enable verbose mode + cat<>append2 +system("sed -i 's|^V =.*|V = 1|' Makefile") +system("sed -i 's|^CFLAGS.*|CFLAGS = \$(CCDLFLAGS) ${VOID_TARGET_CFLAGS} \$(ARCH_FLAG)|' Makefile") +system("sed -i 's|^topdir.*|topdir = ${XBPS_CROSS_BASE}/usr/include/ruby-\$(ruby_version)|' Makefile") +system("sed -i 's|^hdrdir.*|hdrdir = ${XBPS_CROSS_BASE}/usr/include/ruby-\$(ruby_version)|' Makefile") +system("sed -i 's|^arch_hdrdir.*|arch_hdrdir = ${XBPS_CROSS_BASE}/usr/include/ruby-\$(ruby_version)/\$(arch)|' Makefile") +system("sed -i 's|^arch =.*|arch = ${_TARGET_PLATFORM}|' Makefile") +system("sed -i 's|^dldflags =.*|dldflags = ${LDFLAGS}|' Makefile") +EOF + + # Create a backup which we will restore later + cp $f ${f}.orig + + # Patch extconf.rb for cross compile + cat append append2 > $f + fi + done + fi + + # If we are downloading a gem file then create a spec out of it + for f in $distfiles; do + if [ "${f##*.}" = "gem" ]; then + $gem_cmd spec \ + "${XBPS_SRCDISTDIR}/${pkgname}-${version}/${f##*/}" \ + --ruby > $gemspec + fi + done + + sed 's|~>|>=|g' -i $gemspec + + $gem_cmd build --verbose ${gemspec} + + if [ "$CROSS_BUILD" ]; then + # Restore previous extconf.rb which we ship. + find . -type f -name 'extconf.rb.orig' | while read -r f; do + mv $f ${f%.*} + done + fi +} + +do_install() { + : ${gem_cmd:=gem} + + local _GEMDIR _INSTDIR + + _GEMDIR=$($gem_cmd env gemdir) + _INSTDIR=${DESTDIR}/${_GEMDIR}/gems/${pkgname#ruby-}-${version} + + # Ruby is very eager to add CFLAGS everywhere there is a compilation + # but we do both cross compilation of the modules and host compilation + # for checks, so unset CFLAGS and keep it in a separate value. + # We will manually pass CFLAGS as VOID_TAGET_CFLAGS to cross-compilation + # And ruby will use rbconfig.rb to get the proper CFLAGS for host compilation + VOID_TARGET_CFLAGS="$CFLAGS" + export VOID_TARGET_CFLAGS + unset CFLAGS + + $gem_cmd install \ + --local \ + --install-dir ${DESTDIR}/${_GEMDIR} \ + --bindir ${DESTDIR}/usr/bin \ + --ignore-dependencies \ + --no-document \ + --verbose \ + "${pkgname#ruby-}-${version}.gem" \ + -- $configure_args + + # Remove cache + rm -rf ${DESTDIR}/${_GEMDIR}/cache + + # Remove ext directory, they are only source code and configuration + # The actual extensions are in a arch path guarded + rm -rf ${_INSTDIR}/ext + + # Remove duplicated library that is available in a arch guarded + # extension + rm -rf ${_INSTDIR}/lib/*.so + + # Remove installed tests and benchmarks + rm -rf ${_INSTDIR}/{test,tests,autotest,benchmark,benchmarks,script,examples,demo} + + # Remove files shipped on the root of the gem, most of the time they are useless + find ${_INSTDIR} -maxdepth 1 -type f -delete + + # Remove unnecessary files + find ${DESTDIR}/${_GEMDIR}/extensions \( -name mkmf.log -o -name gem_make.out \) -delete + + # Place manpages in usr/share/man/man[0-9] + if [ -d ${_INSTDIR}/man ]; then + find ${_INSTDIR}/man -type f -name '*.[0-8n]' | while read -r m; do + vman ${m} + done + fi + + rm -rf "${_INSTDIR}/man" + + # Place executables in /usr/bin + if [ -d "${_INSTDIR}/bin" ]; then + for f in "${_INSTDIR}"/bin/*; do + vbin "${f}" + done + fi + + rm -rf ${_INSTDIR}/bin + + # Place conf files in their places + if [ -d ${_INSTDIR}/etc ]; then + find ${_INSTDIR}/etc -type f | while read -r c; do + vmkdir ${c%/*}/ + mv ${c} "${DESTDIR}/${c##*${_INSTDIR}/etc/}/" + done + fi + + rm -rf ${_INSTDIR}/etc + + if [ "$CROSS_BUILD" ]; then + + local _TARGET_PLATFORM _TARGET_EXT_DIR + + # Get arch of the target and host platform by reading the rbconfig.rb + # of the cross ruby + _TARGET_PLATFORM="$(ruby -r \ + $(find ${XBPS_CROSS_BASE}/usr/lib/ruby -iname rbconfig.rb) \ + -e 'puts RbConfig::CONFIG["arch"]' 2>/dev/null)" + + # Path to the extensions on a package, ruby installs against the platform + # of the host, so we have to move them to the correct place + _TARGET_EXT_DIR="${DESTDIR}/${_GEMDIR}/extensions/${_TARGET_PLATFORM}" + + find ${DESTDIR}/${_GEMDIR}/extensions -maxdepth 1 -type d \ + -exec mv '{}' ${_TARGET_EXT_DIR} \; + fi +} diff --git a/common/build-style/gnu-configure.sh b/common/build-style/gnu-configure.sh new file mode 100644 index 0000000..82d36f6 --- /dev/null +++ b/common/build-style/gnu-configure.sh @@ -0,0 +1,41 @@ +# +# This helper is for templates using GNU configure scripts. +# +do_configure() { + : ${configure_script:=./configure} + + export lt_cv_sys_lib_dlsearch_path_spec="/usr/lib64 /usr/lib32 /usr/lib /lib /usr/local/lib" + ${configure_script} ${configure_args} +} + +do_build() { + : ${make_cmd:=make} + + export lt_cv_sys_lib_dlsearch_path_spec="/usr/lib64 /usr/lib32 /usr/lib /lib /usr/local/lib" + ${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} +} + +do_check() { + if [ -z "$make_cmd" ] && [ -z "$make_check_target" ]; then + if make -q check 2>/dev/null; then + : + else + if [ $? -eq 2 ]; then + msg_warn 'No target to "make check".\n' + return 0 + fi + fi + fi + + : ${make_cmd:=make} + : ${make_check_target:=check} + + ${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target} +} + +do_install() { + : ${make_cmd:=make} + : ${make_install_target:=install} + + ${make_cmd} DESTDIR=${DESTDIR} ${make_install_args} ${make_install_target} +} diff --git a/common/build-style/gnu-makefile.sh b/common/build-style/gnu-makefile.sh new file mode 100644 index 0000000..c4f4f78 --- /dev/null +++ b/common/build-style/gnu-makefile.sh @@ -0,0 +1,43 @@ +# +# This helper is for templates using GNU Makefiles. +# +do_build() { + : ${make_cmd:=make} + + if [ -z "$make_use_env" ]; then + ${make_cmd} \ + 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 +} + +do_check() { + if [ -z "$make_cmd" ] && [ -z "$make_check_target" ]; then + if make -q check 2>/dev/null; then + : + else + if [ $? -eq 2 ]; then + msg_warn 'No target to "make check".\n' + return 0 + fi + fi + fi + + : ${make_cmd:=make} + : ${make_check_target:=check} + + ${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 prefix=/usr DESTDIR=${DESTDIR} ${make_install_args} ${make_install_target} +} diff --git a/common/build-style/go.sh b/common/build-style/go.sh new file mode 100644 index 0000000..f1808b3 --- /dev/null +++ b/common/build-style/go.sh @@ -0,0 +1,61 @@ +# +# This helper is for templates for Go packages. +# + +do_configure() { + # $go_import_path must be set, or we can't link $PWD into $GOSRCPATH + # nor build from modules + if [ -z "$go_import_path" ]; then + msg_error "\"\$go_import_path\" not set on $pkgname template.\n" + fi + + # This isn't really configuration, but its needed by packages + # that do unusual things with the build where the expect to be + # able to cd into the $GOSRCPATH + if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then + # Skip GOPATH symlink for Go modules + msg_normal "Building $pkgname using Go modules.\n" + else + mkdir -p ${GOSRCPATH%/*}/ + ln -fs "$PWD" "${GOSRCPATH}" + fi +} + +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 + # Check if go_import_path matches module + if [ "module $go_import_path" != "$(head -n1 go.mod)" ]; then + msg_error "\"\$go_import_path\" doesn't match the one defined in go.mod!\n" + fi + + if [ -z "${go_mod_mode}" ] && [ -d vendor ]; then + msg_normal "Using vendor dir for $pkgname Go dependencies.\n" + go_mod_mode=vendor + elif [ "${go_mod_mode}" = "default" ]; then + # Allow templates to explicitly opt into the go tool's + # default behavior. + go_mod_mode= + fi + go install -p "$XBPS_MAKEJOBS" -mod="${go_mod_mode}" -modcacherw -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package} + else + # Otherwise, build using GOPATH + go get -p "$XBPS_MAKEJOBS" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package} + fi +} + +do_install() { + for f in ${GOPATH}/bin/* ${GOPATH}/bin/**/*; do + if [ -f "$f" ] && [ -x "$f" ]; then + vbin "$f" + fi + done +} diff --git a/common/build-style/haskell-stack.sh b/common/build-style/haskell-stack.sh new file mode 100644 index 0000000..2a28ffc --- /dev/null +++ b/common/build-style/haskell-stack.sh @@ -0,0 +1,37 @@ +# +# This helper is for templates built using Haskell stack. +# +# make_build_args="stack-build-flags" +# stackage="lts-X.Y" # or include a stack.yaml in $FILESDIR +# +do_build() { + # use --skip-ghc-check to really force stack to use the ghc in the system + # --system-ghc still downloads if stackage ghc version does not match ours + # this fails on all platforms other than x86_64 glibc when we bump ghc + local _stack_args="--system-ghc --skip-ghc-check" + + if [ -f "${FILESDIR}/stack.yaml" ]; then + msg_normal "Using stack config in stack.yaml.\n" + cp "${FILESDIR}/stack.yaml" . + elif [ -z "$stackage" -a -f "stack.yaml" ]; then + msg_normal "Using stack.yaml from downloaded source.\n" + else + if [ -z "$stackage" ]; then + msg_error "Stackage version not set in \$stackage.\n" + fi + msg_normal "Using stackage resolver ${stackage}.\n" + STACK_ROOT="$wrksrc/.stack" \ + stack init ${_stack_args} --force --resolver ${stackage} + fi + + STACK_ROOT="$wrksrc/.stack" stack ${_stack_args} ${makejobs} build \ + ${make_build_args} +} + +do_install() { + local _stack_args="--system-ghc --skip-ghc-check" + + vmkdir usr/bin + STACK_ROOT="$wrksrc/.stack" stack ${_stack_args} install \ + ${make_build_args} --local-bin-path=${DESTDIR}/usr/bin +} diff --git a/common/build-style/meson.sh b/common/build-style/meson.sh new file mode 100644 index 0000000..e983c5f --- /dev/null +++ b/common/build-style/meson.sh @@ -0,0 +1,150 @@ +# +# This helper is for templates using meson. +# +do_patch() { + : ${meson_crossfile:=xbps_meson.cross} + + if [ "$CROSS_BUILD" ]; then + _MESON_TARGET_ENDIAN=little + # drop the -musl suffix to the target cpu, meson doesn't recognize it + _MESON_TARGET_CPU=${XBPS_TARGET_MACHINE/-musl/} + case "$XBPS_TARGET_MACHINE" in + mips|mips-musl|mipshf-musl) + _MESON_TARGET_ENDIAN=big + _MESON_CPU_FAMILY=mips + ;; + armv*) + _MESON_CPU_FAMILY=arm + ;; + i686*) + _MESON_CPU_FAMILY=x86 + ;; + ppc64le*) + _MESON_CPU_FAMILY=ppc64 + ;; + ppc64*) + _MESON_TARGET_ENDIAN=big + _MESON_CPU_FAMILY=ppc64 + ;; + ppcle*) + _MESON_CPU_FAMILY=ppc + ;; + ppc*) + _MESON_TARGET_ENDIAN=big + _MESON_CPU_FAMILY=ppc + ;; + *) + # if we reached here that means that the cpu and cpu_family + # are the same like 'x86_64' and 'aarch64' + _MESON_CPU_FAMILY=${_MESON_TARGET_CPU} + ;; + esac + + # Record cross-compiling information in cross file. + # CFLAGS and LDFLAGS must be set as c_args and c_link_args. + cat > ${meson_crossfile} < '\(.*\)';archlibexp => '${XBPS_CROSS_BASE}\1';" \ + ${perlprefix}/Config.pm + sed -i -e "s;^archlibexp='\(.*\)';archlibexp='${XBPS_CROSS_BASE}\1';" \ + ${perlprefix}/Config_heavy.pl + else + cp "/usr/lib/perl5/core_perl/Config"*.p? $perlprefix + cp "/usr/lib/perl5/core_perl/Errno.pm" $perlprefix + fi + export PERL5LIB=$perlprefix + + if [ -f "${wrksrc}/${build_wrksrc:+$build_wrksrc/}Makefile.PL" ]; then + sed -i "s,/usr/include,${XBPS_CROSS_BASE}/usr/include,g" \ + "${wrksrc}/${build_wrksrc:+$build_wrksrc/}Makefile.PL" + fi + + if [ -z "$perl_configure_dirs" ]; then + perlmkf="$wrksrc/${build_wrksrc:+$build_wrksrc/}Makefile.PL" + if [ ! -f "$perlmkf" ]; then + msg_error "*** ERROR couldn't find $perlmkf, aborting ***\n" + fi + + cd "$wrksrc/${build_wrksrc:+$build_wrksrc}" + PERL_MM_USE_DEFAULT=1 GCC="$CC" CC="$CC" LD="$CC" \ + OPTIMIZE="$CFLAGS" \ + CFLAGS="$CFLAGS -I${XBPS_CROSS_BASE}/usr/include" \ + LDFLAGS="$LDFLAGS -L${XBPS_CROSS_BASE}/usr/lib -lperl" \ + LDDLFLAGS="-shared $CFLAGS -L${XBPS_CROSS_BASE}/usr/lib" \ + perl -I. Makefile.PL ${configure_args} INSTALLDIRS=vendor + fi + + for i in ${perl_configure_dirs}; do + perlmkf="$wrksrc/${build_wrksrc:+$build_wrksrc/}$i/Makefile.PL" + if [ -f "$perlmkf" ]; then + cd "$wrksrc/${build_wrksrc:+$build_wrksrc/}$i" + PERL_MM_USE_DEFAULT=1 GCC="$CC" CC="$CC" LD="$CC" \ + OPTIMIZE="$CFLAGS" \ + CFLAGS="$CFLAGS -I${XBPS_CROSS_BASE}/usr/include" \ + LDFLAGS="$LDFLAGS -L${XBPS_CROSS_BASE}/usr/lib -lperl" \ + LDDLFLAGS="-shared $CFLAGS -L${XBPS_CROSS_BASE}/usr/lib -lperl" \ + perl -I. Makefile.PL ${make_build_args} INSTALLDIRS=vendor + else + msg_error "*** ERROR: couldn't find $perlmkf, aborting **\n" + fi + done +} + +do_build() { + : ${make_cmd:=make} + + ${make_cmd} CC="$CC" LD="$CC" CFLAGS="$CFLAGS" OPTIMIZE="$CFLAGS" \ + LDFLAGS="$LDFLAGS -L${XBPS_CROSS_BASE}/usr/lib -lperl" \ + LDDLFLAGS="-shared $CFLAGS -L${XBPS_CROSS_BASE}/usr/lib -lperl" \ + ${makejobs} ${make_build_args} ${make_build_target} +} + +do_check() { + : ${make_cmd:=make} + : ${make_check_target:=test} + + ${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target} +} + +do_install() { + : ${make_cmd:=make} + : ${make_install_target:=install} + + ${make_cmd} DESTDIR=${DESTDIR} ${make_install_args} ${make_install_target} +} diff --git a/common/build-style/python2-module.sh b/common/build-style/python2-module.sh new file mode 100644 index 0000000..0a31b15 --- /dev/null +++ b/common/build-style/python2-module.sh @@ -0,0 +1,34 @@ +# +# This helper is for templates installing python2-only modules. +# + +do_build() { + if [ -n "$CROSS_BUILD" ]; then + PYPREFIX="$XBPS_CROSS_BASE" + CFLAGS+=" -I${XBPS_CROSS_BASE}/${py2_inc} -I${XBPS_CROSS_BASE}/usr/include" + LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py2_lib} -L${XBPS_CROSS_BASE}/usr/lib" + CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS" + LDSHARED="${CC} -shared $LDFLAGS" + env CC="$CC" LDSHARED="$LDSHARED" \ + PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \ + LDFLAGS="$LDFLAGS" python2 setup.py build ${make_build_args} + else + python2 setup.py build ${make_build_args} + fi +} + +do_install() { + if [ -n "$CROSS_BUILD" ]; then + PYPREFIX="$XBPS_CROSS_BASE" + CFLAGS+=" -I${XBPS_CROSS_BASE}/${py2_inc} -I${XBPS_CROSS_BASE}/usr/include" + LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py2_lib} -L${XBPS_CROSS_BASE}/usr/lib" + CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS" + LDSHARED="${CC} -shared $LDFLAGS" + env CC="$CC" LDSHARED="$LDSHARED" \ + PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \ + LDFLAGS="$LDFLAGS" python2 setup.py \ + install --prefix=/usr --root=${DESTDIR} ${make_install_args} + else + python2 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args} + fi +} diff --git a/common/build-style/python3-module.sh b/common/build-style/python3-module.sh new file mode 100644 index 0000000..b76d89c --- /dev/null +++ b/common/build-style/python3-module.sh @@ -0,0 +1,34 @@ +# +# This helper is for templates installing python3-only modules. +# + +do_build() { + 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)" \ + ${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 + if ! python3 setup.py --help test >/dev/null 2>&1; then + msg_warn "No command 'test' defined by setup.py.\n" + return 0 + fi + fi + + : ${make_check_target:=test} + ${make_check_pre} python3 setup.py ${make_check_target} ${make_check_args} + fi +} + +do_install() { + 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 new file mode 100644 index 0000000..2d5ff7c --- /dev/null +++ b/common/build-style/python3-pep517.sh @@ -0,0 +1,36 @@ +# +# This style is for templates installing python3 modules adhering to PEP517 +# + +do_build() { + : ${make_build_target:=.} + : ${make_build_args:=--no-isolation --wheel} + python3 -m build ${make_build_args} ${make_build_target} +} + +do_check() { + if ! python3 -c 'import pytest' >/dev/null 2>&1; then + msg_warn "Testing of python3-pep517 templates requires pytest\n" + return 0 + fi + + local testjobs + if python3 -c 'import xdist' >/dev/null 2>&1; then + testjobs="-n $XBPS_MAKEJOBS" + fi + + local testdir="${wrksrc}/.xbps-testdir/$(date +%s)" + python3 -m installer --destdir "${testdir}" \ + ${make_install_args} ${make_install_target:-dist/*.whl} + + PATH="${testdir}/usr/bin:${PATH}" PYTHONPATH="${testdir}/${py3_sitelib}" \ + ${make_check_pre} pytest3 ${testjobs} ${make_check_args} ${make_check_target} +} + +do_install() { + : ${make_install_args:=--no-compile-bytecode} + : ${make_install_target:="dist/*.whl"} + + 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 new file mode 100644 index 0000000..3174583 --- /dev/null +++ b/common/build-style/qmake.sh @@ -0,0 +1,149 @@ +# +# This helper is for templates using Qt5/Qt6 qmake. +# +do_configure() { + local qmake + local qmake_args + local qt + if [ -x "/usr/lib/qt5/bin/qmake" ]; then + qmake="/usr/lib/qt5/bin/qmake" + qt="qt5" + elif [ -x "/usr/lib/qt6/bin/qmake" ]; then + qmake="/usr/lib/qt6/bin/qmake" + qt="qt6" + fi + if [ -z "${qmake}" ]; then + msg_error "${pkgver}: Could not find qmake - missing in hostmakedepends?\n" + fi + if [ "$CROSS_BUILD" ]; then + case $XBPS_TARGET_MACHINE in + i686*) _qt_arch=i386;; + x86_64*) _qt_arch=x86_64;; + aarch64*) _qt_arch=arm64;; + arm*) _qt_arch=arm;; + mips*) _qt_arch=mips;; + ppc64*) _qt_arch=power64;; + ppc*) _qt_arch=power;; + esac + mkdir -p "${wrksrc}/.target-spec/linux-g++" + cat > "${wrksrc}/.target-spec/linux-g++/qmake.conf" <<_EOF +MAKEFILE_GENERATOR = UNIX +CONFIG += incremental no_qt_rpath +QMAKE_INCREMENTAL_STYLE = sublib + +include(/usr/lib/${qt}/mkspecs/common/linux.conf) +include(/usr/lib/${qt}/mkspecs/common/gcc-base-unix.conf) +include(/usr/lib/${qt}/mkspecs/common/g++-unix.conf) + +QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/qconfig.pri +QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/qmodule.pri +QMAKEMODULES = ${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/modules +QMAKE_CC = ${CC} +QMAKE_CXX = ${CXX} +QMAKE_LINK = ${CXX} +QMAKE_LINK_C = ${CC} +QMAKE_LINK_SHLIB = ${CXX} + +QMAKE_AR = ${XBPS_CROSS_TRIPLET}-gcc-ar cqs +QMAKE_OBJCOPY = ${OBJCOPY} +QMAKE_NM = ${NM} -P +QMAKE_STRIP = ${STRIP} + +QMAKE_CFLAGS = ${CFLAGS} +QMAKE_CXXFLAGS = ${CXXFLAGS} +QMAKE_LFLAGS = ${LDFLAGS} +load(qt_config) +_EOF + echo "#include \"${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h\"" > "${wrksrc}/.target-spec/linux-g++/qplatformdefs.h" + + mkdir -p "${wrksrc}/.host-spec/linux-g++" + cat > "${wrksrc}/.host-spec/linux-g++/qmake.conf" <<_EOF +MAKEFILE_GENERATOR = UNIX +CONFIG += incremental no_qt_rpath +QMAKE_INCREMENTAL_STYLE = sublib + +include(/usr/lib/${qt}/mkspecs/common/linux.conf) +include(/usr/lib/${qt}/mkspecs/common/gcc-base-unix.conf) +include(/usr/lib/${qt}/mkspecs/common/g++-unix.conf) + +QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/qconfig.pri +QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/qmodule.pri +QMAKE_CC = ${CC_host} +QMAKE_CXX = ${CXX_host} +QMAKE_LINK = ${CXX_host} +QMAKE_LINK_C = ${CC_host} +QMAKE_LINK_SHLIB = ${CXX_host} + +QMAKE_AR = gcc-ar cqs +QMAKE_OBJCOPY = ${OBJCOPY_host} +QMAKE_NM = ${NM_host} -P +QMAKE_STRIP = ${STRIP_host} + +QMAKE_CFLAGS = ${CFLAGS_host} +QMAKE_CXXFLAGS = ${CXXFLAGS_host} +QMAKE_LFLAGS = ${LDFLAGS_host} +load(qt_config) +_EOF +echo '#include "/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h"' > "${wrksrc}/.host-spec/linux-g++/qplatformdefs.h" + cat > "${wrksrc}/qt.conf" <<_EOF +[Paths] +Sysroot=${XBPS_CROSS_BASE} +Prefix=/usr +ArchData=${XBPS_CROSS_BASE}/usr/lib/${qt} +Data=${XBPS_CROSS_BASE}/usr/share/${qt} +Documentation=${XBPS_CROSS_BASE}/usr/share/doc/${qt} +Headers=${XBPS_CROSS_BASE}/usr/include/${qt} +Libraries=${XBPS_CROSS_BASE}/usr/lib +LibraryExecutables=/usr/lib/${qt}/libexec +Binaries=/usr/lib/${qt}/bin +Tests=${XBPS_CROSS_BASE}/usr/tests +Plugins=/usr/lib/${qt}/plugins +Imports=${XBPS_CROSS_BASE}/usr/lib/${qt}/imports +Qml2Imports=${XBPS_CROSS_BASE}/usr/lib/${qt}/qml +Translations=${XBPS_CROSS_BASE}/usr/share/${qt}/translations +Settings=${XBPS_CROSS_BASE}/etc/xdg +Examples=${XBPS_CROSS_BASE}/usr/share/${qt}/examples +HostPrefix=/usr +HostData=/usr/lib/${qt} +HostBinaries=/usr/lib/${qt}/bin +HostLibraries=/usr/lib +HostLibraryExecutables=/usr/lib/${qt}/libexec +Spec=${wrksrc}/.host-spec/linux-g++ +TargetSpec=${wrksrc}/.target-spec/linux-g++ +_EOF + qmake_args="-qtconf ${wrksrc}/qt.conf PKG_CONFIG_EXECUTABLE=${XBPS_WRAPPERDIR}/${PKG_CONFIG}" + ${qmake} ${qmake_args} \ + PREFIX=/usr \ + QT_INSTALL_PREFIX=/usr \ + LIB=/usr/lib \ + QT_TARGET_ARCH=$_qt_arch \ + ${configure_args} + else + ${qmake} ${qmake_args} \ + PREFIX=/usr \ + QT_INSTALL_PREFIX=/usr \ + LIB=/usr/lib \ + QMAKE_CC=$CC QMAKE_CXX=$CXX \ + QMAKE_LINK=$CXX QMAKE_LINK_C=$CC \ + QMAKE_CFLAGS="${CFLAGS}" \ + QMAKE_CXXFLAGS="${CXXFLAGS}" \ + QMAKE_LFLAGS="${LDFLAGS}" \ + CONFIG+=no_qt_rpath \ + ${configure_args} + fi +} + +do_build() { + : ${make_cmd:=make} + + ${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} \ + CC="$CC" CXX="$CXX" LINK="$CXX" +} + +do_install() { + : ${make_cmd:=make} + : ${make_install_target:=install} + + ${make_cmd} STRIP=true PREFIX=/usr DESTDIR=${DESTDIR} \ + INSTALL_ROOT=${DESTDIR} ${make_install_args} ${make_install_target} +} diff --git a/common/build-style/raku-dist.sh b/common/build-style/raku-dist.sh new file mode 100644 index 0000000..6735016 --- /dev/null +++ b/common/build-style/raku-dist.sh @@ -0,0 +1,16 @@ +# +# This helper is for Raku package templates. +# + +do_check() { + RAKULIB=lib ${make_check_pre} prove -r -e raku t/ +} + +do_install() { + export RAKUDO_LOG_PRECOMP=1 + export RAKUDO_RERESOLVE_DEPENDENCIES=0 + raku-install-dist \ + --to=${DESTDIR}/usr/lib/raku/vendor \ + --for=vendor \ + --from=. +} diff --git a/common/build-style/ruby-module.sh b/common/build-style/ruby-module.sh new file mode 100644 index 0000000..c45d1cd --- /dev/null +++ b/common/build-style/ruby-module.sh @@ -0,0 +1,13 @@ +# +# This helper is for templates installing ruby modules. +# + +do_install() { + local _vendorlibdir=$(ruby -e 'puts RbConfig::CONFIG["vendorlibdir"]') + + if [ "$XBPS_WORDSIZE" != "$XBPS_TARGET_WORDSIZE" ]; then + _vendorlibdir="${_vendorlibdir//lib$XBPS_WORDSIZE/lib$XBPS_TARGET_WORDSIZE}" + fi + + LANG=C ruby install.rb --destdir=${DESTDIR} --sitelibdir=${_vendorlibdir} ${make_install_args} +} diff --git a/common/build-style/scons.sh b/common/build-style/scons.sh new file mode 100644 index 0000000..f87c0dc --- /dev/null +++ b/common/build-style/scons.sh @@ -0,0 +1,35 @@ +# +# This helper is for templates using scons. +# +do_build() { + : ${make_cmd:=scons} + + ${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 \ + ${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 \ + ${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/sip-build.sh b/common/build-style/sip-build.sh new file mode 100644 index 0000000..d8b3bce --- /dev/null +++ b/common/build-style/sip-build.sh @@ -0,0 +1,147 @@ +# +# This helper is for templates using sip-build. +# + +do_configure() { + local _qt= + local _spec= + local _mkspec= + + : "${sip_builddir:=build}" + mkdir -p "$sip_builddir" + + if [ ! -d /$py3_sitelib/pyqtbuild ]; then + : "who uses sip-build without qmake anyway?" + elif [ -x /usr/lib/qt6/bin/qmake ]; then + _qt=qt6 + elif [ -x /usr/lib/qt5/bin/qmake ]; then + _qt=qt5 + else + msg_error 'qmake not found\n' + fi + + if [ ! "$_qt" ]; then + : "who use sip-build without qmake anyway?" + elif [ "$CROSS_BUILD" ]; then + _mkspec="usr/lib/$_qt/mkspecs" + _spec="$XBPS_WRAPPERDIR/sip-build/target-spec/linux-g++" + mkdir -p "$_spec" + cat >"$_spec/qmake.conf" <<-_EOF + MAKEFILE_GENERATOR = UNIX + CONFIG += incremental no_qt_rpath + QMAKE_INCREMENTAL_STYLE = sublib + + include(/$_mkspec/common/linux.conf) + include(/$_mkspec/common/gcc-base-unix.conf) + include(/$_mkspec/common/g++-unix.conf) + + QMAKE_TARGET_CONFIG = $XBPS_CROSS_BASE/$_mkspec/qconfig.pri + QMAKE_TARGET_MODULE = $XBPS_CROSS_BASE/$_mkspec/qmodule.pri + QMAKEMODULES = $XBPS_CROSS_BASE/$_mkspec/modules + QMAKE_CC = $CC + QMAKE_CXX = $CXX + QMAKE_LINK = $CXX + QMAKE_LINK_C = $CC + QMAKE_LINK_SHLIB = $CXX + + QMAKE_AR = $XBPS_CROSS_TRIPLET-gcc-ar cqs + QMAKE_OBJCOPY = $OBJCOPY + QMAKE_NM = $NM -P + QMAKE_STRIP = $STRIP + + QMAKE_CFLAGS = $CFLAGS -I$XBPS_CROSS_BASE/usr/include/python$py3_ver + QMAKE_CXXFLAGS = $CXXFLAGS -I$XBPS_CROSS_BASE/usr/include/python$py3_ver + QMAKE_LFLAGS = -L$XBPS_CROSS_BASE/usr/lib $LDFLAGS + load(qt_config) + _EOF + + printf '#include "%s/%s/linux-g++/qplatformdefs.h"\n' \ + "$XBPS_CROSS_BASE" "$_mkspec" >"$_spec/qplatformdefs.h" + cat >"$XBPS_WRAPPERDIR/sip-build/qt.conf" <<-_EOF + [Paths] + Sysroot=$XBPS_CROSS_BASE + Prefix=$XBPS_CROSS_BASE/usr + ArchData=$XBPS_CROSS_BASE/usr/lib/$_qt + Data=$XBPS_CROSS_BASE/usr/share/$_qt + Documentation=$XBPS_CROSS_BASE/usr/share/doc/$_qt + Headers=$XBPS_CROSS_BASE/usr/include/$_qt + Libraries=$XBPS_CROSS_BASE/usr/lib + LibraryExecutables=/usr/lib/$_qt/libexec + Binaries=/usr/lib/$_qt/bin + Tests=$XBPS_CROSS_BASE/usr/tests + Plugins=/usr/lib/$_qt/plugins + Imports=$XBPS_CROSS_BASE/usr/lib/$_qt/imports + Qml2Imports=$XBPS_CROSS_BASE/usr/lib/$_qt/qml + Translations=$XBPS_CROSS_BASE/usr/share/$_qt/translations + Settings=$XBPS_CROSS_BASE/etc/xdg + Examples=$XBPS_CROSS_BASE/usr/share/$_qt/examples + HostPrefix=/usr + HostData=/usr/lib/$_qt + HostBinaries=/usr/lib/$_qt/bin + HostLibraries=/usr/lib + HostLibraryExecutables=/usr/lib/$_qt/libexec + Spec=linux-g++ + TargetSpec=$_spec + _EOF + # Call it sip-qmake to not override qmake build-helper + # + # XXX: Intentionally quote {C,CXX,LD}FLAGS here but not native. + # - Cross Build: + # + base flags will be picked up from QMAKE_{C,CXX,LD}FLAGS + # + hardening flags will be picked up from environment variables + # - Native Build: + # + hardening flags will be picked up first (Makefile, qt.conf?) + # + base flags will be picked up from QMAKE_{C,CXX,LD}FLAGS + # Maybe there're better workaround, I don't know. + cat >"$XBPS_WRAPPERDIR/sip-qmake" <<-_EOF + #!/bin/sh + exec /usr/lib/$_qt/bin/qmake "\$@" \\ + -qtconf "$XBPS_WRAPPERDIR/sip-build/qt.conf" \\ + PKG_CONFIG_EXECUTABLE=${XBPS_WRAPPERDIR}/${PKG_CONFIG} \\ + QMAKE_CFLAGS+="\$CFLAGS" \\ + QMAKE_CXXFLAGS+="\$CXXFLAGS" \\ + QMAKE_LFLAGS+="\$LDFLAGS" + _EOF + chmod 755 ${XBPS_WRAPPERDIR}/sip-qmake + else + cat >"${XBPS_WRAPPERDIR}/sip-qmake" <<-_EOF + #!/bin/sh + exec /usr/lib/$_qt/bin/qmake \\ + "\$@" \\ + PREFIX=/usr \\ + QT_INSTALL_PREFIX=/usr \\ + LIB=/usr/lib \\ + QMAKE_CC="$CC" QMAKE_CXX="$CXX" \\ + QMAKE_LINK="$CXX" QMAKE_LINK_C="$CC" \\ + QMAKE_CFLAGS+="$CFLAGS" \\ + QMAKE_CXXFLAGS+="$CXXFLAGS" \\ + QMAKE_LFLAGS+="$LDFLAGS" \\ + CONFIG+=no_qt_rpath + _EOF + chmod 755 ${XBPS_WRAPPERDIR}/sip-qmake + fi + + sip-build --no-make \ + ${_qt:+--qmake "$XBPS_WRAPPERDIR/sip-qmake"} \ + --api-dir /usr/share/$_qt/qsci/api/python \ + $configure_args \ + --build-dir "$sip_builddir" + + if [ "$CROSS_BUILD" ]; then + # -I/usr/include/python$py3_ver is set by sip-build :( + find "$sip_builddir" -name Makefile | + xargs sed -i "s,-I\\(/usr/include\\),-I$XBPS_CROSS_BASE\\1,g" + fi +} + +do_build() { + : "${sip_builddir:=build}" + make -C "${sip_builddir}" ${makejobs} +} + +do_install() { + : "${sip_builddir:=build}" + make -C "${sip_builddir}" \ + DESTDIR=${DESTDIR} INSTALL_ROOT=${DESTDIR} \ + install +} diff --git a/common/build-style/slashpackage.sh b/common/build-style/slashpackage.sh new file mode 100644 index 0000000..59e8273 --- /dev/null +++ b/common/build-style/slashpackage.sh @@ -0,0 +1,33 @@ +# +# This helper is for templates building slashpackage software. +# http://cr.yp.to/slashpackage.html +# +# required variables +# +# build_style=slashpackage +# build_wrksrc=${pkgname}-${version} +# distfiles= +# +# example (daemontools) +# +# Template file for 'daemontools' +# pkgname=daemontools +# version=0.76 +# revision=1 +# build_wrksrc=${pkgname}-${version} +# build_style=slashpackage +# short_desc="A collection of tools for managing UNIX services" +# maintainer="bougyman " +# license="Public Domain" +# homepage="http://cr.yp.to/daemontools.html" +# distfiles="http://cr.yp.to/daemontools/${pkgname}-${version}.tar.gz" + +do_build() { + package/compile +} + +do_install() { + for command in command/*; do + vbin $command + done +} diff --git a/common/build-style/texmf.sh b/common/build-style/texmf.sh new file mode 100644 index 0000000..dbed1fd --- /dev/null +++ b/common/build-style/texmf.sh @@ -0,0 +1,70 @@ +do_build() { + local f p + # Extract the source files + mkdir -p "build/usr/share/texmf-dist" + find . -maxdepth 1 -print -name "*.tar.xz" \ + -exec bsdtar -C "build/usr/share/texmf-dist" -xf {} \; + cd "build/usr/share/texmf-dist/" + # Everything in usr/share/texmf-dist/texmf-dist should really be in + # usr/share/texmf-dist, so we move it + if [ -d "texmf-dist" ] ; then + rsync -ar texmf-dist/ ./ + rm -rf texmf-dist/ + fi + # LICENSEs are unneeded + rm -f LICENSE* + + # We have some conflicting files between different packages. To work + # around this, we use an ownership file that maps which conflicting + # files should be in which packages. Here, each file in the map list is + # checked whether it is in the package, and if it shouldn't be it is + # removed. + while IFS=' ' read -r f p ; do + if [ "$p" = "$pkgname" ] && ! [ -e "$f" ]; then + # Error out if the ownership map expects this package to have a + # file but it dosen't + msg_error "$pkgver: missing file $f\n" + elif [ "$p" != "$pkgname" ] && [ -e "$f" ]; then + # Remove a file that according to the ownership map belongs to + # another file + echo "removed $f" + # Install a file that lists the removed packages + mkdir -p ../texlive/removed + echo "$f" >> ../texlive/removed/$pkgname.txt + rm -f "$f" + fi + done < "${XBPS_COMMONDIR}/environment/build-style/texmf/ownership.txt" +} + +do_check() { + # This is essentially a helper for generating the ownership map. It checks + # to see if there are any conflicts between all of the different packages. + local f p current_ver current_rev exitcode=0 + cd build + + while read p; do + # Don't check against the texlive-bin* packages, ourselves, -dbg or -32bit pkgs + if [[ ${p%-*} =~ .*-bin$ ]] || [ "${p%-*}" = "$pkgname" ] || [[ ${p%-*} =~ .*-dbg$ ]] || [[ ${p%-*} =~ .*-32bit$ ]]; then + continue + fi + # Don't check against any version other than the version in the source tree + current_ver="$(grep -m 1 version= ${XBPS_SRCPKGDIR}/${p%-*}/template | cut -d= -f2)" + current_rev="$(grep -m 1 revision= ${XBPS_SRCPKGDIR}/${p%-*}/template | cut -d= -f2)" + if [ "${p%-*}-${current_ver}_${current_rev}" != "${p}" ]; then + # They are not the same version + continue + fi + echo checking conflicts with ${p}... + while IFS= read -r f; do + if [ -e ".$f" ]; then + msg_red "both contain file $f\n" + exitcode=1 + fi + done < <(xbps-query -Rf $p | sed 's/ -> .*//') + done < <(xbps-query -Rs texlive -p pkgver | cut -d : -f 1) + return $exitcode +} + +do_install() { + vcopy build/usr . +} diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh new file mode 100644 index 0000000..2e8ebb5 --- /dev/null +++ b/common/build-style/void-cross.sh @@ -0,0 +1,667 @@ +# +# This helper is for void system crosstoolchain templates. +# +# Optional variables: +# +# - cross_gcc_skip_go - do not build gccgo support +# - cross_binutils_configure_args +# - cross_gcc_bootstrap_configure_args +# - cross_gcc_configure_args +# - cross_glibc_cflags +# - cross_glibc_ldflags +# - cross_glibc_configure_args +# - cross_musl_cflags +# - cross_musl_ldflags +# - cross_musl_configure_args +# +# configure_args is passed to both bootstrap gcc and final gcc +# if you need to pass some to one and not the other, use the +# respective cross_ variables for final gcc and bootstrap gcc +# + +_void_cross_apply_patch() { + local pname="$(basename $1)" + if [ ! -f ".${pname}_done" ]; then + patch -Np1 $args -i $1 + touch .${pname}_done + fi +} + +_void_cross_build_binutils() { + [ -f ${wrksrc}/.binutils_done ] && return 0 + + local tgt=$1 + local ver=$2 + + msg_normal "Patching binutils for ${tgt}\n" + + cd ${wrksrc}/binutils-${ver} + if [ -d "${XBPS_SRCPKGDIR}/binutils/patches" ]; then + for f in ${XBPS_SRCPKGDIR}/binutils/patches/*.patch; do + _void_cross_apply_patch "$f" + done + fi + cd .. + + msg_normal "Building binutils for ${tgt}\n" + + mkdir -p ${wrksrc}/binutils_build + cd ${wrksrc}/binutils_build + + ../binutils-${ver}/configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --sysconfdir=/etc \ + --target=${tgt} \ + --with-sysroot=/usr/${tgt} \ + --disable-nls \ + --disable-shared \ + --disable-multilib \ + --disable-werror \ + --disable-gold \ + --disable-gprofng \ + --enable-relro \ + --enable-new-dtags \ + --enable-plugins \ + --enable-64-bit-bfd \ + --enable-deterministic-archives \ + --enable-default-hash-style=gnu \ + --with-system-zlib \ + --with-mmap \ + --with-pic \ + ${cross_binutils_configure_args} + + make configure-host + make ${makejobs} + + make install DESTDIR=${wrksrc}/build_root + + touch ${wrksrc}/.binutils_done +} + +_void_cross_build_bootstrap_gcc() { + [ -f ${wrksrc}/.gcc_bootstrap_done ] && return 0 + + local tgt=$1 + local ver=$2 + + msg_normal "Patching GCC for ${tgt}\n" + + cd ${wrksrc}/gcc-${ver} + + # Do not run fixincludes + sed -i 's@./fixinc.sh@-c true@' Makefile.in + + for f in ${XBPS_SRCPKGDIR}/gcc/patches/*.patch; do + _void_cross_apply_patch "$f" + done + if [ -f ${wrksrc}/.musl_version ]; then + for f in ${XBPS_SRCPKGDIR}/gcc/files/*-musl.patch; do + _void_cross_apply_patch "$f" + done + fi + cd .. + + msg_normal "Building bootstrap GCC for ${tgt}\n" + + mkdir -p gcc_bootstrap + cd gcc_bootstrap + + local extra_args + if [ -f ${wrksrc}/.musl_version ]; then + extra_args+=" --with-newlib" + extra_args+=" --disable-symvers" + extra_args+=" libat_cv_have_ifunc=no" + else + extra_args+=" --without-headers" + fi + + ../gcc-${ver}/configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --target=${tgt} \ + --disable-nls \ + --disable-multilib \ + --disable-shared \ + --disable-libquadmath \ + --disable-decimal-float \ + --disable-libgomp \ + --disable-libmpx \ + --disable-libmudflap \ + --disable-libssp \ + --disable-libitm \ + --disable-libatomic --disable-autolink-libatomic \ + --disable-gcov \ + --disable-threads \ + --disable-sjlj-exceptions \ + --enable-languages=c \ + --with-gnu-ld \ + --with-gnu-as \ + ${extra_args} \ + ${configure_args} \ + ${cross_gcc_bootstrap_configure_args} + + make ${makejobs} + make install DESTDIR=${wrksrc}/build_root + + local ptrs=$(${tgt}-gcc -dM -E - < /dev/null | \ + grep __SIZEOF_POINTER__) + local ws=${ptrs##* } + + case ${ws} in + 8) echo 64 > ${wrksrc}/.gcc_wordsize ;; + 4) echo 32 > ${wrksrc}/.gcc_wordsize ;; + *) msg_error "Unknown word size: ${ws}\n" ;; + esac + + touch ${wrksrc}/.gcc_bootstrap_done +} + +_void_cross_build_kernel_headers() { + [ -f ${wrksrc}/.linux_headers_done ] && return 0 + + local tgt=$1 + local ver=$2 + local arch + + msg_normal "Patching Linux headers for ${tgt}\n" + + cd ${wrksrc}/linux-${ver} + if [ -d "${XBPS_SRCPKGDIR}/kernel-libc-headers/patches" ]; then + for f in ${XBPS_SRCPKGDIR}/kernel-libc-headers/patches/*.patch; do + _void_cross_apply_patch "$f" + done + fi + cd .. + + msg_normal "Building Linux headers for ${tgt}\n" + + cd linux-${ver} + + case "$tgt" in + x86_64*|i686*) arch=x86 ;; + powerpc*) arch=powerpc ;; + mips*) arch=mips ;; + aarch64*) arch=arm64 ;; + arm*) arch=arm ;; + riscv*) arch=riscv ;; + s390*) arch=s390 ;; + *) msg_error "Unknown Linux arch for ${tgt}\n" ;; + esac + + make ARCH=${arch} headers + find usr/include -name '.*' -delete + rm usr/include/Makefile + rm -r usr/include/drm + cp -a usr/include ${wrksrc}/build_root/usr/${tgt}/usr + + touch ${wrksrc}/.linux_headers_done +} + +_void_cross_build_glibc_headers() { + [ -f ${wrksrc}/.glibc_headers_done ] && return 0 + + local tgt=$1 + local ver=$2 + + msg_normal "Patching glibc for ${tgt}\n" + + cd ${wrksrc}/glibc-${ver} + if [ -d "${XBPS_SRCPKGDIR}/glibc/patches" ]; then + for f in ${XBPS_SRCPKGDIR}/glibc/patches/*.patch; do + _void_cross_apply_patch "$f" + done + fi + cd .. + + msg_normal "Building glibc headers for ${tgt}\n" + + mkdir -p glibc_headers + cd glibc_headers + + echo "libc_cv_forced_unwind=yes" > config.cache + echo "libc_cv_c_cleanup=yes" >> config.cache + + # we don't need any custom args here, it's just headers + CC="${tgt}-gcc" CXX="${tgt}-g++" CPP="${tgt}-cpp" LD="${tgt}-ld" \ + AS="${tgt}-as" NM="${tgt}-nm" CFLAGS="-pipe" CXXFLAGS="" CPPFLAGS="" \ + LDFLAGS="" \ + ../glibc-${ver}/configure \ + --prefix=/usr \ + --host=${tgt} \ + --with-headers=${wrksrc}/build_root/usr/${tgt}/usr/include \ + --config-cache \ + --enable-kernel=2.6.27 \ + ${cross_glibc_configure_args} + + make -k install-headers cross_compiling=yes \ + install_root=${wrksrc}/build_root/usr/${tgt} + + touch ${wrksrc}/.glibc_headers_done +} + +_void_cross_build_glibc() { + [ -f ${wrksrc}/.glibc_build_done ] && return 0 + + local tgt=$1 + local ver=$2 + + msg_normal "Building glibc for ${tgt}\n" + + mkdir -p ${wrksrc}/glibc_build + cd ${wrksrc}/glibc_build + + local ws=$(cat ${wrksrc}/.gcc_wordsize) + + echo "slibdir=/usr/lib${ws}" > configparms + + echo "libc_cv_forced_unwind=yes" > config.cache + echo "libc_cv_c_cleanup=yes" >> config.cache + + CC="${tgt}-gcc" CXX="${tgt}-g++" CPP="${tgt}-cpp" LD="${tgt}-ld" \ + AR="${tgt}-ar" AS="${tgt}-as" NM="${tgt}-nm" \ + CFLAGS="-pipe ${cross_glibc_cflags}" \ + CXXFLAGS="-pipe ${cross_glibc_cflags}" \ + CPPFLAGS="${cross_glibc_cflags}" \ + LDFLAGS="${cross_glibc_ldflags}" \ + ../glibc-${ver}/configure \ + --prefix=/usr \ + --libdir=/usr/lib${ws} \ + --libexecdir=/usr/libexec \ + --host=${tgt} \ + --with-headers=${wrksrc}/build_root/usr/${tgt}/usr/include \ + --config-cache \ + --disable-profile \ + --disable-werror \ + --enable-kernel=2.6.27 \ + ${cross_glibc_configure_args} + + make ${makejobs} + make install_root=${wrksrc}/build_root/usr/${tgt} install + + touch ${wrksrc}/.glibc_build_done +} + +_void_cross_build_musl() { + [ -f ${wrksrc}/.musl_build_done ] && return 0 + + local tgt=$1 + local ver=$2 + + msg_normal "Patching musl for ${tgt}\n" + + cd ${wrksrc}/musl-${ver} + if [ -d "${XBPS_SRCPKGDIR}/musl/patches" ]; then + for f in ${XBPS_SRCPKGDIR}/musl/patches/*.patch; do + _void_cross_apply_patch "$f" + done + fi + cd .. + + msg_normal "Building musl for ${tgt}\n" + + mkdir -p musl_build + cd musl_build + + CC="${tgt}-gcc" CXX="${tgt}-g++" CPP="${tgt}-cpp" LD="${tgt}-ld" \ + AR="${tgt}-ar" AS="${tgt}-as" NM="${tgt}-nm" \ + CFLAGS="-pipe -fPIC ${cross_musl_cflags}" \ + CPPFLAGS="${cross_musl_cflags}" LDFLAGS="${cross_musl_ldflags}" \ + ../musl-${ver}/configure \ + --prefix=/usr \ + --host=${tgt} \ + ${cross_musl_configure_args} + + make ${makejobs} + make DESTDIR=${wrksrc}/build_root/usr/${tgt} install + + CFLAGS="-pipe -fPIC ${cross_musl_cflags}" \ + CPPFLAGS="${cross_musl_cflags}" LDFLAGS="${cross_musl_ldflags}" \ + ${tgt}-gcc -pipe -fPIC ${cross_musl_cflags} ${cross_musl_ldflags} -fpie \ + -c ${XBPS_SRCPKGDIR}/musl/files/__stack_chk_fail_local.c \ + -o __stack_chk_fail_local.o + ${tgt}-ar r libssp_nonshared.a __stack_chk_fail_local.o + cp libssp_nonshared.a ${wrksrc}/build_root/usr/${tgt}/usr/lib + + touch ${wrksrc}/.musl_build_done +} + +_void_cross_build_libucontext() { + [ -n "$cross_gcc_skip_go" ] && return 0 + [ -f ${wrksrc}/.libucontext_build_done ] && return 0 + + local tgt=$1 + local ver=$2 + local arch incpath + + msg_normal "Building libucontext for ${tgt}\n" + + case "$tgt" in + x86_64*) arch=x86_64 ;; + i686*) arch=x86 ;; + powerpc64*) arch=ppc64 ;; + powerpc*) arch=ppc ;; + mips*64*) arch=mips64 ;; + mips*) arch=mips ;; + aarch64*) arch=aarch64 ;; + arm*) arch=arm ;; + riscv64*) arch=riscv64 ;; + s390x*) arch=s390x ;; + *) msg_error "Unknown libucontext arch for ${tgt}\n" ;; + esac + + cd ${wrksrc}/libucontext-${ver} + # a terrible hack but seems to work for now + # we build a static-only library to prevent linking to a runtime + # since it's tiny it can be linked into libgo and we don't have + # to keep it around (which would possibly conflict with crossdeps) + incpath="${wrksrc}/build_root/usr/${tgt}/usr/include" + CC="${tgt}-gcc" AS="${tgt}-as" AR="${tgt}-ar" \ + make ARCH=$arch libucontext.a \ + CFLAGS="${cross_musl_cflags} -g0 -nostdinc -isystem ${incpath}" + + cp libucontext.a ${wrksrc}/build_root/usr/${tgt}/usr/lib + + touch ${wrksrc}/.libucontext_build_done +} + +_void_cross_build_gcc() { + [ -f ${wrksrc}/.gcc_build_done ] && return 0 + + local tgt=$1 + local ver=$2 + + msg_normal "Building gcc for ${tgt}\n" + + # GIANT HACK: create an empty libatomic.a so gcc cross-compile + # below works. + ar r ${wrksrc}/build_root/usr/${tgt}/usr/lib/libatomic.a + + mkdir -p ${wrksrc}/gcc_build + cd ${wrksrc}/gcc_build + + local langs="c,c++,fortran,objc,obj-c++,ada,lto" + if [ -z "$cross_gcc_skip_go" ]; then + langs+=",go" + fi + + local extra_args + if [ -f ${wrksrc}/.musl_version ]; then + # otherwise glibc hosts get confused and use the gnu impl + extra_args+=" --enable-clocale=generic" + extra_args+=" --disable-symvers" + extra_args+=" --disable-gnu-unique-object" + extra_args+=" libat_cv_have_ifunc=no" + else + extra_args+=" --enable-clocale=gnu" + extra_args+=" --enable-gnu-unique-object" + fi + + # note on --disable-libquadmath: + # on some platforms the library is actually necessary for the + # fortran frontend to build, but still disable it because it + # should not be in the resulting packages; it conflicts with + # the libquadmath you can install into the cross root + # + # platforms where this is a problem should explicitly force + # libquadmath to be on via cross_gcc_configure_args, the + # do_install in this build-style automatically removes it + # + ../gcc-${ver}/configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --target=${tgt} \ + --with-sysroot=/usr/${tgt} \ + --with-build-sysroot=${wrksrc}/build_root/usr/${tgt} \ + --enable-languages=${langs} \ + --disable-nls \ + --disable-multilib \ + --disable-sjlj-exceptions \ + --disable-libquadmath \ + --disable-libmudflap \ + --disable-libitm \ + --disable-libvtv \ + --disable-libsanitizer \ + --disable-libstdcxx-pch \ + --disable-libssp \ + --enable-shared \ + --enable-threads=posix \ + --enable-__cxa_atexit \ + --enable-linker-build-id \ + --enable-libada \ + --enable-lto \ + --enable-default-pie \ + --enable-default-ssp \ + --with-gnu-ld \ + --with-gnu-as \ + --with-linker-hash-style=gnu \ + ${extra_args} \ + ${configure_args} \ + ${cross_gcc_configure_args} + + make ${makejobs} + + touch ${wrksrc}/.gcc_build_done +} + +_void_cross_test_ver() { + local proj=$1 + local noerr=$2 + local ver cver + for p in ${proj}-*; do + cver=${p#${proj}-} + if [ -z "$noerr" -a -n "$ver" ]; then + msg_error "multiple versions of ${proj} found: ${ver}, ${cver}" + fi + ver=${cver} + done + if [ -d "${proj}-${ver}" ]; then + echo ${ver} > ${wrksrc}/.${proj}_version + return + fi + if [ -z "$noerr" ]; then + msg_error "project ${proj} not available for build\n" + fi +} + +do_build() { + # Verify toolchain versions + cd ${wrksrc} + + local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver + local tgt=${sourcepkg/cross-} + + export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}" + export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}" + + # Disable explicit -fno-PIE, gcc/binutils/libc will figure this out itself. + export CFLAGS="${CFLAGS//-fno-PIE/}" + export CXXFLAGS="${CXXFLAGS//-fno-PIE/}" + export LDFLAGS="${LDFLAGS//-no-pie/}" + + _void_cross_test_ver binutils + _void_cross_test_ver linux + _void_cross_test_ver gcc + + binutils_ver=$(cat .binutils_version) + linux_ver=$(cat .linux_version) + gcc_ver=$(cat .gcc_version) + + _void_cross_test_ver musl noerr + if [ ! -f .musl_version ]; then + _void_cross_test_ver glibc + libc_ver=$(cat .glibc_version) + else + libc_ver=$(cat .musl_version) + if [ -z "$cross_gcc_skip_go" ]; then + _void_cross_test_ver libucontext + libucontext_ver=$(cat .libucontext_version) + fi + fi + + local sysroot="/usr/${tgt}" + + # Prepare environment + cd ${wrksrc} + + # Core directories for the build root + mkdir -p build_root/usr/{bin,lib,include,share} + mkdir -p build_root/usr/${tgt}/usr/{bin,lib,include,share} + + # Host root uses host wordsize + ln -sf usr/lib build_root/lib + ln -sf usr/lib build_root/lib${XBPS_TARGET_WORDSIZE} + ln -sf lib build_root/usr/lib${XBPS_TARGET_WORDSIZE} + + # Prepare target sysroot + ln -sf usr/lib build_root/${sysroot}/lib + ln -sf lib build_root/${sysroot}/usr/libexec + + _void_cross_build_binutils ${tgt} ${binutils_ver} + + # Prepare environment so we can use temporary prefix + local oldpath="$PATH" + local oldldlib="$LD_LIBRARY_PATH" + + export PATH="${wrksrc}/build_root/usr/bin:$PATH" + export LD_LIBRARY_PATH="${wrksrc}/build_root/usr/lib:$PATH" + + _void_cross_build_bootstrap_gcc ${tgt} ${gcc_ver} + _void_cross_build_kernel_headers ${tgt} ${linux_ver} + + local ws=$(cat ${wrksrc}/.gcc_wordsize) + + # Now that we know the target wordsize, prepare symlinks + ln -sf usr/lib ${wrksrc}/build_root/${sysroot}/lib${ws} + ln -sf lib ${wrksrc}/build_root/${sysroot}/usr/lib${ws} + + if [ -f ${wrksrc}/.musl_version ]; then + _void_cross_build_musl ${tgt} ${libc_ver} + _void_cross_build_libucontext ${tgt} ${libucontext_ver} + else + _void_cross_build_glibc_headers ${tgt} ${libc_ver} + _void_cross_build_glibc ${tgt} ${libc_ver} + fi + + _void_cross_build_gcc ${tgt} ${gcc_ver} + + # restore this stuff in case later hooks depend on it + export PATH="$oldpath" + export LD_LIBRARY_PATH="$oldldlib" +} + +do_install() { + # We need to be able to access binutils in the root + local oldpath="$PATH" + local oldldlib="$LD_LIBRARY_PATH" + export PATH="${wrksrc}/build_root/usr/bin:$PATH" + export LD_LIBRARY_PATH="${wrksrc}/build_root/usr/lib:$PATH" + + local tgt=${sourcepkg/cross-} + local sysroot="/usr/${tgt}" + local ws=$(cat ${wrksrc}/.gcc_wordsize) + + # Core directories for the sysroot + # + # libexec is created for sysroot but not for dest, since in sysroot + # we configure glibc with separate libexec, elsewhere it's just lib + # and we want to delete the libexec from glibc afterwards to save space + mkdir -p ${DESTDIR}/${sysroot}/usr/{bin,lib,libexec,include,share} + # Sysroot base symlinks + ln -sf usr/bin ${DESTDIR}/${sysroot}/bin + ln -sf usr/lib ${DESTDIR}/${sysroot}/lib + ln -sf usr/lib ${DESTDIR}/${sysroot}/lib${ws} + ln -sf lib ${DESTDIR}/${sysroot}/usr/lib${ws} + ln -sf usr/include ${DESTDIR}/${sysroot}/include + + # Install Linux headers + cd ${wrksrc}/linux-$(cat ${wrksrc}/.linux_version) + cp -a usr/include ${DESTDIR}/${sysroot}/usr + + # Install binutils + cd ${wrksrc}/binutils_build + make install DESTDIR=${DESTDIR} + + # Install final gcc + cd ${wrksrc}/gcc_build + make install DESTDIR=${DESTDIR} + + # Move libcc1.so* to the sysroot + mv ${DESTDIR}/usr/lib/libcc1.so* ${DESTDIR}/${sysroot}/usr/lib + + local gcc_ver=$(cat ${wrksrc}/.gcc_version) + local gcc_patch=${gcc_ver/_*} + local gcc_minor=${gcc_patch%.*} + local gcc_major=${gcc_minor%.*} + + if [ -f ${wrksrc}/.musl_version ]; then + # Install musl + cd ${wrksrc}/musl_build + make DESTDIR=${DESTDIR}/${sysroot} install + + # Remove useless headers + rm -rf ${DESTDIR}/usr/lib/gcc/${tgt}/*/include-fixed + + # Make ld-musl.so symlinks relative + for f in ${DESTDIR}/${sysroot}/usr/lib/ld-musl-*.so.*; do + ln -sf libc.so ${f} + done + + cp libssp_nonshared.a ${DESTDIR}/${sysroot}/usr/lib/ + else + # Install glibc + cd ${wrksrc}/glibc_build + make install_root=${DESTDIR}/${sysroot} install install-headers + + # Remove bad header + rm -f ${DESTDIR}/usr/lib/gcc/${tgt}/${gcc_patch}/include-fixed/bits/statx.h + fi + + # minor-versioned symlinks + mv ${DESTDIR}/usr/lib/gcc/${tgt}/${gcc_patch} \ + ${DESTDIR}/usr/lib/gcc/${tgt}/${gcc_minor} + ln -sfr ${DESTDIR}/usr/lib/gcc/${tgt}/${gcc_minor} \ + ${DESTDIR}/usr/lib/gcc/${tgt}/${gcc_patch} + + # ditto for c++ headers + mv ${DESTDIR}/${sysroot}/usr/include/c++/${gcc_patch} \ + ${DESTDIR}/${sysroot}/usr/include/c++/${gcc_minor} + ln -sfr ${DESTDIR}/${sysroot}/usr/include/c++/${gcc_minor} \ + ${DESTDIR}/${sysroot}/usr/include/c++/${gcc_patch} + + # Symlinks for gnarl and gnat shared libraries + local adalib=usr/lib/gcc/${tgt}/${gcc_patch}/adalib + mv ${DESTDIR}/${adalib}/libgnarl-${gcc_major}.so \ + ${DESTDIR}/${sysroot}/usr/lib + mv ${DESTDIR}/${adalib}/libgnat-${gcc_major}.so \ + ${DESTDIR}/${sysroot}/usr/lib + ln -sf libgnarl-${gcc_major}.so ${DESTDIR}/${sysroot}/usr/lib/libgnarl.so + ln -sf libgnat-${gcc_major}.so ${DESTDIR}/${sysroot}/usr/lib/libgnat.so + rm -vf ${DESTDIR}/${adalib}/libgna{rl,t}.so + + # If libquadmath was forced (needed for gfortran on some platforms) + # then remove it because it conflicts with libquadmath package + rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.* + + # Remove libdep linker plugin because it conflicts with system binutils + rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep* + + # Remove leftover symlinks + rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE} + rm -f ${DESTDIR}/lib* + rm -f ${DESTDIR}/*bin + # Remove unnecessary stuff + rm -rf ${DESTDIR}/${sysroot}/{sbin,etc,var,libexec} + rm -rf ${DESTDIR}/${sysroot}/usr/{sbin,share,libexec} + rm -rf ${DESTDIR}/usr/share + rm -f ${DESTDIR}/usr/lib*/libiberty.a + + export PATH="$oldpath" + export LD_LIBRARY_PATH="$oldldlib" +} diff --git a/common/build-style/waf.sh b/common/build-style/waf.sh new file mode 100644 index 0000000..e943765 --- /dev/null +++ b/common/build-style/waf.sh @@ -0,0 +1,21 @@ +# +# This helper is for templates using WAF to build/install. +# +do_configure() { + : ${configure_script:=waf} + + PYTHON=/usr/bin/python2 python2 ${configure_script} configure \ + --prefix=/usr --libdir=/usr/lib${XBPS_TARGET_WORDSIZE} ${configure_args} +} + +do_build() { + : ${configure_script:=waf} + + PYTHON=/usr/bin/python2 python2 ${configure_script} build ${make_build_args} +} + +do_install() { + : ${configure_script:=waf} + + PYTHON=/usr/bin/python2 python2 ${configure_script} install --destdir=${DESTDIR} ${make_install_args} +} diff --git a/common/build-style/waf3.sh b/common/build-style/waf3.sh new file mode 100644 index 0000000..54fd221 --- /dev/null +++ b/common/build-style/waf3.sh @@ -0,0 +1,29 @@ +# +# This helper is for templates using WAF with python3 to build/install. +# +do_configure() { + : ${configure_script:=waf} + local cross_args + + if [[ $build_helper = *"qemu"* ]] && [ "$CROSS_BUILD" ]; then + # If the qemu build helper is specified, use it for cross builds + cross_args="--cross-compile --hostcc=${CC_FOR_BUILD} + --cross-execute=qemu-${XBPS_TARGET_QEMU_MACHINE}-static" + fi + + PYTHON=/usr/bin/python3 python3 ${configure_script} configure \ + --prefix=/usr --libdir=/usr/lib${XBPS_TARGET_WORDSIZE} \ + ${configure_args} ${cross_args} +} + +do_build() { + : ${configure_script:=waf} + + PYTHON=/usr/bin/python3 python3 ${configure_script} build ${make_build_args} +} + +do_install() { + : ${configure_script:=waf} + + PYTHON=/usr/bin/python3 python3 ${configure_script} install --destdir=${DESTDIR} ${make_install_args} +} diff --git a/common/build-style/zig-build.sh b/common/build-style/zig-build.sh new file mode 100644 index 0000000..205c4ca --- /dev/null +++ b/common/build-style/zig-build.sh @@ -0,0 +1,41 @@ +do_build() { + local zig_target zig_cpu + + # TODO: This duplication between build-profiles and cross-profiles + # is totally unnecessary. It would be nice if there was some way to + # avoid it. + if [ "$CROSS_BUILD" ]; then + zig_target="${XBPS_CROSS_ZIG_TARGET}" + zig_cpu="${XBPS_CROSS_ZIG_CPU}" + else + zig_target="${XBPS_ZIG_TARGET}" + zig_cpu="${XBPS_ZIG_CPU}" + fi + + # Inform zig of the required libc include paths. + cat > xbps_zig_libc.txt <<-EOF + include_dir=${XBPS_CROSS_BASE}/usr/include + sys_include_dir=${XBPS_CROSS_BASE}/usr/include + crt_dir=${XBPS_CROSS_BASE}/usr/lib + msvc_lib_dir= + kernel32_lib_dir= + gcc_dir= + EOF + + # The Zig build system only has a single install step, there is no + # way to build artifacts for a given prefix and then install those artifacts + # to that prefix at some later time. Therefore, we build and install to the zig-out + # directory and later copy the artifacts to the destdir in do_install(). + # We use zig-out to avoid path conflicts as it is the default install + # prefix used by the zig build system. + DESTDIR="zig-out" zig build \ + --sysroot "${XBPS_CROSS_BASE}" \ + --libc xbps_zig_libc.txt \ + -Dtarget="${zig_target}" -Dcpu="${zig_cpu}" \ + -Drelease-safe --prefix /usr install \ + ${configure_args} +} + +do_install() { + cp -r zig-out/* "${DESTDIR}" +} diff --git a/common/chroot-style/README b/common/chroot-style/README new file mode 100644 index 0000000..a5d89d0 --- /dev/null +++ b/common/chroot-style/README @@ -0,0 +1,13 @@ +CHROOT STYLES +============= + +This directory contains scripts to perform the chroot operation with xbps-src. +The scripts should accept at least 5 arguments: + + - $1 (MASTERDIR) masterdir to chroot + - $2 (DISTDIR) path to the void-packages directory + - $3 (HOSTDIR) path to hostdir + - $4 (EXTRA_ARGS) additional arguments to be passed + - $5 (CMD) command to execute + - $@ remaining arguments to pass + diff --git a/common/chroot-style/bwrap.sh b/common/chroot-style/bwrap.sh new file mode 100755 index 0000000..de43235 --- /dev/null +++ b/common/chroot-style/bwrap.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# +# This chroot script uses bubblewrap (see https://github.com/containers/bubblewrap) +# +set -e +readonly MASTERDIR="$1" +readonly DISTDIR="$2" +readonly HOSTDIR="$3" +readonly EXTRA_ARGS="$4" +shift 4 + +if ! command -v bwrap >/dev/null 2>&1; then + exit 1 +fi + +if [ -z "$MASTERDIR" -o -z "$DISTDIR" ]; then + echo "$0 MASTERDIR/DISTDIR not set" + exit 1 +fi + +exec bwrap --bind "$MASTERDIR" / --ro-bind "$DISTDIR" /void-packages \ + --dev /dev --tmpfs /tmp --proc /proc \ + ${HOSTDIR:+--bind "$HOSTDIR" /host} $EXTRA_ARGS "$@" diff --git a/common/chroot-style/ethereal.sh b/common/chroot-style/ethereal.sh new file mode 100755 index 0000000..a226465 --- /dev/null +++ b/common/chroot-style/ethereal.sh @@ -0,0 +1,135 @@ +#!/bin/sh +# +# This chroot script uses symlinks to emulate being in a chroot using +# the host system as the masterdir +# +# It will damage your host system, only use it in disposable +# containers. +# +# 2 extra steps required when using this chroot-style: +# 1. Symlink / to masterdir inside the void-packages repo +# 2. write the arch of the host system, as dictated by xbps-uhelper arch +# into /.xbps_chroot_init +# +# The supported way to make use of thie chroot-style is to create +# a root filesystem that has base-chroot and git installed and +# have it inside a container engine like Docker. +# +# Docker example: +# $ mkdir -p /tmp/image +# $ xbps-install -y -r /tmp/image \ +# -R http://mirrors.servercentral.com/voidlinux/current \ +# -S base-chroot +# $ tar -pC /tmp/image -c . | sudo docker import - voidlinux/masterdir +# $ rm -rf /tmp/image +# # docker run --rm -it \ +# -e XBPS_CHROOT_CMD=ethereal \ +# -e XBPS_ALLOW_CHROOT_BREAKOUT=yes \ +# -v $(pwd):/hostrepo voidlinux/masterdir \ +# /bin/bash -c 'ln -s / /hostrepo/masterdir && /hostrepo/xbps-src pkg ' +# + +readonly MASTERDIR="$1" +readonly DISTDIR="$2" +readonly HOSTDIR="$3" +readonly EXTRA_ARGS="$4" +readonly CMD="$5" +shift 5 + +if [ -z "$MASTERDIR" -o -z "$DISTDIR" ]; then + echo "$0 MASTERDIR/DISTDIR not set" + exit 1 +fi + +msg_red() { + # error messages in bold/red + [ -n "$NOCOLORS" ] || printf >&2 "\033[1m\033[31m" + printf "=> ERROR: %s\\n" "$@" >&2 + [ -n "$NOCOLORS" ] || printf >&2 "\033[m" +} + +fake_mount() { + # If we already have a symlink from the desired place + # to the base location then just return 0 + if [ -L "$2" -a "$(readlink "$2")" = "$1" ]; then + return 0 + fi + + if [ -d "$2" ] && ! rmdir "$2" >/dev/null 2>&1; then + msg_red "Failed to remove $2, not empty ?\n" + exit 1 + fi + + [ -f "$2" -o -L "$2" ] && rm -f "$2" + + ln -s "$1" "$2" + echo "linked $2 -> $1" +} + +if [ "${XBPS_ALLOW_CHROOT_BREAKOUT}" != "yes" ]; then + msg_red "chroot-style 'ethereal' requires XBPS_ALLOW_CHROOT_BREAKOUT=yes\n" + msg_red "This chroot-style is meant for disposable containers and will destroy your system\n" + exit 1 +fi + +if [ ! -L "$MASTERDIR" -o "$(readlink "$MASTERDIR")" != "/" ]; then + msg_red "$MASTERDIR isn't symlinked to /!\n" + exit 1 +fi + +fake_mount "$DISTDIR" "$MASTERDIR"/void-packages + +# Do the same for hostdir +if [ -n "$HOSTDIR" ]; then + fake_mount "$HOSTDIR" "$MASTERDIR"/host +fi + +# xbps-src may send some other binds, parse them here +while getopts 'b:' c -- "$EXTRA_ARGS"; do + # Skip everything that's not a bind + [ "$c" = "b" ] || continue + + from="${OPTARG%:*}" + to="${OPTARG#*:}" + + fake_mount "$from" "$to" + + mounts="${mounts} $to" +done + +# Store current directory for returning later +OLDPWD="$(pwd)" + +# To give the illusion we entered the chroot, cd to / +cd / || { + msg_red "Failed to change directory to root!\n" + exit 1 ; } + +# Tell xbps-src that we are "in the chroot" +# Start with `env` so our environment var's stay the same +env IN_CHROOT=1 $CMD $@ + +# Store return of the command we care about +ret="$?" + +# Return to OLDPWD +cd "${OLDPWD}" + +# Remove the symlink and restore an empty dir to simulate +# an umount operation. +if [ -n "$HOSTDIR" ]; then + rm -f "$MASTERDIR"/host + mkdir -p "$MASTERDIR"/host +fi + +# Same as the operation above, do it all for all mountpoints +# that were passed to us. +for m in $mounts; do + rm -f "$m" + mkdir -p "$m" +done + +rm -f "$MASTERDIR"/void-packages +mkdir -p "$MASTERDIR"/void-packages + +exit $ret diff --git a/common/chroot-style/uchroot.sh b/common/chroot-style/uchroot.sh new file mode 100755 index 0000000..5fe47eb --- /dev/null +++ b/common/chroot-style/uchroot.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# +# This chroot script uses xbps-uchroot(1). +# +readonly MASTERDIR="$1" +readonly DISTDIR="$2" +readonly HOSTDIR="$3" +readonly EXTRA_ARGS="$4" +readonly CMD="$5" +shift 5 + +if ! command -v xbps-uchroot >/dev/null 2>&1; then + exit 1 +fi + +if [ -z "$MASTERDIR" -o -z "$DISTDIR" ]; then + echo "$0 MASTERDIR/DISTDIR not set" + exit 1 +fi + +exec xbps-uchroot $EXTRA_ARGS -b $DISTDIR:/void-packages ${HOSTDIR:+-b $HOSTDIR:/host} -- $MASTERDIR $CMD $@ diff --git a/common/chroot-style/uunshare.sh b/common/chroot-style/uunshare.sh new file mode 100755 index 0000000..4d51464 --- /dev/null +++ b/common/chroot-style/uunshare.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# +# This chroot script uses xbps-uunshare(1) with user_namespaces(7). +# +readonly MASTERDIR="$1" +readonly DISTDIR="$2" +readonly HOSTDIR="$3" +readonly EXTRA_ARGS="$4" +readonly CMD="$5" +shift 5 + +if ! command -v xbps-uunshare >/dev/null 2>&1; then + exit 1 +fi + +if [ -z "$MASTERDIR" -o -z "$DISTDIR" ]; then + echo "$0 MASTERDIR/DISTDIR not set" + exit 1 +fi + +exec xbps-uunshare $EXTRA_ARGS -b $DISTDIR:/void-packages ${HOSTDIR:+-b $HOSTDIR:/host} -- $MASTERDIR $CMD $@ diff --git a/common/cross-profiles/README b/common/cross-profiles/README new file mode 100644 index 0000000..f2300b5 --- /dev/null +++ b/common/cross-profiles/README @@ -0,0 +1,19 @@ +CROSS PROFILES +============== + +This directory contains cross profiles to allow cross compilation for the specified target. +A cross profile file must provide the following variables: + + - XBPS_TARGET_MACHINE (as returned by uname -m + optional -musl suffix) + - XBPS_CROSS_TRIPLET (the cross compiler triplet) + - XBPS_CROSS_CFLAGS (C compiler flags for the cross compiler) + - XBPS_CROSS_CXXFLAGS (C++ compiler flags for the cross compiler) + - XBPS_CROSS_FFLAGS (Fortran compiler flags for the cross compiler) + - XBPS_CROSS_CPPFLAGS (Preprocessor flags for the cross compiler) + - XBPS_CROSS_LDFLAGS (Linker flags for the cross compiler) + - XBPS_CROSS_RUST_TARGET (the rust triplet for the rust cross compiler) + - XBPS_CROSS_RUSTFLAGS (rust compiler flags for the cross compiler) + - XBPS_CROSS_ZIG_TARGET (the arch-os-abi target triplet for zig) + - XBPS_CROSS_ZIG_CPU (the cpu/feature set for zig) + +A source package matching `cross-${XBPS_CROSS_TRIPLET}' must also exist. diff --git a/common/cross-profiles/aarch64-musl.sh b/common/cross-profiles/aarch64-musl.sh new file mode 100644 index 0000000..892abba --- /dev/null +++ b/common/cross-profiles/aarch64-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for ARMv8. + +XBPS_TARGET_MACHINE="aarch64-musl" +XBPS_TARGET_QEMU_MACHINE="aarch64" +XBPS_CROSS_TRIPLET="aarch64-linux-musl" +XBPS_CROSS_CFLAGS="-march=armv8-a" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="aarch64-unknown-linux-musl" +XBPS_CROSS_ZIG_TARGET="aarch64-linux-musl" +XBPS_CROSS_ZIG_CPU="baseline" diff --git a/common/cross-profiles/aarch64.sh b/common/cross-profiles/aarch64.sh new file mode 100644 index 0000000..7a99e6f --- /dev/null +++ b/common/cross-profiles/aarch64.sh @@ -0,0 +1,12 @@ +# Cross build profile for ARMv8. + +XBPS_TARGET_MACHINE="aarch64" +XBPS_TARGET_QEMU_MACHINE="aarch64" +XBPS_CROSS_TRIPLET="aarch64-linux-gnu" +XBPS_CROSS_CFLAGS="-march=armv8-a" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="aarch64-unknown-linux-gnu" +XBPS_CROSS_ZIG_TARGET="aarch64-linux-gnu" +XBPS_CROSS_ZIG_CPU="baseline" diff --git a/common/cross-profiles/armv5te-musl.sh b/common/cross-profiles/armv5te-musl.sh new file mode 120000 index 0000000..bb05c64 --- /dev/null +++ b/common/cross-profiles/armv5te-musl.sh @@ -0,0 +1 @@ +armv5tel-musl.sh \ No newline at end of file diff --git a/common/cross-profiles/armv5te.sh b/common/cross-profiles/armv5te.sh new file mode 120000 index 0000000..efe0829 --- /dev/null +++ b/common/cross-profiles/armv5te.sh @@ -0,0 +1 @@ +armv5tel.sh \ No newline at end of file diff --git a/common/cross-profiles/armv5tel-musl.sh b/common/cross-profiles/armv5tel-musl.sh new file mode 100644 index 0000000..0eb813a --- /dev/null +++ b/common/cross-profiles/armv5tel-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for ARM GNU EABI5 Soft Float and Musl libc. + +XBPS_TARGET_MACHINE="armv5tel-musl" +XBPS_TARGET_QEMU_MACHINE="arm" +XBPS_CROSS_TRIPLET="arm-linux-musleabi" +XBPS_CROSS_CFLAGS="-march=armv5te -msoft-float -mfloat-abi=soft" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="arm-unknown-linux-musleabi" +XBPS_CROSS_ZIG_TARGET="arm-linux-musleabi" +XBPS_CROSS_ZIG_CPU="generic+v5te+soft_float" diff --git a/common/cross-profiles/armv5tel.sh b/common/cross-profiles/armv5tel.sh new file mode 100644 index 0000000..f582836 --- /dev/null +++ b/common/cross-profiles/armv5tel.sh @@ -0,0 +1,12 @@ +# Cross build profile for ARM GNU EABI5 Soft Float. + +XBPS_TARGET_MACHINE="armv5tel" +XBPS_TARGET_QEMU_MACHINE="arm" +XBPS_CROSS_TRIPLET="arm-linux-gnueabi" +XBPS_CROSS_CFLAGS="-march=armv5te -msoft-float -mfloat-abi=soft" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="arm-unknown-linux-gnueabi" +XBPS_CROSS_ZIG_TARGET="arm-linux-gnueabi" +XBPS_CROSS_ZIG_CPU="generic+v5te+soft_float" diff --git a/common/cross-profiles/armv6hf-musl.sh b/common/cross-profiles/armv6hf-musl.sh new file mode 120000 index 0000000..001b61a --- /dev/null +++ b/common/cross-profiles/armv6hf-musl.sh @@ -0,0 +1 @@ +armv6l-musl.sh \ No newline at end of file diff --git a/common/cross-profiles/armv6hf.sh b/common/cross-profiles/armv6hf.sh new file mode 120000 index 0000000..26afeb1 --- /dev/null +++ b/common/cross-profiles/armv6hf.sh @@ -0,0 +1 @@ +armv6l.sh \ No newline at end of file diff --git a/common/cross-profiles/armv6l-musl.sh b/common/cross-profiles/armv6l-musl.sh new file mode 100644 index 0000000..5f32f9b --- /dev/null +++ b/common/cross-profiles/armv6l-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for ARM EABI5 Hard Float and Musl libc. + +XBPS_TARGET_MACHINE="armv6l-musl" +XBPS_TARGET_QEMU_MACHINE="arm" +XBPS_CROSS_TRIPLET="arm-linux-musleabihf" +XBPS_CROSS_CFLAGS="-march=armv6 -mfpu=vfp -mfloat-abi=hard" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="arm-unknown-linux-musleabihf" +XBPS_CROSS_ZIG_TARGET="arm-linux-musleabihf" +XBPS_CROSS_ZIG_CPU="generic+v6" diff --git a/common/cross-profiles/armv6l.sh b/common/cross-profiles/armv6l.sh new file mode 100644 index 0000000..7040996 --- /dev/null +++ b/common/cross-profiles/armv6l.sh @@ -0,0 +1,12 @@ +# Cross build profile for ARM GNU EABI5 Hard Float. + +XBPS_TARGET_MACHINE="armv6l" +XBPS_TARGET_QEMU_MACHINE="arm" +XBPS_CROSS_TRIPLET="arm-linux-gnueabihf" +XBPS_CROSS_CFLAGS="-march=armv6 -mfpu=vfp -mfloat-abi=hard" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="arm-unknown-linux-gnueabihf" +XBPS_CROSS_ZIG_TARGET="arm-linux-gnueabihf" +XBPS_CROSS_ZIG_CPU="generic+v6" diff --git a/common/cross-profiles/armv7hf-musl.sh b/common/cross-profiles/armv7hf-musl.sh new file mode 120000 index 0000000..7f37aa0 --- /dev/null +++ b/common/cross-profiles/armv7hf-musl.sh @@ -0,0 +1 @@ +armv7l-musl.sh \ No newline at end of file diff --git a/common/cross-profiles/armv7hf.sh b/common/cross-profiles/armv7hf.sh new file mode 120000 index 0000000..a00f4c3 --- /dev/null +++ b/common/cross-profiles/armv7hf.sh @@ -0,0 +1 @@ +armv7l.sh \ No newline at end of file diff --git a/common/cross-profiles/armv7l-musl.sh b/common/cross-profiles/armv7l-musl.sh new file mode 100644 index 0000000..9a38832 --- /dev/null +++ b/common/cross-profiles/armv7l-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for ARMv7 EABI Hard Float and Musl libc. + +XBPS_TARGET_MACHINE="armv7l-musl" +XBPS_TARGET_QEMU_MACHINE="arm" +XBPS_CROSS_TRIPLET="armv7l-linux-musleabihf" +XBPS_CROSS_CFLAGS="-march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="armv7-unknown-linux-musleabihf" +XBPS_CROSS_ZIG_TARGET="arm-linux-musleabihf" +XBPS_CROSS_ZIG_CPU="generic+v7a+vfp3" diff --git a/common/cross-profiles/armv7l.sh b/common/cross-profiles/armv7l.sh new file mode 100644 index 0000000..b8c9c41 --- /dev/null +++ b/common/cross-profiles/armv7l.sh @@ -0,0 +1,12 @@ +# Cross build profile for ARMv7 GNU EABI Hard Float. + +XBPS_TARGET_MACHINE="armv7l" +XBPS_TARGET_QEMU_MACHINE="arm" +XBPS_CROSS_TRIPLET="armv7l-linux-gnueabihf" +XBPS_CROSS_CFLAGS="-march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="armv7-unknown-linux-gnueabihf" +XBPS_CROSS_ZIG_TARGET="arm-linux-gnueabihf" +XBPS_CROSS_ZIG_CPU="generic+v7a+vfp3" diff --git a/common/cross-profiles/i686-musl.sh b/common/cross-profiles/i686-musl.sh new file mode 100644 index 0000000..c1cdf60 --- /dev/null +++ b/common/cross-profiles/i686-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for i686 and Musl libc. + +XBPS_TARGET_MACHINE="i686-musl" +XBPS_TARGET_QEMU_MACHINE="i386" +XBPS_CROSS_TRIPLET="i686-linux-musl" +XBPS_CROSS_CFLAGS="-march=i686" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="i686-unknown-linux-musl" +XBPS_CROSS_ZIG_TARGET="i686-linux-musl" +XBPS_CROSS_ZIG_CPU="baseline" diff --git a/common/cross-profiles/i686.sh b/common/cross-profiles/i686.sh new file mode 100644 index 0000000..16f4401 --- /dev/null +++ b/common/cross-profiles/i686.sh @@ -0,0 +1,12 @@ +# Cross build profile for i686 GNU. + +XBPS_TARGET_MACHINE="i686" +XBPS_TARGET_QEMU_MACHINE="i386" +XBPS_CROSS_TRIPLET="i686-pc-linux-gnu" +XBPS_CROSS_CFLAGS="-march=i686" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="i686-unknown-linux-gnu" +XBPS_CROSS_ZIG_TARGET="i386-linux-gnu" +XBPS_CROSS_ZIG_CPU="_i686+sse2" diff --git a/common/cross-profiles/mips-musl.sh b/common/cross-profiles/mips-musl.sh new file mode 100644 index 0000000..7c44de7 --- /dev/null +++ b/common/cross-profiles/mips-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for MIPS32 BE soft float. + +XBPS_TARGET_MACHINE="mips-musl" +XBPS_TARGET_QEMU_MACHINE="mips" +XBPS_CROSS_TRIPLET="mips-linux-musl" +XBPS_CROSS_CFLAGS="-mtune=mips32r2 -mabi=32 -msoft-float" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="mips-unknown-linux-musl" +XBPS_CROSS_ZIG_TARGET="mips-linux-musl" +XBPS_CROSS_ZIG_CPU="generic+soft_float" diff --git a/common/cross-profiles/mipsel-musl.sh b/common/cross-profiles/mipsel-musl.sh new file mode 100644 index 0000000..fa4390c --- /dev/null +++ b/common/cross-profiles/mipsel-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for MIPS32 LE soft float. + +XBPS_TARGET_MACHINE="mipsel-musl" +XBPS_TARGET_QEMU_MACHINE="mipsel" +XBPS_CROSS_TRIPLET="mipsel-linux-musl" +XBPS_CROSS_CFLAGS="-mtune=mips32r2 -mabi=32 -msoft-float" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="mipsel-unknown-linux-musl" +XBPS_CROSS_ZIG_TARGET="mipsel-linux-musl" +XBPS_CROSS_ZIG_CPU="generic+soft_float" diff --git a/common/cross-profiles/mipselhf-musl.sh b/common/cross-profiles/mipselhf-musl.sh new file mode 100644 index 0000000..49f4558 --- /dev/null +++ b/common/cross-profiles/mipselhf-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for MIPS32 LE hardfloat. + +XBPS_TARGET_MACHINE="mipselhf-musl" +XBPS_TARGET_QEMU_MACHINE="mipsel" +XBPS_CROSS_TRIPLET="mipsel-linux-muslhf" +XBPS_CROSS_CFLAGS="-mtune=mips32r2 -mabi=32 -mhard-float" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="mipsel-unknown-linux-musl" +XBPS_CROSS_ZIG_TARGET="mipsel-linux-musl" +XBPS_CROSS_ZIG_CPU="generic" diff --git a/common/cross-profiles/mipshf-musl.sh b/common/cross-profiles/mipshf-musl.sh new file mode 100644 index 0000000..513391b --- /dev/null +++ b/common/cross-profiles/mipshf-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for MIPS32 BE hard float. + +XBPS_TARGET_MACHINE="mipshf-musl" +XBPS_TARGET_QEMU_MACHINE="mips" +XBPS_CROSS_TRIPLET="mips-linux-muslhf" +XBPS_CROSS_CFLAGS="-mtune=mips32r2 -mabi=32 -mhard-float" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="mips-unknown-linux-musl" +XBPS_CROSS_ZIG_TARGET="mips-linux-musl" +XBPS_CROSS_ZIG_CPU="generic" diff --git a/common/cross-profiles/ppc-musl.sh b/common/cross-profiles/ppc-musl.sh new file mode 100644 index 0000000..327ae23 --- /dev/null +++ b/common/cross-profiles/ppc-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for PowerPC. + +XBPS_TARGET_MACHINE="ppc-musl" +XBPS_TARGET_QEMU_MACHINE="ppc" +XBPS_CROSS_TRIPLET="powerpc-linux-musl" +XBPS_CROSS_CFLAGS="-mtune=G4" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="powerpc-unknown-linux-musl" +XBPS_ZIG_TARGET="powerpc-linux-musl" +XBPS_ZIG_CPU="baseline" diff --git a/common/cross-profiles/ppc.sh b/common/cross-profiles/ppc.sh new file mode 100644 index 0000000..787f6bb --- /dev/null +++ b/common/cross-profiles/ppc.sh @@ -0,0 +1,12 @@ +# Cross build profile for PowerPC. + +XBPS_TARGET_MACHINE="ppc" +XBPS_TARGET_QEMU_MACHINE="ppc" +XBPS_CROSS_TRIPLET="powerpc-linux-gnu" +XBPS_CROSS_CFLAGS="-mtune=G4" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="powerpc-unknown-linux-gnu" +XBPS_ZIG_TARGET="powerpc-linux-gnu" +XBPS_ZIG_CPU="baseline" diff --git a/common/cross-profiles/ppc64-musl.sh b/common/cross-profiles/ppc64-musl.sh new file mode 100644 index 0000000..c4b0f35 --- /dev/null +++ b/common/cross-profiles/ppc64-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for ppc64 big-endian musl. + +XBPS_TARGET_MACHINE="ppc64-musl" +XBPS_TARGET_QEMU_MACHINE="ppc64" +XBPS_CROSS_TRIPLET="powerpc64-linux-musl" +XBPS_CROSS_CFLAGS="-mcpu=970 -mtune=power9" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="powerpc64-unknown-linux-musl" +XBPS_CROSS_ZIG_TARGET="powerpc64-linux-musl" +XBPS_CROSS_ZIG_CPU="970" diff --git a/common/cross-profiles/ppc64.sh b/common/cross-profiles/ppc64.sh new file mode 100644 index 0000000..7ed5bc0 --- /dev/null +++ b/common/cross-profiles/ppc64.sh @@ -0,0 +1,12 @@ +# Cross build profile for ppc64 big-endian GNU. + +XBPS_TARGET_MACHINE="ppc64" +XBPS_TARGET_QEMU_MACHINE="ppc64" +XBPS_CROSS_TRIPLET="powerpc64-linux-gnu" +XBPS_CROSS_CFLAGS="-mcpu=970 -mtune=power9" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="powerpc64-unknown-linux-gnu" +XBPS_CROSS_ZIG_TARGET="powerpc64-linux-gnu" +XBPS_CROSS_ZIG_CPU="970" diff --git a/common/cross-profiles/ppc64le-musl.sh b/common/cross-profiles/ppc64le-musl.sh new file mode 100644 index 0000000..df18c30 --- /dev/null +++ b/common/cross-profiles/ppc64le-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for ppc64 little-endian musl. + +XBPS_TARGET_MACHINE="ppc64le-musl" +XBPS_TARGET_QEMU_MACHINE="ppc64le" +XBPS_CROSS_TRIPLET="powerpc64le-linux-musl" +XBPS_CROSS_CFLAGS="-mtune=power9" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="powerpc64le-unknown-linux-musl" +XBPS_CROSS_ZIG_TARGET="powerpc64le-linux-musl" +XBPS_CROSS_ZIG_CPU="baseline" diff --git a/common/cross-profiles/ppc64le.sh b/common/cross-profiles/ppc64le.sh new file mode 100644 index 0000000..3fe7b2d --- /dev/null +++ b/common/cross-profiles/ppc64le.sh @@ -0,0 +1,12 @@ +# Cross build profile for ppc64 little-endian GNU. + +XBPS_TARGET_MACHINE="ppc64le" +XBPS_TARGET_QEMU_MACHINE="ppc64le" +XBPS_CROSS_TRIPLET="powerpc64le-linux-gnu" +XBPS_CROSS_CFLAGS="-mtune=power9" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="powerpc64le-unknown-linux-gnu" +XBPS_CROSS_ZIG_TARGET="powerpc64le-linux-gnu" +XBPS_CROSS_ZIG_CPU="baseline" diff --git a/common/cross-profiles/ppcle-musl.sh b/common/cross-profiles/ppcle-musl.sh new file mode 100644 index 0000000..48e27c0 --- /dev/null +++ b/common/cross-profiles/ppcle-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for little endian PowerPC. + +XBPS_TARGET_MACHINE="ppcle-musl" +XBPS_TARGET_QEMU_MACHINE="ppcle" +XBPS_CROSS_TRIPLET="powerpcle-linux-musl" +XBPS_CROSS_CFLAGS="-mcpu=power8 -mtune=power9" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="powerpcle-unknown-linux-musl" +XBPS_CROSS_ZIG_TARGET="powerpcle-linux-musl" +XBPS_CROSS_ZIG_CPU="pwr8" diff --git a/common/cross-profiles/ppcle.sh b/common/cross-profiles/ppcle.sh new file mode 100644 index 0000000..a591582 --- /dev/null +++ b/common/cross-profiles/ppcle.sh @@ -0,0 +1,12 @@ +# Cross build profile for little endian PowerPC. + +XBPS_TARGET_MACHINE="ppcle" +XBPS_TARGET_QEMU_MACHINE="ppcle" +XBPS_CROSS_TRIPLET="powerpcle-linux-gnu" +XBPS_CROSS_CFLAGS="-mcpu=power8 -mtune=power9" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="powerpcle-unknown-linux-gnu" +XBPS_CROSS_ZIG_TARGET="powerpcle-linux-gnu" +XBPS_CROSS_ZIG_CPU="pwr8" diff --git a/common/cross-profiles/riscv64.sh b/common/cross-profiles/riscv64.sh new file mode 100644 index 0000000..18103d0 --- /dev/null +++ b/common/cross-profiles/riscv64.sh @@ -0,0 +1,12 @@ +# Cross build profile for riscv64 and Musl libc. + +XBPS_TARGET_MACHINE="riscv64" +XBPS_TARGET_QEMU_MACHINE="riscv64" +XBPS_CROSS_TRIPLET="riscv64-linux-gnu" +XBPS_CROSS_CFLAGS="-march=rv64imafdc" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="riscv64gc-unknown-linux-gnu" +XBPS_CROSS_ZIG_TARGET="riscv64-linux-gnu" +XBPS_CROSS_ZIG_CPU="baseline" diff --git a/common/cross-profiles/x86_64-musl.sh b/common/cross-profiles/x86_64-musl.sh new file mode 100644 index 0000000..38642a0 --- /dev/null +++ b/common/cross-profiles/x86_64-musl.sh @@ -0,0 +1,12 @@ +# Cross build profile for x86_64 and Musl libc. + +XBPS_TARGET_MACHINE="x86_64-musl" +XBPS_TARGET_QEMU_MACHINE="x86_64" +XBPS_CROSS_TRIPLET="x86_64-linux-musl" +XBPS_CROSS_CFLAGS="-mtune=generic" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="x86_64-unknown-linux-musl" +XBPS_CROSS_ZIG_TARGET="x86_64-linux-musl" +XBPS_CROSS_ZIG_CPU="baseline" diff --git a/common/cross-profiles/x86_64.sh b/common/cross-profiles/x86_64.sh new file mode 100644 index 0000000..bd966d0 --- /dev/null +++ b/common/cross-profiles/x86_64.sh @@ -0,0 +1,12 @@ +# Cross build profile for x86_64 GNU. + +XBPS_TARGET_MACHINE="x86_64" +XBPS_TARGET_QEMU_MACHINE="x86_64" +XBPS_CROSS_TRIPLET="x86_64-linux-gnu" +XBPS_CROSS_CFLAGS="-mtune=generic" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="x86_64-unknown-linux-gnu" +XBPS_CROSS_ZIG_TARGET="x86_64-linux-gnu" +XBPS_CROSS_ZIG_CPU="baseline" diff --git a/common/environment/README b/common/environment/README new file mode 100644 index 0000000..2491ff5 --- /dev/null +++ b/common/environment/README @@ -0,0 +1,28 @@ +ENVIRONMENT SHELL SNIPPETS +========================== + +This directory contains shell files (must not be executable nor contain a shebang) +that are read by xbps-src when building source packages. The shell files +are read in lexical order (as ordered by shell rules). + +These files shall set or unset environment variables while building packages. +Only files with the `.sh' extension are read, so this file will be simply ignored. + +The following directories are used to set the order in which the shell snippets +should be read by xbps-src: + + * build-style (to set vars for a specific build_style helper) + * setup (before reading template) + * setup-subpkg (before running the subpkg _package() function) + * fetch (before running fetch phase) + * extract (before running extract phase) + * configure (before running configure phase) + * build (before running build phase) + * check (before running check phase) + * install (before running install phase) + * pkg (before running pkg phase) + +NOTES +~~~~~ +* Symlinks can be created (relative) to make a shell snippet available in + multiple phases. diff --git a/common/environment/build-style/.empty b/common/environment/build-style/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/environment/build-style/R-cran.sh b/common/environment/build-style/R-cran.sh new file mode 100644 index 0000000..0cb7c90 --- /dev/null +++ b/common/environment/build-style/R-cran.sh @@ -0,0 +1,13 @@ +makedepends+=" R" +depends+=" R" +create_wrksrc=required +build_wrksrc="${pkgname#R-cran-}" + +# default to cran +if [ -z "$distfiles" ]; then + distfiles=" https://cran.r-project.org/src/contrib/Archive/${pkgname#R-cran-}/${pkgname#R-cran-}_${version//r/-}.tar.gz" + case " $XBPS_DISTFILES_MIRROR " in + *" https://cran.r-project.org/src/contrib "*) ;; + *) XBPS_DISTFILES_MIRROR+=" https://cran.r-project.org/src/contrib" ;; + esac +fi diff --git a/common/environment/build-style/cargo.sh b/common/environment/build-style/cargo.sh new file mode 100644 index 0000000..473750c --- /dev/null +++ b/common/environment/build-style/cargo.sh @@ -0,0 +1,11 @@ +hostmakedepends+=" cargo" + +if ! [[ "$pkgname" =~ ^cargo-auditable(-bootstrap)?$ ]]; then + hostmakedepends+=" cargo-auditable" +fi + +if [ "$CROSS_BUILD" ]; then + makedepends+=" rust-std" +fi + +build_helper+=" rust" diff --git a/common/environment/build-style/cmake.sh b/common/environment/build-style/cmake.sh new file mode 100644 index 0000000..19b8f35 --- /dev/null +++ b/common/environment/build-style/cmake.sh @@ -0,0 +1,10 @@ +if [ "$CHROOT_READY" ]; then + if [ "$pkgname" != cmake ]; then + hostmakedepends+=" cmake" + fi + if [ "${make_cmd:-ninja}" = ninja ]; then + hostmakedepends+=" ninja" + fi +fi + +export CTEST_OUTPUT_ON_FAILURE=TRUE diff --git a/common/environment/build-style/gem.sh b/common/environment/build-style/gem.sh new file mode 100644 index 0000000..73a97bd --- /dev/null +++ b/common/environment/build-style/gem.sh @@ -0,0 +1,8 @@ +lib32disabled=yes +hostmakedepends+=" ruby" +depends+=" ruby" + +# default to rubygems +if [ -z "$distfiles" ]; then + distfiles="https://rubygems.org/downloads/${pkgname#ruby-}-${version}.gem" +fi diff --git a/common/environment/build-style/gemspec.sh b/common/environment/build-style/gemspec.sh new file mode 100644 index 0000000..b3025a9 --- /dev/null +++ b/common/environment/build-style/gemspec.sh @@ -0,0 +1,3 @@ +lib32disabled=yes +hostmakedepends+=" ruby-devel" +makedepends+=" ruby-devel" diff --git a/common/environment/build-style/go.sh b/common/environment/build-style/go.sh new file mode 100644 index 0000000..68f88c6 --- /dev/null +++ b/common/environment/build-style/go.sh @@ -0,0 +1,50 @@ +if [ -z "$hostmakedepends" -o "${hostmakedepends##*gcc-go-tools*}" ]; then + # gc compiler + if [ -z "$archs" ]; then + archs="aarch64* armv[567]* i686* x86_64* ppc64le*" + fi + hostmakedepends+=" go" + nopie=yes +else + # gccgo compiler + if [ -z "$archs" ]; then + # we have support for these in our gcc + archs="aarch64* armv[567]* i686* x86_64* ppc64*" + fi + if [ "$CROSS_BUILD" ]; then + # target compiler to use; otherwise it'll just call gccgo + export GCCGO="${XBPS_CROSS_TRIPLET}-gccgo" + fi +fi + +case "$XBPS_TARGET_MACHINE" in + aarch64*) export GOARCH=arm64;; + armv5*) export GOARCH=arm; export GOARM=5;; + armv6*) export GOARCH=arm; export GOARM=6;; + armv7*) export GOARCH=arm; export GOARM=7;; + i686*) export GOARCH=386;; + x86_64*) export GOARCH=amd64;; + ppc64le*) export GOARCH=ppc64le;; + ppc64*) export GOARCH=ppc64;; + ppc*) export GOARCH=ppc;; + mipsel*) export GOARCH=mipsle;; + mips*) export GOARCH=mips;; +esac + +export GOPATH="${wrksrc}/_build-${pkgname}-xbps" +GOSRCPATH="${GOPATH}/src/${go_import_path}" +export CGO_CFLAGS="$CFLAGS" +export CGO_CPPFLAGS="$CPPFLAGS" +export CGO_CXXFLAGS="$CXXFLAGS" +export CGO_LDFLAGS="$LDFLAGS" +export CGO_ENABLED="${CGO_ENABLED:-1}" +export GO111MODULE=auto +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/haskell-stack.sh b/common/environment/build-style/haskell-stack.sh new file mode 100644 index 0000000..6b47c12 --- /dev/null +++ b/common/environment/build-style/haskell-stack.sh @@ -0,0 +1 @@ +hostmakedepends+=" ghc stack" diff --git a/common/environment/build-style/meson.sh b/common/environment/build-style/meson.sh new file mode 100644 index 0000000..d5a3c41 --- /dev/null +++ b/common/environment/build-style/meson.sh @@ -0,0 +1 @@ +hostmakedepends+=" meson" diff --git a/common/environment/build-style/perl-ModuleBuild.sh b/common/environment/build-style/perl-ModuleBuild.sh new file mode 100644 index 0000000..60d6771 --- /dev/null +++ b/common/environment/build-style/perl-ModuleBuild.sh @@ -0,0 +1,3 @@ +hostmakedepends+=" perl" +makedepends+=" perl" +lib32disabled=yes diff --git a/common/environment/build-style/perl-module.sh b/common/environment/build-style/perl-module.sh new file mode 100644 index 0000000..300ed9b --- /dev/null +++ b/common/environment/build-style/perl-module.sh @@ -0,0 +1,4 @@ +hostmakedepends+=" perl" +makedepends+=" perl" +depends+=" perl" +lib32disabled=yes diff --git a/common/environment/build-style/python2-module.sh b/common/environment/build-style/python2-module.sh new file mode 100644 index 0000000..3a3699b --- /dev/null +++ b/common/environment/build-style/python2-module.sh @@ -0,0 +1,2 @@ +lib32disabled=yes +makedepends+=" python" diff --git a/common/environment/build-style/python3-module.sh b/common/environment/build-style/python3-module.sh new file mode 100644 index 0000000..638f6be --- /dev/null +++ b/common/environment/build-style/python3-module.sh @@ -0,0 +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 new file mode 100644 index 0000000..f4faf98 --- /dev/null +++ b/common/environment/build-style/python3-pep517.sh @@ -0,0 +1,3 @@ +hostmakedepends+=" python3-build python3-installer" +lib32disabled=yes +build_helper+=" python3" diff --git a/common/environment/build-style/raku-dist.sh b/common/environment/build-style/raku-dist.sh new file mode 100644 index 0000000..01dc08f --- /dev/null +++ b/common/environment/build-style/raku-dist.sh @@ -0,0 +1,3 @@ +depends+=" rakudo" +checkdepends+=" perl" +hostmakedepends+=" rakudo" diff --git a/common/environment/build-style/ruby-module.sh b/common/environment/build-style/ruby-module.sh new file mode 100644 index 0000000..2444d3d --- /dev/null +++ b/common/environment/build-style/ruby-module.sh @@ -0,0 +1 @@ +lib32disabled=yes diff --git a/common/environment/build-style/scons.sh b/common/environment/build-style/scons.sh new file mode 100644 index 0000000..614fb2c --- /dev/null +++ b/common/environment/build-style/scons.sh @@ -0,0 +1 @@ +hostmakedepends+=" scons" diff --git a/common/environment/build-style/texmf.sh b/common/environment/build-style/texmf.sh new file mode 100644 index 0000000..b0ecf47 --- /dev/null +++ b/common/environment/build-style/texmf.sh @@ -0,0 +1,4 @@ +# rsync isn't needed for everything but it's far easier to just put it here +hostmakedepends+=" rsync" +# python_version isn't needed for everything either +python_version=3 diff --git a/common/environment/build-style/texmf/ownership.txt b/common/environment/build-style/texmf/ownership.txt new file mode 100644 index 0000000..01dcd2f --- /dev/null +++ b/common/environment/build-style/texmf/ownership.txt @@ -0,0 +1,215 @@ +dvipdfmx/dvipdfmx.cfg texlive +dvips/base/color.pro texlive +dvips/base/crop.pro texlive +dvips/base/finclude.pro texlive +dvips/base/hps.pro texlive +dvips/base/special.pro texlive +dvips/base/texc.pro texlive +dvips/base/tex.pro texlive +dvips/base/texps.pro texlive +dvips/gsftopk/render.ps texlive +dvips/xdvi/config.xdvi texlive +fonts/cmap/dvipdfmx/EUC-UCS2 texlive +fonts/enc/dvips/base/dvips-all.enc texlive +fonts/map/dvipdfmx/cid-x.map texlive +fonts/map/glyphlist/glyphlist.txt texlive +fonts/map/glyphlist/pdfglyphlist.txt texlive +psutils/paper.cfg texlive +scripts/a2ping/a2ping.pl texlive +scripts/accfonts/mkt1font texlive +scripts/accfonts/vpl2ovp texlive +scripts/accfonts/vpl2vpl texlive +scripts/adhocfilelist/adhocfilelist.sh texlive +scripts/albatross/albatross.sh texlive +scripts/arara/arara.sh texlive +scripts/attachfile2/pdfatfi.pl texlive +scripts/authorindex/authorindex texlive +scripts/bib2gls/bib2gls.sh texlive +scripts/bib2gls/convertgls2bib.sh texlive +scripts/bibexport/bibexport.sh texlive +scripts/bundledoc/arlatex texlive +scripts/bundledoc/bundledoc texlive +scripts/cachepic/cachepic.tlu texlive-pictures +scripts/checkcites/checkcites.lua texlive +scripts/checklistings/checklistings.sh texlive +scripts/chklref/chklref.pl texlive +scripts/cjk-gs-integrate/cjk-gs-integrate.pl texlive +scripts/clojure-pamphlet/pamphletangler texlive +scripts/cluttex/cluttex.lua texlive +scripts/context/perl/mptopdf.pl texlive +scripts/context/stubs/unix/contextjit texlive +scripts/context/stubs/unix/context texlive +scripts/context/stubs/unix/luatools texlive +scripts/context/stubs/unix/mtxrunjit texlive +scripts/context/stubs/unix/mtxrun texlive +scripts/context/stubs/unix/texexec texlive +scripts/context/stubs/unix/texmfstart texlive +scripts/convbkmk/convbkmk.rb texlive-langjapanese +scripts/crossrefware/bbl2bib.pl texlive +scripts/crossrefware/bibdoiadd.pl texlive +scripts/crossrefware/bibmradd.pl texlive +scripts/crossrefware/biburl2doi.pl texlive +scripts/crossrefware/bibzbladd.pl texlive +scripts/crossrefware/ltx2crossrefxml.pl texlive +scripts/ctanbib/ctanbib texlive +scripts/ctanify/ctanify texlive +scripts/ctan-o-mat/ctan-o-mat.pl texlive +scripts/ctanupload/ctanupload.pl texlive +scripts/de-macro/de-macro texlive +scripts/diadia/diadia.lua texlive-humanities +scripts/dosepsbin/dosepsbin.pl texlive +scripts/dtxgen/dtxgen texlive +scripts/dviasm/dviasm.py texlive +scripts/dviinfox/dviinfox.pl texlive +scripts/epspdf/epspdftk.tcl texlive +scripts/epspdf/epspdf.tlu texlive +scripts/epstopdf/epstopdf.pl texlive +scripts/exceltex/exceltex texlive +scripts/fig4latex/fig4latex texlive-pictures +scripts/findhyph/findhyph texlive +scripts/fontools/afm2afm texlive +scripts/fontools/autoinst texlive +scripts/fontools/ot2kpx texlive +scripts/fragmaster/fragmaster.pl texlive +scripts/getmap/getmapdl.lua texlive +scripts/git-latexdiff/git-latexdiff texlive +scripts/glossaries/makeglossaries-lite.lua texlive +scripts/glossaries/makeglossaries texlive +scripts/hyperxmp/hyperxmp-add-bytecount.pl texlive +scripts/installfont/installfont-tl texlive +scripts/jfmutil/jfmutil.pl texlive +scripts/ketcindy/ketcindy.pl texlive +scripts/kotex-utils/jamo-normalize.pl texlive-langkorean +scripts/kotex-utils/komkindex.pl texlive-langkorean +scripts/kotex-utils/ttf2kotexfont.pl texlive-langkorean +scripts/l3build/l3build.lua texlive-latexextra +scripts/latex2man/latex2man texlive +scripts/latex2nemeth/latex2nemeth texlive +scripts/latexdiff/latexdiff.pl texlive +scripts/latexdiff/latexdiff-vc.pl texlive +scripts/latexdiff/latexrevise.pl texlive +scripts/latexfileversion/latexfileversion texlive +scripts/latex-git-log/latex-git-log texlive +scripts/latexindent/latexindent.pl texlive +scripts/latexmk/latexmk.pl texlive +scripts/latexpand/latexpand texlive +scripts/latex-papersize/latex-papersize.py texlive +scripts/light-latex-make/llmk.lua texlive +scripts/lilyglyphs/lily-glyph-commands.py texlive-music +scripts/lilyglyphs/lily-image-commands.py texlive-music +scripts/lilyglyphs/lily-rebuild-pdfs.py texlive-music +scripts/listbib/listbib texlive +scripts/listings-ext/listings-ext.sh texlive +scripts/ltxfileinfo/ltxfileinfo texlive +scripts/ltximg/ltximg.pl texlive +scripts/luaotfload/luaotfload-tool.lua texlive +scripts/lwarp/lwarpmk.lua texlive +scripts/make4ht/make4ht texlive +scripts/makedtx/makedtx.pl texlive +scripts/match_parens/match_parens texlive +scripts/mathspic/mathspic.pl texlive-pictures +scripts/mf2pt1/mf2pt1.pl texlive +scripts/mkgrkindex/mkgrkindex texlive-langgreek +scripts/mkjobtexmf/mkjobtexmf.pl texlive +scripts/mkpic/mkpic texlive-pictures +scripts/m-tx/m-tx.lua texlive-music +scripts/multibibliography/multibibliography.pl texlive +scripts/musixtex/musixflx.lua texlive-music +scripts/musixtex/musixtex.lua texlive-music +scripts/pax/pdfannotextractor.pl texlive +scripts/pdfbook2/pdfbook2 texlive +scripts/pdfcrop/pdfcrop.pl texlive +scripts/pdfjam/pdfjam texlive +scripts/pdflatexpicscale/pdflatexpicscale.pl texlive +scripts/pdftex-quiet/pdftex-quiet texlive +scripts/pdfxup/pdfxup texlive +scripts/pedigree-perl/pedigree.pl texlive-pstricks +scripts/perltex/perltex.pl texlive +scripts/petri-nets/pn2pdf texlive +scripts/tikztosvg/tikztosvg texlive-pictures +scripts/pfarrei/a5toa4.tlu texlive +scripts/pfarrei/pfarrei.tlu texlive +scripts/pkfix-helper/pkfix-helper texlive +scripts/pkfix/pkfix.pl texlive +scripts/pmxchords/pmxchords.lua texlive-music +scripts/ps2eps/ps2eps.pl texlive +scripts/pst2pdf/pst2pdf.pl texlive-pstricks +scripts/pst-pdf/ps4pdf texlive-pstricks +scripts/psutils/extractres.pl texlive +scripts/psutils/includeres.pl texlive +scripts/psutils/psjoin.pl texlive +scripts/ptex2pdf/ptex2pdf.lua texlive +scripts/ptex-fontmaps/kanji-config-updmap.pl texlive-langjapanese +scripts/ptex-fontmaps/kanji-config-updmap-sys.sh texlive-langjapanese +scripts/ptex-fontmaps/kanji-config-updmap-user.sh texlive-langjapanese +scripts/ptex-fontmaps/kanji-fontmap-creator.pl texlive-langjapanese +scripts/purifyeps/purifyeps texlive +scripts/pygmentex/pygmentex.py texlive-latexextra +scripts/pythontex/depythontex.py texlive +scripts/pythontex/pythontex.py texlive +scripts/rubik/rubikrotation.pl texlive-games +scripts/simpdftex/simpdftex texlive +scripts/spix/spix.py texlive +scripts/splitindex/splitindex.pl texlive +scripts/srcredact/srcredact.pl texlive +scripts/sty2dtx/sty2dtx.pl texlive +scripts/svn-multi/svn-multi.pl texlive +scripts/tex4ebook/tex4ebook texlive +scripts/texcount/texcount.pl texlive +scripts/texdef/texdef.pl texlive +scripts/texdiff/texdiff texlive +scripts/texdirflatten/texdirflatten texlive +scripts/texdoc/texdoc.tlu texlive +scripts/texdoctk/texdoctk.pl texlive +scripts/texfot/texfot.pl texlive +scripts/texlive-extra/allcm.sh texlive +scripts/texlive-extra/allneeded.sh texlive +scripts/texlive-extra/dvi2fax.sh texlive +scripts/texlive-extra/dvired.sh texlive +scripts/texlive-extra/e2pall.pl texlive +scripts/texlive-extra/fontinst.sh texlive +scripts/texlive-extra/kpsetool.sh texlive +scripts/texlive-extra/kpsewhere.sh texlive +scripts/texlive-extra/ps2frag.sh texlive +scripts/texlive-extra/pslatex.sh texlive +scripts/texlive-extra/rubibtex.sh texlive-langcyrillic +scripts/texlive-extra/rumakeindex.sh texlive-langcyrillic +scripts/texlive-extra/texconfig-dialog.sh texlive +scripts/texlive-extra/texconfig.sh texlive +scripts/texlive-extra/texconfig-sys.sh texlive +scripts/texlive-extra/texlinks.sh texlive +scripts/texlive/fmtutil.pl texlive +scripts/texlive/fmtutil-sys.sh texlive +scripts/texlive/fmtutil-user.sh texlive +scripts/texlive/mktexlsr texlive +scripts/texlive/mktexmf texlive +scripts/texlive/mktexpk texlive +scripts/texlive/mktextfm texlive +scripts/texliveonfly/texliveonfly.py texlive +scripts/texlive/rungs.tlu texlive +scripts/texlive/tlmgr.pl texlive +scripts/texlive/updmap.pl texlive +scripts/texlive/updmap-sys.sh texlive +scripts/texlive/updmap-user.sh texlive +scripts/texloganalyser/texloganalyser texlive +scripts/texosquery/texosquery-jre5.sh texlive +scripts/texosquery/texosquery-jre8.sh texlive +scripts/texosquery/texosquery.sh texlive +scripts/texplate/texplate.sh texlive +scripts/thumbpdf/thumbpdf.pl texlive +scripts/tlshell/tlshell.tcl texlive +scripts/typeoutfileinfo/typeoutfileinfo.sh texlive +scripts/ulqda/ulqda.pl texlive-science +scripts/urlbst/urlbst texlive +scripts/vpe/vpe.pl texlive +scripts/webquiz/webquiz.py texlive +scripts/wordcount/wordcount.sh texlive +scripts/xindex/xindex.lua texlive +scripts/yplan/yplan texlive +texconfig/tcfmgr.map texlive +texconfig/tcfmgr texlive +web2c/fmtutil.cnf texlive +web2c/texmf.cnf texlive +xdvi/pixmap/toolbar2.xpm texlive +xdvi/pixmap/toolbar.xpm texlive +xdvi/XDvi texlive diff --git a/common/environment/build-style/void-cross.sh b/common/environment/build-style/void-cross.sh new file mode 100644 index 0000000..40df98e --- /dev/null +++ b/common/environment/build-style/void-cross.sh @@ -0,0 +1,5 @@ +lib32disabled=yes +nopie=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/build-style/waf.sh b/common/environment/build-style/waf.sh new file mode 100644 index 0000000..f5deafb --- /dev/null +++ b/common/environment/build-style/waf.sh @@ -0,0 +1 @@ +hostmakedepends+=" python" diff --git a/common/environment/build-style/waf3.sh b/common/environment/build-style/waf3.sh new file mode 100644 index 0000000..471e0da --- /dev/null +++ b/common/environment/build-style/waf3.sh @@ -0,0 +1 @@ +hostmakedepends+=" python3" diff --git a/common/environment/build-style/zig-build.sh b/common/environment/build-style/zig-build.sh new file mode 100644 index 0000000..049b7cd --- /dev/null +++ b/common/environment/build-style/zig-build.sh @@ -0,0 +1 @@ +hostmakedepends+=" zig" diff --git a/common/environment/build/.empty b/common/environment/build/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/environment/build/bootstrap.sh b/common/environment/build/bootstrap.sh new file mode 120000 index 0000000..a0cf1d2 --- /dev/null +++ b/common/environment/build/bootstrap.sh @@ -0,0 +1 @@ +../configure/bootstrap.sh \ No newline at end of file diff --git a/common/environment/build/ccache.sh b/common/environment/build/ccache.sh new file mode 120000 index 0000000..b5ed088 --- /dev/null +++ b/common/environment/build/ccache.sh @@ -0,0 +1 @@ +../configure/ccache.sh \ No newline at end of file diff --git a/common/environment/build/cross.sh b/common/environment/build/cross.sh new file mode 120000 index 0000000..43f6c48 --- /dev/null +++ b/common/environment/build/cross.sh @@ -0,0 +1 @@ +../configure/cross.sh \ No newline at end of file diff --git a/common/environment/build/debug-debug-prefix-map.sh b/common/environment/build/debug-debug-prefix-map.sh new file mode 120000 index 0000000..98c260a --- /dev/null +++ b/common/environment/build/debug-debug-prefix-map.sh @@ -0,0 +1 @@ +../configure/debug-debug-prefix-map.sh \ No newline at end of file diff --git a/common/environment/build/hardening.sh b/common/environment/build/hardening.sh new file mode 120000 index 0000000..f043590 --- /dev/null +++ b/common/environment/build/hardening.sh @@ -0,0 +1 @@ +../configure/hardening.sh \ No newline at end of file diff --git a/common/environment/build/pkg-config.sh b/common/environment/build/pkg-config.sh new file mode 120000 index 0000000..b8f8c44 --- /dev/null +++ b/common/environment/build/pkg-config.sh @@ -0,0 +1 @@ +../configure/pkg-config.sh \ No newline at end of file diff --git a/common/environment/check/bootstrap.sh b/common/environment/check/bootstrap.sh new file mode 120000 index 0000000..a0cf1d2 --- /dev/null +++ b/common/environment/check/bootstrap.sh @@ -0,0 +1 @@ +../configure/bootstrap.sh \ No newline at end of file diff --git a/common/environment/check/ccache.sh b/common/environment/check/ccache.sh new file mode 120000 index 0000000..b5ed088 --- /dev/null +++ b/common/environment/check/ccache.sh @@ -0,0 +1 @@ +../configure/ccache.sh \ No newline at end of file diff --git a/common/environment/check/cross.sh b/common/environment/check/cross.sh new file mode 120000 index 0000000..43f6c48 --- /dev/null +++ b/common/environment/check/cross.sh @@ -0,0 +1 @@ +../configure/cross.sh \ No newline at end of file diff --git a/common/environment/check/debug-debug-prefix-map.sh b/common/environment/check/debug-debug-prefix-map.sh new file mode 120000 index 0000000..98c260a --- /dev/null +++ b/common/environment/check/debug-debug-prefix-map.sh @@ -0,0 +1 @@ +../configure/debug-debug-prefix-map.sh \ No newline at end of file diff --git a/common/environment/check/hardening.sh b/common/environment/check/hardening.sh new file mode 120000 index 0000000..f043590 --- /dev/null +++ b/common/environment/check/hardening.sh @@ -0,0 +1 @@ +../configure/hardening.sh \ No newline at end of file diff --git a/common/environment/check/no_display.sh b/common/environment/check/no_display.sh new file mode 100644 index 0000000..b7a905f --- /dev/null +++ b/common/environment/check/no_display.sh @@ -0,0 +1 @@ +export QT_QPA_PLATFORM=${QT_QPA_PLATFORM:-offscreen} diff --git a/common/environment/check/pkg-config.sh b/common/environment/check/pkg-config.sh new file mode 120000 index 0000000..b8f8c44 --- /dev/null +++ b/common/environment/check/pkg-config.sh @@ -0,0 +1 @@ +../configure/pkg-config.sh \ No newline at end of file diff --git a/common/environment/configure/.empty b/common/environment/configure/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/environment/configure/autoconf_cache/aarch64-linux b/common/environment/configure/autoconf_cache/aarch64-linux new file mode 100644 index 0000000..4367f91 --- /dev/null +++ b/common/environment/configure/autoconf_cache/aarch64-linux @@ -0,0 +1,147 @@ +## # general +ac_cv_va_val_copy=${ac_cv_va_val_copy=yes} +ac_cv_func_lstat_dereferences_slashed_symlink=${ac_cv_func_lstat_dereferences_slashed_symlink=yes} +## ac_cv_func_lstat_empty_string_bug=${ac_cv_func_lstat_empty_string_bug=no} +## ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes} +## ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no} +## ac_cv_func_stat_empty_string_bug=${ac_cv_func_stat_empty_string_bug=no} +## ac_cv_func_stat_ignores_trailing_slash=${ac_cv_func_stat_ignores_trailing_slash=no} +## ac_libnet_have_packet_socket=${ac_libnet_have_packet_socket=yes} +## ac_cv_linux_vers=${ac_cv_linux_vers=2} +## ac_cv_need_trio=${ac_cv_need_trio=no} +ac_cv_sizeof___int64=0 +ac_cv_sizeof_char=1 +ac_cv_sizeof_int=4 +ac_cv_sizeof_long=8 +ac_cv_sizeof_long_long=8 +ac_cv_sizeof_short=2 +ac_cv_sizeof_size_t=8 +ac_cv_sizeof_ssize_t=8 +ac_cv_sizeof_void_p=8 +ac_cv_sizeof_unsigned_int=4 +ac_cv_sizeof_unsigned_long=8 +ac_cv_sizeof_bool=1 +## ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=16} +## ac_cv_sizeof_long_int=${ac_cv_sizeof_long_int=8} +## ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8} +## ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8} +ac_cv_sizeof_unsigned_short=2 +## ac_cv_sizeof_short_int=${ac_cv_sizeof_short_int=2} +## ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=8} +## ac_cv_sizeof_uid_t=${ac_cv_sizeof_uid_t=4} +## ac_cv_sizeof_gid_t=${ac_cv_sizeof_gid_t=4} +## ac_cv_sizeof_ino_t=${ac_cv_sizeof_ino_t=8} +## ac_cv_sizeof_dev_t=${ac_cv_sizeof_dev_t=8} +## ac_cv_sizeof_void_p=${ac_cv_sizeof_void_p=8} +## ac_cv_strerror_r_SUSv3=${ac_cv_strerror_r_SUSv3=no} +## db_cv_alignp_t=${db_cv_alignp_t='unsigned long long'} +## db_cv_align_t=${db_cv_align_t='unsigned long long'} +## db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes} +## db_cv_sprintf_count=${db_cv_sprintf_count=yes} +## ac_cv_sizeof_struct_iovec=16 + +# glib +glib_cv_hasinline=${glib_cv_hasinline=yes} +glib_cv_has__inline=${glib_cv_has__inline=yes} +glib_cv_has__inline__=${glib_cv_has__inline__=yes} +glib_cv_long_long_format=${glib_cv_long_long_format=ll} +glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no} +glib_cv_stack_grows=${glib_cv_stack_grows=no} +glib_cv_uscore=${glib_cv_uscore=no} +glib_cv_va_val_copy=${glib_cv_va_val_copy=yes} +ac_cv_alignof_guint32=4 +ac_cv_alignof_guint64=8 +ac_cv_alignof_unsigned_long=8 +ac_cv_alignof_char=1 +ac_cv_alignof_double=8 + +## nano_cv_func_regexec_segv_emptystr=${nano_cv_func_regexec_segv_emptystr=no} +## samba_cv_HAVE_VA_COPY=${samba_cv_HAVE_VA_COPY=yes} +## utils_cv_sys_open_max=${utils_cv_sys_open_max=1015} + +# gettext +am_cv_func_working_getline=${am_cv_func_working_getline=yes} + +#gcc +ac_cv_lib_m_sin=${ac_cv_lib_m_sin=yes} + +#orbit +libIDL_cv_long_long_format=ll + +## # ORBit2 +## ac_cv_alignof_CORBA_boolean=1 +## ac_cv_alignof_CORBA_char=1 +## ac_cv_alignof_CORBA_double=8 +## ac_cv_alignof_CORBA_float=4 +## ac_cv_alignof_CORBA_long=4 +## ac_cv_alignof_CORBA_long_double=8 +## ac_cv_alignof_CORBA_long_long=8 +## ac_cv_alignof_CORBA_octet=1 +## ac_cv_alignof_CORBA_pointer=8 +## ac_cv_alignof_CORBA_short=2 +## ac_cv_alignof_CORBA_struct=1 +## ac_cv_alignof_CORBA_wchar=2 +## +## lf_cv_sane_realloc=yes +as_cv_unaligned_access=${as_cv_unaligned_access=no} +## +## #unfs3 +## nfsd_cv_broken_setfsuid=${nfsd_cv_broken_setfsuid=0} +## nfsd_cv_func_statfs=${nfsd_cv_func_statfs=statfs2_bsize} +## nfsd_cv_bsd_signals=${nfsd_cv_bsd_signals=yes} + +#apr +apr_cv_tcp_nodelay_with_cork=${apr_cv_tcp_nodelay_with_cork=yes} + +# lftp +lftp_cv_va_val_copy=${lftp_cv_va_val_copy=yes} + +# slrn +slrn_cv_va_val_copy=${slrn_cv_va_val_copy=yes} + +# cvs +cvs_cv_func_printf_ptr=${cvs_cv_func_printf_ptr=yes} + +## # at-spi2-core +ac_cv_alignof_dbind_pointer=8 +ac_cv_alignof_dbind_struct=1 +ac_cv_alignof_dbus_bool_t=4 +ac_cv_alignof_dbus_int16_t=2 +ac_cv_alignof_dbus_int32_t=4 +ac_cv_alignof_dbus_int64_t=8 + +## # socat +sc_cv_type_dev_basic='6 /* unsigned long */' +sc_cv_type_gidt_basic='4 /* unsigned int */' +sc_cv_type_longlong=yes +sc_cv_type_modet_basic='4 /* unsigned int */' +sc_cv_type_off64=yes +sc_cv_type_off64_basic='5 /* long */' +sc_cv_type_off_basic='5 /* long */' +sc_cv_type_pidt_basic='3 /* int */' +sc_cv_type_rlimit_rlimmax_basic='6 /* unsigned long */' +sc_cv_type_sa_family_t=yes +sc_cv_type_sighandler=yes +sc_cv_type_sizet_basic='6 /* unsigned long */' +sc_cv_type_socklen=yes +sc_cv_type_socklent_basic='4 /* unsigned int */' +sc_cv_type_stat64=yes +sc_cv_type_stat64_stblksize_basic='3 /* int */' +sc_cv_type_stat64_stblocks_basic='5 /* long */' +sc_cv_type_stat64_stdev_basic='6 /* unsigned long */' +sc_cv_type_stat64_stino_basic='6 /* unsigned long */' +sc_cv_type_stat64_stnlink_basic='4 /* unsigned int */' +sc_cv_type_stat64_stsize_basic='5 /* long */' +sc_cv_type_stat_stblksize_basic='3 /* int */' +sc_cv_type_stat_stblocks_basic='5 /* long */' +sc_cv_type_stat_stino_basic='6 /* unsigned long */' +sc_cv_type_stat_stnlink_basic='4 /* unsigned int */' +sc_cv_type_stat_stsize_basic='5 /* long */' +sc_cv_type_struct_timeval_tv_usec='5 /* long */' +sc_cv_type_timet_basic='5 /* long */' +sc_cv_type_uidt_basic='4 /* unsigned int */' +sc_cv_type_uint16=yes +sc_cv_type_uint32=yes +sc_cv_type_uint64=yes +sc_cv_type_uint8=yes +sc_cv_typeof_struct_cmsghdr_cmsg_len='6 /* unsigned long */' diff --git a/common/environment/configure/autoconf_cache/arm-common b/common/environment/configure/autoconf_cache/arm-common new file mode 100644 index 0000000..3526b77 --- /dev/null +++ b/common/environment/configure/autoconf_cache/arm-common @@ -0,0 +1,232 @@ +# general +ac_cv_va_val_copy=${ac_cv_va_val_copy=yes} +ac_cv_func_lstat_dereferences_slashed_symlink=${ac_cv_func_lstat_dereferences_slashed_symlink=yes} +ac_cv_func_lstat_empty_string_bug=${ac_cv_func_lstat_empty_string_bug=no} +ac_cv_func_stat_empty_string_bug=${ac_cv_func_stat_empty_string_bug=no} +ac_cv_func_stat_ignores_trailing_slash=${ac_cv_func_stat_ignores_trailing_slash=no} +ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no} +ac_cv_header_netinet_sctp_uio_h=${ac_cv_header_netinet_sctp_uio_h=no} +ac_cv_sctp=${ac_cv_sctp=no} +ac_cv_sizeof_struct_iovec=8 + +# apache +ac_cv_func_pthread_key_delete=${ac_cv_func_pthread_key_delete=yes} +apr_cv_process_shared_works=${apr_cv_process_shared_works=no} +ac_cv_sizeof_ssize_t=${ac_cv_sizeof_ssize_t=4} +apr_cv_tcp_nodelay_with_cork=${apr_cv_tcp_nodelay_with_cork=yes} + +# bash +ac_cv_c_long_double=${ac_cv_c_long_double=yes} + +# coreutils +utils_cv_sys_open_max=${utils_cv_sys_open_max=1019} + +# cvs +cvs_cv_func_printf_ptr=${cvs_cv_func_printf_ptr=yes} + +# db (sleepycat) +db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes} +db_cv_sprintf_count=${db_cv_sprintf_count=yes} +db_cv_align_t=${db_cv_align_t='unsigned long long'} +db_cv_alignp_t=${db_cv_alignp_t='unsigned long'} + +# D-BUS +ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes} + +# edb +db_cv_spinlocks=${db_cv_spinlocks=no} + +# ettercap +ettercap_cv_type_socklen_t=${ettercap_cv_type_socklen_t=yes} + +# fget +compat_cv_func_snprintf_works=${compat_cv_func_snprintf_works=yes} +compat_cv_func_basename_works=${compat_cv_func_basename_works=no} +compat_cv_func_dirname_works=${compat_cv_func_dirname_works=no} + +# fnmatch +ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes} + +# gettext +am_cv_func_working_getline=${am_cv_func_working_getline=yes} + +# glib +glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24} +glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4} +glib_cv_stack_grows=${glib_cv_stack_grows=no} +glib_cv_uscore=${glib_cv_uscore=no} +glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes} +glib_cv_has__inline=${glib_cv_has__inline=yes} +glib_cv_has__inline__=${glib_cv_has__inline__=yes} +glib_cv_hasinline=${glib_cv_hasinline=yes} +glib_cv_sane_realloc=${glib_cv_sane_realloc=yes} +glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24} +glib_cv_uscore=${glib_cv_uscore=no} +glib_cv_va_val_copy=${glib_cv_va_val_copy=yes} +glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no} +glib_cv_sys_pthread_mutex_trylock_posix=${glib_cv_sys_pthread_mutex_trylock_posix=yes} +glib_cv_sys_pthread_getspecific_posix=${glib_cv_sys_pthread_getspecific_posix=yes} +glib_cv_sys_pthread_cond_timedwait_posix=${glib_cv_sys_pthread_cond_timedwait_posix=yes} + +# glib-2.0 +glib_cv_long_long_format=${glib_cv_long_long_format=ll} +glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24} +glib_cv_sizeof_intmax_t=${glib_cv_sizeof_intmax_t=8} +glib_cv_sizeof_ptrdiff_t=${glib_cv_sizeof_ptrdiff_t=4} +glib_cv_sizeof_size_t=${glib_cv_sizeof_size_t=4} +glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4} +glib_cv_sys_use_pid_niceness_surrogate=${glib_cv_sys_use_pid_niceness_surrogate=yes} +ac_cv_alignof_guint32=4 +ac_cv_alignof_guint64=8 +ac_cv_alignof_unsigned_long=4 + +#gstreamer +as_cv_unaligned_access=${as_cv_unaligned_access=no} + +# httppc +ac_cv_strerror_r_SUSv3=${ac_cv_strerror_r_SUSv3=no} + +# jikes +ac_cv_sizeof_wchar_t=4 + +# lftp +ac_cv_need_trio=${ac_cv_need_trio=no} +lftp_cv_va_val_copy=${lftp_cv_va_val_copy=yes} + +# libesmtp +acx_working_snprintf=${acx_working_snprintf=yes} + +# libidl +libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll} + +# libnet +ac_libnet_have_packet_socket=${ac_libnet_have_packet_socket=yes} + +# libpcap +ac_cv_linux_vers=${ac_cv_linux_vers=2} + +# libxfce4util +with_broken_putenv=${with_broken_putenv=no} + +# links +ac_cv_lib_png_png_create_info_struct=${ac_cv_lib_png_png_create_info_struct=yes} + +# mysql +mysql_cv_func_atomic_sub=${mysql_cv_func_atomic_sub=no} +mysql_cv_func_atomic_add=${mysql_cv_func_atomic_add=no} + +# nano +ac_cv_regexec_segfault_emptystr=${ac_cv_regexec_segfault_emptystr=no} +nano_cv_func_regexec_segv_emptystr=${nano_cv_func_regexec_segv_emptystr=no} + +# ORBit2 +ac_cv_alignof_CORBA_boolean=1 +ac_cv_alignof_CORBA_char=1 +ac_cv_alignof_CORBA_double=8 +ac_cv_alignof_CORBA_float=4 +ac_cv_alignof_CORBA_long=4 +ac_cv_alignof_CORBA_long_double=8 +ac_cv_alignof_CORBA_long_long=8 +ac_cv_alignof_CORBA_octet=1 +ac_cv_alignof_CORBA_pointer=4 +ac_cv_alignof_CORBA_short=2 +ac_cv_alignof_CORBA_struct=1 +ac_cv_alignof_CORBA_wchar=2 + +# php +ac_cv_pread=${ac_cv_pread=no} +ac_cv_pwrite=${ac_cv_pwrite=no} +php_cv_lib_cookie_io_functions_use_off64_t=${php_cv_lib_cookie_io_functions_use_off64_t=yes} + +# rsync +rsync_cv_HAVE_BROKEN_LARGEFILE=${rsync_cv_HAVE_BROKEN_LARGEFILE=no} +rsync_cv_HAVE_SOCKETPAIR=${rsync_cv_HAVE_SOCKETPAIR=yes} +rsync_cv_HAVE_LONGLONG=${rsync_cv_HAVE_LONGLONG=yes} +rsync_cv_HAVE_OFF64_T=${rsync_cv_HAVE_OFF64_T=no} +rsync_cv_HAVE_SHORT_INO_T=${rsync_cv_HAVE_SHORT_INO_T=no} +rsync_cv_HAVE_UNSIGNED_CHAR=${rsync_cv_HAVE_UNSIGNED_CHAR=no} +rsync_cv_HAVE_BROKEN_READDIR=${rsync_cv_HAVE_BROKEN_READDIR=no} +rsync_cv_HAVE_GETTIMEOFDAY_TZ=${rsync_cv_HAVE_GETTIMEOFDAY_TZ=yes} +rsync_cv_HAVE_C99_VSNPRINTF=${rsync_cv_HAVE_C99_VSNPRINTF=yes} +rsync_cv_HAVE_SECURE_MKSTEMP=${rsync_cv_HAVE_SECURE_MKSTEMP=yes} +rsync_cv_REPLACE_INET_NTOA=${rsync_cv_REPLACE_INET_NTOA=no} +rsync_cv_REPLACE_INET_ATON=${rsync_cv_REPLACE_INET_ATON=no} + +# screen +screen_cv_sys_bcopy_overlap=${screen_cv_sys_bcopy_overlap=no} +screen_cv_sys_memcpy_overlap=${screen_cv_sys_memcpy_overlap=no} +screen_cv_sys_memmove_overlap=${screen_cv_sys_memmove_overlap=no} +screen_cv_sys_fifo_broken_impl=${screen_cv_sys_fifo_broken_impl=yes} +screen_cv_sys_fifo_usable=${screen_cv_sys_fifo_usable=yes} +screen_cv_sys_select_broken_retval=${screen_cv_sys_select_broken_retval=no} +screen_cv_sys_sockets_nofs=${screen_cv_sys_sockets_nofs=no} +screen_cv_sys_sockets_usable=${screen_cv_sys_sockets_usable=yes} +screen_cv_sys_terminfo_used=${screen_cv_sys_terminfo_used=yes} + +# slrn +slrn_cv_va_val_copy=${slrn_cv_va_val_copy=yes} + +# socat +sc_cv_sys_crdly_shift=9 +sc_cv_sys_csize_shift=4 +sc_cv_sys_tabdly_shift=11 +sc_cv_type_dev_basic='8 /* unsigned long long */' +sc_cv_type_gidt_basic='4 /* unsigned int */' +sc_cv_type_longlong=yes +sc_cv_type_modet_basic='4 /* unsigned int */' +sc_cv_type_off64=no +sc_cv_type_off64_basic='0 /* unknown */' +sc_cv_type_off_basic='3 /* int */' +sc_cv_type_pidt_basic='3 /* int */' +sc_cv_type_rlimit_rlimmax_basic='4 /* unsigned int */' +sc_cv_type_sa_family_t=yes +sc_cv_type_sighandler=no +sc_cv_type_sizet_basic='4 /* unsigned int */' +sc_cv_type_socklen=yes +sc_cv_type_socklent_basic='4 /* unsigned int */' +sc_cv_type_stat64=no +sc_cv_type_stat64_stblksize_basic='0 /* unknown */' +sc_cv_type_stat64_stblocks_basic='0 /* unknown */' +sc_cv_type_stat64_stdev_basic='0 /* unknown */' +sc_cv_type_stat64_stino_basic='0 /* unknown */' +sc_cv_type_stat64_stnlink_basic='0 /* unknown */' +sc_cv_type_stat64_stsize_basic='0 /* unknown */' +sc_cv_type_stat_stblksize_basic='3 /* int */' +sc_cv_type_stat_stblocks_basic='3 /* int */' +sc_cv_type_stat_stino_basic='4 /* unsigned int */' +sc_cv_type_stat_stnlink_basic='4 /* unsigned int */' +sc_cv_type_stat_stsize_basic='3 /* int */' +sc_cv_type_struct_timeval_tv_usec='3 /* int */' +sc_cv_type_timet_basic='3 /* int */' +sc_cv_type_uidt_basic='4 /* unsigned int */' +sc_cv_type_uint16=yes +sc_cv_type_uint32=yes +sc_cv_type_uint64=yes +sc_cv_type_uint8=yes +sc_cv_typeof_struct_cmsghdr_cmsg_len='4 /* unsigned int */' + +# ssh +ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_dirent_have_space_d_name=yes} +ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no} +ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no} +ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes} +ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=yes} + +# startup-notification +lf_cv_sane_realloc=yes + +# xffm +jm_cv_func_working_readdir=yes + +# evolution-data-server +ac_cv_libiconv_utf8=${ac_cv_libiconv_utf8=yes} + +# at-spi2-core +ac_cv_alignof_char=1 +ac_cv_alignof_dbind_pointer=4 +ac_cv_alignof_dbind_struct=1 +ac_cv_alignof_dbus_bool_t=4 +ac_cv_alignof_dbus_int16_t=2 +ac_cv_alignof_dbus_int32_t=4 +ac_cv_alignof_dbus_int64_t=8 +ac_cv_alignof_double=8 diff --git a/common/environment/configure/autoconf_cache/arm-linux b/common/environment/configure/autoconf_cache/arm-linux new file mode 100644 index 0000000..d74f06b --- /dev/null +++ b/common/environment/configure/autoconf_cache/arm-linux @@ -0,0 +1,157 @@ +ac_cv_func_setvbuf_reversed=no +ac_cv_sizeof___int64=${ac_cv_sizeof___int64=0} +ac_cv_sizeof_char=${ac_cv_sizeof_char=1} +ac_cv_sizeof_wchar_t=${ac_cv_sizeof_wchar_t=4} +ac_cv_sizeof_unsigned_char=${ac_cv_sizeof_unsigned_char=1} +ac_cv_sizeof_bool=${ac_cv_sizeof_bool=1} +ac_cv_sizeof_char_p=${ac_cv_sizeof_int_p=4} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_int_p=${ac_cv_sizeof_int_p=4} +ac_cv_sizeof_long=${ac_cv_sizeof_long=4} +ac_cv_sizeof_long_int=${ac_cv_sizeof_long_int=4} +ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8} +ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=4} +ac_cv_sizeof_short=${ac_cv_sizeof_short=2} +ac_cv_sizeof_short_int=${ac_cv_sizeof_short_int=2} +ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4} +ac_cv_sizeof_void_p=${ac_cv_sizeof_void_p=4} +ac_cv_sizeof_long_p=${ac_cv_sizeof_long_p=4} +ac_cv_sizeof_float=${ac_cv_sizeof_float=4} +ac_cv_sizeof_double=${ac_cv_sizeof_double=8} +ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8} +ac_cv_sizeof_ptrdiff_t=${glib_cv_sizeof_ptrdiff_t=4} +ac_cv_sizeof_unsigned_short=${ac_cv_sizeof_unsigned_short=2} +ac_cv_sizeof_unsigned=${ac_cv_sizeof_unsigned=4} +ac_cv_sizeof_unsigned_int=${ac_cv_sizeof_unsigned_int=4} +ac_cv_sizeof_unsigned_long=${ac_cv_sizeof_unsigned_long=4} +ac_cv_sizeof_unsigned_long_long=${ac_cv_sizeof_unsigned_long_long=8} +ac_cv_sizeof_signed_char=${ac_cv_sizeof_signed_char=1} + +ac_cv_uchar=${ac_cv_uchar=no} +ac_cv_uint=${ac_cv_uint=yes} +ac_cv_ulong=${ac_cv_ulong=yes} +ac_cv_ushort=${ac_cv_ushort=yes} +ac_cv_time_r_type=${ac_cv_time_r_type=POSIX} + +# samba +samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=${samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes} +samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=${samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no} +samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=${samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no} +samba_cv_HAVE_BROKEN_GETGROUPS=${samba_cv_HAVE_BROKEN_GETGROUPS=no} +samba_cv_HAVE_BROKEN_LINUX_SENDFILE=${samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes} +samba_cv_HAVE_BROKEN_READDIR=${samba_cv_HAVE_BROKEN_READDIR=yes} +samba_cv_HAVE_BROKEN_READDIR_NAME=${samba_cv_HAVE_BROKEN_READDIR_NAME=no} +samba_cv_HAVE_C99_VSNPRINTF=${samba_cv_HAVE_C99_VSNPRINTF=yes} +samba_cv_HAVE_DEV64_T=${samba_cv_HAVE_DEV64_T=no} +samba_cv_HAVE_DEVICE_MAJOR_FN=${samba_cv_HAVE_DEVICE_MAJOR_FN=yes} +samba_cv_HAVE_DEVICE_MINOR_FN=${samba_cv_HAVE_DEVICE_MINOR_FN=yes} +samba_cv_HAVE_DQB_FSOFTLIMIT=${samba_cv_HAVE_DQB_FSOFTLIMIT=no} +samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=${samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes} +samba_cv_HAVE_FAM_H=${samba_cv_HAVE_FAM_H=no} +samba_cv_HAVE_FCNTL_LOCK=${samba_cv_HAVE_FCNTL_LOCK=yes} +samba_cv_HAVE_FTRUNCATE_EXTEND=${samba_cv_HAVE_FTRUNCATE_EXTEND=yes} +samba_cv_HAVE_FUNCTION_MACRO=${samba_cv_HAVE_FUNCTION_MACRO=yes} +samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes} +samba_cv_HAVE_INO64_T=${samba_cv_HAVE_INO64_T=no} +samba_cv_HAVE_INT16_FROM_RPC_RPC_H=${samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no} +samba_cv_HAVE_INT32_FROM_RPC_RPC_H=${samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no} +samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=${samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes} +samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=${samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes} +samba_cv_HAVE_KERNEL_SHARE_MODES=${samba_cv_HAVE_KERNEL_SHARE_MODES=yes} +samba_cv_HAVE_MAKEDEV=${samba_cv_HAVE_MAKEDEV=yes} +samba_cv_HAVE_MMAP=${samba_cv_HAVE_MMAP=yes} +samba_cv_HAVE_NATIVE_ICONV=${samba_cv_HAVE_NATIVE_ICONV=yes} +samba_cv_HAVE_OFF64_T=${samba_cv_HAVE_OFF64_T=no} +samba_cv_HAVE_ROOT=${samba_cv_HAVE_ROOT=yes} +samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=${samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no} +samba_cv_HAVE_SECURE_MKSTEMP=${samba_cv_HAVE_SECURE_MKSTEMP=yes} +samba_cv_HAVE_SENDFILE=${samba_cv_HAVE_SENDFILE=yes} +samba_cv_HAVE_SENDFILE64=${samba_cv_HAVE_SENDFILE64=yes} +samba_cv_HAVE_SOCK_SIN_LEN=${samba_cv_HAVE_SOCK_SIN_LEN=no} +samba_cv_HAVE_STAT_ST_BLKSIZE=${samba_cv_HAVE_STAT_ST_BLKSIZE=yes} +samba_cv_HAVE_STAT_ST_BLOCKS=${samba_cv_HAVE_STAT_ST_BLOCKS=yes} +samba_cv_HAVE_STRUCT_DIR64=${samba_cv_HAVE_STRUCT_DIR64=no} +samba_cv_HAVE_STRUCT_DIRENT64=${samba_cv_HAVE_STRUCT_DIRENT64=yes} +samba_cv_HAVE_STRUCT_FLOCK64=${samba_cv_HAVE_STRUCT_FLOCK64=yes} +samba_cv_HAVE_TRUNCATED_SALT=${samba_cv_HAVE_TRUNCATED_SALT=no} +samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=${samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no} +samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=${samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no} +samba_cv_HAVE_UNSIGNED_CHAR=${samba_cv_HAVE_UNSIGNED_CHAR=yes} +samba_cv_HAVE_UTIMBUF=${samba_cv_HAVE_UTIMBUF=yes} +samba_cv_HAVE_UT_UT_ADDR=${samba_cv_HAVE_UT_UT_ADDR=yes} +samba_cv_HAVE_UT_UT_EXIT=${samba_cv_HAVE_UT_UT_EXIT=yes} +samba_cv_HAVE_UT_UT_HOST=${samba_cv_HAVE_UT_UT_HOST=yes} +samba_cv_HAVE_UT_UT_ID=${samba_cv_HAVE_UT_UT_ID=yes} +samba_cv_HAVE_UT_UT_NAME=${samba_cv_HAVE_UT_UT_NAME=yes} +samba_cv_HAVE_UT_UT_PID=${samba_cv_HAVE_UT_UT_PID=yes} +samba_cv_HAVE_UT_UT_TIME=${samba_cv_HAVE_UT_UT_TIME=yes} +samba_cv_HAVE_UT_UT_TV=${samba_cv_HAVE_UT_UT_TV=yes} +samba_cv_HAVE_UT_UT_TYPE=${samba_cv_HAVE_UT_UT_TYPE=yes} +samba_cv_HAVE_UT_UT_USER=${samba_cv_HAVE_UT_UT_USER=yes} +samba_cv_HAVE_UX_UT_SYSLEN=${samba_cv_HAVE_UX_UT_SYSLEN=no} +samba_cv_HAVE_VA_COPY=${samba_cv_HAVE_VA_COPY=yes} +samba_cv_HAVE_WORKING_AF_LOCAL=${samba_cv_HAVE_WORKING_AF_LOCAL=yes} +samba_cv_HAVE_Werror=${samba_cv_HAVE_Werror=yes} +samba_cv_PUTUTLINE_RETURNS_UTMP=${samba_cv_PUTUTLINE_RETURNS_UTMP=yes} +samba_cv_QUOTA_WORKS=${samba_cv_QUOTA_WORKS=yes} +samba_cv_REALPATH_TAKES_NULL=${samba_cv_REALPATH_TAKES_NULL=yes} +samba_cv_REPLACE_GETPASS=${samba_cv_REPLACE_GETPASS=yes} +samba_cv_REPLACE_INET_NTOA=${samba_cv_REPLACE_INET_NTOA=no} +samba_cv_REPLACE_READDIR=${samba_cv_REPLACE_READDIR=no} +samba_cv_RUN_QUOTA_TESTS=${samba_cv_RUN_QUOTA_TESTS=yes} +samba_cv_SEEKDIR_RETURNS_VOID=${samba_cv_SEEKDIR_RETURNS_VOID=yes} +samba_cv_SIZEOF_DEV_T=${samba_cv_SIZEOF_DEV_T=yes} +samba_cv_SIZEOF_INO_T=${samba_cv_SIZEOF_INO_T=yes} +samba_cv_SIZEOF_OFF_T=${samba_cv_SIZEOF_OFF_T=yes} +samba_cv_SYSCONF_SC_NGROUPS_MAX=${samba_cv_SYSCONF_SC_NGROUPS_MAX=yes} +samba_cv_SYSCONF_SC_NPROCESSORS_ONLN=${samba_cv_SYSCONF_SC_NPROCESSORS_ONLN=yes} +samba_cv_SYSCONF_SC_NPROC_ONLN=${samba_cv_SYSCONF_SC_NPROC_ONLN=no} +samba_cv_SYSCONF_SC_PAGESIZE=${samba_cv_SYSCONF_SC_PAGESIZE=yes} +samba_cv_SYSQUOTA_FOUND=${samba_cv_SYSQUOTA_FOUND=yes} +samba_cv_SYSQUOTA_WORKS=${samba_cv_SYSQUOTA_WORKS=yes} +samba_cv_SYSQUOTA_WORKS_XFS=${samba_cv_SYSQUOTA_WORKS_XFS=yes} +samba_cv_TRY_QUOTAS=${samba_cv_TRY_QUOTAS=no} +samba_cv_TRY_SYS_QUOTAS=${samba_cv_TRY_SYS_QUOTAS=yes} +samba_cv_USE_SETRESUID=${samba_cv_USE_SETRESUID=yes} +samba_cv_WE_USE_SYS_QUOTAS=${samba_cv_WE_USE_SYS_QUOTAS=yes} +samba_cv_WITH_AFS=${samba_cv_WITH_AFS=no} +samba_cv_WITH_FAKE_KASERVER=${samba_cv_WITH_FAKE_KASERVER=no} +samba_cv_WITH_QUOTAS=${samba_cv_WITH_QUOTAS=auto} +samba_cv_WITH_SYS_QUOTAS=${samba_cv_WITH_SYS_QUOTAS=auto} +samba_cv_WITH_VFS_AFSACL=${samba_cv_WITH_VFS_AFSACL=no} +samba_cv_compiler_supports_ll=${samba_cv_compiler_supports_ll=yes} +samba_cv_found_xfs_header=${samba_cv_found_xfs_header=yes} +samba_cv_have_longlong=${samba_cv_have_longlong=yes} +samba_cv_have_setresgid=${samba_cv_have_setresgid=yes} +samba_cv_have_setresuid=${samba_cv_have_setresuid=yes} +samba_cv_immediate_structures=${samba_cv_immediate_structures=yes} +samba_cv_optimize_out_funcation_calls=${samba_cv_optimize_out_funcation_calls=yes} +samba_cv_sig_atomic_t=${samba_cv_sig_atomic_t=yes} +samba_cv_socklen_t=${samba_cv_socklen_t=yes} +samba_cv_struct_timespec=${samba_cv_struct_timespec=yes} +samba_cv_sysquotas_file=${samba_cv_sysquotas_file=lib/sysquotas_linux.c} +samba_cv_unixsocket=${samba_cv_unixsocket=yes} +samba_cv_volatile=${samba_cv_volatile=yes} + +#older sambe defines +samba_cv_USE_SETEUID=${samba_cv_USE_SETEUID=yes} +samba_cv_USE_SETREUID=${samba_cv_USE_SETREUID=yes} +samba_cv_USE_SETUIDX=${samba_cv_USE_SETUIDX=yes} +samba_cv_LINUX_LFS_SUPPORT=${samba_cv_LINUX_LFS_SUPPORT=yes} + +# clamav +clamav_av_func_working_snprintf_long=${clamav_av_func_working_snprintf_long=yes} +clamav_av_have_in_port_t=${clamav_av_have_in_port_t=yes} +clamav_av_have_in_addr_t=${clamav_av_have_in_addr_t=yes} +ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped=yes} + +#dbus +ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=yes} + +# guile +ac_cv_func_pthread_attr_getstack=${ac_cv_func_pthread_attr_getstack=yes} + +# gnet +ac_cv_member_struct_sockaddr_sa_len=${ac_cv_member_struct_sockaddr_sa_len=no} +ac_cv_gnet_have_abstract_sockets=${ac_cv_gnet_have_abstract_sockets=no} +gnet_sockaddr_family_field_name=${gnet_sockaddr_family_field_name=ss_family} diff --git a/common/environment/configure/autoconf_cache/common-glibc b/common/environment/configure/autoconf_cache/common-glibc new file mode 100644 index 0000000..9823c53 --- /dev/null +++ b/common/environment/configure/autoconf_cache/common-glibc @@ -0,0 +1,71 @@ +# clamav +clamav_av_func_working_snprintf_long=${clamav_av_func_working_snprintf_long=yes} +clamav_av_have_in_port_t=${clamav_av_have_in_port_t=yes} +clamav_av_have_in_addr_t=${clamav_av_have_in_addr_t=yes} +ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped=yes} + +# coreutils +fu_cv_sys_stat_statfs2_bsize=${fu_cv_sys_stat_statfs2_bsize=yes} + +# glib +glib_cv_strlcpy=${glib_cv_strlcpy=no} +ac_cv_func_printf_unix98=${ac_cv_func_printf_unix98=yes} +ac_cv_func_snprintf_c99=${ac_cv_func_snprintf_c99=yes} +ac_cv_func_vsnprintf_c99=${ac_cv_func_vsnprintf_c99=yes} +glib_cv_compliant_posix_memalign=${glib_cv_compliant_posix_memalign=1} +glib_cv_long_long_format=${glib_cv_long_long_format=ll} +# glib-1.x requires this and pkgconfig-native / pkgconfig-nativesdk use +# that to avoid a dependency loop. +glib_cv___va_copy=${glib_cv___va_copy=yes} +glib_cv_va_copy=${glib_cv_va_copy=yes} +glib_cv_have_qsort_r=${glib_cv_have_qsort_r=yes} + +#dbus-glib +ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=yes} + +# git +ac_cv_iconv_omits_bom=${ac_cv_iconv_omits_bom=no} + +# gnucash +am_cv_scanf_lld=${am_cv_scanf_lld=yes} + +# guile +ac_cv_func_pthread_attr_getstack=${ac_cv_func_pthread_attr_getstack=yes} + +#gcc-zlib +ac_cv_func_getpagesize=${ac_cv_func_getpagesize=yes} +ac_cv_func_memcpy=${ac_cv_func_memcpy=yes} +ac_cv_func_strerror=${ac_cv_func_strerror=yes} + +# squid +ac_cv_af_unix_large_dgram=${ac_cv_af_unix_large_dgram=yes} +ac_cv_func_setresuid=${ac_cv_func_setresuid=yes} +ac_cv_func_va_copy=${ac_cv_func_va_copy=yes} +ac_cv_func___va_copy=${ac_cv_func___va_copy=yes} +ac_cv_epoll_works=${ac_cv_epoll_works=yes} + +ac_cv_check_sjlj=ssjlj + +# m4 +gt_cv_locale_fr=${gt_cv_locale_fr=fr_FR} +gl_cv_func_btowc_eof=${gl_cv_func_btowc_eof=yes} +gl_cv_func_wcrtomb_retval=${gl_cv_func_wcrtomb_retval=yes} +gl_cv_func_wctob_works=${gl_cv_func_wctob_works=yes} +gl_cv_func_mbrtowc_incomplete_state=${gl_cv_func_mbrtowc_incomplete_state=yes} +gl_cv_func_mbrtowc_sanitycheck=${gl_cv_func_mbrtowc_sanitycheck=yes} +gl_cv_func_mbrtowc_null_arg=${gl_cv_func_mbrtowc_null_arg=yes} +gl_cv_func_mbrtowc_retval=${gl_cv_func_mbrtowc_retval=yes} +gl_cv_func_mbrtowc_nul_retval=${gl_cv_func_mbrtowc_nul_retval=yes} + +# va_copy and _va_copy +ac_cv_va_copy=${ac_cv_va_copy=yes} +ac_cv___va_copy=${ac_cv___va_copy=yes} +ac_cv_func_va_copy=${ac_cv_func_va_copy=yes} +ac_cv_func___va_copy=${ac_cv_func___va_copy=yes} + +# Xorg +xorg_cv_malloc0_returns_null=${xorg_cv_malloc0_returns_null=yes} + +# socat +ac_cv_ispeed_offset=${ac_cv_ispeed_offset=13} +sc_cv_termios_ispeed=${sc_cv_termios_ispeed=yes} diff --git a/common/environment/configure/autoconf_cache/common-linux b/common/environment/configure/autoconf_cache/common-linux new file mode 100644 index 0000000..806bec4 --- /dev/null +++ b/common/environment/configure/autoconf_cache/common-linux @@ -0,0 +1,175 @@ +# general +ac_cv_func_realloc_works=${ac_cv_func_realloc_works=yes} +ac_cv_func_realloc_0_nonnull=${ac_cv_func_realloc_0_nonnull=yes} +ac_cv_func_malloc_works=${ac_cv_func_malloc_works=yes} +ac_cv_func_malloc_0_nonnull=${ac_cv_func_malloc_0_nonnull=yes} +ac_cv_func_memcmp_working=${ac_cv_func_memcmp_working=yes} +ac_cv_func_getpgrp_void=yes +ac_cv_func_setpgrp_void=yes +ac_cv_func_setgrent_void=yes +ac_cv_func_getgrgid_r=${ac_cv_func_getgrgid_r=yes} +ac_cv_func_getpwuid_r=${ac_cv_func_getpwuid_r=yes} +ac_cv_func_posix_getpwuid_r=${ac_cv_func_posix_getpwuid_r=yes} +ac_cv_func_posix_getgrgid_r=${ac_cv_func_posix_getgrgid_r=yes} +ac_cv_func_getaddrinfo=${ac_cv_func_getaddrinfo=yes} +ac_cv_func_strdup=yes +ac_cv_func_strtod=yes +ac_cv_func_fork=yes +ac_cv_func_fork=yes +ac_cv_func_fork_works=yes +ac_cv_func_chown_works=yes +ac_cv_func_working_mktime=yes +ac_cv_func_getgroups=yes +ac_cv_func_getgroups_works=yes +ac_cv_func_pread=yes +ac_cv_func_pwrite=yes +ac_cv_file__dev_random=yes +ac_cv_file__dev_urandom=yes + +# ruby +ac_cv_func_isnan=yes +ac_cv_func_isinf=yes + +# apr +ac_cv_file__dev_zero=${ac_cv_file__dev_zero=yes} +ac_cv_sizeof_pid_t=${ac_cv_sizeof_pid_t=4} +ac_cv_func_strcoll_works=yes + +# samba +samba_cv_HAVE_IFACE_AIX=${samba_cv_HAVE_IFACE_AIX=no} +samba_cv_HAVE_IFACE_IFCONF=${samba_cv_HAVE_IFACE_IFCONF=yes} +samba_cv_HAVE_IFACE_IFREQ=${samba_cv_HAVE_IFACE_IFREQ=yes} +samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=${samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no} + +# db +db_cv_path_ar=${db_cv_path_ar=/usr/bin/ar} +db_cv_path_chmod=${db_cv_path_chmod=/bin/chmod} +db_cv_path_cp=${db_cv_path_cp=/bin/cp} +db_cv_path_ln=${db_cv_path_ln=/bin/ln} +db_cv_path_mkdir=${db_cv_path_mkdir=/bin/mkdir} +db_cv_path_ranlib=${db_cv_path_ranlib=/usr/bin/ranlib} +db_cv_path_rm=${db_cv_path_rm=/bin/rm} +db_cv_path_sh=${db_cv_path_sh=/bin/sh} +db_cv_path_strip=${db_cv_path_strip=/usr/bin/strip} + +# bash +bash_cv_have_mbstate_t=${bash_cv_have_mbstate_t=yes} +bash_cv_must_reinstall_sighandlers=${bash_cv_must_reinstall_sighandlers=no} +bash_cv_func_strcoll_broken=${bash_cv_func_strcoll_broken=no} +bash_cv_dup2_broken=${bash_cv_dup2_broken=no} +bash_cv_opendir_not_robust=${bash_cv_opendir_not_robust=no} +bash_cv_type_rlimit=${bash_cv_type_rlimit=rlim_t} +bash_cv_getenv_redef=${bash_cv_getenv_redef=yes} +bash_cv_ulimit_maxfds=${bash_cv_ulimit_maxfds=yes} +bash_cv_getcwd_calls_popen=${bash_cv_getcwd_calls_popen=no} +bash_cv_printf_a_format=${bash_cv_printf_a_format=yes} +bash_cv_pgrp_pipe=${bash_cv_pgrp_pipe=no} +bash_cv_job_control_missing=${bash_cv_job_control_missing=present} +bash_cv_sys_named_pipes=${bash_cv_sys_named_pipes=present} +bash_cv_unusable_rtsigs=${bash_cv_unusable_rtsigs=no} +bash_cv_func_snprintf=yes +bash_cv_func_vsnprintf=yes +bash_cv_func_sigsetjmp=present +bash_cv_getcwd_malloc=yes +bash_cv_void_sighandler=yes +bash_cv_func_ctype_nonascii=no +bash_cv_wcontinued_broken=no +bash_cv_wexitstatus_offset=8 +bash_cv_wcwidth_broken=no + +# cgdb +ac_cv_file__dev_ptmx=yes +ac_cv_file__dev_ptc=no + +# git +ac_cv_snprintf_returns_bogus=no +ac_cv_fread_reads_directories=yes + +# gnulib +gl_cv_func_fstatat_zero_flag=yes +gl_cv_func_memchr_works=yes +gl_cv_func_dup2_works=yes +gl_cv_func_utimensat_works=yes +gl_cv_func_readlink_works=yes +gl_cv_func_readlinkat_works=yes +gl_cv_func_symlinkat_works=yes +gl_cv_func_unsetenv_works=yes +gl_cv_func_rmdir_works=yes +gl_cv_func_chown_slash_works=yes +gl_cv_func_chown_ctime_works=yes +gl_cv_func_chown_follows_symlink=yes +gl_cv_func_lstat_dereferences_slashed_symlink=yes +gl_cv_func_getcwd_null=yes +gl_cv_func_select_detects_ebadf=yes +gl_cv_func_unlink_honors_slashes=yes +gl_cv_func_snprintf_retval_c99=yes +gl_cv_func_strerror_0_works=yes +gl_cv_func_printf_sizes_c99=yes +gl_cv_func_printf_infinite=yes +gl_cv_func_printf_infinite_long_double=yes +gl_cv_func_printf_directive_a=yes +gl_cv_func_printf_directive_f=yes +gl_cv_func_printf_flag_zero=yes +gl_cv_func_printf_enomem=yes +gl_cv_func_wcwidth_works=yes +gl_cv_func_ungetc_works=yes +gl_cv_func_fchownat_empty_filename_works=yes +gl_cv_func_fcntl_f_dupfd_works=yes +gl_cv_func_fdopendir_works=yes +gl_cv_func_fpurge_works=yes +gl_cv_func_futimens_works=yes +gl_cv_func_getgroups_works=yes +gl_cv_func_isnanl_works=yes +gl_cv_func_link_works=yes +gl_cv_func_linkat_slash=yes +gl_cv_func_mkdir_trailing_slash_works=yes +gl_cv_func_mkdir_trailing_dot_works=yes +gl_cv_func_mkfifo_works=yes +gl_cv_func_mknod_works=yes +gl_cv_func_rename_slash_dst_works=yes +gl_cv_func_rename_slash_src_works=yes +gl_cv_func_rename_link_works=yes +gl_cv_func_rename_dest_works=yes +gl_cv_func_setenv_works=yes +gl_cv_func_stat_file_slash=yes +gl_cv_func_strtod_works=yes +gl_cv_func_symlink_works=yes +gl_cv_func_unlink_honors_slashes=yes +gl_cv_func_perror_works=yes +gl_cv_func_stpncpy=yes +gl_cv_func_realpath_works=yes +gl_cv_func_remove_dir_works=yes + +# mysql +ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls=yes} +ac_cv_conv_longlong_to_float=${ac_cv_conv_longlong_to_float=yes} + +# TCL +tcl_cv_api_serial=${tcl_cv_api_serial=termios} + +# python +ac_cv_have_long_long_format=yes + +# socat +ac_cv_have_c99_snprintf=yes + +# apache +ac_cv_o_nonblock_inherited=${ac_cv_o_nonblock_inherited=no} + +# varnish +ac_cv_have_viz=yes +ac_cv_so_rcvtimeo_works=yes +ac_cv_so_sndtimeo_works=yes + +# libtar +compat_cv_func_makedev_three_args=no + +# exo +ac_cv_strftime_extensions=yes + +# time +ac_cv_func_wait3=yes + +# Y2038 +gl_cv_type_time_t_y2038=${gl_cv_type_time_t_y2038=no} +ac_cv_type_time_t_bits_macro=${ac_cv_type_time_t_bits_macro=no} diff --git a/common/environment/configure/autoconf_cache/endian-big b/common/environment/configure/autoconf_cache/endian-big new file mode 100644 index 0000000..b99e96c --- /dev/null +++ b/common/environment/configure/autoconf_cache/endian-big @@ -0,0 +1,8 @@ +ac_cv_c_littleendian=${ac_cv_c_littleendian=no} +ac_cv_c_bigendian=${ac_cv_c_bigendian=yes} + +# libnet +ac_cv_libnet_endianess=${ac_cv_libnet_endianess=big} + +# libmemcached +ac_cv_c_endian=big diff --git a/common/environment/configure/autoconf_cache/endian-little b/common/environment/configure/autoconf_cache/endian-little new file mode 100644 index 0000000..858db76 --- /dev/null +++ b/common/environment/configure/autoconf_cache/endian-little @@ -0,0 +1,8 @@ +ac_cv_c_littleendian=${ac_cv_c_littleendian=yes} +ac_cv_c_bigendian=${ac_cv_c_bigendian=no} + +# libnet +ac_cv_libnet_endianess=${ac_cv_libnet_endianess=lil} + +# libmemcached +ac_cv_c_endian=little diff --git a/common/environment/configure/autoconf_cache/ix86-common b/common/environment/configure/autoconf_cache/ix86-common new file mode 100644 index 0000000..8eb82de --- /dev/null +++ b/common/environment/configure/autoconf_cache/ix86-common @@ -0,0 +1,268 @@ +# general +ac_cv_sizeof_char=${ac_cv_sizeof_char=1} +ac_cv_sizeof_unsigned_char=${ac_cv_sizeof_unsigned_char=1} +ac_cv_sizeof_char_p=${ac_cv_sizeof_char_p=4} +ac_cv_sizeof_unsigned_char_p=${ac_cv_sizeof_unsigned_char_p=4} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_unsigned_int=${ac_cv_sizeof_unsigned_int=4} +ac_cv_sizeof_int_p=${ac_cv_sizeof_int_p=4} +ac_cv_sizeof_long=${ac_cv_sizeof_long=4} +ac_cv_sizeof_unsigned_long=${ac_cv_sizeof_unsigned_long=4} +ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8} +ac_cv_sizeof_unsigned_long_long=${ac_cv_sizeof_unsigned_long_long=8} +ac_cv_sizeof_short=${ac_cv_sizeof_short=2} +ac_cv_sizeof_unsigned_short=${ac_cv_sizeof_unsigned_short=2} +ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4} +ac_cv_sizeof_ssize_t=${ac_cv_sizeof_ssize_t=4} +ac_cv_sizeof_void_p=${ac_cv_sizeof_void_p=4} +ac_cv_sizeof_long_p=${ac_cv_sizeof_long_p=4} +ac_cv_sizeof_float=${ac_cv_sizeof_float=4} +ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=4} +ac_cv_sizeof_uid_t=${ac_cv_sizeof_uid_t=4} +ac_cv_sizeof_gid_t=${ac_cv_sizeof_gid_t=4} +ac_cv_sizeof_ino_t=${ac_cv_sizeof_ino_t=4} +ac_cv_sizeof_dev_t=${ac_cv_sizeof_dev_t=8} +ac_cv_func_lstat_dereferences_slashed_symlink=${ac_cv_func_lstat_dereferences_slashed_symlink=yes} +ac_cv_func_lstat_empty_string_bug=${ac_cv_func_lstat_empty_string_bug=no} +ac_cv_func_pthread_key_delete=${ac_cv_func_pthread_key_delete=yes} +ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no} +ac_cv_func_stat_empty_string_bug=${ac_cv_func_stat_empty_string_bug=no} +ac_cv_func_stat_ignores_trailing_slash=${ac_cv_func_stat_ignores_trailing_slash=no} +ac_cv_va_val_copy=${ac_cv_va_val_copy=yes} +ac_cv_sizeof_struct_iovec=8 + +ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no} +ac_cv_header_netinet_sctp_uio_h=${ac_cv_header_netinet_sctp_uio_h=no} +ac_cv_linux_vers=${ac_cv_linux_vers=2} +ac_cv_sctp=${ac_cv_sctp=no} + +apr_cv_process_shared_works=${apr_cv_process_shared_works=no} +apr_cv_tcp_nodelay_with_cork=${apr_cv_tcp_nodelay_with_cork=yes} + +ac_cv_path_ESD_CONFIG=no +lf_cv_sane_realloc=yes +jm_cv_func_gettimeofday_clobber=no +samba_cv_HAVE_GETTIMEOFDAY_TZ=yes +bf_lsbf=1 +ac_cv_uchar=${ac_cv_uchar=no} +ac_cv_uint=${ac_cv_uint=yes} +ac_cv_ulong=${ac_cv_ulong=yes} +ac_cv_ushort=${ac_cv_ushort=yes} + +# audacity +ac_cv_file_lib_src_libmad_frame_h=${ac_cv_file_lib_src_libmad_frame_h=no} + +# bash +ac_cv_c_long_double=${ac_cv_c_long_double=yes} + +# clamav +clamav_av_func_working_snprintf_long=${clamav_av_func_working_snprintf_long=yes} +clamav_av_have_in_port_t=${clamav_av_have_in_port_t=yes} +clamav_av_have_in_addr_t=${clamav_av_have_in_addr_t=yes} +ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped=yes} + +# cvs +cvs_cv_func_printf_ptr=${cvs_cv_func_printf_ptr=yes} + +# db +db_cv_alignp_t=${db_cv_alignp_t='unsigned long'} +db_cv_align_t=${db_cv_align_t='unsigned long long'} +db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes} +db_cv_sprintf_count=${db_cv_sprintf_count=yes} + +# D-BUS +ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes} + +# ettercap +ettercap_cv_type_socklen_t=${ettercap_cv_type_socklen_t=yes} + +# gettext +am_cv_func_working_getline=${am_cv_func_working_getline=yes} + +# glib +glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4} +glib_cv_has__inline=${glib_cv_has__inline=yes} +glib_cv_has__inline__=${glib_cv_has__inline__=yes} +glib_cv_hasinline=${glib_cv_hasinline=yes} +glib_cv_sane_realloc=${glib_cv_sane_realloc=yes} +glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24} +glib_cv_sys_pthread_cond_timedwait_posix=${glib_cv_sys_pthread_cond_timedwait_posix=yes} +glib_cv_sys_pthread_getspecific_posix=${glib_cv_sys_pthread_getspecific_posix=yes} +glib_cv_sys_pthread_mutex_trylock_posix=${glib_cv_sys_pthread_mutex_trylock_posix=yes} +glib_cv_uscore=${glib_cv_uscore=no} +glib_cv_va_val_copy=${glib_cv_va_val_copy=yes} +glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=yes} + +# glib-2.0 +glib_cv_stack_grows=${glib_cv_stack_grows=no} +utils_cv_sys_open_max=${utils_cv_sys_open_max=1015} +glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes} +ac_cv_alignof_guint32=4 +ac_cv_alignof_guint64=4 +ac_cv_alignof_unsigned_long=4 + +# guile +ac_cv_uchar=${ac_cv_uchar=no} +ac_cv_uint=${ac_cv_uint=yes} +ac_cv_ulong=${ac_cv_ulong=yes} +ac_cv_ushort=${ac_cv_ushort=yes} + +# intercom +ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes} + +# jikes-native +ac_cv_sizeof_wchar_t=4 + +# lftp +ac_cv_need_trio=${ac_cv_need_trio=no} +lftp_cv_va_val_copy=${lftp_cv_va_val_copy=yes} + +# libidl +libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll} + +# libnet +ac_cv_lbl_unaligned_fail=${ac_cv_lbl_unaligned_fail=no} +ac_libnet_have_packet_socket=${ac_libnet_have_packet_socket=yes} + +# libxfce4util +with_broken_putenv=${with_broken_putenv=no} + +# mysql +mysql_cv_func_atomic_sub=${mysql_cv_func_atomic_sub=yes} +mysql_cv_func_atomic_add=${mysql_cv_func_atomic_add=yes} + +# ORBit2 +ac_cv_alignof_CORBA_boolean=1 +ac_cv_alignof_CORBA_char=1 +ac_cv_alignof_CORBA_double=4 +ac_cv_alignof_CORBA_float=4 +ac_cv_alignof_CORBA_long=4 +ac_cv_alignof_CORBA_long_double=4 +ac_cv_alignof_CORBA_long_long=4 +ac_cv_alignof_CORBA_octet=1 +ac_cv_alignof_CORBA_pointer=4 +ac_cv_alignof_CORBA_short=2 +ac_cv_alignof_CORBA_struct=4 +ac_cv_alignof_CORBA_wchar=2 + +# php +ac_cv_pread=${ac_cv_pread=no} +ac_cv_pwrite=${ac_cv_pwrite=no} +php_cv_lib_cookie_io_functions_use_off64_t=${php_cv_lib_cookie_io_functions_use_off64_t=yes} + +# rsync +rsync_cv_HAVE_BROKEN_LARGEFILE=${rsync_cv_HAVE_BROKEN_LARGEFILE=no} +rsync_cv_HAVE_SOCKETPAIR=${rsync_cv_HAVE_SOCKETPAIR=yes} +rsync_cv_HAVE_LONGLONG=${rsync_cv_HAVE_LONGLONG=yes} +rsync_cv_HAVE_OFF64_T=${rsync_cv_HAVE_OFF64_T=no} +rsync_cv_HAVE_SHORT_INO_T=${rsync_cv_HAVE_SHORT_INO_T=no} +rsync_cv_HAVE_UNSIGNED_CHAR=${rsync_cv_HAVE_UNSIGNED_CHAR=no} +rsync_cv_HAVE_BROKEN_READDIR=${rsync_cv_HAVE_BROKEN_READDIR=no} +rsync_cv_HAVE_GETTIMEOFDAY_TZ=${rsync_cv_HAVE_GETTIMEOFDAY_TZ=yes} +rsync_cv_HAVE_C99_VSNPRINTF=${rsync_cv_HAVE_C99_VSNPRINTF=yes} +rsync_cv_HAVE_SECURE_MKSTEMP=${rsync_cv_HAVE_SECURE_MKSTEMP=yes} +rsync_cv_REPLACE_INET_NTOA=${rsync_cv_REPLACE_INET_NTOA=no} +rsync_cv_REPLACE_INET_ATON=${rsync_cv_REPLACE_INET_ATON=no} + +# samba +samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes} + +# socat +sc_cv_type_dev_basic='8 /* unsigned long long */' +sc_cv_type_gidt_basic='4 /* unsigned int */' +sc_cv_type_longlong=yes +sc_cv_type_modet_basic='4 /* unsigned int */' +sc_cv_type_off64=no +sc_cv_type_off64_basic='0 /* unknown */' +sc_cv_type_off_basic='3 /* int */' +sc_cv_type_pidt_basic='3 /* int */' +sc_cv_type_rlimit_rlimmax_basic='4 /* unsigned int */' +sc_cv_type_sa_family_t=yes +sc_cv_type_sighandler=no +sc_cv_type_sizet_basic='4 /* unsigned int */' +sc_cv_type_socklen=yes +sc_cv_type_socklent_basic='4 /* unsigned int */' +sc_cv_type_stat64=no +sc_cv_type_stat64_stblksize_basic='0 /* unknown */' +sc_cv_type_stat64_stblocks_basic='0 /* unknown */' +sc_cv_type_stat64_stdev_basic='0 /* unknown */' +sc_cv_type_stat64_stino_basic='0 /* unknown */' +sc_cv_type_stat64_stnlink_basic='0 /* unknown */' +sc_cv_type_stat64_stsize_basic='0 /* unknown */' +sc_cv_type_stat_stblksize_basic='3 /* int */' +sc_cv_type_stat_stblocks_basic='3 /* int */' +sc_cv_type_stat_stino_basic='4 /* unsigned int */' +sc_cv_type_stat_stnlink_basic='4 /* unsigned int */' +sc_cv_type_stat_stsize_basic='3 /* int */' +sc_cv_type_struct_timeval_tv_usec='3 /* int */' +sc_cv_type_timet_basic='3 /* int */' +sc_cv_type_uidt_basic='4 /* unsigned int */' +sc_cv_type_uint16=yes +sc_cv_type_uint32=yes +sc_cv_type_uint64=yes +sc_cv_type_uint8=yes +sc_cv_typeof_struct_cmsghdr_cmsg_len='4 /* unsigned int */' + +# screen +screen_cv_sys_bcopy_overlap=${screen_cv_sys_bcopy_overlap=no} +screen_cv_sys_memcpy_overlap=${screen_cv_sys_memcpy_overlap=no} +screen_cv_sys_memmove_overlap=${screen_cv_sys_memmove_overlap=no} +screen_cv_sys_fifo_broken_impl=${screen_cv_sys_fifo_broken_impl=yes} +screen_cv_sys_fifo_usable=${screen_cv_sys_fifo_usable=yes} +screen_cv_sys_select_broken_retval=${screen_cv_sys_select_broken_retval=no} +screen_cv_sys_sockets_nofs=${screen_cv_sys_sockets_nofs=no} +screen_cv_sys_sockets_usable=${screen_cv_sys_sockets_usable=yes} +screen_cv_sys_terminfo_used=${screen_cv_sys_terminfo_used=yes} + +# slrn +slrn_cv_va_val_copy=${slrn_cv_va_val_copy=yes} + +# ssh +ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_dirent_have_space_d_name=yes} +ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no} +ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no} +ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes} +ac_cv_type_struct_timespec=${ac_cv_type_struct_timespec=yes} +ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=yes} + +# startup-notification +lf_cv_sane_realloc=yes + +# xffm +jm_cv_func_working_readdir=yes + +# xorg X11R7 +ac_cv_sys_linker_h=${ac_cv_sys_linker_h=no} +ac_cv_file__usr_share_X11_sgml_defs_ent=${ac_cv_file__usr_share_X11_sgml_defs_ent=no} + +# evolution-data-server +ac_cv_libiconv_utf8=${ac_cv_libiconv_utf8=yes} + +#dbus +ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=yes} + +#libpciaccess +have_mtrr_h=yes + +#mozilla +moz_cv_size_of_JS_BYTES_PER_WORD=4 +moz_cv_align_of_JS_ALIGN_OF_POINTER=4 +moz_cv_size_of_JS_BYTES_PER_DOUBLE=8 + +#ofono +ac_cv_lib_c_signalfd=${ac_cv_lib_c_signalfd=yes} + +#unfs3 +nfsd_cv_broken_setfsuid=${nfsd_cv_broken_setfsuid=0} +nfsd_cv_func_statfs=${nfsd_cv_func_statfs=statfs2_bsize} +nfsd_cv_bsd_signals=${nfsd_cv_bsd_signals=yes} + +# at-spi2-core +ac_cv_alignof_char=1 +ac_cv_alignof_dbind_pointer=4 +ac_cv_alignof_dbind_struct=1 +ac_cv_alignof_dbus_bool_t=4 +ac_cv_alignof_dbus_int16_t=2 +ac_cv_alignof_dbus_int32_t=4 +ac_cv_alignof_dbus_int64_t=4 +ac_cv_alignof_double=4 diff --git a/common/environment/configure/autoconf_cache/mips-common b/common/environment/configure/autoconf_cache/mips-common new file mode 100644 index 0000000..bbe8ff3 --- /dev/null +++ b/common/environment/configure/autoconf_cache/mips-common @@ -0,0 +1,93 @@ +# general +ac_cv_va_val_copy=${ac_cv_va_val_copy=yes} +ac_cv_sizeof_struct_iovec=8 + +# cvs +cvs_cv_func_printf_ptr=${cvs_cv_func_printf_ptr=yes} + +# screen +screen_cv_sys_bcopy_overlap=${screen_cv_sys_bcopy_overlap=no} +screen_cv_sys_memcpy_overlap=${screen_cv_sys_memcpy_overlap=no} +screen_cv_sys_memmove_overlap=${screen_cv_sys_memmove_overlap=no} +screen_cv_sys_fifo_broken_impl=${screen_cv_sys_fifo_broken_impl=yes} +screen_cv_sys_fifo_usable=${screen_cv_sys_fifo_usable=yes} +screen_cv_sys_select_broken_retval=${screen_cv_sys_select_broken_retval=no} +screen_cv_sys_sockets_nofs=${screen_cv_sys_sockets_nofs=no} +screen_cv_sys_sockets_usable=${screen_cv_sys_sockets_usable=yes} +screen_cv_sys_terminfo_used=${screen_cv_sys_terminfo_used=yes} + +# socat +sc_cv_type_dev_basic='8 /* unsigned long long */' +sc_cv_type_gidt_basic='4 /* unsigned int */' +sc_cv_type_longlong=yes +sc_cv_type_modet_basic='4 /* unsigned int */' +sc_cv_type_off64=no +sc_cv_type_off64_basic='0 /* unknown */' +sc_cv_type_off_basic='3 /* int */' +sc_cv_type_pidt_basic='3 /* int */' +sc_cv_type_rlimit_rlimmax_basic='4 /* unsigned int */' +sc_cv_type_sa_family_t=yes +sc_cv_type_sighandler=no +sc_cv_type_sizet_basic='4 /* unsigned int */' +sc_cv_type_socklen=yes +sc_cv_type_socklent_basic='4 /* unsigned int */' +sc_cv_type_stat64=no +sc_cv_type_stat64_stblksize_basic='0 /* unknown */' +sc_cv_type_stat64_stblocks_basic='0 /* unknown */' +sc_cv_type_stat64_stdev_basic='0 /* unknown */' +sc_cv_type_stat64_stino_basic='0 /* unknown */' +sc_cv_type_stat64_stnlink_basic='0 /* unknown */' +sc_cv_type_stat64_stsize_basic='0 /* unknown */' +sc_cv_type_stat_stblksize_basic='3 /* int */' +sc_cv_type_stat_stblocks_basic='3 /* int */' +sc_cv_type_stat_stino_basic='4 /* unsigned int */' +sc_cv_type_stat_stnlink_basic='4 /* unsigned int */' +sc_cv_type_stat_stsize_basic='3 /* int */' +sc_cv_type_struct_timeval_tv_usec='3 /* int */' +sc_cv_type_timet_basic='3 /* int */' +sc_cv_type_uidt_basic='4 /* unsigned int */' +sc_cv_type_uint16=yes +sc_cv_type_uint32=yes +sc_cv_type_uint64=yes +sc_cv_type_uint8=yes +sc_cv_typeof_struct_cmsghdr_cmsg_len='4 /* unsigned int */' + +# ORBit2 +ac_cv_alignof_CORBA_octet=1 +ac_cv_alignof_CORBA_boolean=1 +ac_cv_alignof_CORBA_char=1 +ac_cv_alignof_CORBA_wchar=2 +ac_cv_alignof_CORBA_short=2 +ac_cv_alignof_CORBA_long=4 +ac_cv_alignof_CORBA_long_long=8 +ac_cv_alignof_CORBA_float=4 +ac_cv_alignof_CORBA_double=8 +ac_cv_alignof_CORBA_long_double=8 +ac_cv_alignof_CORBA_pointer=4 +ac_cv_alignof_CORBA_struct=1 + +# apache +ac_cv_func_pthread_key_delete=${ac_cv_func_pthread_key_delete=yes} +apr_cv_process_shared_works=${apr_cv_process_shared_works=no} +ac_cv_sizeof_ssize_t=${ac_cv_sizeof_ssize_t=4} +apr_cv_tcp_nodelay_with_cork=${apr_cv_tcp_nodelay_with_cork=yes} + +# glib +glib_cv_va_val_copy=${glib_cv_va_val_copy=yes} +ac_cv_alignof_guint32=4 +ac_cv_alignof_guint64=8 +ac_cv_alignof_unsigned_long=4 + + +# slrn +slrn_cv_va_val_copy=${slrn_cv_va_val_copy=yes} + +# at-spi2-core +ac_cv_alignof_char=1 +ac_cv_alignof_dbind_pointer=4 +ac_cv_alignof_dbind_struct=1 +ac_cv_alignof_dbus_bool_t=4 +ac_cv_alignof_dbus_int16_t=2 +ac_cv_alignof_dbus_int32_t=4 +ac_cv_alignof_dbus_int64_t=8 +ac_cv_alignof_double=8 diff --git a/common/environment/configure/autoconf_cache/mips-linux b/common/environment/configure/autoconf_cache/mips-linux new file mode 100644 index 0000000..ed9bf55 --- /dev/null +++ b/common/environment/configure/autoconf_cache/mips-linux @@ -0,0 +1,78 @@ +# general +ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no} + +# bash +ac_cv_c_long_double=${ac_cv_c_long_double=no} + +# openssh +ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no} +ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no} +ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes} +ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=no} +ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_have_space_d_name_in_struct_dirent=yes} + +# fget +compat_cv_func_snprintf_works=${compat_cv_func_snprintf_works=yes} + +# glib +glib_cv___va_copy=${glib_cv___va_copy=yes} +glib_cv_has__inline=${glib_cv_has__inline=yes} +glib_cv_has__inline__=${glib_cv_has__inline__=yes} +glib_cv_hasinline=${glib_cv_hasinline=yes} +glib_cv_long_long_format=${glib_cv_long_long_format=ll} +glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no} +glib_cv_sane_realloc=${glib_cv_sane_realloc=yes} +glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24} +glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4} +glib_cv_stack_grows=${glib_cv_stack_grows=no} +glib_cv_uscore=${glib_cv_uscore=no} + +# glib-2.0 +glib_cv_stack_grows=${glib_cv_stack_grows=no} +utils_cv_sys_open_max=${utils_cv_sys_open_max=1015} +glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes} + +# libpcap +ac_cv_linux_vers=${ac_cv_linux_vers=2} + +# startup-notification +lf_cv_sane_realloc=${lf_cv_sane_realloc=yes} + +# libidl +libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll} + +# ncftp +wi_cv_struct_timeval_tv_sec=${wi_cv_struct_timeval_tv_sec=long} +wi_cv_struct_timeval_tv_usec=${wi_cv_struct_timeval_tv_usec=long} + +# db +db_cv_align_t=${db_cv_align_t='unsigned long long'} +db_cv_alignp_t=${db_cv_alignp_t='unsigned long'} +db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes} +db_cv_sprintf_count=${db_cv_sprintf_count=yes} + +# rrdtool +rd_cv_ieee_works=${rd_cv_ieee_works=yes} +# ac_cv_path_PERL=${ac_cv_path_PERL=no} + +# gettext +am_cv_func_working_getline=${am_cv_func_working_getline=yes} + +# samba +samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes} + +# vim +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} + +# intercom +ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes} + +# lmbench +ac_cv_uint=${ac_cv_unit=yes} + +# D-BUS +ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes} + +# evolution-data-server +ac_cv_libiconv_utf8=${ac_cv_libiconv_utf8=yes} + diff --git a/common/environment/configure/autoconf_cache/mipsel-linux b/common/environment/configure/autoconf_cache/mipsel-linux new file mode 100644 index 0000000..6ddcb2a --- /dev/null +++ b/common/environment/configure/autoconf_cache/mipsel-linux @@ -0,0 +1,78 @@ +# general +ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no} + +# bash +ac_cv_c_long_double=${ac_cv_c_long_double=no} + +# openssh +ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no} +ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no} +ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes} +ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=no} +ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_have_space_d_name_in_struct_dirent=yes} + +# fget +compat_cv_func_snprintf_works=${compat_cv_func_snprintf_works=yes} + +# glib +glib_cv___va_copy=${glib_cv___va_copy=yes} +glib_cv_has__inline=${glib_cv_has__inline=yes} +glib_cv_has__inline__=${glib_cv_has__inline__=yes} +glib_cv_hasinline=${glib_cv_hasinline=yes} +glib_cv_long_long_format=${glib_cv_long_long_format=ll} +glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no} +glib_cv_sane_realloc=${glib_cv_sane_realloc=yes} +glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24} +glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4} +glib_cv_stack_grows=${glib_cv_stack_grows=no} +glib_cv_uscore=${glib_cv_uscore=no} + +# glib-2.0 +glib_cv_stack_grows=${glib_cv_stack_grows=no} +utils_cv_sys_open_max=${utils_cv_sys_open_max=1015} +glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes} + +# libpcap +ac_cv_linux_vers=${ac_cv_linux_vers=2} + +# startup-notification +lf_cv_sane_realloc=${lf_cv_sane_realloc=yes} + +# libidl +libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll} + +# ncftp +wi_cv_struct_timeval_tv_sec=${wi_cv_struct_timeval_tv_sec=long} +wi_cv_struct_timeval_tv_usec=${wi_cv_struct_timeval_tv_usec=long} +wi_cv_unix_domain_sockets=${wi_cv_unix_domain_sockets=yes} + +# db +db_cv_align_t=${db_cv_align_t='unsigned long long'} +db_cv_alignp_t=${db_cv_alignp_t='unsigned long'} +db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes} +db_cv_sprintf_count=${db_cv_sprintf_count=yes} + +# rrdtool +rd_cv_ieee_works=${rd_cv_ieee_works=yes} +# ac_cv_path_PERL=${ac_cv_path_PERL=no} + +# gettext +am_cv_func_working_getline=${am_cv_func_working_getline=yes} + +# samba +samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes} + +# vim +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} + +# intercom +ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes} + +#lmbench +ac_cv_uint=${ac_cv_unit=yes} + +# D-BUS +ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes} + +# evolution-data-server +ac_cv_libiconv_utf8=${ac_cv_libiconv_utf8=yes} diff --git a/common/environment/configure/autoconf_cache/musl-linux b/common/environment/configure/autoconf_cache/musl-linux new file mode 100644 index 0000000..58cc913 --- /dev/null +++ b/common/environment/configure/autoconf_cache/musl-linux @@ -0,0 +1,183 @@ +# gnulib overrides +# +gl_cv_func_isnanl_works=yes +gl_cv_header_working_stdint_h=yes +gl_cv_func_fpurge_works=yes +gl_cv_func_fcntl_f_dupfd_cloexec=yes +gl_cv_func_getcwd_path_max=yes +gl_cv_func_fprintf_posix=yes +gl_cv_func_printf_sizes_c99=yes +gl_cv_func_printf_long_double=yes +gl_cv_func_printf_infinite=yes +gl_cv_func_printf_infinite_long_double=yes +gl_cv_func_printf_directive_a=yes +gl_cv_func_printf_directive_f=yes +gl_cv_func_printf_directive_n=yes +gl_cv_func_printf_directive_ls=yes +gl_cv_func_printf_positions=yes +gl_cv_func_printf_flag_grouping=yes +gl_cv_func_printf_flag_leftadjust=yes +gl_cv_func_printf_flag_zero=yes +gl_cv_func_printf_precision=yes +gl_cv_func_printf_enomem=yes +gl_cv_header_wchar_h_correct_inline=yes +gl_cv_decl_null_works=yes +gl_cv_func_malloc_posix=yes +gl_cv_func_memchr_works=yes +gl_cv_have_include_next=yes +gt_cv_inttypes_pri_broken=no +gl_cv_promoted_mode_t=mode_t +gl_cv_func_mbrtowc_sanitycheck=yes +gl_cv_sys_struct_timespec_in_time_h=yes +gl_cv_func_iswcntrl_works=yes +gl_cv_func_dup2_works=yes +gl_cv_func_fcntl_f_dupfd_works=yes +gl_cv_func_fseeko=yes +# the following flag, according to fseeko.m4, is needed to skip the fseeko replacement +gl_cv_func_fflush_stdin=yes +gl_cv_func_gettimeofday_clobber=no +gl_cv_func_gettimeofday_posix_signature=yes +gl_cv_func_lseek_pipe=yes +gl_cv_func_mbrtowc_retval=yes +gl_cv_func_posix_spawn_works=yes +gl_cv_func_sigprocmask=yes +gl_cv_func_spawnattr_setschedparam=yes +gl_cv_func_spawnattr_setschedpolicy=yes +gl_cv_func_stat_dir_slash=yes +gl_cv_func_strndup_works=yes +gl_cv_func_unsetenv_works=yes +gl_cv_func_working_strerror=yes +gl_cv_have_raw_decl_atoll=yes +gl_cv_have_raw_decl_btowc=yes +gl_cv_have_raw_decl_chown=yes +gl_cv_have_raw_decl_dprintf=yes +gl_cv_have_raw_decl_dup2=yes +gl_cv_have_raw_decl_dup3=yes +gl_cv_have_raw_decl_endusershell=yes +gl_cv_have_raw_decl_environ=yes +gl_cv_have_raw_decl_faccessat=yes +gl_cv_have_raw_decl_fchdir=yes +gl_cv_have_raw_decl_fchmodat=yes +gl_cv_have_raw_decl_fchownat=yes +gl_cv_have_raw_decl_fcntl=yes +gl_cv_have_raw_decl_fseeko=yes +gl_cv_have_raw_decl_fstatat=yes +gl_cv_have_raw_decl_fsync=yes +gl_cv_have_raw_decl_ftello=yes +gl_cv_have_raw_decl_ftruncate=yes +gl_cv_have_raw_decl_futimens=yes +gl_cv_have_raw_decl_getcwd=yes +gl_cv_have_raw_decl_getdelim=yes +gl_cv_have_raw_decl_getdomainname=yes +gl_cv_have_raw_decl_getdtablesize=yes +gl_cv_have_raw_decl_getgroups=yes +gl_cv_have_raw_decl_gethostname=yes +gl_cv_have_raw_decl_getline=yes +gl_cv_have_raw_decl_getlogin=yes +gl_cv_have_raw_decl_getlogin_r=yes +gl_cv_have_raw_decl_getpagesize=yes +gl_cv_have_raw_decl_getsubopt=yes +gl_cv_have_raw_decl_getusershell=yes +gl_cv_have_raw_decl_grantpt=yes +gl_cv_have_raw_decl_lchown=yes +gl_cv_have_raw_decl_link=yes +gl_cv_have_raw_decl_linkat=yes +gl_cv_have_raw_decl_lseek=yes +gl_cv_have_raw_decl_lstat=yes +gl_cv_have_raw_decl_mbsinit=yes +gl_cv_have_raw_decl_mbrlen=yes +gl_cv_have_raw_decl_mbrtowc=yes +gl_cv_have_raw_decl_memmem=yes +gl_cv_have_raw_decl_mempcpy=yes +gl_cv_have_raw_decl_memrchr=yes +gl_cv_have_raw_decl_mkdirat=yes +gl_cv_have_raw_decl_mkdtemp=yes +gl_cv_have_raw_decl_mkfifo=yes +gl_cv_have_raw_decl_mknod=yes +gl_cv_have_raw_decl_mknodat=yes +gl_cv_have_raw_decl_mkstemp=yes +gl_cv_have_raw_decl_openat=yes +gl_cv_have_raw_decl_pipe2=yes +gl_cv_have_raw_decl_posix_spawnattr_setpgroup=yes +gl_cv_have_raw_decl_popen=yes +gl_cv_have_raw_decl_pread=yes +gl_cv_have_raw_decl_ptsname=yes +gl_cv_have_raw_decl_rawmemchr=yes +gl_cv_have_raw_decl_readlink=yes +gl_cv_have_raw_decl_readlinkat=yes +gl_cv_have_raw_decl_realpath=yes +gl_cv_have_raw_decl_renameat=yes +gl_cv_have_raw_decl_rmdir=yes +gl_cv_have_raw_decl_setenv=yes +gl_cv_have_raw_decl_setusershell=yes +gl_cv_have_raw_decl_sigaction=yes +gl_cv_have_raw_decl_sigaddset=yes +gl_cv_have_raw_decl_sigdelset=yes +gl_cv_have_raw_decl_sigemptyset=yes +gl_cv_have_raw_decl_sigfillset=yes +gl_cv_have_raw_decl_sigismember=yes +gl_cv_have_raw_decl_sigpending=yes +gl_cv_have_raw_decl_sigprocmask=yes +gl_cv_have_raw_decl_sleep=yes +gl_cv_have_raw_decl_snprintf=yes +gl_cv_have_raw_decl_stat=yes +gl_cv_have_raw_decl_stpcpy=yes +gl_cv_have_raw_decl_stpncpy=yes +gl_cv_have_raw_decl_strcasestr=yes +gl_cv_have_raw_decl_strchrnul=yes +gl_cv_have_raw_decl_strncat=yes +gl_cv_have_raw_decl_strnlen=yes +gl_cv_have_raw_decl_strpbrk=yes +gl_cv_have_raw_decl_strsep=yes +gl_cv_have_raw_decl_strsignal=yes +gl_cv_have_raw_decl_strtod=yes +gl_cv_have_raw_decl_strtok_r=yes +gl_cv_have_raw_decl_strtoll=yes +gl_cv_have_raw_decl_strtoull=yes +gl_cv_have_raw_decl_strverscmp=yes +gl_cv_have_raw_decl_symlink=yes +gl_cv_have_raw_decl_symlinkat=yes +gl_cv_have_raw_decl_tmpfile=yes +gl_cv_have_raw_decl_ttyname_r=yes +gl_cv_have_raw_decl_unlinkat=yes +gl_cv_have_raw_decl_unlink=yes +gl_cv_have_raw_decl_unlockpt=yes +gl_cv_have_raw_decl_unsetenv=yes +gl_cv_have_raw_decl_usleep=yes +gl_cv_have_raw_decl_vdprintf=yes +gl_cv_have_raw_decl_vsnprintf=yes +gl_cv_have_raw_decl_wcsrtombs=yes +gl_cv_have_raw_decl_wcrtomb=yes +gl_cv_have_raw_decl_wcsnrtombs=yes +gl_cv_have_raw_decl_wctob=yes +gl_cv_have_raw_decl_wcwidth=yes +gl_cv_header_inttypes_h=yes +gl_cv_header_errno_h_complete=yes +gl_cv_header_working_fcntl_h=yes +gl_cv_header_stdint_h=yes +gl_cv_size_max=yes +gl_cv_sys_struct_timeval=yes +gl_cv_sys_struct_utimbuf=yes + +# this gnulib test is especially stupid, it invokes UB and hangs for +# an entire minute +gl_cv_func_working_mktime=yes + +# Force detection of musl's gettext +gt_func_gnugettext_libc=yes +gt_cv_func_gnugettext1_libc=yes +gt_cv_func_gnugettext2_libc=yes +gt_cv_func_gnugettext3_libc=yes +ac_cv_sys_file_offset_bits=64 +ac_cv_sizeof_off_t=8 +ac_cv_sizeof_ino_t=8 +ac_cv_sizeof_blkcnt_t=8 + +# Force detection of musl's iconv +ac_cv_libiconv_utf8=yes + +# musl omits BOM on UTF-16 and UTF-32 +ac_cv_iconv_omits_bom=yes + +# omit lchmod always returns ENOTSUP +ac_cv_func_lchmod=no diff --git a/common/environment/configure/autoconf_cache/powerpc-common b/common/environment/configure/autoconf_cache/powerpc-common new file mode 100644 index 0000000..efa299c --- /dev/null +++ b/common/environment/configure/autoconf_cache/powerpc-common @@ -0,0 +1,14 @@ +# glib +ac_cv_alignof_guint32=4 +ac_cv_alignof_guint64=8 +ac_cv_alignof_unsigned_long=4 + +# at-spi2-core +ac_cv_alignof_char=1 +ac_cv_alignof_dbind_pointer=4 +ac_cv_alignof_dbind_struct=1 +ac_cv_alignof_dbus_bool_t=4 +ac_cv_alignof_dbus_int16_t=2 +ac_cv_alignof_dbus_int32_t=4 +ac_cv_alignof_dbus_int64_t=8 +ac_cv_alignof_double=8 diff --git a/common/environment/configure/autoconf_cache/powerpc-linux b/common/environment/configure/autoconf_cache/powerpc-linux new file mode 100644 index 0000000..a9f89cb --- /dev/null +++ b/common/environment/configure/autoconf_cache/powerpc-linux @@ -0,0 +1,16 @@ +# general +ac_cv_va_val_copy=${ac_cv_va_val_copy=yes} + +# startup-notification +lf_cv_sane_realloc=yes + +# glib +glib_cv_stack_grows=${glib_cv_stack_grows=no} +glib_cv_uscore=${glib_cv_uscore=no} +glib_cv_va_val_copy=${glib_cv_va_val_copy=yes} + +# lftp +lftp_cv_va_val_copy=${lftp_cv_va_val_copy=yes} + +# slrn +slrn_cv_va_val_copy=${slrn_cv_va_val_copy=yes} diff --git a/common/environment/configure/autoconf_cache/powerpc32-linux b/common/environment/configure/autoconf_cache/powerpc32-linux new file mode 100644 index 0000000..0f461cd --- /dev/null +++ b/common/environment/configure/autoconf_cache/powerpc32-linux @@ -0,0 +1,272 @@ +ac_cv_func_setvbuf_reversed=no +ac_cv_sizeof___int64=${ac_cv_sizeof___int64=0} +ac_cv_sizeof_char=${ac_cv_sizeof_char=1} +ac_cv_sizeof_char_p=${ac_cv_sizeof_char_p=4} +ac_cv_sizeof_double=${ac_cv_sizeof_double=8} +ac_cv_sizeof_float=${ac_cv_sizeof_float=4} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_int_p=${ac_cv_sizeof_int_p=4} +ac_cv_sizeof_long=${ac_cv_sizeof_long=4} +ac_cv_sizeof_long_p=${ac_cv_sizeof_long_p=4} +ac_cv_sizeof_long_int=${ac_cv_sizeof_long_int=4} +ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8} +ac_cv_sizeof_long_long_int=${ac_cv_sizeof_long_long_int=8} +ac_cv_sizeof_short=${ac_cv_sizeof_short=2} +ac_cv_sizeof_short_int=${ac_cv_sizeof_short_int=2} +ac_cv_sizeof_signed_char=${ac_cv_sizeof_signed_char=1} +ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4} +ac_cv_sizeof_unsigned_char=${ac_cv_sizeof_unsigned_char=1} +ac_cv_sizeof_unsigned_int=${ac_cv_sizeof_unsigned_int=4} +ac_cv_sizeof_unsigned_long=${ac_cv_sizeof_unsigned_long=4} +ac_cv_sizeof_unsigned_long_int=${ac_cv_sizeof_unsigned_long_int=4} +ac_cv_sizeof_unsigned_long_long_int=${ac_cv_sizeof_unsigned_long_long_int=8} +ac_cv_sizeof_unsigned_short=${ac_cv_sizeof_unsigned_short=2} +ac_cv_sizeof_unsigned_short_int=${ac_cv_sizeof_unsigned_short_int=2} +ac_cv_sizeof_void_p=${ac_cv_sizeof_void_p=4} +ac_cv_sizeof_wchar_t=${ac_cv_sizeof_wchar_t=4} +ac_cv_type___int64=${ac_cv_type___int64=no} +ac_cv_type_size_t=${ac_cv_type_size_t=yes} +ac_cv_type_void_p=${ac_cv_type_void_p=yes} +ac_cv_uchar=${ac_cv_uchar=no} +ac_cv_uint=${ac_cv_uint=yes} +ac_cv_ulong=${ac_cv_ulong=yes} +ac_cv_ushort=${ac_cv_ushort=yes} +ac_cv_time_r_type=${ac_cv_time_r_type=POSIX} +cookie_io_functions_use_off64_t=${cookie_io_functions_use_off64_t=yes} + +if [ "$XBPS_TARGET_LIBC" = "musl" ]; then + ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8} +else + ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=16} + + # libc + libc_cv_ppc_machine=${libc_cv_ppc_machine=yes} + libc_cv_mlong_double_128ibm=${libc_cv_mlong_double_128ibm=yes} + libc_cv_mabi_ibmlongdouble=${libc_cv_mabi_ibmlongdouble=yes} + libc_cv_mlong_double_128=${libc_cv_mlong_double_128=yes} +fi + +# apache +ac_cv_sizeof_ssize_t=${ac_cv_sizeof_ssize_t=4} + +# ssh +ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_dirent_have_space_d_name=yes} +ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no} +ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no} +ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes} +ac_cv_type_struct_timespec=${ac_cv_type_struct_timespec=yes} +ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=yes} + +# coreutils +utils_cv_sys_open_max=${utils_cv_sys_open_max=1019} + +# libpcap +ac_cv_linux_vers=${ac_cv_linux_vers=2} + +# nano +ac_cv_regexec_segfault_emptystr=${ac_cv_regexec_segfault_emptystr=no} +nano_cv_func_regexec_segv_emptystr=${nano_cv_func_regexec_segv_emptystr=no} + + +# libnet +ac_libnet_have_packet_socket=${ac_libnet_have_packet_socket=yes} + +# screen +screen_cv_sys_bcopy_overlap=${screen_cv_sys_bcopy_overlap=no} +screen_cv_sys_memcpy_overlap=${screen_cv_sys_memcpy_overlap=no} +screen_cv_sys_memmove_overlap=${screen_cv_sys_memmove_overlap=no} +screen_cv_sys_fifo_broken_impl=${screen_cv_sys_fifo_broken_impl=yes} +screen_cv_sys_fifo_usable=${screen_cv_sys_fifo_usable=yes} +screen_cv_sys_select_broken_retval=${screen_cv_sys_select_broken_retval=no} +screen_cv_sys_sockets_nofs=${screen_cv_sys_sockets_nofs=no} +screen_cv_sys_sockets_usable=${screen_cv_sys_sockets_usable=yes} +screen_cv_sys_terminfo_used=${screen_cv_sys_terminfo_used=yes} + +ac_cv_func_lstat_dereferences_slashed_symlink=${ac_cv_func_lstat_dereferences_slashed_symlink=yes} +ac_cv_func_lstat_empty_string_bug=${ac_cv_func_lstat_empty_string_bug=no} +ac_cv_func_stat_empty_string_bug=${ac_cv_func_stat_empty_string_bug=no} +ac_cv_func_stat_ignores_trailing_slash=${ac_cv_func_stat_ignores_trailing_slash=no} + +# socat +ac_cv_ispeed_offset=${ac_cv_ispeed_offset=13} +sc_cv_termios_ispeed=${sc_cv_termios_ispeed=yes} + +# links +ac_cv_lib_png_png_create_info_struct=${ac_cv_lib_png_png_create_info_struct=yes} + +# db +db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes} +db_cv_sprintf_count=${db_cv_sprintf_count=yes} +db_cv_align_t=${db_cv_align_t='unsigned long long'} +db_cv_alignp_t=${db_cv_alignp_t='unsigned long'} + +# php +ac_cv_pread=${ac_cv_pread=no} +ac_cv_pwrite=${ac_cv_pwrite=no} +php_cv_lib_cookie_io_functions_use_off64_t=${php_cv_lib_cookie_io_functions_use_off64_t=yes} + +# gettext +am_cv_func_working_getline=${am_cv_func_working_getline=yes} + +# glib +glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24} +glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4} +glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes} +glib_cv_has__inline=${glib_cv_has__inline=yes} +glib_cv_has__inline__=${glib_cv_has__inline__=yes} +glib_cv_hasinline=${glib_cv_hasinline=yes} +glib_cv_sane_realloc=${glib_cv_sane_realloc=yes} +glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24} +glib_cv_va_val_copy=${glib_cv_va_val_copy=yes} +glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no} +glib_cv_sys_pthread_mutex_trylock_posix=${glib_cv_sys_pthread_mutex_trylock_posix=yes} +glib_cv_sys_pthread_getspecific_posix=${glib_cv_sys_pthread_getspecific_posix=yes} +glib_cv_sys_pthread_cond_timedwait_posix=${glib_cv_sys_pthread_cond_timedwait_posix=yes} + +# ettercap +ettercap_cv_type_socklen_t=${ettercap_cv_type_socklen_t=yes} + +# libesmtp +acx_working_snprintf=${acx_working_snprintf=yes} + +# D-BUS +ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes} + +# glib 2.0 +glib_cv_long_long_format=${glib_cv_long_long_format=ll} +glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24} +glib_cv_sizeof_intmax_t=${glib_cv_sizeof_intmax_t=8} +glib_cv_sizeof_ptrdiff_t=${glib_cv_sizeof_ptrdiff_t=4} +glib_cv_sizeof_size_t=${glib_cv_sizeof_size_t=4} +glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4} +glib_cv_sys_use_pid_niceness_surrogate=${glib_cv_sys_use_pid_niceness_surrogate=yes} + +glib_cv_strlcpy=${glib_cv_strlcpy=no} + +# httppc +ac_cv_strerror_r_SUSv3=${ac_cv_strerror_r_SUSv3=no} + +# lftp +ac_cv_need_trio=${ac_cv_need_trio=no} +lftp_cv_va_val_copy=${lftp_cv_va_val_copy=yes} + +# edb +db_cv_spinlocks=${db_cv_spinlocks=no} + +# fget +compat_cv_func_snprintf_works=${compat_cv_func_snprintf_works=yes} +compat_cv_func_basename_works=${compat_cv_func_basename_works=no} +compat_cv_func_dirname_works=${compat_cv_func_dirname_works=no} + +# slrn +slrn_cv_va_val_copy=${slrn_cv_va_val_copy=yes} + +# libidl +libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll} + +# ORBit2 +ac_cv_alignof_CORBA_boolean=1 +ac_cv_alignof_CORBA_char=1 +ac_cv_alignof_CORBA_double=4 +ac_cv_alignof_CORBA_float=4 +ac_cv_alignof_CORBA_long=4 +ac_cv_alignof_CORBA_long_double=4 +ac_cv_alignof_CORBA_long_long=4 +ac_cv_alignof_CORBA_octet=1 +ac_cv_alignof_CORBA_pointer=4 +ac_cv_alignof_CORBA_short=2 +ac_cv_alignof_CORBA_struct=4 +ac_cv_alignof_CORBA_wchar=2 + +# cvs +cvs_cv_func_printf_ptr=${cvs_cv_func_printf_ptr=yes} + +# bash +ac_cv_c_long_double=${ac_cv_c_long_double=yes} +bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp=missing} + +# openssh +ac_cv_have_broken_dirname=${ac_cv_have_broken_dirname='yes'} +ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_have_space_d_name_in_struct_dirent='no'} +ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf='no'} +ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug='yes'} +ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr='no'} +ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr='yes'} + +# vim +ac_cv_sizeof_int=${ac_cv_sizeof_int='4'} + +#modphp +if [ "$XBPS_TARGET_ENDIAN" != "le" ]; then + ac_cv_c_bigendian_php=${ac_cv_c_bigendian_php=yes} +fi +ac_cv_sizeof_ptrdiff_t=${ac_cv_sizeof_ptrdiff_t=4} + +# apache2 (note other apache stanza in this file) +ap_void_ptr_lt_long=${ap_void_ptr_lt_long=no} +apr_cv_use_lfs64=${apr_cv_use_lfs64=yes} +apr_cv_epoll=${apr_cv_epoll=yes} +apr_cv_pthreads_cflags=${apr_cv_pthreads_cflags=-pthread} +apr_cv_pthreads_lib=${apr_cv_pthreads_lib=-lpthread} +ac_cv_func_mmap=${ac_cv_func_mmap=yes} +ac_cv_file__dev_zero=${ac_cv_file__dev_zero=yes} +ac_cv_sizeof_pid_t=${ac_cv_sizeof_pid_t=4} +ac_cv_socklen_t=${ac_cv_socklen_t=yes} +ac_cv_struct_rlimit=${ac_cv_struct_rlimit=yes} +ac_cv_negative_eai=${ac_cv_negative_eai=yes} +apr_cv_gai_addrconfig=${apr_cv_gai_addrconfig=no} +apr_cv_tcp_nodelay_with_cork=${apr_cv_tcp_nodelay_with_cork=yes} + +# binutils (libiberty) +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_type_int=${ac_cv_type_int=yes} +ac_cv_type_uintptr_t=${ac_cv_type_uintptr_t=yes} +liberty_cv_uint64=${liberty_cv_uint64=uint64_t} + +#samba +ac_cv_func_memcmp_working=${ac_cv_func_memcmp_working=yes} +fu_cv_sys_stat_statvfs64=${fu_cv_sys_stat_statvfs64=yes} +samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=${samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no} +samba_cv_HAVE_BROKEN_GETGROUPS=${samba_cv_HAVE_BROKEN_GETGROUPS=no} +samba_cv_HAVE_BROKEN_READDIR=${samba_cv_HAVE_BROKEN_READDIR=yes} +samba_cv_HAVE_BROKEN_READDIR_NAME=${samba_cv_HAVE_BROKEN_READDIR_NAME=no} +samba_cv_HAVE_C99_VSNPRINTF=${samba_cv_HAVE_C99_VSNPRINTF=yes} +samba_cv_HAVE_DEV64_T=${samba_cv_HAVE_DEV64_T=no} +samba_cv_HAVE_DEVICE_MAJOR_FN=${samba_cv_HAVE_DEVICE_MAJOR_FN=yes} +samba_cv_HAVE_DEVICE_MINOR_FN=${samba_cv_HAVE_DEVICE_MINOR_FN=yes} +samba_cv_HAVE_FCNTL_LOCK=${samba_cv_HAVE_FCNTL_LOCK=yes} +samba_cv_HAVE_FTRUNCATE_EXTEND=${samba_cv_HAVE_FTRUNCATE_EXTEND=yes} +samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes} +samba_cv_HAVE_INO64_T=${samba_cv_HAVE_INO64_T=no} +samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=${samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes} +samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=${samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes} +samba_cv_HAVE_KERNEL_SHARE_MODES=${samba_cv_HAVE_KERNEL_SHARE_MODES=yes} +samba_cv_HAVE_MAKEDEV=${samba_cv_HAVE_MAKEDEV=yes} +samba_cv_HAVE_MMAP=${samba_cv_HAVE_MMAP=yes} +samba_cv_HAVE_OFF64_T=${samba_cv_HAVE_OFF64_T=no} +samba_cv_HAVE_SECURE_MKSTEMP=${samba_cv_HAVE_SECURE_MKSTEMP=yes} +samba_cv_HAVE_SENDFILE64=${samba_cv_HAVE_SENDFILE64=yes} +samba_cv_HAVE_SENDFILE=${samba_cv_HAVE_SENDFILE=yes} +samba_cv_HAVE_STRUCT_FLOCK64=${samba_cv_HAVE_STRUCT_FLOCK64=yes} +samba_cv_HAVE_TRUNCATED_SALT=${samba_cv_HAVE_TRUNCATED_SALT=no} +samba_cv_HAVE_UNSIGNED_CHAR=${samba_cv_HAVE_UNSIGNED_CHAR=yes} +samba_cv_HAVE_WORKING_AF_LOCAL=${samba_cv_HAVE_WORKING_AF_LOCAL=yes} +samba_cv_LINUX_LFS_SUPPORT=${samba_cv_LINUX_LFS_SUPPORT=yes} +samba_cv_REALPATH_TAKES_NULL=${samba_cv_REALPATH_TAKES_NULL=yes} +samba_cv_REPLACE_INET_NTOA=${samba_cv_REPLACE_INET_NTOA=no} +samba_cv_REPLACE_READDIR=${samba_cv_REPLACE_READDIR=no} +samba_cv_SIZEOF_DEV_T=${samba_cv_SIZEOF_DEV_T=yes} +samba_cv_SIZEOF_INO_T=${samba_cv_SIZEOF_INO_T=yes} +samba_cv_SIZEOF_OFF_T=${samba_cv_SIZEOF_OFF_T=yes} +samba_cv_STAT_STATVFS64=${samba_cv_STAT_STATVFS64=yes} +samba_cv_USE_SETEUID=${samba_cv_USE_SETEUID=yes} +samba_cv_USE_SETRESUID=${samba_cv_USE_SETRESUID=yes} +samba_cv_USE_SETREUID=${samba_cv_USE_SETREUID=yes} +samba_cv_USE_SETUIDX=${samba_cv_USE_SETUIDX=yes} +samba_cv_have_longlong=${samba_cv_have_longlong=yes} +samba_cv_have_setresgid=${samba_cv_have_setresgid=yes} +samba_cv_have_setresuid=${samba_cv_have_setresuid=yes} + +# mysql +mysql_cv_func_atomic_sub=${mysql_cv_func_atomic_sub=no} +mysql_cv_func_atomic_add=${mysql_cv_func_atomic_add=no} diff --git a/common/environment/configure/autoconf_cache/powerpc64-linux b/common/environment/configure/autoconf_cache/powerpc64-linux new file mode 100644 index 0000000..169a27d --- /dev/null +++ b/common/environment/configure/autoconf_cache/powerpc64-linux @@ -0,0 +1,46 @@ +ac_cv_sizeof_char=${ac_cv_sizeof_char=1} +ac_cv_sizeof_char_p=${ac_cv_sizeof_char_p=8} +ac_cv_sizeof_double=${ac_cv_sizeof_double=8} +ac_cv_sizeof_float=${ac_cv_sizeof_float=4} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_long=${ac_cv_sizeof_long=8} +ac_cv_sizeof_long_int=${ac_cv_sizeof_long_int=8} +ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8} +ac_cv_sizeof_long_long_int=${ac_cv_sizeof_long_long_int=8} +ac_cv_sizeof_short=${ac_cv_sizeof_short=2} +ac_cv_sizeof_short_int=${ac_cv_sizeof_short_int=2} +ac_cv_sizeof_signed_char=${ac_cv_sizeof_signed_char=1} +ac_cv_sizeof_unsigned_char=${ac_cv_sizeof_unsigned_char=1} +ac_cv_sizeof_unsigned_int=${ac_cv_sizeof_unsigned_int=4} +ac_cv_sizeof_unsigned_long=${ac_cv_sizeof_unsigned_long=8} +ac_cv_sizeof_unsigned_long_int=${ac_cv_sizeof_unsigned_long_int=8} +ac_cv_sizeof_unsigned_long_long_int=${ac_cv_sizeof_unsigned_long_long_int=8} +ac_cv_sizeof_unsigned_short=${ac_cv_sizeof_unsigned_short=2} +ac_cv_sizeof_unsigned_short_int=${ac_cv_sizeof_unsigned_short_int=2} +ac_cv_sizeof_void_p=${ac_cv_sizeof_void_p=8} + +if [ "$XBPS_TARGET_LIBC" = "musl" ]; then + ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8} +else + ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=16} +fi + +# screen +screen_cv_sys_bcopy_overlap=${screen_cv_sys_bcopy_overlap=no} +screen_cv_sys_memcpy_overlap=${screen_cv_sys_memcpy_overlap=no} +screen_cv_sys_memmove_overlap=${screen_cv_sys_memmove_overlap=no} +screen_cv_sys_fifo_broken_impl=${screen_cv_sys_fifo_broken_impl=yes} +screen_cv_sys_fifo_usable=${screen_cv_sys_fifo_usable=yes} +screen_cv_sys_select_broken_retval=${screen_cv_sys_select_broken_retval=no} +screen_cv_sys_sockets_nofs=${screen_cv_sys_sockets_nofs=no} +screen_cv_sys_sockets_usable=${screen_cv_sys_sockets_usable=yes} +screen_cv_sys_terminfo_used=${screen_cv_sys_terminfo_used=yes} + +# libpcap +ac_cv_linux_vers=${ac_cv_linux_vers=2} + +# apr +apr_cv_tcp_nodelay_with_cork=${apr_cv_tcp_nodelay_with_cork=yes} + +# cvs +cvs_cv_func_printf_ptr=${cvs_cv_func_printf_ptr=yes} diff --git a/common/environment/configure/autoconf_cache/x86_64-linux b/common/environment/configure/autoconf_cache/x86_64-linux new file mode 100644 index 0000000..dc695d2 --- /dev/null +++ b/common/environment/configure/autoconf_cache/x86_64-linux @@ -0,0 +1,170 @@ +# general +ac_cv_va_val_copy=${ac_cv_va_val_copy=no} +ac_cv_func_lstat_dereferences_slashed_symlink=${ac_cv_func_lstat_dereferences_slashed_symlink=yes} +ac_cv_func_lstat_empty_string_bug=${ac_cv_func_lstat_empty_string_bug=no} +ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes} +ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no} +ac_cv_func_stat_empty_string_bug=${ac_cv_func_stat_empty_string_bug=no} +ac_cv_func_stat_ignores_trailing_slash=${ac_cv_func_stat_ignores_trailing_slash=no} +ac_libnet_have_packet_socket=${ac_libnet_have_packet_socket=yes} +ac_cv_linux_vers=${ac_cv_linux_vers=2} +ac_cv_need_trio=${ac_cv_need_trio=no} +ac_cv_sizeof_char=${ac_cv_sizeof_char=1} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_unsigned_int=${ac_cv_sizeof_unsigned_int=4} +ac_cv_sizeof___int64=${ac_cv_sizeof___int64=0} +ac_cv_sizeof_long=${ac_cv_sizeof_long=8} +ac_cv_sizeof_unsigned_long=${ac_cv_sizeof_unsigned_long=8} +ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=16} +ac_cv_sizeof_long_int=${ac_cv_sizeof_long_int=8} +ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8} +ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8} +ac_cv_sizeof_short=${ac_cv_sizeof_short=2} +ac_cv_sizeof_unsigned_short=${ac_cv_sizeof_unsigned_short=2} +ac_cv_sizeof_short_int=${ac_cv_sizeof_short_int=2} +ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=8} +ac_cv_sizeof_uid_t=${ac_cv_sizeof_uid_t=4} +ac_cv_sizeof_gid_t=${ac_cv_sizeof_gid_t=4} +ac_cv_sizeof_ino_t=${ac_cv_sizeof_ino_t=8} +ac_cv_sizeof_dev_t=${ac_cv_sizeof_dev_t=8} +ac_cv_sizeof_void_p=${ac_cv_sizeof_void_p=8} +ac_cv_strerror_r_SUSv3=${ac_cv_strerror_r_SUSv3=no} +db_cv_alignp_t=${db_cv_alignp_t='unsigned long long'} +db_cv_align_t=${db_cv_align_t='unsigned long long'} +db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes} +db_cv_sprintf_count=${db_cv_sprintf_count=yes} +ac_cv_sizeof_struct_iovec=16 + +# glib +glib_cv_hasinline=${glib_cv_hasinline=yes} +glib_cv_has__inline=${glib_cv_has__inline=yes} +glib_cv_has__inline__=${glib_cv_has__inline__=yes} +glib_cv_long_long_format=${glib_cv_long_long_format=ll} +glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=yes} +glib_cv_sane_realloc=${glib_cv_sane_realloc=yes} +glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=40} +glib_cv_sizeof_intmax_t=${glib_cv_sizeof_intmax_t=8} +glib_cv_sizeof_ptrdiff_t=${glib_cv_sizeof_ptrdiff_t=8} +glib_cv_sizeof_size_t=${glib_cv_sizeof_size_t=8} +glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=8} +glib_cv_stack_grows=${glib_cv_stack_grows=no} +glib_cv_sys_pthread_cond_timedwait_posix=${glib_cv_sys_pthread_cond_timedwait_posix=yes} +glib_cv_sys_pthread_getspecific_posix=${glib_cv_sys_pthread_getspecific_posix=yes} +glib_cv_sys_pthread_mutex_trylock_posix=${glib_cv_sys_pthread_mutex_trylock_posix=yes} +glib_cv_uscore=${glib_cv_uscore=no} +glib_cv_va_val_copy=${glib_cv_va_val_copy=no} +ac_cv_alignof_guint32=4 +ac_cv_alignof_guint64=8 +ac_cv_alignof_unsigned_long=8 + +nano_cv_func_regexec_segv_emptystr=${nano_cv_func_regexec_segv_emptystr=no} +samba_cv_HAVE_VA_COPY=${samba_cv_HAVE_VA_COPY=yes} +screen_cv_sys_bcopy_overlap=${screen_cv_sys_bcopy_overlap=no} +screen_cv_sys_fifo_broken_impl=${screen_cv_sys_fifo_broken_impl=yes} +screen_cv_sys_fifo_usable=${screen_cv_sys_fifo_usable=yes} +screen_cv_sys_memcpy_overlap=${screen_cv_sys_memcpy_overlap=no} +screen_cv_sys_memmove_overlap=${screen_cv_sys_memmove_overlap=no} +screen_cv_sys_select_broken_retval=${screen_cv_sys_select_broken_retval=no} +screen_cv_sys_sockets_nofs=${screen_cv_sys_sockets_nofs=no} +screen_cv_sys_sockets_usable=${screen_cv_sys_sockets_usable=yes} +screen_cv_sys_terminfo_used=${screen_cv_sys_terminfo_used=yes} +utils_cv_sys_open_max=${utils_cv_sys_open_max=1015} + +# gettext +am_cv_func_working_getline=${am_cv_func_working_getline=yes} + +#gcc +ac_cv_lib_m_sin=${ac_cv_lib_m_sin=yes} + +#orbit +libIDL_cv_long_long_format=ll + +# ORBit2 +ac_cv_alignof_CORBA_boolean=1 +ac_cv_alignof_CORBA_char=1 +ac_cv_alignof_CORBA_double=8 +ac_cv_alignof_CORBA_float=4 +ac_cv_alignof_CORBA_long=4 +ac_cv_alignof_CORBA_long_double=8 +ac_cv_alignof_CORBA_long_long=8 +ac_cv_alignof_CORBA_octet=1 +ac_cv_alignof_CORBA_pointer=8 +ac_cv_alignof_CORBA_short=2 +ac_cv_alignof_CORBA_struct=1 +ac_cv_alignof_CORBA_wchar=2 + +lf_cv_sane_realloc=yes +as_cv_unaligned_access=${as_cv_unaligned_access=yes} + +#unfs3 +nfsd_cv_broken_setfsuid=${nfsd_cv_broken_setfsuid=0} +nfsd_cv_func_statfs=${nfsd_cv_func_statfs=statfs2_bsize} +nfsd_cv_bsd_signals=${nfsd_cv_bsd_signals=yes} + +#apr +apr_cv_tcp_nodelay_with_cork=${apr_cv_tcp_nodelay_with_cork=yes} + +# lftp +lftp_cv_va_val_copy=${lftp_cv_va_val_copy=no} + +# slrn +slrn_cv_va_val_copy=${slrn_cv_va_val_copy=no} + +# grub +ac_cv_func___ashldi3=no +ac_cv_func___ashrdi3=no +ac_cv_func___bswapdi2=no +ac_cv_func___bswapsi2=no +ac_cv_func___lshrdi3=no +ac_cv_func___trampoline_setup=no +ac_cv_func___ucmpdi2=no +ac_cv_func__restgpr_14_x=no + +# cvs +cvs_cv_func_printf_ptr=${cvs_cv_func_printf_ptr=yes} + +# at-spi2-core +ac_cv_alignof_char=1 +ac_cv_alignof_dbind_pointer=8 +ac_cv_alignof_dbind_struct=1 +ac_cv_alignof_dbus_bool_t=4 +ac_cv_alignof_dbus_int16_t=2 +ac_cv_alignof_dbus_int32_t=4 +ac_cv_alignof_dbus_int64_t=8 +ac_cv_alignof_double=8 + +# socat +sc_cv_type_dev_basic='6 /* unsigned long */' +sc_cv_type_gidt_basic='4 /* unsigned int */' +sc_cv_type_longlong=yes +sc_cv_type_modet_basic='4 /* unsigned int */' +sc_cv_type_off64=no +sc_cv_type_off64_basic='0 /* unknown */' +sc_cv_type_off_basic='5 /* long */' +sc_cv_type_pidt_basic='3 /* int */' +sc_cv_type_rlimit_rlimmax_basic='6 /* unsigned long */' +sc_cv_type_sa_family_t=yes +sc_cv_type_sighandler=no +sc_cv_type_sizet_basic='6 /* unsigned long */' +sc_cv_type_socklen=yes +sc_cv_type_socklent_basic='4 /* unsigned int */' +sc_cv_type_stat64=no +sc_cv_type_stat64_stblksize_basic='0 /* unknown */' +sc_cv_type_stat64_stblocks_basic='0 /* unknown */' +sc_cv_type_stat64_stdev_basic='0 /* unknown */' +sc_cv_type_stat64_stino_basic='0 /* unknown */' +sc_cv_type_stat64_stnlink_basic='0 /* unknown */' +sc_cv_type_stat64_stsize_basic='0 /* unknown */' +sc_cv_type_stat_stblksize_basic='5 /* long */' +sc_cv_type_stat_stblocks_basic='5 /* long */' +sc_cv_type_stat_stino_basic='6 /* unsigned long */' +sc_cv_type_stat_stnlink_basic='6 /* unsigned long */' +sc_cv_type_stat_stsize_basic='5 /* long */' +sc_cv_type_struct_timeval_tv_usec='5 /* long */' +sc_cv_type_timet_basic='5 /* long */' +sc_cv_type_uidt_basic='4 /* unsigned int */' +sc_cv_type_uint16=yes +sc_cv_type_uint32=yes +sc_cv_type_uint64=yes +sc_cv_type_uint8=yes +sc_cv_typeof_struct_cmsghdr_cmsg_len='6 /* unsigned long */' diff --git a/common/environment/configure/automake/config.guess b/common/environment/configure/automake/config.guess new file mode 100755 index 0000000..8d70ec2 --- /dev/null +++ b/common/environment/configure/automake/config.guess @@ -0,0 +1,1685 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2020 Free Software Foundation, Inc. + +timestamp='2020-09-19' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2020 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "$UNAME_SYSTEM" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + #include + #ifdef __DEFINED_va_list + LIBC=musl + #else + LIBC=gnu + #endif + #endif + EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ + echo unknown)` + case "$UNAME_MACHINE_ARCH" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "$UNAME_VERSION" in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "$machine-${os}${release}${abi-}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; + *:ekkoBSD:*:*) + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" + exit ;; + *:SolidBSD:*:*) + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:MirBSD:*:*) + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix"$UNAME_RELEASE" + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux"$UNAME_RELEASE" + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos"$UNAME_RELEASE" + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos"$UNAME_RELEASE" + ;; + sun4) + echo sparc-sun-sunos"$UNAME_RELEASE" + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos"$UNAME_RELEASE" + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint"$UNAME_RELEASE" + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint"$UNAME_RELEASE" + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint"$UNAME_RELEASE" + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten"$UNAME_RELEASE" + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten"$UNAME_RELEASE" + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix"$UNAME_RELEASE" + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix"$UNAME_RELEASE" + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix"$UNAME_RELEASE" + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos"$UNAME_RELEASE" + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + echo m88k-dg-dgux"$UNAME_RELEASE" + else + echo m88k-dg-dguxbcs"$UNAME_RELEASE" + fi + else + echo i586-dg-dgux"$UNAME_RELEASE" + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" + exit ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + echo "$UNAME_MACHINE"-unknown-osf1mk + else + echo "$UNAME_MACHINE"-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:BSD/OS:*:*) + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf + fi + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case "$UNAME_PROCESSOR" in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + i*:CYGWIN*:*) + echo "$UNAME_MACHINE"-pc-cygwin + exit ;; + *:MINGW64*:*) + echo "$UNAME_MACHINE"-pc-mingw64 + exit ;; + *:MINGW*:*) + echo "$UNAME_MACHINE"-pc-mingw32 + exit ;; + *:MSYS*:*) + echo "$UNAME_MACHINE"-pc-msys + exit ;; + i*:PW*:*) + echo "$UNAME_MACHINE"-pc-pw32 + exit ;; + *:Interix*:*) + case "$UNAME_MACHINE" in + x86) + echo i586-pc-interix"$UNAME_RELEASE" + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix"$UNAME_RELEASE" + exit ;; + IA64) + echo ia64-unknown-interix"$UNAME_RELEASE" + exit ;; + esac ;; + i*:UWIN*:*) + echo "$UNAME_MACHINE"-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-pc-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + *:GNU:*:*) + # the GNU system + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" + exit ;; + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix + exit ;; + aarch64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + else + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + cris:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + crisv32:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + frv:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + hexagon:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; + ia64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m32r*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m68*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-"$LIBC" + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-"$LIBC" + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-"$LIBC" + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-"$LIBC" + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-"$LIBC" + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-"$LIBC" + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" + exit ;; + sh64*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sh*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + tile*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + vax:Linux:*:*) + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" + exit ;; + x86_64:Linux:*:*) + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI="$LIBC"x32 + fi + fi + echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" + exit ;; + xtensa*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo "$UNAME_MACHINE"-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo "$UNAME_MACHINE"-unknown-stop + exit ;; + i*86:atheos:*:*) + echo "$UNAME_MACHINE"-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo "$UNAME_MACHINE"-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos"$UNAME_RELEASE" + exit ;; + i*86:*DOS:*:*) + echo "$UNAME_MACHINE"-pc-msdosdjgpp + exit ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos"$UNAME_RELEASE" + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos"$UNAME_RELEASE" + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv"$UNAME_RELEASE" + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo "$UNAME_MACHINE"-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo "$UNAME_MACHINE"-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux"$UNAME_RELEASE" + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + echo mips-nec-sysv"$UNAME_RELEASE" + else + echo mips-unknown-sysv"$UNAME_RELEASE" + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux"$UNAME_RELEASE" + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux"$UNAME_RELEASE" + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux"$UNAME_RELEASE" + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Rhapsody:*:*) + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + arm64:Darwin:*:*) + echo aarch64-apple-darwin"$UNAME_RELEASE" + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + # shellcheck disable=SC2154 + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo "$UNAME_MACHINE"-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux"$UNAME_RELEASE" + exit ;; + *:DragonFly:*:*) + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "$UNAME_MACHINE" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" + exit ;; + i*86:rdos:*:*) + echo "$UNAME_MACHINE"-pc-rdos + exit ;; + i*86:AROS:*:*) + echo "$UNAME_MACHINE"-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" + exit ;; +esac + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/common/environment/configure/automake/config.sub b/common/environment/configure/automake/config.sub new file mode 100755 index 0000000..780c2bb --- /dev/null +++ b/common/environment/configure/automake/config.sub @@ -0,0 +1,1845 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2020 Free Software Foundation, Inc. + +timestamp='2020-09-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2020 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo $basic_os | sed -e 's|gnu/linux|gnu|'` + ;; + nto-qnx*) + kernel=nto + os=`echo $basic_os | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + nto-qnx*) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/common/environment/configure/bootstrap.sh b/common/environment/configure/bootstrap.sh new file mode 100644 index 0000000..f5ba5f4 --- /dev/null +++ b/common/environment/configure/bootstrap.sh @@ -0,0 +1,4 @@ +if [ -z "$CHROOT_READY" ]; then + CFLAGS+=" -isystem ${XBPS_MASTERDIR}/usr/include" + LDFLAGS+=" -L${XBPS_MASTERDIR}/usr/lib -Wl,-rpath-link=${XBPS_MASTERDIR}/usr/lib" +fi diff --git a/common/environment/configure/ccache.sh b/common/environment/configure/ccache.sh new file mode 100644 index 0000000..2968cea --- /dev/null +++ b/common/environment/configure/ccache.sh @@ -0,0 +1 @@ +export CCACHE_BASEDIR="$wrksrc/$build_wrksrc" diff --git a/common/environment/configure/cross.sh b/common/environment/configure/cross.sh new file mode 100644 index 0000000..d788729 --- /dev/null +++ b/common/environment/configure/cross.sh @@ -0,0 +1,5 @@ +if [ -n "$CROSS_BUILD" ]; then + CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include" + CXXFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include" + LDFLAGS+=" -L${XBPS_CROSS_BASE}/usr/lib" +fi diff --git a/common/environment/configure/debug-debug-prefix-map.sh b/common/environment/configure/debug-debug-prefix-map.sh new file mode 100644 index 0000000..d7eb040 --- /dev/null +++ b/common/environment/configure/debug-debug-prefix-map.sh @@ -0,0 +1,16 @@ +local _wrksrc="$wrksrc${build_wrksrc:+/$build_wrksrc}" +case "$build_style" in +cmake) + CFLAGS="${CFLAGS} -ffile-prefix-map=$_wrksrc/${cmake_builddir:-build}=." + CXXFLAGS="${CXXFLAGS} -ffile-prefix-map=$_wrksrc/${cmake_builddir:-build}=." + ;; +meson) + CFLAGS="${CFLAGS} -ffile-prefix-map=$_wrksrc/${meson_builddir:-build}=." + CXXFLAGS="${CXXFLAGS} -ffile-prefix-map=$_wrksrc/${meson_builddir:-build}=." + ;; +*) + CFLAGS="${CFLAGS} -ffile-prefix-map=$_wrksrc=." + CXXFLAGS="${CXXFLAGS} -ffile-prefix-map=$_wrksrc=." +esac + +unset _wrksrc diff --git a/common/environment/configure/gccspecs/hardened-cc1 b/common/environment/configure/gccspecs/hardened-cc1 new file mode 100644 index 0000000..f275759 --- /dev/null +++ b/common/environment/configure/gccspecs/hardened-cc1 @@ -0,0 +1,5 @@ +*cpp_options: ++ %{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}} + +*cc1_options: ++ %{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}} diff --git a/common/environment/configure/gccspecs/hardened-ld b/common/environment/configure/gccspecs/hardened-ld new file mode 100644 index 0000000..36b31d7 --- /dev/null +++ b/common/environment/configure/gccspecs/hardened-ld @@ -0,0 +1,5 @@ +*self_spec: ++ %{static|Bstatic|shared|Bshareable|i|r|pie|nopie:;:-pie} + +*link: ++ %{!static:-z relro -z now} diff --git a/common/environment/configure/gccspecs/hardened-mips-cc1 b/common/environment/configure/gccspecs/hardened-mips-cc1 new file mode 100644 index 0000000..41e40b9 --- /dev/null +++ b/common/environment/configure/gccspecs/hardened-mips-cc1 @@ -0,0 +1,8 @@ +*cpp_options: ++ %{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE -mshared}}}}} + +*cc1_options: ++ %{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE -mshared}}}}} + +*asm_options: ++ %{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-mshared}}}}} diff --git a/common/environment/configure/gnu-configure-args.sh b/common/environment/configure/gnu-configure-args.sh new file mode 100644 index 0000000..dafbf5d --- /dev/null +++ b/common/environment/configure/gnu-configure-args.sh @@ -0,0 +1,132 @@ +# This file sets up configure_args with common settings. + +if [ -n "$build_style" -a "$build_style" != "gnu-configure" ]; then + return 0 +fi + +# Store args from template so they can be included last and override +# our defaults +TEMPLATE_CONFIGURE_ARGS="${configure_args}" + +export configure_args="--prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin --bindir=/usr/bin + --mandir=/usr/share/man --infodir=/usr/share/info --localstatedir=/var" + +. ${XBPS_COMMONDIR}/build-profiles/${XBPS_MACHINE}.sh +export configure_args+=" --host=$XBPS_TRIPLET --build=$XBPS_TRIPLET" + +# Always use wordsize-specific libdir even though the real path is lib +# This is to make sure 32-bit and 64-bit libs can coexist when looking +# up things (the opposite-libdir is always symlinked as libNN) +export configure_args+=" --libdir=\${exec_prefix}/lib${XBPS_TARGET_WORDSIZE}" + +_AUTOCONFCACHEDIR=${XBPS_COMMONDIR}/environment/configure/autoconf_cache + +# From now on all vars are exported to the environment +set -a + +# Read autoconf cache variables for native target. +case "$XBPS_TARGET_MACHINE" in + # musl libc + *-musl) . ${_AUTOCONFCACHEDIR}/musl-linux + ;; +esac + +# Cross compilation vars +if [ -z "$CROSS_BUILD" ]; then + export configure_args+=" ${TEMPLATE_CONFIGURE_ARGS}" + unset TEMPLATE_CONFIGURE_ARGS + + set +a + return 0 +fi + +export configure_args+=" --host=$XBPS_CROSS_TRIPLET --with-sysroot=$XBPS_CROSS_BASE --with-libtool-sysroot=$XBPS_CROSS_BASE " + +export configure_args+=" ${TEMPLATE_CONFIGURE_ARGS}" +unset TEMPLATE_CONFIGURE_ARGS + +# Read autoconf cache variables for cross target (taken from OE). +case "$XBPS_TARGET_MACHINE" in + # musl libc + *-musl) . ${_AUTOCONFCACHEDIR}/common-linux + . ${_AUTOCONFCACHEDIR}/musl-linux + ;; + # gnu libc + *) . ${_AUTOCONFCACHEDIR}/common-linux + . ${_AUTOCONFCACHEDIR}/common-glibc + ;; +esac + +# Read apropiate autoconf cache files for target machine. +case "$XBPS_TARGET_MACHINE" in + armv5te*|armv?l*) + . ${_AUTOCONFCACHEDIR}/endian-little + . ${_AUTOCONFCACHEDIR}/arm-common + . ${_AUTOCONFCACHEDIR}/arm-linux + ;; + + aarch64*) + . ${_AUTOCONFCACHEDIR}/endian-little + . ${_AUTOCONFCACHEDIR}/aarch64-linux + ;; + + i686*) . ${_AUTOCONFCACHEDIR}/endian-little + . ${_AUTOCONFCACHEDIR}/ix86-common + ;; + + mips) . ${_AUTOCONFCACHEDIR}/endian-big + . ${_AUTOCONFCACHEDIR}/mips-common + . ${_AUTOCONFCACHEDIR}/mips-linux + ;; + + mipshf*) + . ${_AUTOCONFCACHEDIR}/endian-big + . ${_AUTOCONFCACHEDIR}/mips-common + . ${_AUTOCONFCACHEDIR}/mips-linux + ;; + + mipsel*) + . ${_AUTOCONFCACHEDIR}/endian-little + . ${_AUTOCONFCACHEDIR}/mips-common + . ${_AUTOCONFCACHEDIR}/mips-linux + ;; + + x86_64*) + . ${_AUTOCONFCACHEDIR}/endian-little + . ${_AUTOCONFCACHEDIR}/x86_64-linux + ;; + + ppc64le*) + . ${_AUTOCONFCACHEDIR}/endian-little + . ${_AUTOCONFCACHEDIR}/powerpc-common + . ${_AUTOCONFCACHEDIR}/powerpc-linux + . ${_AUTOCONFCACHEDIR}/powerpc64-linux + ;; + + ppc64*) + . ${_AUTOCONFCACHEDIR}/endian-big + . ${_AUTOCONFCACHEDIR}/powerpc-common + . ${_AUTOCONFCACHEDIR}/powerpc-linux + . ${_AUTOCONFCACHEDIR}/powerpc64-linux + ;; + + ppcle*) + . ${_AUTOCONFCACHEDIR}/endian-little + . ${_AUTOCONFCACHEDIR}/powerpc-common + . ${_AUTOCONFCACHEDIR}/powerpc-linux + . ${_AUTOCONFCACHEDIR}/powerpc32-linux + ;; + + ppc*) + . ${_AUTOCONFCACHEDIR}/endian-big + . ${_AUTOCONFCACHEDIR}/powerpc-common + . ${_AUTOCONFCACHEDIR}/powerpc-linux + . ${_AUTOCONFCACHEDIR}/powerpc32-linux + ;; + + *) ;; +esac + +unset _AUTOCONFCACHEDIR + +set +a # vars are not exported to the environment anymore diff --git a/common/environment/configure/hardening.sh b/common/environment/configure/hardening.sh new file mode 100644 index 0000000..9e02364 --- /dev/null +++ b/common/environment/configure/hardening.sh @@ -0,0 +1,30 @@ +# Enable as-needed by default. +LDFLAGS="-Wl,--as-needed ${LDFLAGS}" + +if [ -z "$nopie" ]; then + # Our compilers use --enable-default-pie and --enable-default-ssp, + # but the bootstrap host compiler may not, force them. + if [ -z "$CHROOT_READY" ]; then + CFLAGS="-fstack-protector-strong -D_FORTIFY_SOURCE=2 ${CFLAGS}" + CXXFLAGS="-fstack-protector-strong -D_FORTIFY_SOURCE=2 ${CXXFLAGS}" + _GCCSPECSDIR=${XBPS_COMMONDIR}/environment/configure/gccspecs + case "$XBPS_TARGET_MACHINE" in + mips*) _GCCSPECSFILE="${_GCCSPECSDIR}/hardened-mips-cc1" ;; + *) _GCCSPECSFILE="${_GCCSPECSDIR}/hardened-cc1" ;; + esac + CFLAGS="-specs=${_GCCSPECSFILE} ${CFLAGS}" + CXXFLAGS="-specs=${_GCCSPECSFILE} ${CXXFLAGS}" + LDFLAGS="-specs=${_GCCSPECSDIR}/hardened-ld -Wl,-z,relro -Wl,-z,now ${LDFLAGS}" + else + # Enable FORITFY_SOURCE=2 + CFLAGS="-fstack-clash-protection -D_FORTIFY_SOURCE=2 ${CFLAGS}" + CXXFLAGS="-fstack-clash-protection -D_FORTIFY_SOURCE=2 ${CXXFLAGS}" + FFLAGS="-fstack-clash-protection ${FFLAGS}" + LDFLAGS="-Wl,-z,relro -Wl,-z,now ${LDFLAGS}" + fi +else + CFLAGS="-fno-PIE ${CFLAGS}" + CXXFLAGS="-fno-PIE ${CFLAGS}" + FFLAGS="-fno-PIE ${FFLAGS}" + LDFLAGS="-no-pie ${LDFLAGS}" +fi diff --git a/common/environment/configure/pkg-config.sh b/common/environment/configure/pkg-config.sh new file mode 100644 index 0000000..bf81c5f --- /dev/null +++ b/common/environment/configure/pkg-config.sh @@ -0,0 +1,5 @@ +# This snippet setups pkg-config vars. + +if [ -z "$CHROOT_READY" ]; then + export PKG_CONFIG_PATH="${XBPS_MASTERDIR}/usr/lib/pkgconfig:${XBPS_MASTERDIR}/usr/share/pkgconfig" +fi diff --git a/common/environment/extract/.empty b/common/environment/extract/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/environment/fetch/.empty b/common/environment/fetch/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/environment/fetch/fetch_cmd.sh b/common/environment/fetch/fetch_cmd.sh new file mode 100644 index 0000000..2efc359 --- /dev/null +++ b/common/environment/fetch/fetch_cmd.sh @@ -0,0 +1,4 @@ +# +# Sets the fetch_cmd variable used by hooks/do-fetch/00-distfiles.sh +# +: ${fetch_cmd:=$XBPS_FETCH_CMD} diff --git a/common/environment/fetch/misc.sh b/common/environment/fetch/misc.sh new file mode 120000 index 0000000..7d5f3f6 --- /dev/null +++ b/common/environment/fetch/misc.sh @@ -0,0 +1 @@ +../setup/misc.sh \ No newline at end of file diff --git a/common/environment/install/.empty b/common/environment/install/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/environment/install/ccache.sh b/common/environment/install/ccache.sh new file mode 120000 index 0000000..b5ed088 --- /dev/null +++ b/common/environment/install/ccache.sh @@ -0,0 +1 @@ +../configure/ccache.sh \ No newline at end of file diff --git a/common/environment/install/cross.sh b/common/environment/install/cross.sh new file mode 120000 index 0000000..43f6c48 --- /dev/null +++ b/common/environment/install/cross.sh @@ -0,0 +1 @@ +../configure/cross.sh \ No newline at end of file diff --git a/common/environment/install/debug-debug-prefix-map.sh b/common/environment/install/debug-debug-prefix-map.sh new file mode 120000 index 0000000..98c260a --- /dev/null +++ b/common/environment/install/debug-debug-prefix-map.sh @@ -0,0 +1 @@ +../configure/debug-debug-prefix-map.sh \ No newline at end of file diff --git a/common/environment/install/extglob.sh b/common/environment/install/extglob.sh new file mode 100644 index 0000000..c0bf59d --- /dev/null +++ b/common/environment/install/extglob.sh @@ -0,0 +1,18 @@ +# This provides the extglob function to expand wildcards in the destdir + +expand_destdir() { + local result= glob= file= + + ( + set -f + for glob in $@; do + files=$(echo "${PKGDESTDIR}/${glob}") + set +f + for file in $files; do + result+="${blank}${file#$PKGDESTDIR/}" + blank=" " + done + done + echo "$result" + ) +} diff --git a/common/environment/install/hardening.sh b/common/environment/install/hardening.sh new file mode 120000 index 0000000..f043590 --- /dev/null +++ b/common/environment/install/hardening.sh @@ -0,0 +1 @@ +../configure/hardening.sh \ No newline at end of file diff --git a/common/environment/install/pkg-config.sh b/common/environment/install/pkg-config.sh new file mode 120000 index 0000000..b8f8c44 --- /dev/null +++ b/common/environment/install/pkg-config.sh @@ -0,0 +1 @@ +../configure/pkg-config.sh \ No newline at end of file diff --git a/common/environment/patch/bootstrap.sh b/common/environment/patch/bootstrap.sh new file mode 120000 index 0000000..a0cf1d2 --- /dev/null +++ b/common/environment/patch/bootstrap.sh @@ -0,0 +1 @@ +../configure/bootstrap.sh \ No newline at end of file diff --git a/common/environment/patch/ccache.sh b/common/environment/patch/ccache.sh new file mode 120000 index 0000000..b5ed088 --- /dev/null +++ b/common/environment/patch/ccache.sh @@ -0,0 +1 @@ +../configure/ccache.sh \ No newline at end of file diff --git a/common/environment/patch/cross.sh b/common/environment/patch/cross.sh new file mode 120000 index 0000000..43f6c48 --- /dev/null +++ b/common/environment/patch/cross.sh @@ -0,0 +1 @@ +../configure/cross.sh \ No newline at end of file diff --git a/common/environment/patch/debug-debug-prefix-map.sh b/common/environment/patch/debug-debug-prefix-map.sh new file mode 120000 index 0000000..98c260a --- /dev/null +++ b/common/environment/patch/debug-debug-prefix-map.sh @@ -0,0 +1 @@ +../configure/debug-debug-prefix-map.sh \ No newline at end of file diff --git a/common/environment/patch/gnu-configure-args.sh b/common/environment/patch/gnu-configure-args.sh new file mode 120000 index 0000000..d3cafa3 --- /dev/null +++ b/common/environment/patch/gnu-configure-args.sh @@ -0,0 +1 @@ +../configure/gnu-configure-args.sh \ No newline at end of file diff --git a/common/environment/patch/hardening.sh b/common/environment/patch/hardening.sh new file mode 120000 index 0000000..f043590 --- /dev/null +++ b/common/environment/patch/hardening.sh @@ -0,0 +1 @@ +../configure/hardening.sh \ No newline at end of file diff --git a/common/environment/patch/pkg-config.sh b/common/environment/patch/pkg-config.sh new file mode 120000 index 0000000..b8f8c44 --- /dev/null +++ b/common/environment/patch/pkg-config.sh @@ -0,0 +1 @@ +../configure/pkg-config.sh \ No newline at end of file diff --git a/common/environment/pkg/extglob.sh b/common/environment/pkg/extglob.sh new file mode 120000 index 0000000..727ffaf --- /dev/null +++ b/common/environment/pkg/extglob.sh @@ -0,0 +1 @@ +../install/extglob.sh \ No newline at end of file diff --git a/common/environment/setup-subpkg/.empty b/common/environment/setup-subpkg/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/environment/setup-subpkg/subpkg.sh b/common/environment/setup-subpkg/subpkg.sh new file mode 100644 index 0000000..6edab5d --- /dev/null +++ b/common/environment/setup-subpkg/subpkg.sh @@ -0,0 +1,48 @@ +# This shell snippet unsets all variables/functions that can be used in +# a package template and can also be used in subpkgs. + +## VARIABLES +unset -v conf_files mutable_files preserve triggers alternatives +unset -v depends run_depends replaces provides conflicts tags + +# hooks/post-install/03-strip-and-debug-pkgs +unset -v nostrip nostrip_files + +# hooks/post-install/14-fix-permissions +unset -v nocheckperms nofixperms + +# hooks/pre-pkg/04-generate-runtime-deps +unset -v noverifyrdeps skiprdeps allow_unknown_shlibs shlib_requires + +# hooks/pre-pkg/06-prepare-32bit +unset -v lib32depends lib32disabled lib32files lib32mode lib32symlinks + +# hooks/pre-pkg/06-shlib-provides +unset -v noshlibprovides shlib_provides + +# xbps-triggers: system-accounts +unset -v system_accounts system_groups + +# xbps-triggers: font-dirs +unset -v font_dirs + +# xbps-triggers: xml-catalog +unset -v xml_entries sgml_entries xml_catalogs sgml_catalogs + +# xbps-triggers: pycompile +unset -v pycompile_dirs pycompile_module + +# xbps-triggers: dkms +unset -v dkms_modules + +# xbps-triggers: kernel-hooks +unset -v kernel_hooks_version + +# xbps-triggers: mkdirs +unset -v make_dirs + +# xbps-triggers: binfmts +unset -v binfmts + +# xbps-triggers: register-shell +unset -v register_shell diff --git a/common/environment/setup/.empty b/common/environment/setup/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/environment/setup/git.sh b/common/environment/setup/git.sh new file mode 100644 index 0000000..bd72f2e --- /dev/null +++ b/common/environment/setup/git.sh @@ -0,0 +1,35 @@ +# If XBPS_USE_BUILD_MTIME is enabled in conf file don't continue. +# only run this, if SOURCE_DATE_EPOCH isn't set. + +if [ -z "$XBPS_GIT_CMD" ]; then + if [ -z "$XBPS_USE_BUILD_MTIME" ] || [ -n "$XBPS_USE_GIT_REVS" ]; then + msg_error "BUG: environment/setup: XBPS_GIT_CMD is not set\n" + fi +fi + +if [ -n "$XBPS_USE_BUILD_MTIME" ]; then + unset SOURCE_DATE_EPOCH +elif [ -z "${SOURCE_DATE_EPOCH}" ]; then + if [ -n "$IN_CHROOT" ]; then + msg_error "xbps-src's BUG: SOURCE_DATE_EPOCH is undefined\n" + fi + # check if the template is under version control: + if [ -n "$basepkg" -a -z "$($XBPS_GIT_CMD -C ${XBPS_SRCPKGDIR}/${basepkg} ls-files template)" ]; then + export SOURCE_DATE_EPOCH="$(stat -c %Y ${XBPS_SRCPKGDIR}/${basepkg}/template)" + else + export SOURCE_DATE_EPOCH=$($XBPS_GIT_CMD -C ${XBPS_DISTDIR} cat-file commit HEAD | + sed -n '/^committer /{s/.*> \([0-9][0-9]*\) [-+][0-9].*/\1/p;q}') + fi +fi + +# if XBPS_USE_GIT_REVS is enabled in conf file, +# compute XBPS_GIT_REVS to use in pkg hooks +if [ -z "$XBPS_USE_GIT_REVS" ]; then + unset XBPS_GIT_REVS +elif [ -z "$XBPS_GIT_REVS" ]; then + if [ -n "$IN_CHROOT" ]; then + msg_error "xbps-src's BUG: XBPS_GIT_REVS is undefined\n" + else + export XBPS_GIT_REVS="$($XBPS_GIT_CMD -C "${XBPS_DISTDIR}" rev-parse --verify --short HEAD)" + fi +fi diff --git a/common/environment/setup/install.sh b/common/environment/setup/install.sh new file mode 100644 index 0000000..ba0845b --- /dev/null +++ b/common/environment/setup/install.sh @@ -0,0 +1,276 @@ +# -*-* shell *-*- + +# enable aliases +shopt -s expand_aliases + +# clear all aliases +unalias -a + +# disable wildcards helper +_noglob_helper() { + set +f + "$@" +} + +# Apply _noglob to v* commands +for cmd in vinstall vcopy vcompletion vmove vmkdir vbin vman vdoc vconf vsconf vlicense vsv; do + alias ${cmd}="set -f; _noglob_helper _${cmd}" +done + +_vsv() { + local service="$1" + local facility="${2:-daemon}" + local LN_OPTS="-s" + local svdir="${PKGDESTDIR}/etc/sv/${service}" + + if [ $# -lt 1 ] || [ $# -gt 2 ]; then + msg_red "$pkgver: vsv: up to 2 arguments expected: []\n" + return 1 + fi + + if [ -n "$XBPS_BUILD_FORCEMODE" ]; then + LN_OPTS+="f" + fi + + vmkdir etc/sv + vcopy "${FILESDIR}/$service" etc/sv + if [ ! -L $svdir/run ]; then + grep -Fq 'exec 2>&1' $svdir/run || msg_warn "$pkgver: vsv: service '$service' does not contain 'exec 2>&1' to log stderr\n" + chmod 755 $svdir/run + fi + if [ -e $svdir/finish ] && [ ! -L $svdir/finish ]; then + chmod 755 $svdir/finish + fi + ln ${LN_OPTS} /run/runit/supervise.${service} $svdir/supervise + if [ -d $svdir/log ] || [ -L $svdir/log ]; then + msg_warn "$pkgver: vsv: overriding default log service\n" + else + mkdir $svdir/log + cat <<-EOF > $svdir/log/run + #!/bin/sh + exec vlogger -t $service -p $facility + EOF + fi + ln ${LN_OPTS} /run/runit/supervise.${service}-log $svdir/log/supervise + if [ -e $svdir/log/run ] && [ ! -L $svdir/log/run ]; then + chmod 755 ${PKGDESTDIR}/etc/sv/${service}/log/run + fi +} + +_vbin() { + local file="$1" targetfile="$2" + + if [ $# -lt 1 ]; then + msg_red "$pkgver: vbin: 1 argument expected: \n" + return 1 + fi + + vinstall "$file" 755 usr/bin "$targetfile" +} + +_vman() { + local file="$1" target="${2:-${1##*/}}" + + if [ $# -lt 1 ]; then + msg_red "$pkgver: vman: 1 argument expected: \n" + return 1 + fi + + suffix=${target##*.} + + if [[ $suffix == gz ]] + then + gunzip "$file" + file="${file:0:-3}" + target="${target:0:-3}" + suffix=${target##*.} + fi + + if [[ $suffix == bz2 ]] + then + bunzip2 "$file" + file="${file:0:-4}" + target="${target:0:-4}" + suffix=${target##*.} + fi + + if [[ $target =~ (.*)\.([a-z][a-z](_[A-Z][A-Z])?(\.[^.]+)?)\.(.*) ]] + then + name=${BASH_REMATCH[1]}.${BASH_REMATCH[5]} + mandir=${BASH_REMATCH[2]}/man${suffix:0:1} + else + name=$target + mandir=man${suffix:0:1} + fi + + if [[ ${mandir} == *man[0-9n] ]] ; then + vinstall "$file" 644 "usr/share/man/${mandir}" "$name" + return 0 + fi + + msg_red "$pkgver: vman: Filename '${target}' does not look like a man page\n" + return 1 +} + +_vdoc() { + local file="$1" targetfile="$2" + + if [ $# -lt 1 ]; then + msg_red "$pkgver: vdoc: 1 argument expected: \n" + return 1 + fi + + vinstall "$file" 644 "usr/share/doc/${pkgname}" "$targetfile" +} + +_vconf() { + local file="$1" targetfile="$2" + + if [ $# -lt 1 ]; then + msg_red "$pkgver: vconf: 1 argument expected: \n" + return 1 + fi + + vinstall "$file" 644 etc "$targetfile" +} + +_vsconf() { + local file="$1" targetfile="$2" + + if [ $# -lt 1 ]; then + msg_red "$pkgver: vsconf: 1 argument expected: \n" + return 1 + fi + + vinstall "$file" 644 "usr/share/examples/${pkgname}" "$targetfile" +} + +_vlicense() { + local file="$1" targetfile="$2" + + if [ $# -lt 1 ]; then + msg_red "$pkgver: vlicense: 1 argument expected: \n" + return 1 + fi + + vinstall "$file" 644 "usr/share/licenses/${pkgname}" "$targetfile" +} + +_vinstall() { + local file="$1" mode="$2" targetdir="$3" targetfile="$4" + + if [ -z "$PKGDESTDIR" ]; then + msg_red "$pkgver: vinstall: PKGDESTDIR unset, can't continue...\n" + return 1 + fi + + if [ $# -lt 3 ]; then + msg_red "$pkgver: vinstall: 3 arguments expected: \n" + return 1 + fi + + if [ ! -r "${file}" ]; then + msg_red "$pkgver: vinstall: cannot find '$file'...\n" + return 1 + fi + + if [ -z "$targetfile" ]; then + install -Dm${mode} "${file}" "${PKGDESTDIR}/${targetdir}/${file##*/}" + else + install -Dm${mode} "${file}" "${PKGDESTDIR}/${targetdir}/${targetfile##*/}" + fi +} + +_vcopy() { + local files="$1" targetdir="$2" + + if [ -z "$PKGDESTDIR" ]; then + msg_red "$pkgver: vcopy: PKGDESTDIR unset, can't continue...\n" + return 1 + fi + if [ $# -ne 2 ]; then + msg_red "$pkgver: vcopy: 2 arguments expected: \n" + return 1 + fi + + cp -a $files ${PKGDESTDIR}/${targetdir} +} + +_vmove() { + local f files="$1" _targetdir + + if [ -z "$DESTDIR" ]; then + msg_red "$pkgver: vmove: DESTDIR unset, can't continue...\n" + return 1 + elif [ -z "$PKGDESTDIR" ]; then + msg_red "$pkgver: vmove: PKGDESTDIR unset, can't continue...\n" + return 1 + elif [ "$DESTDIR" = "$PKGDESTDIR" ]; then + msg_red "$pkgver: vmove is intended to be used in pkg_install\n" + return 1 + fi + if [ $# -ne 1 ]; then + msg_red "$pkgver: vmove: 1 argument expected: \n" + return 1 + fi + for f in ${files}; do + _targetdir=${f%/*}/ + break + done + + if [ -z "${_targetdir}" ]; then + [ ! -d ${PKGDESTDIR} ] && install -d ${PKGDESTDIR} + mv ${DESTDIR}/$files ${PKGDESTDIR} + else + if [ ! -d ${PKGDESTDIR}/${_targetdir} ]; then + install -d ${PKGDESTDIR}/${_targetdir} + fi + mv ${DESTDIR}/$files ${PKGDESTDIR}/${_targetdir} + fi +} + +_vmkdir() { + local dir="$1" mode="$2" + + if [ -z "$PKGDESTDIR" ]; then + msg_red "$pkgver: vmkdir: PKGDESTDIR unset, can't continue...\n" + return 1 + fi + + if [ -z "$dir" ]; then + msg_red "vmkdir: directory argument unset.\n" + return 1 + fi + + if [ -z "$mode" ]; then + install -d ${PKGDESTDIR}/${dir} + else + install -dm${mode} ${PKGDESTDIR}/${dir} + fi +} + +_vcompletion() { + local file="$1" shell="$2" cmd="${3:-${pkgname}}" + local _bash_completion_dir=usr/share/bash-completion/completions/ + local _fish_completion_dir=usr/share/fish/vendor_completions.d/ + local _zsh_completion_dir=usr/share/zsh/site-functions/ + + if [ $# -lt 2 ]; then + msg_red "$pkgver: vcompletion: 2 arguments expected: \n" + return 1 + fi + + if ! [ -f "$file" ]; then + msg_red "$pkgver: vcompletion: file $file doesn't exist\n" + fi + + case "$shell" in + bash) vinstall "$file" 0644 $_bash_completion_dir "${cmd}" ;; + fish) vinstall "$file" 0644 $_fish_completion_dir "${cmd}.fish" ;; + zsh) vinstall "$file" 0644 $_zsh_completion_dir "_${cmd}" ;; + *) + msg_red "$pkgver: vcompletion: unknown shell ${shell}" + return 1 + ;; + esac +} diff --git a/common/environment/setup/misc.sh b/common/environment/setup/misc.sh new file mode 100644 index 0000000..3f2cc09 --- /dev/null +++ b/common/environment/setup/misc.sh @@ -0,0 +1,22 @@ +# +# Common variables that can be used by xbps-src. +# +# SITE used for distfiles mirrors. For use in $distfiles. +set -a + +SOURCEFORGE_SITE="https://downloads.sourceforge.net/sourceforge" +NONGNU_SITE="https://download.savannah.nongnu.org/releases" +UBUNTU_SITE="http://archive.ubuntu.com/ubuntu/pool" +XORG_SITE="https://www.x.org/releases/individual" +DEBIAN_SITE="https://ftp.debian.org/debian/pool" +GNOME_SITE="https://download.gnome.org/sources" +KERNEL_SITE="https://www.kernel.org/pub/linux" +CPAN_SITE="https://www.cpan.org/modules/by-module" +PYPI_SITE="https://files.pythonhosted.org/packages/source" +MOZILLA_SITE="https://ftp.mozilla.org/pub" +GNU_SITE="https://ftp.gnu.org/gnu" +FREEDESKTOP_SITE="https://freedesktop.org/software" +KDE_SITE="https://download.kde.org/stable" +VIDEOLAN_SITE="https://download.videolan.org/pub/videolan" + +set +a diff --git a/common/environment/setup/options.sh b/common/environment/setup/options.sh new file mode 100644 index 0000000..f75430b --- /dev/null +++ b/common/environment/setup/options.sh @@ -0,0 +1,46 @@ +# vim: set ts=4 sw=4 et: + +vopt_if() { + local name="build_option_$1" t="$2" f="$3" + if [ ${!name} ]; then + echo -n "$t" + else + echo -n "$f" + fi +} + +vopt_with() { + local opt="$1" flag="${2:-$1}" + vopt_if "$opt" "--with-${flag}" "--without-${flag}" +} + +vopt_enable() { + local opt="$1" flag="${2:-$1}" + if [ "$#" -gt "2" ]; then + msg_error "vopt_enable $opt: $(($# - 2)) excess parameter(s)\n" + fi + vopt_if "$1" "--enable-${flag}" "--disable-${flag}" +} + +vopt_conflict() { + local opt1="$1" opt2="$2" n1="build_option_$1" n2="build_option_$2" + if [ "${!n1}" -a "${!n2}" ]; then + msg_error "options '${opt1}' and '${opt2}' conflict\n" + fi +} + +vopt_bool() { + local opt="$1" prop="${2:-$1}" + if [ "$#" -gt "2" ]; then + msg_error "vopt_bool $opt: $(($# - 2)) excess parameter(s)\n" + fi + vopt_if "$1" "-D${prop}=true" "-D${prop}=false" +} + +vopt_feature() { + local opt="$1" prop="${2:-$1}" + if [ "$#" -gt "2" ]; then + msg_error "vopt_feature $opt: $(($# - 2)) excess parameter(s)\n" + fi + vopt_if "$1" "-D${prop}=enabled" "-D${prop}=disabled" +} diff --git a/common/environment/setup/python.sh b/common/environment/setup/python.sh new file mode 100644 index 0000000..606a4bc --- /dev/null +++ b/common/environment/setup/python.sh @@ -0,0 +1,14 @@ +# +# Useful variables for determining Python version and paths. +# + +py2_ver="2.7" +py2_lib="usr/lib/python${py2_ver}" +py2_sitelib="${py2_lib}/site-packages" +py2_inc="usr/include/python${py2_ver}" + +py3_ver="3.11" +py3_abiver="" +py3_lib="usr/lib/python${py3_ver}" +py3_sitelib="${py3_lib}/site-packages" +py3_inc="usr/include/python${py3_ver}${py3_abiver}" diff --git a/common/environment/setup/replace-interpreter.sh b/common/environment/setup/replace-interpreter.sh new file mode 100644 index 0000000..c520c73 --- /dev/null +++ b/common/environment/setup/replace-interpreter.sh @@ -0,0 +1,41 @@ +# This helper replaces shebang paths pointing to the correct ones +# as used by xbps. Multiple languages are supported: +# +# - GNU Bash +# - Perl +# - Python +# + +bash_regexp=".*sh" +perl_regexp=".*perl[^[:space:]]*" +python_regexp=".*python[^[:space:]]*" + +replace_interpreter() { + local lang="$1" file="$2" trsb orsb + + [ -z $lang -o -z $file ] && return 1 + + case $lang in + bash) + orsb=$bash_regexp + trpath="/bin/bash" + ;; + perl) + orsb=$perl_regexp + trpath="/usr/bin/perl" + ;; + python) + orsb=$python_regexp + trpath="/usr/bin/python" + ;; + *) + ;; + esac + + if [ -f $file ]; then + sed -i -e "1s|^#![[:space:]]*${orsb}|#!${trpath}|" $file + msg_normal "Transformed $lang script: ${file##$wrksrc}.\n" + else + msg_warn "Ignoring nonexistent $lang script: ${file##$wrksrc}.\n" + fi +} diff --git a/common/environment/setup/sourcepkg.sh b/common/environment/setup/sourcepkg.sh new file mode 100644 index 0000000..6c016db --- /dev/null +++ b/common/environment/setup/sourcepkg.sh @@ -0,0 +1,86 @@ +# This shell snippet unsets all variables/functions that can be used in +# the package template (excluding subpackages). + +# Exported variables +for var in $(awk 'BEGIN{for (i in ENVIRON) {print i}}' /dev/null; then + unzip -o -q $srcdir/$curfile -d "$extractdir" + if [ $? -ne 0 ]; then + msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n" + fi + elif command -v bsdtar &>/dev/null; then + bsdtar -xf $srcdir/$curfile -C "$extractdir" + if [ $? -ne 0 ]; then + msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n" + fi + else + msg_error "$pkgver: cannot find unzip or bsdtar bin for extraction.\n" + fi + ;; + rpm) + if ! command -v bsdtar &>/dev/null; then + msg_error "$pkgver: cannot find bsdtar for extraction.\n" + fi + bsdtar -x --no-same-permissions --no-same-owner -f $srcdir/$curfile -C "$extractdir" + if [ $? -ne 0 ]; then + msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n" + fi + ;; + deb) + if command -v bsdtar &>/dev/null; then + bsdtar -x -O -f "$srcdir/$curfile" "data.tar.*" | + bsdtar -C "$extractdir" -x --no-same-permissions --no-same-owner + if [ $? -ne 0 ]; then + msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n" + fi + else + msg_error "$pkgver: cannot find bsdtar for extraction.\n" + fi + ;; + txt) + cp -f $srcdir/$curfile "$extractdir" + ;; + 7z) + if command -v 7z &>/dev/null; then + 7z x $srcdir/$curfile -o"$extractdir" + if [ $? -ne 0 ]; then + msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n" + fi + elif command -v bsdtar &>/dev/null; then + bsdtar -xf $srcdir/$curfile -C "$extractdir" + if [ $? -ne 0 ]; then + msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n" + fi + else + msg_error "$pkgver: cannot find 7z or bsdtar bin for extraction.\n" + fi + ;; + gem) + 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 + ;; + *) + msg_error "$pkgver: cannot guess $curfile extract suffix. ($cursufx)\n" + ;; + esac + done + + cd "$extractdir" + # find "$extractdir" -mindepth 1 -maxdepth 1 -printf '1\n' | wc -l + # However, it requires GNU's find + num_dirs=0 + for f in * .*; do + if [ -e "$f" ] || [ -L "$f" ]; then + case "$f" in + . | ..) ;; + *) + innerdir="$f" + num_dirs=$(( num_dirs + 1 )) + ;; + esac + fi + done + # Special case for num_dirs = 2, and it contains metadata + if [ "$num_dirs" != 2 ] || [ "$create_wrksrc" ]; then + : + elif grep -q 'xmlns="http://pear[.]php[.]net/dtd/package' package.xml 2>/dev/null + then + # PHP modules' metadata + rm -f package.xml + for f in */; do innerdir="$f"; done + num_dirs=1 + else + for f in *; do + # AppleDouble encoded Macintosh file + if [ -e "$f" ] && [ -e "._$f" ]; then + rm -f "._$f" + num_dirs=1 + innerdir="$f" + break + fi + done + fi + rm -rf "$wrksrc" + innerdir="$extractdir/$innerdir" + cd "$XBPS_BUILDDIR" + if [ "$num_dirs" = 1 ] && [ -d "$innerdir" ] && [ -z "$create_wrksrc" ]; then + # rename the subdirectory (top-level of distfiles) to $wrksrc + mv "$innerdir" "$wrksrc" && + rmdir "$extractdir" + else + mv "$extractdir" "$wrksrc" + fi || + msg_error "$pkgver: failed to move sources to $wrksrc\n" +} diff --git a/common/hooks/do-fetch/.empty b/common/hooks/do-fetch/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/do-fetch/00-distfiles.sh b/common/hooks/do-fetch/00-distfiles.sh new file mode 100644 index 0000000..9ce2a18 --- /dev/null +++ b/common/hooks/do-fetch/00-distfiles.sh @@ -0,0 +1,303 @@ +# This hook downloads the distfiles specified in a template by +# the $distfiles variable and then verifies its sha256 checksum comparing +# its value with the one stored in the $checksum variable. + +# Return the checksum of the contents of a tarball +contents_cksum() { + local curfile="$1" cursufx cksum + + case $curfile in + *.tar.lzma) cursufx="txz";; + *.tar.lz) cursufx="tlz";; + *.tlz) cursufx="tlz";; + *.tar.xz) cursufx="txz";; + *.txz) cursufx="txz";; + *.tar.bz2) cursufx="tbz";; + *.tbz) cursufx="tbz";; + *.tar.gz) cursufx="tgz";; + *.tgz) cursufx="tgz";; + *.gz) cursufx="gz";; + *.bz2) cursufx="bz2";; + *.tar) cursufx="tar";; + *.zip) cursufx="zip";; + *.rpm) cursufx="rpm";; + *.patch) cursufx="txt";; + *.diff) cursufx="txt";; + *.txt) cursufx="txt";; + *.7z) cursufx="7z";; + *.gem) cursufx="gem";; + *.crate) cursufx="crate";; + *) msg_error "$pkgver: unknown distfile suffix for $curfile.\n";; + esac + + case ${cursufx} in + tar|txz|tbz|tlz|tgz|crate) + cksum=$($XBPS_DIGEST_CMD <($TAR_CMD -x -O -f "$curfile")) + if [ $? -ne 0 ]; then + msg_error "$pkgver: extracting $curfile to pipe.\n" + fi + ;; + gz) + cksum=$($XBPS_DIGEST_CMD <(gunzip -c "$curfile")) + ;; + bz2) + cksum=$($XBPS_DIGEST_CMD <(bunzip2 -c "$curfile")) + ;; + zip) + if command -v unzip &>/dev/null; then + cksum=$($XBPS_DIGEST_CMD <(unzip -p "$curfile")) + if [ $? -ne 0 ]; then + msg_error "$pkgver: extracting $curfile to pipe.\n" + fi + else + msg_error "$pkgver: cannot find unzip bin for extraction.\n" + fi + ;; + rpm) + msg_error "$pkgver: contents checksum not support for rpm.\n" + ;; + txt) + cksum=$($XBPS_DIGEST_CMD "$curfile") + ;; + 7z) + if command -v 7z &>/dev/null; then + cksum=$($XBPS_DIGEST_CMD <(7z x -o "$curfile")) + if [ $? -ne 0 ]; then + msg_error "$pkgver: extracting $curfile to pipe.\n" + fi + else + msg_error "$pkgver: cannot find 7z bin for extraction.\n" + fi + ;; + gem) + cksum=$($XBPS_DIGEST_CMD <($TAR_CMD -x -O -f "$curfile" data.tar.gz | $TAR_CMD -xzO )) + ;; + *) + msg_error "$pkgver: cannot guess $curfile extract suffix. ($cursufx)\n" + ;; + esac + + if [ -z "$cksum" ]; then + msg_error "$pkgver: cannot find contents checksum for $curfile.\n" + fi + echo "$cksum" +} + +# Verify the checksum for $curfile stored at $distfile and index $dfcount +verify_cksum() { + 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 + cksum=${cksum:1} + msg_normal "$pkgver: verifying contents checksum for distfile '$curfile'... " + filesum=$(contents_cksum "$curfile") + if [ "${cksum}" != "$filesum" ]; then + echo + msg_red "SHA256 mismatch for '${curfile}:'\n@${filesum}\n" + errors=$((errors + 1)) + else + msg_normal_append "OK.\n" + fi + else + msg_normal "$pkgver: verifying checksum for distfile '$curfile'... " + filesum=$(${XBPS_DIGEST_CMD} "$distfile") + if [ "$cksum" != "$filesum" ]; then + echo + msg_red "SHA256 mismatch for '${curfile}:'\n${filesum}\n" + errors=$((errors + 1)) + else + if [ ! -f "$XBPS_SRCDISTDIR/by_sha256/${cksum}_${curfile}" ]; then + mkdir -p "$XBPS_SRCDISTDIR/by_sha256" + ln -f "$distfile" "$XBPS_SRCDISTDIR/by_sha256/${cksum}_${curfile}" + fi + msg_normal_append "OK.\n" + fi + fi +} + +# Link an existing cksum $distfile for $curfile at index $dfcount +link_cksum() { + 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" cksum="$3" f="$4" + local filesum basefile mirror path scheme good + [ -z "$XBPS_DISTFILES_MIRROR" ] && return 1 + basefile="${f##*/}" + for mirror in $XBPS_DISTFILES_MIRROR; do + scheme="file" + if [[ $mirror == *://* ]]; then + scheme="${mirror%%:/*}" + path="${mirror#${scheme}://}" + else + path="$mirror" + fi + if [ "$scheme" == "file" ]; then + # Skip file:// mirror locations (/some/where or file:///some/where) + # where the specified directory does not exist + if [ ! -d "$path" ]; then + msg_warn "$pkgver: mount point $path does not exist...\n" + continue + fi + fi + if [[ "$mirror" == *voidlinux* ]]; then + # For distfiles.voidlinux.* append the subdirectory + mirror="$mirror/$pkgname-$version" + fi + 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 + # 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") + 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 + + 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 + + cd $srcdir || msg_error "$pkgver: cannot change dir to $srcdir!\n" + + # 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 + TAR_CMD="$(command -v tar)" + fi + + # Detect distfiles with obsolete checksum and purge them from the cache + 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 + dfcount=$((dfcount + 1)) + done + done + + # We're done, if all distfiles were found and had good checksums + [[ $dfcount -eq $dfgood ]] && return + + # Download missing distfiles and verify their checksums + 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 ! 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 link_cksum "$curfile" "$distfile" "${_checksums[$i]}"; then + continue + fi + + # If distfile does not exist, download it from a mirror location. + if try_mirrors "$curfile" "$distfile" "${_checksums[$i]}" "${_distfiles[$i]}"; then + continue + fi + + if ! try_urls "$curfile"; then + msg_error "$pkgver: failed to fetch '$curfile'.\n" + fi + done + + unset TAR_CMD + + if [[ $errors -gt 0 ]]; then + msg_error "$pkgver: couldn't verify distfiles, exiting...\n" + fi +} diff --git a/common/hooks/do-install/.empty b/common/hooks/do-install/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/do-patch/.empty b/common/hooks/do-patch/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/do-patch/00-patches.sh b/common/hooks/do-patch/00-patches.sh new file mode 100644 index 0000000..c75209f --- /dev/null +++ b/common/hooks/do-patch/00-patches.sh @@ -0,0 +1,54 @@ +# This hook applies patches from "patches" directory. + +_process_patch() { + local _args= _patch= i=$1 + + _args="-Np1" + _patch=${i##*/} + + if [ -f "$PATCHESDIR/${_patch}.args" ]; then + _args=$(<"$PATCHESDIR/${_patch}.args") + elif [ -n "$patch_args" ]; then + _args=$patch_args + fi + cp -f "$i" "$wrksrc" + + # Try to guess if its a compressed patch. + if [[ $i =~ .gz$ ]]; then + gunzip "$wrksrc/${_patch}" + _patch=${_patch%%.gz} + elif [[ $i =~ .bz2$ ]]; then + bunzip2 "$wrksrc/${_patch}" + _patch=${_patch%%.bz2} + elif [[ $i =~ .diff$ ]]; then + : + elif [[ $i =~ .patch$ ]]; then + : + else + msg_warn "$pkgver: unknown patch type: $i.\n" + return 0 + fi + + cd "$wrksrc" + msg_normal "$pkgver: patching: ${_patch}.\n" + patch -s ${_args} <"${_patch}" 2>/dev/null +} + +hook() { + if [ ! -d "$wrksrc" ]; then + return 0 + fi + if [ -r $PATCHESDIR/series ]; then + while read -r f; do + _process_patch "$PATCHESDIR/$f" + done < $PATCHESDIR/series + else + for f in $PATCHESDIR/*; do + [ ! -f "$f" ] && continue + if [[ $f =~ ^.*.args$ ]]; then + continue + fi + _process_patch "$f" + done + fi +} diff --git a/common/hooks/do-pkg/.empty b/common/hooks/do-pkg/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/do-pkg/00-gen-pkg.sh b/common/hooks/do-pkg/00-gen-pkg.sh new file mode 100644 index 0000000..e61f053 --- /dev/null +++ b/common/hooks/do-pkg/00-gen-pkg.sh @@ -0,0 +1,166 @@ +# This hook generates a XBPS binary package from an installed package in destdir. + +genpkg() { + local pkgdir="$1" arch="$2" desc="$3" pkgver="$4" binpkg="$5" + local _preserve _deps _shprovides _shrequires _gitrevs _provides _conflicts + local _replaces _reverts _mutable_files _conf_files f + local _pkglock="$pkgdir/${binpkg}.lock" + + if [ ! -d "${PKGDESTDIR}" ]; then + msg_warn "$pkgver: cannot find pkg destdir... skipping!\n" + return 0 + fi + + [ ! -d $pkgdir ] && mkdir -p $pkgdir + + while [ -f "$_pkglock" ]; do + msg_warn "${pkgver}: binpkg is being created, waiting for 1s...\n" + sleep 1 + done + + # Don't overwrite existing binpkgs by default, skip them. + if [ -e $pkgdir/$binpkg ] && [ "$XBPS_PRESERVE_PKGS" ] && [ -z "$XBPS_BUILD_FORCEMODE" ]; then + msg_normal "${pkgver}: skipping existing $binpkg pkg...\n" + return 0 + fi + + # Lock binpkg + trap "rm -f '$_pkglock'" ERR EXIT + touch -f "$_pkglock" + + if [ ! -d $pkgdir ]; then + mkdir -p $pkgdir + fi + cd $pkgdir + + _preserve=${preserve:+-p} + if [ -s ${PKGDESTDIR}/rdeps ]; then + _deps="$(<${PKGDESTDIR}/rdeps)" + fi + if [ -s ${PKGDESTDIR}/shlib-provides ]; then + _shprovides="$(<${PKGDESTDIR}/shlib-provides)" + fi + if [ -s ${PKGDESTDIR}/shlib-requires ]; then + _shrequires="$(<${PKGDESTDIR}/shlib-requires)" + fi + if [ -s ${XBPS_STATEDIR}/gitrev ]; then + _gitrevs="$(<${XBPS_STATEDIR}/gitrev)" + fi + + # Stripping whitespaces + local _provides="$(echo $provides)" + local _conflicts="$(echo $conflicts)" + local _replaces="$(echo $replaces)" + local _reverts="$(echo $reverts)" + local _mutable_files="$(echo $mutable_files)" + local _conf_files="$(expand_destdir "$conf_files")" + local _alternatives="$(echo $alternatives)" + local _tags="$(echo $tags)" + local _changelog="$(echo $changelog)" + + msg_normal "Creating $binpkg for repository $pkgdir ...\n" + + # + # Create the XBPS binary package. + # + xbps-create \ + ${_provides:+--provides "${_provides}"} \ + ${_conflicts:+--conflicts "${_conflicts}"} \ + ${_replaces:+--replaces "${_replaces}"} \ + ${_reverts:+--reverts "${_reverts}"} \ + ${_mutable_files:+--mutable-files "${_mutable_files}"} \ + ${_deps:+--dependencies "${_deps}"} \ + ${_conf_files:+--config-files "${_conf_files}"} \ + ${PKG_BUILD_OPTIONS:+--build-options "${PKG_BUILD_OPTIONS}"} \ + ${_gitrevs:+--source-revisions "${_gitrevs}"} \ + ${_shprovides:+--shlib-provides "${_shprovides}"} \ + ${_shrequires:+--shlib-requires "${_shrequires}"} \ + ${_alternatives:+--alternatives "${_alternatives}"} \ + ${_preserve:+--preserve} \ + ${tags:+--tags "${tags}"} \ + ${_changelog:+--changelog "${_changelog}"} \ + ${XBPS_PKG_COMPTYPE:+--compression $XBPS_PKG_COMPTYPE} \ + --architecture ${arch} \ + --homepage "${homepage}" \ + --license "${license}" \ + --maintainer "${maintainer}" \ + --desc "${desc}" \ + --pkgver "${pkgver}" \ + --quiet \ + ${PKGDESTDIR} + rval=$? + + # Unlock binpkg + rm -f "$_pkglock" + trap - ERR EXIT + + if [ $rval -ne 0 ]; then + rm -f $pkgdir/$binpkg + msg_error "Failed to created binary package: $binpkg!\n" + fi +} + +hook() { + local arch= binpkg= repo= _pkgver= _desc= _pkgn= _pkgv= _provides= \ + _replaces= _reverts= f= found_dbg_subpkg= + + arch=$XBPS_TARGET_MACHINE + binpkg=${pkgver}.${arch}.xbps + + if [ -n "$repository" ]; then + repo=$XBPS_REPOSITORY/$repository + else + repo=$XBPS_REPOSITORY + fi + + genpkg ${repo} ${arch} "${short_desc}" ${pkgver} ${binpkg} + + for f in ${provides}; do + _pkgn="$($XBPS_UHELPER_CMD getpkgname $f)" + _pkgv="$($XBPS_UHELPER_CMD getpkgversion $f)" + _provides+=" ${_pkgn}-32bit-${_pkgv}" + done + for f in ${replaces}; do + _pkgn="$($XBPS_UHELPER_CMD getpkgdepname $f)" + _pkgv="$($XBPS_UHELPER_CMD getpkgdepversion $f)" + _replaces+=" ${_pkgn}-32bit${_pkgv}" + done + + # Generate -dbg pkg. + for f in ${subpackages}; do + # If there's an explicit subpkg named ${pkgname}-dbg, don't generate + # it automagically (required by linuxX.X). + if [ "${sourcepkg}-dbg" = "$f" ]; then + found_dbg_subpkg=1 + break + fi + done + if [ -z "$found_dbg_subpkg" -a -d "${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-dbg-${version}" ]; then + source ${XBPS_COMMONDIR}/environment/setup-subpkg/subpkg.sh + repo=$XBPS_REPOSITORY/debug + _pkgver=${pkgname}-dbg-${version}_${revision} + _desc="${short_desc} (debug files)" + binpkg=${_pkgver}.${arch}.xbps + PKGDESTDIR="${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-dbg-${version}" + genpkg ${repo} ${arch} "${_desc}" ${_pkgver} ${binpkg} + fi + # Generate 32bit pkg. + if [ "$XBPS_TARGET_MACHINE" != "i686" ]; then + return + fi + if [ -d "${XBPS_DESTDIR}/${pkgname}-32bit-${version}" ]; then + source ${XBPS_COMMONDIR}/environment/setup-subpkg/subpkg.sh + if [ -n "$repository" ]; then + repo=$XBPS_REPOSITORY/multilib/$repository + else + repo=$XBPS_REPOSITORY/multilib + fi + _pkgver=${pkgname}-32bit-${version}_${revision} + _desc="${short_desc} (32bit)" + binpkg=${_pkgver}.x86_64.xbps + PKGDESTDIR="${XBPS_DESTDIR}/${pkgname}-32bit-${version}" + [ -n "${_provides}" ] && export provides="${_provides}" + [ -n "${_replaces}" ] && export replaces="${_replaces}" + genpkg ${repo} x86_64 "${_desc}" ${_pkgver} ${binpkg} + fi +} diff --git a/common/hooks/post-build/.empty b/common/hooks/post-build/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/post-check/.empty b/common/hooks/post-check/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/post-configure/.empty b/common/hooks/post-configure/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/post-extract/.empty b/common/hooks/post-extract/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/post-fetch/.empty b/common/hooks/post-fetch/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/post-install/.empty b/common/hooks/post-install/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/post-install/00-compress-info-files.sh b/common/hooks/post-install/00-compress-info-files.sh new file mode 100644 index 0000000..ee394a8 --- /dev/null +++ b/common/hooks/post-install/00-compress-info-files.sh @@ -0,0 +1,43 @@ +# This hook compresses info(1) files. + +hook() { + local f j dirat lnkat newlnk + local fpattern="s|${PKGDESTDIR}||g;s|^\./$||g;/^$/d" + # + # Find out if this package contains info files and compress + # all them with gzip. + # + if [ ! -f ${PKGDESTDIR}/usr/share/info/dir ]; then + return 0 + fi + # Always remove this file if curpkg is not texinfo. + if [ "$pkgname" != "texinfo" ]; then + rm -f ${PKGDESTDIR}/usr/share/info/dir + fi + + find ${PKGDESTDIR}/usr/share/info -type f -follow | while read f + do + j=$(echo "$f"|sed -e "$fpattern") + [ "$j" = "" ] && continue + [ "$j" = "/usr/share/info/dir" ] && continue + # Ignore compressed files. + if [[ "$j" =~ .*.gz$ ]]; then + continue + fi + # Ignore non info files. + if ! [[ "$j" =~ .*.info$ ]] && ! [[ "$j" =~ .*.info-[0-9]*$ ]]; then + continue + fi + if [ -h ${PKGDESTDIR}/"$j" ]; then + dirat="${j%/*}/" + lnkat=$(readlink ${PKGDESTDIR}/"$j") + newlnk="${j##*/}" + rm -f ${PKGDESTDIR}/"$j" + cd ${PKGDESTDIR}/"$dirat" + ln -s "${lnkat}".gz "${newlnk}".gz + continue + fi + echo " Compressing info file: $j..." + gzip -nfq9 ${PKGDESTDIR}/"$j" + done +} diff --git a/common/hooks/post-install/00-fixup-gir-path.sh b/common/hooks/post-install/00-fixup-gir-path.sh new file mode 100644 index 0000000..6fdb111 --- /dev/null +++ b/common/hooks/post-install/00-fixup-gir-path.sh @@ -0,0 +1,11 @@ +# This hook removes the symlink necessary to fix the wrong install path of +# 'gir' files when cross building packages (see pre-install hook). It's a +# workaround and not a proper fix. Remove it once the root cause of the problem +# is fixed. + +# Has to be a low number so it runs before remove-empty-dirs + +hook() { + [ -z "$CROSS_BUILD" ] && return + rm -f "${PKGDESTDIR}/usr/${XBPS_CROSS_TRIPLET}/usr" +} diff --git a/common/hooks/post-install/00-libdir.sh b/common/hooks/post-install/00-libdir.sh new file mode 100644 index 0000000..21c7e35 --- /dev/null +++ b/common/hooks/post-install/00-libdir.sh @@ -0,0 +1,7 @@ +# This hook removes the wordsize specific libdir symlink. + +hook() { + if [ "${pkgname}" != "base-files" ]; then + rm -f ${PKGDESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE} + fi +} diff --git a/common/hooks/post-install/00-uncompress-manpages.sh b/common/hooks/post-install/00-uncompress-manpages.sh new file mode 100644 index 0000000..c7a4e47 --- /dev/null +++ b/common/hooks/post-install/00-uncompress-manpages.sh @@ -0,0 +1,21 @@ +# This hook uncompresses man(1) files. + +hook() { + local f lnkat mandir=${PKGDESTDIR}/usr/share/man + + if [ ! -d $mandir ] || + [ -z "$(find $mandir -regex '.*\.\(gz\|bz2\)' -print -quit)" ]; then + return 0 + fi + + # rewrite symlinks + find $mandir -type l -regex '.*\.\(gz\|bz2\)' | while read f + do + lnkat=$(readlink "$f") + ln -s ${lnkat%.*} ${f%.*} + rm $f + done + + find $mandir -type f -name '*.gz' -exec gunzip -v -f {} + &>/dev/null + find $mandir -type f -name '*.bz2' -exec bunzip2 -v -f {} + &>/dev/null +} diff --git a/common/hooks/post-install/01-remove-misc.sh b/common/hooks/post-install/01-remove-misc.sh new file mode 100644 index 0000000..06e8c19 --- /dev/null +++ b/common/hooks/post-install/01-remove-misc.sh @@ -0,0 +1,11 @@ +# hook to remove misc files. +hook() { + case "$XBPS_TARGET_MACHINE" in + *-musl) ;; + *) return 0;; + esac + # Remove charset.alias on musl + if [ -f $PKGDESTDIR/usr/lib/charset.alias ]; then + rm -f $PKGDESTDIR/usr/lib/charset.alias + fi +} diff --git a/common/hooks/post-install/02-remove-libtool-archives.sh b/common/hooks/post-install/02-remove-libtool-archives.sh new file mode 100644 index 0000000..dd4afe8 --- /dev/null +++ b/common/hooks/post-install/02-remove-libtool-archives.sh @@ -0,0 +1,7 @@ +# This hook removes libtool archives (.la) unless $keep_libtool_archives is set. + +hook() { + if [ -z "$keep_libtool_archives" -a -d "${PKGDESTDIR}" ]; then + find ${PKGDESTDIR} -name \*.la -delete + fi +} diff --git a/common/hooks/post-install/02-remove-perl-files.sh b/common/hooks/post-install/02-remove-perl-files.sh new file mode 100644 index 0000000..e8dad01 --- /dev/null +++ b/common/hooks/post-install/02-remove-perl-files.sh @@ -0,0 +1,8 @@ +# This hook removes perl pod/.packlist files. + +hook() { + if [ "$pkgname" != "perl" -a -d "${PKGDESTDIR}" ]; then + find ${PKGDESTDIR} -type f -name perllocal.pod -delete + find ${PKGDESTDIR} -type f -name .packlist -delete + fi +} diff --git a/common/hooks/post-install/02-remove-python-bytecode-files.sh b/common/hooks/post-install/02-remove-python-bytecode-files.sh new file mode 100644 index 0000000..3fa8bdc --- /dev/null +++ b/common/hooks/post-install/02-remove-python-bytecode-files.sh @@ -0,0 +1,7 @@ +# This hook removes python bytecode files (.py[co]). + +hook() { + if [ -d "${PKGDESTDIR}" ]; then + find ${PKGDESTDIR} -type f -name '*.py[co]' -delete + fi +} diff --git a/common/hooks/post-install/03-remove-empty-dirs.sh b/common/hooks/post-install/03-remove-empty-dirs.sh new file mode 100644 index 0000000..c54f458 --- /dev/null +++ b/common/hooks/post-install/03-remove-empty-dirs.sh @@ -0,0 +1,10 @@ +# This hooks removes empty dirs and warns about them. + +hook() { + if [ -d "${PKGDESTDIR}" ]; then + find "${PKGDESTDIR}" -mindepth 1 -type d -empty -print -delete|sort -r|while read f; do + _dir="${f##${PKGDESTDIR}}" + msg_warn "$pkgver: removed empty dir: ${_dir}\n" + done + fi +} diff --git a/common/hooks/post-install/04-create-xbps-metadata-scripts.sh b/common/hooks/post-install/04-create-xbps-metadata-scripts.sh new file mode 100644 index 0000000..69e318a --- /dev/null +++ b/common/hooks/post-install/04-create-xbps-metadata-scripts.sh @@ -0,0 +1,406 @@ +# This hook generates XBPS pkg metadata INSTALL/REMOVE scripts. + +_add_trigger() { + local f= found= name="$1" + + for f in ${triggers}; do + [ "$f" = "$name" ] && found=1 + done + [ -z "$found" ] && triggers="$triggers $name" +} + +process_metadata_scripts() { + local action="$1" + local action_file="$2" + local tmpf=$(mktemp) || exit 1 + local fpattern="s|${PKGDESTDIR}||g;s|^\./$||g;/^$/d" + local targets= f= _f= info_files= home= shell= descr= groups= + local found= triggers_found= _icondirs= _schemas= _mods= _tmpfiles= + + case "$action" in + install) ;; + remove) ;; + *) return 1;; + esac + + cd ${PKGDESTDIR} + cat >> $tmpf <<_EOF +#!/bin/sh +# +# Generic INSTALL/REMOVE script. Arguments passed to this script: +# +# \$1 = ACTION [pre/post] +# \$2 = PKGNAME +# \$3 = VERSION +# \$4 = UPDATE [yes/no] +# \$5 = CONF_FILE (path to xbps.conf) +# \$6 = ARCH (uname -m) +# +# Note that paths must be relative to CWD, to avoid calling +# host commands if /bin/sh (dash) is not installed and it's +# not possible to chroot(2). +# + +export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" + +TRIGGERSDIR="./usr/libexec/xbps-triggers" +ACTION="\$1" +PKGNAME="\$2" +VERSION="\$3" +UPDATE="\$4" +CONF_FILE="\$5" +ARCH="\$6" + +# +# The following code will run the triggers. +# +_EOF + # + # Handle kernel hooks. + # + if [ -n "${kernel_hooks_version}" ]; then + _add_trigger kernel-hooks + echo "export kernel_hooks_version=\"${kernel_hooks_version}\"" >> $tmpf + fi + # + # Handle DKMS modules. + # + if [ -n "${dkms_modules}" ]; then + _add_trigger dkms + echo "export dkms_modules=\"${dkms_modules}\"" >> $tmpf + fi + # + # Handle system groups. + # + if [ -n "${system_groups}" ]; then + _add_trigger system-accounts + echo "export system_groups=\"${system_groups}\"" >> $tmpf + fi + # + # Handle system accounts. + # + if [ -n "${system_accounts}" ]; then + _add_trigger system-accounts + echo "export system_accounts=\"${system_accounts}\"" >> $tmpf + for f in ${system_accounts}; do + local _uname="${f%:*}" + local _uid="${f#*:}" + + eval homedir="\$${_uname}_homedir" + eval shell="\$${_uname}_shell" + eval descr="\$${_uname}_descr" + eval groups="\$${_uname}_groups" + eval pgroup="\$${_uname}_pgroup" + if [ -n "$homedir" ]; then + echo "export ${_uname}_homedir=\"$homedir\"" >> $tmpf + fi + if [ -n "$shell" ]; then + echo "export ${_uname}_shell=\"$shell\"" >> $tmpf + fi + if [ -n "$descr" ]; then + echo "export ${_uname}_descr=\"$descr\"" >> $tmpf + fi + if [ -n "$groups" ]; then + echo "export ${_uname}_groups=\"${groups}\"" >> $tmpf + fi + if [ -n "$pgroup" ]; then + echo "export ${_uname}_pgroup=\"${pgroup}\"" >> $tmpf + fi + unset homedir shell descr groups pgroup + done + fi + # + # Handle mkdirs trigger. + # + if [ -n "${make_dirs}" ]; then + _add_trigger mkdirs + echo "export make_dirs=\"${make_dirs}\"" >> $tmpf + fi + # + # Handle binfmts trigger + # + if [ -n "${binfmts}" ]; then + _add_trigger binfmts + echo "export binfmts=\"${binfmts}\"" >> $tmpf + fi + # + # Handle GNU Info files. + # + if [ -d "${PKGDESTDIR}/usr/share/info" ]; then + unset info_files + for f in $(find ${PKGDESTDIR}/usr/share/info -type f); do + j=$(echo $f|sed -e "$fpattern") + [ "$j" = "" ] && continue + [ "$j" = "/usr/share/info/dir" ] && continue + if [ -z "$info_files" ]; then + info_files="$j" + else + info_files="$info_files $j" + fi + done + if [ -n "${info_files}" ]; then + _add_trigger info-files + echo "export info_files=\"${info_files}\"" >> $tmpf + fi + fi + # + # Handle files in hwdb directory + # + if [ -d "${PKGDESTDIR}/usr/lib/udev/hwdb.d" ]; then + _add_trigger hwdb.d-dir + fi + # + # Handle texmf database changes + # + if [ -d "${PKGDESTDIR}/usr/share/texmf-dist" ] ; then + _add_trigger texmf-dist + fi + # + # (Un)Register a shell in /etc/shells. + # + if [ -n "${register_shell}" ]; then + _add_trigger register-shell + echo "export register_shell=\"${register_shell}\"" >> $tmpf + fi + # + # Handle SGML/XML catalog entries via xmlcatmgr. + # + if [ -n "${sgml_catalogs}" ]; then + for catalog in ${sgml_catalogs}; do + sgml_entries="${sgml_entries} CATALOG ${catalog} --" + done + fi + if [ -n "${sgml_entries}" ]; then + echo "export sgml_entries=\"${sgml_entries}\"" >> $tmpf + fi + if [ -n "${xml_catalogs}" ]; then + for catalog in ${xml_catalogs}; do + xml_entries="${xml_entries} nextCatalog ${catalog} --" + done + fi + if [ -n "${xml_entries}" ]; then + echo "export xml_entries=\"${xml_entries}\"" >> $tmpf + fi + if [ -n "${sgml_entries}" -o -n "${xml_entries}" ]; then + _add_trigger xml-catalog + fi + # + # Handle X11 font updates via mkfontdir/mkfontscale. + # + if [ -n "${font_dirs}" ]; then + _add_trigger x11-fonts + echo "export font_dirs=\"${font_dirs}\"" >> $tmpf + fi + # + # Handle GTK+ Icon cache directories. + # + if [ -d ${PKGDESTDIR}/usr/share/icons ]; then + for f in ${PKGDESTDIR}/usr/share/icons/*; do + [ ! -d "${f}" ] && continue + _icondirs="${_icondirs} ${f#${PKGDESTDIR}}" + done + if [ -n "${_icondirs}" ]; then + echo "export gtk_iconcache_dirs=\"${_icondirs}\"" >> $tmpf + _add_trigger gtk-icon-cache + fi + fi + # + # Handle .desktop files in /usr/share/applications with + # desktop-file-utils. + # + if [ -d ${PKGDESTDIR}/usr/share/applications ]; then + _add_trigger update-desktopdb + fi + # + # Handle GConf schemas/entries files with gconf-schemas. + # + if [ -d ${PKGDESTDIR}/usr/share/gconf/schemas ]; then + _add_trigger gconf-schemas + for f in ${PKGDESTDIR}/usr/share/gconf/schemas/*.schemas; do + _schemas="${_schemas} ${f##*/}" + done + echo "export gconf_schemas=\"${_schemas}\"" >> $tmpf + fi + # + # Handle gio-modules trigger. + # + if [ -d ${PKGDESTDIR}/usr/lib/gio/modules ]; then + _add_trigger gio-modules + fi + # + # Handle gtk immodules in /usr/lib/gtk-2.0/2.10.0/immodules with + # gtk-immodules + # + if [ -d ${PKGDESTDIR}/usr/lib/gtk-2.0/2.10.0/immodules ]; then + _add_trigger gtk-immodules + fi + # + # Handle gtk3 immodules in /usr/lib/gtk-3.0/3.0.0/immodules with + # gtk3-immodules + # + if [ -d ${PKGDESTDIR}/usr/lib/gtk-3.0/3.0.0/immodules ]; then + _add_trigger gtk3-immodules + fi + # + # Handle gsettings schemas in /usr/share/glib-2.0/schemas with + # gsettings-schemas. + # + if [ -d ${PKGDESTDIR}/usr/share/glib-2.0/schemas ]; then + _add_trigger gsettings-schemas + fi + # + # Handle gdk-pixbuf loadable modules in /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders + # with gdk-pixbuf-loaders + # + if [ -d ${PKGDESTDIR}/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders ]; then + _add_trigger gdk-pixbuf-loaders + fi + # + # Handle mime database in /usr/share/mime with update-mime-database. + # + if [ -d ${PKGDESTDIR}/usr/share/mime ]; then + _add_trigger mimedb + fi + # + # Handle python bytecode archives with pycompile trigger. + # + local pycompile_version + if [ -d ${PKGDESTDIR}/usr/lib/python* ]; then + pycompile_version="$(find ${PKGDESTDIR}/usr/lib/python* -prune -type d | grep -o '[[:digit:]]\.[[:digit:]]\+$')" + if [ -z "${pycompile_module}" ]; then + pycompile_module="$(find ${PKGDESTDIR}/usr/lib/python*/site-packages -mindepth 1 -maxdepth 1 '!' -name '*.egg-info' '!' -name '*.dist-info' '!' -name '*.so' '!' -name '*.pth' -printf '%f ')" + fi + fi + + if [ -n "$python_version" ]; then + pycompile_version=${python_version} + fi + + if [ "$pycompile_version" = 3 ]; then + pycompile_version=${py3_ver} + elif [ "$pycompile_version" = 2 ]; then + pycompile_version=${py2_ver} + fi + + if [ -n "${pycompile_dirs}" -o -n "${pycompile_module}" ]; then + [ -n "$pycompile_version" ] || msg_error "$pkgver: byte-compilation is required, but python_version is not set\n" + echo "export pycompile_version=\"${pycompile_version}\"" >>$tmpf + if [ -n "${pycompile_dirs}" ]; then + echo "export pycompile_dirs=\"${pycompile_dirs}\"" >>$tmpf + fi + if [ -n "${pycompile_module}" ]; then + echo "export pycompile_module=\"${pycompile_module}\"" >>$tmpf + fi + _add_trigger pycompile + fi + # + # Handle appdata metadata with AppStream + # + for f in ${PKGDESTDIR}/usr/share/appdata/*.xml ${PKGDESTDIR}/usr/share/app-info/*.xml ${PKGDESTDIR}/var/lib/app-info/*.xml ${PKGDESTDIR}/var/cache/app-info/*.xml; do + if [ -f "${f}" ]; then + _add_trigger appstream-cache + break + fi + done + + # End of trigger var exports. + echo >> $tmpf + + # + # Write the INSTALL/REMOVE package scripts. + # + if [ -n "$triggers" ]; then + triggers_found=1 + echo "case \"\${ACTION}\" in" >> $tmpf + echo "pre)" >> $tmpf + for f in ${triggers}; do + if [ ! -f $XBPS_TRIGGERSDIR/$f ]; then + rm -f $tmpf + msg_error "$pkgname: unknown trigger $f, aborting!\n" + fi + echo " Added trigger '$f' for the '${action^^}' script." + done + for f in ${triggers}; do + targets=$($XBPS_TRIGGERSDIR/$f targets) + for j in ${targets}; do + if ! [[ $j =~ pre-${action} ]]; then + continue + fi + printf "\t\${TRIGGERSDIR}/$f run $j \${PKGNAME} \${VERSION} \${UPDATE} \${CONF_FILE}\n" >> $tmpf + printf "\t[ \$? -ne 0 ] && exit \$?\n" >> $tmpf + done + done + printf "\t;;\n" >> $tmpf + echo "post)" >> $tmpf + for f in ${triggers}; do + targets=$($XBPS_TRIGGERSDIR/$f targets) + for j in ${targets}; do + if ! [[ $j =~ post-${action} ]]; then + continue + fi + printf "\t\${TRIGGERSDIR}/$f run $j \${PKGNAME} \${VERSION} \${UPDATE} \${CONF_FILE}\n" >> $tmpf + printf "\t[ \$? -ne 0 ] && exit \$?\n" >> $tmpf + done + done + printf "\t;;\n" >> $tmpf + echo "esac" >> $tmpf + echo >> $tmpf + fi + + if [ -z "$triggers" -a ! -f "$action_file" ]; then + rm -f $tmpf + return 0 + fi + + case "$action" in + install) + if [ -f ${action_file} ]; then + found=1 + cat ${action_file} >> $tmpf + fi + echo >> $tmpf + echo "exit 0" >> $tmpf + mv $tmpf ${PKGDESTDIR}/INSTALL && chmod 755 ${PKGDESTDIR}/INSTALL + ;; + remove) + unset found + if [ -f ${action_file} ]; then + found=1 + cat ${action_file} >> $tmpf + fi + echo >> $tmpf + echo "exit 0" >> $tmpf + mv $tmpf ${PKGDESTDIR}/REMOVE && chmod 755 ${PKGDESTDIR}/REMOVE + ;; + esac +} + +hook() { + local meta_install meta_remove + + if [ -n "${sourcepkg}" -a "${sourcepkg}" != "${pkgname}" ]; then + # subpkg + meta_install=${XBPS_SRCPKGDIR}/${pkgname}/${pkgname}.INSTALL + msg_install=${XBPS_SRCPKGDIR}/${pkgname}/${pkgname}.INSTALL.msg + meta_remove=${XBPS_SRCPKGDIR}/${pkgname}/${pkgname}.REMOVE + msg_remove=${XBPS_SRCPKGDIR}/${pkgname}/${pkgname}.REMOVE.msg + else + # sourcepkg + meta_install=${XBPS_SRCPKGDIR}/${pkgname}/INSTALL + msg_install=${XBPS_SRCPKGDIR}/${pkgname}/INSTALL.msg + meta_remove=${XBPS_SRCPKGDIR}/${pkgname}/REMOVE + msg_remove=${XBPS_SRCPKGDIR}/${pkgname}/REMOVE.msg + fi + process_metadata_scripts install ${meta_install} || \ + msg_error "$pkgver: failed to write INSTALL metadata file!\n" + + process_metadata_scripts remove ${meta_remove} || \ + msg_error "$pkgver: failed to write REMOVE metadata file!\n" + + if [ -s ${msg_install} ]; then + install -m644 ${msg_install} ${PKGDESTDIR}/INSTALL.msg + fi + if [ -s ${msg_remove} ]; then + install -m644 ${msg_remove} ${PKGDESTDIR}/REMOVE.msg + fi +} diff --git a/common/hooks/post-install/05-generate-gitrevs.sh b/common/hooks/post-install/05-generate-gitrevs.sh new file mode 100644 index 0000000..c5a51f0 --- /dev/null +++ b/common/hooks/post-install/05-generate-gitrevs.sh @@ -0,0 +1,23 @@ +# This hook generates a file ${XBPS_STATEDIR}/gitrev with the last +# commit sha1 (in short mode) for source pkg if XBPS_USE_GIT_REVS is enabled. + +hook() { + local GITREVS_FILE=${XBPS_STATEDIR}/gitrev + + # If XBPS_USE_GIT_REVS is disabled in conf file don't continue. + if [ -z $XBPS_USE_GIT_REVS ]; then + return + fi + # If the file exists don't regenerate it again. + if [ -s ${GITREVS_FILE} ]; then + return + fi + + if [ -z "$XBPS_GIT_REVS" ]; then + msg_error "BUG: XBPS_GIT_REVS is not set\n" + fi + + cd $XBPS_SRCPKGDIR + echo "${sourcepkg}:${XBPS_GIT_REVS}" + echo "${sourcepkg}:${XBPS_GIT_REVS}" > $GITREVS_FILE +} diff --git a/common/hooks/post-install/06-strip-and-debug-pkgs.sh b/common/hooks/post-install/06-strip-and-debug-pkgs.sh new file mode 100644 index 0000000..191c025 --- /dev/null +++ b/common/hooks/post-install/06-strip-and-debug-pkgs.sh @@ -0,0 +1,148 @@ +# This hook executes the following tasks: +# - strips ELF binaries/libraries +# - generates -dbg pkgs + +make_debug() { + local dname= fname= dbgfile= + + [ -n "$nodebug" ] && return 0 + + dname=${1%/*}/ ; dname=${dname#$PKGDESTDIR} + fname="${1##*/}" + dbgfile="${dname}/${fname}" + + mkdir -p "${PKGDESTDIR}/usr/lib/debug/${dname}" + $OBJCOPY --only-keep-debug --compress-debug-sections \ + "$1" "${PKGDESTDIR}/usr/lib/debug/${dbgfile}" + if [ $? -ne 0 ]; then + msg_red "${pkgver}: failed to create dbg file: ${dbgfile}\n" + return 1 + fi + chmod 644 "${PKGDESTDIR}/usr/lib/debug/${dbgfile}" +} + +attach_debug() { + local dname= fname= dbgfile= + + [ -n "$nodebug" ] && return 0 + + dname=${1%/*}/ ; dname=${dname#$PKGDESTDIR} + fname="${1##*/}" + dbgfile="${dname}/${fname}" + + $OBJCOPY --add-gnu-debuglink="${PKGDESTDIR}/usr/lib/debug/${dbgfile}" "$1" + if [ $? -ne 0 ]; then + msg_red "${pkgver}: failed to attach dbg to ${dbgfile}\n" + return 1 + fi +} + +create_debug_pkg() { + local _pkgname= _destdir= + + [ -n "$nodebug" ] && return 0 + [ ! -d "${PKGDESTDIR}/usr/lib/debug" ] && return 0 + + _pkgname="${pkgname}-dbg-${version}" + _destdir="${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${_pkgname}" + mkdir -p "${_destdir}/usr/lib" + mv ${PKGDESTDIR}/usr/lib/debug ${_destdir}/usr/lib + if [ $? -ne 0 ]; then + msg_red "$pkgver: failed to create debug pkg\n" + return 1 + fi + printf "${pkgver} " >> ${_destdir}/rdeps + rmdir --ignore-fail-on-non-empty "${PKGDESTDIR}/usr/lib" 2>/dev/null + return 0 +} + +hook() { + local fname= x= f= _soname= STRIPCMD= + + if [ -n "$nostrip" ]; then + return 0 + fi + + STRIPCMD=/usr/bin/$STRIP + + find ${PKGDESTDIR} -type f | while read f; do + if [[ $f =~ ^${PKGDESTDIR}/usr/lib/debug/ ]]; then + continue + fi + + fname=${f##*/} + for x in ${nostrip_files}; do + if [ "$x" = "$fname" -o "$x" = "${f#$PKGDESTDIR}" ]; then + found=1 + break + fi + done + if [ -n "$found" ]; then + unset found + continue + fi + case "$(file -bi "$f")" in + application/x-executable*) + chmod +w "$f" + if [[ $(file $f) =~ "statically linked" ]]; then + # static binary + if ! $STRIPCMD "$f"; then + msg_red "$pkgver: failed to strip ${f#$PKGDESTDIR}\n" + return 1 + fi + echo " Stripped static executable: ${f#$PKGDESTDIR}" + else + make_debug "$f" + if ! $STRIPCMD "$f"; then + msg_red "$pkgver: failed to strip ${f#$PKGDESTDIR}\n" + return 1 + fi + echo " Stripped executable: ${f#$PKGDESTDIR}" + unset nopie_found + for x in ${nopie_files}; do + if [ "$x" = "${f#$PKGDESTDIR}" ]; then + nopie_found=1 + break + fi + done + if [ -z "$nopie" ] && [ -z "$nopie_found" ]; then + msg_red "$pkgver: non-PIE executable found in PIE build: ${f#$PKGDESTDIR}\n" + return 1 + fi + attach_debug "$f" + fi + ;; + application/x-sharedlib*|application/x-pie-executable*) + local type="$(file -b "$f")" + if [[ $type =~ "no machine" ]]; then + # using ELF as a container format (e.g. guile) + echo " Ignoring ELF file without machine set: ${f#$PKGDESTDIR}" + continue + fi + + chmod +w "$f" + # shared library + make_debug "$f" + if ! $STRIPCMD --strip-unneeded "$f"; then + msg_red "$pkgver: failed to strip ${f#$PKGDESTDIR}\n" + return 1 + fi + if [[ $type =~ "interpreter " ]]; then + echo " Stripped position-independent executable: ${f#$PKGDESTDIR}" + else + echo " Stripped library: ${f#$PKGDESTDIR}" + fi + attach_debug "$f" + ;; + application/x-archive*) + chmod +w "$f" + if ! $STRIPCMD --strip-debug "$f"; then + msg_red "$pkgver: failed to strip ${f#$PKGDESTDIR}\n" + return 1 + fi + echo " Stripped static library: ${f#$PKGDESTDIR}";; + esac + done + create_debug_pkg + return $? +} diff --git a/common/hooks/post-install/10-pkglint-devel-paths.sh b/common/hooks/post-install/10-pkglint-devel-paths.sh new file mode 100644 index 0000000..ff9e0fc --- /dev/null +++ b/common/hooks/post-install/10-pkglint-devel-paths.sh @@ -0,0 +1,84 @@ +# vim: set ts=4 sw=4 et: +# +# This hook executes the following tasks: +# - Looks on non -devel packages for files that should be in the -devel package +# - Searches for solinks (.so) and archives (.a) on usr/lib +# - Searches for executables in usr/bin that end with -config and a respective manpage + +hook() { + local solink archive + + if [[ "$pkgname" == *"-devel" ]]; then + return 0 + fi + + if [[ "$subpackages" != *"-devel" ]]; then + return 0 + fi + + for f in $(find $PKGDESTDIR -type d); do + case "${f#$PKGDESTDIR}" in + /usr/include) + msg_warn "usr/include should be in -devel package\n" + ;; + /usr/share/pkgconfig) + msg_warn "usr/share/pkgconfig should be in -devel package\n" + ;; + /usr/lib/pkgconfig) + msg_warn "usr/lib/pkgconfig should be in -devel package\n" + ;; + /usr/share/vala) + msg_warn "usr/share/vala should be in -devel package\n" + ;; + /usr/share/gir-1.0) + msg_warn "usr/share/gir-1.0 should be in -devel package\n" + ;; + /usr/share/man/man3) + msg_warn "usr/share/man/man3 should be in -devel package\n" + ;; + /usr/share/aclocal) + msg_warn "usr/share/aclocal should be in -devel package\n" + ;; + /usr/share/cmake) + msg_warn "usr/share/cmake should be in -devel package\n" + ;; + /usr/lib/cmake) + msg_warn "usr/lib/cmake should be in -devel package\n" + ;; + /usr/share/gtk-doc) + msg_warn "usr/share/gtk-doc should be in -devel package\n" + ;; + /usr/lib/qt5/mkspecs) + msg_warn "usr/lib/qt5/mkspecs should be in -devel package\n" + ;; + esac + done + + if [ -n "$(find $PKGDESTDIR/usr/lib -maxdepth 1 -type l -iname '*.so' 2>/dev/null)" ]; then + solink=1 + fi + + if [ -n "$(find $PKGDESTDIR/usr/lib -maxdepth 1 -type f -iname '*.a' 2>/dev/null)" ]; then + archive=1 + fi + + if [ -d $PKGDESTDIR/usr/bin ]; then + for x in $(find $PKGDESTDIR/usr/bin -type f -executable -iname '*-config'); do + msg_warn "${x#$PKGDESTDIR\/} should be in -devel package\n" + done + fi + + if [ -d $PKGDESTDIR/usr/man/man1 ]; then + for m in $(find $PKGDESTDIR/usr/man/man1 -type f -iname '*-config.1'); do + msg_warn "${m#$PKGDESTDIR\/} should be in -devel package\n" + done + fi + + if [ -n "$solink" ]; then + msg_warn "usr/lib/*.so should be in -devel package\n" + fi + + if [ -n "$archive" ]; then + msg_warn "usr/lib/*.a should be in -devel package\n" + 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 new file mode 100644 index 0000000..729f520 --- /dev/null +++ b/common/hooks/post-install/11-pkglint-elf-in-usrshare.sh @@ -0,0 +1,51 @@ +# vim: set ts=4 sw=4 et: +# +# This hook executes the following tasks: +# - Looks on all packages for binary files being installed to /usr/share +# - Allows exceptions listed in $ignore_elf_files and $ignore_elf_dirs + +hook() { + local matches mime file f prune_expr dir + + if [ ! -d ${PKGDESTDIR}/usr/share ]; then + return 0 + fi + + if [ "${ignore_elf_dirs}" ]; then + for dir in ${ignore_elf_dirs}; do + if ! [ "${prune_expr}" ]; then + prune_expr="( -path ${PKGDESTDIR}${dir}" + else + prune_expr+=" -o -path ${PKGDESTDIR}${dir}" + fi + done + prune_expr+=" ) -prune -o " + fi + + # Find all binaries in /usr/share and add them to the pool + while read -r f; do + mime="${f##*: }" + file="${f%:*}" + file="${file#${PKGDESTDIR}}" + case "${mime}" in + application/x-sharedlib*|\ + application/x-pie-executable*|\ + application/x-executable*) + if [[ ${ignore_elf_files} != *"${file}"* ]]; then + matches+=" ${file}" + fi + ;; + esac + 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 + return 0 + fi + + msg_red "${pkgver}: ELF files found in /usr/share:\n" + for f in $matches; do + msg_red " ${f}\n" + done + msg_error "${pkgver}: cannot continue with installation!\n" +} diff --git a/common/hooks/post-install/12-rename-python3-c-bindings.sh b/common/hooks/post-install/12-rename-python3-c-bindings.sh new file mode 100644 index 0000000..c16b69d --- /dev/null +++ b/common/hooks/post-install/12-rename-python3-c-bindings.sh @@ -0,0 +1,16 @@ +# This hook executes the following tasks: +# - renames cpython binding files to not include the arch-specific extension suffix + +hook() { + if [ ! -d ${PKGDESTDIR}/${py3_sitelib} ]; then + return 0 + fi + + find "${PKGDESTDIR}/${py3_sitelib}" -type f -executable -iname '*.cpython*.so' \ + | while read -r file; do + filename="${file##*/}" + modulename="${filename%%.*}" + msg_warn "${pkgver}: renamed '${filename}' to '${modulename}.so'.\n" + mv ${file} ${file%/*}/${modulename}.so + done +} diff --git a/common/hooks/post-install/13-pkg-config-clean-xbps-cross-base-ref.sh b/common/hooks/post-install/13-pkg-config-clean-xbps-cross-base-ref.sh new file mode 100644 index 0000000..5cdfb0e --- /dev/null +++ b/common/hooks/post-install/13-pkg-config-clean-xbps-cross-base-ref.sh @@ -0,0 +1,22 @@ +# This hook removes reference to $XBPS_CROSS_BASE in +# /usr/{lib,share}/pkgconfig/*.pc +# +# We don't touch /usr/bin/*-config since there're other information that +# references $XBPS_CROSS_BASE + +hook() { + if [ -z "$CROSS_BUILD" ]; then + return 0 + fi + for f in "$PKGDESTDIR"/usr/lib/pkgconfig/*.pc \ + "$PKGDESTDIR"/usr/share/pkgconfig/*.pc + do + if [ -f "$f" ]; then + # Sample sed script + # s,/usr/armv7l-linux-musleabihf/usr,/usr,g + # trailing /usr to avoid clashing with + # other $XBPS_CROSS_BASE and $XBPS_CROSS_TRIPLET. + sed -i -e "s,$XBPS_CROSS_BASE/usr,/usr,g" "$f" + fi + done +} diff --git a/common/hooks/post-install/14-fix-permissions.sh b/common/hooks/post-install/14-fix-permissions.sh new file mode 100644 index 0000000..9207308 --- /dev/null +++ b/common/hooks/post-install/14-fix-permissions.sh @@ -0,0 +1,36 @@ +# This hook fixes permissions in common places + +change_file_perms() { + local dir="${PKGDESTDIR}${1}" + # permission mask for matching the files + local permmask="$2" + # permissions which will be set on matched files + local perms="$3" + if [ -d "$dir" ]; then + find "$dir" -type f -perm "/$permmask" -exec chmod -v "$perms" {} + + fi +} + +hook() { + if [ -z "$nocheckperms" ]; then + # check that no files have permission write for other users + find "$PKGDESTDIR" -type f -perm -0002 | while read -r file; do + msg_error "$pkgver: file ${file#$PKGDESTDIR} has write permission for other users\n" + done + fi + + if [ -z "$nofixperms" ]; then + change_file_perms "/usr/share/man" 133 644 + change_file_perms "/etc/apparmor.d" 111 644 + change_file_perms "/usr/share/applications" 133 644 + change_file_perms "/usr/share/help" 133 644 + change_file_perms "/usr/share/icons" 133 644 + change_file_perms "/usr/share/locale" 133 644 + change_file_perms "/usr/share/metainfo" 133 644 + change_file_perms "/usr/share/appdata" 133 644 + change_file_perms "/usr/include" 133 644 + change_file_perms "/usr/share/bash-completion/completions" 133 644 + change_file_perms "/usr/share/fish/vendor_completions.d" 133 644 + change_file_perms "/usr/share/zsh/site-functions" 133 644 + fi +} diff --git a/common/hooks/post-install/99-pkglint-warn-cross-cruft.sh b/common/hooks/post-install/99-pkglint-warn-cross-cruft.sh new file mode 100644 index 0000000..16e6c5f --- /dev/null +++ b/common/hooks/post-install/99-pkglint-warn-cross-cruft.sh @@ -0,0 +1,21 @@ +# This hook warns if : +# - Any text file /usr/{bin,lib,libexec,share} contains $XBPS_CROSS_BASE +# - Any text file /usr/{bin,lib,libexec,share} contains $XBPS_WRAPPERDIR + +hook() { + if [ -z "$CROSS_BUILD" ]; then + return 0 + fi + for d in bin lib libexec share; do + for f in $PKGDESTDIR/usr/$d/* $PKGDESTDIR/usr/$d/**/*; do + case "$(file -bi "$f")" in + text/*) if grep -q -e "$XBPS_CROSS_BASE" \ + -e "$XBPS_WRAPPERDIR" "$f"; then + msg_warn "${f#$PKGDESTDIR} has cross cruft\n" + fi + ;; + esac + done + done + return 0; +} diff --git a/common/hooks/post-patch/.empty b/common/hooks/post-patch/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/post-pkg/.empty b/common/hooks/post-pkg/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/post-pkg/00-register-pkg.sh b/common/hooks/post-pkg/00-register-pkg.sh new file mode 100644 index 0000000..b5392d8 --- /dev/null +++ b/common/hooks/post-pkg/00-register-pkg.sh @@ -0,0 +1,51 @@ +# This hook registers a XBPS binary package into the specified local repository. + +registerpkg() { + local repo="$1" pkg="$2" arch="$3" + + if [ ! -f ${repo}/${pkg} ]; then + msg_error "Nonexistent binary package ${repo}/${pkg}!\n" + fi + + printf "%s:%s:%s\n" "${arch}" "${repo}" "${pkg}" >> "${XBPS_STATEDIR}/.${sourcepkg}_register_pkg" +} + +hook() { + local arch= binpkg= pkgdir= + + if [ -n "$repository" ]; then + pkgdir=$XBPS_REPOSITORY/$repository + else + pkgdir=$XBPS_REPOSITORY + fi + arch=$XBPS_TARGET_MACHINE + binpkg=${pkgver}.${arch}.xbps + binpkg32=${pkgname}-32bit-${version}_${revision}.x86_64.xbps + binpkg_dbg=${pkgname}-dbg-${version}_${revision}.${arch}.xbps + + # Register binpkg. + if [ -f ${pkgdir}/${binpkg} ]; then + registerpkg ${pkgdir} ${binpkg} + fi + + # Register -dbg binpkg if it exists. + pkgdir=$XBPS_REPOSITORY/debug + PKGDESTDIR="${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-dbg-${version}" + if [ -d ${PKGDESTDIR} -a -f ${pkgdir}/${binpkg_dbg} ]; then + registerpkg ${pkgdir} ${binpkg_dbg} + fi + + # Register 32bit binpkg if it exists. + if [ "$XBPS_TARGET_MACHINE" != "i686" ]; then + return + fi + if [ -n "$repository" ]; then + pkgdir=$XBPS_REPOSITORY/multilib/$repository + else + pkgdir=$XBPS_REPOSITORY/multilib + fi + PKGDESTDIR="${XBPS_DESTDIR}/${pkgname}-32bit-${version}" + if [ -d ${PKGDESTDIR} -a -f ${pkgdir}/${binpkg32} ]; then + registerpkg ${pkgdir} ${binpkg32} x86_64 + fi +} diff --git a/common/hooks/pre-build/.empty b/common/hooks/pre-build/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/pre-build/02-script-wrapper.sh b/common/hooks/pre-build/02-script-wrapper.sh new file mode 120000 index 0000000..b637ffb --- /dev/null +++ b/common/hooks/pre-build/02-script-wrapper.sh @@ -0,0 +1 @@ +../pre-configure/02-script-wrapper.sh \ No newline at end of file diff --git a/common/hooks/pre-check/.empty b/common/hooks/pre-check/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/pre-configure/.empty b/common/hooks/pre-configure/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/pre-configure/00-gnu-configure-asneeded.sh b/common/hooks/pre-configure/00-gnu-configure-asneeded.sh new file mode 100644 index 0000000..a2865f6 --- /dev/null +++ b/common/hooks/pre-configure/00-gnu-configure-asneeded.sh @@ -0,0 +1,13 @@ +# This hook enables ld(1) --as-needed in gnu-configure packages. + +hook() { + local conf_script=${configure_script:-./configure} + + if [ ! -f "${conf_script}" ]; then + return 0 + fi + # http://lists.gnu.org/archive/html/libtool-patches/2004-06/msg00002.html + if [ "$build_style" = "gnu-configure" ]; then + sed -i "s/^\([ \t]*tmp_sharedflag\)='-shared'/\1='-shared -Wl,--as-needed'/" ${conf_script} + fi +} diff --git a/common/hooks/pre-configure/01-override-config.sh b/common/hooks/pre-configure/01-override-config.sh new file mode 100644 index 0000000..29cd661 --- /dev/null +++ b/common/hooks/pre-configure/01-override-config.sh @@ -0,0 +1,14 @@ +# This hook overrides config.sub and config.guess. + +hook() { + local _cfgdir="${XBPS_COMMONDIR}/environment/configure/automake" + + if [ -z "$build_style" -o "$build_style" = "gnu-configure" ]; then + for f in $(find "${wrksrc}" -type f -name "*config*.sub"); do + cp -f ${_cfgdir}/config.sub ${f} + done + for f in $(find "${wrksrc}" -type f -name "*config*.guess"); do + cp -f ${_cfgdir}/config.guess ${f} + done + fi +} diff --git a/common/hooks/pre-configure/02-script-wrapper.sh b/common/hooks/pre-configure/02-script-wrapper.sh new file mode 100644 index 0000000..beaec6e --- /dev/null +++ b/common/hooks/pre-configure/02-script-wrapper.sh @@ -0,0 +1,244 @@ +# This hook creates wrappers for foo-config scripts in cross builds. +# +# Wrappers are created in ${wrksrc}/.xbps/bin and this path is appended +# to make configure scripts find them. + +generic_wrapper() { + local wrapper="$1" + [ ! -x ${XBPS_CROSS_BASE}/usr/bin/${wrapper} ] && return 0 + [ -x ${XBPS_WRAPPERDIR}/${wrapper} ] && return 0 + + cat >>${XBPS_WRAPPERDIR}/${wrapper}<<_EOF +#!/bin/sh +exec ${XBPS_CROSS_BASE}/usr/bin/${wrapper} --prefix=${XBPS_CROSS_BASE}/usr "\$@" +_EOF + + chmod 755 ${XBPS_WRAPPERDIR}/${wrapper} +} + +generic_wrapper2() { + local wrapper="$1" + + [ ! -x ${XBPS_CROSS_BASE}/usr/bin/${wrapper} ] && return 0 + [ -x ${XBPS_WRAPPERDIR}/${wrapper} ] && return 0 + + cat >>${XBPS_WRAPPERDIR}/${wrapper}<<_EOF +#!/bin/sh +if [ "\$1" = "--prefix" ]; then + echo "${XBPS_CROSS_BASE}/usr" +elif [ "\$1" = "--cflags" ]; then + ${XBPS_CROSS_BASE}/usr/bin/${wrapper} --cflags | sed -e "s,-I/usr/include,-I${XBPS_CROSS_BASE}/usr/include,g" +elif [ "\$1" = "--libs" ]; then + ${XBPS_CROSS_BASE}/usr/bin/${wrapper} --libs | sed -e "s,-L/usr/lib,-L${XBPS_CROSS_BASE}/usr/lib,g" +else + exec ${XBPS_CROSS_BASE}/usr/bin/${wrapper} "\$@" +fi +exit \$? +_EOF + chmod 755 ${XBPS_WRAPPERDIR}/${wrapper} +} + +generic_wrapper3() { + local wrapper="$1" + [ ! -x ${XBPS_CROSS_BASE}/usr/bin/${wrapper} ] && return 0 + [ -x ${XBPS_WRAPPERDIR}/${wrapper} ] && return 0 + + cp ${XBPS_CROSS_BASE}/usr/bin/${wrapper} ${XBPS_WRAPPERDIR} + sed -e "s,^libdir=.*,libdir=${XBPS_CROSS_BASE}/usr/lib,g" -i ${XBPS_WRAPPERDIR}/${wrapper} + sed -e "s,^prefix=.*,prefix=${XBPS_CROSS_BASE}/usr," -i ${XBPS_WRAPPERDIR}/${wrapper} + + chmod 755 ${XBPS_WRAPPERDIR}/${wrapper} +} + +apr_apu_wrapper() { + local wrapper="$1" + + [ ! -x ${XBPS_CROSS_BASE}/usr/bin/${wrapper} ] && return 0 + [ -x ${XBPS_WRAPPERDIR}/${wrapper} ] && return 0 + + cat >>${XBPS_WRAPPERDIR}/${wrapper}<<_EOF +#!/bin/sh +${XBPS_CROSS_BASE}/usr/bin/${wrapper} "\$@" | sed -e "s,/usr/,${XBPS_CROSS_BASE}/usr/,g" +exit \$? +_EOF + chmod 755 ${XBPS_WRAPPERDIR}/${wrapper} +} + +python_wrapper() { + local wrapper="$1" version="$2" + + [ -x ${XBPS_WRAPPERDIR}/${wrapper} ] && return 0 + cat >>${XBPS_WRAPPERDIR}/${wrapper}<<_EOF +#!/bin/sh +case "\$1" in +--includes|--cflags) + echo "-I${XBPS_CROSS_BASE}/usr/include/python${version}" ;; +esac +exit 0 +_EOF + chmod 755 ${XBPS_WRAPPERDIR}/${wrapper} +} + +pkgconfig_wrapper() { + if [ ! -x /usr/bin/pkg-config ]; then + return 0 + fi + [ -x ${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-pkg-config ] && return 0 + cat >>${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-pkg-config<<_EOF +#!/bin/sh + +export PKG_CONFIG_SYSROOT_DIR="$XBPS_CROSS_BASE" +export PKG_CONFIG_PATH="$XBPS_CROSS_BASE/usr/lib/pkgconfig:$XBPS_CROSS_BASE/usr/share/pkgconfig\${PKG_CONFIG_PATH:+:\${PKG_CONFIG_PATH}}" +export PKG_CONFIG_LIBDIR="$XBPS_CROSS_BASE/usr/lib/pkgconfig\${PKG_CONFIG_LIBDIR:+:\${PKG_CONFIG_LIBDIR}}" +exec /usr/bin/pkg-config "\$@" +_EOF + chmod 755 ${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-pkg-config + if [ -z "$no_generic_pkgconfig_link" ]; then + ln -sf ${XBPS_CROSS_TRIPLET}-pkg-config ${XBPS_WRAPPERDIR}/pkg-config + fi +} + +vapigen_wrapper() { + local _vala_version _file + if [ ! -x /usr/bin/vapigen ]; then + return 0 + fi + [ -x ${XBPS_WRAPPERDIR}/vapigen ] && return 0 + for _file in /usr/bin/vapigen-*; do + if [ -x "${_file}" ]; then + _vala_version=${_file#*-} + fi + done + cat >>${XBPS_WRAPPERDIR}/vapigen<<_EOF +#!/bin/sh +exec /usr/bin/vapigen \\ + "\$@" \\ + --vapidir=${XBPS_CROSS_BASE}/usr/share/vala/vapi \\ + --vapidir=${XBPS_CROSS_BASE}/usr/share/vala-${_vala_version}/vapi \\ + --girdir=${XBPS_CROSS_BASE}/usr/share/gir-1.0 +_EOF + chmod 755 ${XBPS_WRAPPERDIR}/vapigen + ln -sf vapigen ${XBPS_WRAPPERDIR}/vapigen-${_vala_version} +} + +valac_wrapper() { + local _vala_version _file + if [ ! -x /usr/bin/valac ]; then + return 0 + fi + [ -x ${XBPS_WRAPPERDIR}/valac ] && return 0 + for _file in /usr/bin/valac-*; do + if [ -x "${_file}" ]; then + _vala_version=${_file#*-} + fi + done + cat >>${XBPS_WRAPPERDIR}/valac<<_EOF +#!/bin/sh +exec /usr/bin/valac \\ + "\$@" \\ + --vapidir=${XBPS_CROSS_BASE}/usr/share/vala/vapi \\ + --vapidir=${XBPS_CROSS_BASE}/usr/share/vala-${_vala_version}/vapi \\ + --girdir=${XBPS_CROSS_BASE}/usr/share/gir-1.0 +_EOF + chmod 755 ${XBPS_WRAPPERDIR}/valac + ln -sf valac ${XBPS_WRAPPERDIR}/valac-${_vala_version} +} + +install_wrappers() { + local fname + + for f in ${XBPS_COMMONDIR}/wrappers/*.sh; do + fname=${f##*/} + fname=${fname%.sh} + install -p -m0755 ${f} ${XBPS_WRAPPERDIR}/${fname} + done +} + +install_cross_wrappers() { + local fname prefix + + if [ -n "$XBPS_CCACHE" ]; then + [ -x "/usr/bin/ccache" ] && prefix="/usr/bin/ccache " + elif [ -n "$XBPS_DISTCC" ]; then + [ -x "/usr/bin/distcc" ] && prefix="/usr/bin/distcc " + fi + + for fname in cc gcc; do + sed -e "s,@BIN@,${prefix}/usr/bin/$XBPS_CROSS_TRIPLET-gcc,g" \ + ${XBPS_COMMONDIR}/wrappers/cross-cc > \ + ${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-${fname} + chmod 755 ${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-${fname} + done + for fname in c++ g++; do + sed -e "s,@BIN@,${prefix}/usr/bin/$XBPS_CROSS_TRIPLET-g++,g" \ + ${XBPS_COMMONDIR}/wrappers/cross-cc > \ + ${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-${fname} + chmod 755 ${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-${fname} + done +} + +link_wrapper() { + local wrapper="$1" + [ ! -x "${XBPS_CROSS_BASE}/usr/bin/${wrapper}" ] && return 0 + [ -L "${XBPS_WRAPPERDIR}/${wrapper}" ] && return 0 + ln -sf "${XBPS_CROSS_BASE}/usr/bin/${wrapper}" "${XBPS_WRAPPERDIR}" +} + +hook() { + export PATH="$XBPS_WRAPPERDIR:$PATH" + + install_wrappers + + [ -z "$CROSS_BUILD" ] && return 0 + + install_cross_wrappers + pkgconfig_wrapper + vapigen_wrapper + valac_wrapper + + if [ -x /usr/bin/pkg-config ]; then + link_wrapper freetype-config + else + generic_wrapper freetype-config + fi + + generic_wrapper icu-config + generic_wrapper libgcrypt-config + generic_wrapper sdl-config + generic_wrapper sdl2-config + generic_wrapper gpgme-config + generic_wrapper gphoto2-config + generic_wrapper gphoto2-port-config + generic_wrapper imlib2-config + generic_wrapper libmikmod-config + generic_wrapper pcre-config + generic_wrapper net-snmp-config + generic_wrapper wx-config + generic_wrapper wx-config-3.0 + generic_wrapper wx-config-gtk3 + generic_wrapper2 curl-config + generic_wrapper2 gpg-error-config + generic_wrapper2 libassuan-config + generic_wrapper2 mysql_config + generic_wrapper2 taglib-config + generic_wrapper2 nspr-config + generic_wrapper2 gdal-config + generic_wrapper3 libpng-config + generic_wrapper3 xmlrpc-c-config + generic_wrapper3 krb5-config + generic_wrapper3 cups-config + generic_wrapper3 Magick-config + generic_wrapper3 fltk-config + generic_wrapper3 xslt-config + generic_wrapper3 xml2-config + generic_wrapper3 fox-config + generic_wrapper3 xapian-config + generic_wrapper3 ncurses5-config + generic_wrapper3 ncursesw5-config + generic_wrapper3 libetpan-config + generic_wrapper3 giblib-config + python_wrapper python-config 2.7 + python_wrapper python3-config 3.11 + apr_apu_wrapper apr-1-config + apr_apu_wrapper apu-1-config +} diff --git a/common/hooks/pre-extract/.empty b/common/hooks/pre-extract/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/pre-fetch/.empty b/common/hooks/pre-fetch/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/pre-install/.empty b/common/hooks/pre-install/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/pre-install/00-libdir.sh b/common/hooks/pre-install/00-libdir.sh new file mode 100644 index 0000000..4c57fbc --- /dev/null +++ b/common/hooks/pre-install/00-libdir.sh @@ -0,0 +1,10 @@ +# This hook creates the wordsize specific libdir symlink. + +hook() { + if [ -L ${PKGDESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE} ]; then + return 0 + elif [ "${pkgname}" != "base-files" ]; then + vmkdir usr/lib + ln -sf lib ${PKGDESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE} + fi +} diff --git a/common/hooks/pre-install/02-script-wrapper.sh b/common/hooks/pre-install/02-script-wrapper.sh new file mode 120000 index 0000000..b637ffb --- /dev/null +++ b/common/hooks/pre-install/02-script-wrapper.sh @@ -0,0 +1 @@ +../pre-configure/02-script-wrapper.sh \ No newline at end of file diff --git a/common/hooks/pre-install/98-fixup-gir-path.sh b/common/hooks/pre-install/98-fixup-gir-path.sh new file mode 100644 index 0000000..64fd140 --- /dev/null +++ b/common/hooks/pre-install/98-fixup-gir-path.sh @@ -0,0 +1,10 @@ +# This hook fixes the wrong install path of 'gir' files +# when cross building packages. It's a workaround and +# not a proper fix. Remove it once the root cause of the +# problem is fixed. + +hook() { + [ -z "$CROSS_BUILD" ] && return + vmkdir usr/${XBPS_CROSS_TRIPLET} + ln -sf ".." "${PKGDESTDIR}/usr/${XBPS_CROSS_TRIPLET}/usr" +} diff --git a/common/hooks/pre-patch/.empty b/common/hooks/pre-patch/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/pre-pkg/.empty b/common/hooks/pre-pkg/.empty new file mode 100644 index 0000000..e69de29 diff --git a/common/hooks/pre-pkg/03-rewrite-python-shebang.sh b/common/hooks/pre-pkg/03-rewrite-python-shebang.sh new file mode 100644 index 0000000..07162ad --- /dev/null +++ b/common/hooks/pre-pkg/03-rewrite-python-shebang.sh @@ -0,0 +1,40 @@ +# This hook executes the following tasks: +# - rewrites python shebangs with the corresponding python version + +hook() { + local pyver= shebang= off= + + if [ -d ${PKGDESTDIR}/usr/lib/python* ]; then + pyver="$(find ${PKGDESTDIR}/usr/lib/python* -prune -type d | grep -o '[[:digit:]]\.[[:digit:]]\+$')" + fi + + if [ -n "$python_version" ]; then + pyver="$python_version" + fi + + if [ -n "$pyver" ]; then + default_shebang="#!/usr/bin/python${pyver%.*}" + fi + + grep -rlIZ -m1 '^#!.*python' "${PKGDESTDIR}" | + while IFS= read -r -d '' file; do + [ ! -s "$file" ] && continue + + pyinterp=$(sed -n -E -e 2q -e 's@^#!.*([[:space:]]|/)(python([0-9](\.[0-9]+)?)?)([[:space:]]+.*|$)@\2@p' "$file") + [ -z "$pyinterp" ] && continue + + pyver=${pyinterp#python} + if [ -n "$pyver" ]; then + shebang="#!/usr/bin/python${pyver%.*}" + else + shebang="$default_shebang" + fi + + basefile=${file#$PKGDESTDIR} + + [ -n "$shebang" ] || msg_error "python_version missing in template: unable to convert shebang in $basefile\n" + + echo " Shebang converted to '$shebang': $basefile" + sed -i "1s@.*python.*@${shebang}@" -- "$file" + done +} diff --git a/common/hooks/pre-pkg/04-generate-runtime-deps.sh b/common/hooks/pre-pkg/04-generate-runtime-deps.sh new file mode 100644 index 0000000..a291f2c --- /dev/null +++ b/common/hooks/pre-pkg/04-generate-runtime-deps.sh @@ -0,0 +1,171 @@ +# vim: set ts=4 sw=4 et: +# +# This hook executes the following tasks: +# - Generates rdeps file with run-time dependencies for xbps-create(1) +# - Generates shlib-requires file for xbps-create(1) + +add_rundep() { + local dep="$1" i= rpkgdep= _depname= found= + + _depname="$($XBPS_UHELPER_CMD getpkgdepname ${dep} 2>/dev/null)" + if [ -z "${_depname}" ]; then + _depname="$($XBPS_UHELPER_CMD getpkgname ${dep} 2>/dev/null)" + fi + + for i in ${run_depends}; do + rpkgdep="$($XBPS_UHELPER_CMD getpkgdepname $i 2>/dev/null)" + if [ -z "$rpkgdep" ]; then + rpkgdep="$($XBPS_UHELPER_CMD getpkgname $i 2>/dev/null)" + fi + if [ "${rpkgdep}" != "${_depname}" ]; then + continue + fi + $XBPS_UHELPER_CMD cmpver "$i" "$dep" + rval=$? + if [ $rval -eq 255 ]; then + run_depends="${run_depends/${i}/${dep}}" + fi + found=1 + done + if [ -z "$found" ]; then + run_depends+=" ${dep}" + fi +} + +store_pkgdestdir_rundeps() { + if [ -n "$run_depends" ]; then + 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}\n" + done | sort | xargs > ${PKGDESTDIR}/rdeps + fi +} + +hook() { + local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps + + # Disable trap on ERR, xbps-uhelper cmd might return error... but not something + # to be worried about because if there are broken shlibs this hook returns + # error via msg_error(). + trap - ERR + + mapshlibs=$XBPS_COMMONDIR/shlibs + + if [ -n "$noverifyrdeps" ]; then + store_pkgdestdir_rundeps + return 0 + fi + + depsftmp=$(mktemp) || exit 1 + find ${PKGDESTDIR} -type f -perm -u+w > $depsftmp 2>/dev/null + + for f in ${shlib_requires}; do + verify_deps+=" ${f}" + done + + exec 3<&0 # save stdin + exec < $depsftmp + while read f; do + lf=${f#${PKGDESTDIR}} + if [ "${skiprdeps/${lf}/}" != "${skiprdeps}" ]; then + msg_normal "Skipping dependency scan for ${lf}\n" + continue + fi + read -n4 elfmagic < "$f" + if [ "$elfmagic" = $'\177ELF' ]; then + for nlib in $($OBJDUMP -p "$f"|awk '/NEEDED/{print $2}'); do + [ -z "$verify_deps" ] && verify_deps="$nlib" && continue + found=0 + for j in ${verify_deps}; do + [[ $j == $nlib ]] && found=1 && break + done + [[ $found -eq 0 ]] && verify_deps="$verify_deps $nlib" + done + fi + done + exec 0<&3 # restore stdin + rm -f $depsftmp + + # + # Add required run time packages by using required shlibs resolved + # above, the mapping is done thru the common/shlibs file. + # + for f in ${verify_deps}; do + unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found + _f=$(echo "$f"|sed -E 's|\+|\\+|g') + rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)" + rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)" + if [ -z "$rdep" ]; then + # Ignore libs by current pkg + soname=$(find ${PKGDESTDIR} -name "$f") + if [ -z "$soname" ]; then + msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n" + broken_shlibs=1 + else + echo " SONAME: $f <-> $pkgname (ignored)" + fi + continue + elif [ "$rdepcnt" -gt 1 ]; then + unset j found + # Check if shlib is provided by multiple pkgs. + for j in ${rdep}; do + _pkgname=$($XBPS_UHELPER_CMD getpkgname "$j") + # if there's a SONAME matching pkgname, use it. + for x in ${pkgname} ${subpackages}; do + [[ $_pkgname == $x ]] && found=1 && break + done + [[ $found ]] && _rdep=$j && break + done + if [ -z "${_rdep}" ]; then + # otherwise pick up the first one. + for j in ${rdep}; do + [ -z "${_rdep}" ] && _rdep=$j + done + fi + else + _rdep=$rdep + fi + _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null) + _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null) + if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then + msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n" + broken_shlibs=1 + continue + fi + # Check if pkg is a subpkg of sourcepkg; if true, ignore version + # in common/shlibs. + _sdep="${_pkgname}>=${_rdepver}" + for _subpkg in ${subpackages}; do + if [ "${_subpkg}" = "${_pkgname}" ]; then + _sdep="${_pkgname}-${version}_${revision}" + break + fi + done + + if [ "${_pkgname}" != "${pkgname}" ]; then + echo " SONAME: $f <-> ${_sdep}" + sorequires+="${f} " + else + # Ignore libs by current pkg + echo " SONAME: $f <-> ${_rdep} (ignored)" + continue + fi + add_rundep "${_sdep}" + done + # + # If pkg uses any unknown SONAME error out. + # + if [ -n "$broken_shlibs" -a -z "$allow_unknown_shlibs" ]; then + msg_error "$pkgver: cannot guess required shlibs, aborting!\n" + fi + + store_pkgdestdir_rundeps + + if [ -n "${sorequires}" ]; then + echo "${sorequires}" | xargs -n1 | sort | xargs > ${PKGDESTDIR}/shlib-requires + fi +} diff --git a/common/hooks/pre-pkg/05-prepare-32bit.sh b/common/hooks/pre-pkg/05-prepare-32bit.sh new file mode 100644 index 0000000..d0e0565 --- /dev/null +++ b/common/hooks/pre-pkg/05-prepare-32bit.sh @@ -0,0 +1,168 @@ +# This hook creates a new PKGDESTDIR with 32bit files for x86_64. +# +# Variables that can be used in templates: +# - lib32depends: if set, 32bit pkg will use this rather than "depends". +# - lib32disabled: if set, no 32bit pkg will be created. +# - lib32files: additional files to add to the 32bit pkg (abs paths, separated by blanks). +# - lib32symlinks: makes a symlink from lib32 to lib of the specified file (basename). +# - lib32mode: +# * if unset only files for libraries will be copied. +# * if set to "full" all files will be copied. + +hook() { + local destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version} + + # By default always enabled unless "lib32disabled" is set. + if [ -n "$lib32disabled" ]; then + return + fi + # This hook will only work when building for x86. + if [ "$XBPS_TARGET_MACHINE" != "i686" ]; then + return + fi + if [ -z "$lib32mode" ]; then + # Library mode, copy only relevant files to new destdir. + # + # If /usr/lib does not exist don't continue... + # except for devel packages, for which empty 32bit package will be created + if ! [ -d ${PKGDESTDIR}/usr/lib ] && ! [[ ${pkgname} == *-devel ]]; then + return + fi + + mkdir -p ${destdir32}/usr/lib32 + if [ -d ${PKGDESTDIR}/usr/lib ]; then + cp -a ${PKGDESTDIR}/usr/lib/* ${destdir32}/usr/lib32 + fi + + # Only keep shared libs, static libs, and pkg-config files. + find "${destdir32}" -not \( \ + -name '*.pc' -or \ + -name '*.so' -or \ + -name '*.so.*' -or \ + -name '*.a' -or \ + -name '*.la' -or \ + -name '*.o' -or \ + -type d \ + \) -delete + + # Remove empty dirs. + while IFS= read -r -d '' f; do + _dir="${f##${destdir32}}" + [ -z "${_dir}" ] && continue + rmdir --ignore-fail-on-non-empty -p "$f" &>/dev/null + done < <(find ${destdir32} -type d -empty -print0 | sort -uz) + + # Switch pkg-config files to lib32. + if [ -d ${destdir32}/usr/lib32/pkgconfig ]; then + sed -e 's,/usr/lib$,/usr/lib32,g' \ + -e 's,${exec_prefix}/lib$,${exec_prefix}/lib32,g' \ + -i ${destdir32}/usr/lib32/pkgconfig/*.pc + fi + elif [ "$lib32mode" = "full" ]; then + # Full 32bit mode; copy everything to new destdir. + mkdir -p ${destdir32} + cp -a ${PKGDESTDIR}/* ${destdir32}/ + # remove symlink + if [ -h ${destdir32}/usr/lib32 ]; then + rm ${destdir32}/usr/lib32 + fi + # if /usr/lib dir exists move it to lib32. + if [ -d ${destdir32}/usr/lib ]; then + mv ${destdir32}/usr/lib ${destdir32}/usr/lib32 + fi + fi + if [[ ${pkgname} == *-devel ]]; then + mkdir -p ${destdir32} + fi + if [ ! -d ${destdir32} ]; then + return + fi + + # If the rdeps file exist (runtime deps), copy and then modify it for + # 32bit dependencies. + trap - ERR + + : > ${destdir32}/rdeps + + if [ -s "$PKGDESTDIR/rdeps" ]; then + if [ -n "$lib32depends" ]; then + _deps="${lib32depends}" + else + _deps="$(<${PKGDESTDIR}/rdeps)" + fi + for f in ${_deps}; do + unset found pkgn pkgv _shprovides + + pkgn="$($XBPS_UHELPER_CMD getpkgdepname $f)" + if [ -z "${pkgn}" ]; then + pkgn="$($XBPS_UHELPER_CMD getpkgname $f)" + if [ -z "${pkgn}" ]; then + msg_error "$pkgver: invalid dependency $f\n" + fi + pkgv="-$($XBPS_UHELPER_CMD getpkgversion ${f})" + else + pkgv="$($XBPS_UHELPER_CMD getpkgdepversion ${f})" + fi + # If dependency is a development pkg switch it to 32bit. + if [[ $pkgn == *-devel ]]; then + echo " RDEP: $f -> ${pkgn}-32bit${pkgv} (development)" + printf "${pkgn}-32bit${pkgv} " >> ${destdir32}/rdeps + continue + fi + # If dependency does not have "shlib-provides" do not + # change it to 32bit. + for x in ${subpackages}; do + if [ "$x" = "$pkgn" ]; then + found=1 + break + fi + done + if [ -z "$found" ]; then + # Dependency is not a subpkg, check shlib-provides + # via binpkgs. + _shprovides="$($XBPS_QUERY_CMD -R --property=shlib-provides "$pkgn")" + if [ -n "${_shprovides}" ]; then + echo " RDEP: $f -> ${pkgn}-32bit${pkgv} (shlib-provides)" + printf "${pkgn}-32bit${pkgv} " >> ${destdir32}/rdeps + else + echo " RDEP: $f -> ${pkgn}${pkgv} (no shlib-provides)" + printf "${pkgn}${pkgv} " >> ${destdir32}/rdeps + fi + else + if [ -s ${XBPS_DESTDIR}/${pkgn}-${version}/shlib-provides ]; then + # Dependency is a subpkg; check if it provides any shlib + # and convert to 32bit if true. + echo " RDEP: $f -> ${pkgn}-32bit${pkgv} (subpkg, shlib-provides)" + printf "${pkgn}-32bit${pkgv} " >> ${destdir32}/rdeps + else + echo " RDEP: $f -> ${pkgn}${pkgv} (subpkg, no shlib-provides)" + printf "${pkgn}${pkgv} " >> ${destdir32}/rdeps + fi + fi + done + fi + + # Also install additional files set via "lib32files". + for f in ${lib32files}; do + echo "$pkgver: installing additional files: $f ..." + _targetdir=${destdir32}/${f%/*}/ + mkdir -p ${_targetdir/\/usr\/lib/\/usr\/lib32} + cp -a ${PKGDESTDIR}/${f} ${_targetdir/\/usr\/lib/\/usr\/lib32} + done + # Additional symlinks to the native libdir. + for f in ${lib32symlinks}; do + echo "$pkgver: symlinking $f to the native libdir..." + if [ "${f%/*}" != "${f}" ]; then + mkdir -p ${destdir32}/usr/lib{,32}/${f%/*}/ + else + mkdir -p ${destdir32}/usr/lib{,32}/ + fi + ln -sfr ${destdir32}/usr/lib32/$f ${destdir32}/usr/lib/$f + done + # If it's a development pkg add a dependency to the 64bit pkg. + if [[ $pkgn == *-devel ]]; then + echo " RDEP: ${pkgver}" + printf "${pkgver} " >> ${destdir32}/rdeps + fi + printf "\n" >> ${destdir32}/rdeps +} diff --git a/common/hooks/pre-pkg/06-shlib-provides.sh b/common/hooks/pre-pkg/06-shlib-provides.sh new file mode 100644 index 0000000..a09eb6f --- /dev/null +++ b/common/hooks/pre-pkg/06-shlib-provides.sh @@ -0,0 +1,56 @@ +# This hook executes the following tasks: +# - generates shlib-provides file for xbps-create(1) + +collect_sonames() { + local _destdir="$1" f _soname _fname _pattern + local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$" + local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$" + local _tmpfile=$(mktemp) || exit 1 + + if [ ! -d ${_destdir} ]; then + rm -f ${_tmpfile} + return 0 + fi + + # real pkg + find ${_destdir} -type f -name "*.so*" | while read f; do + _fname="${f##*/}" + case "$(file -bi "$f")" in + application/x-sharedlib*|application/x-pie-executable*) + # shared library + _soname=$(${OBJDUMP} -p "$f"|grep SONAME|awk '{print $2}') + # Register all versioned sonames, and + # unversioned sonames only when in libdir. + if [[ ${_soname} =~ ${_versioned_pattern} ]] || + [[ ${_soname} =~ ${_pattern} && + ( -e ${_destdir}/usr/lib/${_fname} || + -e ${_destdir}/usr/lib32/${_fname} ) ]]; then + echo "${_soname}" >> ${_tmpfile} + echo " SONAME ${_soname} from ${f##${_destdir}}" + fi + ;; + esac + done + + for f in ${shlib_provides}; do + echo "$f" >> ${_tmpfile} + done + if [ -s "${_tmpfile}" ]; then + tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides + echo >> ${_destdir}/shlib-provides + fi + rm -f ${_tmpfile} +} + +hook() { + local _destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version} + + if [ -n "$noshlibprovides" ]; then + return 0 + fi + + # native pkg + collect_sonames ${PKGDESTDIR} + # 32bit pkg + collect_sonames ${_destdir32} +} diff --git a/common/hooks/pre-pkg/90-set-timestamps.sh b/common/hooks/pre-pkg/90-set-timestamps.sh new file mode 100644 index 0000000..2113b02 --- /dev/null +++ b/common/hooks/pre-pkg/90-set-timestamps.sh @@ -0,0 +1,10 @@ +# This hook executes the following tasks: +# - sets the timestamps in a package to the commit date + +hook() { + # If SOURCE_DATE_EPOCH is set, set mtimes to that timestamp. + if [ -n "$SOURCE_DATE_EPOCH" ]; then + msg_normal "$pkgver: setting mtimes to %s\n" "$(date --date "@$SOURCE_DATE_EPOCH")" + find $PKGDESTDIR -print0 | xargs -0 touch -h --date "@$SOURCE_DATE_EPOCH" + fi +} diff --git a/common/hooks/pre-pkg/99-pkglint-subpkgs.sh b/common/hooks/pre-pkg/99-pkglint-subpkgs.sh new file mode 100644 index 0000000..240d5ef --- /dev/null +++ b/common/hooks/pre-pkg/99-pkglint-subpkgs.sh @@ -0,0 +1,54 @@ +# vim: set ts=4 sw=4 et: +# +# This hook executes the following tasks: +# - Warns if the main package is in subpackages= +# - Warns if a subpackage is unreachable (never appears in subpackages=) + +hook() { + local subpkgs matches + + # Run this only against the main package + if [ "$pkgname" != "$sourcepkg" ]; then + return 0 + fi + + if [ -z "$subpackages" ]; then + return 0 + fi + + subpkgs=$(get_subpkgs) + + # Sort the strings so they can be compare for equality + subpkgs="$(printf '%s\n' $subpkgs | sort)" + subpackages="$(printf '%s\n' $subpackages | sort)" + + if [ "$subpackages" = "$subpkgs" ]; then + return 0 + fi + + # sed supports comment but let's put them here + # 1: print everything between pairs of <""> in subpackages[+]?="..." + # 2: multiline subpackages="...\n..." + # 2.1: For any line in the middle, i.e. no <"> exists, print it + # 2.2: For the first line, print everything after <"> + # 2.3: For last line, print everything before <"> + matches="$(sed -n -e 's/subpackages.*"\(.*\)"[^"]*$/\1/p' \ + -e '/subpackages[^"]*"[^"]*$/,/"/{ + /"/!p + /subpackages/s/.*"//p + s/".*//p + }' $XBPS_SRCPKGDIR/$pkgname/template | + tr '\v\t\r\n' ' ')" + + for s in $subpkgs; do + case " $matches " in + *" $s "*) ;; + *) msg_warn "${s}_package() defined but will never be built.\n" ;; + esac + done + + case " $matches " in + *" $pkgname "*) + msg_warn "$pkgname is sourcepkg but is in subpackages=.\n" ;; + esac +} diff --git a/common/hooks/pre-pkg/99-pkglint.sh b/common/hooks/pre-pkg/99-pkglint.sh new file mode 100644 index 0000000..a3ed816 --- /dev/null +++ b/common/hooks/pre-pkg/99-pkglint.sh @@ -0,0 +1,213 @@ +# This hook checks for common issues related to void. + +hook() { + local error=0 filename= rev= libname= conflictPkg= conflictFile= + local conflictRev= ignore= found= mapshlibs=$XBPS_COMMONDIR/shlibs + local emptypkg=yes + + set +E + + # Check for forbidden directories that are symlinks in void. + for f in lib bin sbin lib64 lib32 usr/sbin usr/lib64; do + [ -e "${PKGDESTDIR}/${f}" ] || continue + if [ "${pkgname}" = "base-files" ]; then + if [ -L "${PKGDESTDIR}/${f}" ]; then + continue + fi + msg_red "${pkgver}: /${f} must be a symlink.\n" + error=1 + else + msg_red "${pkgver}: /${f} must not exist.\n" + error=1 + fi + done + + 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 + fi + done + + if [ -d ${PKGDESTDIR}/usr/lib/libexec ]; then + # Add exception for kconfig, + # other packages hard-coded path to its files + if [ "${pkgname}" != kconfig ]; then + msg_red "${pkgver}: /usr/lib/libexec directory is not allowed!\n" + error=1 + fi + fi + + for f in "$PKGDESTDIR"/*; do + f="${f##*/}" + case "$f" in + '*') # The filename is exactly '*' + if [ -e "${PKGDESTDIR}/*" ]; then + msg_red "${pkgver}: File /* is not allowed\n" + error=1 + fi + ;; + lib|bin|sbin|lib64|lib32|usr|var|opt|etc|boot|srv) + emptypkg=no + ;; + INSTALL|INSTALL.msg|REMOVE|REMOVE.msg|rdeps|shlib-requires|shlib-provides) + if [ ! -f "${PKGDESTDIR}/$f" ]; then + msg_red "${pkgver}: /${f} is not allowed\n" + error=1 + fi + ;; + *) + msg_red "${pkgver}: /${f} directory is not allowed, remove it!\n" + error=1 + ;; + esac + done + + # Forbid empty packages unless build_style=meta or it is 32bit devel package + if [ "$build_style" != meta ] && [ "$emptypkg" != no ] && [[ ${pkgname} != *-devel-32bit ]]; then + msg_red "${pkgver}: PKGDESTDIR is empty and build_style != meta\n" + error=1 + fi + + # Check that configuration files really exist. + for f in $(expand_destdir "${conf_files}"); do + if [ ! -f "${PKGDESTDIR}/${f}" ]; then + msg_red "${pkgver}: '$f' configuration file not in PKGDESTDIR!\n" + error=1 + fi + done + + # Check for l10n files in usr/lib/locale + if [ -d ${PKGDESTDIR}/usr/lib/locale ]; then + msg_red "${pkgver}: /usr/lib/locale is forbidden, use /usr/share/locale!\n" + error=1 + fi + + # Check for bash completions in etc/bash_completion.d + # should be on usr/share/bash-completion/completions + if [ -d ${PKGDESTDIR}/etc/bash_completion.d ]; then + msg_red "${pkgver}: /etc/bash_completion.d is forbidden. Use /usr/share/bash-completion/completions.\n" + error=1 + fi + + # Prevent packages from installing to these paths in etc, they should use + # their equivalent in usr/lib + for f in udev/{rules.d,hwdb.d} modprobe.d sysctl.d; do + if [ -d ${PKGDESTDIR}/etc/${f} ]; then + msg_red "${pkgver}: /etc/${f} is forbidden. Use /usr/lib/${f}.\n" + error=1 + fi + done + + # Likewise with the comment above but for usr/share + for f in X11/xorg.conf.d gconf/schemas; do + if [ -d ${PKGDESTDIR}/etc/${f} ]; then + msg_red "${pkgver}: /etc/${f} is forbidden. Use /usr/share/${f}.\n" + error=1 + fi + done + + if [ -d ${PKGDESTDIR}/etc/dracut.conf.d ]; then + msg_red "${pkgver}: /etc/dracut.conf.d is forbidden. Use /usr/lib/dracut/dracut.conf.d.\n" + 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 + fi + + if [ -d ${PKGDESTDIR}/usr/dict ]; then + msg_red "${pkgver}: /usr/dict is forbidden. Use /usr/share/dict.\n" + error=1 + fi + + if [ -e ${PKGDESTDIR}/usr/share/glib-2.0/schemas/gschemas.compiled ]; then + msg_red "${pkgver}: /usr/share/glib-2.0/schemas/gschemas.compiled is forbidden. Delete it.\n" + error=1 + fi + + # Forbid files would be generated by mimedb trigger + for f in XMLnamespaces aliases generic-icons globs globs2 icons \ + magic mime.cache subclasses treemagic types version ; do + if [ -f "${PKGDESTDIR}/usr/share/mime/$f" ]; then + msg_red "${pkgver}: /usr/share/mime/$f is forbidden. Delete it.\n" + error=1 + fi + done + + if [ $error -gt 0 ]; then + msg_error "${pkgver}: cannot continue with installation!\n" + fi + + # Check for missing shlibs and SONAME bumps. + if [ ! -s "${PKGDESTDIR}/shlib-provides" ]; then + return 0 + fi + + for filename in $(<${PKGDESTDIR}/shlib-provides); do + rev=${filename#*.so.} + libname=${filename%.so*} + _shlib=$(echo "$libname"|sed -E 's|\+|\\+|g') + _pkgname=$(echo "$pkgname"|sed -E 's|\+|\\+|g') + if [ "$rev" = "$filename" ]; then + _pattern="^${_shlib}\.so[[:blank:]]+${_pkgname}-[^-]+_[0-9]+" + else + _pattern="^${_shlib}\.so\.[0-9]+(.*)[[:blank:]]+${_pkgname}-[^-]+_[0-9]+" + fi + grep -E "${_pattern}" $mapshlibs | { \ + while read conflictFile conflictPkg ignore; do + found=1 + conflictRev=${conflictFile#*.so.} + if [ -n "$ignore" -a "$ignore" != "$XBPS_TARGET_MACHINE" ]; then + continue + elif [ "$rev" = "$conflictRev" ]; then + continue + elif [[ ${rev}.* =~ $conflictRev ]]; then + continue + fi + msg_red "${pkgver}: SONAME bump detected: ${libname}.so.${conflictRev} -> ${libname}.so.${rev}\n" + msg_red "${pkgver}: please update common/shlibs with this line: \"${libname}.so.${rev} ${pkgver}\"\n" + msg_red "${pkgver}: all reverse dependencies should also be revbumped to be rebuilt against ${libname}.so.${rev}:\n" + _revdeps=$($XBPS_QUERY_XCMD -Rs ${libname}.so -p shlib-requires|cut -d ' ' -f1) + for x in ${_revdeps}; do + msg_red " ${x%:}\n" + done + msg_error "${pkgver}: cannot continue with installation!\n" + done + # Try to match provided shlibs in virtual packages. + for f in ${provides}; do + _vpkgname="$($XBPS_UHELPER_CMD getpkgname ${f} 2>/dev/null)" + _spkgname="$(grep "^${filename}" $mapshlibs | cut -d ' ' -f2)" + _libpkgname="$($XBPS_UHELPER_CMD getpkgname ${_spkgname} 2>/dev/null)" + if [ -z "${_spkgname}" -o -z "${_libpkgname}" ]; then + continue + fi + if [ "${_vpkgname}" = "${_libpkgname}" ]; then + found=1 + break + fi + done; + if [ -z "$found" ]; then + _myshlib="${libname}.so" + [ "${_myshlib}" != "${rev}" ] && _myshlib+=".${rev}" + msg_normal "${pkgver}: ${_myshlib} not found in common/shlibs.\n" + fi; + } + done +} diff --git a/common/hooks/pre-pkg/999-collected-rdeps.sh b/common/hooks/pre-pkg/999-collected-rdeps.sh new file mode 100644 index 0000000..67f4a62 --- /dev/null +++ b/common/hooks/pre-pkg/999-collected-rdeps.sh @@ -0,0 +1,7 @@ +# This hook displays resolved dependencies for a pkg. + +hook() { + if [ -e $PKGDESTDIR/rdeps ]; then + echo " $(cat $PKGDESTDIR/rdeps)" + fi +} diff --git a/common/options.description b/common/options.description new file mode 100644 index 0000000..f9e3d0c --- /dev/null +++ b/common/options.description @@ -0,0 +1,108 @@ +desc_option_aalib="Enable support for aalib video output" +desc_option_acl="Enable support for ACLs and Extended Attributes" +desc_option_alsa="Enable support for ALSA" +desc_option_aom="Enable support for the AV1 codec" +desc_option_avahi="Enable support for Avahi" +desc_option_avif="Enable support for avif image format" +desc_option_backtrace="Enable support for backtraces via libunwind" +desc_option_bluetooth="Enable support for bluetooth" +desc_option_cdparanoia="Enable support for CD audio (cdparanoia)" +desc_option_colord="Enable support for colord" +desc_option_consolekit="Enable support for ConsoleKit" +desc_option_cups="Enable support for CUPS" +desc_option_dav1d="Enable support for the AV1 decoder" +desc_option_dbus="Enable support for D-BUS" +desc_option_dri2="Enable support for the DRI2 extension" +desc_option_dri="Enable support for the DRI extension" +desc_option_efi="Enable support for EFI" +desc_option_expat="Enable support for XML via expat" +desc_option_faac="Enable support for FAAC codec" +desc_option_fdk_aac="Enable support for Fraunhofer FDK AAC codec" +desc_option_framebuffer="Enable support for the Framebuffer" +desc_option_gdk_pixbuf="Enable support to use transparency via gdk-pixbuf" +desc_option_geoclue2="Enable support for geolocation (v2)" +desc_option_geoip="Enable support for IP geolocation" +desc_option_gif="Enable support for GIF images" +desc_option_gir="Enable support for gobject introspection data" +desc_option_gles2="Enable support for GLES (v2)" +desc_option_gles="Enable support for GLES (v1)" +desc_option_gnome="Enable support for GNOME" +desc_option_gmic="Enable support for image processing with G'MIC" +desc_option_gnutls="Enable support for SSL with gnutls" +desc_option_gssapi="Enable support for GSSAPI" +desc_option_gstreamer="Enable support for GStreamer" +desc_option_gtk="Enable support for the GTK+2 GUI toolkit" +desc_option_gtk3="Enable support for the GTK+3 GUI toolkit" +desc_option_guile="Enable support for Guile lang" +desc_option_ffmpeg="Enable support for FFmpeg" +desc_option_harfbuzz="enable support for Harfbuzz" +desc_option_idn="Enable support for IDN" +desc_option_imagemagick="Enable support for ImageMagick" +desc_option_jack="Enable support for the JACK sound server" +desc_option_jpeg="Enable support for JPEG images" +desc_option_lame="Enable support for the LAME encoder" +desc_option_ldap="Enable support for LDAP" +desc_option_ldns="Enable support for LDNS DNSSEC library" +desc_option_libao="Enable support for libao sound library" +desc_option_libedit="Enable support for NetBSD's libedit" +desc_option_lua="Enable support for Lua" +desc_option_lz4="Enable support for LZ4 compression format" +desc_option_lzo="Enable support for LZO compression format" +desc_option_microhttpd="Enable support for microhttpd" +desc_option_mpcdec="Enable support for the Musepack decoder" +desc_option_native_build="Enable instruction subsets supported by the build computer" +desc_option_notify="Enable support for desktop notifications (libnotify)" +desc_option_nvenc="Enable support for NVENC codecs" +desc_option_openblas="Enable support for OpenBLAS accelerated linear algebra" +desc_option_opengl="Enable support for OpenGL" +desc_option_openssl="Enable support for SSL with OpenSSL" +desc_option_pam="Enable support for PAM" +desc_option_pdf="Enable support to preview PDF files" +desc_option_perl="Enable support for Perl" +desc_option_png="Enable support for PNG images" +desc_option_portaudio="Enable support for PortAudio" +desc_option_ps="Enable support to preview PS files" +desc_option_pulseaudio="Enable support for the PulseAudio sound server" +desc_option_python="Enable support for Python" +desc_option_qrencode="Enable support for qrencode" +desc_option_qt="Enable support for building the QT UI" +desc_option_raw="Enable support for RAW image files" +desc_option_readline="Enable support for GNU readline" +desc_option_rpi="Enable support for Raspberry Pi" +desc_option_rtmp="Enable support for RTMP" +desc_option_sasl="Enable support for SASL" +desc_option_sdl="Enable support for SDL (1.x)" +desc_option_sdl2="Enable support for SDL (2.x)" +desc_option_seccomp="Enable support for syscall filtering" +desc_option_shoutcast="Enable support for shoutcast" +desc_option_smb="Enable support for SMB protocol" +desc_option_sndio="Enable support for the sndio sound server" +desc_option_snmp="Enable support for SNMP" +desc_option_ssh="Enable support for SSH" +desc_option_ssl="Enable support for SSL" +desc_option_startup_notification="Enable support for desktop notification" +desc_option_static="Enable static linking" +desc_option_svg="Enable support for SVG images" +desc_option_svtav1="Enable support for the SVT-AV1 Encoder and Decoder" +desc_option_tcpwrappers="Enable support for tcpwrappers" +desc_option_tiff="Enable support for TIFF images" +desc_option_upower="Enable support for UPower" +desc_option_usb="Enable support for USB" +desc_option_v4l2="Enable support for V4L2 (Video 4 Linux 2)" +desc_option_vaapi="Enable support for VA-API" +desc_option_vala="Generate bindings for vala" +desc_option_vapoursynth="Enable support for VapourSynth" +desc_option_vdpau="Enable support for VDPAU" +desc_option_vpx="Enable support for VP8/VP9 codecs" +desc_option_vulkan="Enable support for Vulkan" +desc_option_wavpack="Enable support for the Wavpack audio format" +desc_option_wayland="Enable support for the Wayland backend" +desc_option_x11="Enable support for X11" +desc_option_x265="Enable support for the x265 codec" +desc_option_xml="Enable support for XML" +desc_option_xscreensaver="Enable support for libXScrnSaver to determine idle time" +desc_option_zeitgeist="Enable support for ZeitGeist" +desc_option_zimg="Enable support for the zimg image processing library" +desc_option_zstd="Enable support for ZSTD compression format" +desc_option_elogind="Enable support for elogind" +desc_option_drm="Enable support for DRM" diff --git a/common/repo-keys/3d:b9:c0:50:41:a7:68:4c:2e:2c:a9:a2:5a:04:b7:3f.plist b/common/repo-keys/3d:b9:c0:50:41:a7:68:4c:2e:2c:a9:a2:5a:04:b7:3f.plist new file mode 100644 index 0000000..41bc2cb --- /dev/null +++ b/common/repo-keys/3d:b9:c0:50:41:a7:68:4c:2e:2c:a9:a2:5a:04:b7:3f.plist @@ -0,0 +1,12 @@ + + + + + public-key + LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvM1Nrc2p5N01PMmc4UWxsZjdCVQp1aXhFUWlqN3FOSVJrU0hrWWw4SGxxd1hOczFnK1FzbzhGV3dSbDNMbUpTVW5wT1BaOG1sdVdSajd4Y2pLbnVJCnhPRjBtQS8vM0lzTnVId2dYV2RLL0JiT29wNzFLZmt4aEE0WjhwK0hRbmhLMThxUkFPbG9xOGJ6WXZhaGI2NmEKemdWVTVFM1JzRDU4V0M2ZTFOUVdSSGpiMG1TM2h6M1NxVWVWZFVMT20zVzZBRTdYdWlVQVJOSEdyY1ljMXkyKwpxNjBKWHMrVk5sRlMwaGdDdnpqS3phMVg5cWtzQndzTmdaRlhBcXN1MGFKRndYSTEvM2R4ZWxBcUZFbnRMWVFSCjA4NHpaTDFmWDVRMWlacGNEaHVhTWZVREVZQjA4UzdKTTBYKytibkxxVnphVTZzc0RXdGtzbFJaNjNaVStISTUKemk5a0pyc25LcU5Pa3BKSnJTUkRyMGFvRjV2RDRwN20vYWdZKzdTRk5aaDZzOUJ5V0x3NDVFdytwalVVUmp5aQp6T01TSFhEM3YzczhFdzZkV29wbTVQTGUvUEgzZWFiMEVnbG9yVDZhYmRwaCtaVG4zaUxMWVVkSGNmQ1FDN01GCkNmVGl1TWt4SkJpaCtoOEhKaUlBdmpDZjVxdjZiaFpEUHpGRzAwbEpYRUZwNHRpbGp6eTFmbitiMkdLY3BDOWQKUUs4TEc3M0RFaXhacHBmU09IU09MMWYxVlBzZTBRdnl6d2RWc0xzR0dqV0FaZkw4WUdVZDl4Y20yeW5tVzFuNgpKTjl6NE9oZ3lRa21mNUFFUXpYSUxQR0d1MlREUVh5c05IRG0vUnRMMHJPN3cxbFVKSTVYOW1kbEZYd0xUWHI3ClYrU25aK3U5VCtFREg1NTV6WDJDZTgwQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo= + public-key-size + 4096 + signature-by + Void Linux + + diff --git a/common/repo-keys/60:ae:0c:d6:f0:95:17:80:bc:93:46:7a:89:af:a3:2d.plist b/common/repo-keys/60:ae:0c:d6:f0:95:17:80:bc:93:46:7a:89:af:a3:2d.plist new file mode 100644 index 0000000..c1e82a7 --- /dev/null +++ b/common/repo-keys/60:ae:0c:d6:f0:95:17:80:bc:93:46:7a:89:af:a3:2d.plist @@ -0,0 +1,12 @@ + + + + + public-key + LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF2clN6QlpNdmd2T0NJM0FYYk9qYQoycktSa0pTVE0zYy9FalRJZ0NnRFhndW05M0JQQ3RZOE1jRlZvQ1U0T2lYSEdmVG1xMzlCVk5wTHZMSEw5S2sxCnAyNzhTQmhYVk90YkIyRVZtREtudmZJREVUbGRMR3plN3JaTlJKZHR1TjJtWi9UVnJVQjlTMHlRYytJdWY0aHYKMytEOTdWSWRUSkhBN0FTcjA0MjhwcEVHSkd3U1NoWTJYSm05RDVJMEV1R1JXYzE0TUVHN2RJS0ppWWlNMG5FNAp0WW8yL3ZINElGVEhkblZBM2dZaVp5RG5idUNBUi84RVNmVVRVMTNTTkNPZGJ1ZGYzRDVCY3krVWlNREpJM1llCjRNRktCclQ5WmhaK0dzWEJaWTQ4MmxxaVppNkNMNXB0YzlJUUZmOC9lS1phOGphdGtpVkZWZ3JLZU5Sak9UeE4KZldTdTJua3hHTlgrYmhYWXRoaUdXbUpFWThjQ0FQeUZOK0x2NVJldEsyNTZnZGNiMnNrbUVxZWZ2MnpQQyt3VgpXQmJkSDViRDRiWmpuME42Wmw4MXJ2NVJ6RHZudmYrdkQxNGFGVWJaOFFGcXU3NVBiTDR3Nm1ZTTRsZE0vZzBSCjZOWEU4QXo5Qnd4MnREZlllS3V1dHcxRXBQbTJZdkZ5VFViMWNveUF1VEdSeUFhcDFVVEh2ZzlsaFBJSm1oRlEKSjVrQ2cxcUQ3QTMxV2wwUmxuZTZoZ0dvMFpaTko1Y0pNL3YvelNUS0pjdUZnd283SDBoT0dpbDZEZm84OUI0agpHOTZBQ3lQUytEVktQRlhSWXdqL0FrYkhwYVEyZjFGTUFvU3BCcXVEcUhoM3VrazcxS1g2ajE5dDBpRjhEUUxyCnZ0RlNTZElqREEwMmx3ZVY5TmFRcFdzQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo= + public-key-size + 4096 + signature-by + Void Linux + + diff --git a/common/scripts/README.xbps-cycles.md b/common/scripts/README.xbps-cycles.md new file mode 100644 index 0000000..12774e5 --- /dev/null +++ b/common/scripts/README.xbps-cycles.md @@ -0,0 +1,22 @@ +# Cycle detector for void-packages + +This script enumerates dependencies for packages in a +[void-packages repository](https://github.com/void-linux/void-packages) +and identifies build-time dependency cycles. + +For command syntax, run `xbps-cycles.py -h`. Often, it may be sufficient to run +`xbps-cycles.py` with no arguments. By default, the script will look for a +repository at `$XBPS_DISTDIR`; if that variable is not defined, the current +directory is used instead. To override this behavior, use the `-d` option to +provide the path to your desired void-packages clone. + +The standard behavior will be to spawn multiple processes, one per CPU, to +enumerate package dependencies. This is by far the most time-consuming part of +the execution. To override the degree of parallelism, use the `-j` option. + +Dependencies can be cached on disk, one file per package, in directory +passed with `-c` option. On next execution with same option, dependencies are +read from file rather than computed. + +Failures should be harmless but, at this early stage, unlikely to be pretty or +even helpful. diff --git a/common/scripts/check-custom-licenses b/common/scripts/check-custom-licenses new file mode 100755 index 0000000..da21c58 --- /dev/null +++ b/common/scripts/check-custom-licenses @@ -0,0 +1,9 @@ +#!/bin/bash +# checks for licenses that are no longer custom in packages + +mapfile -t licenses < common/travis/license.lst + +for lic in "${licenses[@]}"; do + grep -rl "custom:$lic"'[,"]' --include=template srcpkgs \ + | cut -d/ -f2 | xargs -rn1 printf "%s: $lic is no longer custom\n" +done diff --git a/common/scripts/lint-commits b/common/scripts/lint-commits new file mode 100755 index 0000000..56f16ff --- /dev/null +++ b/common/scripts/lint-commits @@ -0,0 +1,66 @@ +#!/bin/sh + +die() { + printf '%s\n' "$*" >&2 + exit 1 +} + +command -v git >/dev/null 2>&1 || +die "neither chroot-git nor git could be found!" + +rev_parse() { + if [ -n "$1" ]; then + git rev-parse --verify "$1" + else + shift + while test "$#" != 0 + do + git rev-parse --verify "$1" 2>/dev/null && return + shift + done + return 1 + fi +} + +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 rev-list --abbrev-commit $base..$tip) +do + git cat-file commit "$cmt" | + awk -vC="$cmt" ' + # skip header + /^$/ && !msg { msg = 1; next } + /^author .*noreply/ && !msg { + print "::error title=Commit Lint::" C ": authored by noreply email"; + ret=1; + } + /^author .*(localhost|localdomain|[(]none[)])/ && !msg { + print "::error title=Commit Lint::" C ": authored by localhost email"; + ret=1; + } + !msg { next } + # 3: long-line-is-banned-except-footnote-like-this-for-url + (NF > 2) && (length > 80) { + print "::error title=Commit Lint::" C ": long line: " $0 + ret = 1 + } + !subject { + 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 "::warning title=Commit Lint::" C ": not new package/update/removal?" + # } + subject = 1; next + } + /^$/ { body = 1; next } + !body { + print "::error title=Commit Lint::" C ": second line must be blank" + ret = 1 + } + END { exit ret } + ' || status=1 +done +exit $status diff --git a/common/scripts/lint-conflicts b/common/scripts/lint-conflicts new file mode 100755 index 0000000..8c7abfd --- /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}/bootstrap" "--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 new file mode 100755 index 0000000..f900d90 --- /dev/null +++ b/common/scripts/lint-version-change @@ -0,0 +1,113 @@ +#!/bin/sh + +# when $3 is empty, template is read from working directory +template="$1" base_rev="$2" tip_rev="$3" +status=0 + +die() { + printf '%s\n' "$*" >&2 + exit 1 +} + +if ! [ "$base_rev" ]; then + die "usage: $0 TEMPLATE BASE-REVISION [TIP-REVISION]" +fi + +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" + revspec="[^:]*:" + fi + $maybe_git grep -P -Hn -e "$rx" "$template_path" | + grep -v -P -e "[^:]*:[^:]*:\s*#" | + sed "s/^${revspec}\([^:]*:[^:]*:\)\(.*\)/\1 $msg/" +} + +show_template() { + rev="$1" + if [ "$rev" ]; then + git cat-file blob "${rev}:${template}" 2>/dev/null + else + cat "${template}" 2>/dev/null + fi +} + +show_template_var() { + rev="$1" var="$2" + ( + show_template "$rev" + printf '%s\n' "printf '%s\\n' \"\$${var}\"" + ) | bash 2>/dev/null +} + +revision_reset() { + [ "${revision}" = 1 ] && return + if [ "$prev_version" ]; then + case "$prev_reverts" in + *"$version"_*) return + esac + action=update + else + action=creation + fi + scan "^revision=" "revision should be set to 1 on ${action}" + status=1 +} + +reverts_on_downgrade() { + [ "$version" ] || return + case "$reverts" in + *"$prev_version"_*) ;; + *) + scan "^version=" "missing reverts= for downgrade $prev_version to $version" + status=1 + 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)" + reverts="$(show_template_var "$tip_rev" reverts)" + prev_version="$(show_template_var "$base_rev" version)" + prev_reverts="$(show_template_var "$base_rev" reverts)" + xbps-uhelper cmpver "$version" "$prev_version" + case "$?" in + 1) revision_reset;; + -1|255) reverts_on_downgrade;; + esac + check_revert +} + +version_change + +exit $status 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/scripts/xbps-cycles.py b/common/scripts/xbps-cycles.py new file mode 100755 index 0000000..9c0c128 --- /dev/null +++ b/common/scripts/xbps-cycles.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python3 + +import os +import sys +import glob +import subprocess +import multiprocessing + +from argparse import ArgumentParser + +import networkx as nx + + +def enum_depends(pkg, xbpsdir, cachedir): + ''' + Return a pair (pkg, [dependencies]), where [dependencies] is the list + of dependencies for the given package pkg. The argument xbpsdir should + be a path to a void-packages repository. Dependencies will be + determined by invoking + + /xbps-src show-build-deps + + unless /deps- file exist, in that case it is read. + + If the return code of this call nonzero, a message will be printed but + the package will treated as if it has no dependencies. + ''' + if cachedir: + cachepath = os.path.join(cachedir, 'deps-' + pkg) + try: + with open(cachepath) as f: + return pkg, [l.strip() for l in f] + except FileNotFoundError: + pass + + cmd = [os.path.join(xbpsdir, 'xbps-src'), 'show-build-deps', pkg] + + try: + deps = subprocess.check_output(cmd) + except subprocess.CalledProcessError as err: + print('xbps-src failed to find dependencies for package', pkg) + deps = [ ] + else: + deps = [d for d in deps.decode('utf-8').split('\n') if d] + if cachedir: + with open(cachepath, 'w') as f: + for d in deps: + print(d, file=f) + + return pkg, deps + + +def find_cycles(depmap, xbpsdir): + ''' + For a map depmap: package -> [dependencies], construct a directed graph + and identify any cycles therein. + + The argument xbpsdir should be a path to the root of a void-packages + repository. All package names in depmap will be appended to the path + /srcpkgs and reduced with os.path.realpath to coalesce + subpackages. + ''' + G = nx.DiGraph() + + for i, deps in depmap.items(): + path = os.path.join(xbpsdir, 'srcpkgs', i) + i = os.path.basename(os.path.realpath(path)) + + for j in deps: + path = os.path.join(xbpsdir, 'srcpkgs', j.strip()) + j = os.path.basename(os.path.realpath(path)) + G.add_edge(i, j) + + for c in nx.strongly_connected_components(G): + if len(c) < 2: continue + pkgs = nx.to_dict_of_lists(G, c) + + p = min(pkgs.keys()) + cycles = [ ] + while True: + cycles.append(p) + + # Cycle is complete when package is not in map + try: deps = pkgs.pop(p) + except KeyError: break + + # Any of the dependencies here contributes to a cycle + p = min(deps) + if len(deps) > 1: + print('Multipath: {} -> {}, choosing first'.format(p, deps)) + + if cycles: + print('Cycle: ' + ' -> '.join(cycles) + '\n') + + +if __name__ == '__main__': + parser = ArgumentParser(description='Cycle detector for xbps-src') + parser.add_argument('-j', '--jobs', default=None, + type=int, help='Number of parallel jobs') + parser.add_argument('-c', '--cachedir', + default=None, help='''Directory to use as cache for xbps-src show-build-deps. Directory must exist already.''') + parser.add_argument('-d', '--directory', + default=None, help='Path to void-packages repo') + + args = parser.parse_args() + + if not args.directory: + try: args.directory = os.environ['XBPS_DISTDIR'] + except KeyError: args.directory = '.' + + cachedir = args.cachedir + + pool = multiprocessing.Pool(processes = args.jobs) + + pattern = os.path.join(args.directory, 'srcpkgs', '*') + depmap = dict(pool.starmap(enum_depends, + ((os.path.basename(g), args.directory, cachedir) + for g in glob.iglob(pattern)))) + + find_cycles(depmap, args.directory) diff --git a/common/shlibs b/common/shlibs new file mode 100644 index 0000000..ff764f4 --- /dev/null +++ b/common/shlibs @@ -0,0 +1,4324 @@ +# --*-- shell --*-- +# +# This file represents a map between shared libraries and packages +# in XBPS. Every shared library installed by a package must be +# listed here and mapped to a binary package. +# +# The first field lists the exact SONAME embedded in binaries. +# +# The second field lists the package/version tuple containing the SONAME. +# The version component is used as greater than or equal to that version +# in resulting binary package. +# +# The third field (optional) specifies that shared library should not be used +# to perform checks of soname bumps. +# +# PLEASE NOTE: when multiple packages provide the same SONAME, the first +# one (order top->bottom) is preferred over the next ones. +# +libc.so musl-1.1.24_7 +libc.so.6 glibc-2.36_1 +libm.so.6 glibc-2.36_1 +libpthread.so.0 glibc-2.36_1 +librt.so.1 glibc-2.36_1 +libdl.so.2 glibc-2.36_1 +ld-linux-x86-64.so.2 glibc-2.36_1 x86_64 +ld-linux.so.2 glibc-2.36_1 i686 +ld-linux.so.3 glibc-2.36_1 armv5tel +ld-linux-aarch64.so.1 glibc-2.36_1 aarch64 +ld-linux-riscv64-lp64d.so.1 glibc-2.36_1 riscv64 +ld64.so.2 glibc-2.36_1 ppc64 +ld.so.1 glibc-2.36_1 mips +ld.so.1 glibc-2.36_1 ppc +ld-linux-armhf.so.3 glibc-2.36_1 +libresolv.so.2 glibc-2.36_1 +libanl.so.1 glibc-2.36_1 +libthread_db.so.1 glibc-2.36_1 +libutil.so.1 glibc-2.36_1 +libnsl.so.1 glibc-2.36_1 +libnss_db.so.2 glibc-2.36_1 +libnss_files.so.2 glibc-2.36_1 +libnss_compat.so.2 glibc-2.36_1 +libnss_dns.so.2 glibc-2.36_1 +libnss_hesiod.so.2 glibc-2.36_1 +libcrypt.so.1 glibc-2.36_1 +libBrokenLocale.so.1 glibc-2.36_1 +libSimGearCore.so.2020.3.17 simgear-2020.3.17_1 +libSimGearScene.so.2020.3.17 simgear-2020.3.17_1 +libmemusage.so glibc-2.36_1 +libSegFault.so glibc-2.36_1 +libpcprofile.so glibc-2.36_1 +libcidn.so.1 glibc-2.36_1 +libmvec.so.1 glibc-2.36_1 +libcddgmp.so.0 cddlib-0.94m_1 +libcdd.so.0 cddlib-0.94m_1 +libz.so.1 zlib-1.2.3_1 +libb2.so.1 libb2-0.98.1_1 +libbz2.so.1 bzip2-1.0.5_1 +libarchive.so.13 libarchive-3.5.1_2 +libcc1.so.0 gcc-6.2.1_1 +libcc1plugin.so.0 gcc-6.2.1_1 +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.21 libgo-12.2.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 +libmpfr.so.6 mpfr-4.0.0_1 +libppl.so.14 ppl-1.2_1 +libppl_c.so.4 ppl-0.11_1 +libstdc++.so.6 libstdc++-4.4.0_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.8 fplll-5.4.4_1 +libpanelw.so.6 ncurses-libs-5.8_1 ignore +libmenuw.so.6 ncurses-libs-5.8_1 ignore +libobjc.so.4 libobjc-4.7.3_12 +libgomp.so.1 libgomp-4.4.0_1 +libgps.so.29 gpsd-3.23_1 +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.76.0_1 +libglib-2.0.so.0 glib-2.76.0_1 +libgmodule-2.0.so.0 glib-2.76.0_1 +libgio-2.0.so.0 glib-2.76.0_1 +libgobject-2.0.so.0 glib-2.76.0_1 +libwt.so.4.10.0 wt-4.10.0_1 +libwtdbo.so.4.10.0 wt-4.10.0_1 +libwtdbosqlite3.so.4.10.0 wt-4.10.0_1 +libwthttp.so.4.10.0 wt-4.10.0_1 +libwttest.so.4.10.0 wt-4.10.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 +libpangoxft-1.0.so.0 pango-xft-1.36.3_2 +libpango-1.0.so.0 pango-1.24.0_1 +libcairo.so.2 cairo-1.8.6_1 +libcairo-gobject.so.2 cairo-1.8.6_1 +libcairo-script-interpreter.so.2 cairo-1.8.6_1 +libgdk-x11-2.0.so.0 gtk+-2.16.0_1 +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.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 +libXpresent.so.1 libXpresent-1.0.0_1 +libexpat.so.1 expat-2.0.0_1 +libjpeg.so.8 libjpeg-turbo-1.3.0_2 +libturbojpeg.so.0 libjpeg-turbo-1.3.0_2 +libpng16.so.16 libpng-1.6.2_1 +libXrender.so.1 libXrender-0.9.4_1 +libXrandr.so.2 libXrandr-1.3.0_1 +libGLU.so.1 glu-9.0.0_1 +libGL.so.1 libGL-7.11_1 +libEGL.so.1 libEGL-7.11_1 +libGLESv1_CM.so.1 libGLES-1.0_1 +libGLESv2.so.2 libGLES-1.0_1 +libEGL.so rpi-userland-0.0.0.0.20150907_1 +libGLESv2.so rpi-userland-0.0.0.0.20150907_1 +libGLESv2.so opera-55.0.2994.37_2 +libGLESv2.so discord-0.0.7_1 +libGLESv2.so keybase-desktop-3.1.2_1 +libGLESv2.so Signal-Desktop-1.23.2_1 +libGLESv2.so slack-desktop-3.4.2_1 +libbrcmEGL.so rpi-userland-20180103_2 +libbrcmGLESv2.so rpi-userland-20180103_2 +libbrcmOpenVG.so rpi-userland-20180103_2 +libnvidia-ml.so.1 nvidia-libs-346.47_1 ignore +libnvidia-ml.so.1 nvidia390-libs-390.87_1 ignore +libnvidia-ml.so.1 nvidia470-libs-470.103.01_1 ignore +libnvidia-tls.so.346.47 nvidia-libs-346.47_1 ignore +libnvidia-glcore.so.346.47 nvidia-libs-346.47_1 ignore +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.157 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 +libxlsxwriter.so.5 libxlsxwriter-1.1.5_1 +libfuse.so.2 fuse-2.8.1_1 +libfuse3.so.3 fuse3-3.1.0_1 +libXext.so.6 libXext-1.0.5_1 +libulockmgr.so.1 fuse-2.9.7_1 +libXcomposite.so.1 libXcomposite-0.4.0_1 +libXdamage.so.1 libXdamage-1.1.1_1 +libXfixes.so.3 libXfixes-4.0.3_1 +libXinerama.so.1 libXinerama-1.0.3_1 +libSM.so.6 libSM-1.1.0_1 +libICE.so.6 libICE-1.0.5_1 +libXau.so.6 libXau-1.0.4_1 +libexslt.so.0 libxslt-1.1.24_1 +libxslt.so.1 libxslt-1.1.24_1 +libstartup-notification-1.so.0 startup-notification-0.10_1 +libwnck-3.so.0 libwnck-2.91.90_1 +libnl.so.1 libnl-1.1_1 +libnl-3.so.200 libnl3-3.2.1_1 +libnl-route-3.so.200 libnl3-3.2.1_1 +libnl-idiag-3.so.200 libnl3-3.2.28_1 +libnl-nf-3.so.200 libnl3-3.2.1_1 +libnl-genl-3.so.200 libnl3-3.2.1_1 +libnl-cli-3.so.200 libnl3-3.2.1_1 +libreadline.so.8 libreadline8-8.0_1 +libhistory.so.8 libhistory8-8.0_1 +libxfconf-0.so.3 xfconf-4.13.7_1 +libxfce4util.so.7 libxfce4util-4.18.0_1 +libxfce4panel-2.0.so.4 libxfce4panel-4.18.0_1 +libgdbm.so.6 gdbm-1.16_1 +libgdbm_compat.so.4 gdbm-1.10_1_1 +libintl.so.8 gettext-libs-0.19.2_1 +libgettextlib-0.21.so gettext-0.21_3 +libgettextsrc-0.21.so gettext-0.21_3 +libtextstyle.so.0 gettext-0.21_3 +libgettextpo.so.0 gettext-0.21_3 +libattr.so.1 attr-2.4.43_1 +libacl.so.1 acl-2.2.47_1 +libpython2.7.so.1.0 python-2.7.18_3 +libffi.so.7 libffi-3.3_1 +libffcall.so.0 ffcall-2.1_1 +libavcall.so.1 ffcall-2.1_1 +libtrampoline.so.1 ffcall-2.1_1 +libcallback.so.1 ffcall-2.1_1 +libcrack.so.2 libcracklib-2.8.22_2 +libpam.so.0 pam-libs-1.1.6_3 +libpamc.so.0 pam-libs-1.1.6_3 +libpam_misc.so.0 pam-libs-1.1.6_3 +libcap.so.2 libcap-2.16_1 +libpsx.so.2 libcap-2.45_1 +liblzma.so.5 liblzma-5.0.0_1 +libuuid.so.1 libuuid-2.18_1 +libblkid.so.1 libblkid-2.18_1 +libidn.so.12 libidn-1.35_1 +libusb-1.0.so.0 libusb-1.0.0_1 +libusb-0.1.so.4 libusb-compat-0.1.0_1 +libpci.so.3 pciutils-3.7.0_1 +libpcre.so.1 libpcre-8.30_1 +libpcreposix.so.0 libpcre-7.8_1 +libpcrecpp.so.0 libpcrecpp-7.8_1 +libgirepository-gimarshallingtests-1.0.so libgirepository-1.30_1 +libgirepository-everything-1.0.so libgirepository-1.30_1 +libgirepository-1.0.so.1 libgirepository-1.30_1 +libudev.so.0 libudev0-shim-1_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 +libss.so.2 e2fsprogs-libs-1.41.5_1 +libiw.so.29 wireless_tools-29_1 +libpopt.so.0 popt-1.15_1 +libtasn1.so.6 libtasn1-3.2_1 +libgpg-error.so.0 libgpg-error-1.6_1 +liblzo2.so.2 lzo-2.03_1 +libgcrypt.so.20 libgcrypt-1.6.1_1 +libgnutls.so.30 gnutls-3.4.13_1 +libgnutlsxx.so.30 gnutls-3.7.4_1 +libgnutls-dane.so.0 gnutls-3.6.12_1 +libdevmapper.so.1.02 device-mapper-2.02.110_1 +libdevmapper-event.so.1.02 device-mapper-2.02.110_1 +libdevmapper-event-lvm2.so.2.02 device-mapper-2.02.110_1 +liblvm2cmd.so.2.02 device-mapper-2.02.54_1 +libprop.so.0 proplib-0.1_1 +libfontenc.so.1 libfontenc-1.0.4_1 +libx86.so.1 libx86-1.1_1 +libxcb-render.so.0 libxcb-1.2_1 +libxcb-glx.so.0 libxcb-1.2_1 +libxcb-composite.so.0 libxcb-1.2_1 +libxcb-randr.so.0 libxcb-1.2_1 +libxcb-shape.so.0 libxcb-1.2_1 +libxcb-sync.so.1 libxcb-1.10_1 +libxcb-shm.so.0 libxcb-1.2_1 +libxcb-screensaver.so.0 libxcb-1.2_1 +libxcb-xprint.so.0 libxcb-1.2_1 +libxcb-res.so.0 libxcb-1.2_1 +libxcb.so.1 libxcb-1.2_1 +libxcb-damage.so.0 libxcb-1.2_1 +libxcb-dpms.so.0 libxcb-1.2_1 +libxcb-record.so.0 libxcb-1.2_1 +libxcb-xtest.so.0 libxcb-1.2_1 +libxcb-xv.so.0 libxcb-1.2_1 +libxcb-xf86dri.so.0 libxcb-1.2_1 +libxcb-xinerama.so.0 libxcb-1.2_1 +libxcb-dri2.so.0 libxcb-1.2_1 +libxcb-xevie.so.0 libxcb-1.2_1 +libxcb-xfixes.so.0 libxcb-1.2_1 +libxcb-xvmc.so.0 libxcb-1.2_1 +libxcb-xkb.so.1 libxcb-1.10_1 +libxcb-xinput.so.0 libxcb-1.10_1 +libxcb-dri3.so.0 libxcb-1.10_1 +libxcb-present.so.0 libxcb-1.10_1 +libxcb-imdkit.so.1 xcb-imdkit-1.0.2_1 +libXdmcp.so.6 libXdmcp-1.0.2_1 +libpolkit-gobject-1.so.0 polkit-0.99_1 +libpolkit-agent-1.so.0 polkit-0.99_1 +libpolkit-backend-1.so.0 polkit-0.99_1 +libXt.so.6 libXt-1.0.5_1 +libXtst.so.6 libXtst-1.0.3_1 +libxkbfile.so.1 libxkbfile-1.0.5_1 +libXpm.so.4 libXpm-3.5.7_1 +libXmu.so.6 libXmu-1.0.4_1 +libXmuu.so.1 libXmu-1.0.4_1 +libdrm.so.2 libdrm-2.4.6_1 +libdrm_radeon.so.1 libdrm-2.4.6_1 +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 +libdrm_etnaviv.so.1 libdrm-2.4.113_2 +libXxf86vm.so.1 libXxf86vm-1.0.2_1 +libXi.so.6 libXi-1.2.1_1 +libdmx.so.1 libdmx-1.0.2_1 +libXRes.so.1 libXres-1.0.3_1 +libxreaderdocument.so.3 libxreader-1.6.1_1 +libxreaderview.so.3 libxreader-1.6.1_1 +libpciaccess.so.0 libpciaccess-0.10.5_1 +libpixman-1.so.0 pixman-0.14.0_1 +libXaw.so.6 libXaw-1.0.5_1 ignore +libXaw.so.7 libXaw-1.0.5_1 ignore +libXaw6.so.6 libXaw-1.0.5_1 +libXaw7.so.7 libXaw-1.0.5_1 +libXft.so.2 libXft-2.1.13_1 +libXcursor.so.1 libXcursor-1.1.9_1 +libXxf86dga.so.1 libXxf86dga-1.0.2_1 +libXp.so.6 libXp-1.0.0_1 +libXv.so.1 libXv-1.0.4_1 +libXvMC.so.1 libXvMC-1.0.4_1 +libXvMCW.so.1 libXvMC-1.0.4_1 +libxcb-errors.so.0 xcb-util-errors-1.0_1 +libxcb-icccm.so.4 xcb-util-wm-0.3.9_1 +libxcb-ewmh.so.2 xcb-util-wm-0.3.9_1 +libxcb-aux.so.0 xcb-util-0.3.4_1 +libxcb-image.so.0 xcb-util-image-0.3.9_1 +libxcb-reply.so.1 xcb-util-0.3.4_1 +libxcb-keysyms.so.1 xcb-util-keysyms-0.3.9_1 +libxcb-property.so.1 xcb-util-0.3.4_1 +libxcb-atom.so.1 xcb-util-0.3.4_1 +libxcb-event.so.1 xcb-util-0.3.4_1 +libxcb-util.so.1 xcb-util-0.3.9_1 +libtiff.so.6 tiff-4.5.0_1 +libtiffxx.so.6 tiff-4.5.0_1 +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 +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 +libopenmpt.so.0 libopenmpt-0.4.11_1 +libogg.so.0 libogg-1.3.0_1 +libvorbis.so.0 libvorbis-1.2.1rc1_1 +libvorbisenc.so.2 libvorbis-1.2.1rc1_1 +libvorbisfile.so.3 libvorbis-1.2.1rc1_1 +libtheora.so.0 libtheora-1.0_1 +libtheoradec.so.1 libtheora-1.0_1 +libtheoraenc.so.1 libtheora-1.0_1 +libcdda_interface.so.0 libcdparanoia-10.2_10 +libcdda_paranoia.so.0 libcdparanoia-10.2_10 +libasound.so.2 alsa-lib-1.0.20_1 +libatopology.so.2 alsa-lib-1.2.1_1 +libvisual-0.4.so.0 libvisual-0.4.0_1 +libxfsm-4.6.so.0 xfce4-session-4.9.1_1 +libxklavier.so.16 libxklavier-5.0_1 +liblcms.so.1 lcms-1.18_1 +libgd.so.3 gd-2.1.0_1 +libcroco-0.6.so.3 libcroco-0.6.2_1 +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 +libltdl.so.7 libltdl-2.2.6_1 +libpoppler.so.128 libpoppler-23.05.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 +libtcl8.6.so tcl-8.6.0_1 +libtk8.6.so tk-8.6.1_3 +libsqlite3.so.0 sqlite-3.38.0_1 +libIDL-2.so.0 libIDL-0.8.13_1 +libnspr4.so nspr-4.8_1 +libplc4.so nspr-4.8_1 +libplds4.so nspr-4.8_1 +libsoftokn3.so nss-3.12.4_1 +libssl3.so nss-3.12.4_1 +libnssutil3.so nss-3.12.4_1 +libsmime3.so nss-3.12.4_1 +libfreebl3.so nss-3.12.4_1 +libnssdbm3.so nss-3.12.4_1 +libnssckbi.so nss-3.12.4_1 +libnss3.so nss-3.12.4_1 +libcurl.so.4 libcurl-7.75.0_2 +libdaemon.so.0 libdaemon-0.14_1 +libavahi-common.so.3 avahi-libs-0.6.25_1 +libavahi-core.so.7 avahi-libs-0.6.25_1 +libavahi-client.so.3 avahi-libs-0.6.25_1 +libavahi-gobject.so.0 avahi-glib-libs-0.6.25_1 +libavahi-glib.so.1 avahi-glib-libs-0.6.25_1 +libdns_sd.so.1 avahi-compat-libs-0.6.25_1 +libhowl.so.0 avahi-compat-libs-0.6.25_1 +libavahi-ui.so.0 avahi-ui-libs-0.6.25_1 +libavahi-ui-gtk3.so.0 avahi-ui-libs-gtk3-0.6.25_1 +libavahi-libevent.so.1 avahi-libevent-libs-0.8_1 +libavahi-qt5.so.1 avahi-qt5-libs-0.8_1 +libmp4v2.so.2 libmp4v2-2.0.0_1 +libfaac.so.0 faac-1.28_1 +libfaad.so.2 faad2-2.7_1 +libfaad_drm.so.2 faad2-2.8.0_1 +libid3tag.so.0 libid3tag-0.15.1b_1 +libgif.so.7 giflib-5.1.0_1 +libImlib2.so.1 imlib2-1.4.2_1 +libmp3lame.so.0 lame-3.98.2_1 +libavdevice.so.58 libavdevice-4.0_1 +libavformat.so.58 libavformat-4.0_1 +libswscale.so.5 libswscale-4.0_1 +libswresample.so.3 libswresample-4.0_1 +libavresample.so.4 libavresample-4.0_1 +libpostproc.so.55 libpostproc-4.0_1 +libavcodec.so.58 libavcodec-4.0_1 +libavutil.so.56 libavutil-4.0_1 +libavfilter.so.7 libavfilter-4.0_1 +libSDL-1.2.so.0 SDL-1.2.14_1 +libSDL_image-1.2.so.0 SDL_image-1.2.10_1 +libx264.so.157 x264-20190507.2245_1 +libxvidcore.so.4 xvidcore-1.2.2_1 +libtag.so.1 taglib-1.6.1_1 +libtag-extras.so.1 taglib-extras-1.0.1_1 +libtag_c.so.0 taglib-1.6.1_1 +libfribidi.so.0 fribidi-0.19.2_1 +liba52.so.0 liba52-0.7.4_1 +libcddb.so.2 libcddb-1.3.2_1 +libiso9660.so.11 libcdio-2.0.0_1 +libudf.so.0 libcdio-0.83_1 +libcdio_cdda.so.2 libcdio-paranoia-10.2_1 +libcdio_paranoia.so.2 libcdio-paranoia-10.2_1 +libiso9660++.so.0 libcdio-0.83_1 +libcdio++.so.1 libcdio-2.0.0_1 +libcdio.so.19 libcdio-2.1.0_1 +libmpcdec.so.5 libmpcdec-1.2.6_1 +libproxy.so.1 libproxy-0.4.6_1 +libmoar.so MoarVM-2015.11_1 +libFLAC.so.8 libflac-1.2.1_1 +libFLAC++.so.6 libflac-1.2.1_1 +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.9.2 mtxclient-0.9.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 +libdvbpsi.so.10 libdvbpsi-1.3.1_1 +libdca.so.0 libdca-0.0.5_1 +libdex-1.so.1 libdex-0.2.0_1 +libmpeg2.so.0 libmpeg2-0.5.1_1 +libmpeg2convert.so.0 libmpeg2-0.5.1_1 +libmng.so.2 libmng-2.0.2_1 +libQgpsmm.so.29 gpsd-qt-3.23_1 +libsysfs.so.2 libsysfs-2.1.0_1 +libsensors.so.5 libsensors-3.5.0_1 +libcap-ng.so.0 libcap-ng-0.6.2_1 +libphysfs.so.1 physfs-2.0.0_1 +libSDL_ttf-2.0.so.0 SDL_ttf-2.0.9_1 +libKScreenLocker.so.5 kscreenlocker-5.8.4_1 +libparted.so.2 libparted-3.1_1 +libparted-fs-resize.so.0 libparted-3.1_1 +libntfs-3g.so.89 ntfs-3g-2021.8.22_1 +libruby.so.3.2 ruby-3.2.0_1 +librw.so.0 rankwidth-0.9_1 +libprocessui.so.9 libksysguard-5.18.90_1 +libksignalplotter.so.9 libksysguard-5.18.90_1 +libksgrd.so.9 libksysguard-5.18.90_1 +libprocesscore.so.9 libksysguard-5.18.90_1 +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 +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 +libxenhypfs.so.1 xen-libs-4.14.0_1 +libxlutil.so.4.14 xen-libs-4.14.0_1 +libxenlight.so.4.14 xen-libs-4.14.0_1 +libxenevtchn.so.1 xen-libs-4.10.0_1 +libxengnttab.so.1 xen-libs-4.10.0_1 +libxendevicemodel.so.1 xen-libs-4.10.0_1 +libxenforeignmemory.so.1 xen-libs-4.10.0_1 +libxentoolcore.so.1 xen-libs-4.10.0_1 +libxenstore.so.3.0 xen-libs-4.10.0_1 +libxentoollog.so.1 xen-libs-4.10.0_1 +libxencall.so.1 xen-libs-4.10.0_1 +libxenvchan.so.4.14 xen-libs-4.14.0_1 +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.23.04.2 libkate-23.04.2_1 +libKF5SyntaxHighlighting.so.5 syntax-highlighting-5.29.0_1 +libKPim5Libkleo.so.5 libkleo-23.04.0_1 +libKPim5GrantleeTheme.so.5 grantleetheme-23.04.0_1 +libKPim5IMAP.so.5 kimap-23.04.0_1 +libKPim5Ldap.so.5 kldap-23.04.0_1 +libKF5CalendarCore.so.5 kcalendarcore-5.63.0_1 +libKPim5AkonadiSearchDebug.so.5 akonadi-search-23.04.0_1 +libKPim5AkonadiSearchCore.so.5 akonadi-search-23.04.0_1 +libKPim5AkonadiSearchPIM.so.5 akonadi-search-23.04.0_1 +libKPim5AkonadiSearchXapian.so.5 akonadi-search-23.04.0_1 +libKPim5LibkdepimAkonadi.so.5 libkdepim-23.04.0_1 +libKPim5Libkdepim.so.5 libkdepim-23.04.0_1 +libKF5PimCommon.so.5 pimcommon-17.12.3_1 +libKF5PimCommonAkonadi.so.5 pimcommon-17.12.3_1 +libKF5PimCommonAutoCorrection.so.5 pimcommon-22.12.1_1 +libKPim5Gravatar.so.5 libgravatar-23.04.0_1 +libKSaneCore.so.1 ksanecore-22.12.1_1 +libKF5Sane.so.5 libksane-18.04.2_1 +libKPim5SMTP.so.5 ksmtp-23.04.0_1 +libKPim5MailTransport.so.5 kmailtransport-23.04.0_1 +libKPim5MailTransportAkonadi.so.5 kmailtransport-23.04.0_1 +libKPim5Mbox.so.5 kmbox-23.04.0_1 +libKPim5MessageComposer.so.5 messagelib-23.04.0_1 +libKPim5MessageList.so.5 messagelib-23.04.0_1 +libKPim5TemplateParser.so.5 messagelib-23.04.0_1 +libKPim5WebEngineViewer.so.5 messagelib-23.04.0_1 +libKPim5MessageCore.so.5 messagelib-23.04.0_1 +libKPim5MimeTreeParser.so.5 messagelib-23.04.0_1 +libKPim5MessageViewer.so.5 messagelib-23.04.0_1 +libKPim5CalendarUtils.so.5 kcalutils-23.04.0_1 +libKPim5KontactInterface.so.5 kontactinterface-23.04.0_1 +libKPim5KSieveUi.so.5 libksieve-23.04.0_1 +libKPim5KManageSieve.so.5 libksieve-23.04.0_1 +libKPim5KSieve.so.5 libksieve-23.04.0_1 +libKPim5MailImporterAkonadi.so.5 mailimporter-23.04.0_1 +libKPim5MailImporter.so.5 mailimporter-23.04.0_1 +libKPim5MailCommon.so.5 mailcommon-23.04.0_1 +libKPim5Tnef.so.5 ktnef-23.04.0_1 +libKPim5AkonadiCalendar.so.5 akonadi-calendar-23.04.0_1 +libKPim5CalendarSupport.so.5 calendarsupport-23.04.0_1 +libKPim5AkonadiNotes.so.5 akonadi-notes-23.04.0_1 +libKPimKDAV.so.5 kdav-5.72.0_1 +libKF5DAV.so.5 kdav-5.72.0_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 +libakonadi-filestore.so.5 kdepim-runtime-17.12.3_1 +libmaildir.so.5 kdepim-runtime-17.12.3_1 +libfolderarchivesettings.so.5 kdepim-runtime-17.12.3_1 +libkImageAnnotator.so.0 kImageAnnotator-0.4.1_1 +libkColorPicker.so.0 kColorPicker-0.1.5_1 +libbabl-0.1.so.0 babl-0.1.16_1 +libbamf3.so.2 bamf-0.5.1_1 +libicuio.so.73 icu-libs-73.2_1 +libicui18n.so.73 icu-libs-73.2_1 +libicudata.so.73 icu-libs-73.2_1 +libicutu.so.73 icu-libs-73.2_1 +libicuuc.so.73 icu-libs-73.2_1 +libicutest.so.73 icu-libs-73.2_1 +libaspell.so.15 libaspell-0.60.8_2 +libpspell.so.15 libaspell-0.60.8_2 +libenchant-2.so.2 enchant2-2.2.3_1 +libgconf-2.so.4 GConf-2.32.0_1 +libpackagekit-glib2.so.18 PackageKit-1.1.12_1 +libpsl.so.5 libpsl-0.20.2_1 +libsoup-2.4.so.1 libsoup-2.34.0_1 +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 +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 +libwebkitgtk-6.0.so.4 libwebkitgtk60-2.40.0_1 +libjavascriptcoregtk-6.0.so.1 libwebkitgtk60-2.40.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 +libgimpbase-2.0.so.0 libgimp-2.10.0_1 +libgimpthumb-2.0.so.0 libgimp-2.10.0_1 +libgimpconfig-2.0.so.0 libgimp-2.10.0_1 +libgimpmath-2.0.so.0 libgimp-2.10.0_1 +libgimpcolor-2.0.so.0 libgimp-2.10.0_1 +libgimpmodule-2.0.so.0 libgimp-2.10.0_1 +libgmic.so.3 gmic-3.1.6_1 +libcgmic.so.3 gmic-3.1.6_1 +libexiv2.so.27 exiv2-0.27_1 +libKF5Holidays.so.5 kholidays-5.47.0_1 +libPhabricatorHelpers.so.5 purpose-5.48.0_1 +libKF5PurposeWidgets.so.5 purpose-5.48.0_1 +libKF5Purpose.so.5 purpose-5.48.0_1 +libKF5PulseAudioQt.so.3 pulseaudio-qt-1.3_1 +libReviewboardHelpers.so.5 purpose-5.48.0_1 +libecpg_compat.so.3 postgresql-libs-15.1_1 +libecpg.so.6 postgresql-libs-15.1_1 +libpgtypes.so.3 postgresql-libs-15.1_1 +libpq.so.5 postgresql-libs-15.1_1 +libmypaint.so.0 libmypaint-1.6.1_1 +libgssapi_krb5.so.2 mit-krb5-libs-1.8_1 +libgssrpc.so.4 mit-krb5-libs-1.8_1 +libk5crypto.so.3 mit-krb5-libs-1.8_1 +libkadm5clnt_mit.so.12 mit-krb5-libs-1.18.2_1 +libkadm5srv_mit.so.12 mit-krb5-libs-1.18.2_1 +libkdb5.so.10 mit-krb5-libs-1.18.2_1 +libkrb5.so.3 mit-krb5-libs-1.8_1 +libkrad.so.0 mit-krb5-libs-1.12.1_1 +libkrb5support.so.0 mit-krb5-libs-1.8_1 +libkdb_ldap.so.1 mit-krb5-libs-1.14.2_2 +libverto.so.0 mit-krb5-libs-1.8_1 +libverto-k5ev.so.0 mit-krb5-libs-1.8_1 +libmenu-cache.so.3 menu-cache-1.0.0_1 +libupower-glib.so.3 libupower-glib3-0.99.3_1 +libcanberra.so.0 libcanberra-0.23_1 +libcanberra-gtk.so.0 libcanberra-gtk-0.30_6 +libcanberra-gtk3.so.0 libcanberra-gtk3-0.30_6 +libgtop-2.0.so.11 libgtop-2.38.0_1 +librarian.so.0 rarian-0.8.1_1 +libmusikcore.so musikcube-0.93.1_3 +libgnome-menu-3.so.0 gnome-menus-2.91.6_1 +libart_lgpl_2.so.2 libart-2.3.20_1 +libgnomecanvas-2.so.0 libgnomecanvas-2.30.1_1 +libgnomecanvasmm-2.6.so.1 libgnomecanvasmm-2.26.0_1 +libgnome-keyring.so.0 libgnome-keyring-3.0.0_1 +libical.so.3 libical-3.0.4_1 +libical_cxx.so.3 libical-3.0.4_1 +libicalss.so.3 libical-3.0.4_1 +libicalss_cxx.so.3 libical-3.0.4_1 +libicalvcal.so.3 libical-3.0.4_1 +libical-glib.so.3 libical-3.0.4_1 +libcamel-1.2.so.64 evolution-data-server-3.46.0_1 +libebackend-1.2.so.11 evolution-data-server-3.46.0_1 +libebook-1.2.so.21 evolution-data-server-3.46.0_1 +libebook-contacts-1.2.so.4 evolution-data-server-3.46.0_1 +libecal-2.0.so.2 evolution-data-server-3.46.0_1 +libedata-book-1.2.so.27 evolution-data-server-3.46.0_1 +libedataserver-1.2.so.27 evolution-data-server-3.46.0_1 +libedataserverui-1.2.so.4 evolution-data-server-3.46.0_1 +libedataserverui4-1.0.so.0 evolution-data-server-3.46.0_1 +libevolution-calendar.so evolution-3.28.0_1 +libevolution-util.so evolution-3.28.0_1 +libemail-engine.so evolution-3.28.0_1 +libevolution-mail.so evolution-3.28.0_1 +libevolution-mail-composer.so evolution-3.48.0_1 +libevolution-mail-formatter.so evolution-3.40.0_1 +libevolution-shell.so evolution-3.28.0_1 +libedata-cal-2.0.so.2 evolution-data-server-3.46.0_1 +libgdata.so.22 libgdata-0.17.9_1 +libpcap.so.1 libpcap-1.1.1_1 +libiptc.so.0 iptables-1.4.7_1 +libip6tc.so.2 iptables-1.8.3_1 +libxtables.so.12 iptables-1.6.1_1 +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.82.0 libboost_context-1.82.0.alpha_1 +libboost_coroutine.so.1.82.0 libboost_coroutine-1.82.0.alpha_1 +libboost_container.so.1.82.0 libboost_container-1.82.0.alpha_1 +libboost_prg_exec_monitor.so.1.82.0 libboost_prg_exec_monitor-1.82.0.alpha_1 +libboost_timer.so.1.82.0 libboost_timer-1.82.0.alpha_1 +libboost_random.so.1.82.0 libboost_random-1.82.0.alpha_1 +libboost_filesystem.so.1.82.0 libboost_filesystem-1.82.0.alpha_1 +libboost_unit_test_framework.so.1.82.0 libboost_unit_test_framework-1.82.0.alpha_1 +libboost_math_c99.so.1.82.0 libboost_math_c99-1.82.0.alpha_1 +libboost_math_tr1.so.1.82.0 libboost_math_tr1-1.82.0.alpha_1 +libboost_nowide.so.1.82.0 libboost_nowide-1.82.0.alpha_1 +libboost_json.so.1.82.0 libboost_json-1.82.0.alpha_1 +libboost_regex.so.1.82.0 libboost_regex-1.82.0.alpha_1 +libboost_serialization.so.1.82.0 libboost_serialization-1.82.0.alpha_1 +libboost_chrono.so.1.82.0 libboost_chrono-1.82.0.alpha_1 +libboost_wserialization.so.1.82.0 libboost_wserialization-1.82.0.alpha_1 +libboost_graph.so.1.82.0 libboost_graph-1.82.0.alpha_1 +libboost_graph_parallel.so.1.82.0 libboost_graph_parallel-1.82.0.alpha_1 +libboost_log.so.1.82.0 libboost_log-1.82.0.alpha_1 +libboost_locale.so.1.82.0 libboost_locale-1.82.0.alpha_1 +libboost_program_options.so.1.82.0 libboost_program_options-1.82.0.alpha_1 +libboost_iostreams.so.1.82.0 libboost_iostreams-1.82.0.alpha_1 +libboost_system.so.1.82.0 libboost_system-1.82.0.alpha_1 +libboost_sync.so.1.82.0 libboost_system-1.82.0.alpha_1 +libboost_thread.so.1.82.0 libboost_thread-1.82.0.alpha_1 +libboost_log_setup.so.1.82.0 libboost_log_setup-1.82.0.alpha_1 +libboost_date_time.so.1.82.0 libboost_date_time-1.82.0.alpha_1 +libboost_wave.so.1.82.0 libboost_wave-1.82.0.alpha_1 +libboost_atomic.so.1.82.0 libboost_atomic-1.82.0.alpha_1 +libboost_type_erasure.so.1.82.0 libboost_type_erasure-1.82.0.alpha_1 +libboost_fiber.so.1.82.0 libboost_fiber-1.82.0.alpha_1 +libboost_stacktrace_noop.so.1.82.0 libboost_stacktrace_noop-1.82.0.alpha_1 +libboost_stacktrace_addr2line.so.1.82.0 libboost_stacktrace_addr2line-1.82.0.alpha_1 +libboost_stacktrace_basic.so.1.82.0 libboost_stacktrace_basic-1.82.0.alpha_1 +libboost_mpi.so.1.82.0 libboost_mpi-1.82.0.alpha_1 +libboost_mpi_python311.so.1.82.0 libboost_mpi-python3-1.82.0.alpha_1 +libboost_python311.so.1.82.0 boost-python3-1.82.0.alpha_1 +libexempi.so.8 exempi-2.5.0_1 +libatasmart.so.4 libatasmart-0.17_1 +libsgutils2-1.45.so.2 libsgutils-1.45_1 +liblvm2app.so.2.2 liblvm2app-2.02.54_1 +libcpufreq.so.0 libcpufreq-007_1 +libcpuid.so.16 libcpuid-0.6.2_1 +libgucharmap_2_90.so.7 gucharmap-3.0.0_1 +libgphoto2.so.6 libgphoto2-2.5.7_1 +libgphoto2_port.so.12 libgphoto2-2.5.7_1 +libgvfscommon.so.0 gvfs-1.7.2_1 +libgvfscommon-dnssd.so.0 gvfs-1.7.2_1 +libgvfsdaemon.so gvfs-1.20_1 +libgvfscommon.so gvfs-1.20_1 +libnautilus-extension.so.4 libnautilus-43.0_1 +libmpc.so.3 libmpc-1.0.1_1 +libsigc-2.0.so.0 libsigc++-1.1_1 +libsigc-3.0.so.0 libsigc++3-3.0.3_1 +libglibmm-2.4.so.1 glibmm-2.24.0_1 +libgiomm-2.4.so.1 glibmm-2.24.0_1 +libglibmm_generate_extra_defs-2.4.so.1 glibmm-2.24.0_1 +libglibmm-2.68.so.1 glibmm2.68-2.68.0_1 +libgiomm-2.68.so.1 glibmm2.68-2.68.0_1 +libglibmm_generate_extra_defs-2.68.so.1 glibmm2.68-2.68.0_1 +libcairomm-1.0.so.1 cairomm-1.8.4_1 +libcairomm-1.16.so.1 cairomm1.16-1.16.0_1 +libpangomm-1.4.so.1 pangomm-2.26.0_1 +libpangomm-2.48.so.1 pangomm2.48-2.48.0_1 +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-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 +libldap_r-2.4.so.2 libldap-2.4.21_1 +libevent-2.1.so.7 libevent-2.1.11_1 +libevent_core-2.1.so.7 libevent-2.1.11_1 +libevent_extra-2.1.so.7 libevent-2.1.11_1 +libevent_pthreads-2.1.so.7 libevent-2.1.11_1 +libevent_openssl-2.1.so.7 libevent-2.1.11_1 +libSDL_mixer-1.2.so.0 SDL_mixer-1.2.11_1 +libapr-1.so.0 apr-1.4.2_1 +libaprutil-1.so.0 apr-util-1.6.1_11 +libnetpgp.so.0 libnetpgp-20140220_19 +libmj.so.0 libmj-20140220_19 +libmca_common_sm.so.40 libopenmpi-3.0.1_1 +libmca_common_dstore.so.1 libopenmpi-4.0.1_1 +libmca_common_ompio.so.41 libopenmpi-3.0.1_1 +libmca_common_monitoring.so.50 libopenmpi-3.1.2_1 +libmpi.so.40 libopenmpi-3.0.1_1 +libompitrace.so.40 libopenmpi-3.0.1_1 +libopen-pal.so.40 libopenmpi-3.0.1_1 +libopen-rte.so.40 libopenmpi-3.0.1_1 +liboshmem.so.40 libopenmpi-3.0.1_1 +libmtp.so.9 libmtp-1.1.4_1 +libelf.so.1 libelf-0.155_1 +libdw.so.1 libelf-0.155_1 +libasm.so.1 libelf-0.155_1 +libdebuginfod.so.1 libdebuginfod-0.182_1 +libgtksourceview-3.0.so.1 gtksourceview-3.8.0_1 +libtalloc.so.2 talloc-2.0.1_1 +libpytalloc-util.so.2 libpytalloc-util-2.3.1_2 +libmount.so.1 libmount-2.18_1 +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.15 gpgmeqt-1.18.0_1 +libgarcon-1.so.0 garcon-0.1.12_1 +libgarcon-gtk3-1.so.0 garcon-0.6.1_1 +libxfce4ui-2.so.0 libxfce4ui-4.18.0_1 +libxfce4kbd-private-3.so.0 libxfce4ui-4.18.0_1 +libxml++-2.6.so.2 libxml++-2.32.0_1 +libxml++-3.0.so.1 libxml++3.0-3.0.1_1 +libftgl.so.2 ftgl-2.1.2_1 +libGLEW.so.2.2 glew-2.2.0_1 +libsndfile.so.1 libsndfile-1.0.20_1 +libspeex.so.1 libspeex-1.1_1 +libspeexdsp.so.1 speexdsp-1.2rc2_1 +libasyncns.so.0 libasyncns-0.8_1 +libpulse.so.0 libpulseaudio-15.0_1 +libpulse-mainloop-glib.so.0 libpulseaudio-15.0_1 +libpulse-simple.so.0 libpulseaudio-15.0_1 +libpulsecommon-15.0.so libpulseaudio-15.0_1 +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 +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 +libtdb.so.1 libtdb-1.2.2_1 +libgssdp-1.2.so.0 gssdp1.2-1.4.0.1_1 +libgssdp-1.6.so.0 gssdp-1.6.0_1 +libgupnp-1.2.so.0 gupnp1.2-1.2.4_1 +libgupnp-1.6.so.0 gupnp-1.6.0_1 +libsamplerate.so.0 libsamplerate-0.1.7_1 +libmms.so.0 libmms-0.6_1 +libsmbios.so.2 libsmbios-2.2.28_1 +libsmbios_c.so.2 libsmbios-2.2.28_1 +libjasper.so.4 libjasper-1.900.27_1 +librecode.so.0 librecode-3.6_1 +libenca.so.0 libenca-1.13_1 +libwavpack.so.1 libwavpack-4.60.1_1 +libSDL_net-1.2.so.0 SDL_net-1.2.7_1 +libmodplug.so.1 libmodplug-0.8.8_1 +libfetch.so.2 libfetch-2.34_23 +libneon.so.27 neon-0.31.2_2 +libsvn_subr-1.so.0 libsvn-1.7.5_1 +libsvn_diff-1.so.0 libsvn-1.7.5_1 +libsvn_client-1.so.0 libsvn-1.7.5_1 +libsvn_delta-1.so.0 libsvn-1.7.5_1 +libsvn_fs-1.so.0 libsvn-1.7.5_1 +libsvn_ra-1.so.0 libsvn-1.7.5_1 +libsvn_repos-1.so.0 libsvn-1.7.5_1 +libsvn_wc-1.so.0 libsvn-1.7.5_1 +libsvn_fs_util-1.so.0 libsvn-1.7.5_1 +libsvn_ra_svn-1.so.0 libsvn-1.7.5_1 +libsvn_fs_fs-1.so.0 libsvn-1.7.5_1 +libsvn_fs_base-1.so.0 libsvn-1.7.5_1 +libsvn_ra_local-1.so.0 libsvn-1.7.5_1 +libsvn_ra_neon-1.so.0 libsvn-1.7.5_1 +libsvn_ra_serf-1.so.0 libsvn-1.8.1_1 +libsvn_fs_x-1.so.0 libsvn-1.9.0_1 +libsvn_swig_py-1.so.0 subversion-python-1.7.5_1 +libsvn_swig_perl-1.so.0 subversion-perl-1.7.5_1 +libjson-glib-1.0.so.0 json-glib-0.12.2_1 +libcjson.so.1 cJSON-1.7.8_1 +libvirt.so.0 libvirt-0.8.7_1 +libvirt-qemu.so.0 libvirt-0.8.7_1 +libvirt-lxc.so.0 libvirt-1.0.2_1 +libgdk-3.so.0 gtk+3-3.0.0_1 +libgtk-3.so.0 gtk+3-3.0.0_1 +libgailutil-3.so.0 gtk+3-3.0.0_1 +liblightdm-gobject-1.so.0 liblightdm-gobject-1.2.2_1 +libcelt0.so.2 celt-0.11.1_1 +libspice-server.so.1 spice-0.14.3_3 +libbrasero-burn3.so.1 brasero-2.91.90_1 +libbrasero-media3.so.1 brasero-2.91.90_1 +libbrasero-utils3.so.1 brasero-2.91.90_1 +libXss.so.1 libXScrnSaver-1.1.3_1 +libyelp.so.0 yelp-3.36.0_1 +libpeas-1.0.so.0 libpeas-1.0.0_2 +libpeas-gtk-1.0.so.0 libpeas-1.0.0_2 +libtotem.so.0 libtotem-3.6.2_1 +libclutter-1.0.so.0 clutter-1.14.0_1 +libavfs.so.0 libavfs-1.0.5_1 +libgjs.so.0 gjs-1.65.2_1 +libtelepathy-glib.so.0 telepathy-glib-0.15.5_1 +libaccountsservice.so.0 accountsservice-0.6.4_1 +libfolks.so.26 folks-0.15.0_1 +libfolks-dummy.so.26 folks-0.15.0_1 +libfolks-telepathy.so.26 folks-0.15.0_1 +libfolks-eds.so.26 folks-0.15.0_1 +libnice.so.10 libnice-0.1.18_3 +libgupnp-igd-1.0.so.4 gupnp1.2-igd-1.2.0_1 +libgupnp-igd-1.6.so.0 gupnp-igd-1.4.0_1 +libtelepathy-logger.so.3 telepathy-logger-0.6.0_1 +libmission-control-plugins.so.0 telepathy-mission-control-5.9.2_1 +libclutter-gtk-1.0.so.0 clutter-gtk-1.1.2_1 +libchamplain-0.12.so.0 libchamplain-0.12.5_2 +libchamplain-gtk-0.12.so.0 libchamplain-0.12.5_2 +libshumate-1.0.so.1 libshumate-1.0.0_1 +libvpx.so.6 libvpx6-1.8.0_1 +libvpx.so.7 libvpx7-1.11.0_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 +libospgrove.so.0 openjade-1.3.2_1 +libostyle.so.0 openjade-1.3.2_1 +libtorrent.so.21 libtorrent-0.13.8_4 +libgiblib.so.1 giblib-1.2.4_1 +libgc.so.1 gc-7.6.4_1 +libcord.so.1 gc-7.4_1 +libgslcblas.so.0 gsl-1.15_1 +libgsl.so.27 gsl-2.7.1_1 +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.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 +libgdkmm-2.4.so.1 gtkmm2-2.24.0_1 +libgtkmm-2.4.so.1 gtkmm2-2.24.0_1 +libquadmath.so.0 libquadmath-4.4.0_1 +libgfortran.so.5 libgfortran-8.2.0_1 +libgnarl-12.so libada-12.2.0_1 +libgnat-12.so libada-12.2.0_1 +libsharpyuv.so.0 libsharpyuv-1.3.0_1 +libwebp.so.7 libwebp-0.6.0_1 +libwebpmux.so.3 libwebp-0.6.0_1 +libwebpdemux.so.2 libwebp-0.5.0_1 +libwebpdecoder.so.3 libwebp-0.6.0_1 +libva-x11.so.2 libva-2.13.0_1 +libva.so.2 libva-2.13.0_1 +libva-glx.so.2 libva-glx-2.13.0_1 +libva-drm.so.2 libva-2.13.0_1 +libva-wayland.so.2 libva-2.13.0_1 +libv4l2.so.0 v4l-utils-0.8.5_1 +libv4lconvert.so.0 v4l-utils-0.8.5_1 +libv4l1.so.0 v4l-utils-0.8.5_1 +libv4l2rds.so.0 v4l-utils-1.2.1_1 +libdvbv5.so.0 v4l-utils-1.6.2_1 +libjson-c.so.5 json-c-0.14.0_1 +libcogl.so.20 cogl-1.18.0_1 +libcogl-pango.so.20 cogl-1.18.0_1 +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 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 +liblcms2.so.2 lcms2-2.2_1 +libcolord.so.2 libcolord-1.1.7_1 +libcolordprivate.so.2 libcolord-1.1.7_1 +libcolorhug.so.2 libcolord-1.1.7_1 +libgupnp-av-1.0.so.3 gupnp-av-0.14.0_1 +libgrilo-0.3.so.0 grilo-0.3.2_1 +libgrlnet-0.3.so.0 grilo-0.3.2_1 +libgrlpls-0.3.so.0 grilo-0.3.2_1 +libquvi.so.7 libquvi-0.4.0_1 +libepc-1.0.so.3 libepc-0.4.1_1 +libepc-ui-1.0.so.3 libepc-0.4.1_1 +libgupnp-dlna-2.0.so.4 gupnp-dlna-0.12.0_1 +libgupnp-dlna-gst-2.0.so.4 gupnp-dlna-0.12.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 +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 +libgexiv2.so.2 libgexiv2-0.6.1_1 +libraw.so.23 libraw-0.21.0_1 +libraw_r.so.23 libraw-0.21.0_1 +libdjvulibre.so.21 libdjvulibre-3.5.24_1 +libgxps.so.2 libgxps-0.2.0_1 +libt1.so.5 libt1-5.1.2_1 +libt1x.so.5 libt1-5.1.2_1 +libevdocument3.so.4 libevince-3.3.92_1 +libevview3.so.3 libevince-3.3.92_1 +libjack.so.0 libjack-1.9.7_1 +libjackserver.so.0 libjack-1.9.7_1 +libjacknet.so.0 libjack-1.9.7_1 +libfftw3_threads.so.3 libfftw-3.3_1 +libfftw3.so.3 libfftw-3.3_1 +libfftw3_omp.so.3 libfftw-3.3.5_1 +libfftw3l_threads.so.3 libfftw-3.3_1 +libfftw3l.so.3 libfftw-3.3_1 +libfftw3l_omp.so.3 libfftw-3.3.5_1 +libfftw3f_threads.so.3 libfftw-3.3_1 +libfftw3f.so.3 libfftw-3.3_1 +libfftw3f_omp.so.3 libfftw-3.3.5_1 +libfluidsynth.so.3 libfluidsynth-2.2.0_1 +liblo.so.7 liblo-0.26_1 +libvamp-sdk.so.2 libvamp-plugin-sdk-2.2_1 +librubberband.so.2 librubberband-1.6.0_1 +libaubio.so.5 libaubio-0.4.3_1 +libraptor2.so.0 libraptor-2.0.4_1 +liblrdf.so.2 liblrdf-0.4.0_1 +libserd-0.so.0 libserd-0.18.0_1 +libsord-0.so.0 libsord-0.5.0_1 +libgiggle.so.0 libgiggle-0.6.1_1 +libgiggle-git.so.0 libgiggle-0.6.1_1 +libwv-1.2.so.4 libwv-1.2.9_1 +libabiword-3.0.so libabiword-3.0.0_1 +libmpg123.so.0 libmpg123-1.13.4_2 +libout123.so.0 libmpg123-1.23.0_1 +libsyn123.so.0 libmpg123-1.26.0_1 +libopenal.so.1 libopenal-1.13_1 +libalure.so.1 alure-1.2_1 +libalut.so.0 freealut-1.1.0_1 +liblilv-0.so.0 liblilv-0.14.4_1 +libsuil-0.so.0 suil-0.6.4_1 +libmcpp.so.0 libmcpp-2.7.2_1 +libjitterentropy.so.3 jitterentropy-3.0.0_1 +libkdecorations2.so.5 kdecoration-5.8.4_1 +libkdecorations2private.so.10 kdecoration-5.26.90_1 +libGlacier2.so.37 libIce-3.7.5_2 +libGlacier2CryptPermissionsVerifier.so.37 libIce-3.7.5_2 +libIce.so.37 libIce-3.7.5_2 +libIceSSL.so.37 libIce-3.7.5_2 +libIceUtil.so.37 libIce-3.7.5_2 +libIceStormService.so.37 libIce-3.7.5_2 +libIceStorm.so.37 libIce-3.7.5_2 +libFreeze.so.37 libIce-3.7.5_2 +libSlice.so.37 libIce-3.7.5_2 +libIceBox.so.37 libIce-3.7.5_2 +libIceGrid.so.37 libIce-3.7.5_2 +libIcePatch2.so.37 libIce-3.7.5_2 +libIceDB.so.37 libIce-3.7.5_2 +libIceXML.so.37 libIce-3.7.5_2 +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.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.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 +libconfuse.so.2 confuse-3.2.1_1 +liblldb.so.15 lldb-15.0.7_1 +libclang.so.15 libclang-15.0.7_1 +libclang-cpp.so.15 libclang-cpp-15.0.7_1 +libLLVM-11.so libllvm11-11.0.0_1 +libLLVM-12.so libllvm12-12.0.0_1 +libLLVM-15.so libllvm15-15.0.7_1 +libLLVMSPIRVLib.so.15 SPIRV-LLVM-Translator-15.0.0_1 +libomp.so.5 libomp-15.0.7_1 +libomptarget.so.15 libomp-15.0.7_1 +libisofs.so.6 libisofs-0.6.24_1 +libmpack.so.0 libmpack-1.0.5_1 +libGeoIP.so.1 libgeoip-1.4.8_1 +libnilfs.so.0 libnilfs-2.1.0_1 +libnilfsgc.so.0 libnilfs-2.1.0_1 +libnilfscleaner.so.0 libnilfs-2.1.0_1 +libchicken.so.11 libchicken-5.1.0_1 +libmdb.so.0 libmdb-0.5_1 +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 +libtirpc.so.3 libtirpc-1.0.2_1 +libnfsidmap.so.1 libnfsidmap-2.4.3_2 +libbind9-9.16.22.so bind-libs-9.16.22_1 +libdns-9.16.22.so bind-libs-9.16.22_1 +libirs-9.16.22.so bind-libs-9.16.22_1 +libisc-9.16.22.so bind-libs-9.16.22_1 +libisccc-9.16.22.so bind-libs-9.16.22_1 +libisccfg-9.16.22.so bind-libs-9.16.22_1 +libns-9.16.22.so bind-libs-9.16.22_1 +libplist-2.0.so.3 libplist-2.2.0_1 +libplist++-2.0.so.3 libplist++-2.2.0_1 +libnsbmp.so.0 libnsbmp-0.0.3_1 +libnsgif.so.0 libnsgif-0.0.3_1 +libparserutils.so.0 libparserutils-0.1.1_1 +libwapcaplet.so.0 libwapcaplet-0.1.0_1 +libcss.so.0 libcss-0.1.1_1 +libhubbub.so.0 libhubbub-0.1.1_1 +liblutok.so.3 lutok-0.4_1 +libmtdev.so.1 mtdev-1.1.2_1 +libcryptsetup.so.12 libcryptsetup-2.3.4_2 +libgusb.so.2 libgusb-0.1.3_1 +libmash-0.2.so.0 mash-0.2.0_4 +libbytesize.so.1 libbytesize-1.2_1 +libblockdev.so.2 libblockdev-2.16_1 +libbd_utils.so.2 libblockdev-2.16_1 +libndctl.so.6 libndctl-60.3_1 +libdaxctl.so.1 libdaxctl-60.3_1 +libudisks2.so.0 udisks2-1.93.0_1 +libgcr-base-3.so.1 gcr-3.3.92_1 +libgck-1.so.0 gcr-3.8.0_1 +libgcr-ui-3.so.1 gcr-3.8.0_1 +libgck-2.so.0.0.0 gcr4-4.0.0_1 +libgcr-4.so.0.0.0 gcr4-4.0.0_1 +libcld2.so cld2-0.0.1.20150821_1 +libcld2_full.so cld2-full-0.0.1.20150821_1 +libwacom.so.9 libwacom-2.6.0_1 +libfarstream-0.2.so.5 farstream-0.2.7_1 +libass.so.9 libass-0.13.6_1 +libcryptui.so.0 libcryptui-3.4.0_1 +libkeyutils.so.1 libkeyutils-1.5.5_1 +libiptcdata.so.0 libiptcdata-1.0.4_1 +libutempter.so.0 libutempter-1.1.5_1 +libxatracker.so.2 libxatracker-10.0.0_2 +libtumbler-1.so.0 tumbler-4.9.2_1 +libwebrtc_audio_processing.so.1 webrtc-audio-processing-0.3_1 +libcupsmime.so.1 libcups-1.5.3_1 +libcupsppdc.so.1 libcups-1.5.3_1 +libcupscgi.so.1 libcups-1.5.3_1 +libcups.so.2 libcups-1.5.3_1 +libcupsimage.so.2 libcups-1.5.3_1 +libijs-0.35.so libijs-0.8_1 +libgs.so.10 libgs-10.0.0_1 +libssh2.so.1 libssh2-1.9.0_3 +libvirt-glib-1.0.so.0 libvirt-glib-0.0.8_1 +libsnmp.so.40 libnet-snmp-5.9_2 +libnetsnmp.so.40 libnet-snmp-5.9_2 +libnetsnmpagent.so.40 libnet-snmp-5.9_2 +libnetsnmpmibs.so.40 libnet-snmp-5.9_2 +libnetsnmptrapd.so.40 libnet-snmp-5.9_2 +libnetsnmphelpers.so.40 libnet-snmp-5.9_2 +libieee1284.so.3 libieee1284-0.2.10_1 +libsane.so.1 libsane-1.0.22_1 +libfltk.so.1.3 fltk-1.3.0_1 +libfltk_forms.so.1.3 fltk-1.3.0_1 +libfltk_gl.so.1.3 fltk-1.3.0_1 +libfltk_images.so.1.3 fltk-1.3.0_1 +libspectre.so.1 libspectre-0.2.6_1 +libsratom-0.so.0 sratom-0.4.0_1 +libpwquality.so.1 libpwquality-1.1.1_1 +libiml.so.0 iml-1.0.5_1 +libisl.so.23 isl-0.23_1 +libisl.so.19 isl15-0.19_1 +libcloog-isl.so.4 cloog-0.18.1_1 +librtmp.so.1 librtmp-2.4.20161210_9 +libORBit-2.so.0 libORBit2-2.14.19_1 +libORBit-imodule-2.so.0 libORBit2-2.14.19_1 +libORBitCosNaming-2.so.0 libORBit2-2.14.19_1 +libminiupnpc.so.17 miniupnpc-2.1_1 +libxbps.so.5 libxbps-0.59.1_4 +libatf-c.so.1 atf-libs-0.21_1 +libatf-c++.so.2 atf-libs-0.21_1 +libvdeplug.so.3 libvde2-2.3.2_23 +libvdemgmt.so.0 libvde2-2.3.2_23 +libvdehist.so.0 libvde2-2.3.2_23 +libvdesnmp.so.0 libvde2-2.3.2_23 +libsbc.so.1 sbc-1.0_1 +libecryptfs.so.1 libecryptfs-111_9 +libnuma.so.1 libnuma-2.0.7_1 +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 +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 +libgvc.so.6 graphviz-libs-2.28.0_6 +libcdt.so.5 graphviz-libs-2.28.0_6 +libpathplan.so.4 graphviz-libs-2.28.0_6 +liblab_gamut.so.1 graphviz-libs-2.40.1_1 +libflowcanvas.so.5 flowcanvas-0.7.1_1 +liblash.so.1 ladish-1_1 +libmowgli-2.so.0 libmowgli-2.1.3_8 +libgts-0.7.so.5 gts-0.7.6_1 +libguess.so.1 libguess-1.1_1 +libaudcore.so.5 audacious-3.9_1 +libaudgui.so.5 audacious-3.9_1 +libaudtag.so.3 audacious-3.8_1 +libaudqt.so.2 audacious-3.10.1_2 +libgstreamer-1.0.so.0 gstreamer1-1.0.0_1 +libgstbase-1.0.so.0 gstreamer1-1.0.0_1 +libgstcontroller-1.0.so.0 gstreamer1-1.0.0_1 +libgstnet-1.0.so.0 gstreamer1-1.0.0_1 +libgstcheck-1.0.so.0 gstreamer1-1.0.0_1 +libgsttag-1.0.so.0 gst-plugins-base1-1.0.0_1 +libgstfft-1.0.so.0 gst-plugins-base1-1.0.0_1 +libgstrtp-1.0.so.0 gst-plugins-base1-1.0.0_1 +libgstsdp-1.0.so.0 gst-plugins-base1-1.0.0_1 +libgstrtsp-1.0.so.0 gst-plugins-base1-1.0.0_1 +libgstvideo-1.0.so.0 gst-plugins-base1-1.0.0_1 +libgstaudio-1.0.so.0 gst-plugins-base1-1.0.0_1 +libgstpbutils-1.0.so.0 gst-plugins-base1-1.0.0_1 +libgstriff-1.0.so.0 gst-plugins-base1-1.0.0_1 +libgstapp-1.0.so.0 gst-plugins-base1-1.0.0_1 +libgstallocators-1.0.so.0 gst-plugins-base1-1.1.1_1 +libgsttranscoder-1.0.so.0 gst-plugins-bad1-1.22.1_1 +libgstphotography-1.0.so.0 gst-plugins-bad1-1.18.3_2 +libgstsignalprocessor-1.0.so.0 gst-plugins-bad1-1.18.3_2 +libgstbasevideo-1.0.so.0 gst-plugins-bad1-1.18.3_2 +libgstbasecamerabinsrc-1.0.so.0 gst-plugins-bad1-1.18.3_2 +libgstcodecparsers-1.0.so.0 gst-plugins-bad1-1.18.3_2 +libgstplayer-1.0.so.0 gst-plugins-bad1-1.18.3_2 +libgstwebrtc-1.0.so.0 gst-plugins-bad1-1.18.4_2 +libgsttranscoder-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.20 gnome-desktop-43.0_1 +libgnome-desktop-4.so.2 gnome-desktop-43.0_1 +libgnome-bg-4.so.2 gnome-desktop-43.0_1 +libgnome-rr-4.so.2 gnome-desktop-43.0_1 +libsecret-1.so.0 libsecret-0.10_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 +libxapian.so.30 libxapian-1.4.0_1 +libzeitgeist-1.0.so.1 libzeitgeist-0.3.18_1 +libcolord-gtk.so.1 colord-gtk-0.1.23_1 +libcolord-gtk4.so.1 colord-gtk-0.3.0_1 +libgdm.so.1 libgdm-3.6.0_1 +libclutter-gst-2.0.so.0 clutter-gst-1.9.92_1 +libcheese.so.8 libcheese-3.17.90_1 +libcheese-gtk.so.25 libcheese-3.17.90_1 +libSoundTouch.so.1 soundtouch-1.9.2_1 +libmusicbrainz5.so.1 libmusicbrainz5-5.1.0_1 +librygel-core-2.8.so.0 librygel-0.42.0_1 +librygel-renderer-2.8.so.0 librygel-0.42.0_1 +librygel-renderer-gst-2.8.so.0 librygel-0.42.0_1 +librygel-ruih-2.8.so.0 librygel-0.42.0_1 +librygel-server-2.8.so.0 librygel-0.42.0_1 +librygel-db-2.8.so.0 librygel-0.42.0_1 +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 +libharfbuzz-cairo.so.0 libharfbuzz-7.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 +libzmq.so.5 zeromq-4.1.2_1 +libstatgrab.so.10 libstatgrab-0.91_1 +libseccomp.so.2 libseccomp-2.0.0_1 +libqrencode.so.4 libqrencode-4.0.0_1 +libwayland-server.so.0 wayland-1.6.0_1 +libwayland-client.so.0 wayland-1.10.0_1 +libwayland-cursor.so.0 wayland-1.6.0_1 +libwayland-egl.so.1 wayland-1.15.0_4 +libvarlink.so.0 libvarlink-22_1 +libtomcrypt.so.1 libtomcrypt-1.18.0_1 +libHX.so.28 libHX-3.14_1 +libxkbcommon.so.0 libxkbcommon-0.2.0_1 +libxkbcommon-x11.so.0 libxkbcommon-x11-0.4.2_1 +libxkbregistry.so.0 libxkbregistry-1.3.0_3 +libgee-0.8.so.2 libgee-0.20.6_1 +libnettle.so.8 nettle-3.6_1 +libhogweed.so.6 nettle-3.6_1 +libgtkspell.so.0 gtkspell-2.0.16_1 +libgtkspell3-3.so.0 gtkspell3-3.0.9_1 +libpurple.so.0 libpurple-2.10.6_1 +libpurple-client.so.0 libpurple-2.10.6_1 +libjabber.so.0 libpurple-2.13.0_1 +libgnt.so.0 libgnt-2.10.6_1 +libao.so.4 libao-1.1.0_1 +libjansson.so.4 jansson-2.4_1 +libleveldb.so.1 leveldb-1.8.0_1 +libcprops.so.15 libcprops-0.1.12_1 +libopus.so.0 opus-1.0.2_1 +libconfig++.so.11 libconfig++-1.7.1_1 +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.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 +libtaginfo.so.1 libtaginfo-0.1.3_1 +libtaginfo_c.so.0 libtaginfo-0.1.3_1 +libaa.so.1 aalib-1.4rc4_2 +libbsd.so.0 libbsd-0.4.2_1 +libWFC.so rpi-userland-0.0.0.0.20150907_1 +libbcm_host.so rpi-userland-0.0.0.0.20150907_1 +libopenmaxil.so rpi-userland-0.0.0.0.20150907_1 +libvchiq_arm.so rpi-userland-0.0.0.0.20150907_1 +libvcos.so rpi-userland-0.0.0.0.20150907_1 +libmmal.so rpi-userland-0.0.0.0.20150907_1 +libmmal_core.so rpi-userland-0.0.0.0.20150907_1 +libmmal_util.so rpi-userland-0.0.0.0.20150907_1 +libOpenVG.so rpi-userland-0.0.0.0.20150907_1 +libmmal_vc_client.so rpi-userland-20170427_1 +libmmal_components.so rpi-userland-20170427_1 +libvcsm.so rpi-userland-20170427_1 +libcontainers.so rpi-userland-20170427_1 +libbrcmWFC.so rpi-userland-20180103_1 +libdebug_sym.so rpi-userland-20180103_1 +libdtovl.so rpi-userland-20180103_1 +libwiringPi.so libwiringPi-0.0.20200408_1 +libwiringPiDev.so libwiringPi-0.0.20200408_1 +liblockdev.so.1 lockdev-1.0.3_1 +libcec.so.6 libcec-6.0.2_1 +librump.so.0 netbsd-rumpkernel-20140526_3 +librumpvfs.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_disk.so.0 netbsd-rumpkernel-20140526_3 +librumpdev.so.0 netbsd-rumpkernel-20140526_3 +librumpuser.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_sockin.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_net.so.0 netbsd-rumpkernel-20140526_3 +librumpnet.so.0 netbsd-rumpkernel-20140526_3 +librumpkern_sys_linux.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_netsmb.so.0 netbsd-rumpkernel-20140526_3 +librumpkern_crypto.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_usb.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_ulpt.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_umass.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_ugenhc.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_ucom.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_ubt.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_opencrypto.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_wscons.so.0 netbsd-rumpkernel-20140526_3 +librumpvfs_aio.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_sysmon.so.0 netbsd-rumpkernel-20140526_3 +librumpvfs_layerfs.so.0 netbsd-rumpkernel-20140526_3 +librumpvfs_fifofs.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_scsipi.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_nfsserver.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_rnd.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_v7fs.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_union.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_raidframe.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_umap.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_putter.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_udf.so.0 netbsd-rumpkernel-20140526_3 +librumphijack.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_tmpfs.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_pud.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_virtif.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_sysvbfs.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_pad.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_bpfjit.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_shmif.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_config.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_syspuffs.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_smbfs.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_local.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_npf.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_ptyfs.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_md.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_null.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_netmpls.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_netinet6.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_ntfs.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_nilfs.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_fss.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_netinet.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_netbt.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_msdos.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_nfs.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_drvctl.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_net80211.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_mfs.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_lfs.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_dm.so.0 netbsd-rumpkernel-20140526_3 +librumpkern_time.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_kernfs.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_hfs.so.0 netbsd-rumpkernel-20140526_3 +librumpkern_sljit.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_ffs.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_fdesc.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_bridge.so.0 netbsd-rumpkernel-20140526_3 +librumpkern_z.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_cgd.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_ext2fs.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_efs.so.0 netbsd-rumpkernel-20140526_3 +librumpnet_agr.so.0 netbsd-rumpkernel-20140526_3 +librumpkern_tty.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_bpf.so.0 netbsd-rumpkernel-20140526_3 +librumpfs_cd9660.so.0 netbsd-rumpkernel-20140526_3 +librumpdev_audio.so.0 netbsd-rumpkernel-20140526_3 +librumpclient.so.0 netbsd-rumpkernel-20140526_3 +libdotconf.so.0 dotconf-1.3_1 +libspeechd.so.2 speech-dispatcher-0.8_1 +libre2.so.10 re2-2023.03.01_1 +libminizip.so.1 minizip-1.2.7_1 +libsrtp2.so.1 libsrtp-2.1.0_1 +libjsoncpp.so.25 jsoncpp-1.9.5_1 +libesmtp.so.6 libesmtp-1.0.6_21 +libcaca.so.0 libcaca-0.99.beta18_3 +libcaca++.so.0 libcaca-0.99.beta18_3 +libunwind.so.8 libunwind-1.5.0_3 +libunwind-ptrace.so.0 libunwind-1.5.0_3 +libunwind-x86_64.so.8 libunwind-1.5.0_3 +libunwind-x86.so.8 libunwind-1.5.0_3 +libunwind-arm.so.8 libunwind-1.5.0_3 +libunwind-mips.so.8 libunwind-1.5.0_3 +libunwind-aarch64.so.8 libunwind-1.5.0_3 +libunwind-ppc32.so.8 libunwind-1.5.0_3 +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.6 libgit2-1.6.4_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 +libzzipfseeko-0.so.13 zziplib-0.13.62_1 +libzzipwrap-0.so.13 zziplib-0.13.62_1 +libzzipmmapped-0.so.13 zziplib-0.13.62_1 +libkworkspace5.so.5 kworkspace-5.14.5_2 +libdb-5.3.so libdb-5.3.21_1 +libdb_cxx-5.3.so libdb-cxx-5.3.21_1 +libcares.so.2 c-ares-1.10.0_1 +libcryptopp.so.8 crypto++-8.3.0_1 +libdbusmenu-glib.so.4 libdbusmenu-glib-12.10.2_1 +libdbusmenu-gtk3.so.4 libdbusmenu-gtk3-12.10.2_1 +libGrantlee_Templates.so.5 grantlee5-5.0.0_1 +libGrantlee_TextDocument.so.5 grantlee5-5.0.0_1 +librasqal.so.3 librasqal-0.9.30_1 +librdf.so.0 librdf-1.0.16_1 +libclucene-core.so.1 clucene-2.3.3.4_1 +libclucene-shared.so.1 clucene-2.3.3.4_1 +libclucene-contribs-lib.so.1 clucene-2.3.3.4_1 +libodbcinst.so.2 libodbc-2.3.1_1 +libodbc.so.2 libodbc-2.3.1_1 +libiodbc.so.2 libiodbc-3.52.8_1 +libiodbcinst.so.2 libiodbc-3.52.8_1 +libsolarus.so.1 solarus-1.6.2_1 +libsolarus-gui.so.1 solarus-1.6.2_1 +libplank.so.1 plank-0.11.0_1 +libssh.so.4 libssh-0.9.5_2 +libxcb-render-util.so.0 xcb-util-renderutil-0.3.8_1 +libKPim5GAPIPeople.so.5 libkgapi-23.04.0_1 +libKPim5GAPIBlogger.so.5 libkgapi-23.04.0_1 +libKPim5GAPILatitude.so.5 libkgapi-23.04.0_1 +libKPim5GAPICalendar.so.5 libkgapi-23.04.0_1 +libKPim5GAPICore.so.5 libkgapi-23.04.0_1 +libKPim5GAPITasks.so.5 libkgapi-23.04.0_1 +libKPim5GAPIMaps.so.5 libkgapi-23.04.0_1 +libKPim5GAPIDrive.so.5 libkgapi-23.04.0_1 +libqoauth.so.2 qoauth-qt5-2.0.0_1 +libIrrlicht.so.1.8 irrlicht-1.8_1 +libsnappy.so.1 snappy-1.1.0_1 +libbenchmark.so.1 benchmark-1.5.5_1 +libbenchmark_main.so.1 benchmark-1.5.5_1 +libbemenu.so.0 bemenu-0.6.5_1 +libKF5Torrent.so.6 libktorrent-2.1_1 +libvncserver.so.1 libvncserver-0.9.13_2 +libvncclient.so.1 libvncserver-0.9.13_2 +libotr.so.5 libotr-4.0.0_1 +liballeg.so.4.4 allegro4-4.4.2_1 +liballeggl.so.4.4 allegro4-4.4.2_1 +libjpgalleg.so.4.4 allegro4-4.4.2_1 +libloadpng.so.4.4 allegro4-4.4.2_1 +liblogg.so.4.4 allegro4-4.4.2_1 +libraw1394.so.11 libraw1394-2.1.0_1 +libqmi-glib.so.5 libqmi-1.14.2_1 +libmbim-glib.so.4 libmbim-1.10.0_1 +libmm-glib.so.0 libmm-glib-1.0.0_1 +libgpm.so.2 libgpm-1.20.7_1 +libgdl-3.so.5 gdl-3.8.1_1 +libgda-5.0.so.4 libgda-5.2.9_4 +libgda-report-5.0.so.4 libgda-5.2.9_4 +libgda-ui-5.0.so.4 libgda-5.2.9_4 +libgda-xslt-5.0.so.4 libgda-5.2.9_4 +libamtk-5.so.0 amtk-5.0.0_1 +libdevhelp-3.so.6 devhelp-libs-3.30.0_1 +libunistring.so.2 libunistring-0.9.4_1 +libguile-2.2.so.1 libguile-2.2.7_1 +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 +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 +libusbip.so.0 libusbip-3.10_1 +libcpupower.so.0 libcpupower-3.10_1 +librsync.so.2 librsync-1.0.0_1 +libserf-1.so.1 serf-1.3.9_13 +libmpdclient.so.2 libmpdclient-0.28_1 +libmcrypt.so.4 libmcrypt-2.5.8_1 +libgraphite2.so.3 graphite-1.2.3_1 +libFOX-1.6.so.0 fox-1.6.49_1 +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-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.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 +libcacard.so.0 libcacard-1.6.1_1 +libxcb-cursor.so.0 xcb-util-cursor-0.1.0_1 +libgldi.so.3 libgldi-3.3.1_1 +libevdev.so.2 libevdev-1.2_1 +libgdiplus.so.0 libgdiplus-2.10.9_1 +libmonosgen-2.0.so.1 mono-3.2.3_1 +libshout-idjc.so.3 libshout-idjc-2.3.1_1 +libmonoboehm-2.0.so.1 mono-3.2.3_1 +libglusterfs.so.0 libglusterfs-8.3_2 +libgfdb.so.0 libglusterfs-8.3_2 +libgfchangelog.so.0 libglusterfs-8.3_2 +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.6 libsnapper-0.10.2_1 +libtsm.so.4 libtsm-4.0.2_1 +libxine.so.2 libxine-1.2.4_1 +libjbig2dec.so.0 libjbig2dec-0.11_1 +libsource-highlight.so.4 libsource-highlight-3.1.7_1 +libvlc.so.5 libvlc-2.1.1_3 +libvlccore.so.9 libvlc-3.0.2_1 +libvlc_vdpau.so.0 libvlc-2.2.0_1 +libvlc_pulse.so.0 libvlc-3.0.2_1 +libvlc_xcb_events.so.0 libvlc-3.0.2_1 +libcmocka.so.0 cmocka-1.1.1_1 +libbtrfs.so.0 libbtrfs-3.12_1 +libreiserfscore.so.0 reiserfsprogs-3.6.27_3 +libbtrfsutil.so.1 libbtrfsutil-5.4_1 +libecore_audio.so.1 efl-1.25.1_2 +libecore_con.so.1 efl-1.25.1_2 +libecore_evas.so.1 efl-1.25.1_2 +libecore_file.so.1 efl-1.25.1_2 +libecore_imf_evas.so.1 efl-1.25.1_2 +libecore_imf.so.1 efl-1.25.1_2 +libecore_input_evas.so.1 efl-1.25.1_2 +libecore_input.so.1 efl-1.25.1_2 +libecore_ipc.so.1 efl-1.25.1_2 +libecore.so.1 efl-1.25.1_2 +libecore_x.so.1 efl-1.25.1_2 +libecore_wl2.so.1 efl-1.25.1_2 +libecore_drm2.so.1 efl-1.25.1_2 +libedje.so.1 efl-1.25.1_2 +libeet.so.1 efl-1.25.1_2 +libeeze.so.1 efl-1.25.1_2 +libefreet_mime.so.1 efl-1.25.1_2 +libefreet.so.1 efl-1.25.1_2 +libefreet_trash.so.1 efl-1.25.1_2 +libeina.so.1 efl-1.25.1_2 +libeio.so.1 efl-1.25.1_2 +libeldbus.so.1 efl-1.25.1_2 +libelput.so.1 efl-1.25.1_2 +libembryo.so.1 efl-1.25.1_2 +libemotion.so.1 efl-1.25.1_2 +libeo.so.1 efl-1.25.1_2 +libethumb_client.so.1 efl-1.25.1_2 +libethumb.so.1 efl-1.25.1_2 +libevas.so.1 efl-1.25.1_2 +libefl.so.1 efl-1.25.1_2 +libefl_canvas_wl.so.1 efl-1.25.1_2 +libelua.so.1 efl-1.25.1_2 +libelocation.so.1 efl-1.25.1_2 +libelementary.so.1 efl-1.25.1_2 +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.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 +libnemo-extension.so.1 libnemo-2.0.8_1 +libtimezonemap.so.1 libtimezonemap-0.4.6_1 +libxshmfence.so.1 libxshmfence-1.1_1 +libgoffice-0.10.so.10 goffice-0.10.9_1 +libc++.so.1 libcxx-3.4_1 +libopenobex.so.2 openobex-1.7.1_1 +libnotmuch.so.5 libnotmuch-0.25_1 +libatomic_ops_gpl.so.1 libatomic_ops-7.4.2_1 +libatomic_ops.so.1 libatomic_ops-7.4.2_1 +libbfb.so.1 libbfb-0.24.2_1 +libmulticobex.so.1 libmulticobex-0.24_1 +libobexftp.so.0 libobexftp-0.24_1 +libhunspell-1.7.so.0 libhunspell1.7-1.7.0_1 +libstdlog.so.0 liblogging-1.0.0_1 +liblogging-stdlog.so.0 liblogging-1.0.2_1 +libdom.so.0 libdom-0.0.1_1 +libslang.so.2 slang-2.2.4_1 +libtre.so.5 tre-0.8.0_1 +libktoblzcheck.so.1 ktoblzcheck-1.43_2 +libgwenhywfar.so.79 gwenhywfar-5.4.0_2 +libgwengui-gtk2.so.79 gwenhywfar-gtk-5.4.0_2 +libgwengui-gtk3.so.79 gwenhywfar-gtk3-5.4.0_2 +libgwengui-cpp.so.79 gwenhywfar-5.4.0_2 +libgwengui-qt5.so.79 gwenhywfar-qt5-5.4.0_2 +libaqbanking.so.44 aqbanking-6.0.0_1 +libaqnone.so.35 aqbanking-5.6.10_1 +libaqhbci.so.24 aqbanking-5.7.8_1 +libaqofxconnect.so.7 aqbanking-5.0.25_1 +libaqebics.so.0 aqbanking-5.0.25_1 +libaqbankingpp.so.0 aqbanking-5.0.25_1 +libxmlsec1.so.1 xmlsec1-1.2.31_2 +libxmlsec1-nss.so.1 xmlsec1-1.2.31_2 +libxmlsec1-openssl.so.1 xmlsec1-1.2.31_2 +libcheck.so.0 check-0.9.12_1 +liblxc.so.1 liblxc-4.0.6_2 +libtcmalloc.so.4 gperftools-2.1_1 +libaio.so.1 libaio-0.3.109_1 +libofx.so.7 libofx-0.10.1_1 +libsigsegv.so.2 libsigsegv-2.10_2 +libfprint.so.0 libfprint0-1.0_1 +libfprint-2.so.2 libfprint-1.90.7_1 +libwx_baseu_xml-3.0.so.0 wxWidgets-common-3.0.4_1 +libwx_baseu-3.0.so.0 wxWidgets-common-3.0.4_1 +libwx_gtk2_adv-3.0.so.0 wxWidgets-3.0.0_1 +libwx_base_xml-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2_html-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2_aui-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2_core-3.0.so.0 wxWidgets-3.0.0_1 +libwx_base_net-3.0.so.0 wxWidgets-3.0.0_1 +libwx_base-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_gl-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_stc-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_adv-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_qa-3.0.so.0 wxWidgets-3.0.0_1 +libwx_baseu_net-3.0.so.0 wxWidgets-common-3.0.4_1 +libwx_gtk2u_core-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_richtext-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_propgrid-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_html-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_xrc-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_aui-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_ribbon-3.0.so.0 wxWidgets-3.0.0_1 +libwx_gtk2u_media-3.0.so.0 wxWidgets-3.0.1_1 +libmspack.so.0 libmspack-0.4alpha_1 +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 +libgtkhex-4.so.1 libgtkhex-43.0_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 +libdovecot-login.so.0 dovecot-2.3.13_3 +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.13 libwireshark-4.0.0_1 +libwireshark.so.16 libwireshark-4.0.0_1 +libwsutil.so.14 libwireshark-4.0.0_1 +libKPim5ContactEditor.so.5 akonadi-contacts-23.04.0_1 +libKPim5AkonadiContact.so.5 akonadi-contacts-23.04.0_1 +libKF5Prison.so.5 prison-5.43.0_1 +libKPim5AkonadiMime.so.5 akonadi-mime-23.04.0_1 +libKPim5Mime.so.5 kmime-23.04.0_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 +libKPipeWireRecord.so.5 kpipewire-5.27.0_1 +libKPipeWireDmaBuf.so.5 kpipewire-5.27.0_1 +libZXing.so.3 zxing-cpp-2.0.0_1 +libfreerdp-client2.so.2 libfreerdp-2.2.0_3 +libfreerdp2.so.2 libfreerdp-2.2.0_3 +libwinpr2.so.2 libfreerdp-2.2.0_3 +libwinpr-tools2.so.2 libfreerdp-2.2.0_3 +libfreerdp-core.so.1.0 libfreerdp-2.2.0_3 +libfreerdp-channels.so.1.0 libfreerdp-2.2.0_3 +libfreerdp-rail.so.1.0 libfreerdp-2.2.0_3 +libfreerdp-kbd.so.1.0 libfreerdp-2.2.0_3 +libfreerdp-utils.so.1.0 libfreerdp-2.2.0_3 +libfreerdp-codec.so.1.0 libfreerdp-2.2.0_3 +libfreerdp-gdi.so.1.0 libfreerdp-2.2.0_3 +libfreerdp-cache.so.1.0 libfreerdp-2.2.0_3 +libuwac0.so.0 libfreerdp-2.2.0_3 +libfreerdp-server2.so.2 libfreerdp-server-2.4.0_1 +libfreerdp-shadow-subsystem2.so.2 libfreerdp-server-2.4.0_1 +libfreerdp-shadow2.so.2 libfreerdp-server-2.4.0_1 +libcppunit-1.15.so.1 libcppunit-1.15.1_1 +libcalc.so.2.14.1.2 libcalc-2.14.1.2_1 +libcustcalc.so.2.14.1.2 libcalc-2.14.1.2_1 +libOgreMain.so.1.12.9 libogre-1.12.9_1 +libOgreBites.so.1.12.9 libogre-1.12.9_1 +libOgreOverlay.so.1.12.9 libogre-1.12.9_1 +libOgreProperty.so.1.12.9 libogre-1.12.9_1 +libOgreTerrain.so.1.12.9 libogre-1.12.9_1 +libOgreVolume.so.1.12.9 libogre-1.12.9_1 +libOgreRTShaderSystem.so.1.12.9 libogre-1.12.9_1 +libOgreMeshLodGenerator.so.1.12.9 libogre-1.12.9_1 +libOgrePaging.so.1.12.9 libogre-1.12.9_1 +libglut.so.3 libfreeglut-2.8.1_1 +libogmrip-gtk.so.1 ogmrip-1.0.0_1 +libogmdvd.so.1 ogmrip-1.0.0_1 +libogmjob.so.1 ogmrip-1.0.0_1 +libogmrip-mplayer.so.1 ogmrip-1.0.0_1 +libogmrip.so.1 ogmrip-1.0.0_1 +libogmrip-lavc.so.1 ogmrip-1.0.0_1 +libogmdvd-gtk.so.1 ogmrip-1.0.0_1 +libSDL2_image-2.0.so.0 SDL2_image-2.0.0_1 +liba2ps.so.1 liba2ps-4.14_1 +libplibul.so.1 plib-1.8.5_1 +libplibjs.so.1 plib-1.8.5_1 +libplibsl.so.1 plib-1.8.5_1 +libplibsm.so.1 plib-1.8.5_1 +libplibfnt.so.1 plib-1.8.5_1 +libplibpu.so.1 plib-1.8.5_1 +libplibsg.so.1 plib-1.8.5_1 +libplibssg.so.1 plib-1.8.5_1 +libplibpuaux.so.1 plib-1.8.5_1 +libplibssgaux.so.1 plib-1.8.5_1 +libplibnet.so.1 plib-1.8.5_1 +libplibpsl.so.1 plib-1.8.5_1 +libplibpw.so.1 plib-1.8.5_1 +libode.so.8 libode-0.16_1 +libosmocore.so.12 libosmocore-1.2.0_1 +libosmovty.so.4 libosmocore-0.10.2_1 +libosmosim.so.0 libosmocore-0.8.0_1 +libosmocodec.so.0 libosmocore-0.6.6_1 +libosmogsm.so.13 libosmocore-1.2.0_1 +libosmogb.so.9 libosmocore-1.2.0_1 +libosmoctrl.so.0 libosmocore-0.7.0_1 +libgtkglext-x11-1.0.so.0 gtkglext-1.2.0_4 +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.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 +libcmuclmtk.so.0 libcmuclmtk-0.7_2 +libttsmimic.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_usenglish.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmu_grapheme_lang.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmu_indic_lang.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmulex.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmu_indic_lex.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmu_grapheme_lex.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmu_us_kal.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmu_time_awb.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmu_us_kal16.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmu_us_awb.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmu_us_rms.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_cmu_us_slt.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_vid_gb_ap.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_all_langs.so.0 mimic-1.2.0.2_1 +libttsmimic_lang_all_voices.so.0 mimic-1.2.0.2_1 +libtcmalloc_minimal.so.4 gperftools-2.1.90_1 +libtcmalloc_minimal_debug.so.4 gperftools-2.1.90_1 +libtcmalloc_debug.so.4 gperftools-2.1.90_1 +libprofiler.so.0 gperftools-2.1.90_1 +libtcmalloc_and_profiler.so.4 gperftools-2.1.90_1 +libIlmImf-2_4.so.24 libopenexr-2.4.0_1 +libIlmImfUtil-2_4.so.24 libopenexr-2.4.0_1 +libGraphicsMagick.so.3 libgraphicsmagick-1.3.19_1 +libGraphicsMagick++.so.12 libgraphicsmagick-1.3.22_1 +libGraphicsMagickWand.so.2 libgraphicsmagick-1.3.19_1 +liblensfun.so.1 lensfun-0.3.2_1 +libmitlm.so.1 mitlm-0.4.2_1 +libextractor.so.3 libextractor-1.1_1 +libextractor_common.so.1 libextractor-1.1_1 +libpano13.so.3 libpano13-2.9.19_1 +libubsan.so.1 libsanitizer-8.2.0_1 +libtsan.so.2 libsanitizer-12.2.0_1 +libasan.so.8 libsanitizer-12.2.0_1 +liblsan.so.0 libsanitizer-6.3.0_1 +libvtv.so.0 libvtv-6.3.0_1 +libatomic.so.1 libatomic-4.9.0_1 +libpcsclite.so.1 libpcsclite-1.8.11_1 +libpcscspy.so.0 libpcsclite-1.8.11_1 +libBulletDynamics.so.3.17 bullet-3.17_1 +libBulletCollision.so.3.17 bullet-3.17_1 +libLinearMath.so.3.17 bullet-3.17_1 +libBulletSoftBody.so.3.17 bullet-3.17_1 +libBullet3Common.so.3.17 bullet-3.17_1 +libinotifytools.so.0 libinotify-tools-3.14_2 +libfswatch.so.13 libfswatch-1.17.1_1 +libopensc.so.8 libopensc-0.22.0_1 +libSDL2_ttf-2.0.so.0 SDL2_ttf-2.0.12_1 +librtlsdr.so.0 librtlsdr-0.5.3_1 +libSDL2_mixer-2.0.so.0 SDL2_mixer-2.0.0_1 +libSDL2_net-2.0.so.0 SDL2_net-2.0.0_1 +libnxml.so.0 libnxml-0.18.3_1 +libmrss.so.0 libmrss-0.19.2_1 +libuv.so.1 libuv-1.0.0_1 +libXm.so.4 motif-2.3.8_1 +libMrm.so.4 motif-2.3.8_1 +libUil.so.4 motif-2.3.8_1 +libxmlsec1-gcrypt.so.1 xmlsec1-1.2.31_2 +libxmlsec1-gnutls.so.1 xmlsec1-1.2.31_2 +libefivar.so.1 libefivar-31_1 +libefiboot.so.1 libefivar-31_1 +libefisec.so.1 libefivar-38_1 +libportaudio.so.2 portaudio-19.20140130_1 +libportaudiocpp.so.0 portaudio-cpp-19.20140130_1 +libdar.so.6000 libdar-2.6.6_1 +libdar64.so.6000 libdar-2.6.6_1 +libpython3.so python3-3.9.2_2 +libpython3.11.so.1.0 python3-3.11.0_1 +libbrscandec2.so.1 brother-brscan3-0.2.11_2 +libpyglib-2.0-python.so.0 python-gobject2-2.28.6_11 +libxmlrpc_server_abyss.so.3 xmlrpc-c-1.51.06_2 +libxmlrpc++.so.8 xmlrpc-c-1.51.06_2 +libxmlrpc_server.so.3 xmlrpc-c-1.51.06_2 +libxmlrpc_packetsocket.so.8 xmlrpc-c-1.51.06_2 +libxmlrpc.so.3 xmlrpc-c-1.51.06_2 +libxmlrpc_util.so.4 xmlrpc-c-1.51.06_2 +libxmlrpc_abyss.so.3 xmlrpc-c-1.51.06_2 +libxmlrpc_server_abyss++.so.8 xmlrpc-c-1.51.06_2 +libxmlrpc_cpp.so.8 xmlrpc-c-1.51.06_2 +libxmlrpc_client++.so.8 xmlrpc-c-1.51.06_2 +libxmlrpc_server++.so.8 xmlrpc-c-1.51.06_2 +libxmlrpc_server_cgi++.so.8 xmlrpc-c-1.51.06_2 +libxmlrpc_server_pstream++.so.8 xmlrpc-c-1.51.06_2 +libxmlrpc_client.so.3 xmlrpc-c-1.51.06_2 +libxmlrpc_util++.so.8 xmlrpc-c-1.51.06_2 +libxmlrpc_abyss++.so.8 xmlrpc-c-1.51.06_2 +libtelepathy-farstream.so.3 telepathy-farstream-0.6.0_6 +libnetpbm.so.11 libnetpbm-10.66.03_2 +libid3.so id3lib-3.8.3_7 +libid3-3.8.so.3 id3lib-3.8.3_7 +libgirara-gtk3.so.3 girara-0.2.8_1 +libjq.so.1 jq-1.6_2 +libcrypto.so.1.1 libcrypto1.1-1.1.1f_1 +libssl.so.1.1 libssl1.1-1.1.1f_1 +libvamp-hostsdk.so.3 libvamp-plugin-sdk-2.2_6 +libportmidi.so portmidi-217_1 +libWildMidi.so.2 libwildmidi-0.4.3_1 +libsox.so.3 sox-14.4.2_1 +libsoxr.so.0 libsoxr-0.1.2_1 +libsoxr-lsr.so.0 libsoxr-0.1.2_1 +libdumb.so.2 dumb-2.0.3_1 +libaldmb.so.2 aldumb-2.0.3_3 +libframe.so.6 frame-2.5.0_1 +libgrail.so.6 grail-3.1.0_1 +libgeis.so.1 geis-2.2.16_1 +libndp.so.0 libndp-1.3_1 +libepoxy.so.0 libepoxy-1.2_1 +libfakekey.so.0 libfakekey-0.1_1 +libsmartcols.so.1 libsmartcols-2.25_1 +libfdisk.so.1 libfdisk-2.26_1 +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.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 +libdshconfig.so.1 libdshconfig-0.20.13_1 +libpar2.so.1 libpar2-0.4_1 +libsodium.so.23 libsodium-1.0.15_1 +libstrophe.so.0 libstrophe-0.10.1_2 +libganv-1.so.1 ganv-1.4.2_1 +libblas.so.3 blas-3.5.0_1 +libcblas.so.3 cblas-3.6.0_1 +liblapack.so.3 lapack-3.5.0_1 +libcinnamon-menu-3.so.0 cinnamon-menus-2.2.0_1 +libmate-desktop-2.so.17 mate-desktop-1.8.0_1 +libmarco-private.so.2 libmarco-1.22.2_1 +libmate-menu.so.2 mate-menus-1.8.0_1 +libcaja-extension.so.1 libcaja-1.8.1_1 +libmatekbd.so.4 libmatekbd-1.8.0_1 +libmatemixer.so.0 libmatemixer-1.10.0_1 +libmatekbdui.so.4 libmatekbd-1.8.0_1 +libmate-window-settings.so.1 libmate-control-center-1.8.1_1 +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 +libawt.so openjdk8-jre-8u20_1 +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-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 +libjava.so openjdk7-bootstrap-7u221b02_1 +libjli.so openjdk7-bootstrap-7u221b02_1 +libjvm.so openjdk7-bootstrap-7u221b02_1 +libjawt.so openjdk9-bootstrap-9.0.4p12_1 +libawt.so openjdk9-bootstrap-9.0.4p12_1 +libawt_xawt.so openjdk9-bootstrap-9.0.4p12_1 +libjava.so openjdk9-bootstrap-9.0.4p12_1 +libjli.so openjdk9-bootstrap-9.0.4p12_1 +libjvm.so openjdk9-bootstrap-9.0.4p12_1 +libjawt.so openjdk10-bootstrap-10.0.2p13_1 +libawt.so openjdk10-bootstrap-10.0.2p13_1 +libawt_xawt.so openjdk10-bootstrap-10.0.2p13_1 +libjava.so openjdk10-bootstrap-10.0.2p13_1 +libjli.so openjdk10-bootstrap-10.0.2p13_1 +libjvm.so openjdk10-bootstrap-10.0.2p13_1 +libjawt.so mandrel-21.1.0.0_1 +libawt.so mandrel-21.1.0.0_1 +libawt_xawt.so mandrel-21.1.0.0_1 +libjava.so mandrel-21.1.0.0_1 +libjli.so mandrel-21.1.0.0_1 +libjvm.so mandrel-21.1.0.0_1 +libucl.so.5 libucl-0.8.1_6 +libhandle.so.1 xfsprogs-3.2.1_1 +libnfnetlink.so.0 libnfnetlink-1.0.1_1 +libnetfilter_log.so.1 libnetfilter_log-1.0.1_1 +libnetfilter_log_libipulog.so.1 libnetfilter_log-1.0.1_1 +libnetfilter_acct.so.1 libnetfilter_acct-1.0.2_1 +libnetfilter_conntrack.so.3 libnetfilter_conntrack-1.0.4_1 +libmsgpack.so.4 msgpack-1.1.0_1 +libmsgpackc.so.2 msgpack-1.1.0_1 +libewf.so.3 libewf-20171104_1 +libcupsfilters.so.1 libcups-filters-1.0.67_3 +libfontembed.so.1 libcups-filters-1.17.5_1 +libjemalloc.so.2 jemalloc-4.0.0_1 +liblucene++.so.0 Lucene++-3.0.6_1 +liblucene++-contrib.so.0 Lucene++-3.0.6_1 +libeolian.so.1 efl-1.25.1_2 +libecore_avahi.so.1 efl-1.25.1_2 +libephysics.so.1 efl-1.25.1_2 +libgunicode.so.5 fontforge-2.0.20190317_1 +libgutils.so.3 fontforge-2.0.20190317_1 +libgioftp.so.2 fontforge-2.0.20140101_3 +libfontforge.so.4 fontforge-20200314_1 +libgdraw.so.6 fontforge-2.0.20190317_1 +libfontforgeexe.so.3 fontforge-2.0.20190317_1 +libwraster.so.6 WindowMaker-0.95.8_1 +libWUtil.so.5 WindowMaker-0.95.6_3 +libWINGs.so.3 WindowMaker-0.95.6_3 +libWMaker.so.1 WindowMaker-0.95.6_3 +librevenge-0.0.so.0 librevenge-0.0.1_1 +librevenge-generators-0.0.so.0 librevenge-0.0.1_1 +librevenge-stream-0.0.so.0 librevenge-0.0.1_1 +libepubgen-0.1.so.1 libepubgen-0.1.0_1 +libqxp-0.0.so.0 libqxp-0.0.1_1 +libetonyek-0.1.so.1 libetonyek-0.1.1_1 +libodfgen-0.1.so.1 libodfgen-0.1.1_1 +libKF5SonnetUi.so.5 sonnet-5.26.0_1 +libKF5SonnetCore.so.5 sonnet-5.26.0_1 +libcdr-0.1.so.1 libcdr-0.1.0_1 +libmspub-0.1.so.1 libmspub-0.1.1_1 +libvisio-0.1.so.1 libvisio-0.1.0_1 +libwpd-0.10.so.10 libwpd-0.10.0_1 +libwps-0.4.so.4 libwps-0.4.3_1 +libwpg-0.3.so.3 libwpg-0.3.0_1 +libvigraimpex.so.11 vigra-1.11.0_1 +libhyphen.so.0 hyphen-2.8.8_1 +libmythes-1.2.so.0 mythes-1.2.4_1 +liblpsolve55.so lpsolve-5.5.2.0_1 +liblangtag.so.1 liblangtag-0.5.4_1 +liblangtag-gobject.so.0 liblangtag-0.5.4_1 +libexttextcat-2.0.so.0 libexttextcat-3.4.3_1 +libledger.so.3 libledger-3.1_1 +libksba.so.8 libksba-1.3.1_1 +libgltf-0.0.so.0 libgltf-0.0.2_1 +libgltf-0.1.so.1 libgltf-0.1.0_1 +libabw-0.1.so.1 libabw-0.1.0_1 +libcmis-0.5.so.5 libcmis-0.5.0_1 +libcmis-c-0.5.so.5 libcmis-0.5.0_1 +libQt5Bluetooth.so.5 qt5-connectivity-5.15.2_3 +libQt53DAnimation.so.5 qt5-3d-5.15.2_3 +libQt53DCore.so.5 qt5-3d-5.15.2_3 +libQt53DInput.so.5 qt5-3d-5.15.2_3 +libQt53DLogic.so.5 qt5-3d-5.15.2_3 +libQt53DRender.so.5 qt5-3d-5.15.2_3 +libQt53DQuick.so.5 qt5-3d-5.15.2_3 +libQt53DQuickInput.so.5 qt5-3d-5.15.2_3 +libQt53DQuickRender.so.5 qt5-3d-5.15.2_3 +libQt53DQuickScene2D.so.5 qt5-3d-5.15.2_3 +libQt53DExtras.so.5 qt5-3d-5.15.2_3 +libQt53DQuickExtras.so.5 qt5-3d-5.15.2_3 +libQt53DQuickAnimation.so.5 qt5-3d-5.15.2_3 +libQt5Charts.so.5 qt5-charts-5.15.2_3 +libQt5DataVisualization.so.5 qt5-datavis3d-5.15.2_3 +libQt5Gamepad.so.5 qt5-gamepad-5.15.2_3 +libQt5Nfc.so.5 qt5-connectivity-5.15.2_3 +libQt5WebView.so.5 qt5-webview-5.15.0_1 +libQt5Qml.so.5 qt5-declarative-5.15.2_3 +libQt5QmlDevTools.so.5 qt5-declarative-5.15.2_3 +libQt5Quick.so.5 qt5-declarative-5.15.2_3 +libQt5QuickTest.so.5 qt5-declarative-5.15.2_3 +libQt5QuickWidgets.so.5 qt5-declarative-5.15.2_3 +libQt5QuickParticles.so.5 qt5-declarative-5.15.2_3 +libQt5QuickShapes.so.5 qt5-declarative-5.15.2_3 +libQt5QmlModels.so.5 qt5-declarative-5.15.2_3 +libQt5QmlWorkerScript.so.5 qt5-declarative-5.15.2_3 +libQt5QuickControls2.so.5 qt5-quickcontrols2-5.15.2_3 +libQt5QuickTemplates2.so.5 qt5-quickcontrols2-5.15.2_3 +libQt5Positioning.so.5 qt5-location-5.15.2_3 +libQt5Location.so.5 qt5-location-5.15.2_3 +libQt5PositioningQuick.so.5 qt5-location-5.15.2_3 +libQt5VirtualKeyboard.so.5 qt5-virtualkeyboard-5.15.2_3 +libQt5Multimedia.so.5 qt5-multimedia-5.15.2_3 +libQt5MultimediaGstTools.so.5 qt5-multimedia-5.15.2_3 +libQt5MultimediaQuick.so.5 qt5-multimedia-5.15.2_3 +libQt5MultimediaQuick_p.so.5 qt5-multimedia-5.15.2_3 +libQt5MultimediaWidgets.so.5 qt5-multimedia-5.15.2_3 +libQt5NetworkAuth.so.5 qt5-networkauth-5.15.2_3 +libQt5Purchasing.so.5 qt5-purchasing-5.15.2_3 +libQt5RemoteObjects.so.5 qt5-remoteobjects-5.15.2_3 +libqgsttools_p.so.1 qt5-multimedia-5.15.2_3 +libQt5LabsTemplates.so.5 qt5-quickcontrols2-5.15.2_3 +libQt5Scxml.so.5 qt5-scxml-5.15.2_3 +libQt5Script.so.5 qt5-script-5.15.2_3 +libQt5ScriptTools.so.5 qt5-script-5.15.2_3 +libQt5Sensors.so.5 qt5-sensors-5.15.2_3 +libQt5SerialBus.so.5 qt5-serialbus-5.15.2_3 +libQt5SerialPort.so.5 qt5-serialport-5.15.2_3 +libQt5Svg.so.5 qt5-svg-5.15.2_3 +libQt5CLucene.so.5 qt5-tools-5.15.2_3 +libQt5Help.so.5 qt5-tools-5.15.2_3 +libQt5Designer.so.5 qt5-tools-5.15.2_3 +libQt5DesignerComponents.so.5 qt5-tools-5.15.2_3 +libQt5WaylandClient.so.5 qt5-wayland-5.15.2_3 +libQt5WaylandCompositor.so.5 qt5-wayland-5.15.2_3 +libQt5WebChannel.so.5 qt5-webchannel-5.15.2_3 +libQt5WebEngineCore.so.5 qt5-webengine-5.15.0_1 +libQt5WebEngine.so.5 qt5-webengine-5.15.0_1 +libQt5WebEngineWidgets.so.5 qt5-webengine-5.15.0_1 +libQt5WebSockets.so.5 qt5-websockets-5.15.2_3 +libQt5X11Extras.so.5 qt5-x11extras-5.15.2_3 +libQt5XmlPatterns.so.5 qt5-xmlpatterns-5.15.2_3 +libQt5Core.so.5 qt5-core-5.15.2_3 +libQt5EglFSDeviceIntegration.so.5 qt5-gui-5.15.2_3 +libQt5Network.so.5 qt5-network-5.15.2_3 +libQt5Sql.so.5 qt5-sql-5.15.2_3 +libQt5Xml.so.5 qt5-xml-5.15.2_3 +libQt5Gui.so.5 qt5-gui-5.15.2_3 +libQt5Widgets.so.5 qt5-widgets-5.15.2_3 +libQt5Test.so.5 qt5-test-5.15.2_3 +libQt5DBus.so.5 qt5-dbus-5.15.2_3 +libQt5Concurrent.so.5 qt5-concurrent-5.15.2_3 +libQt5OpenGL.so.5 qt5-opengl-5.15.2_3 +libQt5PrintSupport.so.5 qt5-printsupport-5.15.2_3 +libQt5XcbQpa.so.5 qt5-gui-5.15.2_3 +libQt5EglDeviceIntegration.so.5 qt5-gui-5.15.2_3 +libQt5EglFsKmsSupport.so.5 qt5-gui-5.15.2_3 +libQt5TextToSpeech.so.5 qt5-speech-5.15.2_3 +libQt5Bodymovin.so.5 qt5-lottie-5.15.2_3 +libQt5WebKit.so.5 qt5-webkit-5.6.0_1 +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.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 +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.13 libfm-qt-1.3.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 +libQt6DBus.so.6 qt6-dbus-6.0.0_1 +libQt6PrintSupport.so.6 qt6-printsupport-6.0.0_1 +libQt6Concurrent.so.6 qt6-concurrent-6.0.0_1 +libQt6Widgets.so.6 qt6-widgets-6.0.0_1 +libQt6Network.so.6 qt6-network-6.0.0_1 +libQt6Sql.so.6 qt6-sql-6.0.0_1 +libQt6Xml.so.6 qt6-xml-6.0.0_1 +libQt6Gui.so.6 qt6-gui-6.0.0_1 +libQt6XcbQpa.so.6 qt6-gui-6.0.0_1 +libQt6EglFSDeviceIntegration.so.6 qt6-gui-6.0.0_1 +libQt6EglFsKmsSupport.so.6 qt6-gui-6.0.0_1 +libQt6EglFsKmsGbmSupport.so.6 qt6-gui-6.0.0_1 +libQt6OpenGLWidgets.so.6 qt6-opengl-widgets-6.0.0_1 +libQt6Test.so.6 qt6-test-6.0.0_1 +libQt6WaylandCompositor.so.6 qt6-wayland-6.0.0_1 +libQt6WaylandClient.so.6 qt6-wayland-6.0.0_1 +libQt6Core5Compat.so.6 qt6-qt5compat-6.0.0_1 +libQt6Svg.so.6 qt6-svg-6.0.0_1 +libQt6SvgWidgets.so.6 qt6-svg-6.0.0_1 +libQt6Qml.so.6 qt6-declarative-6.0.0_1 +libQt6LabsAnimation.so.6 qt6-declarative-6.1.0_1 +libQt6LabsFolderListModel.so.6 qt6-declarative-6.1.0_1 +libQt6LabsQmlModels.so.6 qt6-declarative-6.1.0_1 +libQt6LabsSettings.so.6 qt6-declarative-6.1.0_1 +libQt6LabsSharedImage.so.6 qt6-declarative-6.1.0_1 +libQt6LabsWavefrontMesh.so.6 qt6-declarative-6.1.0_1 +libQt6QmlLocalStorage.so.6 qt6-declarative-6.1.0_1 +libQt6QmlWorkerScript.so.6 qt6-declarative-6.0.0_1 +libQt6QuickTest.so.6 qt6-quick-test-6.4.2_1 +libQt6QuickShapes.so.6 qt6-declarative-6.0.0_1 +libQt6QuickWidgets.so.6 qt6-declarative-6.0.0_1 +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 libqt6shadertools-6.4.2_1 +libQt6Quick3D.so.6 qt6-quick3d-6.0.0_1 +libQt6Quick3DRuntimeRender.so.6 qt6-quick3d-6.0.0_1 +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 +libQt6NetworkAuth.so.6 qt6-networkauth-6.1.0rc2_1 +libQt6ScxmlQml.so.6 qt6-scxml-6.1.0rc2_1 +libQt6Scxml.so.6 qt6-scxml-6.1.0rc2_1 +libQt6StateMachine.so.6 qt6-scxml-6.1.0rc2_1 +libQt6StateMachineQml.so.6 qt6-scxml-6.1.0rc2_1 +libQt6Bodymovin.so.6 qt6-lottie-6.1.0rc2_1 +libQt63DQuickAnimation.so.6 qt6-3d-6.1.0rc2_1 +libQt63DQuickRender.so.6 qt6-3d-6.1.0rc2_1 +libQt63DExtras.so.6 qt6-3d-6.1.0rc2_1 +libQt63DQuickInput.so.6 qt6-3d-6.1.0rc2_1 +libQt63DCore.so.6 qt6-3d-6.1.0rc2_1 +libQt63DQuickScene2D.so.6 qt6-3d-6.1.0rc2_1 +libQt63DLogic.so.6 qt6-3d-6.1.0rc2_1 +libQt63DRender.so.6 qt6-3d-6.1.0rc2_1 +libQt63DAnimation.so.6 qt6-3d-6.1.0rc2_1 +libQt63DQuickExtras.so.6 qt6-3d-6.1.0rc2_1 +libQt63DInput.so.6 qt6-3d-6.1.0rc2_1 +libQt63DQuick.so.6 qt6-3d-6.1.0rc2_1 +libQt6Charts.so.6 qt6-charts-6.1.0rc2_1 +libQt6Designer.so.6 qt6-designer-6.4.2_1 +libQt6DesignerComponents.so.6 qt6-designer-6.4.2_1 +libQt6Help.so.6 qt6-help-6.4.2_1 +libQt6UiTools.so.6 qt6-ui-tools-6.4.2_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 +libQt6SpatialAudio.so.6 qt6-multimedia-6.3.1_1 +libQt6WebEngineQuick.so.6 qt6-webengine-6.3.1_1 +libQt6PdfWidgets.so.6 qt6-webengine-6.3.1_1 +libQt6PdfQuick.so.6 qt6-webengine-6.3.1_1 +libQt6WebEngineCore.so.6 qt6-webengine-6.3.1_1 +libQt6Pdf.so.6 qt6-webengine-6.3.1_1 +libQt6WebEngineQuickDelegatesQml.so.6 qt6-webengine-6.3.1_1 +libQt6WebEngineWidgets.so.6 qt6-webengine-6.3.1_1 +libnpth.so.0 npth-1.1_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 +libstfl.so.0 stfl-0.23_1 +libCDApplet.so cairo-dock-plugins-3.4.0_1 +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.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_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 +libwvstreams.so.4.6 wvstreams-4.6.1_20 +libespeak-ng.so.1 libespeak-ng-1.50_1 +libKF5Plotting.so.5 kplotting-5.26.0_1 +libpgf.so.6 libpgf-6.14.12_1 +libqhull_r.so.8.0 libqhull-2020.2_1 +libqhull.so.8.0 libqhull-2020.2_1 +libKF5NetworkManagerQt.so.6 networkmanager-qt5-5.26.0_1 +libfcitx-core.so.0 libfcitx-4.2.8_1 +libfcitx-gclient.so.1 libfcitx-4.2.9.5_1 +libfcitx-utils.so.0 libfcitx-4.2.8_1 +libfcitx-config.so.4 libfcitx-4.2.8_1 +libFcitxQt5DBusAddons.so.1 libfcitx-qt5-1.2.1_1 +libFcitxQt5WidgetsAddons.so.1 libfcitx-qt5-1.2.1_1 +libfcitx-qt5.so.0 libfcitx-qt5-0.1.3_1 +libFcitx5Utils.so.2 libfcitx5-5.0.5_1 +libFcitx5Core.so.7 libfcitx5-5.0.5_1 +libFcitx5Config.so.6 libfcitx5-5.0.5_1 +libFcitx5GClient.so.2 fcitx5-gtk-5.0.4_1 +libFcitx5Qt5DBusAddons.so.1 fcitx5-qt5-5.0.3_1 +libFcitx5Qt5WidgetsAddons.so.2 fcitx5-qt5-5.0.3_1 +libdruntime-ldc-debug-shared.so.101 ldc-runtime-1.31.0_1 +libdruntime-ldc-shared.so.101 ldc-runtime-1.31.0_1 +libphobos2-ldc-shared.so.101 ldc-runtime-1.31.0_1 +libphobos2-ldc-debug-shared.so.101 ldc-runtime-1.31.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 +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 +libd0_blind_id.so.0 xonotic-0.8.0_1 +libuecc.so.0 libuecc-5_1 +libKF5WindowSystem.so.5 kwindowsystem-5.6.0_1 +libKF5GuiAddons.so.5 kguiaddons-5.6.0_1 +libLayerShellQtInterface.so.5 layer-shell-qt-5.21.90_1 +liblxqt.so.1 liblxqt-1.0.0_1 +liblxqt-globalkeys.so.1 lxqt-globalkeys-1.0.0_1 +liblxqt-globalkeys-ui.so.1 lxqt-globalkeys-1.0.0_1 +libenet.so.7 libenet-1.3.12_1 +librrd.so.8 rrdtool-1.6.0_1 +librrd_th.so.4 rrdtool-1.4.9_1 +libmosquitto.so.1 libmosquitto-1.6.3_5 +libmosquittopp.so.1 libmosquittopp-1.6.3_5 +libmpv.so.2 mpv-0.35.0_1 +libmbedtls.so.12 mbedtls-2.13.1_1 +libmbedcrypto.so.3 mbedtls-2.9.0_1 +libmbedx509.so.0 mbedtls-2.9.0_1 +libdmtx.so.0 libdmtx-0.7.4_1 +libdbus-c++-1.so.0 libdbus-c++-0.9.0_1 +libdbus-c++-glib-1.so.0 libdbus-c++-0.9.0_1 +libpagemaker-0.0.so.0 libpagemaker-0.0.2_1 +libKF5CddbWidgets.so.5 libkcddb-17.08.2_1 +libKF5Cddb.so.5 libkcddb-17.08.2_1 +libk3bdevice.so.8 k3b-22.12.1_1 +libk3blib.so.8 k3b-22.12.1_1 +libsndio.so.7 libsndio-1.7.0_1 +libopenconnect.so.5 openconnect-7.05_1 +libusbredirparser.so.1 usbredir-0.7_1 +libusbredirhost.so.1 usbredir-0.7_1 +libprotobuf-c.so.1 protobuf-c-1.1.0_1 +libutf8proc.so.2 libutf8proc-2.2.0_1 +libnsutils.so.0 libnsutils-0.0.1_1 +libtoxcore.so.2 toxcore-0.2.0_1 +libgom-1.0.so.0 gom-0.3.0_1 +libetpan.so.20 libetpan-1.9.3_4 +libxmp.so.4 libxmp-4.3.7_1 +libKF5ThreadWeaver.so.5 threadweaver-5.26.0_1 +libOpenImageIO_Util.so.2.4 openimageio-2.4.9.0_1 +libOpenImageIO.so.2.4 openimageio-2.4.9.0_1 +libOpenColorIO.so.2.1 opencolorio-2.1.2_1 +libpystring.so.1 pystring-1.1.3_1 +libyaml-cpp.so.0.7 yaml-cpp-0.7.0_1 +libpaper.so.1 libpaper-1.1.24_1 +libhtsjava.so.2 httrack-3.49.2_7 +libhttrack.so.2 httrack-3.49.2_7 +libbg.so.2 bglibs-2.03_3 +libcvm-command.so.1 cvm-0.97_1 +libcvm-local.so.1 cvm-0.97_1 +libcvm-module.so.1 cvm-0.97_1 +libcvm-qmail.so.1 cvm-0.97_1 +libcvm-sasl.so.1 cvm-0.97_1 +libcvm-sql.so.1 cvm-0.97_1 +libcvm-udp.so.1 cvm-0.97_1 +libcvm-v1client.so.1 cvm-0.97_1 +libcvm-v2client.so.1 cvm-0.97_1 +libudns.so.0 udns-0.4_1 +libcriu.so.2 criu-3.13_2 +libcompel.so.1 criu-3.13_2 +libwebsockets.so.19 libwebsockets-4.3.2_1 +libnfc.so.6 libnfc-1.8.0_1 +libfuzzy.so.2 libfuzzy-2.12_1 +libSDL_gfx.so.15 SDL_gfx-2.0.25_2 +libsfml-network.so.2.5 SFML-2.5.0_1 +libsfml-system.so.2.5 SFML-2.5.0_1 +libsfml-window.so.2.5 SFML-2.5.0_1 +libsfml-audio.so.2.5 SFML-2.5.0_1 +libsfml-graphics.so.2.5 SFML-2.5.0_1 +libclamav.so.9 clamav-0.103.1_2 +libclamunrar.so.9 clamav-0.103.1_2 +libclamunrar_iface.so.9 clamav-0.103.1_2 +libfreshclam.so.2 clamav-0.103.1_2 +libqca-qt5.so.2 qca-qt5-2.1.3_1 +libqt5keychain.so.1 qtkeychain-qt5-0.7.0_1 +libphonon4qt5.so.4 phonon-qt5-4.8.3_1 +libphonon4qt5experimental.so.4 phonon-qt5-4.8.3_1 +libtelepathy-qt5.so.0 telepathy-qt5-0.9.5_1 +libtelepathy-qt5-service.so.0 telepathy-qt5-0.9.7_1 +libtelepathy-qt5-farstream.so.0 telepathy-qt5-farstream-0.9.5_1 +libKF5Attica.so.5 attica-5.6.0_1 +liblastfm_fingerprint5.so.1 liblastfm-qt5-1.0.9_1 +liblastfm5.so.1 liblastfm-qt5-1.0.9_1 +libquazip5.so.1 quazip-0.7.3_2 +libjreen-qt5.so.1 jreen-1.3.0_1 +libzen.so.0 libzen-0.4.31_1 +libmediainfo.so.0 libmediainfo-0.7.75_1 +libnghttp2.so.14 nghttp2-1.43.0_2 +librom1394.so.0 libavc1394-0.5.4_1 +libavc1394.so.0 libavc1394-0.5.4_1 +libiec61883.so.0 libiec61883-1.2.0_1 +libffado.so.2 libffado-2.2.1_1 +libkomparediff2.so.5 libkomparediff2-17.08.2_1 +libkompareinterface.so.5 kompare-17.08.2_1 +libkomparedialogpages.so.5 kompare-17.08.2_1 +libfdt.so.1 dtc-1.4.1_1 +libKasten4Controllers.so.0 okteta-0.26.0_1 +libKasten4Core.so.0 okteta-0.26.0_1 +libKasten4Gui.so.0 okteta-0.26.0_1 +libKasten4Okteta2Controllers.so.0 okteta-0.26.0_1 +libKasten4Okteta2Core.so.0 okteta-0.26.0_1 +libKasten4Okteta2Gui.so.0 okteta-0.26.0_1 +libOkteta3Core.so.0 okteta-0.26.0_1 +libOkteta3Gui.so.0 okteta-0.26.0_1 +libhttp_parser.so.2.9 http-parser-2.9.0_1 +libmaa.so.4 libmaa-1.4.2_1 +libcodeblocks.so.0 codeblocks-13.12_1 +liblept.so.5 leptonica-1.73_1 +libtesseract.so.4 tesseract-ocr-4.0.0_1 +libffmpegthumbnailer.so.4 ffmpegthumbnailer-2.0.10_1 +libopenraw.so.7 libopenraw-0.1.0_1 +libopenrawgnome.so.7 libopenraw-0.1.0_1 +libgeda.so.47 geda-1.10.1_1 +libgedacairo.so.1 geda-1.10.2_1 +libxornstorage.so.0 geda-1.10.2_1 +libclutter-gst-3.0.so.0 clutter-gst3-3.0.4_1 +libgsound.so.0 gsound-1.0.1_1 +libproc2.so.0 procps-ng-4.0.3_1 +libgegl-0.4.so.0 gegl-0.4.16_1 +libgegl-npd-0.4.so gegl-0.4.16_1 +libgegl-sc-0.4.so gegl-0.4.16_1 +libgnunettransportmonitor.so.0 gnunet-0.12.2_1 +libgnunettransporttesting.so.0 gnunet-0.12.2_1 +libgnunettransporttesting2.so.0 gnunet-0.12.2_1 +libgnunetcore.so.0 gnunet-0.12.2_1 +libgnunettestbedlogger.so.0 gnunet-0.12.2_1 +libgnunettestbed.so.0 gnunet-0.12.2_1 +libgnunetatstesting.so.0 gnunet-0.12.2_1 +libgnunetnse.so.0 gnunet-0.12.2_1 +libgnunetdht.so.3 gnunet-0.12.2_1 +libgnunetfriends.so.0 gnunet-0.12.2_1 +libgnunetregexblock.so.1 gnunet-0.12.2_1 +libgnunetregex.so.3 gnunet-0.12.2_1 +libgnunetdns.so.0 gnunet-0.12.2_1 +libgnunetidentity.so.1 gnunet-0.12.2_1 +libgnunetnamecache.so.0 gnunet-0.12.2_1 +libgnunetnamestore.so.0 gnunet-0.12.2_1 +libgnunetcadet.so.7 gnunet-0.12.2_1 +libgnunetset.so.0 gnunet-0.12.2_1 +libgnunetconsensus.so.0 gnunet-0.12.2_1 +libgnunetscalarproduct.so.0 gnunet-0.12.2_1 +libgnunetrevocation.so.0 gnunet-0.12.2_1 +libgnunetvpn.so.0 gnunet-0.12.2_1 +libgnunetgns.so.0 gnunet-0.12.2_1 +libgnunetfs.so.2 gnunet-0.12.2_1 +libgnunetsecretsharing.so.0 gnunet-0.12.2_1 +libnss_gns.so.2 gnunet-0.12.2_1 +libnss_gns4.so.2 gnunet-0.12.2_1 +libnss_gns6.so.2 gnunet-0.12.2_1 +libgnunetutil.so.13 gnunet-0.12.2_1 +libgnunetnt.so.0 gnunet-0.12.2_1 +libgnunetgnsrecord.so.0 gnunet-0.12.2_1 +libgnunethello.so.0 gnunet-0.12.2_1 +libgnunetblock.so.0 gnunet-0.12.2_1 +libgnunetblockgroup.so.0 gnunet-0.12.2_1 +libgnunetstatistics.so.2 gnunet-0.12.2_1 +libgnunetarm.so.2 gnunet-0.12.2_1 +libgnunettesting.so.1 gnunet-0.12.2_1 +libgnunetpeerinfo.so.0 gnunet-0.12.2_1 +libgnunetsq.so.0 gnunet-0.12.2_1 +libgnunetdatacache.so.0 gnunet-0.12.2_1 +libgnunetdatastore.so.1 gnunet-0.12.2_1 +libgnunetpeerstore.so.0 gnunet-0.12.2_1 +libgnunetats.so.4 gnunet-0.12.2_1 +libgnunetatsapplication.so.0 gnunet-0.12.2_1 +libgnunetatstransport.so.0 gnunet-0.12.2_1 +libgnunetnatnew.so.2 gnunet-0.12.2_1 +libgnunetnatauto.so.0 gnunet-0.12.2_1 +libgnunetfragmentation.so.2 gnunet-0.12.2_1 +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.13 skalibs-2.13.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 +libinjeqt.so.1 injeqt-1.1.0_1 +libgadu.so.3 libgadu-1.12.1_1 +libhiredis.so.1.1.0 hiredis-1.1.0_1 +libIL.so.1 devil-1.7.8_1 +libILU.so.1 devil-1.7.8_1 +libILUT.so.1 devil-1.7.8_1 +liboath.so.0 oath-toolkit-2.6.0_2 +libanthy.so.1 libanthy-0.4_1 +libanthydic.so.1 libanthy-0.4_1 +libanthyinput.so.0 libanthy-0.4_1 +libanthy-unicode.so.0 libanthy-unicode-1.0.0.20201109_1 +libanthydic-unicode.so.0 libanthy-unicode-1.0.0.20201109_1 +libanthyinput-unicode.so.0 libanthy-unicode-1.0.0.20201109_1 +libanthygobject-1.0.so.5 ibus-anthy-1.5.6_1 +libtbbmalloc_proxy_debug.so.2 tbb-4.3_1 +libtbbmalloc_proxy.so.2 tbb-4.3_1 +libtbbmalloc.so.2 tbb-4.3_1 +libembree.so.3 embree-3.12.2_1 +libtbb_debug.so.2 tbb-4.3_1 +libtbb.so.2 tbb-4.3_1 +libtbbmalloc_debug.so.2 tbb-4.3_1 +libembree.so.2 embree-2.5.1_1 +libgtkimageview.so.0 gtkimageview-1.6.4_1 +libgoocanvas-2.0.so.9 goocanvas-2.0.4_1 +libp8-platform.so.2 p8-platform-2.1.0.1_1 +libOIS.so.1.5.0 ois-1.5_1 +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.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 +libCEGUIIrrlichtRenderer-0.so.2 cegui-0.8.7_1 +libCEGUICommonDialogs-0.so.2 cegui-0.8.7_1 +libCEGUICoreWindowRendererSet.so cegui-0.8.7_1 +libCEGUIDevILImageCodec.so cegui-0.8.7_1 +libCEGUIExpatParser.so cegui-0.8.7_1 +libCEGUILibXMLParser.so cegui-0.8.7_1 +libCEGUISILLYImageCodec.so cegui-0.8.7_1 +libct.so.4 freetds-0.95.19_1 +libsybdb.so.5 freetds-0.95.19_1 +libqqwing.so.2 qqwing-1.3.4_1 +libiniparser.so.1 iniparser-4.1_1 +libzita-resampler.so.1 zita-resampler-1.3.0_1 +libmlt.so.6 mlt-6.4.1_1 +libmlt++.so.3 mlt-6.4.1_1 +libmlt++-7.so.7 mlt7-7.0.1_1 +libmlt-7.so.7 mlt7-7.0.1_1 +libunibilium.so.4 unibilium-2.0.0_1 +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.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 +libnewt.so.0.52 newt-0.52.18_1 +libgeany.so.0 geany-1.25_1 +libctpl.so.2 ctpl-0.3.4_1 +libmuparser.so.2 muparser-2.2.5_1 +libgtkgl-2.0.so.1 gtkglarea-2.1.0_1 +libdwarf.so.1 libdwarf-20160613_1 +libmemcached.so.11 libmemcached-1.0.18_1 +libhashkit.so.2 libmemcached-1.0.18_1 +libmemcachedutil.so.2 libmemcached-1.0.18_1 +libc-client.so.1 c-client-2007f_4 +libonig.so.5 oniguruma-6.8.1_1 +liblo10k1.so.0 alsa-tools-1.0.29_1 +libgflags.so.2.2 gflags-2.1.2_1 +libgflags_nothreads.so.2.2 gflags-2.1.2_1 +libswmhack.so.0.0 spectrwm-2.7.2_1 +libchardet.so.1 libchardet-1.0.4_1 +libcollectdclient.so.1 libcollectdclient-5.12.0_3 +libpinktrace_1.0.so.100 pinktrace-1.0.0_1 +libsyd_1.0.so.0 sydbox-1.0.2_1 +libcsync.so.0 csync-0.50.0_1 +libcalligrasheetsodf.so.17 calligra-sheets-3.2.0_1 +libkokross.so.17 calligra-libs-3.2.1_3 +libkotext.so.17 calligra-libs-3.2.0_1 +libkoodf.so.17 calligra-libs-3.2.0_1 +libkarbonui.so.17 calligra-karbon-3.2.0_1 +libkomain.so.17 calligra-libs-3.2.0_1 +libkowidgets.so.17 calligra-libs-3.2.0_1 +libflake.so.17 calligra-libs-3.2.0_1 +libcalligrasheetscommon.so.17 calligra-sheets-3.2.0_1 +libkovectorimage.so.17 calligra-libs-3.2.0_1 +libwordsprivate.so.17 calligra-words-3.2.0_1 +libkotextlayout.so.17 calligra-libs-3.2.0_1 +libkowidgetutils.so.17 calligra-libs-3.2.0_1 +libkundo2.so.17 calligra-libs-3.2.0_1 +libpigmentcms.so.17 calligra-libs-3.2.0_1 +libbasicflakes.so.17 calligra-libs-3.2.0_1 +libkoplugin.so.17 calligra-libs-3.2.0_1 +libkoversion.so.17 calligra-libs-3.2.0_1 +libkopageapp.so.17 calligra-libs-3.2.0_1 +libkostore.so.17 calligra-libs-3.2.0_1 +libkomsooxml.so.17 calligra-filters-3.2.0_1 +libkoodf2.so.17 calligra-filters-3.2.0_1 +libkowv2.so.9 calligra-filters-2.9.7_1 +libRtfReader.so.17 calligra-filters-3.2.0_1 +libkoodfreader.so.17 calligra-filters-3.2.0_1 +libkoformula.so.17 calligra-plugins-3.2.0_1 +libkarboncommon.so.17 calligra-karbon-3.2.0_1 +libcalligrastageprivate.so.17 calligra-stage-3.2.0_1 +libkookularGenerator_odt.so.17 calligra-extras-3.2.0_1 +libkookularGenerator_odp.so.17 calligra-extras-3.2.0_1 +libgemini.so.17 calligra-gemini-3.2.0_1 +libarpack.so.2 arpack-ng-3.3.0_2 +libfts.so.0 musl-fts-1.2_2 +libobstack.so.1 musl-obstack-1.2.1_1 +libucontext.so.1 libucontext-1.0_1 +libucontext_posix.so.1 libucontext-1.0_1 +libgavl.so.1 gavl-1.40_1 +libmxml.so.1 mxml-2.9_1 +libKF5Pty.so.5 kpty-5.26.0_1 +libdovecot-sieve.so.0 dovecot-plugin-pigeonhole-0.4.9_2 +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.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 +libsynfig.so.0 synfig-1.0.1_1 +libhidapi-hidraw.so.0 hidapi-0.8.0rc1_1 +libhidapi-libusb.so.0 hidapi-0.8.0rc1_1 +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.31 libgdal-3.5.3_1 +libosgViewer.so.161 osg-3.6.5_1 +libosgShadow.so.161 osg-3.6.5_1 +libosgParticle.so.161 osg-3.6.5_1 +libOpenThreads.so.21 osg-3.6.5_1 +libosgFX.so.161 osg-3.6.5_1 +libosgText.so.161 osg-3.6.5_1 +libosgUI.so.161 osg-3.6.5_1 +libosg.so.161 osg-3.6.5_1 +libosgAnimation.so.161 osg-3.6.5_1 +libosgDB.so.161 osg-3.6.5_1 +libosgManipulator.so.161 osg-3.6.5_1 +libosgSim.so.161 osg-3.6.5_1 +libosgTerrain.so.161 osg-3.6.5_1 +libosgWidget.so.161 osg-3.6.5_1 +libosgUtil.so.161 osg-3.6.5_1 +libosgVolume.so.161 osg-3.6.5_1 +libosgGA.so.161 osg-3.6.5_1 +libosgPresentation.so.161 osg-3.6.5_1 +libKF5Screen.so.8 libkscreen-5.26.90_1 +libKF5ScreenDpms.so.8 libkscreen-5.26.90_1 +libdbusmenu-qt5.so.2 libdbusmenu-qt5-0.9.3.0_1 +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 +libfa.so.1 augeas-1.4.0_1 +libaugeas.so.0 augeas-1.4.0_1 +libplot.so.2 plotutils-2.6_1 +libplplot.so.17 libplplot-5.15.0_1 +libplplottcltk.so.14 libplplot-5.15.0_1 +libplplottcltk_Main.so.1 libplplot-5.15.0_1 +libfloatfann.so.2 fann-2.2.0_1 +libfixedfann.so.2 fann-2.2.0_1 +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 +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 +libyubikey.so.0 libyubikey-1.13_1 +libykpers-1.so.1 libykpers-1.17.2_1 +libg7221codec.so.2 pjproject-2.8_5 +libilbccodec.so.2 pjproject-2.8_5 +libpj.so.2 pjproject-2.8_5 +libpjlib-util.so.2 pjproject-2.8_5 +libpjmedia-audiodev.so.2 pjproject-2.8_5 +libpjmedia-codec.so.2 pjproject-2.8_5 +libpjmedia-videodev.so.2 pjproject-2.8_5 +libpjmedia.so.2 pjproject-2.8_5 +libpjnath.so.2 pjproject-2.8_5 +libpjsip-simple.so.2 pjproject-2.8_5 +libpjsip-ua.so.2 pjproject-2.8_5 +libpjsip.so.2 pjproject-2.8_5 +libpjsua.so.2 pjproject-2.8_5 +libpjsua2.so.2 pjproject-2.8_5 +libhdf5_hl.so.100 hdf5-1.10.1_2 +libhdf5.so.103 hdf5-1.10.4_1 +libhdf5_hl_cpp.so.100 hdf5-1.10.1_2 +libhdf5_cpp.so.103 hdf5-1.10.4_1 +libhdf5hl_fortran.so.100 hdf5-1.10.1_2 +libhdf5_fortran.so.102 hdf5-1.10.5_1 +libcryptmount.so.0 libpam-mount-2.15_1 +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 +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.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 +libftdi1.so.2 libftdi1-1.2_1 +libax25.so.0 libax25-0.0.12rc4_1 +libax25io.so.0 libax25-0.0.12rc4_1 +libmill.so.18 libmill-1.14_1 +libges-1.0.so.0 gst1-editing-services-1.6.2_1 +libykneomgr.so.0 libykneomgr-0.1.8_1 +libopenshot-audio.so.9 libopenshot-audio-0.3.0_1 +libopenshot.so.23 libopenshot-0.3.0_1 +libpqxx-6.3.so libpqxx-6.3.3_1 +libndpi.so.3 ndpi-3.4_1 +liblog.so android-studio-3.0.1_1 +libm.so android-studio-3.0.1_1 +libdl.so android-studio-3.0.1_1 +libKF5WidgetsAddons.so.5 kwidgetsaddons-5.26.0_1 +libsearpc.so.1 libsearpc-3.0.7_1 +libseafile.so.0 seafile-libclient-7.0.10_2 +libpodofo.so.0.9.7 libpodofo-0.9.7_2 +libIrcUtil.so.3 libcommuni-3.4.0_1 +libIrcCore.so.3 libcommuni-3.4.0_1 +libIrcModel.so.3 libcommuni-3.4.0_1 +libp2edrvmagick++.so.0 libpstoedit-3.70_1 +libp2edrvstd.so.0 libpstoedit-3.70_1 +libpstoedit.so.0 libpstoedit-3.70_1 +libtolua.so tolua-5.2.0_1 +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.40 libfilezilla-0.44.0_1 +libtommath.so.1 libtommath-1.0_1 +libKF5ItemViews.so.5 kitemviews-5.26.0_1 +libunicorn.so.1 unicorn-1.0_1 +libglyphy.so.0 glyphy-0.0.20160104_1 +libSwiften.so.0 swiften-4.0.3_2 +libfreehand-0.1.so.1 libfreehand-0.1.1_1 +libe-book-0.1.so.1 libe-book-0.1.2_1 +libOsi.so.1 CoinMP-1.8.3_1 +libClp.so.1 CoinMP-1.8.3_1 +libCoinMP.so.1 CoinMP-1.8.3_1 +libOsiCbc.so.3 CoinMP-1.8.3_1 +libCoinUtils.so.3 CoinMP-1.8.3_1 +libClpSolver.so.1 CoinMP-1.8.3_1 +libCgl.so.1 CoinMP-1.8.3_1 +libOsiClp.so.1 CoinMP-1.8.3_1 +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.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 +libOpenCOLLADABaseUtils.so opencollada-0.0.20160223_1 +libOpenCOLLADAFramework.so opencollada-0.0.20160223_1 +libOpenCOLLADASaxFrameworkLoader.so opencollada-0.0.20160223_1 +libOpenCOLLADAStreamWriter.so opencollada-0.0.20160223_1 +leatherman_util.so.1.12.4 leatherman-1.12.4_1 +leatherman_locale.so.1.12.4 leatherman-1.12.4_1 +leatherman_logging.so.1.12.4 leatherman-1.12.4_1 +leatherman_json_container.so.1.12.4 leatherman-1.12.4_1 +leatherman_file_util.so.1.12.4 leatherman-1.12.4_1 +leatherman_curl.so.1.12.4 leatherman-1.12.4_1 +leatherman_dynamic_library.so.1.12.4 leatherman-1.12.4_1 +leatherman_execution.so.1.12.4 leatherman-1.12.4_1 +leatherman_ruby.so.1.12.4 leatherman-1.12.4_1 +libUTF.so opencollada-0.0.20160223_1 +libbuffer.so opencollada-0.0.20160223_1 +libftoa.so opencollada-0.0.20160223_1 +libzlib.so opencollada-1.6.51_1 +libfbclient.so.2 libfbclient3-3.0.4.33054_1 +libipmiutil.so.1 ipmiutil-3.1.3_4 +libqxmpp.so.3 qxmpp-1.2.0_1 +libunwind.so.1 llvm-libunwind-3.8.0_1 +libc++abi.so.1 libcxxabi-3.8.0_1 +libfastjson.so.4 libfastjson-0.99.3_1 +libdcadec.so.0 dcadec-0.2.0_1 +libcmark.so.0 cmark-0.24.1_1 +libvidstab.so.1.1 libvidstab-1.1.0_1 +libxdo.so.3 xdotool-3.20150503.1_1 +libabigail.so.2 libabigail-2.3_1 +libgnome-games-support-1.so.3 libgnome-games-support-1.4.0_1 +libKDevCMakeCommon.so.510 kdevelop-22.12.1_1 +libKDevClangPrivate.so.510 kdevelop-22.12.1_1 +libKDevCompileAnalyzerCommon.so.510 kdevelop-22.12.1_1 +libKDevelopSessionsWatch.so.510 kdevelop-22.12.1_1 +libKDevPlatformDebugger.so.510 kdevelop-22.12.1_1 +libKDevPlatformDocumentation.so.510 kdevelop-22.12.1_1 +libKDevPlatformInterfaces.so.510 kdevelop-22.12.1_1 +libKDevPlatformLanguage.so.510 kdevelop-22.12.1_1 +libKDevPlatformOutputView.so.510 kdevelop-22.12.1_1 +libKDevPlatformProject.so.510 kdevelop-22.12.1_1 +libKDevPlatformSerialization.so.510 kdevelop-22.12.1_1 +libKDevPlatformShell.so.510 kdevelop-22.12.1_1 +libKDevPlatformSublime.so.510 kdevelop-22.12.1_1 +libKDevPlatformTests.so.510 kdevelop-22.12.1_1 +libKDevPlatformUtil.so.510 kdevelop-22.12.1_1 +libKDevPlatformVcs.so.510 kdevelop-22.12.1_1 +libts.so.0 tslib-1.6_1 +libobs.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 +libvapoursynth-script.so.0 vapoursynth-R32_1 +libtwolame.so.0 twolame-0.3.13_1 +libsignon-plugins.so.1 signond-8.58_1 +libsignon-qt5.so.1 signond-8.58_1 +libsignon-plugins-common.so.1 signond-8.58_1 +libsignon-extension.so.1 signond-8.58_1 +libj4status-plugin.so.0 j4status-0.1_1 +libvirglrenderer.so.1 virglrenderer-0.5.0_1 +libglpk.so.40 glpk-4.60_1 +libipmimonitoring.so.6 freeipmi-1.5.7_1 +libipmiconsole.so.2 freeipmi-1.5.1_1 +libfreeipmi.so.17 freeipmi-1.5.1_1 +libipmidetect.so.0 freeipmi-1.5.1_1 +libsmpeg-0.4.so.0 smpeg-0.4.5_3 +libsmpeg2-2.0.so.0 smpeg2-2.0.0_1 +libedac.so.1 libedac-0.18_1 +libxlsreader.so.8 libxls-1.6.1_1 +libR.so R-4.0.2_1 +libmarkdown.so.2 discount-2.2.0_3 +libkeystone.so.0 keystone-0.9_1 +libmate-slab.so.0 libmate-control-center-1.14.0_2 +libuev.so.3 libuev-2.4.0_1 +liburcu-bp.so.8 liburcu-0.14.0_1 +liburcu-cds.so.8 liburcu-0.14.0_1 +liburcu-common.so.8 liburcu-0.14.0_1 +liburcu-mb.so.8 liburcu-0.14.0_1 +liburcu-qsbr.so.8 liburcu-0.14.0_1 +liburcu-signal.so.8 liburcu-0.14.0_1 +liburcu.so.8 liburcu-0.14.0_1 +liblttng-ust.so.0 lttng-ust-2.7.2_1 +liblttng-ust-ctl.so.4 lttng-ust-2.10.0_1 +liblttng-ust-fork.so.0 lttng-ust-2.7.2_1 +liblttng-ust-fd.so.0 lttng-ust-2.10.0_1 +liblttng-ust-libc-wrapper.so.0 lttng-ust-2.7.2_1 +liblttng-ust-pthread-wrapper.so.0 lttng-ust-2.7.2_1 +liblttng-ust-cyg-profile.so.0 lttng-ust-2.7.2_1 +liblttng-ust-cyg-profile-fast.so.0 lttng-ust-2.7.2_1 +liblttng-ust-dl.so.0 lttng-ust-2.7.2_1 +liblttng-ust-tracepoint.so.0 lttng-ust-2.7.2_1 +libbabeltrace.so.1 babeltrace-1.5.3_1 +libbabeltrace-ctf.so.1 babeltrace-1.5.3_1 +libbabeltrace-ctf-text.so.1 babeltrace-1.5.3_1 +libbabeltrace-ctf-metadata.so.1 babeltrace-1.5.3_1 +libbabeltrace-dummy.so.1 babeltrace-1.5.3_1 +libbabeltrace-lttng-live.so.1 babeltrace-1.5.3_1 +liblttng-ctl.so.0 lttng-tools-2.10.1_1 +libKF5DNSSD.so.5 kdnssd-5.26.0_1 +libtwaindsm.so.2 twaindsm-2.3.0_1 +libspnav.so.0 libspnav-0.2.3_1 +libsimage.so.20 simage-1.7.0_1 +libCoin.so.80 coin3-4.0.0_1 +libgl2ps.so.1 gl2ps-1.3.9_1 +libKF5CoreAddons.so.5 kcoreaddons-5.26.0_1 +librpmatch.so.0 musl-rpmatch-1.0_1 +libmilter.so.1.0.2 libmilter-1.0.2_1 +libopendkim.so.10 opendkim-2.10.3_12 +libtevent.so.0 tevent-0.9.28_1 +libldb.so.2 ldb-2.2.0_1 +libpyldb-util.so.2 libpyldb-util-2.2.0_1 +libpath_utils.so.1 ding-libs-0.5.0_1 +libdhash.so.1 ding-libs-0.5.0_1 +libcollection.so.4 ding-libs-0.5.0_1 +libref_array.so.1 ding-libs-0.5.0_1 +libbasicobjects.so.0 ding-libs-0.5.0_1 +libini_config.so.5 ding-libs-0.5.0_1 +libipa_hbac.so.0 sssd-2.4.0_3 +libsss_idmap.so.0 sssd-2.4.0_3 +libnss_sss.so.2 sssd-2.4.0_3 +libsss_nss_idmap.so.0 sssd-2.4.0_3 +libsss_simpleifp.so.0 sssd-2.4.0_3 +libsss_certmap.so.0 sssd-2.4.0_3 +libsss_util.so sssd-2.4.0_3 +libsss_crypt.so sssd-2.4.0_3 +libsss_debug.so sssd-2.4.0_3 +libforms.so.2 xforms-1.2.4_2 +libflimage.so.2 xforms-1.2.4_2 +libutilspp.so.0 curlpp-0.7.3_2 +libcurlpp.so.1 curlpp-0.8.1_1 +libtcd.so.1 libtcd-2.2.7.r2_1 +libaccounts-glib.so.1 libaccounts-glib-1.24_1 +libaccounts-qt5.so.1 libaccounts-qt5-1.14_1 +libshotwell-plugin-dev-1.0.so.0 shotwell-0.30.0_1 +libshotwell-plugin-common.so.0 shotwell-0.30.0_1 +libshotwell-authenticator.so.0 shotwell-0.30.0_1 +liballegro.so.5.2 allegro5-5.2.1_1 +liballegro_primitives.so.5.2 allegro5-5.2.1_1 +liballegro_image.so.5.2 allegro5-5.2.1_1 +liballegro_font.so.5.2 allegro5-5.2.1_1 +liballegro_audio.so.5.2 allegro5-5.2.1_1 +liballegro_acodec.so.5.2 allegro5-5.2.1_1 +liballegro_ttf.so.5.2 allegro5-5.2.1_1 +liballegro_color.so.5.2 allegro5-5.2.1_1 +liballegro_memfile.so.5.2 allegro5-5.2.1_1 +liballegro_physfs.so.5.2 allegro5-5.2.1_1 +liballegro_video.so.5.2 allegro5-5.2.1_1 +liballegro_main.so.5.2 allegro5-5.2.1_1 +liballegro_dialog.so.5.2 allegro5-5.2.1_1 +libKF5DBusAddons.so.5 kdbusaddons-5.26.0_1 +libsystemsettingsview.so.3 systemsettings-5.11.5_2 +libmono-profiler-cov.so.0 mono-4.0.1.44_2 +libmono-profiler-aot.so.0 mono-4.0.1.44_2 +libmono-profiler-iomap.so.0 mono-4.0.1.44_2 +libmono-profiler-log.so.0 mono-4.0.1.44_2 +libikvm-native.so mono-4.0.1.44_2 +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-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 +libsass.so.1 libsass-3.5.0_1 +libjbig.so.0 jbigkit-libs-2.1_2 +libjbig85.so.0 jbigkit-libs-2.1_2 +libskk.so.0 libskk-1.0.2_1 +libKF5WaylandServer.so.5 kwayland-5.26.0_1 +libKF5WaylandClient.so.5 kwayland-5.26.0_1 +libKF5IdleTime.so.5 kidletime-5.26.0_1 +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 +libKF5Service.so.5 kservice-5.26.0_1 +libKF5GlobalAccel.so.5 kglobalaccel-5.26.0_1 +libKF5GlobalAccelPrivate.so.5 kglobalaccel-5.26.0_1 +libKF5Package.so.5 kpackage-5.26.0_1 +libKF5Su.so.5 kdesu-5.26.0_1 +libKF5Emoticons.so.5 kemoticons-5.26.0_1 +libKF5IconThemes.so.5 kiconthemes-5.26.0_1 +libKF5JobWidgets.so.5 kjobwidgets-5.26.0_1 +libKF5Notifications.so.5 knotifications-5.26.0_1 +libKF5TextWidgets.so.5 ktextwidgets-5.26.0_1 +libKF5Wallet.so.5 kwallet-5.26.0_1 +libkwalletbackend5.so.5 kwallet-5.36.0_1 +libKF5XmlGui.so.5 kxmlgui-5.26.0_1 +libKF5Bookmarks.so.5 kbookmarks-5.26.0_1 +libKF5KIOWidgets.so.5 kio-5.26.0_1 +libKF5KIOCore.so.5 kio-5.26.0_1 +libKF5KIOFileWidgets.so.5 kio-5.26.0_1 +libKF5KIOGui.so.5 kio-5.36.0_1 +libKF5KIONTLM.so.5 kio-5.36.0_1 +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 +libkdeinit5_kded5.so kded-5.26.0_1 +libKF5WebKit.so.5 kdewebkit-5.26.0_1 +libKF5TextEditor.so.5 ktexteditor-5.26.0_1 +libKF5Plasma.so.5 plasma-framework-5.26.0_1 +libKF5PlasmaQuick.so.5 plasma-framework-5.26.0_1 +libKF5ModemManagerQt.so.6 modemmanager-qt5-5.26.0_1 +libKF5People.so.5 kpeople-5.26.0_1 +libKF5PeopleBackend.so.5 kpeople-5.36.0_1 +libKF5PeopleWidgets.so.5 kpeople-5.36.0_1 +libKF5XmlRpcClient.so.5 kxmlrpcclient-5.26.0_1 +libKF5BluezQt.so.6 bluez-qt5-5.26.0_1 +libKF5FileMetaData.so.3 kfilemetadata5-5.26.0_1 +libKF5Baloo.so.5 baloo5-5.26.0_1 +libKF5BalooEngine.so.5 baloo5-5.26.0_1 +libKF5ActivitiesStats.so.1 kactivities5-stats-5.26.0_1 +libKF5Runner.so.5 krunner-5.26.0_1 +libKF5JS.so.5 kjs-5.26.0_1 +libKF5JSApi.so.5 kjs-5.36.0_1 +libKF5KDELibs4Support.so.5 kdelibs4support-5.26.0_1 +libKF5KHtml.so.5 khtml-5.26.0_1 +libKF5JsEmbed.so.5 kjsembed-5.26.0_1 +libKF5KrossCore.so.5 kross-5.26.0_1 +libKF5KrossUi.so.5 kross-5.36.0_1 +liblmdb.so.0 lmdb-0.9.18_2 +libisns.so.0 libisns-0.101_2 +libz80ex.so.1 z80ex-1.1.21_1 +libz80ex_dasm.so.1 z80ex-1.1.21_1 +libqmmp.so.1 qmmp-1.1.4_1 +libqmmpui.so.1 qmmp-1.1.4_1 +libalkimia5.so.8 libalkimia-8.0.1_1 +libpayeeidentifier_iban_bic_widgets.so.5 kmymoney-5.0.0_1 +libkmm_plugin.so.5 kmymoney-5.0.0_1 +libkmm_widgets.so.5 kmymoney-5.0.0_1 +libkmm_mymoney.so.5 kmymoney-5.0.0_1 +libpayeeidentifier_nationalAccount.so.5 kmymoney-5.0.0_1 +libpayeeidentifier_iban_bic.so.5 kmymoney-5.0.0_1 +libkmm_payeeidentifier.so.5 kmymoney-5.0.0_1 +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.19 botan-2.19.1_1 +libswipl.so.9 swi-prolog-9.0.0_1 +libpcre2-16.so.0 libpcre2-10.22_1 +libpcre2-32.so.0 libpcre2-10.22_1 +libpcre2-8.so.0 libpcre2-10.22_1 +libpcre2-posix.so.3 libpcre2-10.39_1 +libui.so.0 libui-alpha3.1_1 +libgnome-autoar-0.so.0 gnome-autoar-0.1.1_1 +libgnome-autoar-gtk-0.so.0 gnome-autoar-0.1.1_1 +libxapp.so.1 xapps-1.0.2_1 +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 +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 +libpitcl.so.0 pilot-link-0.12.5_1 +libiscsi.so.9 libiscsi-1.19.0_1 +libgme.so.0 libgme-0.6.1_1 +libzmusic.so.1 ZMusic-1.1.2_1 +libzmusiclite.so.1 ZMusic-1.1.2_1 +libsidplayfp.so.6 libsidplayfp-2.1.0_1 +libstilview.so.0 libsidplayfp-1.8.7_1 +libczmq.so.4 czmq-4.0.1_1 +liblz.so.1 lzlib-1.8_1 +libelogind.so.0 libelogind-238.1_2 +libseat.so.1 libseat-0.3.0_1 +libnma.so.0 libnma-1.8.30_1 +libnma-gtk4.so.0 libnma-1.8.36_1 +libgspell-1.so.2 gspell-1.8.0_1 +libotf.so.1 libotf-0.9.16_1 +libimagequant.so.0 libimagequant-2.8.2_1 +libDOtherSide.so.0.7 dotherside-0.7.1_1 +libstlink.so.1 stlink-1.5.1_1 +libopencsg.so.1 opencsg-1.4.2_1 +libCGAL.so.13 cgal-4.10_1 +libCGAL_Core.so.13 cgal-4.10_1 +libCGAL_ImageIO.so.14 cgal-4.14_1 +libqscintilla2_qt5.so.15 qscintilla-qt5-2.11_1 +libQtAVWidgets.so.1 qtav-1.12.0_1 +libQtAV.so.1 qtav-1.12.0_1 +liblxpanel.so.0 lxpanel-0.9.3_1 +libuim.so.8 uim-1.8.6_1 +libuim-scm.so.0 uim-1.8.6_1 +libuim-custom.so.2 uim-1.8.6_1 +libgcroots.so.0 libgcroots-0.3.2_1 +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-12.so.0 mutter-44.0_1 +libmutter-clutter-12.so.0 mutter-44.0_1 +libmutter-cogl-12.so.0 mutter-44.0_1 +libmutter-cogl-pango-12.so.0 mutter-44.0_1 +libgeoclue-2.so.0 geoclue2-2.4.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 +libzbargtk.so.0 libzbar-0.10_1 +libzbarqt.so.0 libzbar-qt-0.10_10 +libargtable2.so.0 argtable-2.13_1 +libomxil-bellagio.so.0 libomxil-bellagio-0.9.3_1 +libomxdynamicloader.so.0 libomxil-bellagio-0.9.3_1 +libomxaudio_effects.so.0 libomxil-bellagio-0.9.3_1 +libomxclocksrc.so.0 libomxil-bellagio-0.9.3_1 +libomxvideosched.so.0 libomxil-bellagio-0.9.3_1 +libnss_libvirt_guest.so.2 libvirt-3.1.0_1 +libvirt-admin.so.0 libvirt-3.1.0_1 +libnss_libvirt.so.2 libvirt-3.1.0_1 +libassimp.so.5 libassimp-5.0.0_1 +libdouble-conversion.so.3 double-conversion-3.1.5_1 +libspectrum.so.8 libspectrum-1.2.2_1 +libbearssl.so.0 bearssl-0.3_1 +libXfont2.so.2 libXfont2-2.0.1_1 +libqalculate.so.22 libqalculate-3.20.1_1 +libweston-9.so.0 weston-9.0.0_1 +libostree-1.so.1 ostree-2023.1_1 +librhash.so.1 rhash-1.4.4_1 +libserialport.so.0 libserialport-0.1.1_1 +libsigrok.so.4 libsigrok-0.5.0_1 +libsigrokcxx.so.4 libsigrok-0.5.0_1 +libsigrokdecode.so.4 libsigrokdecode-0.5.0_2 +libglyr.so.1 glyr-1.0.8_1 +libPocoJSON.so.94 poco-1.12.4_1 +libPocoMongoDB.so.94 poco-1.12.4_1 +libPocoZip.so.94 poco-1.12.4_1 +libPocoData.so.94 poco-1.12.4_1 +libPocoNet.so.94 poco-1.12.4_1 +libPocoDataSQLite.so.94 poco-1.12.4_1 +libPocoFoundation.so.94 poco-1.12.4_1 +libPocoXML.so.94 poco-1.12.4_1 +libPocoUtil.so.94 poco-1.12.4_1 +libPocoRedis.so.94 poco-1.12.4_1 +libPocoEncodings.so.94 poco-1.12.4_1 +libPocoNetSSL.so.94 poco-1.12.4_1 +libPocoCrypto.so.94 poco-1.12.4_1 +libPtex.so ptex-2.3.2_1 +libopenblas.so.0 openblas-0.2.19_1 +librtaudio.so.6 rtaudio-5.1.0_1 +librtmidi.so.5 rtmidi-4.0.0_1 +libbiblesync.so.2.1.0 biblesync-2.1.0_1 +libbac-9.4.2.so bacula-common-9.4.2_4 +libbaccfg-9.4.2.so bacula-common-9.4.2_4 +libbacfind-9.4.2.so bacula-common-9.4.2_4 +libbacsql-9.4.2.so bacula-common-9.4.2_4 +libbaccats-9.4.2.so bacula-common-9.4.2_4 +libbacsd-9.4.2.so bacula-common-9.4.2_4 +libbaccats-sqlite3-9.4.2.so bacula-common-9.4.2_4 +libbaccats-postgresql-9.4.2.so bacula-common-postgresql-9.4.2_4 +libbaccats-mysql-9.4.2.so bacula-common-mariadb-9.4.2_4 +bpipe-fd.so bacula-fd-9.4.2_4 +libnftables.so.1 libnftables-0.9.1_1 +libbctoolbox.so.1 bctoolbox-0.6.0_1 +libbcmatroska2.so.0 bcmatroska2-5.2.1_1 +libbcg729.so.0 bcg729-1.1.1_1 +libortp.so.15 ortp-4.4.0_1 +libsuperlu.so.5 superlu-5.2.1_1 +libgosu.so.0 gosu-0.12.0_1 +libyara.so.10 libyara-4.3.0_1 +libyaz_icu.so.5 yaz-5.23.1_1 +libyaz.so.5 yaz-5.23.1_1 +libyaz_server.so.5 yaz-5.23.1_1 +libgcab-1.0.so.0 gcab-0.7_1 +libwpe-1.0.so.1 libwpe-1.10.0_1 +libWPEBackend-fdo-1.0.so.1 wpebackend-fdo-1.8.3_1 +libliveMedia.so.81 live555-2020.08.11_2 +libgroupsock.so.8 live555-2020.08.11_2 +libUsageEnvironment.so.3 live555-2020.08.11_2 +libBasicUsageEnvironment.so.1 live555-2020.08.11_2 +libappstream.so.4 AppStream-0.12.2_1 +libappstream-glib.so.8 appstream-glib-0.6.13_1 +libappstream-builder.so.8 appstream-glib-0.6.13_1 +libflatpak.so.0 flatpak-0.9.3_2 +libnanomsg.so.5 nanomsg-1.1.3_1 +libindicator3.so.7 libindicator-12.10.1_1 +libappindicator3.so.1 libappindicator-12.10.0_1 +libscanmem.so.1 libscanmem-0.17_5 +libsctp.so.1 lksctp-tools-1.0.17_1 +libwithsctp.so.1 lksctp-tools-1.0.17_1 +libnss_ldap.so.2 nss-pam-ldapd-0.9.7_4 +libunshield.so.0 libunshield-0.6_1 +libMyGUIEngine.so.3.4.2 libmygui-3.4.2_1 +libproj.so.25 proj-9.1.1_1 +libnlopt.so.0 nlopt-2.4.2_1 +libeb.so.16 libeb-4.3.3_1 +libchipcard.so.6 libchipcard-5.0.4_1 +libraqm.so.0 libraqm-0.2.0_1 +liboggz.so.2 liboggz-1.1.1_1 +libfishsound.so.1 libfishsound-1.0.0_1 +libxqilla.so.2 XQilla-2.3.4_1 +libKF5DocTools.so.5 kdoctools-5.36.0_1 +libKF5MediaPlayer.so.5 kmediaplayer-5.36.0_1 +libxo.so.0 libxo-0.9.0_1 +libbrotlicommon.so.1 brotli-1.0.2_1 +libbrotlidec.so.1 brotli-1.0.2_1 +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.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 +libusecure.so.8 ucommon-7.0.0_1 +libcommoncpp.so.8 ucommon-7.0.0_1 +libdatrie.so.1 libdatrie-0.2.10_1 +libthai.so.0 libthai-0.1.26_1 +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.23.4.0 libprotobuf-lite-23.4_1 +libprotoc.so.23.4.0 libprotoc-23.4_1 +libprotobuf.so.23.4.0 libprotobuf-23.4_1 +libsombok.so.3 sombok-2.4.0_1 +libdeviceclient.so.0 pragha-1.3.3_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-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 +libgutenprint.so.9 gutenprint-5.3.3_1 +libunbound.so.8 libunbound-1.13.1_2 +libmirage.so.11 libmirage-3.1.0_1 +libwkhtmltox.so.0 libwkhtmltopdf-0.12.5_1 +libsysprof-4.so sysprof-3.37.90_1 +libsysprof-ui-5.so sysprof-3.46.0_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-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 +libddcutil.so.4 ddcutil-1.0.1_1 +liblsmash.so.2 liblsmash-2.9.1_1 +libgiac.so.0 libgiac-1.4.9r17_1 +libgnustep-base.so.1.29 gnustep-base-1.29.0_1 +libtermbox.so.1 termbox-1.1.0_1 +libmysofa.so.1 libmysofa-1.2_1 +libzinnia.so.0 libzinnia-0.06_1 +libdnet.so.1 libdnet-1.12_1 +libgtkd-3.so.0 gtkd-3.7.0_2 +libgtkdsv-3.so.0 libgtkdsv-3.7.0_2 +libvted-3.so.0 libvted-3.7.0_2 +libpeasd-3.so.0 libpeasd-3.7.0_2 +libgstreamerd-3.so.0 libgstreamerd-3.7.0_2 +libgtkdgl-3.so.0 libgtkdgl-3.7.0_2 +libmega.so.30703 MEGAsdk-3.7.3c_2 +libopenglrecorder.so.0 libopenglrecorder-0.1.0_1 +libgpod.so.4 libgpod-0.8.3_1 +libi2c.so.0 i2c-tools-4.0_1 +libmarisa.so.0 marisa-0.2.5_1 +libopencc.so.1.1 opencc-1.1.1_1 +librime.so.1 librime-1.2.9_1 +libIMECore.so.0 libime-1.0.5_1 +libIMEPinyin.so.0 libime-1.0.5_1 +libIMETable.so.0 libime-1.0.5_1 +libIMEJyutping.so.1 libime-jyutping-1.0.2_1 +libairspy.so.0 libairspy-1.0.9_1 +libKF5KDcraw.so.5 libkdcraw5-17.04.3_1 +libKF5Kipi.so.32.0.0 libkipi5-17.04.3_1 +libhackrf.so.0 libhackrf-2017.02.1_1 +libtecla.so.1 libtecla-1.6.3_1 +libtecla_r.so.1 libtecla-1.6.3_1 +libzim.so.6 libzim-6.0.1_1 +libkiwix.so.9 kiwix-lib-9.0.1_1 +libaria2.so.0 libaria2-1.35.0_3 +librpm.so.9 librpm-4.15.0_1 +librpmsign.so.9 librpmsign-4.15.0_1 +librpmbuild.so.9 librpmbuild-4.15.0_1 +librpmio.so.9 librpmio-4.15.0_1 +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.23 kdeconnect-23.04.0_1 +libkdeconnectcore.so.23 kdeconnect-23.04.0_1 +libkpmcore.so.12 kpmcore-22.04.1_1 +libpkcs11-helper.so.1 pkcs11-helper-1.25.1_6 +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.2 libykpiv-2.3.0_1 +libykcs11.so.2 libykcs11-2.3.0_1 +libKF5KExiv2.so.15.0.0 libkexiv25-17.04.3_1 +libqmobipocket.so.2 libqmobipocket-17.04.3_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 +libKF5TextAutoCorrectionCore.so.1 ktextaddons-1.3.2_1 +libKF5TextAutoCorrectionWidgets.so.1 ktextaddons-1.3.2_1 +libKF5TextEditTextToSpeech.so.1 ktextaddons-1.3.2_1 +libKF5TextEmoticonsWidgets.so.1 ktextaddons-1.3.2_1 +libKF5TextEmoticonsCore.so.1 ktextaddons-1.3.2_1 +libKF5TextGrammarCheck.so.1 ktextaddons-1.3.2_1 +libKF5TextTranslator.so.1 ktextaddons-1.3.2_1 +libKF5TextAddonsWidgets.so.1 ktextaddons-1.3.2_1 +libz3.so z3-4.6.0_2 +libngspice.so.0 ngspice-35_1 +libvulkan.so.1 vulkan-loader-1.0.57.0_1 +libembb_mtapi_cpp.so embb-1.0.0_3 +libembb_mtapi_c.so embb-1.0.0_3 +libembb_mtapi_network_c.so embb-1.0.0_3 +libembb_base_cpp.so embb-1.0.0_3 +libembb_base_c.so embb-1.0.0_3 +libhpdf-2.3.0.so Haru-2.3.0_3 +libKF5Contacts.so.5 kcontacts-5.63.0_1 +libKPim5AkonadiXml.so.5 akonadi5-23.04.0_1 +libKPim5AkonadiCore.so.5 akonadi5-23.04.0_1 +libKPim5AkonadiPrivate.so.5 akonadi5-23.04.0_1 +libKPim5AkonadiWidgets.so.5 akonadi5-23.04.0_1 +libKPim5AkonadiAgentBase.so.5 akonadi5-23.04.0_1 +libKPim5TextEdit.so.5 kpimtextedit-23.04.0_1 +libKPim5IdentityManagement.so.5 kidentitymanagement-23.04.0_1 +libKPim5IdentityManagementWidgets.so.5 kidentitymanagement-23.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 +libzuluCryptPluginManager.so.1.0.0 zulucrypt-5.2.0_1 +libzuluCrypt-exe.so.1.2.0 zulucrypt-5.2.0_1 +libzuluCrypt.so.1.2.0 zulucrypt-5.2.0_1 +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.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.3.so.0 libpipewire-0.3.6_1 +libvolk.so.3.0 volk-3.0.0_1 +libgnuradio-runtime.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-pmt.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-blocks.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-audio.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-fec.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-fft.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-filter.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-analog.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-digital.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-dtv.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-channels.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-trellis.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-video-sdl.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-vocoder.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-wavelet.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-uhd.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-network.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-soapy.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-qtgui.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-zeromq.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-iio.so.3.10.5 gnuradio-3.10.5.0_1 +libgnuradio-pdu.so.3.10.5 gnuradio-3.10.5.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 +libvtkCommonCore-9.2.so.1 vtk-9.2.2_1 +libvtksys-9.2.so.1 vtk-9.2.2_1 +libvtkCommonMisc-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingContext2D-9.2.so.1 vtk-9.2.2_1 +libvtkCommonTransforms-9.2.so.1 vtk-9.2.2_1 +libvtkCommonMath-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingLOD-9.2.so.1 vtk-9.2.2_1 +libvtkViewsInfovis-9.2.so.1 vtk-9.2.2_1 +libvtkIOIOSS-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingLabel-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersPoints-9.2.so.1 vtk-9.2.2_1 +libvtkCommonExecutionModel-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingHyperTreeGrid-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersGeometry-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersGeneral-9.2.so.1 vtk-9.2.2_1 +libvtkCommonDataModel-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersTopology-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersSources-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingVolumeOpenGL2-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingCore-9.2.so.1 vtk-9.2.2_1 +libvtkIOOggTheora-9.2.so.1 vtk-9.2.2_1 +libvtkIOExportGL2PS-9.2.so.1 vtk-9.2.2_1 +libvtkIOAMR-9.2.so.1 vtk-9.2.2_1 +libvtkIOCesium3DTiles-9.2.so.1 vtk-9.2.2_1 +libvtkIOSegY-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingVtkJS-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersTexture-9.2.so.1 vtk-9.2.2_1 +libvtkIOVideo-9.2.so.1 vtk-9.2.2_1 +libvtkImagingSources-9.2.so.1 vtk-9.2.2_1 +libvtkImagingStencil-9.2.so.1 vtk-9.2.2_1 +libvtkIOCGNSReader-9.2.so.1 vtk-9.2.2_1 +libvtkCommonComputationalGeometry-9.2.so.1 vtk-9.2.2_1 +libvtkIOVeraOut-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersHybrid-9.2.so.1 vtk-9.2.2_1 +libvtkInteractionImage-9.2.so.1 vtk-9.2.2_1 +libvtkChartsCore-9.2.so.1 vtk-9.2.2_1 +libvtkImagingStatistics-9.2.so.1 vtk-9.2.2_1 +libvtkImagingHybrid-9.2.so.1 vtk-9.2.2_1 +libvtkGeovisCore-9.2.so.1 vtk-9.2.2_1 +libvtkInteractionWidgets-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersImaging-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersVerdict-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersSMP-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingUI-9.2.so.1 vtk-9.2.2_1 +libvtkIOHDF-9.2.so.1 vtk-9.2.2_1 +libvtkCommonSystem-9.2.so.1 vtk-9.2.2_1 +libvtkImagingColor-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingSceneGraph-9.2.so.1 vtk-9.2.2_1 +libvtkParallelCore-9.2.so.1 vtk-9.2.2_1 +libvtkIOInfovis-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingOpenGL2-9.2.so.1 vtk-9.2.2_1 +libvtkImagingFourier-9.2.so.1 vtk-9.2.2_1 +libvtkCommonColor-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingAnnotation-9.2.so.1 vtk-9.2.2_1 +libvtkIOSQL-9.2.so.1 vtk-9.2.2_1 +libvtkIOImage-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersCore-9.2.so.1 vtk-9.2.2_1 +libvtkInfovisCore-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersExtraction-9.2.so.1 vtk-9.2.2_1 +libvtkIOGeometry-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersFlowPaths-9.2.so.1 vtk-9.2.2_1 +libvtkIOMovie-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingVolume-9.2.so.1 vtk-9.2.2_1 +libvtkIOEnSight-9.2.so.1 vtk-9.2.2_1 +libvtkDomainsChemistryOpenGL2-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersStatistics-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersSelection-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersModeling-9.2.so.1 vtk-9.2.2_1 +libvtkViewsCore-9.2.so.1 vtk-9.2.2_1 +libvtkIOMotionFX-9.2.so.1 vtk-9.2.2_1 +libvtkIOLSDyna-9.2.so.1 vtk-9.2.2_1 +libvtkIOParallel-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingContextOpenGL2-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingImage-9.2.so.1 vtk-9.2.2_1 +libvtkIOXMLParser-9.2.so.1 vtk-9.2.2_1 +libvtkImagingMorphological-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersParallel-9.2.so.1 vtk-9.2.2_1 +libvtkViewsContext2D-9.2.so.1 vtk-9.2.2_1 +libvtkIOImport-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingLICOpenGL2-9.2.so.1 vtk-9.2.2_1 +libvtkIOAsynchronous-9.2.so.1 vtk-9.2.2_1 +libvtkIOTecplotTable-9.2.so.1 vtk-9.2.2_1 +libvtkIOCityGML-9.2.so.1 vtk-9.2.2_1 +libvtkImagingMath-9.2.so.1 vtk-9.2.2_1 +libvtkIOParallelXML-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingGL2PSOpenGL2-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersGeneric-9.2.so.1 vtk-9.2.2_1 +libvtkIONetCDF-9.2.so.1 vtk-9.2.2_1 +libvtkImagingCore-9.2.so.1 vtk-9.2.2_1 +libvtkInfovisLayout-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersHyperTree-9.2.so.1 vtk-9.2.2_1 +libvtkIOExportPDF-9.2.so.1 vtk-9.2.2_1 +libvtkImagingGeneral-9.2.so.1 vtk-9.2.2_1 +libvtkIOXML-9.2.so.1 vtk-9.2.2_1 +libvtkIOChemistry-9.2.so.1 vtk-9.2.2_1 +libvtkInteractionStyle-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersAMR-9.2.so.1 vtk-9.2.2_1 +libvtkIOMINC-9.2.so.1 vtk-9.2.2_1 +libvtkTestingRendering-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersParallelImaging-9.2.so.1 vtk-9.2.2_1 +libvtkDomainsChemistry-9.2.so.1 vtk-9.2.2_1 +libvtkIOExport-9.2.so.1 vtk-9.2.2_1 +libvtkIOCore-9.2.so.1 vtk-9.2.2_1 +libvtkFiltersProgrammable-9.2.so.1 vtk-9.2.2_1 +libvtkIOCONVERGECFD-9.2.so.1 vtk-9.2.2_1 +libvtkIOLegacy-9.2.so.1 vtk-9.2.2_1 +libvtkRenderingFreeType-9.2.so.1 vtk-9.2.2_1 +libvtkIOPLY-9.2.so.1 vtk-9.2.2_1 +libvtkIOExodus-9.2.so.1 vtk-9.2.2_1 +libvtkkissfft-9.2.so.1 vtk-9.2.2_1 +libvolume_key.so.1 volume_key-0.3.9_1 +librand48_r.so.0 rand48_r-0.1_1 +libxxhash.so.0 libxxHash-0.6.5_2 +libcapnp_c.so.0 c-capnproto-0.3_1 +libTKernel.so.7.7 occt-7.7.1_1 +libTKXmlXCAF.so.7.7 occt-7.7.1_1 +libTKXmlTObj.so.7.7 occt-7.7.1_1 +libTKXmlL.so.7.7 occt-7.7.1_1 +libTKXml.so.7.7 occt-7.7.1_1 +libTKXSDRAW.so.7.7 occt-7.7.1_1 +libTKXSBase.so.7.7 occt-7.7.1_1 +libTKXMesh.so.7.7 occt-7.7.1_1 +libTKXDESTEP.so.7.7 occt-7.7.1_1 +libTKXDEIGES.so.7.7 occt-7.7.1_1 +libTKXDEDRAW.so.7.7 occt-7.7.1_1 +libTKXDECascade.so.7.7 occt-7.7.1_1 +libTKXDE.so.7.7 occt-7.7.1_1 +libTKXCAF.so.7.7 occt-7.7.1_1 +libTKViewerTest.so.7.7 occt-7.7.1_1 +libTKVRML.so.7.7 occt-7.7.1_1 +libTKVCAF.so.7.7 occt-7.7.1_1 +libTKV3d.so.7.7 occt-7.7.1_1 +libTKTopTest.so.7.7 occt-7.7.1_1 +libTKTopAlgo.so.7.7 occt-7.7.1_1 +libTKTObjDRAW.so.7.7 occt-7.7.1_1 +libTKTObj.so.7.7 occt-7.7.1_1 +libTKStdL.so.7.7 occt-7.7.1_1 +libTKStd.so.7.7 occt-7.7.1_1 +libTKShHealing.so.7.7 occt-7.7.1_1 +libTKService.so.7.7 occt-7.7.1_1 +libTKSTL.so.7.7 occt-7.7.1_1 +libTKSTEPBase.so.7.7 occt-7.7.1_1 +libTKSTEPAttr.so.7.7 occt-7.7.1_1 +libTKSTEP209.so.7.7 occt-7.7.1_1 +libTKSTEP.so.7.7 occt-7.7.1_1 +libTKRWMesh.so.7.7 occt-7.7.1_1 +libTKQADraw.so.7.7 occt-7.7.1_1 +libTKPrim.so.7.7 occt-7.7.1_1 +libTKOpenGlTest.so.7.7 occt-7.7.1_1 +libTKOpenGl.so.7.7 occt-7.7.1_1 +libTKOffset.so.7.7 occt-7.7.1_1 +libTKMeshVS.so.7.7 occt-7.7.1_1 +libTKMesh.so.7.7 occt-7.7.1_1 +libTKMath.so.7.7 occt-7.7.1_1 +libTKLCAF.so.7.7 occt-7.7.1_1 +libTKIGES.so.7.7 occt-7.7.1_1 +libTKHLR.so.7.7 occt-7.7.1_1 +libTKGeomBase.so.7.7 occt-7.7.1_1 +libTKGeomAlgo.so.7.7 occt-7.7.1_1 +libTKG3d.so.7.7 occt-7.7.1_1 +libTKG2d.so.7.7 occt-7.7.1_1 +libTKFillet.so.7.7 occt-7.7.1_1 +libTKFeat.so.7.7 occt-7.7.1_1 +libTKExpress.so.7.7 occt-7.7.1_1 +libTKDraw.so.7.7 occt-7.7.1_1 +libTKDCAF.so.7.7 occt-7.7.1_1 +libTKCDF.so.7.7 occt-7.7.1_1 +libTKCAF.so.7.7 occt-7.7.1_1 +libTKBool.so.7.7 occt-7.7.1_1 +libTKBinXCAF.so.7.7 occt-7.7.1_1 +libTKBinTObj.so.7.7 occt-7.7.1_1 +libTKBinL.so.7.7 occt-7.7.1_1 +libTKBin.so.7.7 occt-7.7.1_1 +libTKBRep.so.7.7 occt-7.7.1_1 +libTKBO.so.7.7 occt-7.7.1_1 +libargon2.so.1 libargon2-20171227_1 +libdazzle-1.0.so.0 libdazzle-3.28.0_1 +libjsonrpc-glib-1.0.so.1 jsonrpc-glib-3.28.0_1 +libtemplate_glib-1.0.so.0 template-glib-3.28.0_1 +libmedimport.so.0 libmed-3.3.1_1 +libmedC.so.11 libmed-4.0.0_1 +libmed.so.11 libmed-4.0.0_1 +libeog.so eog-3.28.0_4 +libfreexl.so.1 freexl-1.0.5_1 +libgeos_c.so.1 geos-3.9.0_1 +libpapi.so.5 papi-5.6.0_1 +libpfm.so.4 papi-5.6.0_1 +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.8 SoapySDR-0.8.1_1 +libeditorconfig.so.0 editorconfig-0.12.2_1 +libcfitsio.so.10 cfitsio-4.2.0_1 +libapparmor.so.1 libapparmor-2.12.0_1 +libplacebo.so.208 libplacebo-4.208.0_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 +libticonv.so.8 libticonv-1.1.5_1 +libtifiles2.so.10 libtifiles2-1.1.7_1 +libticables2.so.7 libticables2-1.3.5_1 +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.3 libaom-3.4.0_1 +libre.so.12 re-2.10.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 +libspa-alsa.so libspa-alsa-0.3.6_1 +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-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.4 rem-2.10.0_1 +libshp.so.1 shapelib-1.4.1_1 +libantlr3c.so libantlr3c-3.4_1 +libbzrtp.so.0 bzrtp-1.0.6_1 +libbellesip.so.1 belle-sip-4.4.0_1 +libKPim5EventViews.so.5 eventviews-23.04.0_1 +libKPim5IncidenceEditor.so.5 incidenceeditor-23.04.0_1 +libmediastreamer.so.11 mediastreamer-4.4.0_1 +liblinphone.so.10 linphone-4.4.0_1 +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.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-102.so.0 mozjs102-102.3.0_1 +libmozjs-78.so.0 mozjs78-78.1.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 +libwx_gtk3u_propgrid-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_qa-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_core-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_html-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_adv-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_richtext-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_xrc-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_webview-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_aui-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_media-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_ribbon-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_gl-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libwx_gtk3u_stc-3.0.so.0 wxWidgets-gtk3-3.0.4_1 +libtepl-6.so.2 tepl-6.4.0_1 +libnomacsCore.so.3 nomacs-3.10.2_4 +libaudit.so.1 libaudit-2.8.4_1 +libauparse.so.0 libauparse-2.8.4_1 +libOpenCL.so.1 ocl-icd-2.2.12_1 +liburiparser.so.1 uriparser-0.8.6_1 +libcpptest.so.1 cpptest-2.0.0_1 +libhandy-0.0.so.0 libhandy-0.0.3_1 +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 +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 +libwlroots.so.10 wlroots0.15-0.15.1_1 +libwlroots.so.11 wlroots-0.16.0_1 +libbaseencode.so.1 libbaseencode-1.0.9_1 +libcotp.so.2 libcotp-2.0.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.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.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.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 +libnss_mdns.so.2 nss-mdns-0.14.1_1 +libnss_mdns4.so.2 nss-mdns-0.14.1_1 +libnss_mdns6.so.2 nss-mdns-0.14.1_1 +libSavitar.so.0 libSavitar-2.7.0_1 +libcsfml-audio.so.2.5 CSFML-2.5_1 +libcsfml-graphics.so.2.5 CSFML-2.5_1 +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.6 libdav1d6-1.0.0_1 +librav1e.so.0 rav1e-0.6.3_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 +libwoff2dec.so.1.0.2 libwoff2dec1.0.2-1.0.2_1 +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 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 +libgetdns_ext_uv.so.10 getdns-1.5.1_7 +libzck.so.1 zchunk-1.1.9_3 +librec.so.1 librec1-1.8_1 +libfixposix.so.3 libfixposix-0.4.3_1 +libgerv.so.1 gerbv-2.6.2_1 +libtexpdf.so.0 libtexpdf-0.9.5_1 +libupstart.so.1 libupstart-1.13.3_1 +librtas.so.2 librtas-2.0.2_1 +librtasevent.so.2 librtas-2.0.2_1 +libbroker.so.3 zeek-4.0.1_1 +libcaf_core.so.0.18.0 zeek-4.0.0_1 +libcaf_io.so.0.18.0 zeek-4.0.0_1 +libcaf_openssl.so.0.18.0 zeek-4.0.0_1 +libbinpac.so.0 zeek-3.2.4_2 +libllhttp.so.1 llhttp-1.0.1_1 +libpinyin.so.15 libpinyin-2.8.1_1 +libzhuyin.so.15 libzhuyin-2.8.1_1 +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.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.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.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 +libTECkit_Compiler.so.0 libteckit-2.5.8_1 +libwf-config.so.1 wf-config-0.5.0_1 +libQt5Pas.so.1 qt5pas-2.6~beta_1 +libClp.so.1 libClp-1.16.11_1 +libCoinUtils.so.3 libClp-1.16.11_1 +libOsiClp.so.1 libClp-1.16.11_1 +libClpSolver.so.1 libClp-1.16.11_1 +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.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 +liborocos-kdl.so.1.4 orocos-kdl-1.4.0_1 +libibumad.so.3 rdma-core-22.1_1 +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-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 +libyang.so.1 libyang-1.0r5_1 +libhtp.so.2 libhtp-0.5.30_1 +libgedit-44.so gedit-44.0_1 +libchewing.so.3 libchewing-0.5.1_1 +libdwarves.so.1 pahole-1.12_1 +libdwarves_emit.so.1 pahole-1.12_1 +libdwarves_reorganize.so.1 pahole-1.12_1 +libclthreads.so.2 clthreads-2.4.2_1 +libclxclient.so.3 clxclient-3.9.2_1 +libltc.so.11 libltc-1.3.1_1 +libvpd-2.2.so.2 libvpd-2.2.6_1 +libvpd_cxx-2.2.so.2 libvpd-2.2.6_1 +liblcf.so.0 liblcf-0.6.0_1 +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.33 libgrpc-1.56.0_1 +libgpr.so.33 libgrpc-1.56.0_1 +libgrpc.so.33 libgrpc-1.56.0_1 +libgrpc_unsecure.so.33 libgrpc-1.56.0_1 +libupb.so.33 libgrpc-1.56.0_1 +libgrpc++.so.1.56 libgrpc-1.56.0_1 +libgrpc++_alts.so.1.56 libgrpc-1.56.0_1 +libgrpc++_error_details.so.1.56 libgrpc-1.56.0_1 +libgrpc++_reflection.so.1.56 libgrpc-1.56.0_1 +libgrpc++_unsecure.so.1.56 libgrpc-1.56.0_1 +libgrpc_plugin_support.so.1.56 libgrpc-1.56.0_1 +libgrpcpp_channelz.so.1.56 libgrpc-1.56.0_1 +libircclient.so.1 libircclient-1.10_5 +libFAudio.so.0 FAudio-19.05_1 +libqaccessibilityclient-qt5.so.0 libqaccessibilityclient-0.4.0_1 +libnitrokey.so.3 libnitrokey-3.4.1_1 +libceres.so.3 ceres-solver-2.1.0_1 +libgraphene-1.0.so.0 graphene-1.8.2_1 +libflite.so.1 flite-2.1_1 +libflite_cmu_us_kal.so.1 flite-2.1_1 +libflite_usenglish.so.1 flite-2.1_1 +libflite_cmulex.so.1 flite-2.1_1 +libflite_cmu_us_kal16.so.1 flite-2.2_1 +libgtk-4.so.1 gtk4-4.0.0_1 +libmodule.so.5 libmodule-5.0.0_1 +libgnustep-gui.so.0 gnustep-gui-0.30.0_1 +libmhash.so.2 mhash-0.9.9.9_1 +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.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 +libbcc.so.0 bcc-0.10.0_1 +libbcc_bpf.so.0 bcc-0.10.0_1 +libde265.so.0 libde265-1.0.3_1 +libheif.so.1 libheif-1.4.0_1 +libuninameslist.so.1 libuninameslist-20190701_1 +libgambit.so.4 gambit-4.9.3_6 +liblog4cpp.so.5 log4cpp-1.1.3_1 +libnuspell.so.5 libnuspell-5.0.0_1 +liblog4c.so.3 log4c-1.2.4_1 +libqb.so.100 libqb-2.0.0_1 +libusbguard.so.1 usbguard-1.0.0_1 +libknet.so.1 libknet1-1.11_4 +libdrumstick-file.so.1 drumstick-1.1.2_1 +libdrumstick-alsa.so.1 drumstick-1.1.2_1 +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.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 +libevdevPlus.so.0 libevdevPlus-0.1.0_1 +librte_lpm.so.2 dpdk-19.08_5 +librte_sched.so.3 dpdk-19.08_5 +librte_eal.so.11 dpdk-19.08_5 +librte_pci.so.1 dpdk-19.08_5 +librte_gro.so.1 dpdk-19.08_5 +librte_jobstats.so.1 dpdk-19.08_5 +librte_bpf.so.1 dpdk-19.08_5 +librte_ip_frag.so.1 dpdk-19.08_5 +librte_port.so.3 dpdk-19.08_5 +librte_latencystats.so.1 dpdk-19.08_5 +librte_pipeline.so.3 dpdk-19.08_5 +librte_distributor.so.1 dpdk-19.08_5 +librte_pmd_vmxnet3.so.1 dpdk-19.08_5 +librte_pmd_dpaa_sec.so.1 dpdk-19.08_5 +librte_common_octeontx.so.1 dpdk-19.08_5 +librte_pmd_iavf.so.1 dpdk-19.08_5 +librte_pmd_octeontx_event.so.1 dpdk-19.08_5 +librte_pmd_ring.so.2 dpdk-19.08_5 +librte_rawdev_skeleton.so.1 dpdk-19.08_5 +librte_pmd_qat.so.1 dpdk-19.08_5 +librte_pmd_hinic.so.1 dpdk-19.08_5 +librte_bus_vmbus.so.2 dpdk-19.08_5 +librte_pmd_null.so.2 dpdk-19.08_5 +librte_pmd_bbdev_null.so.1 dpdk-19.08_5 +librte_common_dpaax.so.1 dpdk-19.08_5 +librte_pmd_dpaa2_event.so.2 dpdk-19.08_5 +librte_pmd_bnxt.so.2 dpdk-19.08_5 +librte_bus_ifpga.so.2 dpdk-19.08_5 +librte_pmd_pcap.so.1 dpdk-19.08_5 +librte_pmd_kni.so.1 dpdk-19.08_5 +librte_pmd_enetc.so.1 dpdk-19.08_5 +librte_pmd_atlantic.so.1 dpdk-19.08_5 +librte_mempool_stack.so.1 dpdk-19.08_5 +librte_pmd_opdl_event.so.1 dpdk-19.08_5 +librte_rawdev_dpaa2_cmdif.so.2 dpdk-19.08_5 +librte_pmd_avp.so.1 dpdk-19.08_5 +librte_pmd_cxgbe.so.1 dpdk-19.08_5 +librte_pmd_crypto_scheduler.so.1 dpdk-19.08_5 +librte_pmd_openssl.so.1 dpdk-19.08_5 +librte_pmd_octeontx2_event.so.1 dpdk-19.08_5 +librte_pmd_sfc.so.1 dpdk-19.08_5 +librte_pmd_i40e.so.2 dpdk-19.08_5 +librte_pmd_e1000.so.1 dpdk-19.08_5 +librte_rawdev_octeontx2_dma.so.1 dpdk-19.08_5 +librte_rawdev_ioat.so.1 dpdk-19.08_5 +librte_pmd_dpaa2.so.2 dpdk-19.08_5 +librte_pmd_sw_event.so.1 dpdk-19.08_5 +librte_mempool_octeontx2.so.1 dpdk-19.08_5 +librte_pmd_bbdev_fpga_lte_fec.so.1 dpdk-19.08_5 +librte_rawdev_ntb.so.1 dpdk-19.08_5 +librte_pmd_memif.so.1 dpdk-19.08_5 +librte_pmd_dpaa2_sec.so.2 dpdk-19.08_5 +librte_pmd_failsafe.so.1 dpdk-19.08_5 +librte_pmd_thunderx.so.1 dpdk-19.08_5 +librte_pmd_octeontx.so.1 dpdk-19.08_5 +librte_pmd_dpaa.so.1 dpdk-19.08_5 +librte_pmd_caam_jr.so.1 dpdk-19.08_5 +librte_pmd_virtio.so.1 dpdk-19.08_5 +librte_pmd_octeontx_compress.so.1 dpdk-19.08_5 +librte_pmd_zlib.so.1 dpdk-19.08_5 +librte_bus_pci.so.2 dpdk-19.08_5 +librte_pmd_bond.so.2 dpdk-19.08_5 +librte_pmd_ice.so.1 dpdk-19.08_5 +librte_pmd_skeleton_event.so.1 dpdk-19.08_5 +librte_mempool_ring.so.1 dpdk-19.08_5 +librte_pmd_octeontx2.so.1 dpdk-19.08_5 +librte_mempool_octeontx.so.1 dpdk-19.08_5 +librte_pmd_ark.so.1 dpdk-19.08_5 +librte_pmd_null_crypto.so.1 dpdk-19.08_5 +librte_pmd_ena.so.1 dpdk-19.08_5 +librte_pmd_axgbe.so.1 dpdk-19.08_5 +librte_common_cpt.so.1 dpdk-19.08_5 +librte_pmd_af_packet.so.1 dpdk-19.08_5 +librte_pmd_vhost.so.2 dpdk-19.08_5 +librte_pmd_softnic.so.1 dpdk-19.08_5 +librte_pmd_nfp.so.1 dpdk-19.08_5 +librte_bus_fslmc.so.2 dpdk-19.08_5 +librte_bus_dpaa.so.2 dpdk-19.08_5 +librte_pmd_fm10k.so.1 dpdk-19.08_5 +librte_pmd_bbdev_turbo_sw.so.1 dpdk-19.08_5 +librte_mempool_dpaa2.so.2 dpdk-19.08_5 +librte_pmd_ipn3ke.so.1 dpdk-19.08_5 +librte_pmd_vdev_netvsc.so.1 dpdk-19.08_5 +librte_mempool_dpaa.so.1 dpdk-19.08_5 +librte_pmd_bnx2x.so.1 dpdk-19.08_5 +librte_pmd_enic.so.1 dpdk-19.08_5 +librte_pmd_ixgbe.so.2 dpdk-19.08_5 +librte_common_octeontx2.so.1 dpdk-19.08_5 +librte_pmd_liquidio.so.1 dpdk-19.08_5 +librte_pmd_netvsc.so.2 dpdk-19.08_5 +librte_mempool_bucket.so.1 dpdk-19.08_5 +librte_pmd_virtio_crypto.so.1 dpdk-19.08_5 +librte_pmd_ccp.so.1 dpdk-19.08_5 +librte_bus_vdev.so.2 dpdk-19.08_5 +librte_pmd_tap.so.1 dpdk-19.08_5 +librte_pmd_octeontx_crypto.so.1 dpdk-19.08_5 +librte_rawdev_dpaa2_qdma.so.2 dpdk-19.08_5 +librte_pmd_dsw_event.so.1 dpdk-19.08_5 +librte_pmd_dpaa_event.so.1 dpdk-19.08_5 +librte_pmd_ifc.so.1 dpdk-19.08_5 +librte_stack.so.1 dpdk-19.08_5 +librte_kvargs.so.1 dpdk-19.08_5 +librte_security.so.2 dpdk-19.08_5 +librte_bitratestats.so.2 dpdk-19.08_5 +librte_rcu.so.1 dpdk-19.08_5 +librte_gso.so.1 dpdk-19.08_5 +librte_efd.so.1 dpdk-19.08_5 +librte_cmdline.so.2 dpdk-19.08_5 +librte_telemetry.so.1 dpdk-19.08_5 +librte_pdump.so.3 dpdk-19.08_5 +librte_eventdev.so.7 dpdk-19.08_5 +librte_vhost.so.4 dpdk-19.08_5 +librte_net.so.1 dpdk-19.08_5 +librte_meter.so.3 dpdk-19.08_5 +librte_acl.so.2 dpdk-19.08_5 +librte_mempool.so.5 dpdk-19.08_5 +librte_table.so.3 dpdk-19.08_5 +librte_power.so.1 dpdk-19.08_5 +librte_reorder.so.1 dpdk-19.08_5 +librte_ring.so.2 dpdk-19.08_5 +librte_ethdev.so.12 dpdk-19.08_5 +librte_bbdev.so.1 dpdk-19.08_5 +librte_ipsec.so.1 dpdk-19.08_5 +librte_timer.so.1 dpdk-19.08_5 +librte_cfgfile.so.2 dpdk-19.08_5 +librte_member.so.1 dpdk-19.08_5 +librte_compressdev.so.1 dpdk-19.08_5 +librte_mbuf.so.5 dpdk-19.08_5 +librte_hash.so.2 dpdk-19.08_5 +librte_flow_classify.so.1 dpdk-19.08_5 +librte_metrics.so.1 dpdk-19.08_5 +librte_cryptodev.so.8 dpdk-19.08_5 +librte_rawdev.so.1 dpdk-19.08_5 +librte_kni.so.2 dpdk-19.08_5 +libredwg.so.0 libredwg-0.9_1 +libgcj-tools.so.17 libgcj-6.5.0_1 +libgcj_bc.so.1 libgcj-6.5.0_1 +libgcj.so.17 libgcj-6.5.0_1 +libgij.so.17 libgcj-6.5.0_1 +libtty.so.1 libtermrec-0.18_1 +libtss2-mu.so.0 tpm2-tss-2.3.1_1 +libtss2-esys.so.0 tpm2-tss-2.3.1_1 +libtss2-sys.so.1 tpm2-tss-3.0.1_1 +libtss2-tcti-device.so.0 tpm2-tss-2.3.1_1 +libtss2-rc.so.0 tpm2-tss-2.3.1_1 +libtss2-tcti-mssim.so.0 tpm2-tss-2.3.1_1 +libtss2-tctildr.so.0 tpm2-tss-2.3.1_1 +libzfsbootenv.so.1 libzfs-2.1.7_1 +libzfs.so.4 libzfs-2.1.7_1 +libuutil.so.3 libzfs-2.1.7_1 +libzpool.so.5 libzfs-2.1.7_1 +libzfs_core.so.3 libzfs-2.1.7_1 +libnvpair.so.3 libzfs-2.1.7_1 +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.12 intel-gmmlib-22.1.3_1 +libigfxcmrt.so.7 intel-media-driver-21.3.5_1 +libigraph.so.3 igraph-0.10.2_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.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 +libcaribou.so.0 libcaribou-0.4.21_3 +libtinyclipboard.so.1 tinyclipboard-16.01_1 +libcbor.so.0.10 libcbor-0.10.1_1 +libfido2.so.1 libfido2-1.6.0_2 +libOpenImageDenoise.so.1 openimagedenoise-1.3.0_1 +libcbang0.so cbang-1.6.0_3 +libblosc.so.1 c-blosc-1.17.1_1 +libopenvdb.so.9.0 openvdb-9.0.0_1 +libAlembic.so.1.8 alembic-1.8.3_1 +libmodsecurity.so.3 modsecurity-3.0.4_1 +libraven.so.0 budgie-desktop-10.5.1_1 +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.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.12 tagparser-12.0.0_1 +libqtutilities.so.6 qtutilities-6.0.4_1 +libkdsoap.so.2 KDSoap-2.0.0_1 +libkdsoap-server.so.2 KDSoap-2.0.0_1 +libstoken.so.1 stoken-0.92_1 +libjpegxr.so.0 jxrlib-0.2.2_1 +libjxrglue.so.0 jxrlib-0.2.2_1 +libhidrd_util.so.0 hidrd-0.2.0_1 +libhidrd_usage.so.0 hidrd-0.2.0_1 +libhidrd_item.so.0 hidrd-0.2.0_1 +libhidrd_opt.so.0 hidrd-0.2.0_1 +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.11 matio-1.5.23_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 +libsepol.so.1 libsepol-3.0_1 +libfrrcares.so.0 libfrr-7.3.1_1 +libhugetlbfs.so.0 libhugetlbfs-2.22_1 +libmonocypher.so.4 monocypher-4.0.1_1 +libkpathsea.so.6 texlive-20200406_1 +libtexluajit.so.2 texlive-LuaTeX-20200406_1 +libtexlua53.so.5 texlive-LuaTeX-20200406_1 +libptexenc.so.1 texlive-20200406_1 +libsynctex.so.2 libsynctex-20200406_3 +libdolphinvcs.so.5 dolphin-20.04.3_1 +libocl.so.2019.07 opencamlib-2019.07_1 +libcglm.so.0 cglm-0.7.6_1 +libfcft.so.4 fcft-3.0.1_1 +libaml.so.0 aml-0.1.0_1 +libneatvnc.so.0 neatvnc-0.3.2_1 +libtdjson.so.1.8.0 libtd-1.8.0_1 +libJudy.so.1 judy-1.0.5_1 +libsignal-protocol-c.so.2 libsignal-protocol-c-2.3.3_2 +libKSeExprUI.so.4 seexpr-krita-4.0.4.0_1 +libKSeExpr.so.4 seexpr-krita-4.0.4.0_1 +libkritaqmicinterface.so.17 krita-5.0.0_1 +liburing.so.2 liburing-2.0_1 +libbson-1.0.so.0 libbson-1.17.4_2 +libsonic.so.0 libsonic-0.2.0_1 +libtickit.so.3 libtickit-0.4.1_1 +libnotcurses.so.3 notcurses-3.0.5_1 +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 +libinih.so.0 inih-52_1 +libpcaudio.so.0 pcaudiolib-1.1_1 +libdcerpc-samr.so.0 samba-4.13.2_1 +libdcerpc-server-core.so.0 samba-4.13.2_1 +libnetapi.so.0 samba-4.13.2_1 +libnss_winbind.so.2 samba-4.13.2_1 +libnss_wins.so.2 samba-4.13.2_1 +libsamba-policy.so.0 samba-4.13.2_1 +libauth-unix-token-samba4.so samba-4.13.2_1 +libauth4-samba4.so samba-4.13.3_1 +libdcerpc-samba4.so samba-4.13.2_1 +libdsdb-module-samba4.so samba-4.13.2_1 +libgpext-samba4.so samba-4.13.2_1 +libnet-keytab-samba4.so samba-4.13.3_1 +libposix-eadb-samba4.so samba-4.13.2_1 +libprinting-migrate-samba4.so samba-4.13.2_1 +libsamba-net-samba4.so samba-4.13.2_1 +libsamba-python-samba4.so samba-4.13.3_1 +libshares-samba4.so samba-4.13.2_1 +libsmbd-base-samba4.so samba-4.13.2_1 +libsmbd-conn-samba4.so samba-4.13.2_1 +libsmbpasswordparser-samba4.so samba-4.13.3_1 +libxattr-tdb-samba4.so samba-4.13.2_1 +libdcerpc.so.0 samba-libs-4.13.2_1 +libdcerpc-binding.so.0 samba-libs-4.13.2_1 +libndr-krb5pac.so.0 samba-libs-4.13.2_1 +libndr-nbt.so.0 samba-libs-4.13.2_1 +libndr-standard.so.0 samba-libs-4.13.2_1 +libndr.so.1 samba-libs-4.13.2_1 +libsamba-credentials.so.1 samba-libs-4.13.2_1 +libsamba-errors.so.1 samba-libs-4.13.2_1 +libsamba-hostconfig.so.0 samba-libs-4.13.2_1 +libsamba-passdb.so.0 samba-libs-4.13.2_1 +libsamba-util.so.0 samba-libs-4.13.2_1 +libsamdb.so.0 samba-libs-4.13.2_1 +libsmbclient.so.0 samba-libs-4.13.2_1 +libsmbconf.so.0 samba-libs-4.13.2_1 +libsmbldap.so.2 samba-libs-4.13.2_1 +libwbclient.so.0 samba-libs-4.13.2_1 +libcli-ldap-samba4.so samba-libs-4.13.2_1 +libcliauth-samba4.so samba-libs-4.13.2_1 +libcluster-samba4.so samba-libs-4.13.3_1 +libcommon-auth-samba4.so samba-libs-4.13.2_1 +libdcerpc-samba-samba4.so samba-libs-4.13.2_1 +libflag-mapping-samba4.so samba-libs-4.13.3_1 +libgpo-samba4.so samba-libs-4.13.2_1 +libiov-buf-samba4.so samba-libs-4.13.3_1 +libndr-samba-samba4.so samba-libs-4.13.2_1 +libndr-samba4.so samba-libs-4.13.2_1 +libprinter-driver-samba4.so samba-libs-4.13.3_1 +libsmb-transport-samba4.so samba-libs-4.13.2_1 +libtdb-wrap-samba4.so samba-libs-4.13.3_1 +libutil-cmdline-samba4.so samba-libs-4.13.2_1 +libwinbind-client-samba4.so samba-libs-4.13.2_1 +libsixel.so.1 libsixel-1.8.6_1 +libpamtest.so.0 pam_wrapper-1.1.3_1 +libopenaptx.so.0 libopenaptx-0.2.0_1 +libsimavr.so.1 simavr-1.6_2 +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-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.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.17 flintlib-2.9.0_1 +libarb.so.2 arb-2.20.0_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 +libwayland-client++.so.0 libwaylandpp-0.2.8_1 +libwayland-cursor++.so.0 libwaylandpp-0.2.8_1 +libwayland-egl++.so.0 libwaylandpp-0.2.8_1 +libwayland-client-extra++.so.0 libwaylandpp-0.2.8_1 +libspdlog.so.1.11 libspdlog-1.11.0_1 +libmd.so.0 libmd-1.0.3_1 +libldacBT_abr.so.2 ldacBT-2.0.2.3_1 +libldacBT_enc.so.2 ldacBT-2.0.2.3_1 +libfreeaptx.so.0 libfreeaptx-0.1.1_1 +libgumbo.so.1 gumbo-parser-0.10.1_2 +libmariadb.so.3 libmariadbclient-10.5.9_1 +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 +librnnoise.so.0 rnnoise-0.4.1_1 +liblhasa.so.0 lhasa-0.3.1_2 +libmt32emu.so.2 libmt32emu-2.5.1_1 +libqrtr-glib.so.0 libqrtr-glib-1.0.0_1 +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.11 primesieve-11.0_1 +libavif.so.15 libavif-0.11.0_1 +libkdumpfile.so.10 libkdumpfile-0.4.1_1 +libamd.so.3 SuiteSparse-6.0.1_1 +libcamd.so.3 SuiteSparse-6.0.1_1 +libccolamd.so.3 SuiteSparse-6.0.1_1 +libcholmod.so.4 SuiteSparse-6.0.1_1 +libcolamd.so.3 SuiteSparse-6.0.1_1 +libcxsparse.so.4 SuiteSparse-6.0.1_1 +libspqr.so.3 SuiteSparse-6.0.1_1 +libsuitesparseconfig.so.7 SuiteSparse-7.0.1_1 +libumfpack.so.6 SuiteSparse-6.0.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 +libomalloc-0.9.6.so singular-4.2.1_1 +libSingular-4.3.2.so singular-4.3.2_1 +libfactory-4.3.2.so singular-4.3.2_1 +libpolys-4.3.2.so singular-4.3.2_1 +libsingular_resources-4.3.2.so singular-4.3.2_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 +libm4rie-0.0.20200125.so m4rie-20200125_1 +libptytty.so.0 libptytty-2.0_1 +libcoeurl.so.0.3 coeurl-0.3.0_1 +libKPim5PkPass.so.5 kpkpass-23.04.0_1 +libphonenumber.so.8 libphonenumber-8.12.38_1 +libgeocoding.so.8 libphonenumber-8.12.38_1 +libKPim5Itinerary.so.5 kitinerary-23.04.0_1 +libKPim5AddressbookImportExport.so.5 kaddressbook-23.04.0_1 +libKPim5ImportWizard.so.5 akonadi-import-wizard-23.04.0_1 +libadblocklibprivate.so.5 kdepim-addons-21.08.3_1 +libdkimverifyconfigure.so.5 kdepim-addons-21.08.3_1 +libexpireaccounttrashfolderconfig.so.5 kdepim-addons-21.08.3_1 +libfolderconfiguresettings.so.5 kdepim-addons-21.08.3_1 +libshorturlpluginprivate.so.5 kdepim-addons-21.08.3_1 +libkmailquicktextpluginprivate.so.5 kdepim-addons-21.08.3_1 +libkmailmarkdown.so.5 kdepim-addons-21.08.3_1 +libgrammarcommon.so.5 kdepim-addons-21.08.3_1 +libkmailgrammalecte.so.5 kdepim-addons-21.08.3_1 +libkmaillanguagetool.so.5 kdepim-addons-21.08.3_1 +libkaddressbookmergelibprivate.so.5 kdepim-addons-21.08.3_1 +libkmailconfirmbeforedeleting.so.5 kdepim-addons-21.08.3_1 +libkaddressbookprivate.so.5 kaddressbook-21.08.3_1 +libcodec2.so.1.0 codec2-1.0.1_1 +libx86emu.so.3 libx86emu-3.4_1 +libdeflate.so.0 libdeflate-1.8_1 +libjawt.so openjdk17-jre-17.0.1+12_1 +libawt.so openjdk17-jre-17.0.1+12_1 +libawt_xawt.so openjdk17-jre-17.0.1+12_1 +libjava.so openjdk17-jre-17.0.1+12_1 +libjli.so openjdk17-jre-17.0.1+12_1 +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 +libreadosm.so.1 readosm-1.1.0a_1 +libSvtAv1Enc.so.1 libsvt-av1-1.3.0_1 +libSvtAv1Dec.so.0 libsvt-av1-0.9.0_1 +libyascreen.so.0 yascreen-1.96_1 +librz_analysis.so.0.5 rizin-0.5.1_1 +librz_asm.so.0.5 rizin-0.5.1_1 +librz_bin.so.0.5 rizin-0.5.1_1 +librz_bp.so.0.5 rizin-0.5.1_1 +librz_config.so.0.5 rizin-0.5.1_1 +librz_cons.so.0.5 rizin-0.5.1_1 +librz_core.so.0.5 rizin-0.5.1_1 +librz_crypto.so.0.5 rizin-0.5.1_1 +librz_debug.so.0.5 rizin-0.5.1_1 +librz_demangler.so.0.5 rizin-0.5.1_1 +librz_diff.so.0.5 rizin-0.5.1_1 +librz_egg.so.0.5 rizin-0.5.1_1 +librz_flag.so.0.5 rizin-0.5.1_1 +librz_hash.so.0.5 rizin-0.5.1_1 +librz_io.so.0.5 rizin-0.5.1_1 +librz_lang.so.0.5 rizin-0.5.1_1 +librz_magic.so.0.5 rizin-0.5.1_1 +librz_main.so.0.5 rizin-0.5.1_1 +librz_parse.so.0.5 rizin-0.5.1_1 +librz_reg.so.0.5 rizin-0.5.1_1 +librz_search.so.0.5 rizin-0.5.1_1 +librz_sign.so.0.5 rizin-0.5.1_1 +librz_socket.so.0.5 rizin-0.5.1_1 +librz_syscall.so.0.5 rizin-0.5.1_1 +librz_type.so.0.5 rizin-0.5.1_1 +librz_util.so.0.5 rizin-0.5.1_1 +libaravis-0.8.so.0 libaravis-0.8.21_1 +libLimeSuite.so.22.09-1 LimeSuite-22.09.0_1 +libnvme.so.1 libnvme-1.0_1 +libnvme-mi.so.1 libnvme-1.2_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.3 lowdown-1.0.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.8 syncthingtray-1.4.4_1 +libsyncthingmodel.so.8 syncthingtray-1.4.4_1 +libsyncthingconnector.so.8 syncthingtray-1.4.4_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_flags.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_raw_logging_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_parse.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_reflection.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_globals.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_config.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_seed_sequences.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_statusor.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_usage_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_commandlineflag.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_internal_randen_hwaes_impl.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_status.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_bad_any_cast_impl.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_bad_variant_access.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_raw_hash_set.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_bad_optional_access.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_cord.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_internal_distribution_test_util.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_cordz_handle.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_graphcycles_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_spinlock_wait.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_cordz_functions.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_usage.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_debugging_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_strerror.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_internal_seed_material.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_internal_log_sink_set.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_internal_proto.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_crc_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_civil_time.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_internal_conditions.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_crc_cpu_detect.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_entry.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_distributions.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_internal_globals.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_internal_format.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_internal_randen.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_exponential_biased.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_city.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_symbolize.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_leak_check.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_low_level_hash.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_severity.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_scoped_set_env.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_strings.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_die_if_null.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_hash.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_commandlineflag_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_periodic_sampler.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_internal_platform.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_malloc_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_cordz_sample_token.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_str_format_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_synchronization.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_internal_message.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_strings_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_private_handle_accessor.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_cord_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_internal_randen_hwaes.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_throw_delegate.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_crc_cord_state.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_flags.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_program_name.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_time_zone.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_examine_stack.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_crc32c.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_initialize.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_failure_signal_handler.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_time.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_cordz_info.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_sink.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_internal_nullguard.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_demangle_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_internal.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_base.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_hashtablez_sampler.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_flags_marshalling.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_internal_pool_urbg.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_int128.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_stacktrace.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_seed_gen_exception.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_log_internal_check_op.so.2301.0.0 abseil-cpp-20230125.3_1 +libabsl_random_internal_randen_slow.so.2301.0.0 abseil-cpp-20230125.3_1 +libairspyhf.so.0 libairspyhf-1.6.8_1 +libtraceevent.so.1 libtraceevent-1.6.2_1 +libtracefs.so.1 libtracefs-1.4.2_1 +libtracecmd.so.1 libtracecmd-3.1.2_1 +libkshark.so.2 libkshark-2.1.1_1 +libcpp-hocon.so.0.3.0 cpp-hocon-0.3.0_5 +libfst.so.25 openfst-1.8.2_1 +libvosk.so vosk-api-0.3.45_1 +libdspy-1.so.1 d-spy-1.4.0_1 +libpanel-1.so.1 libpanel-1.0.1_1 +libqrtr.so.1 qrtr-ns-1.0_1 +libbpf.so.1 libbpf-1.0.0_1 +libImath-3_1.so.29 imath-3.1.9_1 +libIex-3_1.so.30 libopenexr-3.1.5_1 +libIlmThread-3_1.so.30 libopenexr-3.1.5_1 +libOpenEXR-3_1.so.30 libopenexr-3.1.5_1 +libOpenEXRCore-3_1.so.30 libopenexr-3.1.5_1 +libOpenEXRUtil-3_1.so.30 libopenexr-3.1.5_1 +libdate-tz.so.3 chrono-date-3.0.1_1 +libayatana-ido3-0.4.so.0 ayatana-ido-0.9.2_1 +libayatana-indicator3.so.7 libayatana-indicator-0.9.3_1 +libayatana-appindicator3.so.1 libayatana-appindicator-0.5.91_1 +libplayerctl.so.2 playerctl-2.4.1_1 +libwireplumber-0.4.so.0 wireplumber-0.4.14_1 +libjodycode.so.3 libjodycode-3.0.1_1 +libgsoapssl++-2.8.124.so gsoap-2.8.124_1 +libjxl.so.0.8 libjxl-0.8.2_1 +libjxl_dec.so.0.8 libjxl-0.8.2_1 +libjxl_threads.so.0.8 libjxl-0.8.2_1 +libtext-engine-0.1.so.0 text-engine-0.1.1_1 +libvmaf.so.1 vmaf-2.3.1_1 diff --git a/common/travis/build.sh b/common/travis/build.sh new file mode 100755 index 0000000..007a61f --- /dev/null +++ b/common/travis/build.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# +# build.sh + +if [ "$1" != "$2" ]; then + arch="-a $2" +fi + +if [ "$3" = 1 ]; then + test="-Q" +fi + +PKGS=$(/hostrepo/xbps-src sort-dependencies $(cat /tmp/templates)) + +for pkg in ${PKGS}; do + /hostrepo/xbps-src -j$(nproc) -s -H "$HOME"/hostdir $arch $test pkg "$pkg" + [ $? -eq 1 ] && exit 1 +done + +exit 0 diff --git a/common/travis/changed_templates.sh b/common/travis/changed_templates.sh new file mode 100755 index 0000000..91af1f1 --- /dev/null +++ b/common/travis/changed_templates.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# +# changed_templates.sh + +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 merge-base origin/HEAD "$tip")" + +[ $(git rev-list --count "$tip" "^$base") -lt 200 ] || { + echo "::error title=Branch out of date::Your branch is too out of date. Please rebase on upstream and force-push." + exit 1 +} + +echo "$base $tip" >/tmp/revisions + +/bin/echo -e '\x1b[32mChanged packages:\x1b[0m' +git diff-tree -r --no-renames --name-only --diff-filter=AM \ + "$base" "$tip" \ + -- 'srcpkgs/*/template' | + cut -d/ -f 2 | + tee /tmp/templates | + sed "s/^/ /" >&2 diff --git a/common/travis/check-install.sh b/common/travis/check-install.sh new file mode 100755 index 0000000..31dd104 --- /dev/null +++ b/common/travis/check-install.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# +# check-install.sh + +export XBPS_TARGET_ARCH="$2" XBPS_DISTDIR=/hostrepo + +if [ "$1" != "$XBPS_TARGET_ARCH" ]; then + triplet="$(/hostrepo/xbps-src -a "$XBPS_TARGET_ARCH" show-var XBPS_CROSS_TRIPLET)" + CONFDIR="-C /usr/$triplet/etc/xbps.d" +else + CONFDIR="-C /etc/xbps.d" +fi + +mkdir /check-install + +mkdir -p /check-install/var/db/xbps/keys +cp /var/db/xbps/keys/* /check-install/var/db/xbps/keys/ + +ADDREPO="--repository=$HOME/hostdir/binpkgs/bootstrap + --repository=$HOME/hostdir/binpkgs + --repository=$HOME/hostdir/binpkgs/nonfree" +ROOTDIR="-r /check-install" + +xbps-install $ROOTDIR $ADDREPO $CONFDIR -S + +while read -r pkg; do + for subpkg in $(xsubpkg $pkg); do + /bin/echo -e "\x1b[32mTrying to install dependants of $subpkg:\x1b[0m" + for dep in $(xbps-query $ADDREPO -RX "$subpkg"); do + xbps-install \ + $ROOTDIR $ADDREPO $CONFDIR \ + -ny \ + "$subpkg" "$(xbps-uhelper getpkgname "$dep")" + ret="$?" + if [ "$ret" -eq 8 ] || [ "$ret" -eq 11 ]; then + /bin/echo -e "\x1b[31mFailed to install '$subpkg' and '$dep'\x1b[0m" + exit 1 + fi + done + done +done < /tmp/templates diff --git a/common/travis/fetch-xbps.sh b/common/travis/fetch-xbps.sh new file mode 100755 index 0000000..e5c5881 --- /dev/null +++ b/common/travis/fetch-xbps.sh @@ -0,0 +1,22 @@ +#!/bin/sh +# +# fetch-xbps.sh + +command -v xbps-uhelper >/dev/null && exit +TAR=tar +command -v bsdtar >/dev/null && TAR=bsdtar +ARCH=$(uname -m)-musl +VERSION=0.59_5 +URL="https://repo-ci.voidlinux.org/static/xbps-static-static-${VERSION}.${ARCH}.tar.xz" +FILE=${URL##*/} + +mkdir -p /tmp/bin + +/bin/echo -e '\x1b[32mInstalling xbps...\x1b[0m' +if command -v wget >/dev/null; then + wget -q -O "$FILE" "$URL" || exit 1 +else + curl -s -o "$FILE" "$URL" || exit 1 +fi + +$TAR xf "$FILE" -C /tmp/bin --strip-components=3 ./usr/bin || exit 1 diff --git a/common/travis/fetch-xtools.sh b/common/travis/fetch-xtools.sh new file mode 100755 index 0000000..0dd9e6c --- /dev/null +++ b/common/travis/fetch-xtools.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# +# fetch-xtools.sh + +TAR=tar +command -v bsdtar >/dev/null && TAR=bsdtar +URL="https://github.com/leahneukirchen/xtools/archive/master.tar.gz" +FILE="xtools.tar.gz" + +mkdir -p /tmp/bin + +/bin/echo -e '\x1b[32mInstalling xtools...\x1b[0m' +if command -v wget >/dev/null; then + wget -q -O "$FILE" "$URL" || exit 1 +else + xbps-fetch -o "$FILE" "$URL" || exit 1 +fi + +$TAR xf "$FILE" -C /tmp/bin --strip-components=1 || exit 1 diff --git a/common/travis/license.lst b/common/travis/license.lst new file mode 100644 index 0000000..aab1ca5 --- /dev/null +++ b/common/travis/license.lst @@ -0,0 +1,613 @@ +0BSD +389-exception +AAL +ADSL +AFL-1.1 +AFL-1.2 +AFL-2.0 +AFL-2.1 +AFL-3.0 +AGPL-1.0-only +AGPL-1.0-or-later +AGPL-3.0-only +AGPL-3.0-or-later +AMDPLPA +AML +AMPAS +ANTLR-PD-fallback +ANTLR-PD +APAFML +APL-1.0 +APSL-1.0 +APSL-1.1 +APSL-1.2 +APSL-2.0 +ASWF-Digital-Assets-1.0 +ASWF-Digital-Assets-1.1 +Abstyles +AdaCore-doc +Adobe-2006 +Adobe-Glyph +Afmparse +Aladdin +Apache-1.0 +Apache-1.1 +Apache-2.0 +App-s2p +Arphic-1999 +Artistic-1.0-Perl +Artistic-1.0-cl8 +Artistic-1.0 +Artistic-2.0 +Asterisk-exception +Autoconf-exception-2.0 +Autoconf-exception-3.0 +Autoconf-exception-generic +Autoconf-exception-macro +BSD-1-Clause +BSD-2-Clause-Patent +BSD-2-Clause-Views +BSD-2-Clause +BSD-3-Clause-Attribution +BSD-3-Clause-Clear +BSD-3-Clause-LBNL +BSD-3-Clause-Modification +BSD-3-Clause-No-Military-License +BSD-3-Clause-No-Nuclear-License-2014 +BSD-3-Clause-No-Nuclear-License +BSD-3-Clause-No-Nuclear-Warranty +BSD-3-Clause-Open-MPI +BSD-3-Clause +BSD-4-Clause-Shortened +BSD-4-Clause-UC +BSD-4-Clause +BSD-4.3RENO +BSD-4.3TAHOE +BSD-Advertising-Acknowledgement +BSD-Attribution-HPND-disclaimer +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-Charter +Bitstream-Vera +BlueOak-1.0.0 +Boehm-GC +Bootloader-exception +Borceux +Brian-Gladman-3-Clause +C-UDA-1.0 +CAL-1.0-Combined-Work-Exception +CAL-1.0 +CATOSL-1.1 +CC-BY-1.0 +CC-BY-2.0 +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 +CC-BY-4.0 +CC-BY-NC-1.0 +CC-BY-NC-2.0 +CC-BY-NC-2.5 +CC-BY-NC-3.0-DE +CC-BY-NC-3.0 +CC-BY-NC-4.0 +CC-BY-NC-ND-1.0 +CC-BY-NC-ND-2.0 +CC-BY-NC-ND-2.5 +CC-BY-NC-ND-3.0-DE +CC-BY-NC-ND-3.0-IGO +CC-BY-NC-ND-3.0 +CC-BY-NC-ND-4.0 +CC-BY-NC-SA-1.0 +CC-BY-NC-SA-2.0-DE +CC-BY-NC-SA-2.0-FR +CC-BY-NC-SA-2.0-UK +CC-BY-NC-SA-2.0 +CC-BY-NC-SA-2.5 +CC-BY-NC-SA-3.0-DE +CC-BY-NC-SA-3.0-IGO +CC-BY-NC-SA-3.0 +CC-BY-NC-SA-4.0 +CC-BY-ND-1.0 +CC-BY-ND-2.0 +CC-BY-ND-2.5 +CC-BY-ND-3.0-DE +CC-BY-ND-3.0 +CC-BY-ND-4.0 +CC-BY-SA-1.0 +CC-BY-SA-2.0-UK +CC-BY-SA-2.0 +CC-BY-SA-2.1-JP +CC-BY-SA-2.5 +CC-BY-SA-3.0-AT +CC-BY-SA-3.0-DE +CC-BY-SA-3.0-IGO +CC-BY-SA-3.0 +CC-BY-SA-4.0 +CC-PDDC +CC0-1.0 +CDDL-1.0 +CDDL-1.1 +CDL-1.0 +CDLA-Permissive-1.0 +CDLA-Permissive-2.0 +CDLA-Sharing-1.0 +CECILL-1.0 +CECILL-1.1 +CECILL-2.0 +CECILL-2.1 +CECILL-B +CECILL-C +CERN-OHL-1.1 +CERN-OHL-1.2 +CERN-OHL-P-2.0 +CERN-OHL-S-2.0 +CERN-OHL-W-2.0 +CFITSIO +CLISP-exception-2.0 +CMU-Mach +CNRI-Jython +CNRI-Python-GPL-Compatible +CNRI-Python +COIL-1.0 +CPAL-1.0 +CPL-1.0 +CPOL-1.02 +CUA-OPL-1.0 +Caldera +ClArtistic +Classpath-exception-2.0 +Clips +Community-Spec-1.0 +Condor-1.1 +Cornell-Lossless-JPEG +Crossword +CrystalStacker +Cube +D-FSL-1.0 +DL-DE-BY-2.0 +DOC +DRL-1.0 +DSDP +DigiRule-FOSS-exception +Dotseqn +ECL-1.0 +ECL-2.0 +EFL-1.0 +EFL-2.0 +EPICS +EPL-1.0 +EPL-2.0 +EUDatagrid +EUPL-1.0 +EUPL-1.1 +EUPL-1.2 +Elastic-2.0 +Entessa +ErlPL-1.1 +Eurosym +FDK-AAC +FLTK-exception +FSFAP +FSFUL +FSFULLR +FSFULLRWD +FTL +Fair +Fawkes-Runtime-exception +Font-exception-2.0 +Frameworx-1.0 +FreeBSD-DOC +FreeImage +GCC-exception-2.0 +GCC-exception-3.1 +GD +GFDL-1.1-invariants-only +GFDL-1.1-invariants-or-later +GFDL-1.1-no-invariants-only +GFDL-1.1-no-invariants-or-later +GFDL-1.1-only +GFDL-1.1-or-later +GFDL-1.2-invariants-only +GFDL-1.2-invariants-or-later +GFDL-1.2-no-invariants-only +GFDL-1.2-no-invariants-or-later +GFDL-1.2-only +GFDL-1.2-or-later +GFDL-1.3-invariants-only +GFDL-1.3-invariants-or-later +GFDL-1.3-no-invariants-only +GFDL-1.3-no-invariants-or-later +GFDL-1.3-only +GFDL-1.3-or-later +GL2PS +GLWTPL +GNAT-exception +GPL-1.0-only +GPL-1.0-or-later +GPL-2.0-only +GPL-2.0-or-later +GPL-3.0-interface-exception +GPL-3.0-linking-exception +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 +Graphics-Gems +HP-1986 +HPND-Markus-Kuhn +HPND-export-US +HPND-sell-variant-MIT-disclaimer +HPND-sell-variant +HPND +HTMLTIDY +HaskellReport +Hippocratic-2.1 +IBM-pibs +ICU +IEC-Code-Components-EULA +IJG-short +IJG +IPA +IPL-1.0 +ISC +ImageMagick +Imlib2 +Info-ZIP +Inner-Net-2.0 +Intel-ACPI +Intel +Interbase-1.0 +JPL-image +JPNIC +JSON +Jam +JasPer-2.0 +Kazlib +KiCad-libraries-exception +Knuth-CTAN +LAL-1.2 +LAL-1.3 +LGPL-2.0-only +LGPL-2.0-or-later +LGPL-2.1-only +LGPL-2.1-or-later +LGPL-3.0-linking-exception +LGPL-3.0-only +LGPL-3.0-or-later +LGPLLR +LLGPL +LLVM-exception +LOOP +LPL-1.0 +LPL-1.02 +LPPL-1.0 +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-translated-notice +Latex2e +Leptonica +LiLiQ-P-1.1 +LiLiQ-R-1.1 +LiLiQ-Rplus-1.1 +Libpng +Libtool-exception +Linux-OpenIB +Linux-man-pages-1-para +Linux-man-pages-copyleft-2-para +Linux-man-pages-copyleft-var +Linux-man-pages-copyleft +Linux-syscall-note +MIT-0 +MIT-CMU +MIT-Festival +MIT-Modern-Variant +MIT-Wu +MIT-advertising +MIT-enna +MIT-feh +MIT-open-group +MIT +MITNFA +MPL-1.0 +MPL-1.1 +MPL-2.0-no-copyleft-exception +MPL-2.0 +MS-LPL +MS-PL +MS-RL +MTLL +MakeIndex +Martin-Birgmeier +Minpack +MirOS +Motosoto +MulanPSL-1.0 +MulanPSL-2.0 +Multics +Mup +NAIST-2003 +NASA-1.3 +NBPL-1.0 +NCGL-UK-2.0 +NCSA +NGPL +NICTA-1.0 +NIST-PD-fallback +NIST-PD +NIST-Software +NLOD-1.0 +NLOD-2.0 +NLPL +NOSL +NPL-1.0 +NPL-1.1 +NPOSL-3.0 +NRL +NTP-0 +NTP +Naumen +Net-SNMP +NetCDF +Newsletr +Nokia-Qt-exception-1.1 +Nokia +Noweb +O-UDA-1.0 +OCCT-PL +OCCT-exception-1.0 +OCLC-2.0 +OCaml-LGPL-linking-exception +ODC-By-1.0 +ODbL-1.0 +OFFIS +OFL-1.0-RFN +OFL-1.0-no-RFN +OFL-1.0 +OFL-1.1-RFN +OFL-1.1-no-RFN +OFL-1.1 +OGC-1.0 +OGDL-Taiwan-1.0 +OGL-Canada-2.0 +OGL-UK-1.0 +OGL-UK-2.0 +OGL-UK-3.0 +OGTSL +OLDAP-1.1 +OLDAP-1.2 +OLDAP-1.3 +OLDAP-1.4 +OLDAP-2.0.1 +OLDAP-2.0 +OLDAP-2.1 +OLDAP-2.2.1 +OLDAP-2.2.2 +OLDAP-2.2 +OLDAP-2.3 +OLDAP-2.4 +OLDAP-2.5 +OLDAP-2.6 +OLDAP-2.7 +OLDAP-2.8 +OLFL-1.3 +OML +OPL-1.0 +OPL-UK-3.0 +OPUBL-1.0 +OSET-PL-2.1 +OSL-1.0 +OSL-1.1 +OSL-2.0 +OSL-2.1 +OSL-3.0 +OpenJDK-assembly-exception-1.0 +OpenPBS-2.3 +OpenSSL +PDDL-1.0 +PHP-3.0 +PHP-3.01 +PS-or-PDF-font-exception-20170817 +PSF-2.0 +Parity-6.0.0 +Parity-7.0.0 +Plexus +PolyForm-Noncommercial-1.0.0 +PolyForm-Small-Business-1.0.0 +PostgreSQL +Python-2.0.1 +Python-2.0 +QPL-1.0-INRIA-2004-exception +QPL-1.0-INRIA-2004 +QPL-1.0 +Qhull +Qt-GPL-exception-1.0 +Qt-LGPL-exception-1.1 +Qwt-exception-1.0 +RHeCos-1.1 +RPL-1.1 +RPL-1.5 +RPSL-1.0 +RSA-MD +RSCPL +Rdisc +Ruby +SAX-PD +SCEA +SGI-B-1.0 +SGI-B-1.1 +SGI-B-2.0 +SGP4 +SHL-0.5 +SHL-0.51 +SHL-2.0 +SHL-2.1 +SISSL-1.2 +SISSL +SMLNJ +SMPPL +SNIA +SPL-1.0 +SSH-OpenSSH +SSH-short +SSPL-1.0 +SWI-exception +SWL +Saxpath +SchemeReport +Sendmail-8.23 +Sendmail +SimPL-2.0 +Sleepycat +Spencer-86 +Spencer-94 +Spencer-99 +SugarCRM-1.1.3 +SunPro +Swift-exception +Symlinks +TAPR-OHL-1.0 +TCL +TCP-wrappers +TMate +TORQUE-1.1 +TOSL +TPDL +TPL-1.0 +TTWL +TU-Berlin-1.0 +TU-Berlin-2.0 +TermReadKey +UCAR +UCL-1.0 +UPL-1.0 +Unicode-DFS-2015 +Unicode-DFS-2016 +Unicode-TOU +Universal-FOSS-exception-1.0 +UnixCrypt +Unlicense +VOSTROM +VSL-1.0 +Vim +W3C-19980720 +W3C-20150513 +W3C +WTFPL +Watcom-1.0 +Widget-Workshop +Wsuipa +WxWindows-exception-3.1 +X11-distribute-modifications-variant +X11 +XFree86-1.1 +XSkat +Xdebug-1.03 +Xerox +Xfig +Xnet +YPL-1.0 +YPL-1.1 +ZPL-1.1 +ZPL-2.0 +ZPL-2.1 +Zed +Zend-2.0 +Zimbra-1.3 +Zimbra-1.4 +Zlib +blessing +bzip2-1.0.6 +checkmk +copyleft-next-0.3.0 +copyleft-next-0.3.1 +cryptsetup-OpenSSL-exception +curl +deprecated_AGPL-1.0 +deprecated_AGPL-3.0 +deprecated_BSD-2-Clause-FreeBSD +deprecated_BSD-2-Clause-NetBSD +deprecated_GFDL-1.1 +deprecated_GFDL-1.2 +deprecated_GFDL-1.3 +deprecated_GPL-1.0+ +deprecated_GPL-1.0 +deprecated_GPL-2.0+ +deprecated_GPL-2.0-with-GCC-exception +deprecated_GPL-2.0-with-autoconf-exception +deprecated_GPL-2.0-with-bison-exception +deprecated_GPL-2.0-with-classpath-exception +deprecated_GPL-2.0-with-font-exception +deprecated_GPL-2.0 +deprecated_GPL-3.0+ +deprecated_GPL-3.0-with-GCC-exception +deprecated_GPL-3.0-with-autoconf-exception +deprecated_GPL-3.0 +deprecated_LGPL-2.0+ +deprecated_LGPL-2.0 +deprecated_LGPL-2.1+ +deprecated_LGPL-2.1 +deprecated_LGPL-3.0+ +deprecated_LGPL-3.0 +deprecated_Nunit +deprecated_StandardML-NJ +deprecated_bzip2-1.0.5 +deprecated_eCos-2.0 +deprecated_wxWindows +diffmark +dtoa +dvipdfm +eCos-exception-2.0 +eGenix +etalab-2.0 +freertos-exception-2.0 +gSOAP-1.3b +gnu-javamail-exception +gnuplot +i2p-gpl-java-exception +iMatix +libpng-2.0 +libpri-OpenH323-exception +libselinux-1.0 +libtiff +libutil-David-Nugent +metamail +mif-exception +mpi-permissive +mpich2 +mplus +openvpn-openssl-exception +psfrag +psutils +snprintf +u-boot-exception-2.0 +vsftpd-openssl-exception +w3m +x11vnc-openssl-exception +xinetd +xlock +xpp +zlib-acknowledgement diff --git a/common/travis/prepare.sh b/common/travis/prepare.sh new file mode 100755 index 0000000..550fbd7 --- /dev/null +++ b/common/travis/prepare.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# +# prepare.sh + +[ "$XLINT" ] && exit 0 + +/bin/echo -e '\x1b[32mUpdating etc/conf...\x1b[0m' +echo XBPS_BUILD_ENVIRONMENT=void-packages-ci >> etc/conf +echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf + +/bin/echo -e '\x1b[32mEnabling ethereal chroot-style...\x1b[0m' +echo XBPS_CHROOT_CMD=ethereal >> etc/conf +echo XBPS_ALLOW_CHROOT_BREAKOUT=yes >> etc/conf + +/bin/echo -e '\x1b[32mLinking / to /masterdir...\x1b[0m' +ln -s / masterdir diff --git a/common/travis/set_mirror.sh b/common/travis/set_mirror.sh new file mode 100755 index 0000000..8159dac --- /dev/null +++ b/common/travis/set_mirror.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +TRAVIS_MIRROR=repo-ci.voidlinux.org + +for _i in etc/xbps.d/repos-remote*.conf ; do + /bin/echo -e "\x1b[32mUpdating $_i...\x1b[0m" + sed -i "s:repo-default\.voidlinux\.org:$TRAVIS_MIRROR:g" $_i +done diff --git a/common/travis/show_files.sh b/common/travis/show_files.sh new file mode 100755 index 0000000..c8de93a --- /dev/null +++ b/common/travis/show_files.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# +# show_files.sh + +export XBPS_TARGET_ARCH="$2" XBPS_DISTDIR=/hostrepo + +while read -r pkg; do + for subpkg in $(xsubpkg $pkg); do + /bin/echo -e "\x1b[32mFiles of $subpkg:\x1b[0m" + xbps-query --repository=$HOME/hostdir/binpkgs/bootstrap \ + --repository=$HOME/hostdir/binpkgs \ + --repository=$HOME/hostdir/binpkgs/nonfree \ + -i -f "$subpkg" || + /bin/echo -e "\x1b[33m $subpkg wasn't found\x1b[0m" + done +done < /tmp/templates diff --git a/common/travis/xlint.sh b/common/travis/xlint.sh new file mode 100755 index 0000000..790791e --- /dev/null +++ b/common/travis/xlint.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# +# xlint.sh + +[ "$XLINT" ] || exit 0 + +EXITCODE=0 +read base tip < /tmp/revisions + +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" > /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..ce042c1 --- /dev/null +++ b/common/travis/xpkgdiff.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# xpkgdiff.sh + +export XBPS_TARGET_ARCH="$2" 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/bootstrap \ + --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/wrappers/cross-cc b/common/wrappers/cross-cc new file mode 100644 index 0000000..0e08bc9 --- /dev/null +++ b/common/wrappers/cross-cc @@ -0,0 +1,40 @@ +#!/bin/bash + +# compiler wrapper to get rid of -I/usr/include and -L/usr/lib, that fucks up +# cross compilation badly. +declare -a MYARGS + +ARGS=("$@") +i=0 +while [ $i -lt ${#ARGS[@]} ]; do + arg="${ARGS[$i]}" + if [ "$incpath" ]; then + if [ "$arg" = "/usr/include" ]; then + echo "[cc-wrapper] ignoring -I $arg" + else + MYARGS+=("-I${arg}") + fi + unset incpath + elif [ "$libpath" ]; then + # XXX: avoid so much repetition + if [ "$arg" = "/usr/lib" -o "$arg" = "/usr/lib32" -o "$arg" = "/usr/lib64" -o "$arg" = "/lib" ]; then + echo "[cc-wrapper] ignoring -L $arg" + else + MYARGS+=("-L${arg}") + fi + unset libpath + elif [ "$arg" = "-I" ]; then + incpath=1 + elif [ "$arg" = "-L" ]; then + libpath=1 + elif [ "$arg" = "-I/usr/include" -o "$arg" = "-L/usr/lib" \ + -o "$arg" = "-L/usr/lib32" -o "$arg" = "-L/usr/lib64" \ + -o "$arg" = "-L/lib" ]; then + echo "[cc-wrapper] ignoring $arg" + else + MYARGS+=("${arg}") + fi + i=$((i+1)) +done +#echo "[cc-wrapper] @BIN@ ${MYARGS[@]}" +exec @BIN@ "${MYARGS[@]}" diff --git a/common/wrappers/date.sh b/common/wrappers/date.sh new file mode 100644 index 0000000..89ea97f --- /dev/null +++ b/common/wrappers/date.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +if [ "$SOURCE_DATE_EPOCH" ]; then + post="--utc --date @$SOURCE_DATE_EPOCH" +fi +exec /usr/bin/date "$@" $post diff --git a/common/wrappers/install.sh b/common/wrappers/install.sh new file mode 100644 index 0000000..82b61c2 --- /dev/null +++ b/common/wrappers/install.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# install-wrapper - run install(1), but never strip or chown +set -e + +# taken from install (GNU coreutils) 8.23 +opts='bcCdDg:m:o:psS:t:TvZ' +longopts='backup::,compare,directory,group:,mode:,owner:,preserve-timestamps,\ +strip:,strip-program:,suffix:,target-directory:,no-target-directory,verbose,\ +preserve-context,context::,help,version' + +parsed="$(getopt -o "$opts" --long "$longopts" -n 'install-wrapper' -- "$@")" +eval set -- "$parsed" + +iopts=() +while :; do + case "$1" in + -s|--strip) + echo "install-wrapper: overriding call to strip(1)." 1>&2 + iopts+=("$1" --strip-program=true) + shift;; + --strip-program) + echo "install-wrapper: dropping strip program '$2'." 1>&2 + shift 2;; + -g|--group|-o|--owner) + echo "install-wrapper: dropping option $1 $2." 1>&2 + shift 2;; + -b|-c|-C|--compare|-d|--directory|-D|-p|--preserve-timestamps|\ + -T|--no-target-directory|-v|--verbose|--preserve-context|-Z|\ + --help|--version) + iopts+=("$1") + shift;; + -m|--mode|-S|--suffix|-t|--target-directory|--backup|--context) + iopts+=("$1" "$2") + shift 2;; + --) + shift + break;; + *) + echo 'cant happen, report a bug' 1>&2 + exit 111;; + esac +done + +exec /usr/bin/install "${iopts[@]}" -- "$@" diff --git a/common/wrappers/ldconfig.sh b/common/wrappers/ldconfig.sh new file mode 100644 index 0000000..32818e2 --- /dev/null +++ b/common/wrappers/ldconfig.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +if [ "$1" = "-p" ]; then + exec /usr/bin/ldconfig "$@" +fi + +echo "ldconfig-wrapper: ignoring arguments: $@" +exit 0 diff --git a/common/wrappers/strip.sh b/common/wrappers/strip.sh new file mode 100644 index 0000000..febf451 --- /dev/null +++ b/common/wrappers/strip.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +echo "strip-wrapper: ignoring arguments: $@" +exit 0 diff --git a/common/wrappers/uname.sh b/common/wrappers/uname.sh new file mode 100644 index 0000000..4edca25 --- /dev/null +++ b/common/wrappers/uname.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +uname=$(/usr/bin/uname $@) +rv=$? +uname_m=$(/usr/bin/uname -m) +arch=${XBPS_ARCH%-musl} +# if XBPS_ARCH was reseted by `env -i` use original `/usr/bin/uname -m` +: ${arch:=$uname_m} +echo "$uname" | + sed "s/\(^\| \)$(/usr/bin/uname -n)\($\| \)/\1void\2/" | + sed "s/$uname_m/$arch/" + +exit $rv diff --git a/common/xbps-src/libexec/build.sh b/common/xbps-src/libexec/build.sh new file mode 100755 index 0000000..7243231 --- /dev/null +++ b/common/xbps-src/libexec/build.sh @@ -0,0 +1,140 @@ +#!/bin/bash +# +# vim: set ts=4 sw=4 et: +# +# Passed arguments: +# $1 - current pkgname to build [REQUIRED] +# $2 - target pkgname (origin) to build [REQUIRED] +# $3 - xbps target [REQUIRED] +# $4 - cross target [OPTIONAL] +# $5 - internal [OPTIONAL] + +if [ $# -lt 3 -o $# -gt 5 ]; then + echo "${0##*/}: invalid number of arguments: pkgname targetpkg target [cross-target]" + exit 1 +fi + +readonly PKGNAME="$1" +readonly XBPS_TARGET_PKG="$2" +readonly XBPS_TARGET="$3" +readonly XBPS_CROSS_BUILD="$4" +readonly XBPS_CROSS_PREPARE="$5" + +export XBPS_TARGET + +for f in $XBPS_SHUTILSDIR/*.sh; do + . $f +done + +last="${XBPS_DEPENDS_CHAIN##*,}" +case "$XBPS_DEPENDS_CHAIN" in + *,$last,*) + msg_error "Build-time cyclic dependency$last,${XBPS_DEPENDS_CHAIN##*,$last,} detected.\n" +esac + +setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD +readonly SOURCEPKG="$sourcepkg" + +check_existing_pkg + +show_pkg_build_options +check_pkg_arch $XBPS_CROSS_BUILD + +if [ -z "$XBPS_CROSS_PREPARE" ]; then + prepare_cross_sysroot $XBPS_CROSS_BUILD || exit $? +fi +# Install dependencies from binary packages +if [ "$PKGNAME" != "$XBPS_TARGET_PKG" -o -z "$XBPS_SKIP_DEPS" ]; then + install_pkg_deps $PKGNAME $XBPS_TARGET_PKG pkg $XBPS_CROSS_BUILD $XBPS_CROSS_PREPARE || exit $? +fi + +if [ "$XBPS_CROSS_BUILD" ]; then + install_cross_pkg $XBPS_CROSS_BUILD || exit $? +fi + +# Fetch distfiles after installing required dependencies, +# because some of them might be required for do_fetch(). +$XBPS_LIBEXECDIR/xbps-src-dofetch.sh $SOURCEPKG $XBPS_CROSS_BUILD || exit 1 +[ "$XBPS_TARGET" = "fetch" ] && exit 0 + +# Fetch, extract, build and install into the destination directory. +$XBPS_LIBEXECDIR/xbps-src-doextract.sh $SOURCEPKG $XBPS_CROSS_BUILD || exit 1 +[ "$XBPS_TARGET" = "extract" ] && exit 0 + +# Run patch phrase +$XBPS_LIBEXECDIR/xbps-src-dopatch.sh $SOURCEPKG $XBPS_CROSS_BUILD || exit 1 +[ "$XBPS_TARGET" = "patch" ] && exit 0 + +# Run configure phase +$XBPS_LIBEXECDIR/xbps-src-doconfigure.sh $SOURCEPKG $XBPS_CROSS_BUILD || exit 1 +[ "$XBPS_TARGET" = "configure" ] && exit 0 + +# Run build phase +$XBPS_LIBEXECDIR/xbps-src-dobuild.sh $SOURCEPKG $XBPS_CROSS_BUILD || exit 1 +[ "$XBPS_TARGET" = "build" ] && exit 0 + +# Run check phase +$XBPS_LIBEXECDIR/xbps-src-docheck.sh $SOURCEPKG $XBPS_CROSS_BUILD || exit 1 +[ "$XBPS_TARGET" = "check" ] && exit 0 + +# Install pkgs into destdir. +$XBPS_LIBEXECDIR/xbps-src-doinstall.sh $SOURCEPKG no $XBPS_CROSS_BUILD || exit 1 + +for subpkg in ${subpackages} ${sourcepkg}; do + $XBPS_LIBEXECDIR/xbps-src-doinstall.sh $subpkg yes $XBPS_CROSS_BUILD || exit 1 +done +for subpkg in ${subpackages} ${sourcepkg}; do + $XBPS_LIBEXECDIR/xbps-src-prepkg.sh $subpkg $XBPS_CROSS_BUILD || exit 1 +done + +for subpkg in ${subpackages} ${sourcepkg}; do + if [ "$PKGNAME" = "${subpkg}" -a "$XBPS_TARGET" = "install" ]; then + exit 0 + fi +done + +# Clean list of preregistered packages +printf "" > ${XBPS_STATEDIR}/.${sourcepkg}_register_pkg +# If install went ok generate the binpkgs. +for subpkg in ${subpackages} ${sourcepkg}; do + $XBPS_LIBEXECDIR/xbps-src-dopkg.sh $subpkg "$XBPS_REPOSITORY" "$XBPS_CROSS_BUILD" || exit 1 +done + +# Registering packages at once per repository. This makes sure that staging is +# triggered for all new packages if any of them introduces inconsistencies. +cut -d: -f 1,2 ${XBPS_STATEDIR}/.${sourcepkg}_register_pkg | sort -u | \ + while IFS=: read -r arch repo; do + paths=$(grep "^$arch:$repo:" "${XBPS_STATEDIR}/.${sourcepkg}_register_pkg" | \ + cut -d : -f 2,3 | tr ':' '/') + if [ -z "$XBPS_PRESERVE_PKGS" ] || [ "$XBPS_BUILD_FORCEMODE" ]; then + force=-f + fi + if [ -n "${arch}" ]; then + msg_normal "Registering new packages to $repo ($arch)\n" + XBPS_TARGET_ARCH=${arch} $XBPS_RINDEX_CMD \ + ${XBPS_REPO_COMPTYPE:+--compression $XBPS_REPO_COMPTYPE} ${force} -a ${paths} + else + msg_normal "Registering new packages to $repo\n" + if [ -n "$XBPS_CROSS_BUILD" ]; then + $XBPS_RINDEX_XCMD ${XBPS_REPO_COMPTYPE:+--compression $XBPS_REPO_COMPTYPE} \ + ${force} -a ${paths} + else + $XBPS_RINDEX_CMD ${XBPS_REPO_COMPTYPE:+--compression $XBPS_REPO_COMPTYPE} \ + ${force} -a ${paths} + fi + fi + done + +# pkg cleanup +if declare -f do_clean >/dev/null; then + run_func do_clean +fi + +if [ -n "$XBPS_DEPENDENCY" -o -z "$XBPS_KEEP_ALL" ]; then + remove_pkg_autodeps + remove_pkg_wrksrc + remove_pkg $XBPS_CROSS_BUILD + remove_pkg_statedir +fi + +exit 0 diff --git a/common/xbps-src/libexec/xbps-src-dobuild.sh b/common/xbps-src/libexec/xbps-src-dobuild.sh new file mode 100755 index 0000000..cee3f65 --- /dev/null +++ b/common/xbps-src/libexec/xbps-src-dobuild.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# +# vim: set ts=4 sw=4 et: +# +# Passed arguments: +# $1 - pkgname to build [REQUIRED] +# $2 - cross target [OPTIONAL] + +if [ $# -lt 1 -o $# -gt 2 ]; then + echo "${0##*/}: invalid number of arguments: pkgname [cross-target]" + exit 1 +fi + +PKGNAME="$1" +XBPS_CROSS_BUILD="$2" + +for f in $XBPS_SHUTILSDIR/*.sh; do + . $f +done + +setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD + +XBPS_BUILD_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_build_done" + +if [ -f $XBPS_BUILD_DONE -a -z "$XBPS_BUILD_FORCEMODE" ] || + [ -f $XBPS_BUILD_DONE -a -n "$XBPS_BUILD_FORCEMODE" -a $XBPS_TARGET != "build" ]; then + exit 0 +fi + +for f in $XBPS_COMMONDIR/environment/build/*.sh; do + source_file "$f" +done + +run_step build optional + +touch -f $XBPS_BUILD_DONE + +exit 0 diff --git a/common/xbps-src/libexec/xbps-src-docheck.sh b/common/xbps-src/libexec/xbps-src-docheck.sh new file mode 100755 index 0000000..cac0d48 --- /dev/null +++ b/common/xbps-src/libexec/xbps-src-docheck.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# +# vim: set ts=4 sw=4 et: +# +# Passed arguments: +# $1 - pkgname to build [REQUIRED] +# $2 - cross target [OPTIONAL] + +if [ $# -lt 1 -o $# -gt 2 ]; then + echo "${0##*/}: invalid number of arguments: pkgname [cross-target]" + exit 1 +fi + +PKGNAME="$1" +XBPS_CROSS_BUILD="$2" + +for f in $XBPS_SHUTILSDIR/*.sh; do + . $f +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 + msg_normal "${pkgname}-${version}_${revision}: skipping check (cross build for $XBPS_CROSS_BUILD) ...\n" + exit 0 +fi + +if [ -z "$XBPS_CHECK_PKGS" ]; then + msg_normal "${pkgname}-${version}_${revision}: skipping check (XBPS_CHECK_PKGS is disabled) ...\n" + exit 0 +fi + +if [ "$make_check" = no ]; then + msg_normal "${pkgname}-${version}_${revision}: skipping check (make_check=no) ...\n" + exit 0 +fi + +if [ "$make_check" = extended -a "$XBPS_CHECK_PKGS" != full ]; then + msg_normal \ + "${pkgname}-${version}_${revision}: skipping check (make_check=extended and XBPS_CHECK_PKGS is not 'full') ...\n" + exit 0 +fi + +if [ "$make_check" = ci-skip ] && [ "$XBPS_BUILD_ENVIRONMENT" = void-packages-ci ]; then + msg_warn \ + "${pkgname}-${version}_${revision}: skipping here because of make_check=ci-skip. Tests should be run locally.\n" + exit 0 +fi + +for f in $XBPS_COMMONDIR/environment/check/*.sh; do + source_file "$f" +done + +run_step check optional + +touch -f $XBPS_CHECK_DONE + +exit 0 diff --git a/common/xbps-src/libexec/xbps-src-doconfigure.sh b/common/xbps-src/libexec/xbps-src-doconfigure.sh new file mode 100755 index 0000000..2adeab5 --- /dev/null +++ b/common/xbps-src/libexec/xbps-src-doconfigure.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# +# vim: set ts=4 sw=4 et: +# +# Passed arguments: +# $1 - pkgname to configure [REQUIRED] +# $2 - cross target [OPTIONAL] + +if [ $# -lt 1 -o $# -gt 2 ]; then + echo "${0##*/}: invalid number of arguments: pkgname [cross-target]" + exit 1 +fi + +PKGNAME="$1" +XBPS_CROSS_BUILD="$2" + +for f in $XBPS_SHUTILSDIR/*.sh; do + . $f +done + +setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD + +XBPS_CONFIGURE_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_configure_done" + +if [ -f $XBPS_CONFIGURE_DONE -a -z "$XBPS_BUILD_FORCEMODE" ] || + [ -f $XBPS_CONFIGURE_DONE -a -n "$XBPS_BUILD_FORCEMODE" -a $XBPS_TARGET != "configure" ]; then + exit 0 +fi + +for f in $XBPS_COMMONDIR/environment/configure/*.sh; do + source_file "$f" +done + +run_step configure optional + +touch -f $XBPS_CONFIGURE_DONE + +exit 0 diff --git a/common/xbps-src/libexec/xbps-src-doextract.sh b/common/xbps-src/libexec/xbps-src-doextract.sh new file mode 100755 index 0000000..8b1633a --- /dev/null +++ b/common/xbps-src/libexec/xbps-src-doextract.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# +# vim: set ts=4 sw=4 et: +# +# Passed arguments: +# $1 - pkgname [REQUIRED] +# $2 - cross target [OPTIONAL] + +if [ $# -lt 1 -o $# -gt 2 ]; then + echo "${0##*/}: invalid number of arguments: pkgname [cross-target]" + exit 1 +fi + +PKGNAME="$1" +XBPS_CROSS_BUILD="$2" + +for f in $XBPS_SHUTILSDIR/*.sh; do + . $f +done + +setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD + +for f in $XBPS_COMMONDIR/environment/extract/*.sh; do + source_file "$f" +done + +XBPS_EXTRACT_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_extract_done" + +if [ -f $XBPS_EXTRACT_DONE ]; then + exit 0 +fi + +# Run pre-extract hooks +run_pkg_hooks pre-extract + +# If template defines pre_extract(), use it. +if declare -f pre_extract >/dev/null; then + run_func pre_extract +fi + +# If template defines do_extract() use it rather than the hooks. +if declare -f do_extract >/dev/null; then + [ ! -d "$wrksrc" ] && mkdir -p "$wrksrc" + cd "$wrksrc" + run_func do_extract +else + if [ -n "$build_style" ]; then + if [ ! -r $XBPS_BUILDSTYLEDIR/${build_style}.sh ]; then + msg_error "$pkgver: cannot find build helper $XBPS_BUILDSTYLEDIR/${build_style}.sh!\n" + fi + . $XBPS_BUILDSTYLEDIR/${build_style}.sh + fi + # If the build_style script declares do_extract(), use it rather than hooks. + if declare -f do_extract >/dev/null; then + run_func do_extract + else + # Run do-extract hooks + run_pkg_hooks "do-extract" + fi +fi + + +[ -d "$wrksrc" ] && cd "$wrksrc" + +# If template defines post_extract(), use it. +if declare -f post_extract >/dev/null; then + run_func post_extract +fi + +# Run post-extract hooks +run_pkg_hooks post-extract + +touch -f $XBPS_EXTRACT_DONE + +exit 0 diff --git a/common/xbps-src/libexec/xbps-src-dofetch.sh b/common/xbps-src/libexec/xbps-src-dofetch.sh new file mode 100755 index 0000000..07aef66 --- /dev/null +++ b/common/xbps-src/libexec/xbps-src-dofetch.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# +# vim: set ts=4 sw=4 et: +# +# Passed arguments: +# $1 - pkgname [REQUIRED] +# $2 - cross target [OPTIONAL] + +if [ $# -lt 1 -o $# -gt 2 ]; then + echo "${0##*/}: invalid number of arguments: pkgname [cross-target]" + exit 1 +fi + +PKGNAME="$1" +XBPS_CROSS_BUILD="$2" + +for f in $XBPS_SHUTILSDIR/*.sh; do + . $f +done + +setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD + +for f in $XBPS_COMMONDIR/environment/fetch/*.sh; do + source_file "$f" +done + +XBPS_FETCH_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_fetch_done" + +if [ -f "$XBPS_FETCH_DONE" ]; then + exit 0 +fi + +# Run pre-fetch hooks. +run_pkg_hooks pre-fetch + +# If template defines pre_fetch(), use it. +if declare -f pre_fetch >/dev/null; then + run_func pre_fetch +fi + +# If template defines do_fetch(), use it rather than the hooks. +if declare -f do_fetch >/dev/null; then + cd ${XBPS_BUILDDIR} + [ -n "$build_wrksrc" ] && mkdir -p "$wrksrc" + run_func do_fetch +else + # Run do-fetch hooks. + run_pkg_hooks "do-fetch" +fi + +cd ${XBPS_BUILDDIR} || msg_error "$pkgver: cannot access wrksrc directory [$wrksrc]\n" +# if templates defines post_fetch(), use it. +if declare -f post_fetch >/dev/null; then + run_func post_fetch +fi + +# Run post-fetch hooks. +run_pkg_hooks post-fetch + +touch -f $XBPS_FETCH_DONE + +exit 0 diff --git a/common/xbps-src/libexec/xbps-src-doinstall.sh b/common/xbps-src/libexec/xbps-src-doinstall.sh new file mode 100755 index 0000000..fb5d35d --- /dev/null +++ b/common/xbps-src/libexec/xbps-src-doinstall.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# +# vim: set ts=4 sw=4 et: +# +# Passed arguments: +# $1 - pkgname [REQUIRED] +# $2 - subpkg mode [REQUIRED] +# $2 - cross target [OPTIONAL] + +if [ $# -lt 2 -o $# -gt 3 ]; then + echo "${0##*/}: invalid number of arguments: pkgname subpkg-mode [cross-target]" + exit 1 +fi + +PKGNAME="$1" +SUBPKG_MODE="$2" +XBPS_CROSS_BUILD="$3" + +for f in $XBPS_SHUTILSDIR/*.sh; do + . $f +done + +setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD + +for f in $XBPS_COMMONDIR/environment/install/*.sh; do + source_file "$f" +done + +XBPS_INSTALL_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_install_done" + +ch_wrksrc + +if [ "$SUBPKG_MODE" = "no" ]; then + if [ ! -f $XBPS_INSTALL_DONE ] || [ -f $XBPS_INSTALL_DONE -a -n "$XBPS_BUILD_FORCEMODE" ]; then + mkdir -p $XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/$pkgname-$version + + run_step install "" skip + + touch -f $XBPS_INSTALL_DONE + fi + exit 0 +fi + +XBPS_SUBPKG_INSTALL_DONE="${XBPS_STATEDIR}/${PKGNAME}_${XBPS_CROSS_BUILD}_subpkg_install_done" + +# If it's a subpkg execute the pkg_install() function. +if [ ! -f $XBPS_SUBPKG_INSTALL_DONE ]; then + if [ "$sourcepkg" != "$PKGNAME" ]; then + # Source all subpkg environment setup snippets. + for f in ${XBPS_COMMONDIR}/environment/setup-subpkg/*.sh; do + source_file "$f" + done + + ${PKGNAME}_package + pkgname=$PKGNAME + + source_file $XBPS_COMMONDIR/environment/build-style/${build_style}.sh + + install -d $PKGDESTDIR + if declare -f pkg_install >/dev/null; then + run_pkg_hooks pre-install + run_func pkg_install + fi + fi + setup_pkg_depends ${pkgname:=$PKGNAME} || exit 1 + run_pkg_hooks post-install + touch -f $XBPS_SUBPKG_INSTALL_DONE +fi + +exit 0 diff --git a/common/xbps-src/libexec/xbps-src-dopatch.sh b/common/xbps-src/libexec/xbps-src-dopatch.sh new file mode 100755 index 0000000..c1b3b04 --- /dev/null +++ b/common/xbps-src/libexec/xbps-src-dopatch.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# +# vim: set ts=4 sw=4 et: +# +# Passed arguments: +# $1 - pkgname [REQUIRED] +# $2 - cross target [OPTIONAL] + +if [ $# -lt 1 -o $# -gt 2 ]; then + echo "${0##*/}: invalid number of arguments: pkgname [cross-target]" + exit 1 +fi + +PKGNAME="$1" +XBPS_CROSS_BUILD="$2" + +for f in $XBPS_SHUTILSDIR/*.sh; do + . $f +done + +setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD + +XBPS_PATCH_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_patch_done" + +if [ -f $XBPS_PATCH_DONE ]; then + exit 0 +fi + +for f in $XBPS_COMMONDIR/environment/patch/*.sh; do + source_file "$f" +done + +run_step patch optional + +touch -f $XBPS_PATCH_DONE + +exit 0 diff --git a/common/xbps-src/libexec/xbps-src-dopkg.sh b/common/xbps-src/libexec/xbps-src-dopkg.sh new file mode 100755 index 0000000..5fec7b9 --- /dev/null +++ b/common/xbps-src/libexec/xbps-src-dopkg.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# +# vim: set ts=4 sw=4 et: +# +# Passed arguments: +# $1 - pkgname [REQUIRED] +# $2 - path to local repository [REQUIRED] +# $3 - cross-target [OPTIONAL] + +if [ $# -lt 2 -o $# -gt 3 ]; then + echo "${0##*/}: invalid number of arguments: pkgname repository [cross-target]" + exit 1 +fi + +PKGNAME="$1" +XBPS_REPOSITORY="$2" +XBPS_CROSS_BUILD="$3" + +for f in $XBPS_SHUTILSDIR/*.sh; do + . $f +done + +setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD + +for f in $XBPS_COMMONDIR/environment/pkg/*.sh; do + source_file "$f" +done + +if [ "$sourcepkg" != "$PKGNAME" ]; then + # Source all subpkg environment setup snippets. + for f in ${XBPS_COMMONDIR}/environment/setup-subpkg/*.sh; do + source_file "$f" + done + + ${PKGNAME}_package + pkgname=$PKGNAME +fi + +if [ -s $XBPS_MASTERDIR/.xbps_chroot_init ]; then + export XBPS_ARCH=$(<$XBPS_MASTERDIR/.xbps_chroot_init) +fi + +# Run do-pkg hooks. +run_pkg_hooks "do-pkg" + +# Run post-pkg hooks. +run_pkg_hooks post-pkg + +exit 0 diff --git a/common/xbps-src/libexec/xbps-src-prepkg.sh b/common/xbps-src/libexec/xbps-src-prepkg.sh new file mode 100755 index 0000000..34f91b3 --- /dev/null +++ b/common/xbps-src/libexec/xbps-src-prepkg.sh @@ -0,0 +1,51 @@ +#!/bin/bash +# +# vim: set ts=4 sw=4 et: +# +# Passed arguments: +# $1 - pkgname [REQUIRED] +# $2 - cross target [OPTIONAL] + +if [ $# -lt 1 -o $# -gt 2 ]; then + echo "${0##*/}: invalid number of arguments: pkgname [cross-target]" + exit 1 +fi + +PKGNAME="$1" +XBPS_CROSS_BUILD="$2" + +for f in $XBPS_SHUTILSDIR/*.sh; do + . $f +done + +setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD + +for f in $XBPS_COMMONDIR/environment/install/*.sh; do + source_file "$f" +done + + +XBPS_PREPKG_DONE="${XBPS_STATEDIR}/${PKGNAME}_${XBPS_CROSS_BUILD}_prepkg_done" + +if [ -z "$XBPS_BUILD_FORCEMODE" -a -f $XBPS_PREPKG_DONE ]; then + exit 0 +fi + +# If it's a subpkg execute the pkg_install() function. +if [ "$sourcepkg" != "$PKGNAME" ]; then + # Source all subpkg environment setup snippets. + for f in ${XBPS_COMMONDIR}/environment/setup-subpkg/*.sh; do + source_file "$f" + done + + ${PKGNAME}_package + pkgname=$PKGNAME +fi + +source_file $XBPS_COMMONDIR/environment/build-style/${build_style}.sh +setup_pkg_depends $pkgname || exit 1 +run_pkg_hooks pre-pkg + +touch -f $XBPS_PREPKG_DONE + +exit 0 diff --git a/common/xbps-src/shutils/build_dependencies.sh b/common/xbps-src/shutils/build_dependencies.sh new file mode 100644 index 0000000..20f6152 --- /dev/null +++ b/common/xbps-src/shutils/build_dependencies.sh @@ -0,0 +1,433 @@ +# vim: set ts=4 sw=4 et: +# +setup_pkg_depends() { + local pkg="$1" out="$2" with_subpkgs="$3" j _rpkgname _depname _pkgname foo _deps collected + + if [[ $pkg ]]; then + # subpkg + if declare -f ${pkg}_package >/dev/null; then + ${pkg}_package + fi + elif [[ $with_subpkgs ]]; then + collected="${depends}" + for pkg in $subpackages; do + [[ $pkg ]] || continue + ${pkg}_package + collected+=" ${depends}" + done + depends="${collected}" + fi + + for j in ${depends}; do + _rpkgname="${j%\?*}" + _depname="${j#*\?}" + if [[ ${_rpkgname} == virtual ]]; then + _pkgname=$(xbps-uhelper getpkgname $_depname 2>/dev/null) + [ -z "$_pkgname" ] && _pkgname="$_depname" + if [ -s ${XBPS_DISTDIR}/etc/virtual ]; then + foo=$(grep -E "^${_pkgname}[[:blank:]]" ${XBPS_DISTDIR}/etc/virtual|cut -d ' ' -f2) + elif [ -s ${XBPS_DISTDIR}/etc/defaults.virtual ]; then + 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" + fi + [[ $out ]] && echo "$foo" + else + foo="$($XBPS_UHELPER_CMD getpkgdepname ${_depname} 2>/dev/null)" + if [ -z "$foo" ]; then + foo="$($XBPS_UHELPER_CMD getpkgname ${_depname} 2>/dev/null)" + [ -z "$foo" ] && foo="${_depname}" + fi + [[ $out ]] && echo "$foo" + fi + run_depends+="${_depname} " + done + + return 0 +} + +# +# Install required package dependencies, like: +# +# xbps-install -Ay +# +# -A automatic mode +# -y yes +# +# Returns 0 if package already installed or installed successfully. +# Any other error number otherwise. +# +# SUCCESS (0): package installed successfully. +# ENOENT (2): package missing in repositories. +# ENXIO (6): package depends on invalid dependencies. +# EAGAIN (11): package conflicts. +# EBUSY (16): package 'xbps' needs to be updated. +# EEXIST (17): file conflicts in transaction (XBPS_FLAG_IGNORE_FILE_CONFLICTS unset) +# ENODEV (19): package depends on missing dependencies. +# ENOTSUP (95): no repositories registered. +# -1 (255): unexpected error. + +install_pkg_from_repos() { + local cross="$1" target="$2" rval tmplogf cmd + shift 2 + + [ $# -eq 0 ] && return 0 + + mkdir -p $XBPS_STATEDIR + tmplogf=${XBPS_STATEDIR}/xbps_${XBPS_TARGET_MACHINE}_bdep_${pkg}.log + + cmd=$XBPS_INSTALL_CMD + [[ $cross ]] && cmd=$XBPS_INSTALL_XCMD + $cmd -Ay "$@" >$tmplogf 2>&1 + rval=$? + + case "$rval" in + 0) # success, check if there are errors. + errortmpf=$(mktemp) || exit 1 + grep ^ERROR $tmplogf > $errortmpf + [ -s $errortmpf ] && cat $errortmpf + rm -f $errortmpf + ;; + *) + [ -z "$XBPS_KEEP_ALL" ] && remove_pkg_autodeps + msg_red "$pkgver: failed to install $target dependencies! (error $rval)\n" + cat $tmplogf + rm -f $tmplogf + msg_error "Please see above for the real error, exiting...\n" + ;; + esac + rm -f $tmplogf + return $rval +} + +# +# Returns 0 if pkgpattern in $1 is installed and greater than current +# installed package, otherwise 1. +# +check_installed_pkg() { + local pkg="$1" cross="$2" uhelper= pkgn= iver= + + [ -z "$pkg" ] && return 2 + + pkgn="$($XBPS_UHELPER_CMD getpkgname ${pkg})" + [ -z "$pkgn" ] && return 2 + + uhelper=$XBPS_UHELPER_CMD + [[ $cross ]] && uhelper=$XBPS_UHELPER_XCMD + iver="$($uhelper version $pkgn)" + if [ $? -eq 0 -a -n "$iver" ]; then + $XBPS_CMPVER_CMD "${pkgn}-${iver}" "${pkg}" + [ $? -eq 0 -o $? -eq 1 ] && return 0 + fi + + return 1 +} + +# +# Build all dependencies required to build and run. +# +install_pkg_deps() { + local pkg="$1" targetpkg="$2" target="$3" cross="$4" cross_prepare="$5" + local _vpkg curpkgdepname + local i j found style + local templates="" + + local -a host_binpkg_deps binpkg_deps + local -a host_missing_deps missing_deps missing_rdeps + + [ -z "$pkgname" ] && return 2 + [ -z "$XBPS_CHECK_PKGS" ] && unset checkdepends + + if [[ $build_style ]] || [[ $build_helper ]]; then + style=" with" + fi + + [[ $build_style ]] && style+=" [$build_style]" + + for s in $build_helper; do + style+=" [$s]" + done + + if [ "$pkg" != "$targetpkg" ]; then + msg_normal "$pkgver: building${style} (dependency of $targetpkg) for $XBPS_TARGET_MACHINE...\n" + else + msg_normal "$pkgver: building${style} for $XBPS_TARGET_MACHINE...\n" + fi + + # + # Host build dependencies. + # + if [[ ${hostmakedepends} ]]; then + templates="" + # check validity + for f in ${hostmakedepends}; do + if [ -f $XBPS_SRCPKGDIR/$f/template ]; then + templates+=" $f" + continue + fi + local _repourl=$($XBPS_QUERY_CMD -R -prepository "$f" 2>/dev/null) + if [ "$_repourl" ]; then + echo " [host] ${f}: found (${_repourl})" + host_binpkg_deps+=("$f") + continue + fi + msg_error "$pkgver: host dependency '$f' does not exist!\n" + done + while read -r _depname _deprepover _depver _subpkg _repourl; do + _vpkg=${_subpkg}-${_depver} + # binary package found in a repo + if [[ ${_depver} == ${_deprepover} ]]; then + echo " [host] ${_vpkg}: found (${_repourl})" + host_binpkg_deps+=("${_vpkg}") + continue + fi + # binary package not found + if [[ $_depname != $_subpkg ]]; then + # subpkg, check if it's a subpkg of itself + found=0 + for f in ${subpackages}; do + if [[ ${_subpkg} == ${f} ]]; then + found=1 + break + fi + done + if [[ $found -eq 1 ]] && [[ -z "$cross" ]]; then + echo " [host] ${_vpkg}: not found (subpkg, ignored)" + else + echo " [host] ${_vpkg}: not found" + host_missing_deps+=("$_vpkg") + fi + else + echo " [host] ${_vpkg}: not found" + host_missing_deps+=("$_vpkg") + fi + done < <($XBPS_CHECKVERS_CMD -D $XBPS_DISTDIR -sm $templates) + fi + + # + # Host check dependencies. + # + if [[ ${checkdepends} ]] && [[ $XBPS_CHECK_PKGS ]] && [ -z "$XBPS_CROSS_BUILD" ]; then + templates="" + # check validity + for f in ${checkdepends}; do + if [ -f $XBPS_SRCPKGDIR/$f/template ]; then + templates+=" $f" + continue + fi + local _repourl=$($XBPS_QUERY_CMD -R -prepository "$f" 2>/dev/null) + if [ "$_repourl" ]; then + echo " [host] ${f}: found (${_repourl})" + host_binpkg_deps+=("$f") + continue + fi + msg_error "$pkgver: check dependency '$f' does not exist!\n" + done + while read -r _depname _deprepover _depver _subpkg _repourl; do + _vpkg=${_subpkg}-${_depver} + # binary package found in a repo + if [[ ${_depver} == ${_deprepover} ]]; then + echo " [check] ${_vpkg}: found (${_repourl})" + host_binpkg_deps+=("${_vpkg}") + continue + fi + # binary package not found + if [[ $_depname != $_subpkg ]]; then + # subpkg, check if it's a subpkg of itself + found=0 + for f in ${subpackages}; do + if [[ ${_subpkg} == ${f} ]]; then + found=1 + break + fi + done + if [[ $found -eq 1 ]]; then + echo " [check] ${_vpkg}: not found (subpkg, ignored)" + else + echo " [check] ${_vpkg}: not found" + host_missing_deps+=("$_vpkg") + fi + else + echo " [check] ${_vpkg}: not found" + host_missing_deps+=("$_vpkg") + fi + done < <($XBPS_CHECKVERS_CMD -D $XBPS_DISTDIR -sm ${templates}) + fi + + # + # Target build dependencies. + # + if [[ ${makedepends} ]]; then + templates="" + # check validity + for f in ${makedepends}; do + if [ -f $XBPS_SRCPKGDIR/$f/template ]; then + templates+=" $f" + continue + fi + local _repourl=$($XBPS_QUERY_XCMD -R -prepository "$f" 2>/dev/null) + if [ "$_repourl" ]; then + echo " [target] ${f}: found (${_repourl})" + binpkg_deps+=("$f") + continue + fi + msg_error "$pkgver: target dependency '$f' does not exist!\n" + done + while read -r _depname _deprepover _depver _subpkg _repourl; do + _vpkg=${_subpkg}-${_depver} + # binary package found in a repo + if [[ ${_depver} == ${_deprepover} ]]; then + echo " [target] ${_vpkg}: found (${_repourl})" + binpkg_deps+=("${_vpkg}") + continue + fi + # binary package not found + if [[ $_depname != $_subpkg ]]; then + # subpkg, check if it's a subpkg of itself + found=0 + for f in ${subpackages}; do + if [[ ${_subpkg} == ${f} ]]; then + found=1 + break + fi + done + if [[ $found -eq 1 ]]; then + msg_error "[target] ${_vpkg}: target dependency '${_subpkg}' is a subpackage of $pkgname\n" + else + echo " [target] ${_vpkg}: not found" + missing_deps+=("$_vpkg") + fi + else + echo " [target] ${_vpkg}: not found" + missing_deps+=("$_vpkg") + fi + done < <($XBPS_CHECKVERS_XCMD -D $XBPS_DISTDIR -sm $templates) + fi + + # + # Target run time dependencies + # + local _cleandeps=$(setup_pkg_depends "" 1 1) || exit 1 + if [[ ${_cleandeps} ]]; then + templates="" + for f in ${_cleandeps}; do + if [ -f $XBPS_SRCPKGDIR/$f/template ]; then + templates+=" $f" + continue + fi + local _repourl=$($XBPS_QUERY_XCMD -R -prepository "$f" 2>/dev/null) + if [ "$_repourl" ]; then + echo " [target] ${f}: found (${_repourl})" + continue + fi + msg_error "$pkgver: target dependency '$f' does not exist!\n" + done + while read -r _depname _deprepover _depver _subpkg _repourl; do + _vpkg=${_subpkg}-${_depver} + # binary package found in a repo + if [[ ${_depver} == ${_deprepover} ]]; then + echo " [runtime] ${_vpkg}: found (${_repourl})" + continue + fi + # binary package not found + if [[ $_depname != $_subpkg ]]; then + # subpkg, check if it's a subpkg of itself + found=0 + for f in ${subpackages}; do + if [[ ${_subpkg} == ${f} ]]; then + found=1 + break + fi + done + if [[ $found -eq 1 ]]; then + echo " [runtime] ${_vpkg}: not found (subpkg, ignored)" + else + echo " [runtime] ${_vpkg}: not found" + missing_rdeps+=("$_vpkg") + fi + elif [[ ${_depname} == ${pkgname} ]]; then + echo " [runtime] ${_vpkg}: not found (self, ignored)" + else + echo " [runtime] ${_vpkg}: not found" + missing_rdeps+=("$_vpkg") + fi + done < <($XBPS_CHECKVERS_XCMD -D $XBPS_DISTDIR -sm $templates) + fi + + if [ -n "$XBPS_BUILD_ONLY_ONE_PKG" ]; then + for i in ${host_missing_deps[@]}; do + msg_error "dep ${i} not found: -1 passed: instructed not to build\n" + done + for i in ${missing_rdeps[@]}; do + msg_error "dep ${i} not found: -1 passed: instructed not to build\n" + done + for i in ${missing_deps[@]}; do + msg_error "dep ${i} not found: -1 passed: instructed not to build\n" + done + fi + + # Missing host dependencies, build from srcpkgs. + for i in ${host_missing_deps[@]}; do + # packages not found in repos, install from source. + ( + curpkgdepname=$($XBPS_UHELPER_CMD getpkgname "$i" 2>/dev/null) + setup_pkg $curpkgdepname + exec env XBPS_DEPENDENCY=1 XBPS_BINPKG_EXISTS=1 XBPS_DEPENDS_CHAIN="$XBPS_DEPENDS_CHAIN, $sourcepkg(host)" \ + $XBPS_LIBEXECDIR/build.sh $sourcepkg $pkg $target $cross_prepare || exit $? + ) || exit $? + host_binpkg_deps+=("$i") + done + + # Missing target dependencies, build from srcpkgs. + for i in ${missing_deps[@]}; do + # packages not found in repos, install from source. + ( + + curpkgdepname=$($XBPS_UHELPER_CMD getpkgname "$i" 2>/dev/null) + setup_pkg $curpkgdepname $cross + exec env XBPS_DEPENDENCY=1 XBPS_BINPKG_EXISTS=1 XBPS_DEPENDS_CHAIN="$XBPS_DEPENDS_CHAIN, $sourcepkg(${cross:-host})" \ + $XBPS_LIBEXECDIR/build.sh $sourcepkg $pkg $target $cross $cross_prepare || exit $? + ) || exit $? + binpkg_deps+=("$i") + done + + # Target runtime missing dependencies, build from srcpkgs. + for i in ${missing_rdeps[@]}; do + # packages not found in repos, install from source. + ( + curpkgdepname=$($XBPS_UHELPER_CMD getpkgdepname "$i" 2>/dev/null) + if [ -z "$curpkgdepname" ]; then + curpkgdepname=$($XBPS_UHELPER_CMD getpkgname "$i" 2>/dev/null) + if [ -z "$curpkgdepname" ]; then + curpkgdepname="$i" + fi + fi + setup_pkg $curpkgdepname $cross + exec env XBPS_DEPENDENCY=1 XBPS_BINPKG_EXISTS=1 XBPS_DEPENDS_CHAIN="$XBPS_DEPENDS_CHAIN, $sourcepkg(${cross:-host})" \ + $XBPS_LIBEXECDIR/build.sh $sourcepkg $pkg $target $cross $cross_prepare || exit $? + ) || exit $? + done + + if [[ ${host_binpkg_deps} ]]; then + if [ -z "$XBPS_QUIET" ]; then + # normal messages in bold + [[ $NOCOLORS ]] || printf "\033[1m" + echo "=> $pkgver: installing host dependencies: ${host_binpkg_deps[@]} ..." + [[ $NOCOLORS ]] || printf "\033[m" + fi + install_pkg_from_repos "" host "${host_binpkg_deps[@]}" + fi + + if [[ ${binpkg_deps} ]]; then + if [ -z "$XBPS_QUIET" ]; then + # normal messages in bold + [[ $NOCOLORS ]] || printf "\033[1m" + echo "=> $pkgver: installing target dependencies: ${binpkg_deps[@]} ..." + [[ $NOCOLORS ]] || printf "\033[m" + fi + install_pkg_from_repos "$cross" target "${binpkg_deps[@]}" + fi + + return 0 +} diff --git a/common/xbps-src/shutils/bulk.sh b/common/xbps-src/shutils/bulk.sh new file mode 100644 index 0000000..69e36f4 --- /dev/null +++ b/common/xbps-src/shutils/bulk.sh @@ -0,0 +1,127 @@ +# vim: set ts=4 sw=4 et: + +bulk_getlink() { + local p="${1##*/}" + local target="$(readlink $XBPS_SRCPKGDIR/$p)" + + if [ $? -eq 0 -a -n "$target" ]; then + p=$target + fi + echo $p +} + +bulk_sortdeps() { + local _pkgs _pkg pkgs pkg found f x tmpf + + _pkgs="$@" + # Iterate over the list and make sure that only real pkgs are + # added to our pkglist. + for pkg in ${_pkgs}; do + found=0 + f=$(bulk_getlink $pkg) + for x in ${pkgs}; do + if [ "$x" = "${f}" ]; then + found=1 + break + fi + done + if [ $found -eq 0 ]; then + pkgs+="${f} " + fi + done + + tmpf=$(mktemp) || exit 1 + # Now make the real dependency graph of all pkgs to build. + # Perform a topological sort of all pkgs but only with build dependencies + # that are found in previous step. + for pkg in ${pkgs}; do + _pkgs="$($XBPS_DISTDIR/xbps-src show-build-deps $pkg 2>/dev/null)" + found=0 + for x in ${_pkgs}; do + _pkg=$(bulk_getlink $x) + for f in ${pkgs}; do + if [ "${f}" != "${_pkg}" ]; then + continue + fi + found=1 + echo "${pkg} ${f}" >> $tmpf + done + done + [ $found -eq 0 ] && echo "${pkg} ${pkg}" >> $tmpf + done + tsort $tmpf|tac + rm -f $tmpf +} + +bulk_build() { + local bulk_build_cmd="$1" + local NPROCS=$(($(nproc)*2)) + local NRUNNING=0 + + if [ "$XBPS_CROSS_BUILD" ]; then + source ${XBPS_COMMONDIR}/cross-profiles/${XBPS_CROSS_BUILD}.sh + export XBPS_ARCH=${XBPS_TARGET_MACHINE} + fi + if ! command -v xbps-checkvers &>/dev/null; then + msg_error "xbps-src: cannot find xbps-checkvers(1) command!\n" + fi + + # Compare installed pkg versions vs srcpkgs + case "$bulk_build_cmd" in + installed) + bulk_sortdeps $(xbps-checkvers -f '%n' -I -D "$XBPS_DISTDIR") + return $? + ;; + local) + bulk_sortdeps $(xbps-checkvers -f '%n' -i -R "${XBPS_REPOSITORY}/bootstrap" -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 + NRUNNING=0 + wait + fi + NRUNNING=$((NRUNNING+1)) + ( + setup_pkg $f $XBPS_TARGET_MACHINE &>/dev/null + if show_avail &>/dev/null; then + echo "$f" + fi + ) & + done + wait + return $? +} + +bulk_update() { + local bulk_update_cmd="$1" pkgs f rval + + pkgs="$(bulk_build "${bulk_update_cmd}")" + [[ -z $pkgs ]] && return 0 + + msg_normal "xbps-src: the following packages must be rebuilt and updated:\n" + for f in ${pkgs}; do + echo " $f" + done + for f in ${pkgs}; do + XBPS_TARGET_PKG=$f + read_pkg + msg_normal "xbps-src: building ${pkgver} ...\n" + if [ -n "$CHROOT_READY" -a -z "$IN_CHROOT" ]; then + chroot_handler pkg $XBPS_TARGET_PKG + else + $XBPS_LIBEXECDIR/build.sh $f $f pkg $XBPS_CROSS_BUILD + fi + if [ $? -eq 1 ]; then + msg_error "xbps-src: failed to build $pkgver pkg!\n" + fi + done + 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/bootstrap --repository=$XBPS_REPOSITORY --repository=$XBPS_REPOSITORY/nonfree -u ${pkgs//[$'\n']/ }" || return 1 + fi +} diff --git a/common/xbps-src/shutils/chroot.sh b/common/xbps-src/shutils/chroot.sh new file mode 100644 index 0000000..d65d8d7 --- /dev/null +++ b/common/xbps-src/shutils/chroot.sh @@ -0,0 +1,333 @@ +# vim: set ts=4 sw=4 et: + +install_base_chroot() { + [ "$CHROOT_READY" ] && return + if [ "$1" = "bootstrap" ]; then + unset XBPS_TARGET_PKG XBPS_INSTALL_ARGS + else + XBPS_TARGET_PKG="$1" + fi + # binary bootstrap + 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 + if [ $? -ne 0 ]; then + 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 &>/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 successfully!\n" + chroot_prepare $XBPS_TARGET_PKG || msg_error "xbps-src: failed to initialize chroot!\n" + chroot_check + chroot_handler clean +} + +reconfigure_base_chroot() { + local statefile="$XBPS_MASTERDIR/.xbps_chroot_configured" + local pkgs="glibc-locales ca-certificates" + [ -z "$IN_CHROOT" -o -e $statefile ] && return 0 + # Reconfigure ca-certificates. + 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 + fi + done + touch -f $statefile +} + +update_base_chroot() { + local keep_all_force=$1 + [ -z "$CHROOT_READY" ] && return + msg_normal "xbps-src: updating software in $XBPS_MASTERDIR masterdir...\n" + # no need to sync repodata, chroot_sync_repodata() does it for us. + 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!\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 +} + +# FIXME: $XBPS_FFLAGS is not set when chroot_init() is run +# It is set in common/build-profiles/bootstrap.sh but lost somewhere? +chroot_init() { + mkdir -p $XBPS_MASTERDIR/etc/xbps + + : ${XBPS_CONFIG_FILE:=/dev/null} + cat > $XBPS_MASTERDIR/etc/xbps/xbps-src.conf <<_EOF +# Generated configuration file by xbps-src, DO NOT EDIT! +$(grep -E '^XBPS_.*' "$XBPS_CONFIG_FILE") +XBPS_MASTERDIR=/ +XBPS_CFLAGS="$XBPS_CFLAGS" +XBPS_CXXFLAGS="$XBPS_CXXFLAGS" +XBPS_FFLAGS="$XBPS_FFLAGS" +XBPS_CPPFLAGS="$XBPS_CPPFLAGS" +XBPS_LDFLAGS="$XBPS_LDFLAGS" +XBPS_HOSTDIR=/host +# End of configuration file. +_EOF + + # Create custom script to start the chroot bash shell. + cat > $XBPS_MASTERDIR/bin/xbps-shell <<_EOF +#!/bin/sh + +XBPS_SRC_VERSION="$XBPS_SRC_VERSION" + +. /etc/xbps/xbps-src.conf + +PATH=/void-packages:/usr/bin + +exec env -i -- SHELL=/bin/sh PATH="\$PATH" DISTCC_HOSTS="\$XBPS_DISTCC_HOSTS" DISTCC_DIR="/host/distcc" \ + ${XBPS_ARCH+XBPS_ARCH=$XBPS_ARCH} ${XBPS_CHECK_PKGS+XBPS_CHECK_PKGS=$XBPS_CHECK_PKGS} \ + CCACHE_DIR="/host/ccache" IN_CHROOT=1 LC_COLLATE=C LANG=en_US.UTF-8 TERM=linux HOME="/tmp" \ + PS1="[\u@$XBPS_MASTERDIR \W]$ " /bin/bash +h "\$@" +_EOF + + chmod 755 $XBPS_MASTERDIR/bin/xbps-shell + cp -f /etc/resolv.conf $XBPS_MASTERDIR/etc + return 0 +} + +chroot_prepare() { + local f= + + if [ -f $XBPS_MASTERDIR/.xbps_chroot_init ]; then + return 0 + elif [ ! -f $XBPS_MASTERDIR/bin/bash ]; then + msg_error "Bootstrap not installed in $XBPS_MASTERDIR, can't continue.\n" + fi + + # Some software expects /etc/localtime to be a symbolic link it can read to + # determine the name of the time zone, so set up the expected link + # structure. + ln -sf ../usr/share/zoneinfo/UTC $XBPS_MASTERDIR/etc/localtime + + for f in dev sys tmp proc host boot; do + [ ! -d $XBPS_MASTERDIR/$f ] && mkdir -p $XBPS_MASTERDIR/$f + done + + # 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. + cp -f $XBPS_SRCPKGDIR/base-files/files/hosts $XBPS_MASTERDIR/etc + + # Prepare default locale: en_US.UTF-8. + if [ -s ${XBPS_MASTERDIR}/etc/default/libc-locales ]; then + printf '%s\n' \ + 'C.UTF-8 UTF-8' \ + 'en_US.UTF-8 UTF-8' \ + >> ${XBPS_MASTERDIR}/etc/default/libc-locales + fi + + touch -f $XBPS_MASTERDIR/.xbps_chroot_init + [ -n "$1" ] && echo $1 >> $XBPS_MASTERDIR/.xbps_chroot_init + + return 0 +} + +chroot_handler() { + local action="$1" pkg="$2" rv=0 arg= _envargs= + + [ -z "$action" -a -z "$pkg" ] && return 1 + + if [ -n "$IN_CHROOT" -o -z "$CHROOT_READY" ]; then + return 0 + fi + if [ ! -d $XBPS_MASTERDIR/void-packages ]; then + mkdir -p $XBPS_MASTERDIR/void-packages + fi + + case "$action" in + fetch|extract|patch|configure|build|check|install|pkg|bootstrap-update|chroot|clean) + chroot_prepare || return $? + chroot_init || return $? + ;; + esac + + if [ "$action" = "chroot" ]; then + $XBPS_COMMONDIR/chroot-style/${XBPS_CHROOT_CMD:=uunshare}.sh \ + $XBPS_MASTERDIR $XBPS_DISTDIR "$XBPS_HOSTDIR" "$XBPS_CHROOT_CMD_ARGS" /bin/xbps-shell + rv=$? + else + env -i -- PATH="/usr/bin:$PATH" SHELL=/bin/sh \ + HOME=/tmp IN_CHROOT=1 LC_COLLATE=C LANG=en_US.UTF-8 \ + ${http_proxy:+http_proxy="${http_proxy}"} \ + ${https_proxy:+https_proxy="${https_proxy}"} \ + ${ftp_proxy:+ftp_proxy="${ftp_proxy}"} \ + ${all_proxy:+all_proxy="${all_proxy}"} \ + ${no_proxy:+no_proxy="${no_proxy}"} \ + ${HTTP_PROXY:+HTTP_PROXY="${HTTP_PROXY}"} \ + ${HTTPS_PROXY:+HTTPS_PROXY="${HTTPS_PROXY}"} \ + ${FTP_PROXY:+FTP_PROXY="${FTP_PROXY}"} \ + ${SOCKS_PROXY:+SOCKS_PROXY="${SOCKS_PROXY}"} \ + ${NO_PROXY:+NO_PROXY="${NO_PROXY}"} \ + ${HTTP_PROXY_AUTH:+HTTP_PROXY_AUTH="${HTTP_PROXY_AUTH}"} \ + ${FTP_RETRIES:+FTP_RETRIES="${FTP_RETRIES}"} \ + SOURCE_DATE_EPOCH="$SOURCE_DATE_EPOCH" \ + XBPS_GIT_REVS="$XBPS_GIT_REVS" \ + XBPS_ALLOW_CHROOT_BREAKOUT="$XBPS_ALLOW_CHROOT_BREAKOUT" \ + ${XBPS_ALT_REPOSITORY:+XBPS_ALT_REPOSITORY=$XBPS_ALT_REPOSITORY} \ + $XBPS_COMMONDIR/chroot-style/${XBPS_CHROOT_CMD:=uunshare}.sh \ + $XBPS_MASTERDIR $XBPS_DISTDIR "$XBPS_HOSTDIR" "$XBPS_CHROOT_CMD_ARGS" \ + /void-packages/xbps-src $XBPS_OPTIONS $action $pkg + rv=$? + fi + + return $rv +} + +chroot_sync_repodata() { + local f= hostdir= confdir= crossconfdir= + + # always start with an empty xbps.d + confdir=$XBPS_MASTERDIR/etc/xbps.d + crossconfdir=$XBPS_MASTERDIR/$XBPS_CROSS_BASE/etc/xbps.d + + [ -d $confdir ] && rm -rf $confdir + [ -d $crossconfdir ] && rm -rf $crossconfdir + + if [ -d $XBPS_DISTDIR/etc/xbps.d/custom ]; then + mkdir -p $confdir $crossconfdir + cp -f $XBPS_DISTDIR/etc/xbps.d/custom/*.conf $confdir + cp -f $XBPS_DISTDIR/etc/xbps.d/custom/*.conf $crossconfdir + fi + if [ "$CHROOT_READY" ]; then + hostdir=/host + else + hostdir=$XBPS_HOSTDIR + fi + + # Update xbps alternative repository if set. + mkdir -p $confdir + if [ -n "$XBPS_ALT_REPOSITORY" ]; then + cat <<- ! > $confdir/00-repository-alt-local.conf + repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/bootstrap + repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY} + repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/nonfree + repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/debug + ! + if [ "$XBPS_MACHINE" = "x86_64" ]; then + cat <<- ! >> $confdir/00-repository-alt-local.conf + repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/multilib/bootstrap + repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/multilib + repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/multilib/nonfree + ! + fi + else + rm -f $confdir/00-repository-alt-local.conf + fi + + # Disable 00-repository-main.conf from share/xbps.d (part of xbps) + ln -s /dev/null $confdir/00-repository-main.conf + + # Generate xbps.d(5) configuration files for repositories + sed -e "s,/host,$hostdir,g" ${XBPS_DISTDIR}/etc/xbps.d/repos-local.conf \ + > $confdir/10-repository-local.conf + + # Install multilib conf for local repos if it exists for the architecture + if [ -s "${XBPS_DISTDIR}/etc/xbps.d/repos-local-${XBPS_MACHINE}-multilib.conf" ]; then + install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-local-${XBPS_MACHINE}-multilib.conf \ + $confdir/12-repository-local-multilib.conf + fi + + # mirror_sed is a sed script: nop by default + local mirror_sed + if [ -n "$XBPS_MIRROR" ]; then + # when XBPS_MIRROR is set, mirror_sed rewrites remote repos + mirror_sed="s|^repository=http.*/current|repository=${XBPS_MIRROR}|" + fi + + if [ "$XBPS_SKIP_REMOTEREPOS" ]; then + rm -f $confdir/*remote* + else + if [ -s "${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_MACHINE}.conf" ]; then + # If per-architecture base remote repo config exists, use that + sed -e "$mirror_sed" ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_MACHINE}.conf \ + > $confdir/20-repository-remote.conf + else + # Otherwise use generic base for musl or glibc + local suffix= + case "$XBPS_MACHINE" in + *-musl) suffix="-musl";; + esac + sed -e "$mirror_sed" ${XBPS_DISTDIR}/etc/xbps.d/repos-remote${suffix}.conf \ + > $confdir/20-repository-remote.conf + fi + # Install multilib conf for remote repos if it exists for the architecture + if [ -s "${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_MACHINE}-multilib.conf" ]; then + sed -e "$mirror_sed" ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_MACHINE}-multilib.conf \ + > $confdir/22-repository-remote-multilib.conf + fi + fi + + echo "syslog=false" > $confdir/00-xbps-src.conf + + # Copy host repos to the cross root. + if [ -n "$XBPS_CROSS_BUILD" ]; then + rm -rf $XBPS_MASTERDIR/$XBPS_CROSS_BASE/etc/xbps.d + mkdir -p $XBPS_MASTERDIR/$XBPS_CROSS_BASE/etc/xbps.d + # Disable 00-repository-main.conf from share/xbps.d (part of xbps) + ln -s /dev/null $XBPS_MASTERDIR/$XBPS_CROSS_BASE/etc/xbps.d/00-repository-main.conf + # copy xbps.d files from host for local repos + cp ${XBPS_MASTERDIR}/etc/xbps.d/*local*.conf \ + $XBPS_MASTERDIR/$XBPS_CROSS_BASE/etc/xbps.d + if [ "$XBPS_SKIP_REMOTEREPOS" ]; then + rm -f $crossconfdir/*remote* + else + # Same general logic as above, just into cross root, and no multilib + if [ -s "${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_TARGET_MACHINE}.conf" ]; then + sed -e "$mirror_sed" ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_TARGET_MACHINE}.conf \ + > $crossconfdir/20-repository-remote.conf + else + local suffix= + case "$XBPS_TARGET_MACHINE" in + *-musl) suffix="-musl" + esac + sed -e "$mirror_sed" ${XBPS_DISTDIR}/etc/xbps.d/repos-remote${suffix}.conf \ + > $crossconfdir/20-repository-remote.conf + fi + fi + + echo "syslog=false" > $crossconfdir/00-xbps-src.conf + fi + + + # Copy xbps repository keys to the masterdir. + mkdir -p $XBPS_MASTERDIR/var/db/xbps/keys + cp -f $XBPS_COMMONDIR/repo-keys/*.plist $XBPS_MASTERDIR/var/db/xbps/keys + + # Make sure to sync index for remote repositories. + if [ -z "$XBPS_SKIP_REMOTEREPOS" ]; then + msg_normal "xbps-src: updating repositories for host ($XBPS_MACHINE)...\n" + $XBPS_INSTALL_CMD $XBPS_INSTALL_ARGS -S + fi + + if [ -n "$XBPS_CROSS_BUILD" ]; then + # Copy host keys to the target rootdir. + mkdir -p $XBPS_MASTERDIR/$XBPS_CROSS_BASE/var/db/xbps/keys + cp $XBPS_MASTERDIR/var/db/xbps/keys/*.plist \ + $XBPS_MASTERDIR/$XBPS_CROSS_BASE/var/db/xbps/keys + # Make sure to sync index for remote repositories. + if [ -z "$XBPS_SKIP_REMOTEREPOS" ]; then + msg_normal "xbps-src: updating repositories for target ($XBPS_TARGET_MACHINE)...\n" + env -- XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE \ + $XBPS_INSTALL_CMD $XBPS_INSTALL_ARGS -r $XBPS_MASTERDIR/$XBPS_CROSS_BASE -S + fi + fi + + return 0 +} diff --git a/common/xbps-src/shutils/common.sh b/common/xbps-src/shutils/common.sh new file mode 100644 index 0000000..2218d34 --- /dev/null +++ b/common/xbps-src/shutils/common.sh @@ -0,0 +1,695 @@ +# vim: set ts=4 sw=4 et: + +run_func() { + local func="$1" desc="$2" funcname="$3" restoretrap= logpipe= logfile= teepid= + + : ${funcname:=$func} + + logpipe=$(mktemp -u -p ${XBPS_STATEDIR} ${pkgname}_${XBPS_CROSS_BUILD}_XXXXXXXX.logpipe) || exit 1 + logfile=${XBPS_STATEDIR}/${pkgname}_${XBPS_CROSS_BUILD}_${funcname}.log + + msg_normal "${pkgver:-xbps-src}: running ${desc:-${func}} ...\n" + + set -E + restoretrap=$(trap -p ERR) + trap 'error_func $funcname $LINENO' ERR + + mkfifo "$logpipe" + tee "$logfile" < "$logpipe" & + teepid=$! + + $func &>"$logpipe" + + wait $teepid + rm "$logpipe" + + eval "$restoretrap" + set +E +} + +ch_wrksrc() { + cd "$wrksrc" || msg_error "$pkgver: cannot access wrksrc directory [$wrksrc]\n" + if [ -n "$build_wrksrc" ]; then + cd "$build_wrksrc" || \ + msg_error "$pkgver: cannot access build_wrksrc directory [$build_wrksrc]\n" + fi +} + +# runs {pre,do,post}_X tripplets +run_step() { + local step_name="$1" optional_step="$2" skip_post_hook="$3" + + ch_wrksrc + run_pkg_hooks "pre-$step_name" + + # Run pre_* Phase + if declare -f "pre_$step_name" >/dev/null; then + ch_wrksrc + run_func "pre_$step_name" + fi + + ch_wrksrc + # Run do_* Phase + if declare -f "do_$step_name" >/dev/null; then + run_func "do_$step_name" + elif [ -n "$build_style" ]; then + if [ -r $XBPS_BUILDSTYLEDIR/${build_style}.sh ]; then + . $XBPS_BUILDSTYLEDIR/${build_style}.sh + if declare -f "do_$step_name" >/dev/null; then + run_func "do_$step_name" + elif [ ! "$optional_step" ]; then + msg_error "$pkgver: cannot find do_$step_name() in $XBPS_BUILDSTYLEDIR/${build_style}.sh!\n" + fi + else + msg_error "$pkgver: cannot find build style $XBPS_BUILDSTYLEDIR/${build_style}.sh!\n" + fi + elif [ ! "$optional_step" ]; then + msg_error "$pkgver: cannot find do_$step_name()!\n" + fi + + # Run do_ phase hooks + run_pkg_hooks "do-$step_name" + + # Run post_* Phase + if declare -f "post_$step_name" >/dev/null; then + ch_wrksrc + run_func "post_$step_name" + fi + + if ! [ "$skip_post_hook" ]; then + ch_wrksrc + run_pkg_hooks "post-$step_name" + fi +} + +error_func() { + local err=$? + local src= + local i= + [ -n "$1" -a -n "$2" ] || exit 1; + + msg_red "$pkgver: $1: '${BASH_COMMAND}' exited with $err\n" + for ((i=1;i<${#FUNCNAME[@]};i++)); do + src=${BASH_SOURCE[$i]} + src=${src#$XBPS_DISTDIR/} + msg_red " in ${FUNCNAME[$i]}() at $src:${BASH_LINENO[$i-1]}\n" + [ "${FUNCNAME[$i]}" = "$1" ] && break; + done + exit 1 +} + +exit_and_cleanup() { + local rval=$1 + + if [ -n "$XBPS_TEMP_MASTERDIR" -a "$XBPS_TEMP_MASTERDIR" != "1" ]; then + rm -rf "$XBPS_TEMP_MASTERDIR" + fi + exit ${rval:=0} +} + +msg_red() { + # error messages in bold/red + [ -n "$NOCOLORS" ] || printf >&2 "\033[1m\033[31m" + printf >&2 "=> ERROR: $@" + [ -n "$NOCOLORS" ] || printf >&2 "\033[m" +} + +msg_red_nochroot() { + [ -n "$NOCOLORS" ] || printf >&2 "\033[1m\033[31m" + printf >&2 "$@" + [ -n "$NOCOLORS" ] || printf >&2 "\033[m" +} + +msg_error() { + msg_red "$@" + [ -n "$XBPS_INFORMATIVE_RUN" ] || exit 1 +} + +msg_warn() { + # warn messages in bold/yellow + [ -n "$NOCOLORS" ] || printf >&2 "\033[1m\033[33m" + printf >&2 "=> WARNING: $@" + [ -n "$NOCOLORS" ] || printf >&2 "\033[m" +} + +msg_warn_nochroot() { + [ -n "$NOCOLORS" ] || printf >&2 "\033[1m\033[33m" + printf >&2 "=> WARNING: $@" + [ -n "$NOCOLORS" ] || printf >&2 "\033[m" +} + +msg_normal() { + if [ -z "$XBPS_QUIET" ]; then + # normal messages in bold + [ -n "$NOCOLORS" ] || printf "\033[1m" + printf "=> $@" + [ -n "$NOCOLORS" ] || printf "\033[m" + 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 "$@" + [ -n "$NOCOLORS" ] || printf "\033[m" +} + +set_build_options() { + local f j pkgopts _pkgname + local -A options + + if [ -z "$build_options" ]; then + return 0 + fi + + for f in ${build_options}; do + # Select build options from conf + export XBPS_CURRENT_PKG=${pkgname} + pkgopts="$( + . $XBPS_CONFIG_FILE 2>/dev/null + var="XBPS_PKG_OPTIONS_${XBPS_CURRENT_PKG//[^A-Za-z0-9_]/_}" + echo ${!var:-${XBPS_PKG_OPTIONS}} + )" + unset XBPS_CURRENT_PKG + + # If pkg options were set in config(s), merge them with command line + if [ -n "$XBPS_ARG_PKG_OPTIONS" ]; then + if [ -n "$pkgopts" ]; then + pkgopts+=",$XBPS_ARG_PKG_OPTIONS" + else + pkgopts="$XBPS_ARG_PKG_OPTIONS" + fi + fi + + OIFS="$IFS"; IFS=',' + for j in ${pkgopts}; do + case "$j" in + "$f") options[$j]=1 ;; + "~$f") options[${j#\~}]=0 ;; + esac + done + IFS="$OIFS" + done + + for f in ${build_options_default}; do + [[ -z "${options[$f]}" ]] && options[$f]=1 + done + + # Prepare final options. + for f in ${build_options}; do + if [[ ${options[$f]} -eq 1 ]]; then + eval export build_option_${f}=1 + else + eval unset build_option_${f} + fi + done + + # Re-read pkg template to get conditional vars. + if [ -z "$XBPS_BUILD_OPTIONS_PARSED" ]; then + source_file $XBPS_SRCPKGDIR/$pkgname/template + XBPS_BUILD_OPTIONS_PARSED=1 + unset PKG_BUILD_OPTIONS + set_build_options + unset XBPS_BUILD_OPTIONS_PARSED + return 0 + fi + + # Sort pkg build options alphabetically. + export PKG_BUILD_OPTIONS=$( + for f in ${build_options}; do + [[ "${options[$f]}" -eq 1 ]] || printf '~' + printf '%s\n' "$f" + done | sort | tr -s '\n' ' ' + ) +} + +source_file() { + local f="$1" + + if [ ! -f "$f" -o ! -r "$f" ]; then + return 0 + fi + if ! source "$f"; then + msg_error "xbps-src: failed to read $f!\n" + fi +} + +run_pkg_hooks() { + local phase="$1" hookn f + + eval unset -f hook + for f in ${XBPS_COMMONDIR}/hooks/${phase}/*.sh; do + [ ! -r $f ] && continue + hookn=${f##*/} + hookn=${hookn%.sh} + . $f + run_func hook "$phase hook: $hookn" ${phase}_${hookn} + done +} + +unset_package_funcs() { + local f + + for f in $(typeset -F); do + case "$f" in + *_package) + unset -f "$f" + ;; + esac + done +} + +get_endian() { + local arch="${1%-*}" + + case "$arch" in + aarch64) echo "le";; + armv5tel) echo "le";; + armv6l) echo "le";; + armv7l) echo "le";; + i686) echo "le";; + mipsel*) echo "le";; + mips*) echo "be";; + ppc*le) echo "le";; + ppc*) echo "be";; + x86_64) echo "le";; + esac +} + +get_libc() { + local arch="${1%-*}" + + if [ "${arch}" = "$1" ]; then + echo "glibc" + else + echo "${1#${arch}-}" + fi +} + +get_wordsize() { + local arch="${1%-*}" + + case "$arch" in + aarch64) echo "64";; + armv5tel) echo "32";; + armv6l) echo "32";; + armv7l) echo "32";; + i686) echo "32";; + mipsel*) echo "32";; + mips*) echo "32";; + ppc64*) echo "64";; + ppc*) echo "32";; + x86_64) echo "64";; + esac +} + +get_no_atomic8() { + local arch="${1%-*}" + + case "$arch" in + armv5tel) echo "yes";; + armv6l) echo "yes";; + mips*) echo "yes";; + ppcle) echo "yes";; + ppc) echo "yes";; + esac +} + +get_subpkgs() { + local f + + for f in $(typeset -F); do + case "$f" in + *_package) + echo "${f%_package}" + ;; + esac + done +} + +setup_pkg() { + local pkg="$1" cross="$2" show_problems="$3" + local basepkg val _vars f dbgflags extrarepo + + [ -z "$pkg" ] && return 1 + basepkg=${pkg%-32bit} + + # Start with a sane environment + unset -v PKG_BUILD_OPTIONS XBPS_CROSS_CFLAGS XBPS_CROSS_CXXFLAGS XBPS_CROSS_FFLAGS XBPS_CROSS_CPPFLAGS XBPS_CROSS_LDFLAGS XBPS_TARGET_QEMU_MACHINE + unset -v subpackages run_depends build_depends host_build_depends + + unset_package_funcs + + if [ -n "$cross" ]; then + source_file $XBPS_CROSSPFDIR/${cross}.sh + + _vars="TARGET_MACHINE CROSS_TRIPLET CROSS_CFLAGS CROSS_CXXFLAGS CROSS_FFLAGS TARGET_QEMU_MACHINE" + for f in ${_vars}; do + eval val="\$XBPS_$f" + if [ -z "$val" ]; then + echo "ERROR: XBPS_$f is not defined!" + exit 1 + fi + done + + export XBPS_CROSS_BASE=/usr/$XBPS_CROSS_TRIPLET + export XBPS_TARGET_QEMU_MACHINE + + XBPS_INSTALL_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE $XBPS_INSTALL_CMD -c /host/repocache-$XBPS_TARGET_MACHINE -r $XBPS_CROSS_BASE" + XBPS_QUERY_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE $XBPS_QUERY_CMD -c /host/repocache-$XBPS_TARGET_MACHINE -r $XBPS_CROSS_BASE" + XBPS_RECONFIGURE_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE $XBPS_RECONFIGURE_CMD -r $XBPS_CROSS_BASE" + XBPS_REMOVE_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE $XBPS_REMOVE_CMD -r $XBPS_CROSS_BASE" + XBPS_RINDEX_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE $XBPS_RINDEX_CMD" + XBPS_UHELPER_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE xbps-uhelper -r $XBPS_CROSS_BASE" + XBPS_CHECKVERS_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE xbps-checkvers -r $XBPS_CROSS_BASE" + else + export XBPS_TARGET_MACHINE=${XBPS_ARCH:-$XBPS_MACHINE} + unset XBPS_CROSS_BASE XBPS_CROSS_LDFLAGS XBPS_CROSS_FFLAGS + unset XBPS_CROSS_CFLAGS XBPS_CROSS_CXXFLAGS XBPS_CROSS_CPPFLAGS + unset XBPS_CROSS_RUSTFLAGS XBPS_CROSS_RUST_TARGET + + XBPS_INSTALL_XCMD="$XBPS_INSTALL_CMD" + XBPS_QUERY_XCMD="$XBPS_QUERY_CMD" + XBPS_RECONFIGURE_XCMD="$XBPS_RECONFIGURE_CMD" + XBPS_REMOVE_XCMD="$XBPS_REMOVE_CMD" + XBPS_RINDEX_XCMD="$XBPS_RINDEX_CMD" + XBPS_UHELPER_XCMD="$XBPS_UHELPER_CMD" + XBPS_CHECKVERS_XCMD="$XBPS_CHECKVERS_CMD" + fi + + export XBPS_ENDIAN=$(get_endian ${XBPS_MACHINE}) + export XBPS_TARGET_ENDIAN=$(get_endian ${XBPS_TARGET_MACHINE}) + export XBPS_LIBC=$(get_libc ${XBPS_MACHINE}) + export XBPS_TARGET_LIBC=$(get_libc ${XBPS_TARGET_MACHINE}) + export XBPS_WORDSIZE=$(get_wordsize ${XBPS_MACHINE}) + export XBPS_TARGET_WORDSIZE=$(get_wordsize ${XBPS_TARGET_MACHINE}) + export XBPS_NO_ATOMIC8=$(get_no_atomic8 ${XBPS_MACHINE}) + export XBPS_TARGET_NO_ATOMIC8=$(get_no_atomic8 ${XBPS_TARGET_MACHINE}) + + export XBPS_INSTALL_XCMD XBPS_QUERY_XCMD XBPS_RECONFIGURE_XCMD \ + XBPS_REMOVE_XCMD XBPS_RINDEX_XCMD XBPS_UHELPER_XCMD + + # Source all sourcepkg environment setup snippets. + # Source all subpkg environment setup snippets. + for f in ${XBPS_COMMONDIR}/environment/setup-subpkg/*.sh; do + source_file "$f" + done + for f in ${XBPS_COMMONDIR}/environment/setup/*.sh; do + source_file "$f" + done + + if [ ! -f ${XBPS_SRCPKGDIR}/${basepkg}/template ]; then + msg_error "xbps-src: nonexistent file: ${XBPS_SRCPKGDIR}/${basepkg}/template\n" + fi + if [ -n "$cross" ]; then + export CROSS_BUILD="$cross" + source_file ${XBPS_SRCPKGDIR}/${basepkg}/template + else + unset CROSS_BUILD + source_file ${XBPS_SRCPKGDIR}/${basepkg}/template + fi + + + # Check if required vars weren't set. + _vars="pkgname version short_desc revision homepage license" + for f in ${_vars}; do + eval val="\$$f" + if [ -z "$val" -o -z "$f" ]; then + msg_error "\"$f\" not set on $pkgname template.\n" + fi + done + + # Check if version is valid. + case "$version" in + *-*) msg_error "version contains invalid character: -\n";; + *_*) msg_error "version contains invalid character: _\n";; + esac + case "$version" in + *[0-9]*) : good ;; + *) msg_error "version must contain at least one digit.\n";; + esac + + # Check if base-chroot is already installed. + if [ -z "$bootstrap" -a -z "$CHROOT_READY" -a "z$show_problems" != "zignore-problems" ]; then + msg_red "${pkg} is not a bootstrap package and cannot be built without it.\n" + msg_error "Please install bootstrap packages and try again.\n" + fi + + sourcepkg="${pkgname}" + if [ -z "$subpackages" ]; then + subpackages="$(get_subpkgs)" + fi + + if [ -h $XBPS_SRCPKGDIR/$basepkg ]; then + # Source all subpkg environment setup snippets. + for f in ${XBPS_COMMONDIR}/environment/setup-subpkg/*.sh; do + source_file "$f" + done + pkgname=$pkg + if ! declare -f ${basepkg}_package >/dev/null; then + msg_error "$pkgname: missing ${basepkg}_package() function!\n" + fi + fi + + pkgver="${pkg}-${version}_${revision}" + + # If build_style() unset, a do_install() function must be defined. + if [ -z "$build_style" ]; then + # Check that at least do_install() is defined. + if ! declare -f do_install >/dev/null; then + msg_error "$pkgver: missing do_install() function!\n" + fi + fi + + for x in ${hostmakedepends} ${makedepends} ${checkdepends}; do + if [[ $x = *[\<\>]* || $x =~ -[^-_]*[0-9][^-_]*_[0-9_]+$ ]]; then + msg_error "$pkgver: specifying version in build dependency '$x' is invalid, template version is used always\n" + fi + done + + FILESDIR=$XBPS_SRCPKGDIR/$sourcepkg/files + PATCHESDIR=$XBPS_SRCPKGDIR/$sourcepkg/patches + DESTDIR=$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/${sourcepkg}-${version} + PKGDESTDIR=$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/${pkg}-${version} + + export XBPS_ORIG_MAKEJOBS=${XBPS_ORIG_MAKEJOBS:=$XBPS_MAKEJOBS} + if [ -n "$disable_parallel_build" ]; then + XBPS_MAKEJOBS=1 + fi + makejobs="-j$XBPS_MAKEJOBS" + if [ -n "$XBPS_BINPKG_EXISTS" ]; then + 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)" + msg_normal "xbps-src: $pkgver: found ($XBPS_TARGET_MACHINE) ($_repo)\n" + fi + exit_and_cleanup + fi + fi + + if [ -z "$XBPS_DEBUG_PKGS" -o "$repository" = "nonfree" ]; then + nodebug=yes + fi + # -g is required to build -dbg packages. + if [ -z "$nodebug" ]; then + dbgflags="-g" + fi + + # build profile is used always in order to expose the host triplet, + # but the compiler flags from it are only used when not crossing + if [ -z "$CHROOT_READY" ]; then + source_file ${XBPS_COMMONDIR}/build-profiles/bootstrap.sh + else + source_file ${XBPS_COMMONDIR}/build-profiles/${XBPS_MACHINE}.sh + fi + + set_build_options + + export CFLAGS="$XBPS_CFLAGS $XBPS_CROSS_CFLAGS $CFLAGS $dbgflags" + export CXXFLAGS="$XBPS_CXXFLAGS $XBPS_CROSS_CXXFLAGS $CXXFLAGS $dbgflags" + export FFLAGS="$XBPS_FFLAGS $XBPS_CROSS_FFLAGS $FFLAGS $dbgflags" + export CPPFLAGS="$XBPS_CPPFLAGS $XBPS_CROSS_CPPFLAGS $CPPFLAGS" + export LDFLAGS="$XBPS_LDFLAGS $XBPS_CROSS_LDFLAGS $LDFLAGS" + + export BUILD_CC="cc" + export BUILD_CXX="c++" + export BUILD_CPP="cpp" + export BUILD_FC="gfortran" + export BUILD_LD="ld" + export BUILD_CFLAGS="$XBPS_CFLAGS" + export BUILD_CXXFLAGS="$XBPS_CXXFLAGS" + export BUILD_CPPFLAGS="$XBPS_CPPFLAGS" + export BUILD_LDFLAGS="$XBPS_LDFLAGS" + export BUILD_FFLAGS="$XBPS_FFLAGS" + + export CC_FOR_BUILD="cc" + export CXX_FOR_BUILD="g++" + export CPP_FOR_BUILD="cpp" + export FC_FOR_BUILD="gfortran" + export LD_FOR_BUILD="ld" + export PKG_CONFIG_FOR_BUILD="/usr/bin/pkg-config" + export CFLAGS_FOR_BUILD="$XBPS_CFLAGS" + export CXXFLAGS_FOR_BUILD="$XBPS_CXXFLAGS" + export CPPFLAGS_FOR_BUILD="$XBPS_CPPFLAGS" + export LDFLAGS_FOR_BUILD="$XBPS_LDFLAGS" + export FFLAGS_FOR_BUILD="$XBPS_FFLAGS" + + if [ -n "$cross" ]; then + # Regular tools names + export CC="${XBPS_CROSS_TRIPLET}-gcc" + export CXX="${XBPS_CROSS_TRIPLET}-c++" + export CPP="${XBPS_CROSS_TRIPLET}-cpp" + export FC="${XBPS_CROSS_TRIPLET}-gfortran" + export GCC="$CC" + export LD="${XBPS_CROSS_TRIPLET}-ld" + export AR="${XBPS_CROSS_TRIPLET}-ar" + export AS="${XBPS_CROSS_TRIPLET}-as" + export RANLIB="${XBPS_CROSS_TRIPLET}-ranlib" + export STRIP="${XBPS_CROSS_TRIPLET}-strip" + export OBJDUMP="${XBPS_CROSS_TRIPLET}-objdump" + export OBJCOPY="${XBPS_CROSS_TRIPLET}-objcopy" + export NM="${XBPS_CROSS_TRIPLET}-nm" + export READELF="${XBPS_CROSS_TRIPLET}-readelf" + export PKG_CONFIG="${XBPS_CROSS_TRIPLET}-pkg-config" + # Target tools + export CC_target="$CC" + export CXX_target="$CXX" + export CPP_target="$CPP" + export GCC_target="$GCC" + export FC_target="$FC" + export LD_target="$LD" + export AR_target="$AR" + export AS_target="$AS" + export RANLIB_target="$RANLIB" + export STRIP_target="$STRIP" + export OBJDUMP_target="$OBJDUMP" + export OBJCOPY_target="$OBJCOPY" + export NM_target="$NM" + export READELF_target="$READELF" + # Target flags + export CFLAGS_target="$CFLAGS" + export CXXFLAGS_target="$CXXFLAGS" + export CPPFLAGS_target="$CPPFLAGS" + export LDFLAGS_target="$LDFLAGS" + export FFLAGS_target="$FFLAGS" + # Host tools + export CC_host="cc" + export CXX_host="g++" + export CPP_host="cpp" + export GCC_host="$CC_host" + export FC_host="gfortran" + export LD_host="ld" + export AR_host="ar" + export AS_host="as" + export RANLIB_host="ranlib" + export STRIP_host="strip" + export OBJDUMP_host="objdump" + export OBJCOPY_host="objcopy" + export NM_host="nm" + export READELF_host="readelf" + # Host flags + export CFLAGS_host="$XBPS_CFLAGS" + export CXXFLAGS_host="$XBPS_CXXFLAGS" + export CPPFLAGS_host="$XBPS_CPPFLAGS" + export LDFLAGS_host="$XBPS_LDFLAGS" + export FFLAGS_host="$XBPS_FFLAGS" + # Rust flags which are passed to rustc + export RUSTFLAGS="$XBPS_CROSS_RUSTFLAGS" + # Rust target, which differs from our triplets + export RUST_TARGET="$XBPS_CROSS_RUST_TARGET" + # Rust build, which is the host system, may also differ + export RUST_BUILD="$XBPS_RUST_TARGET" + else + # Target flags from build-profile + export CFLAGS="$XBPS_TARGET_CFLAGS $CFLAGS" + export CXXFLAGS="$XBPS_TARGET_CXXFLAGS $CXXFLAGS" + export FFLAGS="$XBPS_TARGET_FFLAGS $FFLAGS" + export CPPFLAGS="$XBPS_TARGET_CPPFLAGS $CPPFLAGS" + export LDFLAGS="$XBPS_TARGET_LDFLAGS $LDFLAGS" + # Tools + export CC="cc" + export CXX="g++" + export CPP="cpp" + export GCC="$CC" + export FC="gfortran" + export LD="ld" + export AR="ar" + export AS="as" + export RANLIB="ranlib" + export STRIP="strip" + export OBJDUMP="objdump" + export OBJCOPY="objcopy" + export NM="nm" + export READELF="readelf" + export PKG_CONFIG="pkg-config" + export RUST_TARGET="$XBPS_RUST_TARGET" + export RUST_BUILD="$XBPS_RUST_TARGET" + # Unset cross evironment variables + unset CC_target CXX_target CPP_target GCC_target FC_target LD_target AR_target AS_target + unset RANLIB_target STRIP_target OBJDUMP_target OBJCOPY_target NM_target READELF_target + unset CFLAGS_target CXXFLAGS_target CPPFLAGS_target LDFLAGS_target FFLAGS_target + unset CC_host CXX_host CPP_host GCC_host FC_host LD_host AR_host AS_host + unset RANLIB_host STRIP_host OBJDUMP_host OBJCOPY_host NM_host READELF_host + unset CFLAGS_host CXXFLAGS_host CPPFLAGS_host LDFLAGS_host FFLAGS_host + unset RUSTFLAGS + fi + + # Setup some specific package vars. + wrksrc="$XBPS_BUILDDIR/${sourcepkg}-${version}" + + 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 + msg_red "$pkgver: does not allow redistribution of sources/binaries (restricted license).\n" + msg_red "If you really need this software, run 'echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf'\n" + exit 2 + fi + + export XBPS_STATEDIR="${XBPS_BUILDDIR}/.xbps-${sourcepkg}" + export XBPS_WRAPPERDIR="${XBPS_STATEDIR}/wrappers" + + mkdir -p $XBPS_STATEDIR $XBPS_WRAPPERDIR + + source_file $XBPS_COMMONDIR/environment/build-style/${build_style}.sh + + # Source all build-helper files that are defined + for f in $build_helper; do + if [ ! -r $XBPS_BUILDHELPERDIR/${f}.sh ]; then + msg_error "$pkgver: cannot find build helper $XBPS_BUILDHELPERDIR/${f}.sh!\n" + fi + . $XBPS_BUILDHELPERDIR/${f}.sh + done +} diff --git a/common/xbps-src/shutils/consistency_check.sh b/common/xbps-src/shutils/consistency_check.sh new file mode 100644 index 0000000..6a5b2ec --- /dev/null +++ b/common/xbps-src/shutils/consistency_check.sh @@ -0,0 +1,81 @@ +# vim: set ts=4 sw=4 et: + +consistency_check_existing () { + while IFS=" " read -r dep origname deplabel; do + [ -f "$XBPS_SRCPKGDIR/$dep/template" ] && continue + case "$deplabel" in + makedepends|hostmakedepends|checkdepends) + msg_warn "unsatisfied $deplabel in $origname: $dep does not exist\n"; + ;; + *) printf "%s %s %s\n" "$dep" "$origname" "$deplabel" ;; + esac + done +} + +consistency_convert_pkgname () { + local origname= pkgname version= revision= + while IFS=" " read -r dep origname deplabel; do + case "$deplabel" in + makedepends|hostmakedepends|checkdepends) + printf "%s %s %s\n" "$dep" "$origname" "$deplabel" + continue + ;; + esac + case "$dep" in + *\<*|*\>*|*=*) + printf "%s %s %s\n" "$dep" "$origname" "$deplabel" + continue + ;; + esac + if pkgname=$(xbps-uhelper getpkgname "$dep" 2> /dev/null) && \ + version=$(xbps-uhelper getpkgversion "$dep" 2> /dev/null) && \ + revision=$(xbps-uhelper getpkgrevision "$dep" 2> /dev/null); then + printf "%s %s %s\n" "${pkgname}>=${version}_${revision}" "$origname" "$deplabel" + else + printf "%s %s %s\n" "$dep>=0" "$origname" "$deplabel" + fi + done +} + +consistency_check_smart () { + local pkgname= depdef= dep= + while IFS=" " read -r depdef origname deplabel; do + case "$deplabel" in + makedepends|hostmakedepends|checkdepends) + printf "%s %s %s\n" "$depdef" "$origname" "$deplabel" + continue + ;; + esac + + dep=$(xbps-uhelper getpkgdepname "$depdef") + + if [ ! -f "$XBPS_SRCPKGDIR/$dep/template" ]; then + msg_warn "unsatisfied $deplabel in $origname: $dep does not exist\n"; + continue + fi + ( + XBPS_TARGET_PKG=$dep + read_pkg + xbps-uhelper pkgmatch "$depdef" "${pkgname}-${version}_${revision}" && return + msg_red "unsatisfied $deplabel in $origname: $dep is $version, but required is $depdef\n"; + ) + done +} + +consistency_check() { + local pkg= pkgname= + for pkg in "$XBPS_SRCPKGDIR"/*/template; do + pkg=${pkg%/*} + XBPS_TARGET_PKG=${pkg##*/} + ( + read_pkg + [ "$depends" ] && printf "%s $pkgname depends\n" $depends + [ "$conflicts" ] && printf "%s $pkgname conflicts\n" $conflicts + [ -L "$XBPS_SRCPKGDIR/$XBPS_TARGET_PKG" ] && return + [ "$makedepends" ] && printf "%s $pkgname makedepends\n" $makedepends + [ "$hostmakedepends" ] && printf "%s $pkgname hostmakedepends\n" $hostmakedepends + [ "$checkdepends" ] && printf "%s $pkgname checkdepends\n" $checkdepends + ) + done | grep -v "^virtual?" | sed "s/^[^ ]*?//" | consistency_check_existing | \ + consistency_convert_pkgname | consistency_check_smart +} diff --git a/common/xbps-src/shutils/cross.sh b/common/xbps-src/shutils/cross.sh new file mode 100644 index 0000000..fbf22f9 --- /dev/null +++ b/common/xbps-src/shutils/cross.sh @@ -0,0 +1,136 @@ +# vim: set ts=4 sw=4 et: + +remove_pkg_cross_deps() { + local rval= tmplogf= prevs=0 + [ -z "$XBPS_CROSS_BUILD" ] && return 0 + + cd $XBPS_MASTERDIR || return 1 + msg_normal "${pkgver:-xbps-src}: removing autocrossdeps, please wait...\n" + tmplogf=$(mktemp) || exit 1 + + if [ -z "$XBPS_REMOVE_XCMD" ]; then + source_file $XBPS_CROSSPFDIR/${XBPS_CROSS_BUILD}.sh + XBPS_REMOVE_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE xbps-remove -r /usr/$XBPS_CROSS_TRIPLET" + fi + + $XBPS_REMOVE_XCMD -Ryo > $tmplogf 2>&1 + rval=$? + while [ $rval -eq 0 ]; do + local curs=$(stat -c %s $tmplogf) + if [ $curs -eq $prevs ]; then + break + fi + prevs=$curs + $XBPS_REMOVE_XCMD -Ryo >> $tmplogf 2>&1 + rval=$? + done + + if [ $rval -ne 0 ]; then + msg_red "${pkgver:-xbps-src}: failed to remove autocrossdeps:\n" + cat $tmplogf && rm -f $tmplogf + msg_error "${pkgver:-xbps-src}: cannot continue!\n" + fi + rm -f $tmplogf +} + +prepare_cross_sysroot() { + local cross="$1" + local statefile="$XBPS_MASTERDIR/.xbps-${cross}-done" + + [ -z "$cross" -o "$cross" = "" -o -f $statefile ] && return 0 + + # Check if the cross pkg is installed in host. + check_installed_pkg cross-${XBPS_CROSS_TRIPLET}-0.1_1 + [ $? -eq 0 ] && return 0 + + # Check if the cross compiler pkg is available in repos, otherwise build it. + pkg_available cross-${XBPS_CROSS_TRIPLET} + rval=$? + if [ $rval -eq 0 ]; then + $XBPS_LIBEXECDIR/build.sh cross-${XBPS_CROSS_TRIPLET} cross-${XBPS_CROSS_TRIPLET} pkg || return $? + fi + + # Check if cross-vpkg-dummy is installed. + check_installed_pkg cross-vpkg-dummy-0.30_1 $cross + [ $? -eq 0 ] && return 0 + + # Check for cross-vpkg-dummy available for the target arch, otherwise build it. + pkg_available 'cross-vpkg-dummy>=0.34_1' $cross + if [ $? -eq 0 ]; then + $XBPS_LIBEXECDIR/build.sh cross-vpkg-dummy bootstrap pkg $cross init || return $? + fi + + msg_normal "Installing $cross cross pkg: cross-vpkg-dummy ...\n" + errlog=$(mktemp) || exit 1 + $XBPS_INSTALL_XCMD -Syfd cross-vpkg-dummy &>$errlog + rval=$? + if [ $rval -ne 0 ]; then + msg_red "failed to install cross-vpkg-dummy (error $rval)\n" + cat $errlog + rm -f $errlog + msg_error "cannot continue due to errors above\n" + fi + rm -f $errlog + # Create top level symlinks in sysroot. + 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 + + touch -f $statefile + + return 0 +} + +install_cross_pkg() { + local cross="$1" rval errlog + + [ -z "$cross" -o "$cross" = "" ] && return 0 + + # Check if installed. + check_installed_pkg cross-${XBPS_CROSS_TRIPLET}-0.1_1 + [ $? -eq 0 ] && return 0 + + # Check if the cross compiler pkg is available in repos, otherwise build it. + pkg_available cross-${XBPS_CROSS_TRIPLET} + rval=$? + if [ $rval -eq 0 ]; then + $XBPS_LIBEXECDIR/build.sh cross-${XBPS_CROSS_TRIPLET} cross-${XBPS_CROSS_TRIPLET} pkg || return $? + fi + + errlog=$(mktemp) || exit 1 + msg_normal "xbps-src: installing cross compiler: cross-${XBPS_CROSS_TRIPLET} ...\n" + $XBPS_INSTALL_CMD -Syfd cross-${XBPS_CROSS_TRIPLET} &>$errlog + rval=$? + if [ $rval -ne 0 -a $rval -ne 17 ]; then + msg_red "failed to install cross-${XBPS_CROSS_TRIPLET} (error $rval)\n" + cat $errlog + rm -f $errlog + msg_error "cannot continue due to errors above\n" + fi + rm -f $errlog + + return 0 +} + +remove_cross_pkg() { + local cross="$1" rval + + [ -z "$cross" -o "$cross" = "" ] && return 0 + + source_file ${XBPS_CROSSPFDIR}/${cross}.sh + + if [ -z "$CHROOT_READY" ]; then + echo "ERROR: chroot mode not activated (install a bootstrap)." + exit 1 + elif [ -z "$IN_CHROOT" ]; then + return 0 + fi + + msg_normal "Removing cross pkg: cross-${XBPS_CROSS_TRIPLET} ...\n" + $XBPS_REMOVE_CMD -Ry cross-${XBPS_CROSS_TRIPLET} &>/dev/null + rval=$? + if [ $rval -ne 0 ]; then + msg_error "failed to remove cross-${XBPS_CROSS_TRIPLET} (error $rval)\n" + fi +} diff --git a/common/xbps-src/shutils/pkgtarget.sh b/common/xbps-src/shutils/pkgtarget.sh new file mode 100644 index 0000000..54b7c34 --- /dev/null +++ b/common/xbps-src/shutils/pkgtarget.sh @@ -0,0 +1,137 @@ +# vim: set ts=4 sw=4 et: + +check_existing_pkg() { + local arch= curpkg= + if [ -z "$XBPS_PRESERVE_PKGS" ] || [ "$XBPS_BUILD_FORCEMODE" ]; then + return + fi + arch=$XBPS_TARGET_MACHINE + curpkg=$XBPS_REPOSITORY/$repository/$pkgver.$arch.xbps + if [ -e $curpkg ]; then + msg_warn "$pkgver: skipping build due to existing $curpkg\n" + exit 0 + fi +} + +check_pkg_arch() { + local cross="$1" _arch f match nonegation + + if [ -n "$archs" ]; then + if [ -n "$cross" ]; then + _arch="$XBPS_TARGET_MACHINE" + elif [ -n "$XBPS_ARCH" ]; then + _arch="$XBPS_ARCH" + else + _arch="$XBPS_MACHINE" + fi + set -f + for f in ${archs}; do + set +f + nonegation=${f##\~*} + f=${f#\~} + case "${_arch}" in + $f) match=1; break ;; + esac + done + if [ -z "$nonegation" -a -n "$match" ] || [ -n "$nonegation" -a -z "$match" ]; then + report_broken "${pkgname}-${version}_${revision}: this package cannot be built for ${_arch}.\n" + fi + fi +} + +# Returns 1 if pkg is available in xbps repositories, 0 otherwise. +pkg_available() { + local pkg="$1" cross="$2" pkgver + + if [ -n "$cross" ]; then + pkgver=$($XBPS_QUERY_XCMD -R -ppkgver "${pkg}" 2>/dev/null) + else + pkgver=$($XBPS_QUERY_CMD -R -ppkgver "${pkg}" 2>/dev/null) + fi + + if [ -z "$pkgver" ]; then + return 0 + fi + return 1 +} + +remove_pkg_autodeps() { + local rval= tmplogf= errlogf= prevs= + + cd $XBPS_MASTERDIR || return 1 + msg_normal "${pkgver:-xbps-src}: removing autodeps, please wait...\n" + tmplogf=$(mktemp) || exit 1 + errlogf=$(mktemp) || exit 1 + + remove_pkg_cross_deps + $XBPS_RECONFIGURE_CMD -a >> $tmplogf 2>&1 + prevs=$(stat -c %s $tmplogf) + echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf + rval=$? + while [ $rval -eq 0 ]; do + local curs=$(stat -c %s $tmplogf) + if [ $curs -eq $prevs ]; then + break + fi + prevs=$curs + echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf + rval=$? + done + + if [ $rval -ne 0 ]; then + msg_red "${pkgver:-xbps-src}: failed to remove autodeps: (returned $rval)\n" + cat $tmplogf && rm -f $tmplogf + cat $errlogf && rm -f $errlogf + msg_error "${pkgver:-xbps-src}: cannot continue!\n" + fi + rm -f $tmplogf + rm -f $errlogf +} + +remove_pkg_wrksrc() { + if [ -d "$wrksrc" ]; then + msg_normal "$pkgver: cleaning build directory...\n" + rm -rf "$wrksrc" 2>/dev/null || chmod -R +wX "$wrksrc" # Needed to delete Go Modules + rm -rf "$wrksrc" + fi +} + +remove_pkg_statedir() { + if [ -d "$XBPS_STATEDIR" ]; then + rm -rf "$XBPS_STATEDIR" + fi +} + +remove_pkg() { + local cross="$1" _destdir f + + [ -z $pkgname ] && msg_error "nonexistent package, aborting.\n" + + if [ -n "$cross" ]; then + _destdir="$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET" + else + _destdir="$XBPS_DESTDIR" + fi + + [ ! -d ${_destdir} ] && return + + for f in ${sourcepkg} ${subpackages}; do + if [ -d "${_destdir}/${f}-${version}" ]; then + msg_normal "$f: removing files from destdir...\n" + rm -rf ${_destdir}/${f}-${version} + fi + if [ -d "${_destdir}/${f}-dbg-${version}" ]; then + msg_normal "$f: removing dbg files from destdir...\n" + rm -rf ${_destdir}/${f}-dbg-${version} + fi + if [ -d "${_destdir}/${f}-32bit-${version}" ]; then + msg_normal "$f: removing 32bit files from destdir...\n" + rm -rf ${_destdir}/${f}-32bit-${version} + fi + rm -f ${XBPS_STATEDIR}/${f}_${cross}_subpkg_install_done + rm -f ${XBPS_STATEDIR}/${f}_${cross}_prepkg_done + done + rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_install_done + rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_pre_install_done + rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_post_install_done +} diff --git a/common/xbps-src/shutils/purge_distfiles.sh b/common/xbps-src/shutils/purge_distfiles.sh new file mode 100644 index 0000000..838ac75 --- /dev/null +++ b/common/xbps-src/shutils/purge_distfiles.sh @@ -0,0 +1,85 @@ +# Scan srcpkgs/*/template for hashes and distfiles to determine +# obsolete sources/by_sha256 files and their corresponding +# sources/- files that can be purged + + +purge_distfiles() { + readonly HASHLEN=64 + if [ -z "$XBPS_SRCDISTDIR" ]; then + msg_error "The variable \$XBPS_SRCDISTDIR is not set." + exit 1 + fi + # + # Scan all templates for their current distfiles and checksums (hashes) + # + declare -A my_hashes + templates=($(find srcpkgs -mindepth 1 -maxdepth 1 -type d -printf "srcpkgs/%f/template\n")) + max=${#templates[@]} + cur=0 + if [ -z "$max" ]; then + msg_error "No srcpkgs/*/template files found. Wrong working directory?" + exit 1 + fi + percent=-1 + for template in ${templates[@]}; do + pkg=${template#*/} + pkg=${pkg%/*} + if [ ! -L "srcpkgs/$pkg" ]; then + checksum="$(grep -Ehrow [0-9a-f]{$HASHLEN} ${template}|sort|uniq|tr '\n' ' ')" + read -a _my_hashes <<< ${checksum} + i=0 + while [ -n "${_my_hashes[$i]}" ]; do + hash="${_my_hashes[$i]}" + [ -z "${my_hashes[$hash]}" ] && my_hashes[$hash]=$template + i=$((i + 1)) + done + fi + cur=$((cur + 1)) + pnew=$((100 * cur / max)) + if [ $pnew -ne $percent ]; then + percent=$pnew + printf "\rScanning templates : %3d%% (%d/%d)" $percent $cur $max + fi + done + echo + echo "Number of hashes : ${#my_hashes[@]}" + + # + # Collect inodes of all distfiles in $XBPS_SRCDISTDIR + # + declare -A inodes + distfiles=($XBPS_SRCDISTDIR/*/*) + max=${#distfiles[@]} + if [ -z "$max" ]; then + msg_error "No distfiles files found in '$XBPS_SRCDISTDIR'" + exit 1 + fi + cur=0 + percent=-1 + for distfile in ${distfiles[@]}; do + inode=$(stat "$distfile" --printf "%i") + if [ -z "${inodes[$inode]}" ]; then + inodes[$inode]="$distfile" + else + inodes[$inode]+="|$distfile" + fi + cur=$((cur + 1)) + pnew=$((100 * cur / max)) + if [ $pnew -ne $percent ]; then + percent=$pnew + printf "\rCollecting inodes : %3d%% (%d/%d)" $percent $cur $max + fi + done + echo + + hashes=($XBPS_SRCDISTDIR/by_sha256/*) + for file in ${hashes[@]}; do + hash_distfile=${file##*/} + hash=${hash_distfile:0:$HASHLEN} + [ -n "${my_hashes[$hash]}" ] && continue + inode=$(stat "$file" --printf "%i") + echo "Obsolete $hash (inode: $inode)" + ( IFS="|"; for f in ${inodes[$inode]}; do rm -vf "$f"; rmdir "${f%/*}" 2>/dev/null; done ) + done + echo "Done." +} diff --git a/common/xbps-src/shutils/show.sh b/common/xbps-src/shutils/show.sh new file mode 100644 index 0000000..6ae0f4e --- /dev/null +++ b/common/xbps-src/shutils/show.sh @@ -0,0 +1,157 @@ +# vim: set ts=4 sw=4 et: + +show_pkg() { + show_pkg_var "pkgname" "$pkgname" + show_pkg_var "version" "$version" + show_pkg_var "revision" "$revision" + show_pkg_var "distfiles" "$distfiles" 1 + show_pkg_var "checksum" "$checksum" 1 + show_pkg_var "archs" "$archs" 1 + show_pkg_var "maintainer" "${maintainer}" + show_pkg_var "Upstream URL" "$homepage" + show_pkg_var "License(s)" "${license//,/ }" 1 + show_pkg_var "Changelog" "$changelog" + show_pkg_var "build_style" "$build_style" + show_pkg_var "build_helper" "$build_helper" 1 + show_pkg_var "configure_args" "$configure_args" 1 + show_pkg_var "short_desc" "$short_desc" + show_pkg_var "subpackages" "$subpackages" 1 + set -f + show_pkg_var "conf_files" "$conf_files" 1 + set +f + show_pkg_var "replaces" "$replaces" 1 + show_pkg_var "provides" "$provides" 1 + show_pkg_var "conflicts" "$conflicts" 1 + local OIFS="$IFS" + IFS=',' + for var in $1; do + IFS=$OIFS + if [ ${var} != ${var/'*'} ] + then + var="${var/'*'}" + show_pkg_var "$var" "${!var//$'\n'/' '}" + else + show_pkg_var "$var" "${!var}" 1 + fi + done + IFS="$OIFS" + + return 0 +} + +show_pkg_var() { + local _sep i= + local _label="$1" + local _value="$2" + local _always_split="$3" + if [ -n "$_value" ] && [ -n "$_label" ]; then + # on short labels, use more padding so everything lines up + if [ "${#_label}" -lt 7 ]; then + _sep=" " + else + _sep=" " + fi + if [ -n "$_always_split" ] || [[ "$_value" =~ $'\n' ]]; then + for i in ${_value}; do + [ -n "$i" ] && echo "${_label}:${_sep}${i}" + done + else + echo "${_label}:${_sep}${_value}" + fi + fi +} + +show_pkg_deps() { + [ -f "${PKGDESTDIR}/rdeps" ] && cat ${PKGDESTDIR}/rdeps +} + +show_pkg_files() { + [ -d ${PKGDESTDIR} ] && find ${PKGDESTDIR} -print +} + +show_avail() { + check_pkg_arch "$XBPS_CROSS_BUILD" 2>/dev/null +} + +show_eval_dep() { + local f x _pkgname _srcpkg found + local _dep="$1" + local _host="$2" + if [ -z "$CROSS_BUILD" ] || [ -z "$_host" ]; then + # ignore dependency on itself + [[ $_dep == $sourcepkg ]] && return + fi + if [ ! -f $XBPS_SRCPKGDIR/$_dep/template ]; then + msg_error "$pkgver: dependency '$_dep' does not exist!\n" + fi + # ignore virtual dependencies + [[ ${_dep%\?*} != ${_dep#*\?} ]] && _dep=${_dep#*\?} + unset found + # check for subpkgs + for x in ${subpackages}; do + [[ $_dep == $x ]] && found=1 && break + done + [[ $found ]] && return + _pkgname=${_dep/-32bit} + _srcpkg=$(readlink -f ${XBPS_SRCPKGDIR}/${_pkgname}) + _srcpkg=${_srcpkg##*/} + echo $_srcpkg +} + +show_pkg_build_depends() { + local f result + local _deps="$1" + local _hostdeps="$2" + + result=$(mktemp) || exit 1 + + # build time deps + for f in ${_deps}; do + show_eval_dep $f "" >> $result + done + for f in ${_hostdeps}; do + show_eval_dep $f "hostdep" >> $result + done + sort -u $result + rm -f $result +} + +show_pkg_build_deps() { + show_pkg_build_depends "${makedepends} $(setup_pkg_depends '' 1 1)" "${hostmakedepends}" +} + +show_pkg_hostmakedepends() { + show_pkg_build_depends "" "${hostmakedepends}" +} + +show_pkg_makedepends() { + show_pkg_build_depends "${makedepends}" "" +} + +show_pkg_build_options() { + local f opt desc + + [ -z "$PKG_BUILD_OPTIONS" ] && return 0 + + source $XBPS_COMMONDIR/options.description + msg_normal "$pkgver: the following build options are set:\n" + for f in ${PKG_BUILD_OPTIONS}; do + opt="${f#\~}" + eval desc="\${desc_option_${opt}}" + if [[ ${f:0:1} == '~' ]]; then + echo " $opt: $desc (OFF)" + else + printf " " + msg_normal_append "$opt: " + printf "$desc (ON)\n" + fi + done +} + +show_pkg_shlib_provides() { + [ -f "${PKGDESTDIR}/shlib-provides" ] && cat ${PKGDESTDIR}/shlib-provides +} + +show_pkg_shlib_requires() { + [ -f "${PKGDESTDIR}/shlib-requires" ] && cat ${PKGDESTDIR}/shlib-requires +} diff --git a/common/xbps-src/shutils/update_check.sh b/common/xbps-src/shutils/update_check.sh new file mode 100644 index 0000000..e656cf0 --- /dev/null +++ b/common/xbps-src/shutils/update_check.sh @@ -0,0 +1,237 @@ +# vim: set ts=4 sw=4 et: + +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 + + if [ -r $update_override ]; then + . $update_override + if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then + echo "using $XBPS_TARGET_PKG/update overrides" 1>&2 + fi + elif [ -z "$distfiles" ]; then + if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then + echo "NO DISTFILES found for $original_pkgname" 1>&2 + fi + return 0 + fi + + if ! type curl >/dev/null 2>&1; then + echo "ERROR: cannot find \`curl' executable!" + return 1 + fi + + export LC_ALL=C + + if [ -z "$site" ]; then + case "$distfiles" in + # special case those sites provide better source elsewhere + *ftp.gnome.org*|*download.gnome.org*) ;; + *archive.xfce.org*) ;; + *) + printf '%s\n' "$homepage" ;; + esac + for i in $distfiles; do + printf '%s\n' "${i%/*}/" + done + else + printf '%s\n' "$site" + fi | + # filter loop: if version are "folder" name based, + # substitute original url by every folder based ones (expand) + while IFS= read -r url; do + # default case: don't rewrite url + printf '%s\n' "$url" + if [ "$single_directory" ]; then + continue + fi + rx= + urlpfx="${url}" + urlsfx= + dirpfx= + case "$url" in + *.voidlinux.*|\ + *sourceforge.net/sourceforge*|\ + *code.google.com*|*googlecode*|\ + *launchpad.net*|\ + *cpan.*|\ + *pythonhosted.org*|\ + *github.com*|\ + *//gitlab.*|\ + *bitbucket.org*|\ + *ftp.gnome.org*|*download.gnome.org*|\ + *archive.xfce.org*|\ + *kernel.org/pub/linux/kernel/*|\ + *cran.r-project.org/src/contrib*|\ + *rubygems.org*|\ + *crates.io*|\ + *codeberg.org*|\ + *hg.sr.ht*|\ + *software.sil.org*|\ + *git.sr.ht*) + continue + ;; + *) + vdpfx=${vdprefix:-"|v|\\Q$pkgname\\E"} + vdsfx=${vdsuffix:-"|\\.x"} + match=$(grep -Po "^[^/]+//[^/]+(/.+)?/($vdpfx)(?=[-_.0-9]*[0-9](?&2 + fi + skipdirs= + curl -A "xbps-src-update-check/$XBPS_SRC_VERSION" --max-time 10 -Lsk "$urlpfx" | + grep -Po -i "$rx" | + # sort -V places 1.1/ before 1/, but 1A/ before 1.1A/ + sed -e 's:$:A:' -e 's:/A$:A/:' | sort -Vru | sed -e 's:A/$:/A:' -e 's:A$::' | + while IFS= read -r newver; do + newurl="${urlpfx}${newver}${urlsfx}" + if [ "$newurl" = "$url" ]; then + skipdirs=yes + fi + if [ -z "$skipdirs" ]; then + printf '%s\n' "$newurl" + fi + done + fi + done | + while IFS= read -r url; do + rx= + if [ -z "$site" ]; then + case "$url" in + *sourceforge.net/sourceforge*) + pkgurlname="$(printf %s "$url" | cut -d/ -f5)" + url="https://sourceforge.net/projects/$pkgurlname/rss?limit=200";; + *code.google.com*|*googlecode*) + url="https://code.google.com/p/$pkgname/downloads/list";; + *launchpad.net*) + pkgurlname="$(printf %s "$url" | cut -d/ -f4)" + url="https://launchpad.net/$pkgurlname/+download";; + *cpan.*) + pkgname=${pkgname#perl-};; + *pythonhosted.org*) + pkgname=${pkgname#python-} + pkgname=${pkgname#python3-} + url="https://pypi.org/simple/$pkgname";; + *github.com*) + 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.*|*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*) + pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)" + 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](?=.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*) + rx='\b\Q'"${pkgname#R-cran-}"'\E_\K\d+(\.\d+)*(-\d+)?(?=\.tar)';; + *rubygems.org*) + url="https://rubygems.org/gems/${pkgname#ruby-}" + rx='href="/gems/'${pkgname#ruby-}'/versions/\K[\d.]*(?=")' ;; + *crates.io*) + url="https://crates.io/api/v1/crates/${pkgname#rust-}" + rx='/crates/'${pkgname#rust-}'/\K[0-9.]*(?=/download)' ;; + *codeberg.org*) + pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)" + 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" + rx='/archive/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar\.gz")';; + *git.sr.ht*) + pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)" + url="https://git.sr.ht/$pkgurlname/refs/rss.xml" + rx='\Q'"${url%/*}"'\E/(v-?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=)' ;; + *pkgs.fedoraproject.org*) + url="https://pkgs.fedoraproject.org/repo/pkgs/$pkgname" ;; + *software.sil.org/downloads/*) + pkgurlname=$(printf '%s\n' "$url" | cut -d/ -f6) + url="https://software.sil.org/$pkgurlname/download/" + pkgname="${pkgname#font-}" + pkgname="${pkgname#sil-}" + _pkgname="${pkgname//-/}" + rx="($_pkgname|${_pkgname}SIL)[_-]\K[0-9.]+(?=\.tar|\.zip)" ;; + *software.sil.org/*) + pkgname="${pkgname#font-}" + pkgname="${pkgname#sil-}" + _pkgname="${pkgname//-/}" + rx="($_pkgname|${_pkgname}SIL)[_-]\K[0-9.]+(?=\.tar|\.zip)" ;; + esac + fi + + rx=${pattern:-$rx} + rx=${rx:-'(?&2 + fi + continue + fi + + if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then + echo "fetching $url and scanning with $rx" 1>&2 + fi + curl -H 'Accept: text/html,application/xhtml+xml,application/xml,text/plain,application/rss+xml' -A "xbps-src-update-check/$XBPS_SRC_VERSION" --max-time 10 -Lsk "$url" | + grep -Po -i "$rx" + fetchedurls[$url]=yes + done | + tr _ . | + sort -Vu | + { + grep . || echo "NO VERSION found for $original_pkgname" 1>&2 + } | + while IFS= read -r found_version; do + if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then + echo "found version $found_version" + fi + consider=true + p="$ignore " + while [ -n "$p" ]; do + i=${p%% *} + p=${p#* } + case "$found_version" in + $i) + consider=false + if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then + echo "ignored $found_version due to $i" + fi + esac + done + if $consider; then + xbps-uhelper cmpver "$original_pkgname-${version}_1" \ + "$original_pkgname-$(printf %s "$found_version" | tr - .)_1" + if [ $? = 255 ]; then + echo "${original_pkgname}-${version} -> ${original_pkgname}-${found_version}" + fi + fi + done +} diff --git a/common/xbps-src/shutils/update_hash_cache.sh b/common/xbps-src/shutils/update_hash_cache.sh new file mode 100644 index 0000000..4fb5d6b --- /dev/null +++ b/common/xbps-src/shutils/update_hash_cache.sh @@ -0,0 +1,12 @@ +# vim: set ts=4 sw=4 et: + +update_hash_cache() { + local cache="$XBPS_SRCDISTDIR/by_sha256" + local distfile curfile + mkdir -p "$cache" + find "$XBPS_SRCDISTDIR" -type f | grep -v by_sha256 | while read -r distfile; do + cksum=$($XBPS_DIGEST_CMD "$distfile") + curfile="${distfile##*/}" + ln -vf "$distfile" "${cache}/${cksum}_${curfile}" + done +} diff --git a/etc/defaults.conf b/etc/defaults.conf new file mode 100644 index 0000000..f70e4ea --- /dev/null +++ b/etc/defaults.conf @@ -0,0 +1,167 @@ +# --*-- shell --*-- +# +# etc/defaults.conf +# default configuration of etc/conf +# +# DO NOT EDIT THIS FILE DIRECTLY; IT MAY BE REPLACED DURING UPDATES, +# EDIT etc/conf INSTEAD. +# +# To disable an option comment it out, don't set it to another value i.e: +# FOO=no -> wrong +# #FOO=yes -> correct +# +# Please also use ${FOO} style for shell variables because some parsers +# rely on this to work properly. +# + +# [OPTIONAL] +# Use an alternative mirror for remote repositories. This is more +# convenient than modifying etc/xbps.d/repos-remote*.conf. +# +#XBPS_MIRROR=https://repo-us.voidlinux.org/current + +# [OPTIONAL] +# Enable optional arguments to xbps-install(1) for the host system. +# Currently used in the 'binary-bootstrap' and 'bootstrap-update' targets. +# +# NOTE: local repositories are handled automatically by xbps-src, +# and remote repositories can be changed by setting XBPS_MIRROR +# +#XBPS_INSTALL_ARGS="" + +# [OPTIONAL] +# Native Compilation/Preprocessor flags for C/C++/Fortran. Additional settings +# for the target architecture are also declared in common/build-profiles/.sh. +# +XBPS_CFLAGS="-O2 -pipe" +XBPS_CXXFLAGS="${XBPS_CFLAGS}" +XBPS_FFLAGS="${XBPS_CFLAGS}" + +# [OPTIONAL] +# Linker flags passed to the compiler. +# +#XBPS_LDFLAGS="" + +# [REQUIRED] +# Command to execute to gain root privileges when using the `update-sys` +# target to update your system. +# +XBPS_SUCMD="sudo /bin/sh -c" + +# [OPTIONAL] +# Enable or disable ccache when building packages. The ccache directory +# is stored in the hostdir, i.e hostdir/ccache. For go builds this enables +# caching in hostdir/gocache. +# +#XBPS_CCACHE=yes + +# [OPTIONAL] +# Enable or disable distcc when building packages. The distcc directory +# is stored in the hostdir, i.e hostdir/distcc. +# +#XBPS_DISTCC=yes +#XBPS_DISTCC_HOSTS="" + +# [OPTIONAL] +# Number of parallel jobs to execute when building packages that +# use make(1) or alike commands. Defaults to the result of nproc(1). +# If nproc(1) is not available, defaults to 1. +# +#XBPS_MAKEJOBS=4 + +# [OPTIONAL] +# Enable recording git revisions in final binary packages; enable this +# if you are sure the package you are building is available in the +# void-packages git repository. +# +#XBPS_USE_GIT_REVS=yes + +# [OPTIONAL] +# Enable running the (optional) do_check() function of a package. +# When set to 'full', will enable further testing for some packages. +# +#XBPS_CHECK_PKGS=yes +#XBPS_CHECK_PKGS=full + +# [OPTIONAL] +# Enable building -dbg subpackages with debugging symbols. Please note +# that building with debugging symbols make take a long while in some +# packages even on computers with a fast CPU; as well as needs lots of +# RAM to properly build some packages. +# +#XBPS_DEBUG_PKGS=yes + +# [OPTIONAL] +# Set the package compression format. See xbps-create(1) for available formats. +# +#XBPS_PKG_COMPTYPE=type + +# [OPTIONAL] +# Set the repository compression format. See xbps-rindex(1) for available formats. +# +#XBPS_REPO_COMPTYPE=type + +# [OPTIONAL] +# Enable or disable global package build options, these options apply +# to all packages that support the matching options. +# +# To enable an option just define its option name; to disable an option +# prefix it with ~. Options must be delimited by commas, i.e 'opt,~opt2,opt3,~opt4' +# +#XBPS_PKG_OPTIONS=opt,~opt2,opt3,~opt4 + +# [OPTIONAL] +# Enable or disable package build options. Note that per package build options +# override the global options defined above for the matching package. +# +#XBPS_PKG_OPTIONS_foo=opt,~opt2,opt3,~opt4 + +# [OPTIONAL] +# Enable building package locally that are restricted legally for redistribution. +# NOTE: you can't distribute the sources or binaries for such kind of packages. +# +#XBPS_ALLOW_RESTRICTED=yes + +# [OPTIONAL] +# Set the preferred chroot style. Available styles at common/chroot-style/*.sh: +# +# - uunshare (uses xbps-uunshare(1), user namespaces) +# - uchroot (uses xbps-uchroot(1), namespaces, setgid) +# - bwrap (uses bwrap, external, does not need special permissions) +# - ethereal (uses root, needs no permissions, for disposable containers) +# +# The order is already set as shown above, but can be overriden below. +# Additional arguments to the chroot style can be passed in via XBPS_CHROOT_CMD_ARGS. +# +#XBPS_CHROOT_CMD=uchroot +#XBPS_CHROOT_CMD_ARGS="" + +# [OPTIONAL] +# Enable to use the standard mtime of files. Otherwise it will be rewritten to +# the HEAD commit time. Requires git when disabled. +# +#XBPS_USE_BUILD_MTIME=yes + +# [OPTIONAL] +# Enable continuous integration specific mode of operation. Currently this +# disables do_check for some packages. +# +#XBPS_BUILD_ENVIRONMENT=void-packages-ci + +# [OPTIONAL] +# When using the 'ethereal' chroot-style this switch must be activated, it is +# meant as safeguard against users casually destroying their systems +# +#XBPS_ALLOW_CHROOT_BREAKOUT=yes + +# [OPTIONAL] +# Skip building package if it exists in local repository, emitting warning. +# When unset, newly build package overwrites the older one. +# +#XBPS_PRESERVE_PKGS=yes + +# [OPTIONAL] +# Show more detailed output in ./xbps-src update-check. Useful for debugging. +# This can also be set or exported as a regular environment variable. +# +#XBPS_UPDATE_CHECK_VERBOSE=yes diff --git a/etc/defaults.virtual b/etc/defaults.virtual new file mode 100644 index 0000000..f399b12 --- /dev/null +++ b/etc/defaults.virtual @@ -0,0 +1,39 @@ +# --*-- shell --*-- +# +# etc/defaults.virtual +# default configuration of etc/virtual +# +# DO NOT EDIT THIS FILE DIRECTLY; IT MAY BE REPLACED DURING UPDATES, +# EDIT etc/virtual INSTEAD. +# +# This file specifies a mapping between virtual packages and real packages +# available in the source packages collection (srcpkgs). +# +# The format uses 2 arguments delimited by a blank: +# +# When building a package with "xbps-src", those dependencies declared like +# "virtual?foo" will use the replacement package defined in `etc/virtual`. +# +# NOTE: this mapping is only there to be able to build a default package +# to resolve the virtual package dependency later on with xbps-install(1). +# +# NOTE: Create your own etc/virtual file to override these defaults. + +awk gawk +emacs emacs +java-environment openjdk8 +java-runtime openjdk8-jre +libudev eudev-libudev +nodejs-runtime nodejs +ntp-daemon chrony +phonon-backend phonon-backend-gstreamer +phonon-qt5-backend phonon-qt5-backend-gstreamer +pipewire-session-manager pipewire-session-manager-bootstrap +rkt-stage1 rkt-stage1-coreos +smtp-server opensmtpd +tex texlive +xserver-abi-input xorg-server +xserver-abi-video xorg-server +libGL libglvnd +libEGL libglvnd +libGLES libglvnd diff --git a/etc/xbps.d/repos-local-x86_64-multilib.conf b/etc/xbps.d/repos-local-x86_64-multilib.conf new file mode 100644 index 0000000..64ece65 --- /dev/null +++ b/etc/xbps.d/repos-local-x86_64-multilib.conf @@ -0,0 +1,5 @@ +# DON'T EDIT THIS FILE +# x86_64/glibc local repositories +repository=/host/binpkgs/multilib/bootstrap +repository=/host/binpkgs/multilib +repository=/host/binpkgs/multilib/nonfree diff --git a/etc/xbps.d/repos-local.conf b/etc/xbps.d/repos-local.conf new file mode 100644 index 0000000..6b89e36 --- /dev/null +++ b/etc/xbps.d/repos-local.conf @@ -0,0 +1,6 @@ +# DON'T EDIT THIS FILE +# Local repositories +repository=/host/binpkgs/bootstrap +repository=/host/binpkgs +repository=/host/binpkgs/nonfree +repository=/host/binpkgs/debug diff --git a/etc/xbps.d/repos-remote-aarch64-musl.conf b/etc/xbps.d/repos-remote-aarch64-musl.conf new file mode 100644 index 0000000..58c5444 --- /dev/null +++ b/etc/xbps.d/repos-remote-aarch64-musl.conf @@ -0,0 +1,5 @@ +# aarch64 voidlinux remote repositories +repository=https://repo-default.voidlinux.org/current/aarch64/bootstrap +repository=https://repo-default.voidlinux.org/current/aarch64 +repository=https://repo-default.voidlinux.org/current/aarch64/nonfree +repository=https://repo-default.voidlinux.org/current/aarch64/debug diff --git a/etc/xbps.d/repos-remote-aarch64.conf b/etc/xbps.d/repos-remote-aarch64.conf new file mode 100644 index 0000000..58c5444 --- /dev/null +++ b/etc/xbps.d/repos-remote-aarch64.conf @@ -0,0 +1,5 @@ +# aarch64 voidlinux remote repositories +repository=https://repo-default.voidlinux.org/current/aarch64/bootstrap +repository=https://repo-default.voidlinux.org/current/aarch64 +repository=https://repo-default.voidlinux.org/current/aarch64/nonfree +repository=https://repo-default.voidlinux.org/current/aarch64/debug diff --git a/etc/xbps.d/repos-remote-musl.conf b/etc/xbps.d/repos-remote-musl.conf new file mode 100644 index 0000000..cde4832 --- /dev/null +++ b/etc/xbps.d/repos-remote-musl.conf @@ -0,0 +1,5 @@ +# voidlinux remote repositories (musl) +repository=https://repo-default.voidlinux.org/current/musl/bootstrap +repository=https://repo-default.voidlinux.org/current/musl +repository=https://repo-default.voidlinux.org/current/musl/nonfree +repository=https://repo-default.voidlinux.org/current/musl/debug diff --git a/etc/xbps.d/repos-remote-x86_64-multilib.conf b/etc/xbps.d/repos-remote-x86_64-multilib.conf new file mode 100644 index 0000000..aa1a24a --- /dev/null +++ b/etc/xbps.d/repos-remote-x86_64-multilib.conf @@ -0,0 +1,4 @@ +# voidlinux remote repositories (x86_64/glibc) +repository=https://repo-default.voidlinux.org/current/multilib/bootstrap +repository=https://repo-default.voidlinux.org/current/multilib +repository=https://repo-default.voidlinux.org/current/multilib/nonfree diff --git a/etc/xbps.d/repos-remote.conf b/etc/xbps.d/repos-remote.conf new file mode 100644 index 0000000..e171ed5 --- /dev/null +++ b/etc/xbps.d/repos-remote.conf @@ -0,0 +1,5 @@ +# voidlinux remote repositories (glibc) +repository=https://repo-default.voidlinux.org/current/bootstrap +repository=https://repo-default.voidlinux.org/current +repository=https://repo-default.voidlinux.org/current/nonfree +repository=https://repo-default.voidlinux.org/current/debug diff --git a/srcpkgs/base-files/INSTALL b/srcpkgs/base-files/INSTALL new file mode 100644 index 0000000..c9e0209 --- /dev/null +++ b/srcpkgs/base-files/INSTALL @@ -0,0 +1,80 @@ +make_system_dirs() { + # + # Install FHS system directories. + # + for d in boot etc etc/modprobe.d etc/modules-load.d \ + etc/skel home dev proc usr mnt opt sys media var run/lock; do + [ ! -d ${d} ] && install -d ${d} + done + + [ ! -d root ] && install -dm750 root + + # Don't try to create var/mail in the correct place if the user + # is updating from an old system that has var/mail as a symlink + [ ! -L var/mail ] && [ ! -d var/mail ] && install -dm1777 var/mail + + [ ! -d var/spool ] && install -d var/spool + + for d in local local/bin local/sbin local/include local/lib \ + bin include lib src; do + [ ! -d usr/${d} ] && install -d usr/${d} + done + + for d in locale misc terminfo zoneinfo doc info; do + [ ! -d usr/share/${d} ] && install -d usr/share/${d} + [ ! -d usr/local/share/${d} ] && install -d usr/local/share/${d} + done + + for d in 1 2 3 4 5 6 7 8; do + [ ! -d usr/share/man/man${d} ] && \ + install -d usr/share/man/man${d} + [ ! -d usr/local/share/man/man${d} ] && \ + install -d usr/local/share/man/man${d} + done + + for d in empty log opt cache lib; do + [ ! -d var/${d} ] && install -d var/${d} + done + + # Create /var/run and /var/lock symlinks. + for d in run lock; do + if [ ! -h "var/${d}" -a -d "var/${d}" ]; then + echo "/var/${d} must not be a directory, exiting!" + exit 1 + fi + done + + cd var + ln -sf ../run . + ln -sf ../run/lock . + [ ! -d spool/mail ] && ln -sfn ../mail spool/mail + if [ -L spool/mail/mail -a "$(readlink spool/mail/mail)" = spool/mail ]; then + # Get rid of broken symlink created by older versions of base-files. + rm spool/mail/mail + fi + cd .. + + install -dm1777 tmp + install -dm1777 var/tmp + + # remove leftover polkit rules from live systems + [ -e etc/polkit-1/rules.d/void-live.rules ] && rm etc/polkit-1/rules.d/void-live.rules + + # fix bad permissions from installer with umask 077 + chmod 755 var var/db var/db/xbps usr usr/share +} + +case "${ACTION}" in +pre) + echo "Creating system directories/symlinks..." + make_system_dirs + ;; +post) + echo "Creating system directories/symlinks..." + make_system_dirs + # Enable shadow passwd/groups. + if [ -x bin/pwconv -a -x bin/grpconv -a "$(id -u)" -eq 0 ]; then + pwconv && grpconv + fi + ;; +esac diff --git a/srcpkgs/base-files/files/66-kvm.rules b/srcpkgs/base-files/files/66-kvm.rules new file mode 100644 index 0000000..582fc57 --- /dev/null +++ b/srcpkgs/base-files/files/66-kvm.rules @@ -0,0 +1 @@ +KERNEL=="kvm", GROUP="kvm", MODE="0660", OPTIONS+="static_node=kvm" diff --git a/srcpkgs/base-files/files/90-usbmon.rules b/srcpkgs/base-files/files/90-usbmon.rules new file mode 100644 index 0000000..10a127c --- /dev/null +++ b/srcpkgs/base-files/files/90-usbmon.rules @@ -0,0 +1 @@ +SUBSYSTEM=="usbmon", GROUP="usbmon", MODE="640" diff --git a/srcpkgs/base-files/files/DIR_COLORS b/srcpkgs/base-files/files/DIR_COLORS new file mode 100644 index 0000000..d24a5a8 --- /dev/null +++ b/srcpkgs/base-files/files/DIR_COLORS @@ -0,0 +1,184 @@ +# Configuration file for the color ls utility +# This file goes in the /etc directory, and must be world readable. +# You can copy this file to .dir_colors in your $HOME directory to override +# the system defaults. + +# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not +# pipes. 'all' adds color characters to all output. 'none' shuts colorization +# off. +COLOR tty + +# Extra command line options for ls go here. +# Basically these ones are: +# -F = show '/' for dirs, '*' for executables, etc. +# -T 0 = don't trust tab spacing when formatting ls output. +OPTIONS -F -T 0 + +# Below, there should be one TERM entry for each termtype that is colorizable +TERM Eterm +TERM ansi +TERM color-xterm +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cons25 +TERM console +TERM cygwin +TERM dtterm +TERM eterm-color +TERM gnome +TERM konsole +TERM kterm +TERM linux +TERM linux-c +TERM mach-color +TERM mlterm +TERM putty +TERM rxvt +TERM rxvt-cygwin +TERM rxvt-cygwin-native +TERM rxvt-unicode +TERM screen +TERM screen-256color +TERM screen-bce +TERM screen-w +TERM screen.linux +TERM vt100 +TERM xterm +TERM xterm-16color +TERM xterm-256color +TERM xterm-88color +TERM xterm-color +TERM xterm-debian + +# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output) +EIGHTBIT 1 + +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +NORMAL 00 # global default, although everything should be something. +FILE 00 # normal file +DIR 01;34 # directory +LINK 01;36 # symbolic link (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +FIFO 40;33 # pipe +SOCK 01;35 # socket +DOOR 01;35 # door +BLK 40;33;01 # block device driver +CHR 40;33;01 # character device driver +ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file +MISSING 01;05;37;41 # ... and the files they point to +SETUID 37;41 # file that is setuid (u+s) +SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable + + +# This is for files with execute permission: +EXEC 01;32 + +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') +# executables (bright green) +#.cmd 01;32 +#.exe 01;32 +#.com 01;32 +#.btm 01;32 +#.bat 01;32 +#.sh 01;32 +#.csh 01;32 + # archives or compressed (bright red) +.tar 01;31 +.tgz 01;31 +.svgz 01;31 +.arj 01;31 +.taz 01;31 +.lzh 01;31 +.lzma 01;31 +.zip 01;31 +.z 01;31 +.Z 01;31 +.dz 01;31 +.gz 01;31 +.bz2 01;31 +.tbz2 01;31 +.bz 01;31 +.tz 01;31 +.deb 01;31 +.rpm 01;31 +.jar 01;31 +.rar 01;31 +.ace 01;31 +.zoo 01;31 +.cpio 01;31 +.7z 01;31 +.rz 01;31 +# image formats (magenta) +.jpg 01;35 +.jpeg 01;35 +.gif 01;35 +.bmp 01;35 +.pbm 01;35 +.pgm 01;35 +.ppm 01;35 +.tga 01;35 +.xbm 01;35 +.xpm 01;35 +.tif 01;35 +.tiff 01;35 +.png 01;35 +.mng 01;35 +.pcx 01;35 +.mov 01;35 +.mpg 01;35 +.mpeg 01;35 +.m2v 01;35 +.mkv 01;35 +.ogm 01;35 +.mp4 01;35 +.m4v 01;35 +.mp4v 01;35 +.vob 01;35 +.qt 01;35 +.nuv 01;35 +.wmv 01;35 +.asf 01;35 +.rm 01;35 +.rmvb 01;35 +.flc 01;35 +.avi 01;35 +.fli 01;35 +.gl 01;35 +.dl 01;35 +.xcf 01;35 +.xwd 01;35 +.yuv 01;35 +.svg 01;35 +# audio formats (cyan) +.aac 00;36 +.au 00;36 +.flac 00;36 +.mid 00;36 +.midi 00;36 +.mka 00;36 +.mp3 00;36 +.mpc 00;36 +.ogg 00;36 +.ra 00;36 +.wav 00;36 diff --git a/srcpkgs/base-files/files/DIR_COLORS.256color b/srcpkgs/base-files/files/DIR_COLORS.256color new file mode 100644 index 0000000..0e96e50 --- /dev/null +++ b/srcpkgs/base-files/files/DIR_COLORS.256color @@ -0,0 +1,163 @@ +# Configuration file for the 256color ls utility +# This file goes in the /etc directory, and must be world readable. +# You can copy this file to .dir_colors in your $HOME directory to override +# the system defaults. +# In the case that you are not satisfied with supplied colors, please +# submit your color configuration or attach your file with colors readable +# on ALL color background schemas (white,gray,black) to RedHat Bugzilla +# ticket on https://bugzilla.redhat.com/show_bug.cgi?id=429121 . TIA. +# Please just keep ls color conventions from 8 color scheme. + +# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not +# pipes. 'all' adds color characters to all output. 'none' shuts colorization +# off. +COLOR tty + +# Extra command line options for ls go here. +# Basically these ones are: +# -F = show '/' for dirs, '*' for executables, etc. +# -T 0 = don't trust tab spacing when formatting ls output. +OPTIONS -F -T 0 + +# Below, there should be one TERM entry for each termtype that is colorizable +TERM alacritty +TERM putty-256color +TERM rxvt-256color +TERM screen-256color +TERM xterm-256color +TERM gnome-256color + +# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output) +EIGHTBIT 1 + +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color(8 colors mode) codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color(8 colors mode) codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +# Text color(256 colors mode) codes: +# Valid syntax for text 256color is 38;5; , where color number +# is number between 0 and 255. +# You may find following command useful to search the best one for you: +# for ((x=0; x<=255; x++));do echo -e "${x}:\033[38;5;${x}mcolor\033[000m";done +# Background color(256 colors mode) codes: +# Valid syntax for background 256color is 48;5; , where +# color number is number between 0 and 255. +# You may find following command useful to search the best one for you: +# for ((x=0; x<=255; x++));do echo -e "${x}:\033[48;5;${x}mcolor\033[000m";done + +NORMAL 00 # global default, although everything should be something. +FILE 00 # normal file +DIR 01;38;5;27 # directory +LINK 01;38;5;51 # symbolic link (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +FIFO 40;38;5;11 # pipe +SOCK 01;38;5;13 # socket +DOOR 01;38;5;5 # door +BLK 01;48;5;232;38;5;11 # block device driver +CHR 01;48;5;232;38;5;3 # character device driver +ORPHAN 01;48;5;232;38;5;9 # symlink to nonexistent file, or non-stat'able file +MISSING 01;05;48;5;232;38;5;15 # ... and the files they point to +SETUID 48;5;196;38;5;15 # file that is setuid (u+s) +SETGID 48;5;11;38;5;16 # file that is setgid (g+s) +CAPABILITY 48;5;196;38;5;226 # file with capability +STICKY_OTHER_WRITABLE 48;5;10;38;5;16 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 48;5;10;38;5;21 # dir that is other-writable (o+w) and not sticky +STICKY 48;5;21;38;5;15 # dir with the sticky bit set (+t) and not other-writable + +# This is for files with execute permission: +EXEC 01;38;5;34 + +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') +# executables (bright green) +#.cmd 01;38;5;34 +#.exe 01;38;5;34 +#.com 01;38;5;34 +#.btm 01;38;5;34 +#.bat 01;38;5;34 +#.sh 01;38;5;34 +#.csh 01;38;5;34 + # archives or compressed (bright red) +.tar 01;38;5;9 +.tgz 01;38;5;9 +.svgz 01;38;5;9 +.arj 01;38;5;9 +.taz 01;38;5;9 +.lzh 01;38;5;9 +.lzma 01;38;5;9 +.zip 01;38;5;9 +.z 01;38;5;9 +.Z 01;38;5;9 +.dz 01;38;5;9 +.gz 01;38;5;9 +.bz2 01;38;5;9 +.tbz2 01;38;5;9 +.bz 01;38;5;9 +.tz 01;38;5;9 +.deb 01;38;5;9 +.rpm 01;38;5;9 +.jar 01;38;5;9 +.rar 01;38;5;9 +.ace 01;38;5;9 +.zoo 01;38;5;9 +.cpio 01;38;5;9 +.7z 01;38;5;9 +.rz 01;38;5;9 +# image formats (magenta) +.jpg 01;38;5;13 +.jpeg 01;38;5;13 +.gif 01;38;5;13 +.bmp 01;38;5;13 +.pbm 01;38;5;13 +.pgm 01;38;5;13 +.ppm 01;38;5;13 +.tga 01;38;5;13 +.xbm 01;38;5;13 +.xpm 01;38;5;13 +.tif 01;38;5;13 +.tiff 01;38;5;13 +.png 01;38;5;13 +.mng 01;38;5;13 +.pcx 01;38;5;13 +.mov 01;38;5;13 +.mpg 01;38;5;13 +.mpeg 01;38;5;13 +.m2v 01;38;5;13 +.mkv 01;38;5;13 +.ogm 01;38;5;13 +.mp4 01;38;5;13 +.m4v 01;38;5;13 +.mp4v 01;38;5;13 +.vob 01;38;5;13 +.qt 01;38;5;13 +.nuv 01;38;5;13 +.wmv 01;38;5;13 +.asf 01;38;5;13 +.rm 01;38;5;13 +.rmvb 01;38;5;13 +.flc 01;38;5;13 +.avi 01;38;5;13 +.fli 01;38;5;13 +.gl 01;38;5;13 +.dl 01;38;5;13 +.xcf 01;38;5;13 +.xwd 01;38;5;13 +.yuv 01;38;5;13 +.svg 01;38;5;13 +# audio formats (cyan) +.aac 00;38;5;45 +.au 00;38;5;45 +.flac 00;38;5;45 +.mid 00;38;5;45 +.midi 00;38;5;45 +.mka 00;38;5;45 +.mp3 00;38;5;45 +.mpc 00;38;5;45 +.ogg 00;38;5;45 +.ra 00;38;5;45 +.wav 00;38;5;45 diff --git a/srcpkgs/base-files/files/DIR_COLORS.xterm b/srcpkgs/base-files/files/DIR_COLORS.xterm new file mode 100644 index 0000000..dec01f9 --- /dev/null +++ b/srcpkgs/base-files/files/DIR_COLORS.xterm @@ -0,0 +1,165 @@ +# Configuration file for the color ls utility +# This file goes in the /etc directory, and must be world readable. +# You can copy this file to .dir_colors in your $HOME directory to override +# the system defaults. + +# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not +# pipes. 'all' adds color characters to all output. 'none' shuts colorization +# off. +COLOR tty + +# Extra command line options for ls go here. +# Basically these ones are: +# -F = show '/' for dirs, '*' for executables, etc. +# -T 0 = don't trust tab spacing when formatting ls output. +OPTIONS -F -T 0 + +# Below, there should be one TERM entry for each termtype that is colorizable +TERM linux +TERM console +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cons25 +TERM xterm +TERM xterm-16color +TERM xterm-88color +TERM xterm-256color +TERM rxvt +TERM rxvt-unicode +TERM xterm-color +TERM color-xterm +TERM vt100 +TERM dtterm +TERM color_xterm + +# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output) +EIGHTBIT 1 + +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +NORMAL 00 # global default, although everything should be something. +FILE 00 # normal file +DIR 00;34 # directory +LINK 00;36 # symbolic link (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +FIFO 40;33 # pipe +SOCK 00;35 # socket +DOOR 00;35 # door +BLK 40;33;01 # block device driver +CHR 40;33;01 # character device driver +ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file +MISSING 01;05;37;41 # ... and the files they point to +SETUID 37;41 # file that is setuid (u+s) +SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable + + +# This is for files with execute permission: +EXEC 00;32 + +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') +#.cmd 00;32 # executables (green) +#.exe 00;32 +#.com 00;32 +#.btm 00;32 +#.bat 00;32 +#.sh 00;32 +#.csh 00;32 + # archives or compressed (red) +.tar 00;31 +.tgz 00;31 +.svgz 00;31 +.arj 00;31 +.taz 00;31 +.lzh 00;31 +.lzma 00;31 +.zip 00;31 +.z 00;31 +.Z 00;31 +.dz 00;31 +.gz 00;31 +.bz2 00;31 +.tbz2 00;31 +.bz 00;31 +.tz 00;31 +.deb 00;31 +.rpm 00;31 +.jar 00;31 +.rar 00;31 +.ace 00;31 +.zoo 00;31 +.cpio 00;31 +.7z 00;31 +.rz 00;31 +# image formats (magenta) +.jpg 00;35 +.jpeg 00;35 +.gif 00;35 +.bmp 00;35 +.pbm 00;35 +.pgm 00;35 +.ppm 00;35 +.tga 00;35 +.xbm 00;35 +.xpm 00;35 +.tif 00;35 +.tiff 00;35 +.png 00;35 +.mng 00;35 +.pcx 00;35 +.mov 00;35 +.mpg 00;35 +.mpeg 00;35 +.m2v 00;35 +.mkv 00;35 +.ogm 00;35 +.mp4 00;35 +.m4v 00;35 +.mp4v 00;35 +.vob 00;35 +.qt 00;35 +.nuv 00;35 +.wmv 00;35 +.asf 00;35 +.rm 00;35 +.rmvb 00;35 +.flc 00;35 +.avi 00;35 +.fli 00;35 +.gl 00;35 +.dl 00;35 +.xcf 00;35 +.xwd 00;35 +.yuv 00;35 +.svg 00;35 +# audio formats (cyan) +.aac 00;36 +.au 00;36 +.flac 00;36 +.mid 00;36 +.midi 00;36 +.mka 00;36 +.mp3 00;36 +.mpc 00;36 +.ogg 00;36 +.ra 00;36 +.wav 00;36 diff --git a/srcpkgs/base-files/files/blacklist.conf b/srcpkgs/base-files/files/blacklist.conf new file mode 100644 index 0000000..561645d --- /dev/null +++ b/srcpkgs/base-files/files/blacklist.conf @@ -0,0 +1,31 @@ +# +# Listing a module here prevents the hotplug scripts from loading it. +# Usually that'd be so that some other driver will bind it instead, +# no matter which driver happens to get probed first.  Sometimes user +# mode tools can also control driver binding. +# +# Syntax: driver name alone (without any spaces) on a line. Other +# lines are ignored. + + +#watchdog drivers +blacklist i8xx_tco + +# framebuffer drivers +blacklist radeonfb +blacklist cirrusfb +blacklist intelfb +blacklist kyrofb +blacklist hgafb +blacklist nvidiafb +blacklist rivafb +blacklist neofb +blacklist tridentfb +blacklist vga16fb + +# ISDN - see bugs 154799, 159068 +blacklist hisax +blacklist hisax_fcpcipnp + +# sound drivers +blacklist snd-pcsp diff --git a/srcpkgs/base-files/files/bpf.conf b/srcpkgs/base-files/files/bpf.conf new file mode 100644 index 0000000..faefda3 --- /dev/null +++ b/srcpkgs/base-files/files/bpf.conf @@ -0,0 +1,2 @@ +# Block unprivileged use of eBPF +kernel.unprivileged_bpf_disabled=1 diff --git a/srcpkgs/base-files/files/colorls.sh b/srcpkgs/base-files/files/colorls.sh new file mode 100644 index 0000000..81f722d --- /dev/null +++ b/srcpkgs/base-files/files/colorls.sh @@ -0,0 +1,40 @@ +# color-ls initialization + +#when USER_LS_COLORS defined do not override user LS_COLORS, but use them. +if [ -z "$USER_LS_COLORS" ]; then + + alias ll='ls -l' 2>/dev/null + alias l.='ls -d .*' 2>/dev/null + + + # Skip the rest for noninteractive shells. + [ -z "$PS1" ] && return + + COLORS= + + for colors in "$HOME/.dir_colors.$TERM" "$HOME/.dircolors.$TERM" \ + "$HOME/.dir_colors" "$HOME/.dircolors"; do + [ -e "$colors" ] && COLORS="$colors" && break + done + + [ -z "$COLORS" ] && [ -e "/etc/colors/DIR_COLORS.256color" ] && \ + [ "x`tput colors 2>/dev/null`" = "x256" ] && \ + COLORS="/etc/colors/DIR_COLORS.256color" + + if [ -z "$COLORS" ]; then + for colors in "/etc/colors/DIR_COLORS.$TERM" "/etc/colors/DIR_COLORS" ; do + [ -e "$colors" ] && COLORS="$colors" && break + done + fi + + # Existence of $COLORS already checked above. + [ -n "$COLORS" ] || return + + eval `dircolors --sh "$COLORS" 2>/dev/null` + [ -z "$LS_COLORS" ] && return + grep -Eqi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null && return +fi + +alias ll='ls -l --color=auto' 2>/dev/null +alias l.='ls -d .* --color=auto' 2>/dev/null +alias ls='ls --color=auto' 2>/dev/null diff --git a/srcpkgs/base-files/files/crypttab b/srcpkgs/base-files/files/crypttab new file mode 100644 index 0000000..196b0d6 --- /dev/null +++ b/srcpkgs/base-files/files/crypttab @@ -0,0 +1,13 @@ +# crypttab: mappings for encrypted partitions +# +# Each mapped device will be created in /dev/mapper, so your /etc/fstab +# should use the /dev/mapper/ paths for encrypted devices. +# +# NOTE: Do not list your root (/) partition here. + +# +# home /dev/hda4 /etc/mypassword1 +# data1 /dev/hda3 /etc/mypassword2 +# data2 /dev/hda5 /etc/cryptfs.key +# swap /dev/hdx4 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256 +# vol /dev/hdb7 none diff --git a/srcpkgs/base-files/files/dot_bash_logout b/srcpkgs/base-files/files/dot_bash_logout new file mode 100644 index 0000000..af7c6fd --- /dev/null +++ b/srcpkgs/base-files/files/dot_bash_logout @@ -0,0 +1,2 @@ +# ~/.bash_logout + diff --git a/srcpkgs/base-files/files/dot_bash_profile b/srcpkgs/base-files/files/dot_bash_profile new file mode 100644 index 0000000..6d8c25b --- /dev/null +++ b/srcpkgs/base-files/files/dot_bash_profile @@ -0,0 +1,4 @@ +# .bash_profile + +# Get the aliases and functions +[ -f $HOME/.bashrc ] && . $HOME/.bashrc diff --git a/srcpkgs/base-files/files/dot_bashrc b/srcpkgs/base-files/files/dot_bashrc new file mode 100644 index 0000000..d9d0ac7 --- /dev/null +++ b/srcpkgs/base-files/files/dot_bashrc @@ -0,0 +1,7 @@ +# .bashrc + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + +alias ls='ls --color=auto' +PS1='[\u@\h \W]\$ ' diff --git a/srcpkgs/base-files/files/dot_inputrc b/srcpkgs/base-files/files/dot_inputrc new file mode 100644 index 0000000..55e23de --- /dev/null +++ b/srcpkgs/base-files/files/dot_inputrc @@ -0,0 +1 @@ +$include /etc/inputrc diff --git a/srcpkgs/base-files/files/dracut.conf.d.voidlinux.conf b/srcpkgs/base-files/files/dracut.conf.d.voidlinux.conf new file mode 100644 index 0000000..5d928a9 --- /dev/null +++ b/srcpkgs/base-files/files/dracut.conf.d.voidlinux.conf @@ -0,0 +1,7 @@ +# +# Void Linux default settings for dracut. +# +# Don't edit this file, it will be overwritten on next update. +# +add_dracutmodules+=" drm " +stdloglvl=4 diff --git a/srcpkgs/base-files/files/fstab b/srcpkgs/base-files/files/fstab new file mode 100644 index 0000000..d0ee4e9 --- /dev/null +++ b/srcpkgs/base-files/files/fstab @@ -0,0 +1,5 @@ +# +# See fstab(5). +# +# +tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0 diff --git a/srcpkgs/base-files/files/group b/srcpkgs/base-files/files/group new file mode 100644 index 0000000..455c937 --- /dev/null +++ b/srcpkgs/base-files/files/group @@ -0,0 +1,30 @@ +root:x:0: +bin:x:1: +sys:x:2: +kmem:x:3: +wheel:x:4: +tty:x:5: +tape:x:6: +daemon:x:7: +floppy:x:8: +disk:x:9: +lp:x:10: +dialout:x:11: +audio:x:12: +video:x:13: +utmp:x:14: +adm:x:15: +cdrom:x:16: +optical:x:17: +mail:x:18: +storage:x:19: +scanner:x:20: +network:x:21: +kvm:x:24: +input:x:25: +plugdev:x:26: +usbmon:x:27: +sgx:x:28: +nogroup:x:99: +users:x:100: +xbuilder:x:101: diff --git a/srcpkgs/base-files/files/host.conf b/srcpkgs/base-files/files/host.conf new file mode 100644 index 0000000..cf52fe5 --- /dev/null +++ b/srcpkgs/base-files/files/host.conf @@ -0,0 +1,8 @@ +# +# /etc/host.conf +# + +order hosts,bind +multi on + +# End of file diff --git a/srcpkgs/base-files/files/hosts b/srcpkgs/base-files/files/hosts new file mode 100644 index 0000000..745b2d5 --- /dev/null +++ b/srcpkgs/base-files/files/hosts @@ -0,0 +1,9 @@ +# +# /etc/hosts: static lookup table for host names +# + +# +127.0.0.1 localhost.localdomain localhost +::1 localhost.localdomain localhost ip6-localhost + +# End of file diff --git a/srcpkgs/base-files/files/inputrc b/srcpkgs/base-files/files/inputrc new file mode 100644 index 0000000..5253889 --- /dev/null +++ b/srcpkgs/base-files/files/inputrc @@ -0,0 +1,66 @@ +# /etc/inputrc - global inputrc for libreadline +# See readline(3readline) and `info rluserman' for more information. + +# Be 8 bit clean. +set input-meta on +set output-meta on + +# To allow the use of 8bit-characters like the german umlauts, uncomment +# the line below. However this makes the meta key not work as a meta key, +# which is annoying to those which don't need to type in 8-bit characters. + +# set convert-meta off + +# try to enable the application keypad when it is called. Some systems +# need this to enable the arrow keys. +# set enable-keypad on + +# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys + +# do not bell on tab-completion +# set bell-style none +# set bell-style visible + +# some defaults / modifications for the emacs mode +$if mode=emacs + +# allow the use of the Home/End keys +"\e[1~": beginning-of-line +"\e[4~": end-of-line + +# allow the use of the Delete/Insert keys +"\e[3~": delete-char +"\e[2~": quoted-insert + +# mappings for "page up" and "page down" to step to the beginning/end +# of the history +# "\e[5~": beginning-of-history +# "\e[6~": end-of-history + +# alternate mappings for "page up" and "page down" to search the history +# "\e[5~": history-search-backward +# "\e[6~": history-search-forward + +# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving +"\e[1;5C": forward-word +"\e[1;5D": backward-word +"\e[5C": forward-word +"\e[5D": backward-word +"\e\e[C": forward-word +"\e\e[D": backward-word + +$if term=rxvt +"\e[8~": end-of-line +"\eOc": forward-word +"\eOd": backward-word +$endif + +# for non RH/Debian xterm, can't hurt for RH/Debian xterm +# "\eOH": beginning-of-line +# "\eOF": end-of-line + +# for freebsd console +# "\e[H": beginning-of-line +# "\e[F": end-of-line + +$endif diff --git a/srcpkgs/base-files/files/issue b/srcpkgs/base-files/files/issue new file mode 100644 index 0000000..a98d924 --- /dev/null +++ b/srcpkgs/base-files/files/issue @@ -0,0 +1,2 @@ +EvolutionOS \r (\n) (\l) + diff --git a/srcpkgs/base-files/files/ld.so.lib32.conf b/srcpkgs/base-files/files/ld.so.lib32.conf new file mode 100644 index 0000000..9b08c3f --- /dev/null +++ b/srcpkgs/base-files/files/ld.so.lib32.conf @@ -0,0 +1 @@ +/usr/lib32 diff --git a/srcpkgs/base-files/files/licenses/Apache-2.0 b/srcpkgs/base-files/files/licenses/Apache-2.0 new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/Apache-2.0 @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/srcpkgs/base-files/files/licenses/Artistic b/srcpkgs/base-files/files/licenses/Artistic new file mode 100644 index 0000000..5f22124 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/Artistic @@ -0,0 +1,131 @@ + + + + + The "Artistic License" + + Preamble + +The intent of this document is to state the conditions under which a +Package may be copied, such that the Copyright Holder maintains some +semblance of artistic control over the development of the package, +while giving the users of the package the right to use and distribute +the Package in a more-or-less customary fashion, plus the right to make +reasonable modifications. + +Definitions: + + "Package" refers to the collection of files distributed by the + Copyright Holder, and derivatives of that collection of files + created through textual modification. + + "Standard Version" refers to such a Package if it has not been + modified, or has been modified in accordance with the wishes + of the Copyright Holder as specified below. + + "Copyright Holder" is whoever is named in the copyright or + copyrights for the package. + + "You" is you, if you're thinking about copying or distributing + this Package. + + "Reasonable copying fee" is whatever you can justify on the + basis of media cost, duplication charges, time of people involved, + and so on. (You will not be required to justify it to the + Copyright Holder, but only to the computing community at large + as a market that must bear the fee.) + + "Freely Available" means that no fee is charged for the item + itself, though there may be fees involved in handling the item. + It also means that recipients of the item may redistribute it + under the same conditions they received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications +derived from the Public Domain or from the Copyright Holder. A Package +modified in such a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided +that you insert a prominent notice in each changed file stating how and +when you changed that file, and provided that you do at least ONE of the +following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or + an equivalent medium, or placing the modifications on a major archive + site such as uunet.uu.net, or by allowing the Copyright Holder to include + your modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict + with standard executables, which must also be provided, and provide + a separate manual page for each non-standard executable that clearly + documents how it differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or +executable form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where + to get the Standard Version. + + b) accompany the distribution with the machine-readable source of + the Package with your modifications. + + c) give non-standard executables non-standard names, and clearly + document the differences in manual pages (or equivalent), together + with instructions on where to get the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this +Package. You may not charge a fee for this Package itself. However, +you may distribute this Package in aggregate with other (possibly +commercial) programs as part of a larger (possibly commercial) software +distribution provided that you do not advertise this Package as a +product of your own. You may embed this Package's interpreter within +an executable of yours (by linking); this shall be construed as a mere +form of aggregation, provided that the complete Standard Version of the +interpreter is so embedded. + +6. The scripts and library files supplied as input to or produced as +output from the programs of this Package do not automatically fall +under the copyright of this Package, but belong to whoever generated +them, and may be sold commercially, and may be aggregated with this +Package. If such scripts or library files are aggregated with this +Package via the so-called "undump" or "unexec" methods of producing a +binary executable image, then distribution of such an image shall +neither be construed as a distribution of this Package nor shall it +fall under the restrictions of Paragraphs 3 and 4, provided that you do +not represent such an executable image as a Standard Version of this +Package. + +7. C subroutines (or comparably compiled subroutines in other +languages) supplied by you and linked into this Package in order to +emulate subroutines and variables of the language defined by this +Package shall not be considered part of this Package, but are the +equivalent of input as in Paragraph 6, provided these subroutines do +not change the language in any way that would cause it to fail the +regression tests for the language. + +8. Aggregation of this Package with a commercial distribution is always +permitted provided that the use of this Package is embedded; that is, +when no overt attempt is made to make this Package's interfaces visible +to the end user of the commercial distribution. Such use shall not be +construed as a distribution of this Package. + +9. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + The End diff --git a/srcpkgs/base-files/files/licenses/BSD b/srcpkgs/base-files/files/licenses/BSD new file mode 100644 index 0000000..c7a0aa4 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/BSD @@ -0,0 +1,26 @@ +Copyright (c) The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. diff --git a/srcpkgs/base-files/files/licenses/GFDL-1.2 b/srcpkgs/base-files/files/licenses/GFDL-1.2 new file mode 100644 index 0000000..a988da5 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/GFDL-1.2 @@ -0,0 +1,397 @@ + GNU Free Documentation License + Version 1.2, November 2002 + + + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (Thus, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section to be Entitled "Endorsements" + or to conflict in title with any Invariant Section. +O. Preserve any Warranty Disclaimers. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, +parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such +parties remain in full compliance. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/srcpkgs/base-files/files/licenses/GFDL-1.3 b/srcpkgs/base-files/files/licenses/GFDL-1.3 new file mode 100644 index 0000000..2f7e03c --- /dev/null +++ b/srcpkgs/base-files/files/licenses/GFDL-1.3 @@ -0,0 +1,451 @@ + + GNU Free Documentation License + Version 1.3, 3 November 2008 + + + Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall +subject (or to related matters) and contains nothing that could fall +directly within that overall subject. (Thus, if the Document is in +part a textbook of mathematics, a Secondary Section may not explain +any mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +The "publisher" means any person or entity that distributes copies of +the Document to the public. + +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no +other conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to +give them a chance to provide you with an updated version of the +Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section to be Entitled "Endorsements" + or to conflict in title with any Invariant Section. +O. Preserve any Warranty Disclaimers. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other +documents released under this License, and replace the individual +copies of this License in the various documents with a single copy +that is included in the collection, provided that you follow the rules +of this License for verbatim copying of each of the documents in all +other respects. + +You may extract a single document from such a collection, and +distribute it individually under this License, provided you insert a +copy of this License into the extracted document, and follow this +License in all other respects regarding verbatim copying of that +document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions of the +GNU Free Documentation License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + +11. RELICENSING + +"Massive Multiauthor Collaboration Site" (or "MMC Site") means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +"Massive Multiauthor Collaboration" (or "MMC") contained in the site +means any set of copyrightable works thus published on the MMC site. + +"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +"Incorporate" means to publish or republish a Document, in whole or in +part, as part of another Document. + +An MMC is "eligible for relicensing" if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole or +in part into the MMC, (1) had no cover texts or invariant sections, and +(2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.3 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/srcpkgs/base-files/files/licenses/GPL-1 b/srcpkgs/base-files/files/licenses/GPL-1 new file mode 100644 index 0000000..16df98e --- /dev/null +++ b/srcpkgs/base-files/files/licenses/GPL-1 @@ -0,0 +1,250 @@ + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/srcpkgs/base-files/files/licenses/GPL-2 b/srcpkgs/base-files/files/licenses/GPL-2 new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/GPL-2 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/srcpkgs/base-files/files/licenses/GPL-3 b/srcpkgs/base-files/files/licenses/GPL-3 new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/GPL-3 @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/srcpkgs/base-files/files/licenses/LGPL-2 b/srcpkgs/base-files/files/licenses/LGPL-2 new file mode 100644 index 0000000..5bc8fb2 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/LGPL-2 @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/srcpkgs/base-files/files/licenses/LGPL-2.1 b/srcpkgs/base-files/files/licenses/LGPL-2.1 new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/LGPL-2.1 @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/srcpkgs/base-files/files/licenses/LGPL-3 b/srcpkgs/base-files/files/licenses/LGPL-3 new file mode 100644 index 0000000..65c5ca8 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/LGPL-3 @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/srcpkgs/base-files/files/licenses/MPL-1.1 b/srcpkgs/base-files/files/licenses/MPL-1.1 new file mode 100644 index 0000000..7714141 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/MPL-1.1 @@ -0,0 +1,470 @@ + MOZILLA PUBLIC LICENSE + Version 1.1 + + --------------- + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is ______________________________________. + + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the terms + of the _____ license (the "[___] License"), in which case the + provisions of [______] License are applicable instead of those + above. If you wish to allow use of your version of this file only + under the terms of the [____] License and not to allow others to use + your version of this file under the MPL, indicate your decision by + deleting the provisions above and replace them with the notice and + other provisions required by the [___] License. If you do not delete + the provisions above, a recipient may use your version of this file + under either the MPL or the [___] License." + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] + diff --git a/srcpkgs/base-files/files/licenses/MPL-2.0 b/srcpkgs/base-files/files/licenses/MPL-2.0 new file mode 100644 index 0000000..a612ad9 --- /dev/null +++ b/srcpkgs/base-files/files/licenses/MPL-2.0 @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/srcpkgs/base-files/files/licenses/OFL-1.1 b/srcpkgs/base-files/files/licenses/OFL-1.1 new file mode 100644 index 0000000..f1a20ac --- /dev/null +++ b/srcpkgs/base-files/files/licenses/OFL-1.1 @@ -0,0 +1,97 @@ +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/srcpkgs/base-files/files/locale.sh b/srcpkgs/base-files/files/locale.sh new file mode 100644 index 0000000..8486367 --- /dev/null +++ b/srcpkgs/base-files/files/locale.sh @@ -0,0 +1,9 @@ +# Sets up locale system settings from /etc/locale.conf. +# +if [ -s /etc/locale.conf ]; then + . /etc/locale.conf +fi + +export LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY +export LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT +export LC_INDENTIFICATION diff --git a/srcpkgs/base-files/files/lsb_release b/srcpkgs/base-files/files/lsb_release new file mode 100644 index 0000000..6f4789f --- /dev/null +++ b/srcpkgs/base-files/files/lsb_release @@ -0,0 +1,98 @@ +#!/bin/sh +# +# Compatibility script for FSG lsb_release v1.4 or newer +# +version="1.0" +distributor_id="EvolutionOS" +description="EvolutionOS" +release="rolling" +codename="evolution" +options="" +short=0 + +while [ $# -gt 0 ]; do + case "$1" in + -v|--version) options="${options} version" ;; + -i|--id) options="${options} distributor_id" ;; + -d|--description) options="${options} description" ;; + -r|--release) options="${options} release" ;; + -c|--codename) options="${options} codename" ;; + -a|--all) options="version distributor_id description release codename" ;; + -s|--short) short=1 ;; + -h|--help) cat << _EOF +SYNOPSIS + lsb_release [OPTION]... +OPTIONS + −v, −−version + Display the version of the LSB specification against which the distribution is compliant. + + −i, −−id + Display the string id of the distributor. + + −d, −−description + Display the single line text description of the distribution. + + −r, −−release + Display the release number of the distribution. + + −c, −−codename + Display the codename according to the distribution release. + + −a, −−all + Display all of the above information. + + −s, −−short + Display all of the above information in short output format. + + −h, −−help + Display this message. +_EOF + ;; + -*) # Multiple options in one parameter + opt=$(echo $1 | cut -c2-) + while [ ! -z "$opt" ]; do + o=$(echo $opt | cut -c1) + case "$o" in + v) options="${options} version" ;; + i) options="${options} distributor_id" ;; + d) options="${options} description" ;; + r) options="${options} release" ;; + c) options="${options} codename" ;; + a) options="version distributor_id description release codename" ;; + s) short=1 ;; + esac + opt=$(echo $opt | cut -c2-) + done + ;; + esac + shift +done + +[ -z "$options" ] && options="version" + +if [ "$short" -eq 1 ]; then + space="" + for opt in $options; do + case "$opt" in + version) printf "${space}${version}" ;; + distributor_id) printf "${space}${distributor_id}" ;; + description) printf "${space}\"${description}\"" ;; + release) printf "${space}${release}" ;; + codename) printf "${space}${codename}" ;; + esac + space=" " + done + printf "\n" +else + for opt in $options; do + case "$opt" in + version) printf "LSB Version:\t${version}\n" ;; + distributor_id) printf "Distributor ID:\t${distributor_id}\n" ;; + description) printf "Description:\t${description}\n" ;; + release) printf "Release:\t${release}\n" ;; + codename) printf "Codename:\t${codename}\n" ;; + esac + done +fi + +exit 0 diff --git a/srcpkgs/base-files/files/mozplugin.sh b/srcpkgs/base-files/files/mozplugin.sh new file mode 100644 index 0000000..8578a41 --- /dev/null +++ b/srcpkgs/base-files/files/mozplugin.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +export MOZ_PLUGIN_PATH="/usr/lib/mozilla/plugins" diff --git a/srcpkgs/base-files/files/nsswitch.conf b/srcpkgs/base-files/files/nsswitch.conf new file mode 100644 index 0000000..f0355d9 --- /dev/null +++ b/srcpkgs/base-files/files/nsswitch.conf @@ -0,0 +1,15 @@ +# /etc/nsswitch.conf +# +# See nsswitch.conf(5) for information. +# +passwd: files +group: files +shadow: files + +hosts: files mdns dns +networks: files + +protocols: files +services: files +ethers: files +rpc: files diff --git a/srcpkgs/base-files/files/os-release b/srcpkgs/base-files/files/os-release new file mode 100644 index 0000000..53e6080 --- /dev/null +++ b/srcpkgs/base-files/files/os-release @@ -0,0 +1,9 @@ +NAME="Evolution" +ID="evolution" +PRETTY_NAME="EvolutionOS" +HOME_URL="https://evolutionos.codeberg.page" +DOCUMENTATION_URL="https://evolutionos.codeberg.page/wiki/" +LOGO="evolution-logo" +ANSI_COLOR="0;38;2;71;128;97" + +DISTRIB_ID="evolution" diff --git a/srcpkgs/base-files/files/passwd b/srcpkgs/base-files/files/passwd new file mode 100644 index 0000000..1edbef6 --- /dev/null +++ b/srcpkgs/base-files/files/passwd @@ -0,0 +1,2 @@ +root:x:0:0:root:/root:/bin/sh +nobody:x:99:99:Unprivileged User:/dev/null:/bin/false diff --git a/srcpkgs/base-files/files/profile b/srcpkgs/base-files/files/profile new file mode 100644 index 0000000..947aead --- /dev/null +++ b/srcpkgs/base-files/files/profile @@ -0,0 +1,34 @@ +# /etc/profile + +# System wide environment and startup programs. + +appendpath () { + case ":$PATH:" in + *:"$1":*) + ;; + *) + PATH="${PATH:+$PATH:}$1" + esac +} + +# Set our default path (/usr/sbin:/sbin:/bin included for non-Void chroots) +appendpath '/usr/local/sbin' +appendpath '/usr/local/bin' +appendpath '/usr/bin' +appendpath '/usr/sbin' +appendpath '/sbin' +appendpath '/bin' +unset appendpath + +export PATH + +# Set default umask +umask 022 + +# Load profiles from /etc/profile.d +if [ -d /etc/profile.d/ ]; then + for f in /etc/profile.d/*.sh; do + [ -r "$f" ] && . "$f" + done + unset f +fi diff --git a/srcpkgs/base-files/files/securetty b/srcpkgs/base-files/files/securetty new file mode 100644 index 0000000..7014604 --- /dev/null +++ b/srcpkgs/base-files/files/securetty @@ -0,0 +1,26 @@ +console +vc/1 +vc/2 +vc/3 +vc/4 +vc/5 +vc/6 +vc/7 +vc/8 +vc/9 +vc/10 +vc/11 +tty1 +tty2 +tty3 +tty4 +tty5 +tty6 +tty7 +tty8 +tty9 +tty10 +tty11 +ttyS0 +ttyAMA0 +ttyUSB0 diff --git a/srcpkgs/base-files/files/subgid b/srcpkgs/base-files/files/subgid new file mode 100644 index 0000000..76227fb --- /dev/null +++ b/srcpkgs/base-files/files/subgid @@ -0,0 +1 @@ +root:1000000:65536 diff --git a/srcpkgs/base-files/files/subuid b/srcpkgs/base-files/files/subuid new file mode 100644 index 0000000..76227fb --- /dev/null +++ b/srcpkgs/base-files/files/subuid @@ -0,0 +1 @@ +root:1000000:65536 diff --git a/srcpkgs/base-files/files/sysctl-user.conf b/srcpkgs/base-files/files/sysctl-user.conf new file mode 100644 index 0000000..fa70767 --- /dev/null +++ b/srcpkgs/base-files/files/sysctl-user.conf @@ -0,0 +1,15 @@ +# These are some recommended defaults that users can alter if needed. +# For example, developer systems may want to enable kexec for kernel +# testing, or disable the ptrace restrictions to be able to gdb attach +# to processes without root. +# +# To replace, create a file of the same name in /etc/sysctl.d. + +# Avoid kernel memory address exposures via dmesg. +kernel.dmesg_restrict=1 + +# Turn off kexec, even if it's built in. +kernel.kexec_load_disabled=1 + +# Avoid non-ancestor ptrace access to running processes and their credentials. +kernel.yama.ptrace_scope=1 diff --git a/srcpkgs/base-files/files/sysctl.conf b/srcpkgs/base-files/files/sysctl.conf new file mode 100644 index 0000000..c8e9eae --- /dev/null +++ b/srcpkgs/base-files/files/sysctl.conf @@ -0,0 +1,15 @@ +# These are hardening options that users should typically not be altering. +# User-alterable options are in 10-void-user.conf. + +# Append the PID to the core filename +kernel.core_uses_pid=1 + +# Enable hard and soft link protection +fs.protected_hardlinks=1 +fs.protected_symlinks=1 + +# Try to keep kernel address exposures out of various /proc files (kallsyms, modules, etc). +kernel.kptr_restrict=1 + +# Block non-uid-0 kernel profiling +kernel.perf_event_paranoid=2 diff --git a/srcpkgs/base-files/files/usb-load-ehci-first b/srcpkgs/base-files/files/usb-load-ehci-first new file mode 100644 index 0000000..9473794 --- /dev/null +++ b/srcpkgs/base-files/files/usb-load-ehci-first @@ -0,0 +1,2 @@ +softdep ohci_hcd pre: ehci_hcd +softdep uhci_hcd pre: ehci_hcd diff --git a/srcpkgs/base-files/files/vkpurge b/srcpkgs/base-files/files/vkpurge new file mode 100644 index 0000000..422dcb6 --- /dev/null +++ b/srcpkgs/base-files/files/vkpurge @@ -0,0 +1,97 @@ +#!/bin/sh +# +# A simple script to remove old kernel files/modules. +# Brought to you by yours truly Juan RP in the Public Domain. +# +: "${progname:="${0##*/}"}" + +usage() { + cat <<_EOF +Usage: $progname list [version ...] + $progname rm all + $progname rm +_EOF + exit 1 +} + +list_kernels() { + running=$(uname -r) + installed=$(xbps-query -o "/boot/vmlinu[xz]-*" 2>/dev/null | awk '{print $2}') + for arg; do + case "$arg" in + all) pattern="*" ;; + *) pattern=$arg ;; + esac + for k in /boot/vmlinu[xz]-*; do + case "$installed" in + *"$k"*) continue ;; + esac + kver=${k#*-} + case "$kver" in + "$running") ;; + "*") ;; # /boot isn't mounted -> no vmlinu[xz] + $pattern) printf "%s\n" "$kver" ;; + esac + done + done | sort -uV +} + +run_hooks() { + dir="$1" + kver="$2" + + for d in /etc/kernel.d/"${dir}"/*; do + [ -x "$d" ] || continue + printf "Running %s kernel hook: %s...\n" "$dir" "${d##*/}" + # Hooks assume they run from the root + (cd / && ROOTDIR=. "$d" kernel "$kver") + done +} + +remove_kernel() { + rmkver="$1" + + # Execute pre-remove kernel hooks. + run_hooks pre-remove "$rmkver" + + for f in \ + /boot/config-"${rmkver}" \ + /boot/System.map-"${rmkver}" \ + /boot/vmlinu[xz]-"${rmkver}" \ + /usr/lib/modules/"${rmkver}"; do + [ -e "$f" ] || continue + printf "Removing %s...\n" "$f" + rm -rf "$f" + done + + # Execute post-remove kernel hooks. + run_hooks post-remove "$rmkver" + + for f in \ + /usr/src/kernel-headers-"${rmkver}" \ + /usr/lib/debug/boot/vmlinu[xz]-"${rmkver}" \ + /usr/lib/debug/usr/lib/modules/"${rmkver}" \ + /boot/dtbs/dtbs-"${rmkver}"; do + [ -e "$f" ] || continue + printf "Removing %s...\n" "$f" + rm -rf "$f" + done +} + +case "$1" in + list) list_kernels "${2:-all}" ;; + rm) + [ -z "$2" ] && usage + if [ "$(id -u)" -ne 0 ]; then + printf "You have to run this script as root!\n" >&2 + exit 1 + fi + shift + for kver in $(list_kernels "$@"); do + printf "Removing kernel %s...\n" "$kver" + remove_kernel "$kver" + done + ;; + *) usage ;; +esac +exit 0 diff --git a/srcpkgs/base-files/files/vkpurge.8 b/srcpkgs/base-files/files/vkpurge.8 new file mode 100644 index 0000000..d0e2bd7 --- /dev/null +++ b/srcpkgs/base-files/files/vkpurge.8 @@ -0,0 +1,72 @@ +.Dd April 6, 2019 +.Dt VKPURGE 8 +.Os +.Sh NAME +.Nm vkpurge +.Nd remove old kernel files/modules +.Sh SYNOPSIS +.Nm +.Cm list +.Op Ar version +.Nm +.Cm rm all +.Nm +.Cm rm +.Ar version ... +.Sh DESCRIPTION +The +.Nm +utility lists and removes removable kernel versions left +behind by +.Xr xbps-install 1 +and +.Xr xbps-remove 1 . +.Nm +runs the appropriate removal hooks and deletes the kernel, +modules and other miscellaneous files. +.Pp +.Nm +only lists or removes kernel versions that are: +.Bl -bullet -compact +.It +not currently booted. +.It +not provided by any installed xbps package. +.El +.Pp +The +.Ar version +arguments support +.Xr sh 1 +pattern matching. +.Pp +The following commands are available: +.Bl -tag -width 4n +.It Ic list Op Ar version +List removable kernel versions. +Optionally list only versions matching +.Ar version . +.It Ic rm all +Remove all removable kernel versions. +.It Ic rm Ar version ... +Remove all removable kernel versions matching +.Ar version . +.El +.Sh EXIT STATUS +.Ex -std +.Sh EXAMPLES +The following command lists installed kernels matching a pattern. +.Bd -literal -offset indent +$ vkpurge list '4.18.*' +.Ed +.Pp +The following command will delete the kernel versions matching the pattern and a specified version. +.Bd -literal -offset indent +# vkpurge rm '2.6.*' 4.3.4_1 +.Ed +.Sh SEE ALSO +.Xr xbps-install 1 , +.Xr xbps-remove 1 +.Sh BUGS +There is no support for all kernels. Specific series, like rpi-kernel, are not +supported yet. diff --git a/srcpkgs/base-files/template b/srcpkgs/base-files/template new file mode 100644 index 0000000..2893db0 --- /dev/null +++ b/srcpkgs/base-files/template @@ -0,0 +1,104 @@ +# Template file for 'base-files' +pkgname=base-files +version=0.143 +revision=7 +bootstrap=yes +depends="xbps-triggers" +short_desc="Evolution Linux base system files" +maintainer="Tracker-Friendly " +license="Public Domain" +homepage="https://evolutionos.codeberg.page" +conf_files=" + /etc/inputrc + /etc/profile + /etc/hosts + /etc/host.conf + /etc/securetty + /etc/skel/.bash_profile + /etc/skel/.bash_logout + /etc/skel/.bashrc + /etc/skel/.inputrc + /etc/subuid + /etc/subgid + /etc/issue + /etc/passwd + /etc/group + /etc/fstab + /etc/crypttab + /etc/nsswitch.conf" + +replaces="base-directories>=0" +# New system groups +system_groups="kvm:24 plugdev:26 usbmon:27 sgx:28" + +do_install() { + # Create bin and lib dirs and symlinks. + for d in bin lib; do + vmkdir "usr/${d}" + ln -snrf "${DESTDIR}/usr/${d}" "${DESTDIR}/${d}" + done + # Symlink sbin paths to /usr/bin. + for d in sbin usr/sbin; do + ln -snrf "${DESTDIR}/usr/bin" "${DESTDIR}/${d}" + done + # Symlink word-specific lib paths to /usr/lib. + for d in lib usr/lib; do + ln -snrf "${DESTDIR}/usr/lib" \ + "${DESTDIR}/${d}${XBPS_TARGET_WORDSIZE}" + done + # Populate 32-bit lib files on 64-bit systems, for multilib. + if [ "${XBPS_TARGET_WORDSIZE}" = "64" ]; then + vmkdir usr/lib32 + ln -snrf "${DESTDIR}/usr/lib32" "${DESTDIR}/lib32" + ln -sf ../lib/locale "${DESTDIR}/usr/lib32/locale" + vinstall "${FILESDIR}/ld.so.lib32.conf" 644 etc/ld.so.conf.d lib32.conf + fi + + # Install misc config files. + for f in bash_logout bash_profile bashrc inputrc; do + vinstall ${FILESDIR}/dot_${f} 644 etc/skel .${f} + done + + vinstall ${FILESDIR}/securetty 600 etc + for f in profile hosts host.conf issue subuid subgid \ + inputrc fstab passwd group crypttab nsswitch.conf; do + vinstall ${FILESDIR}/${f} 644 etc + done + vmkdir etc/colors + vmkdir etc/profile.d + install -m644 ${FILESDIR}/*.sh ${DESTDIR}/etc/profile.d + install -m644 ${FILESDIR}/DIR_COLORS* ${DESTDIR}/etc/colors + + # modprobe(8) files + vinstall ${FILESDIR}/usb-load-ehci-first 644 usr/lib/modprobe.d usb-load-ehci-first.conf + vinstall ${FILESDIR}/blacklist.conf 644 usr/lib/modprobe.d + # sysctl(8) files + vinstall ${FILESDIR}/sysctl.conf 644 usr/lib/sysctl.d 10-void.conf + vinstall ${FILESDIR}/sysctl-user.conf 644 usr/lib/sysctl.d 10-void-user.conf + vinstall ${FILESDIR}/bpf.conf 644 usr/lib/sysctl.d 20-bpf.conf + + # Install common licenses, from Debian. + vmkdir usr/share/licenses + install -m644 ${FILESDIR}/licenses/* ${DESTDIR}/usr/share/licenses + + # vkpurge + vbin ${FILESDIR}/vkpurge + vman ${FILESDIR}/vkpurge.8 + + vbin ${FILESDIR}/lsb_release + + # Install default dracut configuration. + vinstall ${FILESDIR}/dracut.conf.d.voidlinux.conf 644 \ + usr/lib/dracut/dracut.conf.d 00-void.conf + + # Create /proc/self/mounts -> /etc/mtab symlink. + ln -sf /proc/self/mounts ${DESTDIR}/etc/mtab + + # udev rules + vmkdir usr/lib/udev/rules.d + install -m644 ${FILESDIR}/*.rules ${DESTDIR}/usr/lib/udev/rules.d + + # os-release in the expected places + vinstall ${FILESDIR}/os-release 644 /usr/lib/ + ln -s ../usr/lib/os-release ${DESTDIR}/etc/os-release +} diff --git a/srcpkgs/base-system/template b/srcpkgs/base-system/template new file mode 100644 index 0000000..6433a0d --- /dev/null +++ b/srcpkgs/base-system/template @@ -0,0 +1,28 @@ +# Template file for 'base-system' +pkgname=base-system +version=0.114 +revision=5 +bootstrap=yes +build_style=meta +short_desc="Evolution Linux base system meta package" +maintainer="Tracker-Friendly " +license="Public Domain" +homepage="https://evolutionos.codeberg.page" + +depends=" + base-files ncurses busybox-core libgcc + bash file util-linux man-pages + mdocml>=1.13.3 shadow e2fsprogs btrfs-progs xfsprogs dosfstools + procps-ng tzdata iana-etc openssh dhcpcd + kbd iproute2 iputils wpa_supplicant xbps wifi-firmware + ethtool kmod acpid eudev runit-void removed-packages + evolution-patches opendoas booster evolution-artwork" + +case "$XBPS_TARGET_MACHINE" in + *-musl) depends+=" musl";; + *) depends+=" glibc-locales";; +esac + +case "$XBPS_TARGET_MACHINE" in + i686*|x86_64*|ppc*) depends+=" linux";; +esac diff --git a/srcpkgs/base-voidstrap/template b/srcpkgs/base-voidstrap/template new file mode 100644 index 0000000..5215ad2 --- /dev/null +++ b/srcpkgs/base-voidstrap/template @@ -0,0 +1,21 @@ +# Template file for 'base-voidstrap' +pkgname=base-voidstrap +version=0.11 +revision=1 +build_style=meta +short_desc="Void Linux base system meta package for containers/chroots" +maintainer="Enno Boland " +license="Public Domain" +homepage="https://www.voidlinux.org/" + +depends=" + base-files ncurses coreutils busybox-core + bash file less util-linux man-pages + mdocml>=1.13.3 shadow e2fsprogs btrfs-progs xfsprogs dosfstools kbd + procps-ng iana-etc eudev runit-void openssh dhcpcd + iproute2 iputils xbps kmod removed-packages" + +case "$XBPS_TARGET_MACHINE" in + *-musl) depends+=" musl";; + *) depends+=" glibc-locales";; +esac diff --git a/srcpkgs/booster/files/kernel-hook-postinst b/srcpkgs/booster/files/kernel-hook-postinst new file mode 100644 index 0000000..7e6ef0a --- /dev/null +++ b/srcpkgs/booster/files/kernel-hook-postinst @@ -0,0 +1,13 @@ +#!/bin/sh +# +# Kernel post-install hook for booster. +# +# Arguments passed to this script: $1 pkgname, $2 version. +# +PKGNAME="$1" +VERSION="$2" + +[ -x usr/bin/booster ] || exit 0 + +umask 0077 +usr/bin/booster build --force --kernel-version ${VERSION} boot/initramfs-${VERSION}.img diff --git a/srcpkgs/booster/files/kernel-hook-postrm b/srcpkgs/booster/files/kernel-hook-postrm new file mode 100644 index 0000000..253c8d2 --- /dev/null +++ b/srcpkgs/booster/files/kernel-hook-postrm @@ -0,0 +1,10 @@ +#!/bin/sh +# +# Kernel post-remove hook for booster. +# +# Arguments passed to this script: $1 pkgname, $2 version. +# +PKGNAME="$1" +VERSION="$2" + +rm -f boot/initramfs-${VERSION}.img diff --git a/srcpkgs/booster/patches/fix-target-dir.patch b/srcpkgs/booster/patches/fix-target-dir.patch new file mode 100644 index 0000000..7d17c62 --- /dev/null +++ b/srcpkgs/booster/patches/fix-target-dir.patch @@ -0,0 +1,40 @@ +From bc988b0c48d337d7b3447ad8a634551ca5080178 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= +Date: Thu, 9 Mar 2023 14:15:21 +0100 +Subject: [PATCH] generator: Fix creation of target directory + +This attempts to fix a regression introduced in commit +e13aa77e49aef93cc1370a269785b471758cb546 since this commit +the `usr/lib` target directroy is not created if the host system +does not ship any files in `usr/lib` (e.g. Alpine). This causes +initramfs images generated on such systems to not be bootable +as `lib` is a symlink to the non-existend `usr/lib` then. + +The problem is the current implementation: + + filepath.Dir(filepath.Join(filepath.Dir(l.src), l.target)) + +Would return `/usr` for `{"/lib", "usr/lib"}` and hence `/usr/lib` +was never created. I believe this was intended to be: + + filepath.Join(filepath.Dir(l.src), l.target) + +This commit changes this accordingly and fixes booting Booster +images on Alpine. +--- + generator/generator.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/generator/generator.go b/generator/generator.go +index 4a030e5..0ab135c 100644 +--- a/generator/generator.go ++++ b/generator/generator.go +@@ -263,7 +263,7 @@ func appendCompatibilitySymlinks(img *Image) error { + for _, l := range symlinks { + // Ensure that target always exist which may not be the + // case if we only install files from /lib or /bin. +- targetDir := filepath.Dir(filepath.Join(filepath.Dir(l.src), l.target)) ++ targetDir := filepath.Join(filepath.Dir(l.src), l.target) + if err := img.AppendDirEntry(targetDir); err != nil { + return err + } diff --git a/srcpkgs/booster/patches/symlink.patch b/srcpkgs/booster/patches/symlink.patch new file mode 100644 index 0000000..be61fcd --- /dev/null +++ b/srcpkgs/booster/patches/symlink.patch @@ -0,0 +1,85 @@ +From 7766b079c8fd004fee9d5eba19cb98cac568773b Mon Sep 17 00:00:00 2001 +From: Anatol Pomozov +Date: Thu, 23 Mar 2023 18:49:14 -0700 +Subject: [PATCH] generator: Do not rely on user's lookup order for binaries + +Until now we used `exec.LookPath` golang function to lookup binaries. +This function depends on user's $PATH envvar and the order directories +specified there. This could mess with our image symlink tree. + +What we want is to make sure that we lookup/add files at non-symlinked +directories first (i.e. /usr/bin). + +Closes #213 +--- + generator/generator.go | 28 ++++++++++++++++++++++++++-- + generator/generator_test.go | 6 ++++++ + 2 files changed, 32 insertions(+), 2 deletions(-) + +diff --git a/generator/generator.go b/generator/generator.go +index 0ab135c..8f0a72f 100644 +--- a/generator/generator.go ++++ b/generator/generator.go +@@ -5,7 +5,6 @@ import ( + "fmt" + "net" + "os" +- "os/exec" + "path/filepath" + "time" + +@@ -290,7 +289,7 @@ func (img *Image) appendExtraFiles(binaries ...string) error { + // If the given name is not an absolute path, assume that it refers + // to an executable and lookup the path to the executable using $PATH. + var err error +- f, err = exec.LookPath(f) ++ f, err = lookupPath(f) + if err != nil { + return err + } +@@ -303,6 +302,31 @@ func (img *Image) appendExtraFiles(binaries ...string) error { + return nil + } + ++func lookupPath(binary string) (string, error) { ++ paths := []string{ ++ "/usr/bin", ++ "/usr/sbin", ++ "/bin", ++ "/sbin", ++ "/usr/local/bin", ++ "/usr/local/sbin", ++ } ++ ++ for _, p := range paths { ++ f := filepath.Join(p, binary) ++ _, err := os.Stat(f) ++ if os.IsNotExist(err) { ++ continue ++ } ++ if err != nil { ++ return "", err ++ } ++ return f, nil ++ } ++ ++ return "", os.ErrNotExist ++} ++ + func findFwFile(fw string) (string, error) { + supportedFwExt := []string{ + "", +diff --git a/generator/generator_test.go b/generator/generator_test.go +index 57b7cce..5938cbc 100644 +--- a/generator/generator_test.go ++++ b/generator/generator_test.go +@@ -550,3 +550,9 @@ func TestModprobeOptions(t *testing.T) { + } + require.Equal(t, expect, cfg.ModprobeOptions) + } ++ ++func TestLookupFile(t *testing.T) { ++ path, err := lookupPath("echo") ++ require.NoError(t, err) ++ require.Equal(t, "/usr/bin/echo", path) ++} diff --git a/srcpkgs/booster/template b/srcpkgs/booster/template new file mode 100644 index 0000000..fdd12fd --- /dev/null +++ b/srcpkgs/booster/template @@ -0,0 +1,53 @@ +# Template file for 'booster' +pkgname=booster +version=0.10 +revision=1 +build_style=go +go_import_path=github.com/anatol/booster +hostmakedepends="git ruby-ronn" +depends="busybox-core" +short_desc="Fast and secure initramfs generator" +maintainer="travankor " +license="MIT" +homepage="https://github.com/anatol/booster" +distfiles="https://github.com/anatol/booster/archive/${version}.tar.gz" +checksum=27a7e40135ceb5504438ce0a45108ef955f5ece197932acc7686fd6c0254565c +conf_files="/etc/booster.yaml" +alternatives=" + initramfs:/etc/kernel.d/post-install/20-initramfs:/usr/libexec/booster/kernel-hook-postinst + initramfs:/etc/kernel.d/post-remove/20-initramfs:/usr/libexec/booster/kernel-hook-postrm +" + +_build_component() { + go install -p "$XBPS_MAKEJOBS" -mod=readonly -x +} + +do_build() { + ( cd generator && _build_component ) + ( cd init && CGO_ENABLED=0 _build_component ) + + ronn docs/manpage.md + + echo "busybox: true" > booster.yaml +} + +do_install() { + local _srcdir="${GOPATH}/bin" + + if [ "$CROSS_BUILD" ]; then + _srcdir="${_srcdir}/linux_${GOARCH}" + fi + + vbin "${_srcdir}/generator" booster + vinstall "${_srcdir}/init" 755 usr/lib/booster + + vman docs/manpage.1 booster.1 + vconf booster.yaml + + vinstall ${FILESDIR}/kernel-hook-postinst 755 usr/libexec/booster + vinstall ${FILESDIR}/kernel-hook-postrm 755 usr/libexec/booster + + vcompletion contrib/completion/bash bash booster + + vlicense LICENSE +} diff --git a/srcpkgs/busybox-core b/srcpkgs/busybox-core new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/srcpkgs/busybox-core @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/srcpkgs/busybox-full/files/.config b/srcpkgs/busybox-full/files/.config new file mode 100644 index 0000000..791a2f5 --- /dev/null +++ b/srcpkgs/busybox-full/files/.config @@ -0,0 +1,1231 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.36.1 +# Mon Jul 31 17:01:29 2023 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Settings +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEDORA_COMPAT is not set +CONFIG_INCLUDE_SUSv2=y +CONFIG_LONG_OPTS=y +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_LFS=y +# CONFIG_PAM is not set +CONFIG_FEATURE_DEVPTS=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_FEATURE_PIDFILE=y +CONFIG_PID_FILE_PATH="/var/run" +CONFIG_BUSYBOX=y +CONFIG_FEATURE_SHOW_SCRIPT=y +CONFIG_FEATURE_INSTALLER=y +# CONFIG_INSTALL_NO_USR is not set +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_SYSLOG_INFO=y +CONFIG_FEATURE_SYSLOG=y + +# +# Build Options +# +# CONFIG_STATIC is not set +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" +CONFIG_EXTRA_CFLAGS="" +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_STACK_OPTIMIZATION_386=y +CONFIG_STATIC_LIBGCC=y + +# +# Installation Options ("make install" behavior) +# +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +# CONFIG_WARN_SIMPLE_MSG is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Library Tuning +# +# CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FLOAT_DURATION=y +CONFIG_FEATURE_RTMINMAX=y +CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SMALL=1 +CONFIG_SHA1_SMALL=3 +CONFIG_SHA1_HWACCEL=y +CONFIG_SHA256_HWACCEL=y +CONFIG_SHA3_SMALL=1 +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +# CONFIG_FEATURE_EDITING_VI is not set +CONFIG_FEATURE_EDITING_HISTORY=255 +CONFIG_FEATURE_EDITING_SAVEHISTORY=y +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set +CONFIG_FEATURE_REVERSE_SEARCH=y +CONFIG_FEATURE_TAB_COMPLETION=y +CONFIG_FEATURE_USERNAME_COMPLETION=y +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_WINCH=y +# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set +# CONFIG_LOCALE_SUPPORT is not set +CONFIG_UNICODE_SUPPORT=y +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=63 +CONFIG_LAST_SUPPORTED_WCHAR=767 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +# CONFIG_LOOP_CONFIGURE is not set +# CONFIG_NO_LOOP_CONFIGURE is not set +CONFIG_TRY_LOOP_CONFIGURE=y + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_FEATURE_SEAMLESS_LZMA=y +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_FEATURE_AR_CREATE=y +CONFIG_UNCOMPRESS=y +CONFIG_GUNZIP=y +CONFIG_ZCAT=y +CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y +CONFIG_BUNZIP2=y +CONFIG_BZCAT=y +CONFIG_UNLZMA=y +CONFIG_LZCAT=y +CONFIG_LZMA=y +CONFIG_UNXZ=y +CONFIG_XZCAT=y +CONFIG_XZ=y +CONFIG_BZIP2=y +CONFIG_BZIP2_SMALL=8 +CONFIG_FEATURE_BZIP2_DECOMPRESS=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +CONFIG_FEATURE_CPIO_P=y +CONFIG_FEATURE_CPIO_IGNORE_DEVNO=y +CONFIG_FEATURE_CPIO_RENUMBER_INODES=y +CONFIG_DPKG=y +CONFIG_DPKG_DEB=y +CONFIG_GZIP=y +CONFIG_FEATURE_GZIP_LONG_OPTIONS=y +CONFIG_GZIP_FAST=0 +CONFIG_FEATURE_GZIP_LEVELS=y +CONFIG_FEATURE_GZIP_DECOMPRESS=y +CONFIG_LZOP=y +CONFIG_UNLZOP=y +CONFIG_LZOPCAT=y +CONFIG_LZOP_COMPR_HIGH=y +CONFIG_RPM=y +CONFIG_RPM2CPIO=y +CONFIG_TAR=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_TO_COMMAND=y +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y +# CONFIG_FEATURE_TAR_SELINUX is not set +CONFIG_UNZIP=y +CONFIG_FEATURE_UNZIP_CDF=y +CONFIG_FEATURE_UNZIP_BZIP2=y +CONFIG_FEATURE_UNZIP_LZMA=y +CONFIG_FEATURE_UNZIP_XZ=y +CONFIG_FEATURE_LZMA_FAST=y + +# +# Coreutils +# +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for date and touch +# +CONFIG_FEATURE_TIMEZONE=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y +CONFIG_BASENAME=y +CONFIG_CAT=y +CONFIG_FEATURE_CATN=y +CONFIG_FEATURE_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_CRC32=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_FEATURE_CP_LONG_OPTIONS=y +CONFIG_FEATURE_CP_REFLINK=y +CONFIG_CUT=y +CONFIG_FEATURE_CUT_REGEX=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_FEATURE_DATE_NANO=y +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_FANCY=y +CONFIG_FEATURE_SKIP_ROOTFS=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_EXPAND=y +CONFIG_UNEXPAND=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FACTOR=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_GROUPS=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LINK=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_WIDTH=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA512SUM=y +CONFIG_SHA3SUM=y + +# +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y +CONFIG_MKDIR=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MKTEMP=y +CONFIG_MV=y +CONFIG_NICE=y +CONFIG_NL=y +CONFIG_NOHUP=y +CONFIG_NPROC=y +CONFIG_OD=y +CONFIG_PASTE=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +CONFIG_SEQ=y +CONFIG_SHRED=y +CONFIG_SHUF=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_FEATURE_STAT_FILESYSTEM=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_FEATURE_SYNC_FANCY=y +CONFIG_FSYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_TEST1=y +CONFIG_TEST2=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TIMEOUT=y +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TRUNCATE=y +CONFIG_TSORT=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNAME_OSNAME="GNU/Linux" +CONFIG_BB_ARCH=y +CONFIG_UNIQ=y +CONFIG_UNLINK=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_BASE32=y +CONFIG_BASE64=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_W=y +CONFIG_USERS=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_FGCONSOLE=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_SETFONT=y +CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y +CONFIG_DEFAULT_SETFONT_DIR="" + +# +# Common options for loadfont and setfont +# +CONFIG_FEATURE_LOADFONT_PSF2=y +CONFIG_FEATURE_LOADFONT_RAW=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Debian Utilities +# +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_WHICH=y + +# +# klibc-utils +# +CONFIG_MINIPS=y +CONFIG_NUKE=y +CONFIG_RESUME=y +CONFIG_RUN_INIT=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_LIBM=y +CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_LONG_OPTIONS=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=4096 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_COLON_EXPAND=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_REGEX_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_ASK_TERMINAL=y +CONFIG_FEATURE_VI_UNDO=y +CONFIG_FEATURE_VI_UNDO_QUEUE=y +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_VI_VERBOSE_STATUS=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_ATIME=y +CONFIG_FEATURE_FIND_CTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_AMIN=y +CONFIG_FEATURE_FIND_CMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_EXECUTABLE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_SAMEFILE=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_EXEC_PLUS=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_QUIT=y +CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_EMPTY=y +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_FEATURE_FIND_LINKS=y +CONFIG_GREP=y +CONFIG_EGREP=y +CONFIG_FGREP=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y +CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y +CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y +CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y + +# +# Init Utilities +# +# CONFIG_BOOTCHARTD is not set +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set +# CONFIG_HALT is not set +# CONFIG_POWEROFF is not set +# CONFIG_REBOOT is not set +# CONFIG_FEATURE_WAIT_FOR_INIT is not set +# CONFIG_FEATURE_CALL_TELINIT is not set +CONFIG_TELINIT_PATH="" +# CONFIG_INIT is not set +# CONFIG_LINUXRC is not set +# CONFIG_FEATURE_USE_INITTAB is not set +# CONFIG_FEATURE_KILL_REMOVED is not set +CONFIG_FEATURE_KILL_DELAY=0 +# CONFIG_FEATURE_INIT_SCTTY is not set +# CONFIG_FEATURE_INIT_SYSLOG is not set +# CONFIG_FEATURE_INIT_QUIET is not set +# CONFIG_FEATURE_INIT_COREDUMPS is not set +CONFIG_INIT_TERMINAL_TYPE="" +# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +CONFIG_USE_BB_PWD_GRP=y +CONFIG_USE_BB_SHADOW=y +CONFIG_USE_BB_CRYPT=y +CONFIG_USE_BB_CRYPT_SHA=y +CONFIG_ADD_SHELL=y +CONFIG_REMOVE_SHELL=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_ADDUSER=y +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_LAST_ID=60000 +CONFIG_FIRST_SYSTEM_ID=100 +CONFIG_LAST_SYSTEM_ID=999 +CONFIG_CHPASSWD=y +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" +CONFIG_CRYPTPW=y +CONFIG_MKPASSWD=y +CONFIG_DELUSER=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_GETTY=y +CONFIG_LOGIN=y +CONFIG_LOGIN_SESSION_AS_CHILD=y +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +CONFIG_FEATURE_SECURETTY=y +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y +CONFIG_TUNE2FS=y + +# +# Linux Module Utilities +# +CONFIG_MODPROBE_SMALL=y +CONFIG_DEPMOD=y +CONFIG_INSMOD=y +CONFIG_LSMOD=y +# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +CONFIG_MODINFO=y +CONFIG_MODPROBE=y +# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set +CONFIG_RMMOD=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y +# CONFIG_FEATURE_2_4_MODULES is not set +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set +# CONFIG_FEATURE_MODUTILS_ALIAS is not set +# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" + +# +# Linux System Utilities +# +CONFIG_ACPID=y +CONFIG_FEATURE_ACPID_COMPAT=y +CONFIG_BLKDISCARD=y +CONFIG_BLKID=y +CONFIG_FEATURE_BLKID_TYPE=y +CONFIG_BLOCKDEV=y +CONFIG_CAL=y +CONFIG_CHRT=y +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FALLOCATE=y +CONFIG_FATATTR=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +CONFIG_FEATURE_FDISK_WRITABLE=y +CONFIG_FEATURE_AIX_LABEL=y +CONFIG_FEATURE_SGI_LABEL=y +CONFIG_FEATURE_SUN_LABEL=y +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_GPT_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FINDFS=y +CONFIG_FLOCK=y +CONFIG_FDFLUSH=y +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_FSFREEZE=y +CONFIG_FSTRIM=y +CONFIG_GETOPT=y +CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_HEXDUMP=y +CONFIG_HD=y +CONFIG_XXD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IONICE=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LAST=y +CONFIG_FEATURE_LAST_FANCY=y +CONFIG_LOSETUP=y +CONFIG_LSPCI=y +CONFIG_LSUSB=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_FEATURE_MDEV_DAEMON=y +CONFIG_MESG=y +CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y +CONFIG_MKE2FS=y +CONFIG_MKFS_EXT2=y +CONFIG_MKFS_MINIX=y +CONFIG_FEATURE_MINIX2=y +CONFIG_MKFS_REISER=y +CONFIG_MKDOSFS=y +CONFIG_MKFS_VFAT=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_UUID=y +CONFIG_MORE=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +CONFIG_FEATURE_MOUNT_VERBOSE=y +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_FEATURE_MOUNT_OTHERTAB=y +CONFIG_MOUNTPOINT=y +CONFIG_NOLOGIN=y +CONFIG_NOLOGIN_DEPENDENCIES=y +CONFIG_NSENTER=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +CONFIG_RENICE=y +CONFIG_REV=y +CONFIG_RTCWAKE=y +CONFIG_SCRIPT=y +CONFIG_SCRIPTREPLAY=y +CONFIG_SETARCH=y +CONFIG_LINUX32=y +CONFIG_LINUX64=y +CONFIG_SETPRIV=y +CONFIG_FEATURE_SETPRIV_DUMP=y +CONFIG_FEATURE_SETPRIV_CAPABILITIES=y +CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y +CONFIG_SETSID=y +CONFIG_SWAPON=y +CONFIG_FEATURE_SWAPON_DISCARD=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWAPOFF=y +CONFIG_FEATURE_SWAPONOFF_LABEL=y +CONFIG_SWITCH_ROOT=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_FEATURE_TASKSET_CPULIST=y +CONFIG_UEVENT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y +CONFIG_UNSHARE=y +CONFIG_WALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MOUNT_LOOP_CREATE=y +CONFIG_FEATURE_MTAB_SUPPORT=y +CONFIG_VOLUMEID=y + +# +# Filesystem/Volume identification +# +CONFIG_FEATURE_VOLUMEID_BCACHE=y +CONFIG_FEATURE_VOLUMEID_BTRFS=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_EROFS=y +CONFIG_FEATURE_VOLUMEID_EXFAT=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_F2FS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_LFS=y +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_MINIX=y +CONFIG_FEATURE_VOLUMEID_NILFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_OCFS2=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +CONFIG_FEATURE_VOLUMEID_ROMFS=y +CONFIG_FEATURE_VOLUMEID_SQUASHFS=y +CONFIG_FEATURE_VOLUMEID_SYSV=y +CONFIG_FEATURE_VOLUMEID_UBIFS=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_XFS=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_ASCII=y +CONFIG_BBCONFIG=y +CONFIG_FEATURE_COMPRESS_BBCONFIG=y +CONFIG_BC=y +CONFIG_DC=y +CONFIG_FEATURE_DC_BIG=y +# CONFIG_FEATURE_DC_LIBM is not set +CONFIG_FEATURE_BC_INTERACTIVE=y +CONFIG_FEATURE_BC_LONG_OPTIONS=y +CONFIG_BEEP=y +CONFIG_FEATURE_BEEP_FREQ=4000 +CONFIG_FEATURE_BEEP_LENGTH_MS=30 +CONFIG_CHAT=y +CONFIG_FEATURE_CHAT_NOFAIL=y +CONFIG_FEATURE_CHAT_TTY_HIFI=y +CONFIG_FEATURE_CHAT_IMPLICIT_CR=y +CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y +CONFIG_FEATURE_CHAT_SEND_ESCAPES=y +CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y +CONFIG_FEATURE_CHAT_CLR_ABORT=y +CONFIG_CONSPY=y +CONFIG_CROND=y +CONFIG_FEATURE_CROND_D=y +CONFIG_FEATURE_CROND_CALL_SENDMAIL=y +CONFIG_FEATURE_CROND_SPECIAL_TIMES=y +CONFIG_FEATURE_CROND_DIR="/var/spool/cron" +CONFIG_CRONTAB=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_DEVMEM=y +CONFIG_FBSPLASH=y +CONFIG_FLASH_ERASEALL=y +CONFIG_FLASH_LOCK=y +CONFIG_FLASH_UNLOCK=y +CONFIG_FLASHCP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_HEXEDIT=y +CONFIG_I2CGET=y +CONFIG_I2CSET=y +CONFIG_I2CDUMP=y +CONFIG_I2CDETECT=y +CONFIG_I2CTRANSFER=y +CONFIG_INOTIFYD=y +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_TRUNCATE=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y +CONFIG_FEATURE_LESS_DASHCMD=y +CONFIG_FEATURE_LESS_LINENUMS=y +CONFIG_FEATURE_LESS_RAW=y +CONFIG_FEATURE_LESS_ENV=y +CONFIG_LSSCSI=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +CONFIG_MAN=y +CONFIG_MICROCOM=y +CONFIG_MIM=y +CONFIG_MT=y +CONFIG_NANDWRITE=y +CONFIG_NANDDUMP=y +CONFIG_PARTPROBE=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RFKILL=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_SEEDRNG=y +CONFIG_SETFATTR=y +CONFIG_SETSERIAL=y +CONFIG_STRINGS=y +CONFIG_TIME=y +CONFIG_TREE=y +CONFIG_TS=y +CONFIG_TTYSIZE=y +CONFIG_UBIATTACH=y +CONFIG_UBIDETACH=y +CONFIG_UBIMKVOL=y +CONFIG_UBIRMVOL=y +CONFIG_UBIRSVOL=y +CONFIG_UBIUPDATEVOL=y +CONFIG_UBIRENAME=y +CONFIG_VOLNAME=y +CONFIG_WATCHDOG=y +# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +# CONFIG_FEATURE_UNIX_LOCAL is not set +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +CONFIG_VERBOSE_RESOLUTION_ERRORS=y +CONFIG_FEATURE_ETC_NETWORKS=y +CONFIG_FEATURE_ETC_SERVICES=y +CONFIG_FEATURE_HWIB=y +CONFIG_FEATURE_TLS_SHA1=y +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +CONFIG_FEATURE_BRCTL_FANCY=y +CONFIG_FEATURE_BRCTL_SHOW=y +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FTPD=y +CONFIG_FEATURE_FTPD_WRITE=y +CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y +CONFIG_FEATURE_FTPD_AUTHENTICATION=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +CONFIG_DNSDOMAINNAME=y +CONFIG_HTTPD=y +CONFIG_FEATURE_HTTPD_PORT_DEFAULT=80 +CONFIG_FEATURE_HTTPD_RANGES=y +CONFIG_FEATURE_HTTPD_SETUID=y +CONFIG_FEATURE_HTTPD_BASIC_AUTH=y +CONFIG_FEATURE_HTTPD_AUTH_MD5=y +CONFIG_FEATURE_HTTPD_CGI=y +CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y +CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y +CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y +CONFIG_FEATURE_HTTPD_ERROR_PAGES=y +CONFIG_FEATURE_HTTPD_PROXY=y +CONFIG_FEATURE_HTTPD_GZIP=y +CONFIG_FEATURE_HTTPD_ETAG=y +CONFIG_FEATURE_HTTPD_LAST_MODIFIED=y +CONFIG_FEATURE_HTTPD_DATE=y +CONFIG_FEATURE_HTTPD_ACL_IP=y +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFPLUGD=y +CONFIG_IFUP=y +CONFIG_IFDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +CONFIG_INETD=y +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y +CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y +CONFIG_FEATURE_INETD_RPC=y +CONFIG_IP=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPNEIGH=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_NEIGH=y +CONFIG_FEATURE_IP_RARE_PROTOCOLS=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FAKEIDENTD=y +CONFIG_NAMEIF=y +CONFIG_FEATURE_NAMEIF_EXTENDED=y +CONFIG_NBDCLIENT=y +CONFIG_NC=y +CONFIG_NETCAT=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NC_110_COMPAT=y +CONFIG_NETSTAT=y +CONFIG_FEATURE_NETSTAT_WIDE=y +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_FEATURE_NSLOOKUP_BIG=y +CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y +CONFIG_NTPD=y +CONFIG_FEATURE_NTPD_SERVER=y +CONFIG_FEATURE_NTPD_CONF=y +CONFIG_FEATURE_NTP_AUTH=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +CONFIG_SLATTACH=y +CONFIG_SSL_CLIENT=y +CONFIG_TC=y +CONFIG_FEATURE_TC_INGRESS=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_FEATURE_TELNET_WIDTH=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_FEATURE_TELNETD_PORT_DEFAULT=23 +CONFIG_FEATURE_TELNETD_INETD_WAIT=y +CONFIG_TFTP=y +CONFIG_FEATURE_TFTP_PROGRESS_BAR=y +CONFIG_FEATURE_TFTP_HPA_COMPAT=y +CONFIG_TFTPD=y +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +CONFIG_TFTP_DEBUG=y +CONFIG_TLS=y +CONFIG_TRACEROUTE=y +CONFIG_TRACEROUTE6=y +CONFIG_FEATURE_TRACEROUTE_VERBOSE=y +CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y +CONFIG_TUNCTL=y +CONFIG_FEATURE_TUNCTL_UG=y +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_FTP=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_HTTPS=y +CONFIG_FEATURE_WGET_OPENSSL=y +CONFIG_WHOIS=y +CONFIG_ZCIP=y +CONFIG_UDHCPD=y +CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC=y +CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y +CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases" +CONFIG_DUMPLEASES=y +CONFIG_DHCPRELAY=y +CONFIG_UDHCPC=y +CONFIG_FEATURE_UDHCPC_ARPING=y +CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script" +CONFIG_UDHCPC6=y +CONFIG_FEATURE_UDHCPC6_RFC3646=y +CONFIG_FEATURE_UDHCPC6_RFC4704=y +CONFIG_FEATURE_UDHCPC6_RFC4833=y +CONFIG_FEATURE_UDHCPC6_RFC5970=y + +# +# Common options for DHCP applets +# +CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" +CONFIG_FEATURE_UDHCP_PORT=y +CONFIG_UDHCP_DEBUG=2 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 +CONFIG_FEATURE_UDHCP_RFC3397=y +CONFIG_FEATURE_UDHCP_8021Q=y +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" + +# +# Print Utilities +# +CONFIG_LPD=y +CONFIG_LPR=y +CONFIG_LPQ=y + +# +# Mail Utilities +# +CONFIG_FEATURE_MIME_CHARSET="us-ascii" +CONFIG_MAKEMIME=y +CONFIG_POPMAILDIR=y +CONFIG_FEATURE_POPMAILDIR_DELIVERY=y +CONFIG_REFORMIME=y +CONFIG_FEATURE_REFORMIME_COMPAT=y +CONFIG_SENDMAIL=y + +# +# Process Utilities +# +CONFIG_FEATURE_FAST_TOP=y +CONFIG_FEATURE_SHOW_THREADS=y +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_IOSTAT=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_LSOF=y +CONFIG_MPSTAT=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PKILL=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PMAP=y +CONFIG_POWERTOP=y +CONFIG_FEATURE_POWERTOP_INTERACTIVE=y +CONFIG_PS=y +# CONFIG_FEATURE_PS_WIDE is not set +# CONFIG_FEATURE_PS_LONG is not set +CONFIG_FEATURE_PS_TIME=y +CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS=y +CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y +CONFIG_PSTREE=y +CONFIG_PWDX=y +CONFIG_SMEMCAP=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_INTERACTIVE=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_SMP_CPU=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOP_SMP_PROCESS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y +CONFIG_WATCH=y + +# +# Runit Utilities +# +# CONFIG_CHPST is not set +# CONFIG_SETUIDGID is not set +# CONFIG_ENVUIDGID is not set +# CONFIG_ENVDIR is not set +# CONFIG_SOFTLIMIT is not set +# CONFIG_RUNSV is not set +# CONFIG_RUNSVDIR is not set +# CONFIG_FEATURE_RUNSVDIR_LOG is not set +# CONFIG_SV is not set +CONFIG_SV_DEFAULT_SERVICE_DIR="" +# CONFIG_SVC is not set +# CONFIG_SVOK is not set +# CONFIG_SVLOGD is not set +# CONFIG_CHCON is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RUNCON is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set +# CONFIG_SETSEBOOL is not set + +# +# Shells +# +CONFIG_SH_IS_ASH=y +# CONFIG_SH_IS_HUSH is not set +# CONFIG_SH_IS_NONE is not set +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +CONFIG_SHELL_ASH=y +CONFIG_ASH=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_INTERNAL_GLOB=y +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_BASH_SOURCE_CURDIR=y +CONFIG_ASH_BASH_NOT_FOUND_HOOK=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +CONFIG_ASH_IDLE_TIMEOUT=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_ECHO=y +CONFIG_ASH_PRINTF=y +CONFIG_ASH_TEST=y +CONFIG_ASH_SLEEP=y +CONFIG_ASH_HELP=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_CMDCMD=y +CONFIG_CTTYHACK=y +CONFIG_HUSH=y +CONFIG_SHELL_HUSH=y +CONFIG_HUSH_BASH_COMPAT=y +CONFIG_HUSH_BRACE_EXPANSION=y +CONFIG_HUSH_BASH_SOURCE_CURDIR=y +CONFIG_HUSH_LINENO_VAR=y +CONFIG_HUSH_INTERACTIVE=y +CONFIG_HUSH_SAVEHISTORY=y +CONFIG_HUSH_JOB=y +CONFIG_HUSH_TICK=y +CONFIG_HUSH_IF=y +CONFIG_HUSH_LOOPS=y +CONFIG_HUSH_CASE=y +CONFIG_HUSH_FUNCTIONS=y +CONFIG_HUSH_LOCAL=y +CONFIG_HUSH_RANDOM_SUPPORT=y +CONFIG_HUSH_MODE_X=y +CONFIG_HUSH_ECHO=y +CONFIG_HUSH_PRINTF=y +CONFIG_HUSH_TEST=y +CONFIG_HUSH_HELP=y +CONFIG_HUSH_EXPORT=y +CONFIG_HUSH_EXPORT_N=y +CONFIG_HUSH_READONLY=y +CONFIG_HUSH_KILL=y +CONFIG_HUSH_WAIT=y +CONFIG_HUSH_COMMAND=y +CONFIG_HUSH_TRAP=y +CONFIG_HUSH_TYPE=y +CONFIG_HUSH_TIMES=y +CONFIG_HUSH_READ=y +CONFIG_HUSH_SET=y +CONFIG_HUSH_UNSET=y +CONFIG_HUSH_ULIMIT=y +CONFIG_HUSH_UMASK=y +CONFIG_HUSH_GETOPTS=y +CONFIG_HUSH_MEMLEAK=y + +# +# Options common to all shells +# +CONFIG_FEATURE_SH_MATH=y +CONFIG_FEATURE_SH_MATH_64=y +CONFIG_FEATURE_SH_MATH_BASE=y +CONFIG_FEATURE_SH_EXTRA_QUIET=y +CONFIG_FEATURE_SH_STANDALONE=y +CONFIG_FEATURE_SH_NOFORK=y +CONFIG_FEATURE_SH_READ_FRAC=y +CONFIG_FEATURE_SH_HISTFILESIZE=y +CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y + +# +# System Logging Utilities +# +CONFIG_KLOGD=y + +# +# klogd should not be used together with syslog to kernel printk buffer +# +CONFIG_FEATURE_KLOGD_KLOGCTL=y +CONFIG_LOGGER=y +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +CONFIG_FEATURE_SYSLOGD_DUP=y +CONFIG_FEATURE_SYSLOGD_CFG=y +CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS=y +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_FEATURE_KMSG_SYSLOG=y diff --git a/srcpkgs/busybox-full/template b/srcpkgs/busybox-full/template new file mode 100644 index 0000000..2df6806 --- /dev/null +++ b/srcpkgs/busybox-full/template @@ -0,0 +1,32 @@ +# Template file for 'busybox' +pkgname=busybox-full +version=1.35.0 +revision=0 +short_desc="Swiss Army Knife of Embedded Linux - Full (not my software)" +maintainer="Johnathon Li " +license="GPL-2.0-only" +homepage="https://www.busybox.net" +makedepends="curl" +conflicts="busybox>=0 busybox-huge>=0 busybox-core>=0" +archs="x86_64-musl *-musl" + +_alternatives_core=" + ash:ash:/usr/bin/busybox + awk:awk:/usr/bin/busybox + hostname:hostname:/usr/bin/busybox + sh:sh:/usr/bin/busybox + vi:vi:/usr/bin/busybox + logger:logger:/usr/bin/busybox" + +_alternatives=" + ${_alternatives_core} + ntpd:ntpd:/usr/bin/busybox + ntpd:ntpd:/etc/sv/busybox-ntpd" + +alternatives="${_alternatives}" +register_shell="/usr/bin/ash" + +do_install() { + curl -Lo busybox https://busybox.net/downloads/binaries/${version}-$(uname -m)-linux-${XBPS_TARGET_LIBC}/busybox + vbin busybox +} diff --git a/srcpkgs/busybox-huge b/srcpkgs/busybox-huge new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/srcpkgs/busybox-huge @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/srcpkgs/busybox-static b/srcpkgs/busybox-static new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/srcpkgs/busybox-static @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/srcpkgs/busybox/diff b/srcpkgs/busybox/diff new file mode 100644 index 0000000..f647e30 --- /dev/null +++ b/srcpkgs/busybox/diff @@ -0,0 +1,128 @@ +# Template file for 'busybox' +pkgname=busybox +version=1.34.1 +revision=4 +hostmakedepends="perl" +checkdepends="tar which zip" +short_desc="Swiss Army Knife of Embedded Linux" +maintainer="Cameron Nemo " +license="GPL-2.0-only" +homepage="https://www.busybox.net" +distfiles="${homepage}/downloads/busybox-${version}.tar.bz2" +checksum=415fbd89e5344c96acf449d94a6f956dbed62e18e835fc83e064db33a34bd549 + +_alternatives_core=" + ash:ash:/usr/bin/busybox + awk:awk:/usr/bin/busybox + hostname:hostname:/usr/bin/busybox + sh:sh:/usr/bin/busybox + vi:vi:/usr/bin/busybox + logger:logger:/usr/bin/busybox" + +_alternatives=" + ${_alternatives_core} + ntpd:ntpd:/usr/bin/busybox + ntpd:ntpd:/etc/sv/busybox-ntpd" + +alternatives="${_alternatives}" +register_shell="/usr/bin/ash" + +_patch_config() { + local t="$1" + shift + while [ "$1" ]; do + local p="$1" + shift + echo "Applying $p..." + patch "${t}/.config" <"${FILESDIR}/dotconfig.d/${p}.patch" + done +} + +do_configure() { + mkdir -p src + mv * src || true + + local t + for t in busybox busybox-static busybox-core busybox-huge; do + mkdir -p $t + cp -f ${FILESDIR}/dotconfig ${t}/.config + + case "$XBPS_TARGET_MACHINE" in + *-musl) vsed -i -e /CONFIG_FEATURE_VI_REGEX_SEARCH/s/y/n/ \ + ${t}/.config;; + esac + + if [ "$CROSS_BUILD" ]; then + vsed -i -e \ + "s,\(CONFIG_CROSS_COMPILER_PREFIX\).*,\1=\"${XBPS_CROSS_TRIPLET}-\",g" \ + ${t}/.config + fi + done + + _patch_config busybox udhcpc ntpd + _patch_config busybox-static udhcpc ntpd static + _patch_config busybox-huge udhcpc ntpd httpd mdev sysklogd huge + + for t in busybox-core busybox busybox-static busybox-huge; do + make -C "${t}" KBUILD_SRC="${wrksrc}/src" -f "${wrksrc}/src/Makefile" oldconfig + make -C "${t}" KBUILD_SRC="${wrksrc}/src" -f "${wrksrc}/src/Makefile" prepare "${makejobs}" + done + + if [ "$SOURCE_DATE_EPOCH" ]; then + # rewrite date with the one from the date wrapper. + d=$(date +"%F %T %Z") + sed -i "s/\(#define AUTOCONF_TIMESTAMP\).*/\1 \"$d\"/" */include/autoconf.h + fi +} + +do_build() { + for t in busybox-core busybox busybox-static busybox-huge; do + make -C "${t}" SKIP_STRIP=y "${makejobs}" + done +} + +do_check() { + for t in busybox-core busybox busybox-static busybox-huge; do + make -C "${t}" "${makejobs}" \ + SKIP_KNOWN_BUGS=yes SKIP_INTERNET_TESTS=yes \ + check + done +} + +do_install() { + vbin busybox/busybox_unstripped busybox + vman busybox/docs/busybox.1 + vsv busybox-ntpd +} + +busybox-core_package() { + short_desc+=" (essential applets)" + conflicts="busybox>=0 busybox-huge>=0" + alternatives="${_alternatives_core}" + register_shell="/usr/bin/ash" + pkg_install() { + vbin busybox-core/busybox_unstripped busybox + vman busybox-core/docs/busybox.1 + } +} + +busybox-static_package() { + short_desc+=" (statically linked)" + pkg_install() { + vbin busybox-static/busybox busybox.static + } +} + +busybox-huge_package() { + short_desc+=" (extra applets)" + conflicts="busybox>=0 busybox-core>=0" + alternatives="${_alternatives}" + register_shell="/usr/bin/ash" + pkg_install() { + vbin busybox-huge/busybox_unstripped busybox + vman busybox-huge/docs/busybox.1 + vsv busybox-ntpd + vsv busybox-syslogd + vsv busybox-klogd + } +} diff --git a/srcpkgs/busybox/files/busybox-klogd/run b/srcpkgs/busybox/files/busybox-klogd/run new file mode 100644 index 0000000..a3f1198 --- /dev/null +++ b/srcpkgs/busybox/files/busybox-klogd/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec busybox klogd -n diff --git a/srcpkgs/busybox/files/busybox-ntpd/run b/srcpkgs/busybox/files/busybox-ntpd/run new file mode 100755 index 0000000..8fcd2df --- /dev/null +++ b/srcpkgs/busybox/files/busybox-ntpd/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec busybox ntpd -nN -p pool.ntp.org diff --git a/srcpkgs/busybox/files/busybox-syslogd/run b/srcpkgs/busybox/files/busybox-syslogd/run new file mode 100644 index 0000000..60d0be0 --- /dev/null +++ b/srcpkgs/busybox/files/busybox-syslogd/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec busybox syslogd -n diff --git a/srcpkgs/busybox/files/dotconfig b/srcpkgs/busybox/files/dotconfig new file mode 100644 index 0000000..673ebfd --- /dev/null +++ b/srcpkgs/busybox/files/dotconfig @@ -0,0 +1,1198 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.34.1 +# Sun Oct 3 22:14:53 2021 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Settings +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEDORA_COMPAT is not set +# CONFIG_INCLUDE_SUSv2 is not set +CONFIG_LONG_OPTS=y +CONFIG_SHOW_USAGE=y +# CONFIG_FEATURE_VERBOSE_USAGE is not set +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_LFS=y +# CONFIG_PAM is not set +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_UTMP is not set +# CONFIG_FEATURE_WTMP is not set +# CONFIG_FEATURE_PIDFILE is not set +CONFIG_PID_FILE_PATH="" +CONFIG_BUSYBOX=y +# CONFIG_FEATURE_SHOW_SCRIPT is not set +# CONFIG_FEATURE_INSTALLER is not set +# CONFIG_INSTALL_NO_USR is not set +CONFIG_FEATURE_SUID=y +# CONFIG_FEATURE_SUID_CONFIG is not set +# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_SYSLOG_INFO=y +CONFIG_FEATURE_SYSLOG=y + +# +# Build Options +# +# CONFIG_STATIC is not set +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" +CONFIG_EXTRA_CFLAGS="" +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_STACK_OPTIMIZATION_386=y +CONFIG_STATIC_LIBGCC=y + +# +# Installation Options ("make install" behavior) +# +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +# CONFIG_WARN_SIMPLE_MSG is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Library Tuning +# +# CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FLOAT_DURATION=y +CONFIG_FEATURE_RTMINMAX=y +CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SMALL=1 +CONFIG_SHA3_SMALL=1 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=15 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set +CONFIG_FEATURE_REVERSE_SEARCH=y +CONFIG_FEATURE_TAB_COMPLETION=y +CONFIG_FEATURE_USERNAME_COMPLETION=y +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_WINCH=y +# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set +# CONFIG_LOCALE_SUPPORT is not set +CONFIG_UNICODE_SUPPORT=y +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=63 +CONFIG_LAST_SUPPORTED_WCHAR=767 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_FEATURE_SKIP_ROOTFS=y +# CONFIG_MONOTONIC_SYSCALL is not set +# CONFIG_IOCTL_HEX2STR_ERROR is not set +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_FEATURE_SEAMLESS_LZMA=y +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +# CONFIG_FEATURE_SEAMLESS_Z is not set +# CONFIG_AR is not set +# CONFIG_FEATURE_AR_LONG_FILENAMES is not set +# CONFIG_FEATURE_AR_CREATE is not set +# CONFIG_UNCOMPRESS is not set +CONFIG_GUNZIP=y +CONFIG_ZCAT=y +CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y +CONFIG_BUNZIP2=y +CONFIG_BZCAT=y +# CONFIG_UNLZMA is not set +CONFIG_LZCAT=y +# CONFIG_LZMA is not set +CONFIG_UNXZ=y +CONFIG_XZCAT=y +CONFIG_XZ=y +CONFIG_BZIP2=y +CONFIG_BZIP2_SMALL=8 +CONFIG_FEATURE_BZIP2_DECOMPRESS=y +# CONFIG_CPIO is not set +# CONFIG_FEATURE_CPIO_O is not set +# CONFIG_FEATURE_CPIO_P is not set +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +CONFIG_GZIP=y +CONFIG_FEATURE_GZIP_LONG_OPTIONS=y +CONFIG_GZIP_FAST=2 +CONFIG_FEATURE_GZIP_LEVELS=y +CONFIG_FEATURE_GZIP_DECOMPRESS=y +# CONFIG_LZOP is not set +# CONFIG_UNLZOP is not set +# CONFIG_LZOPCAT is not set +# CONFIG_LZOP_COMPR_HIGH is not set +# CONFIG_RPM is not set +# CONFIG_RPM2CPIO is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +# CONFIG_FEATURE_TAR_FROM is not set +# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +# CONFIG_FEATURE_TAR_TO_COMMAND is not set +CONFIG_FEATURE_TAR_UNAME_GNAME=y +# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set +# CONFIG_FEATURE_TAR_SELINUX is not set +CONFIG_UNZIP=y +CONFIG_FEATURE_UNZIP_CDF=y +CONFIG_FEATURE_UNZIP_BZIP2=y +CONFIG_FEATURE_UNZIP_LZMA=y +CONFIG_FEATURE_UNZIP_XZ=y +# CONFIG_FEATURE_LZMA_FAST is not set + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAT=y +CONFIG_FEATURE_CATN=y +CONFIG_FEATURE_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y +CONFIG_CHROOT=y +# CONFIG_CKSUM is not set +CONFIG_CRC32=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_FEATURE_CP_LONG_OPTIONS=y +CONFIG_FEATURE_CP_REFLINK=y +CONFIG_CUT=y +CONFIG_FEATURE_CUT_REGEX=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_FANCY=y +CONFIG_DIRNAME=y +# CONFIG_DOS2UNIX is not set +# CONFIG_UNIX2DOS is not set +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_EXPAND=y +CONFIG_UNEXPAND=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FACTOR=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +# CONFIG_HOSTID is not set +CONFIG_ID=y +CONFIG_GROUPS=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LINK=y +CONFIG_LN=y +# CONFIG_LOGNAME is not set +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_WIDTH=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set +CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA512SUM=y +CONFIG_SHA3SUM=y + +# +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum +# +# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set +CONFIG_MKDIR=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MKTEMP=y +CONFIG_MV=y +CONFIG_NICE=y +CONFIG_NL=y +CONFIG_NOHUP=y +CONFIG_NPROC=y +CONFIG_OD=y +CONFIG_PASTE=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +CONFIG_SEQ=y +CONFIG_SHRED=y +CONFIG_SHUF=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set +CONFIG_SPLIT=y +# CONFIG_FEATURE_SPLIT_FANCY is not set +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_FEATURE_STAT_FILESYSTEM=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_FEATURE_SYNC_FANCY=y +CONFIG_FSYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_TEST1=y +CONFIG_TEST2=y +CONFIG_FEATURE_TEST_64=y +# CONFIG_TIMEOUT is not set +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TRUNCATE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNAME_OSNAME="Linux" +CONFIG_BB_ARCH=y +CONFIG_UNIQ=y +CONFIG_UNLINK=y +# CONFIG_USLEEP is not set +CONFIG_UUDECODE=y +CONFIG_BASE32=y +CONFIG_BASE64=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +# CONFIG_WHO is not set +# CONFIG_W is not set +# CONFIG_USERS is not set +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options +# +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +# CONFIG_DEALLOCVT is not set +CONFIG_DUMPKMAP=y +# CONFIG_FGCONSOLE is not set +CONFIG_KBD_MODE=y +# CONFIG_LOADFONT is not set +# CONFIG_SETFONT is not set +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set +CONFIG_DEFAULT_SETFONT_DIR="" +# CONFIG_FEATURE_LOADFONT_PSF2 is not set +# CONFIG_FEATURE_LOADFONT_RAW is not set +CONFIG_LOADKMAP=y +# CONFIG_OPENVT is not set +CONFIG_RESET=y +# CONFIG_RESIZE is not set +# CONFIG_FEATURE_RESIZE_PRINT is not set +# CONFIG_SETCONSOLE is not set +# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set +# CONFIG_SETKEYCODES is not set +# CONFIG_SETLOGCONS is not set +# CONFIG_SHOWKEY is not set + +# +# Debian Utilities +# +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +# CONFIG_START_STOP_DAEMON is not set +# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set +# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set +CONFIG_WHICH=y + +# +# klibc-utils +# +# CONFIG_MINIPS is not set +# CONFIG_NUKE is not set +# CONFIG_RESUME is not set +# CONFIG_RUN_INIT is not set + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_LIBM=y +CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_LONG_OPTIONS=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=4096 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_COLON_EXPAND=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_REGEX_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_ASK_TERMINAL=y +CONFIG_FEATURE_VI_UNDO=y +CONFIG_FEATURE_VI_UNDO_QUEUE=y +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_VI_VERBOSE_STATUS=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_EXECUTABLE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_EXEC_PLUS=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_QUIT=y +CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_EMPTY=y +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_FEATURE_FIND_LINKS=y +CONFIG_GREP=y +CONFIG_EGREP=y +CONFIG_FGREP=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y +CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y +CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y +CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y + +# +# Init Utilities +# +# CONFIG_BOOTCHARTD is not set +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set +# CONFIG_HALT is not set +# CONFIG_POWEROFF is not set +# CONFIG_REBOOT is not set +# CONFIG_FEATURE_WAIT_FOR_INIT is not set +# CONFIG_FEATURE_CALL_TELINIT is not set +CONFIG_TELINIT_PATH="" +# CONFIG_INIT is not set +# CONFIG_LINUXRC is not set +# CONFIG_FEATURE_USE_INITTAB is not set +# CONFIG_FEATURE_KILL_REMOVED is not set +CONFIG_FEATURE_KILL_DELAY=0 +# CONFIG_FEATURE_INIT_SCTTY is not set +# CONFIG_FEATURE_INIT_SYSLOG is not set +# CONFIG_FEATURE_INIT_QUIET is not set +# CONFIG_FEATURE_INIT_COREDUMPS is not set +CONFIG_INIT_TERMINAL_TYPE="" +# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set + +# +# Login/Password Management Utilities +# +# CONFIG_FEATURE_SHADOWPASSWDS is not set +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +# CONFIG_USE_BB_CRYPT is not set +# CONFIG_USE_BB_CRYPT_SHA is not set +# CONFIG_ADD_SHELL is not set +# CONFIG_REMOVE_SHELL is not set +# CONFIG_ADDGROUP is not set +# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set +# CONFIG_ADDUSER is not set +# CONFIG_FEATURE_CHECK_NAMES is not set +CONFIG_LAST_ID=0 +CONFIG_FIRST_SYSTEM_ID=0 +CONFIG_LAST_SYSTEM_ID=0 +# CONFIG_CHPASSWD is not set +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="" +# CONFIG_CRYPTPW is not set +# CONFIG_MKPASSWD is not set +# CONFIG_DELUSER is not set +# CONFIG_DELGROUP is not set +# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set +CONFIG_GETTY=y +# CONFIG_LOGIN is not set +# CONFIG_LOGIN_SESSION_AS_CHILD is not set +# CONFIG_LOGIN_SCRIPTS is not set +# CONFIG_FEATURE_NOLOGIN is not set +# CONFIG_FEATURE_SECURETTY is not set +# CONFIG_PASSWD is not set +# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set +# CONFIG_SU is not set +# CONFIG_FEATURE_SU_SYSLOG is not set +# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set +# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set +# CONFIG_SULOGIN is not set +# CONFIG_VLOCK is not set + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +# CONFIG_FSCK is not set +# CONFIG_LSATTR is not set +# CONFIG_TUNE2FS is not set + +# +# Linux Module Utilities +# +CONFIG_MODPROBE_SMALL=y +CONFIG_DEPMOD=y +CONFIG_INSMOD=y +CONFIG_LSMOD=y +# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +CONFIG_MODINFO=y +CONFIG_MODPROBE=y +# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set +CONFIG_RMMOD=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y +# CONFIG_FEATURE_2_4_MODULES is not set +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set +# CONFIG_FEATURE_MODUTILS_ALIAS is not set +# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" + +# +# Linux System Utilities +# +# CONFIG_ACPID is not set +# CONFIG_FEATURE_ACPID_COMPAT is not set +CONFIG_BLKDISCARD=y +CONFIG_BLKID=y +CONFIG_FEATURE_BLKID_TYPE=y +# CONFIG_BLOCKDEV is not set +# CONFIG_CAL is not set +# CONFIG_CHRT is not set +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FALLOCATE=y +CONFIG_FATATTR=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +# CONFIG_FDFORMAT is not set +CONFIG_FDISK=y +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +# CONFIG_FEATURE_OSF_LABEL is not set +CONFIG_FEATURE_GPT_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FINDFS=y +CONFIG_FLOCK=y +# CONFIG_FDFLUSH is not set +# CONFIG_FREERAMDISK is not set +# CONFIG_FSCK_MINIX is not set +CONFIG_FSFREEZE=y +CONFIG_FSTRIM=y +CONFIG_GETOPT=y +CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_HEXDUMP=y +# CONFIG_HD is not set +CONFIG_XXD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IONICE=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LOSETUP=y +CONFIG_LSPCI=y +CONFIG_LSUSB=y +# CONFIG_MDEV is not set +# CONFIG_FEATURE_MDEV_CONF is not set +# CONFIG_FEATURE_MDEV_RENAME is not set +# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set +# CONFIG_FEATURE_MDEV_EXEC is not set +# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +# CONFIG_FEATURE_MDEV_DAEMON is not set +# CONFIG_MESG is not set +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set +# CONFIG_MKE2FS is not set +# CONFIG_MKFS_EXT2 is not set +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +# CONFIG_MKDOSFS is not set +# CONFIG_MKFS_VFAT is not set +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_UUID=y +CONFIG_MORE=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +CONFIG_FEATURE_MOUNT_VERBOSE=y +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +# CONFIG_FEATURE_MOUNT_NFS is not set +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_FEATURE_MOUNT_OTHERTAB=y +# CONFIG_MOUNTPOINT is not set +# CONFIG_NOLOGIN is not set +# CONFIG_NOLOGIN_DEPENDENCIES is not set +CONFIG_NSENTER=y +CONFIG_PIVOT_ROOT=y +# CONFIG_RDATE is not set +# CONFIG_RDEV is not set +# CONFIG_READPROFILE is not set +CONFIG_RENICE=y +# CONFIG_REV is not set +# CONFIG_RTCWAKE is not set +# CONFIG_SCRIPT is not set +# CONFIG_SCRIPTREPLAY is not set +CONFIG_SETARCH=y +CONFIG_LINUX32=y +CONFIG_LINUX64=y +CONFIG_SETPRIV=y +CONFIG_FEATURE_SETPRIV_DUMP=y +CONFIG_FEATURE_SETPRIV_CAPABILITIES=y +CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y +CONFIG_SETSID=y +CONFIG_SWAPON=y +CONFIG_FEATURE_SWAPON_DISCARD=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWAPOFF=y +CONFIG_FEATURE_SWAPONOFF_LABEL=y +CONFIG_SWITCH_ROOT=y +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_FEATURE_TASKSET_CPULIST is not set +CONFIG_UEVENT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y +CONFIG_UNSHARE=y +# CONFIG_WALL is not set + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MOUNT_LOOP_CREATE=y +CONFIG_FEATURE_MTAB_SUPPORT=y +CONFIG_VOLUMEID=y + +# +# Filesystem/Volume identification +# +# CONFIG_FEATURE_VOLUMEID_BCACHE is not set +CONFIG_FEATURE_VOLUMEID_BTRFS=y +# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +CONFIG_FEATURE_VOLUMEID_EROFS=y +CONFIG_FEATURE_VOLUMEID_EXFAT=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_F2FS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +# CONFIG_FEATURE_VOLUMEID_HFS is not set +CONFIG_FEATURE_VOLUMEID_ISO9660=y +# CONFIG_FEATURE_VOLUMEID_JFS is not set +CONFIG_FEATURE_VOLUMEID_LFS=y +# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +# CONFIG_FEATURE_VOLUMEID_MINIX is not set +CONFIG_FEATURE_VOLUMEID_NILFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +# CONFIG_FEATURE_VOLUMEID_REISERFS is not set +# CONFIG_FEATURE_VOLUMEID_ROMFS is not set +CONFIG_FEATURE_VOLUMEID_SQUASHFS=y +# CONFIG_FEATURE_VOLUMEID_SYSV is not set +# CONFIG_FEATURE_VOLUMEID_UBIFS is not set +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_XFS=y + +# +# Miscellaneous Utilities +# +# CONFIG_ADJTIMEX is not set +CONFIG_ASCII=y +# CONFIG_BBCONFIG is not set +# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +# CONFIG_BC is not set +CONFIG_DC=y +# CONFIG_FEATURE_DC_BIG is not set +CONFIG_FEATURE_DC_LIBM=y +# CONFIG_FEATURE_BC_INTERACTIVE is not set +# CONFIG_FEATURE_BC_LONG_OPTIONS is not set +# CONFIG_BEEP is not set +CONFIG_FEATURE_BEEP_FREQ=0 +CONFIG_FEATURE_BEEP_LENGTH_MS=0 +# CONFIG_CHAT is not set +# CONFIG_FEATURE_CHAT_NOFAIL is not set +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +# CONFIG_CONSPY is not set +# CONFIG_CROND is not set +# CONFIG_FEATURE_CROND_D is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +# CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set +CONFIG_FEATURE_CROND_DIR="" +# CONFIG_CRONTAB is not set +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +# CONFIG_DEVMEM is not set +# CONFIG_FBSPLASH is not set +# CONFIG_FLASH_ERASEALL is not set +# CONFIG_FLASH_LOCK is not set +# CONFIG_FLASH_UNLOCK is not set +# CONFIG_FLASHCP is not set +# CONFIG_HDPARM is not set +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +CONFIG_HEXEDIT=y +CONFIG_I2CGET=y +CONFIG_I2CSET=y +CONFIG_I2CDUMP=y +CONFIG_I2CDETECT=y +CONFIG_I2CTRANSFER=y +# CONFIG_INOTIFYD is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_TRUNCATE=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y +CONFIG_FEATURE_LESS_DASHCMD=y +CONFIG_FEATURE_LESS_LINENUMS=y +CONFIG_FEATURE_LESS_RAW=y +CONFIG_FEATURE_LESS_ENV=y +CONFIG_LSSCSI=y +# CONFIG_MAKEDEVS is not set +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +# CONFIG_FEATURE_MAKEDEVS_TABLE is not set +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +# CONFIG_MIM is not set +# CONFIG_MT is not set +# CONFIG_NANDWRITE is not set +# CONFIG_NANDDUMP is not set +CONFIG_PARTPROBE=y +# CONFIG_RAIDAUTORUN is not set +# CONFIG_READAHEAD is not set +CONFIG_RFKILL=y +# CONFIG_RUNLEVEL is not set +# CONFIG_RX is not set +CONFIG_SETFATTR=y +# CONFIG_SETSERIAL is not set +CONFIG_STRINGS=y +CONFIG_TIME=y +CONFIG_TS=y +# CONFIG_TTYSIZE is not set +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set +# CONFIG_UBIRENAME is not set +# CONFIG_VOLNAME is not set +# CONFIG_WATCHDOG is not set +# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_UNIX_LOCAL=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_FEATURE_TLS_SHA1 is not set +# CONFIG_ARP is not set +# CONFIG_ARPING is not set +CONFIG_BRCTL=y +CONFIG_FEATURE_BRCTL_FANCY=y +CONFIG_FEATURE_BRCTL_SHOW=y +# CONFIG_DNSD is not set +# CONFIG_ETHER_WAKE is not set +# CONFIG_FTPD is not set +# CONFIG_FEATURE_FTPD_WRITE is not set +# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set +# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set +# CONFIG_FTPGET is not set +# CONFIG_FTPPUT is not set +# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set +CONFIG_HOSTNAME=y +CONFIG_DNSDOMAINNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +# CONFIG_FEATURE_HTTPD_GZIP is not set +# CONFIG_FEATURE_HTTPD_ETAG is not set +# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set +# CONFIG_FEATURE_HTTPD_DATE is not set +# CONFIG_FEATURE_HTTPD_ACL_IP is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +# CONFIG_IFPLUGD is not set +# CONFIG_IFUP is not set +# CONFIG_IFDOWN is not set +CONFIG_IFUPDOWN_IFSTATE_PATH="" +# CONFIG_FEATURE_IFUPDOWN_IP is not set +# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set +# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set +# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set +# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPNEIGH=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_NEIGH=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +# CONFIG_IPCALC is not set +# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set +# CONFIG_FEATURE_IPCALC_FANCY is not set +# CONFIG_FAKEIDENTD is not set +# CONFIG_NAMEIF is not set +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +# CONFIG_NBDCLIENT is not set +CONFIG_NC=y +# CONFIG_NETCAT is not set +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +# CONFIG_NC_110_COMPAT is not set +CONFIG_NETSTAT=y +CONFIG_FEATURE_NETSTAT_WIDE=y +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_FEATURE_NSLOOKUP_BIG=y +CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y +# CONFIG_NTPD is not set +# CONFIG_FEATURE_NTPD_SERVER is not set +# CONFIG_FEATURE_NTPD_CONF is not set +# CONFIG_FEATURE_NTP_AUTH is not set +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +# CONFIG_PSCAN is not set +# CONFIG_ROUTE is not set +# CONFIG_SLATTACH is not set +CONFIG_SSL_CLIENT=y +CONFIG_TC=y +CONFIG_FEATURE_TC_INGRESS=y +# CONFIG_TCPSVD is not set +# CONFIG_UDPSVD is not set +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_FEATURE_TELNET_WIDTH=y +# CONFIG_TELNETD is not set +# CONFIG_FEATURE_TELNETD_STANDALONE is not set +# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set +# CONFIG_TFTP is not set +# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set +# CONFIG_FEATURE_TFTP_HPA_COMPAT is not set +# CONFIG_TFTPD is not set +# CONFIG_FEATURE_TFTP_GET is not set +# CONFIG_FEATURE_TFTP_PUT is not set +# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set +# CONFIG_TFTP_DEBUG is not set +CONFIG_TLS=y +# CONFIG_TRACEROUTE is not set +# CONFIG_TRACEROUTE6 is not set +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_TUNCTL is not set +# CONFIG_FEATURE_TUNCTL_UG is not set +# CONFIG_VCONFIG is not set +CONFIG_WGET=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_FTP=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_HTTPS=y +CONFIG_FEATURE_WGET_OPENSSL=y +CONFIG_WHOIS=y +# CONFIG_ZCIP is not set +# CONFIG_UDHCPD is not set +# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_DUMPLEASES is not set +# CONFIG_DHCPRELAY is not set +# CONFIG_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set +CONFIG_UDHCPC_DEFAULT_SCRIPT="" +# CONFIG_UDHCPC6 is not set +# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set +# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set +# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set +# CONFIG_FEATURE_UDHCPC6_RFC5970 is not set +CONFIG_UDHCPC_DEFAULT_INTERFACE="" +# CONFIG_FEATURE_UDHCP_PORT is not set +CONFIG_UDHCP_DEBUG=0 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 +# CONFIG_FEATURE_UDHCP_RFC3397 is not set +# CONFIG_FEATURE_UDHCP_8021Q is not set +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" + +# +# Print Utilities +# +# CONFIG_LPD is not set +# CONFIG_LPR is not set +# CONFIG_LPQ is not set + +# +# Mail Utilities +# +# CONFIG_MAKEMIME is not set +# CONFIG_POPMAILDIR is not set +# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set +# CONFIG_REFORMIME is not set +# CONFIG_FEATURE_REFORMIME_COMPAT is not set +# CONFIG_SENDMAIL is not set +CONFIG_FEATURE_MIME_CHARSET="" + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_IOSTAT=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_LSOF=y +CONFIG_MPSTAT=y +# CONFIG_NMETER is not set +CONFIG_PGREP=y +CONFIG_PKILL=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PMAP=y +CONFIG_POWERTOP=y +CONFIG_FEATURE_POWERTOP_INTERACTIVE=y +CONFIG_PS=y +# CONFIG_FEATURE_PS_WIDE is not set +# CONFIG_FEATURE_PS_LONG is not set +CONFIG_FEATURE_PS_TIME=y +CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS=y +CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y +CONFIG_PSTREE=y +# CONFIG_PWDX is not set +# CONFIG_SMEMCAP is not set +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_INTERACTIVE=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_SMP_CPU=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOP_SMP_PROCESS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set +# CONFIG_WATCH is not set +CONFIG_FEATURE_SHOW_THREADS=y + +# +# Runit Utilities +# +CONFIG_CHPST=y +# CONFIG_SETUIDGID is not set +# CONFIG_ENVUIDGID is not set +# CONFIG_ENVDIR is not set +# CONFIG_SOFTLIMIT is not set +# CONFIG_RUNSV is not set +# CONFIG_RUNSVDIR is not set +# CONFIG_FEATURE_RUNSVDIR_LOG is not set +CONFIG_SV=y +CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" +# CONFIG_SVC is not set +CONFIG_SVOK=y +# CONFIG_SVLOGD is not set +# CONFIG_CHCON is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RUNCON is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set +# CONFIG_SETSEBOOL is not set + +# +# Shells +# +CONFIG_SH_IS_ASH=y +# CONFIG_SH_IS_HUSH is not set +# CONFIG_SH_IS_NONE is not set +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +CONFIG_SHELL_ASH=y +CONFIG_ASH=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_INTERNAL_GLOB=y +CONFIG_ASH_BASH_COMPAT=y +# CONFIG_ASH_BASH_SOURCE_CURDIR is not set +CONFIG_ASH_BASH_NOT_FOUND_HOOK=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_MAIL is not set +CONFIG_ASH_ECHO=y +CONFIG_ASH_PRINTF=y +CONFIG_ASH_TEST=y +CONFIG_ASH_HELP=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_CMDCMD=y +CONFIG_CTTYHACK=y +# CONFIG_HUSH is not set +# CONFIG_SHELL_HUSH is not set +# CONFIG_HUSH_BASH_COMPAT is not set +# CONFIG_HUSH_BRACE_EXPANSION is not set +# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +# CONFIG_HUSH_LINENO_VAR is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_SAVEHISTORY is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_LOCAL is not set +# CONFIG_HUSH_RANDOM_SUPPORT is not set +# CONFIG_HUSH_MODE_X is not set +# CONFIG_HUSH_ECHO is not set +# CONFIG_HUSH_PRINTF is not set +# CONFIG_HUSH_TEST is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_EXPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_READONLY is not set +# CONFIG_HUSH_KILL is not set +# CONFIG_HUSH_WAIT is not set +# CONFIG_HUSH_COMMAND is not set +# CONFIG_HUSH_TRAP is not set +# CONFIG_HUSH_TYPE is not set +# CONFIG_HUSH_TIMES is not set +# CONFIG_HUSH_READ is not set +# CONFIG_HUSH_SET is not set +# CONFIG_HUSH_UNSET is not set +# CONFIG_HUSH_ULIMIT is not set +# CONFIG_HUSH_UMASK is not set +# CONFIG_HUSH_GETOPTS is not set +# CONFIG_HUSH_MEMLEAK is not set + +# +# Options common to all shells +# +CONFIG_FEATURE_SH_MATH=y +CONFIG_FEATURE_SH_MATH_64=y +CONFIG_FEATURE_SH_MATH_BASE=y +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_READ_FRAC=y +CONFIG_FEATURE_SH_HISTFILESIZE=y +# CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS is not set + +# +# System Logging Utilities +# +# CONFIG_KLOGD is not set +# CONFIG_FEATURE_KLOGD_KLOGCTL is not set +CONFIG_LOGGER=y +# CONFIG_LOGREAD is not set +# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set +# CONFIG_SYSLOGD is not set +# CONFIG_FEATURE_ROTATE_LOGFILE is not set +# CONFIG_FEATURE_REMOTE_LOG is not set +# CONFIG_FEATURE_SYSLOGD_DUP is not set +# CONFIG_FEATURE_SYSLOGD_CFG is not set +# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 +# CONFIG_FEATURE_IPC_SYSLOG is not set +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 +# CONFIG_FEATURE_KMSG_SYSLOG is not set diff --git a/srcpkgs/busybox/files/dotconfig.d/httpd.patch b/srcpkgs/busybox/files/dotconfig.d/httpd.patch new file mode 100644 index 0000000..cde1147 --- /dev/null +++ b/srcpkgs/busybox/files/dotconfig.d/httpd.patch @@ -0,0 +1,39 @@ +@@ -864,22 +864,22 @@ + # CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set + CONFIG_HOSTNAME=y + CONFIG_DNSDOMAINNAME=y +-# CONFIG_HTTPD is not set +-# CONFIG_FEATURE_HTTPD_RANGES is not set +-# CONFIG_FEATURE_HTTPD_SETUID is not set +-# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +-# CONFIG_FEATURE_HTTPD_CGI is not set +-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +-# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +-# CONFIG_FEATURE_HTTPD_PROXY is not set +-# CONFIG_FEATURE_HTTPD_GZIP is not set +-# CONFIG_FEATURE_HTTPD_ETAG is not set +-# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set +-# CONFIG_FEATURE_HTTPD_DATE is not set +-# CONFIG_FEATURE_HTTPD_ACL_IP is not set ++CONFIG_HTTPD=y ++CONFIG_FEATURE_HTTPD_RANGES=y ++CONFIG_FEATURE_HTTPD_SETUID=y ++CONFIG_FEATURE_HTTPD_BASIC_AUTH=y ++CONFIG_FEATURE_HTTPD_AUTH_MD5=y ++CONFIG_FEATURE_HTTPD_CGI=y ++CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y ++CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y ++CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y ++CONFIG_FEATURE_HTTPD_ERROR_PAGES=y ++CONFIG_FEATURE_HTTPD_PROXY=y ++CONFIG_FEATURE_HTTPD_GZIP=y ++CONFIG_FEATURE_HTTPD_ETAG=y ++CONFIG_FEATURE_HTTPD_LAST_MODIFIED=y ++CONFIG_FEATURE_HTTPD_DATE=y ++CONFIG_FEATURE_HTTPD_ACL_IP=y + CONFIG_IFCONFIG=y + CONFIG_FEATURE_IFCONFIG_STATUS=y + CONFIG_FEATURE_IFCONFIG_SLIP=y diff --git a/srcpkgs/busybox/files/dotconfig.d/huge.patch b/srcpkgs/busybox/files/dotconfig.d/huge.patch new file mode 100644 index 0000000..bcf9814 --- /dev/null +++ b/srcpkgs/busybox/files/dotconfig.d/huge.patch @@ -0,0 +1,422 @@ +@@ -94,7 +94,7 @@ + CONFIG_PASSWORD_MINLEN=6 + CONFIG_MD5_SMALL=1 + CONFIG_SHA3_SMALL=1 +-# CONFIG_FEATURE_FAST_TOP is not set ++CONFIG_FEATURE_FAST_TOP=y + # CONFIG_FEATURE_ETC_NETWORKS is not set + # CONFIG_FEATURE_ETC_SERVICES is not set + CONFIG_FEATURE_EDITING=y +@@ -125,7 +125,7 @@ + CONFIG_FEATURE_USE_SENDFILE=y + CONFIG_FEATURE_COPYBUF_KB=4 + CONFIG_FEATURE_SKIP_ROOTFS=y +-# CONFIG_MONOTONIC_SYSCALL is not set ++CONFIG_MONOTONIC_SYSCALL=y + # CONFIG_IOCTL_HEX2STR_ERROR is not set + # CONFIG_FEATURE_HWIB is not set + +@@ -159,9 +159,9 @@ + CONFIG_BZIP2=y + CONFIG_BZIP2_SMALL=8 + CONFIG_FEATURE_BZIP2_DECOMPRESS=y +-# CONFIG_CPIO is not set +-# CONFIG_FEATURE_CPIO_O is not set +-# CONFIG_FEATURE_CPIO_P is not set ++CONFIG_CPIO=y ++CONFIG_FEATURE_CPIO_O=y ++CONFIG_FEATURE_CPIO_P=y + # CONFIG_DPKG is not set + # CONFIG_DPKG_DEB is not set + CONFIG_GZIP=y +@@ -192,7 +192,7 @@ + CONFIG_FEATURE_UNZIP_BZIP2=y + CONFIG_FEATURE_UNZIP_LZMA=y + CONFIG_FEATURE_UNZIP_XZ=y +-# CONFIG_FEATURE_LZMA_FAST is not set ++CONFIG_FEATURE_LZMA_FAST=y + + # + # Coreutils +@@ -206,7 +206,7 @@ + CONFIG_CHOWN=y + CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y + CONFIG_CHROOT=y +-# CONFIG_CKSUM is not set ++CONFIG_CKSUM=y + CONFIG_CRC32=y + CONFIG_COMM=y + CONFIG_CP=y +@@ -216,11 +216,11 @@ + CONFIG_FEATURE_CUT_REGEX=y + CONFIG_DATE=y + CONFIG_FEATURE_DATE_ISOFMT=y +-# CONFIG_FEATURE_DATE_NANO is not set ++CONFIG_FEATURE_DATE_NANO=y + CONFIG_FEATURE_DATE_COMPAT=y + CONFIG_DD=y + CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +-# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set ++CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y + CONFIG_FEATURE_DD_IBS_OBS=y + CONFIG_FEATURE_DD_STATUS=y + CONFIG_DF=y +@@ -269,7 +269,7 @@ + # + # Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum + # +-# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set ++CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + CONFIG_MKDIR=y + CONFIG_MKFIFO=y + CONFIG_MKNOD=y +@@ -316,7 +316,7 @@ + CONFIG_TEST1=y + CONFIG_TEST2=y + CONFIG_FEATURE_TEST_64=y +-# CONFIG_TIMEOUT is not set ++CONFIG_TIMEOUT=y + CONFIG_TOUCH=y + CONFIG_FEATURE_TOUCH_SUSV3=y + CONFIG_TR=y +@@ -330,7 +330,7 @@ + CONFIG_BB_ARCH=y + CONFIG_UNIQ=y + CONFIG_UNLINK=y +-# CONFIG_USLEEP is not set ++CONFIG_USLEEP=y + CONFIG_UUDECODE=y + CONFIG_BASE32=y + CONFIG_BASE64=y +@@ -374,7 +374,7 @@ + # CONFIG_FEATURE_LOADFONT_PSF2 is not set + # CONFIG_FEATURE_LOADFONT_RAW is not set + CONFIG_LOADKMAP=y +-# CONFIG_OPENVT is not set ++CONFIG_OPENVT=y + CONFIG_RESET=y + # CONFIG_RESIZE is not set + # CONFIG_FEATURE_RESIZE_PRINT is not set +@@ -549,7 +549,7 @@ + # + CONFIG_CHATTR=y + # CONFIG_FSCK is not set +-# CONFIG_LSATTR is not set ++CONFIG_LSATTR=y + # CONFIG_TUNE2FS is not set + + # +@@ -592,7 +592,7 @@ + CONFIG_BLKID=y + CONFIG_FEATURE_BLKID_TYPE=y + # CONFIG_BLOCKDEV is not set +-# CONFIG_CAL is not set ++CONFIG_CAL=y + # CONFIG_CHRT is not set + CONFIG_DMESG=y + CONFIG_FEATURE_DMESG_PRETTY=y +@@ -644,13 +644,13 @@ + CONFIG_FEATURE_MDEV_DAEMON=y + # CONFIG_MESG is not set + # CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set +-# CONFIG_MKE2FS is not set +-# CONFIG_MKFS_EXT2 is not set ++CONFIG_MKE2FS=y ++CONFIG_MKFS_EXT2=y + # CONFIG_MKFS_MINIX is not set + # CONFIG_FEATURE_MINIX2 is not set + # CONFIG_MKFS_REISER is not set +-# CONFIG_MKDOSFS is not set +-# CONFIG_MKFS_VFAT is not set ++CONFIG_MKDOSFS=y ++CONFIG_MKFS_VFAT=y + CONFIG_MKSWAP=y + CONFIG_FEATURE_MKSWAP_UUID=y + CONFIG_MORE=y +@@ -664,19 +664,19 @@ + CONFIG_FEATURE_MOUNT_FLAGS=y + CONFIG_FEATURE_MOUNT_FSTAB=y + CONFIG_FEATURE_MOUNT_OTHERTAB=y +-# CONFIG_MOUNTPOINT is not set ++CONFIG_MOUNTPOINT=y + # CONFIG_NOLOGIN is not set + # CONFIG_NOLOGIN_DEPENDENCIES is not set + CONFIG_NSENTER=y + CONFIG_PIVOT_ROOT=y +-# CONFIG_RDATE is not set ++CONFIG_RDATE=y + # CONFIG_RDEV is not set + # CONFIG_READPROFILE is not set + CONFIG_RENICE=y +-# CONFIG_REV is not set +-# CONFIG_RTCWAKE is not set +-# CONFIG_SCRIPT is not set +-# CONFIG_SCRIPTREPLAY is not set ++CONFIG_REV=y ++CONFIG_RTCWAKE=y ++CONFIG_SCRIPT=y ++CONFIG_SCRIPTREPLAY=y + CONFIG_SETARCH=y + CONFIG_LINUX32=y + CONFIG_LINUX64=y +@@ -691,9 +691,9 @@ + CONFIG_SWAPOFF=y + CONFIG_FEATURE_SWAPONOFF_LABEL=y + CONFIG_SWITCH_ROOT=y +-# CONFIG_TASKSET is not set +-# CONFIG_FEATURE_TASKSET_FANCY is not set +-# CONFIG_FEATURE_TASKSET_CPULIST is not set ++CONFIG_TASKSET=y ++CONFIG_FEATURE_TASKSET_FANCY=y ++CONFIG_FEATURE_TASKSET_CPULIST=y + CONFIG_UEVENT=y + CONFIG_UMOUNT=y + CONFIG_FEATURE_UMOUNT_ALL=y +@@ -745,12 +745,12 @@ + CONFIG_ASCII=y + # CONFIG_BBCONFIG is not set + # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +-# CONFIG_BC is not set ++CONFIG_BC=y + CONFIG_DC=y +-# CONFIG_FEATURE_DC_BIG is not set +-CONFIG_FEATURE_DC_LIBM=y +-# CONFIG_FEATURE_BC_INTERACTIVE is not set +-# CONFIG_FEATURE_BC_LONG_OPTIONS is not set ++CONFIG_FEATURE_DC_BIG=y ++# CONFIG_FEATURE_DC_LIBM is not set ++CONFIG_FEATURE_BC_INTERACTIVE=y ++CONFIG_FEATURE_BC_LONG_OPTIONS=y + # CONFIG_BEEP is not set + CONFIG_FEATURE_BEEP_FREQ=0 + CONFIG_FEATURE_BEEP_LENGTH_MS=0 +@@ -774,7 +774,7 @@ + # CONFIG_DEVFSD_FG_NP is not set + # CONFIG_DEVFSD_VERBOSE is not set + # CONFIG_FEATURE_DEVFS is not set +-# CONFIG_DEVMEM is not set ++CONFIG_DEVMEM=y + # CONFIG_FBSPLASH is not set + # CONFIG_FLASH_ERASEALL is not set + # CONFIG_FLASH_LOCK is not set +@@ -812,7 +812,7 @@ + # CONFIG_FEATURE_MAKEDEVS_LEAF is not set + # CONFIG_FEATURE_MAKEDEVS_TABLE is not set + # CONFIG_MAN is not set +-# CONFIG_MICROCOM is not set ++CONFIG_MICROCOM=y + # CONFIG_MIM is not set + # CONFIG_MT is not set + # CONFIG_NANDWRITE is not set +@@ -824,7 +824,7 @@ + # CONFIG_RUNLEVEL is not set + # CONFIG_RX is not set + CONFIG_SETFATTR=y +-# CONFIG_SETSERIAL is not set ++CONFIG_SETSERIAL=y + CONFIG_STRINGS=y + CONFIG_TIME=y + CONFIG_TS=y +@@ -848,20 +848,20 @@ + CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y + # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set + # CONFIG_FEATURE_TLS_SHA1 is not set +-# CONFIG_ARP is not set +-# CONFIG_ARPING is not set ++CONFIG_ARP=y ++CONFIG_ARPING=y + CONFIG_BRCTL=y + CONFIG_FEATURE_BRCTL_FANCY=y + CONFIG_FEATURE_BRCTL_SHOW=y + # CONFIG_DNSD is not set +-# CONFIG_ETHER_WAKE is not set +-# CONFIG_FTPD is not set +-# CONFIG_FEATURE_FTPD_WRITE is not set +-# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set +-# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set +-# CONFIG_FTPGET is not set +-# CONFIG_FTPPUT is not set +-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set ++CONFIG_ETHER_WAKE=y ++CONFIG_FTPD=y ++CONFIG_FEATURE_FTPD_WRITE=y ++CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y ++CONFIG_FEATURE_FTPD_AUTHENTICATION=y ++CONFIG_FTPGET=y ++CONFIG_FTPPUT=y ++CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y + CONFIG_HOSTNAME=y + CONFIG_DNSDOMAINNAME=y + CONFIG_HTTPD=y +@@ -896,12 +896,12 @@ + # CONFIG_FEATURE_IFUPDOWN_IPV6 is not set + # CONFIG_FEATURE_IFUPDOWN_MAPPING is not set + # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set +-# CONFIG_INETD is not set +-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set ++CONFIG_INETD=y ++CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y ++CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y ++CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y ++CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y ++CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y + # CONFIG_FEATURE_INETD_RPC is not set + CONFIG_IP=y + CONFIG_IPADDR=y +@@ -922,11 +922,11 @@ + # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set + # CONFIG_FEATURE_IPCALC_FANCY is not set + # CONFIG_FAKEIDENTD is not set +-# CONFIG_NAMEIF is not set +-# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +-# CONFIG_NBDCLIENT is not set ++CONFIG_NAMEIF=y ++CONFIG_FEATURE_NAMEIF_EXTENDED=y ++CONFIG_NBDCLIENT=y + CONFIG_NC=y +-# CONFIG_NETCAT is not set ++CONFIG_NETCAT=y + CONFIG_NC_SERVER=y + CONFIG_NC_EXTRA=y + # CONFIG_NC_110_COMPAT is not set +@@ -944,13 +944,13 @@ + CONFIG_PING6=y + CONFIG_FEATURE_FANCY_PING=y + # CONFIG_PSCAN is not set +-# CONFIG_ROUTE is not set ++CONFIG_ROUTE=y + # CONFIG_SLATTACH is not set + CONFIG_SSL_CLIENT=y + CONFIG_TC=y + CONFIG_FEATURE_TC_INGRESS=y +-# CONFIG_TCPSVD is not set +-# CONFIG_UDPSVD is not set ++CONFIG_TCPSVD=y ++CONFIG_UDPSVD=y + CONFIG_TELNET=y + CONFIG_FEATURE_TELNET_TTYPE=y + CONFIG_FEATURE_TELNET_AUTOLOGIN=y +@@ -958,21 +958,21 @@ + # CONFIG_TELNETD is not set + # CONFIG_FEATURE_TELNETD_STANDALONE is not set + # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set +-# CONFIG_TFTP is not set +-# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set +-# CONFIG_FEATURE_TFTP_HPA_COMPAT is not set +-# CONFIG_TFTPD is not set +-# CONFIG_FEATURE_TFTP_GET is not set +-# CONFIG_FEATURE_TFTP_PUT is not set +-# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set ++CONFIG_TFTP=y ++CONFIG_FEATURE_TFTP_PROGRESS_BAR=y ++CONFIG_FEATURE_TFTP_HPA_COMPAT=y ++CONFIG_TFTPD=y ++CONFIG_FEATURE_TFTP_GET=y ++CONFIG_FEATURE_TFTP_PUT=y ++CONFIG_FEATURE_TFTP_BLOCKSIZE=y + # CONFIG_TFTP_DEBUG is not set + CONFIG_TLS=y +-# CONFIG_TRACEROUTE is not set +-# CONFIG_TRACEROUTE6 is not set +-# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +-# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +-# CONFIG_TUNCTL is not set +-# CONFIG_FEATURE_TUNCTL_UG is not set ++CONFIG_TRACEROUTE=y ++CONFIG_TRACEROUTE6=y ++CONFIG_FEATURE_TRACEROUTE_VERBOSE=y ++CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y ++CONFIG_TUNCTL=y ++CONFIG_FEATURE_TUNCTL_UG=y + # CONFIG_VCONFIG is not set + CONFIG_WGET=y + CONFIG_FEATURE_WGET_LONG_OPTIONS=y +@@ -984,21 +984,21 @@ + CONFIG_FEATURE_WGET_OPENSSL=y + CONFIG_WHOIS=y + # CONFIG_ZCIP is not set +-# CONFIG_UDHCPD is not set ++CONFIG_UDHCPD=y + # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +-# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +-CONFIG_DHCPD_LEASES_FILE="" ++CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y ++CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases" + # CONFIG_DUMPLEASES is not set + # CONFIG_DHCPRELAY is not set + CONFIG_UDHCPC=y + CONFIG_FEATURE_UDHCPC_ARPING=y + CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y + CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +-# CONFIG_UDHCPC6 is not set +-# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set +-# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set +-# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set +-# CONFIG_FEATURE_UDHCPC6_RFC5970 is not set ++CONFIG_UDHCPC6=y ++CONFIG_FEATURE_UDHCPC6_RFC3646=y ++CONFIG_FEATURE_UDHCPC6_RFC4704=y ++CONFIG_FEATURE_UDHCPC6_RFC4833=y ++CONFIG_FEATURE_UDHCPC6_RFC5970=y + + # + # Common options for DHCP applets +@@ -1021,13 +1021,13 @@ + # + # Mail Utilities + # +-# CONFIG_MAKEMIME is not set ++CONFIG_MAKEMIME=y + # CONFIG_POPMAILDIR is not set + # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set +-# CONFIG_REFORMIME is not set +-# CONFIG_FEATURE_REFORMIME_COMPAT is not set +-# CONFIG_SENDMAIL is not set +-CONFIG_FEATURE_MIME_CHARSET="" ++CONFIG_REFORMIME=y ++CONFIG_FEATURE_REFORMIME_COMPAT=y ++CONFIG_SENDMAIL=y ++CONFIG_FEATURE_MIME_CHARSET="us-ascii" + + # + # Process Utilities +@@ -1040,7 +1040,7 @@ + CONFIG_KILLALL5=y + CONFIG_LSOF=y + CONFIG_MPSTAT=y +-# CONFIG_NMETER is not set ++CONFIG_NMETER=y + CONFIG_PGREP=y + CONFIG_PKILL=y + CONFIG_PIDOF=y +@@ -1056,7 +1056,7 @@ + CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS=y + CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y + CONFIG_PSTREE=y +-# CONFIG_PWDX is not set ++CONFIG_PWDX=y + # CONFIG_SMEMCAP is not set + CONFIG_BB_SYSCTL=y + CONFIG_TOP=y +@@ -1069,7 +1069,7 @@ + CONFIG_FEATURE_TOPMEM=y + CONFIG_UPTIME=y + # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set +-# CONFIG_WATCH is not set ++CONFIG_WATCH=y + CONFIG_FEATURE_SHOW_THREADS=y + + # +@@ -1087,7 +1087,7 @@ + CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" + # CONFIG_SVC is not set + CONFIG_SVOK=y +-# CONFIG_SVLOGD is not set ++CONFIG_SVLOGD=y + # CONFIG_CHCON is not set + # CONFIG_GETENFORCE is not set + # CONFIG_GETSEBOOL is not set diff --git a/srcpkgs/busybox/files/dotconfig.d/mdev.patch b/srcpkgs/busybox/files/dotconfig.d/mdev.patch new file mode 100644 index 0000000..e8c1682 --- /dev/null +++ b/srcpkgs/busybox/files/dotconfig.d/mdev.patch @@ -0,0 +1,21 @@ +@@ -624,12 +624,12 @@ + CONFIG_LOSETUP=y + CONFIG_LSPCI=y + CONFIG_LSUSB=y +-# CONFIG_MDEV is not set +-# CONFIG_FEATURE_MDEV_CONF is not set +-# CONFIG_FEATURE_MDEV_RENAME is not set +-# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set +-# CONFIG_FEATURE_MDEV_EXEC is not set +-# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +-# CONFIG_FEATURE_MDEV_DAEMON is not set ++CONFIG_MDEV=y ++CONFIG_FEATURE_MDEV_CONF=y ++CONFIG_FEATURE_MDEV_RENAME=y ++CONFIG_FEATURE_MDEV_RENAME_REGEXP=y ++CONFIG_FEATURE_MDEV_EXEC=y ++CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y ++CONFIG_FEATURE_MDEV_DAEMON=y + # CONFIG_MESG is not set + # CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set + # CONFIG_MKE2FS is not set diff --git a/srcpkgs/busybox/files/dotconfig.d/ntpd.patch b/srcpkgs/busybox/files/dotconfig.d/ntpd.patch new file mode 100644 index 0000000..8ca733d --- /dev/null +++ b/srcpkgs/busybox/files/dotconfig.d/ntpd.patch @@ -0,0 +1,15 @@ +@@ -917,10 +917,10 @@ + CONFIG_NSLOOKUP=y + CONFIG_FEATURE_NSLOOKUP_BIG=y + CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y +-# CONFIG_NTPD is not set +-# CONFIG_FEATURE_NTPD_SERVER is not set +-# CONFIG_FEATURE_NTPD_CONF is not set +-# CONFIG_FEATURE_NTP_AUTH is not set ++CONFIG_NTPD=y ++CONFIG_FEATURE_NTPD_SERVER=y ++CONFIG_FEATURE_NTPD_CONF=y ++CONFIG_FEATURE_NTP_AUTH=y + CONFIG_PING=y + CONFIG_PING6=y + CONFIG_FEATURE_FANCY_PING=y diff --git a/srcpkgs/busybox/files/dotconfig.d/static.patch b/srcpkgs/busybox/files/dotconfig.d/static.patch new file mode 100644 index 0000000..0b6b5a7 --- /dev/null +++ b/srcpkgs/busybox/files/dotconfig.d/static.patch @@ -0,0 +1,9 @@ +@@ -39,7 +39,7 @@ + # + # Build Options + # +-# CONFIG_STATIC is not set ++CONFIG_STATIC=y + # CONFIG_PIE is not set + # CONFIG_NOMMU is not set + # CONFIG_BUILD_LIBBUSYBOX is not set diff --git a/srcpkgs/busybox/files/dotconfig.d/sysklogd.patch b/srcpkgs/busybox/files/dotconfig.d/sysklogd.patch new file mode 100644 index 0000000..a6a7d54 --- /dev/null +++ b/srcpkgs/busybox/files/dotconfig.d/sysklogd.patch @@ -0,0 +1,31 @@ +@@ -1173,18 +1173,18 @@ + # + # System Logging Utilities + # +-# CONFIG_KLOGD is not set +-# CONFIG_FEATURE_KLOGD_KLOGCTL is not set ++CONFIG_KLOGD=y ++CONFIG_FEATURE_KLOGD_KLOGCTL=y + CONFIG_LOGGER=y +-# CONFIG_LOGREAD is not set +-# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set +-# CONFIG_SYSLOGD is not set +-# CONFIG_FEATURE_ROTATE_LOGFILE is not set +-# CONFIG_FEATURE_REMOTE_LOG is not set +-# CONFIG_FEATURE_SYSLOGD_DUP is not set +-# CONFIG_FEATURE_SYSLOGD_CFG is not set ++CONFIG_LOGREAD=y ++CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y ++CONFIG_SYSLOGD=y ++CONFIG_FEATURE_ROTATE_LOGFILE=y ++CONFIG_FEATURE_REMOTE_LOG=y ++CONFIG_FEATURE_SYSLOGD_DUP=y ++CONFIG_FEATURE_SYSLOGD_CFG=y + # CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set +-CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 +-# CONFIG_FEATURE_IPC_SYSLOG is not set +-CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 ++CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 ++CONFIG_FEATURE_IPC_SYSLOG=y ++CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=512 + # CONFIG_FEATURE_KMSG_SYSLOG is not set diff --git a/srcpkgs/busybox/files/dotconfig.d/udhcpc.patch b/srcpkgs/busybox/files/dotconfig.d/udhcpc.patch new file mode 100644 index 0000000..6a9ae3d --- /dev/null +++ b/srcpkgs/busybox/files/dotconfig.d/udhcpc.patch @@ -0,0 +1,35 @@ +@@ -990,21 +990,25 @@ + CONFIG_DHCPD_LEASES_FILE="" + # CONFIG_DUMPLEASES is not set + # CONFIG_DHCPRELAY is not set +-# CONFIG_UDHCPC is not set +-# CONFIG_FEATURE_UDHCPC_ARPING is not set +-# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set +-CONFIG_UDHCPC_DEFAULT_SCRIPT="" ++CONFIG_UDHCPC=y ++CONFIG_FEATURE_UDHCPC_ARPING=y ++CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y ++CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" + # CONFIG_UDHCPC6 is not set + # CONFIG_FEATURE_UDHCPC6_RFC3646 is not set + # CONFIG_FEATURE_UDHCPC6_RFC4704 is not set + # CONFIG_FEATURE_UDHCPC6_RFC4833 is not set + # CONFIG_FEATURE_UDHCPC6_RFC5970 is not set +-CONFIG_UDHCPC_DEFAULT_INTERFACE="" ++ ++# ++# Common options for DHCP applets ++# ++CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" + # CONFIG_FEATURE_UDHCP_PORT is not set +-CONFIG_UDHCP_DEBUG=0 +-CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 +-# CONFIG_FEATURE_UDHCP_RFC3397 is not set +-# CONFIG_FEATURE_UDHCP_8021Q is not set ++CONFIG_UDHCP_DEBUG=2 ++CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 ++CONFIG_FEATURE_UDHCP_RFC3397=y ++CONFIG_FEATURE_UDHCP_8021Q=y + CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" + + # diff --git a/srcpkgs/busybox/patches/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch b/srcpkgs/busybox/patches/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch new file mode 100644 index 0000000..1d1716e --- /dev/null +++ b/srcpkgs/busybox/patches/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch @@ -0,0 +1,40 @@ +From 0c8da1bead8ffaf270b4b723ead2c517371405d7 Mon Sep 17 00:00:00 2001 +From: Ariadne Conill +Date: Sun, 3 Apr 2022 12:14:33 +0000 +Subject: [PATCH 1/2] libbb: sockaddr2str: ensure only printable characters are + returned for the hostname part + +CVE: Pending +Upstream-Status: Pending +Signed-off-by: Ariadne Conill +--- + libbb/xconnect.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/libbb/xconnect.c b/libbb/xconnect.c +index 0e0b247b8..02c061e67 100644 +--- a/libbb/xconnect.c ++++ b/libbb/xconnect.c +@@ -497,8 +497,9 @@ static char* FAST_FUNC sockaddr2str(const struct sockaddr *sa, int flags) + ); + if (rc) + return NULL; ++ /* ensure host contains only printable characters */ + if (flags & IGNORE_PORT) +- return xstrdup(host); ++ return xstrdup(printable_string(host)); + #if ENABLE_FEATURE_IPV6 + if (sa->sa_family == AF_INET6) { + if (strchr(host, ':')) /* heh, it's not a resolved hostname */ +@@ -509,7 +510,7 @@ static char* FAST_FUNC sockaddr2str(const struct sockaddr *sa, int flags) + #endif + /* For now we don't support anything else, so it has to be INET */ + /*if (sa->sa_family == AF_INET)*/ +- return xasprintf("%s:%s", host, serv); ++ return xasprintf("%s:%s", printable_string(host), serv); + /*return xstrdup(host);*/ + } + +-- +2.35.1 + diff --git a/srcpkgs/busybox/patches/0002-nslookup-sanitize-all-printed-strings-with-printable.patch b/srcpkgs/busybox/patches/0002-nslookup-sanitize-all-printed-strings-with-printable.patch new file mode 100644 index 0000000..4758509 --- /dev/null +++ b/srcpkgs/busybox/patches/0002-nslookup-sanitize-all-printed-strings-with-printable.patch @@ -0,0 +1,67 @@ +From 812b407e545b70b16cf32aade135b5c32eaf674f Mon Sep 17 00:00:00 2001 +From: Ariadne Conill +Date: Sun, 3 Apr 2022 12:16:45 +0000 +Subject: [PATCH 2/2] nslookup: sanitize all printed strings with + printable_string + +Otherwise, terminal sequences can be injected, which enables various terminal injection +attacks from DNS results. + +CVE: Pending +Upstream-Status: Pending +Signed-off-by: Ariadne Conill +--- + networking/nslookup.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/networking/nslookup.c b/networking/nslookup.c +index 6da97baf4..4bdcde1b8 100644 +--- a/networking/nslookup.c ++++ b/networking/nslookup.c +@@ -407,7 +407,7 @@ static NOINLINE int parse_reply(const unsigned char *msg, size_t len) + //printf("Unable to uncompress domain: %s\n", strerror(errno)); + return -1; + } +- printf(format, ns_rr_name(rr), dname); ++ printf(format, ns_rr_name(rr), printable_string(dname)); + break; + + case ns_t_mx: +@@ -422,7 +422,7 @@ static NOINLINE int parse_reply(const unsigned char *msg, size_t len) + //printf("Cannot uncompress MX domain: %s\n", strerror(errno)); + return -1; + } +- printf("%s\tmail exchanger = %d %s\n", ns_rr_name(rr), n, dname); ++ printf("%s\tmail exchanger = %d %s\n", ns_rr_name(rr), n, printable_string(dname)); + break; + + case ns_t_txt: +@@ -434,7 +434,7 @@ static NOINLINE int parse_reply(const unsigned char *msg, size_t len) + if (n > 0) { + memset(dname, 0, sizeof(dname)); + memcpy(dname, ns_rr_rdata(rr) + 1, n); +- printf("%s\ttext = \"%s\"\n", ns_rr_name(rr), dname); ++ printf("%s\ttext = \"%s\"\n", ns_rr_name(rr), printable_string(dname)); + } + break; + +@@ -454,7 +454,7 @@ static NOINLINE int parse_reply(const unsigned char *msg, size_t len) + } + + printf("%s\tservice = %u %u %u %s\n", ns_rr_name(rr), +- ns_get16(cp), ns_get16(cp + 2), ns_get16(cp + 4), dname); ++ ns_get16(cp), ns_get16(cp + 2), ns_get16(cp + 4), printable_string(dname)); + break; + + case ns_t_soa: +@@ -483,7 +483,7 @@ static NOINLINE int parse_reply(const unsigned char *msg, size_t len) + return -1; + } + +- printf("\tmail addr = %s\n", dname); ++ printf("\tmail addr = %s\n", printable_string(dname)); + cp += n; + + printf("\tserial = %lu\n", ns_get32(cp)); +-- +2.35.1 diff --git a/srcpkgs/busybox/patches/testsuite-fix-date-works.patch b/srcpkgs/busybox/patches/testsuite-fix-date-works.patch new file mode 100644 index 0000000..0f3e23e --- /dev/null +++ b/srcpkgs/busybox/patches/testsuite-fix-date-works.patch @@ -0,0 +1,12 @@ +The format for the `date` command has changed and this test wasn't updated with it. + +--- a/testsuite/date/date-works ++++ b/testsuite/date/date-works +@@ -1,6 +1,6 @@ + dt=`busybox date` + # Expected format: Fri Apr 25 03:47:55 CEST 2008 +-dt=`echo "$dt" | sed 's/^[^ ][^ ][^ ] [^ ][^ ][^ ] [ 0123][0-9] [012][0-9]:[0-5][0-9]:[0-6][0-9] [A-Z][A-Z]* [012][0-9][0-9][0-9]$/OK/'` ++dt=`echo "$dt" | sed 's/^[^ ][^ ][^ ] [^ ][^ ][^ ] [ 0123][0-9] [012][0-9]:[0-5][0-9]:[0-6][0-9] -[0-9][0-9]* [012][0-9][0-9][0-9]$/OK/'` + test x"$dt" = x"OK" + + dt=`busybox date -d 1:2` diff --git a/srcpkgs/busybox/template b/srcpkgs/busybox/template new file mode 100644 index 0000000..ab57a96 --- /dev/null +++ b/srcpkgs/busybox/template @@ -0,0 +1,128 @@ +# Template file for 'busybox' +pkgname=busybox +version=1.36.1 +revision=1 +hostmakedepends="perl" +checkdepends="tar which zip" +short_desc="Swiss Army Knife of Embedded Linux" +maintainer="Cameron Nemo " +license="GPL-2.0-only" +homepage="https://www.busybox.net" +distfiles="${homepage}/downloads/busybox-${version}.tar.bz2" +checksum=b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314 + +_alternatives_core=" + ash:ash:/usr/bin/busybox + awk:awk:/usr/bin/busybox + hostname:hostname:/usr/bin/busybox + sh:sh:/usr/bin/busybox + vi:vi:/usr/bin/busybox + logger:logger:/usr/bin/busybox" + +_alternatives=" + ${_alternatives_core} + ntpd:ntpd:/usr/bin/busybox + ntpd:ntpd:/etc/sv/busybox-ntpd" + +alternatives="${_alternatives}" +register_shell="/usr/bin/ash" + +_patch_config() { + local t="$1" + shift + while [ "$1" ]; do + local p="$1" + shift + echo "Applying $p..." + patch "${t}/.config" <"${FILESDIR}/dotconfig.d/${p}.patch" + done +} + +do_configure() { + mkdir -p src + mv * src || true + + local t + for t in busybox busybox-static busybox-core busybox-huge; do + mkdir -p $t + cp -f ${FILESDIR}/dotconfig ${t}/.config + + case "$XBPS_TARGET_MACHINE" in + *-musl) vsed -i -e /CONFIG_FEATURE_VI_REGEX_SEARCH/s/y/n/ \ + ${t}/.config;; + esac + + if [ "$CROSS_BUILD" ]; then + vsed -i -e \ + "s,\(CONFIG_CROSS_COMPILER_PREFIX\).*,\1=\"${XBPS_CROSS_TRIPLET}-\",g" \ + ${t}/.config + fi + done + + _patch_config busybox udhcpc ntpd + _patch_config busybox-static udhcpc ntpd static + _patch_config busybox-huge udhcpc ntpd httpd mdev sysklogd huge + + for t in busybox-core busybox busybox-static busybox-huge; do + make -C "${t}" KBUILD_SRC="${wrksrc}/src" -f "${wrksrc}/src/Makefile" oldconfig + make -C "${t}" KBUILD_SRC="${wrksrc}/src" -f "${wrksrc}/src/Makefile" prepare "${makejobs}" + done + + if [ "$SOURCE_DATE_EPOCH" ]; then + # rewrite date with the one from the date wrapper. + d=$(date +"%F %T %Z") + sed -i "s/\(#define AUTOCONF_TIMESTAMP\).*/\1 \"$d\"/" */include/autoconf.h + fi +} + +do_build() { + for t in busybox-core busybox busybox-static busybox-huge; do + make -C "${t}" SKIP_STRIP=y "${makejobs}" + done +} + +do_check() { + for t in busybox-core busybox busybox-static busybox-huge; do + make -C "${t}" "${makejobs}" \ + SKIP_KNOWN_BUGS=yes SKIP_INTERNET_TESTS=yes \ + check + done +} + +do_install() { + vbin busybox/busybox_unstripped busybox + vman busybox/docs/busybox.1 + vsv busybox-ntpd +} + +busybox-core_package() { + short_desc+=" (essential applets)" + conflicts="busybox>=0 busybox-huge>=0" + alternatives="${_alternatives_core}" + register_shell="/usr/bin/ash" + pkg_install() { + vbin busybox-core/busybox_unstripped busybox + vman busybox-core/docs/busybox.1 + } +} + +busybox-static_package() { + short_desc+=" (statically linked)" + pkg_install() { + vbin busybox-static/busybox busybox.static + } +} + +busybox-huge_package() { + short_desc+=" (extra applets)" + conflicts="busybox>=0 busybox-core>=0" + alternatives="${_alternatives}" + register_shell="/usr/bin/ash" + pkg_install() { + vbin busybox-huge/busybox_unstripped busybox + vman busybox-huge/docs/busybox.1 + vsv busybox-ntpd + vsv busybox-syslogd + vsv busybox-klogd + } +} diff --git a/srcpkgs/busybox/update b/srcpkgs/busybox/update new file mode 100644 index 0000000..791aa2a --- /dev/null +++ b/srcpkgs/busybox/update @@ -0,0 +1 @@ +ignore="*.0" diff --git a/srcpkgs/evolution-artwork/files/evolution-logo.png b/srcpkgs/evolution-artwork/files/evolution-logo.png new file mode 100644 index 0000000..bd20dc3 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/evolution-logo.png differ diff --git a/srcpkgs/evolution-artwork/files/evolution-logo.svg b/srcpkgs/evolution-artwork/files/evolution-logo.svg new file mode 100644 index 0000000..45a5e81 --- /dev/null +++ b/srcpkgs/evolution-artwork/files/evolution-logo.svg @@ -0,0 +1,188 @@ + + diff --git a/srcpkgs/evolution-artwork/files/evolution-transparent.png b/srcpkgs/evolution-artwork/files/evolution-transparent.png new file mode 100644 index 0000000..b6a994d Binary files /dev/null and b/srcpkgs/evolution-artwork/files/evolution-transparent.png differ diff --git a/srcpkgs/evolution-artwork/files/generate-icons.sh b/srcpkgs/evolution-artwork/files/generate-icons.sh new file mode 100755 index 0000000..22c7d8f --- /dev/null +++ b/srcpkgs/evolution-artwork/files/generate-icons.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# regenerates the files in icons/ from void-logo.svg +# run with ./generate-icons.sh +# only needed when the logo changes + +if ! command -v rsvg-convert >/dev/null; then + echo "Please install librsvg-utils" + exit 1 +fi + +[ -d "./icons" ] && rm -r ./icons +mkdir ./icons + +RESOLUTIONS="16 22 32 48 64 128 256 512" + +for res in $RESOLUTIONS; do + # at low resolutions, the text is too small to read, so the text is left out + if [ "$res" -lt 64 ]; then + rsvg-convert evolution-logo.svg --keep-aspect-ratio --width $res -o ./icons/evolution-logo-$res.png + else + rsvg-convert evolution-logo.svg --keep-aspect-ratio --width $res -o ./icons/evolution-logo-$res.png + fi + rsvg-convert evolution-logo.svg --keep-aspect-ratio --width $res -o ./icons/evolution-logo-notext-$res.png +done + +# scalable +rsvg-convert evolution-logo.svg --format svg -o ./icons/evolution-logo.svg +rsvg-convert evolution-logo.svg --format svg -o ./icons/evolution-logo-notext.svg + diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-128.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-128.png new file mode 100644 index 0000000..fa4b2a8 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-128.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-16.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-16.png new file mode 100644 index 0000000..6614527 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-16.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-22.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-22.png new file mode 100644 index 0000000..c66433f Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-22.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-256.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-256.png new file mode 100644 index 0000000..071f46d Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-256.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-32.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-32.png new file mode 100644 index 0000000..dfd8558 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-32.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-48.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-48.png new file mode 100644 index 0000000..95ba779 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-48.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-512.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-512.png new file mode 100644 index 0000000..d84e97e Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-512.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-64.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-64.png new file mode 100644 index 0000000..beb25e3 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-64.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-128.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-128.png new file mode 100644 index 0000000..fa4b2a8 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-128.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-16.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-16.png new file mode 100644 index 0000000..6614527 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-16.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-22.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-22.png new file mode 100644 index 0000000..c66433f Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-22.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-256.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-256.png new file mode 100644 index 0000000..071f46d Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-256.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-32.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-32.png new file mode 100644 index 0000000..dfd8558 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-32.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-48.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-48.png new file mode 100644 index 0000000..95ba779 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-48.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-512.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-512.png new file mode 100644 index 0000000..d84e97e Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-512.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-64.png b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-64.png new file mode 100644 index 0000000..beb25e3 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext-64.png differ diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext.svg b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext.svg new file mode 100644 index 0000000..d82fe8f --- /dev/null +++ b/srcpkgs/evolution-artwork/files/icons/evolution-logo-notext.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/srcpkgs/evolution-artwork/files/icons/evolution-logo.svg b/srcpkgs/evolution-artwork/files/icons/evolution-logo.svg new file mode 100644 index 0000000..d82fe8f --- /dev/null +++ b/srcpkgs/evolution-artwork/files/icons/evolution-logo.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/srcpkgs/evolution-artwork/files/oldsplash.png b/srcpkgs/evolution-artwork/files/oldsplash.png new file mode 100644 index 0000000..c5d7721 Binary files /dev/null and b/srcpkgs/evolution-artwork/files/oldsplash.png differ diff --git a/srcpkgs/evolution-artwork/files/splash.png b/srcpkgs/evolution-artwork/files/splash.png new file mode 100644 index 0000000..adc098d Binary files /dev/null and b/srcpkgs/evolution-artwork/files/splash.png differ diff --git a/srcpkgs/evolution-artwork/files/splashwhite.png b/srcpkgs/evolution-artwork/files/splashwhite.png new file mode 100644 index 0000000..c8ecd5e Binary files /dev/null and b/srcpkgs/evolution-artwork/files/splashwhite.png differ diff --git a/srcpkgs/evolution-artwork/template b/srcpkgs/evolution-artwork/template new file mode 100644 index 0000000..7ff2be4 --- /dev/null +++ b/srcpkgs/evolution-artwork/template @@ -0,0 +1,23 @@ +# Template file for 'evolution-artwork' +pkgname=evolution-artwork +version=20221013 +revision=5 +short_desc="Evolution Linux artwork" +maintainer="Tracker-Friendly " +license="custom:Public Domain" #no vlicense check +homepage="http://evolutionos.codeberg.page" + +do_install() { + vinstall ${FILESDIR}/splash.png 644 usr/share/evolution-artwork + vinstall ${FILESDIR}/oldsplash.png 644 usr/share/evolution-artwork + vinstall ${FILESDIR}/splashwhite.png 644 usr/share/evolution-artwork + vinstall ${FILESDIR}/evolution-logo.png 644 usr/share/evolution-artwork + vinstall ${FILESDIR}/evolution-transparent.png 644 usr/share/evolution-artwork + vinstall ${FILESDIR}/evolution-logo.svg 644 usr/share/evolution-artwork + for size in 16 22 32 48 64 128 256 512; do + vinstall ${FILESDIR}/icons/evolution-logo-${size}.png 644 usr/share/icons/hicolor/${size}x${size}/apps evolution-logo.png + vinstall ${FILESDIR}/icons/evolution-logo-notext-${size}.png 644 usr/share/icons/hicolor/${size}x${size}/apps evolution-logo-notext.png + done + vinstall ${FILESDIR}/icons/evolution-logo.svg 644 usr/share/icons/hicolor/scalable/apps + vinstall ${FILESDIR}/icons/evolution-logo-notext.svg 644 usr/share/icons/hicolor/scalable/apps +} diff --git a/srcpkgs/evolution-desktop/INSTALL b/srcpkgs/evolution-desktop/INSTALL new file mode 100644 index 0000000..1ea5dce --- /dev/null +++ b/srcpkgs/evolution-desktop/INSTALL @@ -0,0 +1,26 @@ +case "$ACTION" in +post) + useradd -r greeter + usermod -a -G video greeter + usermod -a -G netdev greeter + rm -rf /etc/greetd/config.toml + mv /etc/greetd/config.toml.2 /etc/greetd/config.toml + usermod -d /etc/greetd/greeter greeter + chown greeter /etc/greetd/greeter -R + cp -r /run/runit/supervise.agetty-tty1 /run/runit/supervise.greetd + cp -r /run/runit/supervise.agetty-tty1 /run/runit/supervise.polkitd + cp -r /run/runit/supervise.agetty-tty1 /run/runit/supervise.dbus + echo "chvt 5" >> /etc/rc.local + rm -rf /var/service/agetty-tty5 + sed -i '/ctrl_interface_group=.*$/d' /etc/wpa_supplicant/wpa_supplicant.conf + if [ -d /etc/runit/runsvdir/default/wpa_supplicant ]; then + : + else + ln -s /etc/sv/wpa_supplicant /etc/runit/runsvdir/default/wpa_supplicant + fi + if [ -d /etc/runit/runsvdir/default/dhcpcd ]; then + : + else + ln -s /etc/sv/dhcpcd /etc/runit/runsvdir/default/dhcpcd + fi +esac diff --git a/srcpkgs/evolution-desktop/INSTALL.msg b/srcpkgs/evolution-desktop/INSTALL.msg new file mode 100644 index 0000000..e39dc17 --- /dev/null +++ b/srcpkgs/evolution-desktop/INSTALL.msg @@ -0,0 +1,7 @@ +--------------------------------------------------------------------------------- + +Evolution Desktop: + + A reboot is required for changes to take effect. Please reboot your computer. + +--------------------------------------------------------------------------------- diff --git a/srcpkgs/evolution-desktop/files/bin/Wayfire b/srcpkgs/evolution-desktop/files/bin/Wayfire new file mode 100755 index 0000000..aa3ec39 --- /dev/null +++ b/srcpkgs/evolution-desktop/files/bin/Wayfire @@ -0,0 +1,21 @@ +if [[ -x ~/.config ]]; then + : +else + mkdir ~/.config +fi +if [[ -x ~/.config/wayfire.ini ]]; then + : +else + cp /usr/share/wayfire/wayfire.ini ~/.config/wayfire.ini +fi +if [[ -x ~/.config/wf-shell.ini ]]; then + : +else + cp /usr/share/wayfire/wf-shell.ini ~/.config/wf-shell.ini +fi +if [[ -x ~/.config/dconf ]]; then + : +else + cp -r /usr/share/wayfire/dconf ~/.config/ +fi +bash /bin/startsession diff --git a/srcpkgs/evolution-desktop/files/bin/audioctl b/srcpkgs/evolution-desktop/files/bin/audioctl new file mode 100755 index 0000000..5ec075f --- /dev/null +++ b/srcpkgs/evolution-desktop/files/bin/audioctl @@ -0,0 +1,16 @@ +#!/bin/bash +pactl set-sink-mute @DEFAULT_SINK@ 0 +if [ "$1" = "up" ]; then + if [ "$(pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,')" = "100" ]; then + exit + else + pactl set-sink-volume @DEFAULT_SINK@ +$2% + fi +elif [ "$1" = "down" ]; then + pactl set-sink-volume @DEFAULT_SINK@ -$2% + if [ "$(pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,')" = "0" ]; then + pactl set-sink-mute @DEFAULT_SINK@ 1 + else + pactl set-sink-mute @DEFAULT_SINK@ 0 + fi +fi diff --git a/srcpkgs/evolution-desktop/files/bin/startlogin b/srcpkgs/evolution-desktop/files/bin/startlogin new file mode 100755 index 0000000..5c2aef3 --- /dev/null +++ b/srcpkgs/evolution-desktop/files/bin/startlogin @@ -0,0 +1,3 @@ +wf-background & +loadspinner "Logging in..." 20 0 & +gtkgreet & diff --git a/srcpkgs/evolution-desktop/files/bin/startsession b/srcpkgs/evolution-desktop/files/bin/startsession new file mode 100755 index 0000000..cb7b982 --- /dev/null +++ b/srcpkgs/evolution-desktop/files/bin/startsession @@ -0,0 +1,23 @@ +#!/bin/bash + +# Session stuff +export XDG_RUNTIME_DIR=/run/user/$(id -u) +export XDG_SESSION_TYPE=wayland +export XDG_SESSION_DESKTOP=wayfire +export XDG_CURRENT_DESKTOP=wayfire + +# Wayland stuff +export MOZ_ENABLE_WAYLAND=1 +export SDL_VIDEODRIVER=wayland +export _JAVA_AWT_WM_NONREPARENTING=1 + +pidof wayfire &>/dev/null +if [ "$?" = "0" ]; then + killall wayfire +fi +if [ "$1" = "" ]; then + dbus-run-session wayfire &>/dev/null +else + dbus-run-session $* &>/dev/null +fi + diff --git a/srcpkgs/evolution-desktop/files/etc/greetd/config.toml b/srcpkgs/evolution-desktop/files/etc/greetd/config.toml new file mode 100644 index 0000000..235324f --- /dev/null +++ b/srcpkgs/evolution-desktop/files/etc/greetd/config.toml @@ -0,0 +1,18 @@ +[terminal] +# The VT to run the greeter on. Can be "next", "current" or a number +# designating the VT. +vt = 5 + +# The default session, also known as the greeter. +[default_session] + +# `agreety` is the bundled agetty/login-lookalike. You can replace `/bin/sh` +# with whatever you want started, such as `sway`. +# command = "startsession cage -d -s -- gtkgreet -s /usr/share/themes/Adwaita-dark/gtk-3.0/gtk.css" + +command = "startsession wayfire" + +# The user to run the command as. The privileges this user must have depends +# on the greeter. A graphical greeter may for example require the user to be +# in the `video` group. +user = "greeter" diff --git a/srcpkgs/evolution-desktop/files/etc/greetd/environments b/srcpkgs/evolution-desktop/files/etc/greetd/environments new file mode 100644 index 0000000..bd559ac --- /dev/null +++ b/srcpkgs/evolution-desktop/files/etc/greetd/environments @@ -0,0 +1,2 @@ +Wayfire +TTY diff --git a/srcpkgs/evolution-desktop/files/etc/greetd/wallpaper.png b/srcpkgs/evolution-desktop/files/etc/greetd/wallpaper.png new file mode 100644 index 0000000..0c2e3ba Binary files /dev/null and b/srcpkgs/evolution-desktop/files/etc/greetd/wallpaper.png differ diff --git a/srcpkgs/evolution-desktop/files/home/greeter/dconf/user b/srcpkgs/evolution-desktop/files/home/greeter/dconf/user new file mode 100644 index 0000000..d27f1d5 Binary files /dev/null and b/srcpkgs/evolution-desktop/files/home/greeter/dconf/user differ diff --git a/srcpkgs/evolution-desktop/files/home/greeter/wayfire.ini b/srcpkgs/evolution-desktop/files/home/greeter/wayfire.ini new file mode 100644 index 0000000..96b6dd1 --- /dev/null +++ b/srcpkgs/evolution-desktop/files/home/greeter/wayfire.ini @@ -0,0 +1,297 @@ +[alpha] +min_value = 0.100000 +modifier = + +[animate] +close_animation = fade +duration = 400 +enabled_for = (type equals "toplevel" | (type equals "x-or" & focusable equals true)) +fade_duration = 400 +fade_enabled_for = type equals "overlay" +fire_duration = 300 +fire_enabled_for = none +fire_particle_size = 16.000000 +fire_particles = 2000 +open_animation = fade +startup_duration = 600 +zoom_duration = 500 +zoom_enabled_for = none + +[autostart] +autostart_wf_shell = false +greeter = startlogin + +[blur] +blur_by_default = type is "toplevel" +bokeh_degrade = 1 +bokeh_iterations = 15 +bokeh_offset = 5.000000 +box_degrade = 1 +box_iterations = 2 +box_offset = 1.000000 +gaussian_degrade = 1 +gaussian_iterations = 2 +gaussian_offset = 1.000000 +kawase_degrade = 8 +kawase_iterations = 2 +kawase_offset = 2.000000 +method = kawase +saturation = 1.000000 +toggle = none + +[command] + +[core] +background_color = \#1A1A1AFF +close_top_view = +focus_button_with_modifiers = false +focus_buttons = BTN_LEFT | BTN_MIDDLE | BTN_RIGHT +focus_buttons_passthrough = true +max_render_time = -1 +plugins = autostart move place animate +preferred_decoration_mode = server +vheight = 1 +vwidth = 1 +xwayland = true + +[cube] +activate = BTN_LEFT +background = \#1A1A1AFF +background_mode = simple +cubemap_image = +deform = 0 +initial_animation = 350 +light = true +rotate_left = none +rotate_right = none +skydome_mirror = true +skydome_texture = +speed_spin_horiz = 0.020000 +speed_spin_vert = 0.020000 +speed_zoom = 0.070000 +zoom = 0.100000 + +[decoration] +active_color = \#222222AA +border_size = 1 +button_order = +font = +ignore_views = none +inactive_color = \#333333DD +title_height = 1 + +[expo] +background = \#1A1A1AFF +duration = 300 +offset = 10 +toggle = + +[extra-gestures] +close_fingers = 20 +move_delay = 500 +move_fingers = 3 + +[fast-switcher] +activate = KEY_ESC +activate_backward = KEY_ESC +inactive_alpha = 0.700000 + +[fisheye] +radius = 450.000000 +toggle = KEY_F +zoom = 7.000000 + +[grid] +duration = 300 +restore = KEY_DOWN | KEY_KP0 +slot_b = KEY_KP2 +slot_bl = KEY_KP1 +slot_br = KEY_KP3 +slot_c = KEY_UP | KEY_KP5 +slot_l = KEY_LEFT | KEY_KP4 +slot_r = KEY_RIGHT | KEY_KP6 +slot_t = KEY_KP8 +slot_tl = KEY_KP7 +slot_tr = KEY_KP9 +type = crossfade + +[idle] +cube_max_zoom = 1.500000 +cube_rotate_speed = 1.000000 +cube_zoom_speed = 1000 +disable_on_fullscreen = true +dpms_timeout = -1 +screensaver_timeout = 3600 +toggle = none + +[input] +click_method = default +cursor_size = 24 +cursor_theme = default +disable_touchpad_while_mouse = false +disable_touchpad_while_typing = false +gesture_sensitivity = 1.000000 +kb_capslock_default_state = false +kb_numlock_default_state = false +kb_repeat_delay = 400 +kb_repeat_rate = 40 +left_handed_mode = false +middle_emulation = false +modifier_binding_timeout = 400 +mouse_accel_profile = default +mouse_cursor_speed = 0.000000 +mouse_scroll_speed = 1.000000 +natural_scroll = false +scroll_method = default +tap_to_click = true +touchpad_accel_profile = default +touchpad_cursor_speed = 0.000000 +touchpad_scroll_speed = 1.000000 +xkb_layout = us +xkb_model = +xkb_options = +xkb_rules = evdev +xkb_variant = + +[input-device] +output = + +[invert] +preserve_hue = false +toggle = KEY_I + +[move] +activate = BTN_LEFT +enable_snap = true +enable_snap_off = true +join_views = false +quarter_snap_threshold = 50 +snap_off_threshold = 10 +snap_threshold = 10 +workspace_switch_after = -1 + +[oswitch] +next_output = KEY_O +next_output_with_win = KEY_O + +[output] +mode = auto +position = auto +scale = 1.000000 +transform = normal + +[place] +mode = center + +[preserve-output] +last_output_focus_timeout = 10000 + +[resize] +activate = BTN_RIGHT + +[scale] +allow_zoom = false +bg_color = \#1A1A1AE6 +duration = 750 +inactive_alpha = 0.750000 +interact = false +middle_click_close = false +spacing = 50 +text_color = \#CCCCCCFF +title_font_size = 16 +title_overlay = all +title_position = center +toggle = KEY_P +toggle_all = + +[scale-title-filter] +bg_color = \#00000080 +case_sensitive = false +font_size = 30 +overlay = true +share_filter = false +text_color = \#CCCCCCCC + +[simple-tile] +button_move = BTN_LEFT +button_resize = BTN_RIGHT +inner_gap_size = 5 +keep_fullscreen_on_adjacent = true +key_focus_above = KEY_K +key_focus_below = KEY_J +key_focus_left = KEY_H +key_focus_right = KEY_L +key_toggle = KEY_T +outer_horiz_gap_size = 0 +outer_vert_gap_size = 0 +tile_by_default = all + +[switcher] +next_view = KEY_TAB +prev_view = KEY_TAB +speed = 500 +view_thumbnail_scale = 1.000000 + +[vswipe] +background = \#1A1A1AFF +delta_threshold = 24.000000 +duration = 180 +enable_free_movement = false +enable_horizontal = true +enable_smooth_transition = false +enable_vertical = true +fingers = 4 +gap = 32.000000 +speed_cap = 0.050000 +speed_factor = 256.000000 +threshold = 0.350000 + +[vswitch] +background = \#1A1A1AFF +binding_down = KEY_DOWN +binding_left = KEY_LEFT +binding_right = KEY_RIGHT +binding_up = KEY_UP +binding_win_down = KEY_DOWN +binding_win_left = KEY_LEFT +binding_win_right = KEY_RIGHT +binding_win_up = KEY_UP +duration = 300 +gap = 20 +wraparound = false + +[window-rules] + +[wm-actions] +minimize = none +send_to_back = none +toggle_always_on_top = none +toggle_fullscreen = none +toggle_maximize = none +toggle_showdesktop = none +toggle_sticky = none + +[wobbly] +friction = 3.000000 +grid_resolution = 6 +spring_k = 8.000000 + +[workarounds] +all_dialogs_modal = true +app_id_mode = stock +dynamic_repaint_delay = false + +[wrot] +activate = BTN_RIGHT +activate-3d = BTN_RIGHT +invert = false +reset = KEY_R +reset-one = KEY_R +reset_radius = 25.000000 +sensitivity = 24 + +[zoom] +modifier = +smoothing_duration = 300 +speed = 0.010000 + diff --git a/srcpkgs/evolution-desktop/files/home/greeter/wf-shell.ini b/srcpkgs/evolution-desktop/files/home/greeter/wf-shell.ini new file mode 100644 index 0000000..cbc2f62 --- /dev/null +++ b/srcpkgs/evolution-desktop/files/home/greeter/wf-shell.ini @@ -0,0 +1,3 @@ +[background] +image = /etc/greetd/wallpaper.png +preserve_aspect = false diff --git a/srcpkgs/evolution-desktop/files/usr/share/wayfire/dconf/user b/srcpkgs/evolution-desktop/files/usr/share/wayfire/dconf/user new file mode 100644 index 0000000..380c53d Binary files /dev/null and b/srcpkgs/evolution-desktop/files/usr/share/wayfire/dconf/user differ diff --git a/srcpkgs/evolution-desktop/files/usr/share/wayfire/wayfire.ini b/srcpkgs/evolution-desktop/files/usr/share/wayfire/wayfire.ini new file mode 100644 index 0000000..761c973 --- /dev/null +++ b/srcpkgs/evolution-desktop/files/usr/share/wayfire/wayfire.ini @@ -0,0 +1,344 @@ +[alpha] +min_value = 0.100000 +modifier = + +[animate] +close_animation = fade +duration = 400 +enabled_for = (type equals "toplevel" | (type equals "x-or" & focusable equals true)) +fade_duration = 400 +fade_enabled_for = type equals "overlay" +fire_duration = 300 +fire_enabled_for = none +fire_particle_size = 16.000000 +fire_particles = 2000 +open_animation = zoom +startup_duration = 600 +zoom_duration = 500 +zoom_enabled_for = none + +[autostart] +autostart_wf_shell = true +background = wf-background +brighness = brightnessctl s 100% +gamma = wlsunset +idle = swayidle before-sleep swaylock -i $(grep -o 'image = .*' ~/.config/wf-shell.ini | sed 's/^image = //') +notifications = mako +outputs = kanshi +password = keepassxcd +polkit = /usr/libexec/polkit-mate-authentication-agent-1 +portal = /usr/libexec/xdg-desktop-portal +gtkpatch = dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK +sound = pipewire +sound-media = wireplumber +sound-pulse = pipewire-pulse + +[blur] +blur_by_default = type is "toplevel" +bokeh_degrade = 1 +bokeh_iterations = 15 +bokeh_offset = 5.000000 +box_degrade = 1 +box_iterations = 2 +box_offset = 1.000000 +gaussian_degrade = 1 +gaussian_iterations = 2 +gaussian_offset = 1.000000 +kawase_degrade = 8 +kawase_iterations = 2 +kawase_offset = 2.000000 +method = kawase +saturation = 1.000000 +toggle = none + +[command] +binding_0 = KEY_ESC +binding_launcher = KEY_SPACE +binding_lock = KEY_ESC +binding_logout = KEY_ESC +binding_mute = KEY_MUTE +binding_screenshot = KEY_F3 +binding_screenshot_interactive = KEY_F4 +binding_terminal = KEY_ENTER +command_0 = gnome-system-monitor +command_launcher = wofi +command_light_down = brightnessctl s 5%- +command_light_up = brightnessctl s +5% +command_lock = swaylock -i $(cat ~/.config/wf-shell.ini | grep image | cut -c 9-) +command_logout = killall wayfire +command_mute = pactl set-sink-mute @DEFAULT_SINK@ toggle +command_screenshot = grim $(date '+%F_%T').png +command_screenshot_interactive = slurp | grim -g - $(date '+%F_%T').png +command_terminal = alacritty +command_volume_down = audioctl down 5 +command_volume_up = audioctl up 5 +repeatable_binding_light_down = KEY_BRIGHTNESSDOWN +repeatable_binding_light_up = KEY_BRIGHTNESSUP +repeatable_binding_volume_down = KEY_VOLUMEDOWN +repeatable_binding_volume_up = KEY_VOLUMEUP + +[core] +background_color = \#1A1A1AFF +close_top_view = KEY_Q | KEY_F4 +focus_button_with_modifiers = false +focus_buttons = BTN_LEFT | BTN_MIDDLE | BTN_RIGHT +focus_buttons_passthrough = true +max_render_time = -1 +plugins = alpha animate autostart command cube decoration expo fast-switcher fisheye invert move oswitch place switcher vswitch window-rules wm-actions wobbly wrot zoom vswipe scale grid resize +preferred_decoration_mode = server +vheight = 4 +vwidth = 4 +xwayland = true + +[cube] +activate = BTN_LEFT +background = \#77767BFF +background_mode = simple +cubemap_image = /usr/share/wayfire/wallpaper.jpg +deform = 0 +initial_animation = 350 +light = true +rotate_left = KEY_H +rotate_right = KEY_L +skydome_mirror = true +skydome_texture = /usr/share/wayfire/wallpaper.jpg +speed_spin_horiz = 0.020000 +speed_spin_vert = 0.020000 +speed_zoom = 0.070000 +zoom = 0.000000 + +[decoration] +active_color = \#222222AA +border_size = 4 +button_order = minimize maximize close +font = sans-serif +ignore_views = none +inactive_color = \#333333DD +title_height = 20 + +[expo] +background = \#1A1A1AFF +duration = 300 +offset = 10 +select_workspace_1 = KEY_1 +select_workspace_2 = KEY_2 +select_workspace_3 = KEY_3 +select_workspace_4 = KEY_4 +select_workspace_5 = KEY_5 +select_workspace_6 = KEY_6 +select_workspace_7 = KEY_7 +select_workspace_8 = KEY_8 +select_workspace_9 = KEY_9 +toggle = KEY_ALL_APPLICATIONS | +toggle1 = +toggle2 = KEY_SCALE + +[extra-gestures] +close_fingers = 20 +move_delay = 500 +move_fingers = 3 + +[fast-switcher] +activate = KEY_ESC +activate_backward = KEY_ESC +inactive_alpha = 0.700000 + +[fisheye] +radius = 450.000000 +toggle = KEY_F +zoom = 7.000000 + +[grid] +duration = 300 +restore = KEY_DOWN | KEY_KP0 +slot_b = KEY_KP2 +slot_bl = KEY_KP1 +slot_br = KEY_KP3 +slot_c = KEY_UP | KEY_KP5 +slot_l = KEY_LEFT | KEY_KP4 +slot_r = KEY_RIGHT | KEY_KP6 +slot_t = KEY_KP8 +slot_tl = KEY_KP7 +slot_tr = KEY_KP9 +type = crossfade + +[idle] +cube_max_zoom = 1.000000 +cube_rotate_speed = 1.000000 +cube_zoom_speed = 100 +disable_on_fullscreen = false +dpms_timeout = -1 +screensaver_timeout = 30 +toggle = KEY_BACKSPACE + +[input] +click_method = button-areas +cursor_size = 1 +cursor_theme = Adwaita +disable_touchpad_while_mouse = false +disable_touchpad_while_typing = false +gesture_sensitivity = 1.000000 +kb_capslock_default_state = false +kb_numlock_default_state = false +kb_repeat_delay = 400 +kb_repeat_rate = 40 +left_handed_mode = false +middle_emulation = true +modifier_binding_timeout = 400 +mouse_accel_profile = adaptive +mouse_cursor_speed = 0.000000 +mouse_scroll_speed = 1.000000 +natural_scroll = true +scroll_method = two-finger +tap_to_click = true +touchpad_accel_profile = adaptive +touchpad_cursor_speed = 0.000000 +touchpad_scroll_speed = 1.000000 +xkb_layout = gb+mac +xkb_model = +xkb_options = +xkb_rules = evdev +xkb_variant = + +[input-device] +output = + +[invert] +preserve_hue = false +toggle = KEY_I + +[move] +activate = BTN_LEFT +enable_snap = true +enable_snap_off = true +join_views = false +quarter_snap_threshold = 50 +snap_off_threshold = 10 +snap_threshold = 10 +workspace_switch_after = -1 + +[oswitch] +next_output = KEY_O +next_output_with_win = KEY_O + +[output] +mode = auto +position = auto +scale = 1.000000 +transform = normal + +[place] +mode = random + +[preserve-output] +last_output_focus_timeout = 10000 + +[resize] +activate = BTN_RIGHT + +[scale] +allow_zoom = false +bg_color = \#1A1A1AE6 +duration = 200 +inactive_alpha = 0.750000 +interact = true +middle_click_close = false +spacing = 50 +text_color = \#CCCCCCFF +title_font_size = 16 +title_overlay = all +title_position = center +toggle = KEY_SCALE +toggle_all = + +[scale-title-filter] +bg_color = \#00000080 +case_sensitive = false +font_size = 30 +overlay = true +share_filter = false +text_color = \#CCCCCCCC + +[simple-tile] +button_move = BTN_LEFT +button_resize = BTN_RIGHT +inner_gap_size = 5 +keep_fullscreen_on_adjacent = true +key_focus_above = KEY_K +key_focus_below = KEY_J +key_focus_left = KEY_H +key_focus_right = KEY_L +key_toggle = KEY_T +outer_horiz_gap_size = 0 +outer_vert_gap_size = 0 +tile_by_default = all + +[switcher] +next_view = KEY_TAB +prev_view = KEY_TAB +speed = 500 +view_thumbnail_scale = 1.000000 + +[vswipe] +background = \#1A1A1AFF +delta_threshold = 24.000000 +duration = 180 +enable_free_movement = false +enable_horizontal = true +enable_smooth_transition = false +enable_vertical = true +fingers = 4 +gap = 32.000000 +speed_cap = 0.050000 +speed_factor = 256.000000 +threshold = 0.350000 + +[vswitch] +background = \#1A1A1AFF +binding_down = KEY_DOWN +binding_left = KEY_LEFT +binding_right = KEY_RIGHT +binding_up = KEY_UP +binding_win_down = KEY_DOWN +binding_win_left = KEY_LEFT +binding_win_right = KEY_RIGHT +binding_win_up = KEY_UP +duration = 300 +gap = 20 +wraparound = false + +[window-rules] + +[wm-actions] +minimize = none +send_to_back = none +toggle_always_on_top = none +toggle_fullscreen = none +toggle_maximize = none +toggle_showdesktop = none +toggle_sticky = none + +[wobbly] +friction = 2.500000 +grid_resolution = 5 +spring_k = 8.000000 + +[workarounds] +all_dialogs_modal = true +app_id_mode = gtk-shell +dynamic_repaint_delay = false + +[wrot] +activate = BTN_RIGHT +activate-3d = BTN_RIGHT +invert = false +reset = KEY_R +reset-one = KEY_R +reset_radius = 25.000000 +sensitivity = 24 + +[zoom] +modifier = +smoothing_duration = 300 +speed = 0.010000 + diff --git a/srcpkgs/evolution-desktop/files/usr/share/wayfire/wf-shell.ini b/srcpkgs/evolution-desktop/files/usr/share/wayfire/wf-shell.ini new file mode 100644 index 0000000..f92ad98 --- /dev/null +++ b/srcpkgs/evolution-desktop/files/usr/share/wayfire/wf-shell.ini @@ -0,0 +1,46 @@ +[background] +cycle_timeout = 1 +image = /usr/share/wayfire/wallpaper.jpg +preserve_aspect = false +randomize = true + +[dock] +autohide_duration = 300 +css_path = +icon_mapping_jetbrains-idea-ce = //idea.png +position = bottom + +[panel] +autohide = false +autohide_duration = 300 +background_color = gtk_headerbar +battery_font = default +battery_icon_invert = true +battery_icon_size = 16 +battery_status = 1 +clock_font = DejaVu Sans:style=Book 12 +clock_format = %e %a %H:%M +css_path = +launcher_firefox = mullvad-browser.desktop +launcher_lib = libreoffice-startcenter.desktop +launcher_nau = org.gnome.Nautilus.desktop +launcher_terminal1 = Alacritty.desktop +launcher_txt = org.gnome.TextEditor.desktop +launchers_size = 42 +launchers_spacing = 4 +layer = top +menu_fuzzy_search = true +menu_icon = +menu_logout_command = wayland-logout +minimal_height = 24 +network_icon_invert_color = true +network_icon_size = 32 +network_status = 0 +network_status_font = DejaVu Sans:style=Book 12 +network_status_use_color = false +position = top +volume_display_timeout = 0.500000 +widgets_center = clock +widgets_left = spacing4 menu spacing18 launchers +widgets_right = volume spacing16 battery + diff --git a/srcpkgs/evolution-desktop/files/var/service/dbus b/srcpkgs/evolution-desktop/files/var/service/dbus new file mode 120000 index 0000000..34c103f --- /dev/null +++ b/srcpkgs/evolution-desktop/files/var/service/dbus @@ -0,0 +1 @@ +/etc/sv/dbus \ No newline at end of file diff --git a/srcpkgs/evolution-desktop/files/var/service/greetd b/srcpkgs/evolution-desktop/files/var/service/greetd new file mode 120000 index 0000000..1c6fe1a --- /dev/null +++ b/srcpkgs/evolution-desktop/files/var/service/greetd @@ -0,0 +1 @@ +/etc/sv/greetd/ \ No newline at end of file diff --git a/srcpkgs/evolution-desktop/files/var/service/polkitd b/srcpkgs/evolution-desktop/files/var/service/polkitd new file mode 120000 index 0000000..cb93149 --- /dev/null +++ b/srcpkgs/evolution-desktop/files/var/service/polkitd @@ -0,0 +1 @@ +/etc/sv/polkitd/ \ No newline at end of file diff --git a/srcpkgs/evolution-desktop/template b/srcpkgs/evolution-desktop/template new file mode 100644 index 0000000..827c72b --- /dev/null +++ b/srcpkgs/evolution-desktop/template @@ -0,0 +1,27 @@ +pkgname=evolution-desktop +version=1.1 +revision=8 +build_style=meta +maintainer="Tracker-Friendly " +short_desc="Desktop and Greeter for EvolutionOS" +license="GPL-3.0" +homepage="https://evolutionos.codeberg.page" +depends="wayfire greetd wf-shell wcm mesa-dri elogind polkit mate-polkit greetd-gtkgreet gtkloadspinner dbus dconf nautilus alacritty pipewire wireplumber slurp grim alsa-pipewire gnome-system-monitor upower brightnessctl gnome-themes-extra dejavu-fonts-ttf xdg-desktop-portal-wlr xdg-desktop-portal-gtk swaylock swayidle wpa_supplicant wpa-cute evolution-theme-switcher" + +do_install() { + #!/bin/bash + + mkdir -p ${DESTDIR}/etc/runit/runsvdir/default + cp -r ${FILESDIR}/var/service/* ${DESTDIR}/etc/runit/runsvdir/default/ + vbin ${FILESDIR}/bin/Wayfire + vbin ${FILESDIR}/bin/startsession + vbin ${FILESDIR}/bin/audioctl + mkdir -p ${DESTDIR}/etc/greetd + cp ${FILESDIR}/etc/greetd/environments ${DESTDIR}/etc/greetd + cp ${FILESDIR}/etc/greetd/wallpaper.png ${DESTDIR}/etc/greetd/ + cp ${FILESDIR}/etc/greetd/config.toml ${DESTDIR}/etc/greetd/config.toml.2 + mkdir -p ${DESTDIR}/etc/greetd/greeter/.config + cp -r ${FILESDIR}/home/greeter/* ${DESTDIR}/etc/greetd/greeter/.config + mkdir -p ${DESTDIR}/usr/share/wayfire + cp -r ${FILESDIR}/usr/share/wayfire/* ${DESTDIR}/usr/share/wayfire/ +} diff --git a/srcpkgs/evolution-patches/files/conf b/srcpkgs/evolution-patches/files/conf new file mode 100644 index 0000000..e1b6df5 --- /dev/null +++ b/srcpkgs/evolution-patches/files/conf @@ -0,0 +1,14 @@ +if [ -x /sbin/agetty -o -x /bin/agetty ]; then + # util-linux specific settings + if [ "${tty}" = "tty1" ]; then + if [ -e /bin/getty ]; then + GETTY_ARGS="" + else + GETTY_ARGS="--noclear" + fi + fi +fi + +BAUD_RATE=38400 +TERM_NAME=linux +EOF diff --git a/srcpkgs/evolution-patches/files/doas.conf b/srcpkgs/evolution-patches/files/doas.conf new file mode 100644 index 0000000..d5b8baf --- /dev/null +++ b/srcpkgs/evolution-patches/files/doas.conf @@ -0,0 +1,2 @@ +permit persist root +permit persist :wheel diff --git a/srcpkgs/evolution-patches/files/main.conf b/srcpkgs/evolution-patches/files/main.conf new file mode 100644 index 0000000..0be8de1 --- /dev/null +++ b/srcpkgs/evolution-patches/files/main.conf @@ -0,0 +1 @@ +repository=https://evolutionos.codeberg.page/pkg diff --git a/srcpkgs/evolution-patches/template b/srcpkgs/evolution-patches/template new file mode 100644 index 0000000..8732f76 --- /dev/null +++ b/srcpkgs/evolution-patches/template @@ -0,0 +1,41 @@ +pkgname=evolution-patches +version=1.0 +revision=9 +build_style=meta +maintainer="Tracker-Friendly " +short_desc="Simple patches that enable an usable OS out of the box" +license="GPL-3.0" +homepage="https://evolutionos.codeberg.page" +makedepends="busybox-core opendoas" +depends="busybox-core opendoas shadowfix" +replaces="grep which gzip tar diffutils coreutils findutils xz wget sed gawk pciutils usbutils tree" +provides="awk-0_1" + +do_install() { + #!/bin/bash + + # Get the list of commands from busybox + + commands="[ [[ arch ascii base32 base64 basename brctl cat chgrp chmod chown chroot comm cp crc32 cttyhack cut date dc dd df dirname dnsdomainname du dumpkmap echo ed env expand expr factor false fatattr fbset fold fsync fuser getty groups head hexedit i2cdetect i2cdump i2cget i2cset i2ctransfer id ifconfig ifenslave install iostat ipaddr iplink ipneigh iproute iprule iptunnel killall killall5 link ln loadkmap ls lsof lsscsi lzcat md5sum mkdir mkfifo mknod mkstat mv nc netstat nice nl nohup nproc nslookup od partprobe paste patch pipe_progress powertop printenv printf pstree pwd readlink realpath rm rmdir seq setfattr sha1sum sha256sum sha3sum sha512sum shred shuf sleep sort split ssl_client stat strings stty sum svok sync tac tail tee telnet test time touch tr true truncate ts tty uevent uname unexpand uniq unlink unxz unzip uudecode uuencode wc wget whoami whois xxd xz xzcat yes sh find diff gunzip tar gzip sed less which mktemp grep xargs cmp egrep fgrep lspci lsusb mpstat tree tsort zcat" + mkdir -p ${DESTDIR}/usr/bin/ + # Loop through each command + for cmd in $commands; do + echo $PWD + busybox ln -sf /bin/busybox ${DESTDIR}/usr/bin/$cmd + chmod +x ${DESTDIR}/usr/bin/$cmd + ls -l ${DESTDIR}/usr/bin/$cmd + done + + ls ${DESTDIR} + echo ${DESTDIR} + echo done + + mkdir -p ${DESTDIR}/etc/sv/agetty-tty1 + cp ${FILESDIR}/conf ${DESTDIR}/etc/sv/agetty-tty1/conf + mkdir -p ${DESTDIR}/usr/share/xbps.d + cp ${FILESDIR}/main.conf ${DESTDIR}/usr/share/xbps.d/*-0-evolution-main.conf + mkdir -p ${DESTDIR}/etc/ + cp ${FILESDIR}/doas.conf ${DESTDIR}/etc/doas.conf + + ln -sf /bin/doas ${DESTDIR}/usr/bin/sudo +} diff --git a/srcpkgs/evolution-theme-switcher/template b/srcpkgs/evolution-theme-switcher/template new file mode 100644 index 0000000..60ea349 --- /dev/null +++ b/srcpkgs/evolution-theme-switcher/template @@ -0,0 +1,26 @@ +#!/bin/sh +pkgname=evolution-theme-switcher +version=1.0 +revision=5 +short_desc="Just a theme switcher for evolution-desktop" +maintainer="Tracker-Friendly " +homepage="https://codeberg.org/EvolutionOS/Evolution-theme-switcher" +license="GPL-3.0" +makedepends="make gcc git pkg-config gtk+3-devel dconf" +depends="gtk+3 dconf" + +do_build() { + echo "Building..." + cd ${XBPS_BUILDDIR} + rm -rf gtkgreet + git clone https://codeberg.org/EvolutionOS/evolution-theme-switcher.git + cd evolution-theme-switcher + make +} + +do_install() { + echo "Installing..." + vbin ${XBPS_BUILDDIR}/evolution-theme-switcher/themeswitcher + mkdir -p ${DESTDIR}/usr/share/applications + cp ${XBPS_BUILDDIR}/evolution-theme-switcher/evolution-theme-switcher.desktop ${DESTDIR}/usr/share/applications/ +} diff --git a/srcpkgs/greetd-gtkgreet/template b/srcpkgs/greetd-gtkgreet/template new file mode 100644 index 0000000..b6bc45a --- /dev/null +++ b/srcpkgs/greetd-gtkgreet/template @@ -0,0 +1,25 @@ +#!/bin/sh +pkgname=greetd-gtkgreet +version=0.7 +revision=0 +short_desc="GTKGreet for greetd (not my software)" +maintainer="Tracker-Friendly " +homepage="https://git.sr.ht/~kennylevinsen/gtkgreet" +license="GPL-3.0" +makedepends="meson git pkg-config gtk+3-devel json-c-devel cmake ninja gettext scdoc" +depends="greetd gtk+3 json-c" + +do_build() { + echo "Building..." + cd ${XBPS_BUILDDIR} + rm -rf gtkgreet + git clone https://github.com/kennylevinsen/gtkgreet + cd gtkgreet + meson build -Dlayershell=disabled + ninja -C build +} + +do_install() { + echo "Installing..." + vbin ${XBPS_BUILDDIR}/gtkgreet/build/gtkgreet/gtkgreet +} diff --git a/srcpkgs/gtkloadspinner/template b/srcpkgs/gtkloadspinner/template new file mode 100644 index 0000000..2d33f2f --- /dev/null +++ b/srcpkgs/gtkloadspinner/template @@ -0,0 +1,24 @@ +#!/bin/sh +pkgname=gtkloadspinner +version=1.0 +revision=2 +short_desc="Ridonculously simple spinner for GTK" +maintainer="Tracker-Friendly " +homepage="https://codeberg.org/EvolutionOS/GtkLoadSpinner" +license="GPL-3.0" +makedepends="make gcc git pkg-config gtk+3-devel" +depends="gtk+3" + +do_build() { + echo "Building..." + cd ${XBPS_BUILDDIR} + rm -rf gtkgreet + git clone https://codeberg.org/EvolutionOS/GtkLoadSpinner.git + cd GtkLoadSpinner + make +} + +do_install() { + echo "Installing..." + vbin ${XBPS_BUILDDIR}/GtkLoadSpinner/loadspinner +} diff --git a/srcpkgs/linux-base/template b/srcpkgs/linux-base/template new file mode 100644 index 0000000..1f386d9 --- /dev/null +++ b/srcpkgs/linux-base/template @@ -0,0 +1,18 @@ +# Template file for 'linux-base' +pkgname=linux-base +version=2021.07.21 +revision=1 +build_style=meta +short_desc="Linux kernel base dependencies" +maintainer="Érico Nogueira " +license="Public Domain" +homepage="https://voidlinux.org/" + +case "$XBPS_TARGET_MACHINE" in + i686*|x86_64*) + depends="linux-firmware-amd linux-firmware-intel linux-firmware-nvidia linux-firmware-network booster" + ;; + ppc*|armv7l*|aarch64*) + depends="linux-firmware-amd linux-firmware-nvidia linux-firmware-network booster" + ;; +esac diff --git a/srcpkgs/mdocml/INSTALL b/srcpkgs/mdocml/INSTALL new file mode 100644 index 0000000..7aa787b --- /dev/null +++ b/srcpkgs/mdocml/INSTALL @@ -0,0 +1,6 @@ +case "$ACTION" in +post) + echo "Regenerating man db..." + usr/bin/makewhatis -Tutf8 + ;; +esac diff --git a/srcpkgs/mdocml/files/cgi.h b/srcpkgs/mdocml/files/cgi.h new file mode 100644 index 0000000..d9cbd63 --- /dev/null +++ b/srcpkgs/mdocml/files/cgi.h @@ -0,0 +1,5 @@ +#define SCRIPT_NAME "" +#define MAN_DIR "/var/lib/man-cgi" +#define CSS_DIR "" +#define CUSTOMIZE_TITLE "Void Linux manpages" +#define COMPAT_OLDURI No diff --git a/srcpkgs/mdocml/files/makewhatis.cron.daily b/srcpkgs/mdocml/files/makewhatis.cron.daily new file mode 100755 index 0000000..efe892e --- /dev/null +++ b/srcpkgs/mdocml/files/makewhatis.cron.daily @@ -0,0 +1,2 @@ +#!/bin/sh +exec makewhatis -Tutf8 diff --git a/srcpkgs/mdocml/files/man.conf b/srcpkgs/mdocml/files/man.conf new file mode 100644 index 0000000..32c2ac4 --- /dev/null +++ b/srcpkgs/mdocml/files/man.conf @@ -0,0 +1,6 @@ +# man(1)/apropos(1)/makewhatis(8) configuration, see man.conf(5). + +# Default search path for manual pages. +# Add, delete, or reorder as desired. +manpath /usr/local/share/man +manpath /usr/share/man diff --git a/srcpkgs/mdocml/files/void.css b/srcpkgs/mdocml/files/void.css new file mode 100644 index 0000000..17bb533 --- /dev/null +++ b/srcpkgs/mdocml/files/void.css @@ -0,0 +1,61 @@ + +/** Void style **/ +html { + --fg: #333; + --bg: #fff; + --fg-accent: #478061; + --nav-fg: #fff; + --nav-bg: #478061; +} +@media (prefers-color-scheme: dark) { + html { + --fg: #ccc; + --bg: #222; + --fg-accent: #62b086; + --nav-fg: #fff; + --nav-bg: #295340; + } +} + +a, :link, :visited { color: var(--fg-accent); } +a:hover { color: var(--fg); } + +html { max-width: 100% } +body { margin: 0 } +.manual-text { max-width: 65em; padding: 0 1em; } + +nav#void-nav { + width:100%; + min-height:50px; + color:var(--nav-fg); + background-color:var(--nav-bg); + z-index:110; + font-size:14px +} +nav#void-nav ul { + display:block; + list-style:none; + margin:0 +} +nav#void-nav ul li { + display:inline-block; + margin:0; +} +nav#void-nav ul li a { + display:inline-block; + padding:15px; + line-height:20px; + font-size:1.2em; + color:var(--nav-fg); + text-decoration: none +} +nav#void-nav ul li a:hover,nav#void-nav ul li a:focus { + color:#fff; + background-color:#000; + text-decoration:none +} + +/** Hide architecture selector **/ +select[name="arch"] { + display: none; +} diff --git a/srcpkgs/mdocml/patches/cgi-gz.patch b/srcpkgs/mdocml/patches/cgi-gz.patch new file mode 100644 index 0000000..06af0c2 --- /dev/null +++ b/srcpkgs/mdocml/patches/cgi-gz.patch @@ -0,0 +1,22 @@ +--- a/cgi.c ++++ b/cgi.c +@@ -879,14 +879,15 @@ + int fd; + int usepath; + +- if (-1 == (fd = open(file, O_RDONLY, 0))) { ++ mchars_alloc(); ++ mp = mparse_alloc(MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1 | ++ MPARSE_VALIDATE, MANDOC_OS_OTHER, req->q.manpath); ++ ++ if (-1 == (fd = mparse_open(mp, file))) { + puts("

You specified an invalid manual file.

"); + return; + } + +- mchars_alloc(); +- mp = mparse_alloc(MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1 | +- MPARSE_VALIDATE, MANDOC_OS_OTHER, req->q.manpath); + mparse_readfd(mp, fd, file); + close(fd); + meta = mparse_result(mp); diff --git a/srcpkgs/mdocml/patches/cross.patch b/srcpkgs/mdocml/patches/cross.patch new file mode 100644 index 0000000..10c8ab4 --- /dev/null +++ b/srcpkgs/mdocml/patches/cross.patch @@ -0,0 +1,30 @@ +--- a/configure ++++ b/configure +@@ -176,15 +176,6 @@ + if ${COMP} -o "test-${1}" "${SOURCEDIR}/test-${1}.c" ${3} 1>&3 2>&3 + then + echo "partial result of ${n}: ${CC} succeeded" 1>&3 +- else +- echo "tested ${n}: no (compilation failed)" 1>&2 +- echo "result of ${n}: ${CC} failed with exit status $?" 1>&3 +- echo "result of compiling ${n}: no" 1>&3 +- echo 1>&3 +- return 1 +- fi +- +- if ./test-${1} 1>&3 2>&3; then + echo "tested ${n}: yes" 1>&2 + echo "result of running ${n}: yes" 1>&3 + echo 1>&3 +@@ -199,10 +190,9 @@ + return 0 + else + echo "tested ${n}: no (execution failed)" 1>&2 +- echo "result of ${n}: execution failed with exit status $?" 1>&3 ++ echo "result of ${n}: ${CC} failed with exit status $?" 1>&3 + echo "result of running ${n}: no" 1>&3 + echo 1>&3 +- rm "test-${1}" + return 1 + fi + } diff --git a/srcpkgs/mdocml/patches/stress-ng-hang.patch b/srcpkgs/mdocml/patches/stress-ng-hang.patch new file mode 100644 index 0000000..fd6a3a7 --- /dev/null +++ b/srcpkgs/mdocml/patches/stress-ng-hang.patch @@ -0,0 +1,75 @@ +fixes hang from rendering stress-ng(1) + +from https://inbox.vuxu.org/mandoc-discuss/ZIIbRuk+yJtoAJhv@asta-kit.de/ + +=================================================================== +RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/out.c,v +retrieving revision 1.54 +retrieving revision 1.55 +diff -u -r1.54 -r1.55 +--- a/out.c 2021/09/07 17:05:30 1.54 ++++ b/out.c 2021/09/28 17:06:17 1.55 +@@ -121,6 +121,7 @@ + const struct tbl_dat *dp; + struct roffcol *col; + struct tbl_colgroup *first_group, **gp, *g; ++ size_t *colwidth; + size_t ewidth, min1, min2, wanted, width, xwidth; + int done, icol, maxcol, necol, nxcol, quirkcol; + +@@ -254,16 +255,28 @@ + gp = &(*gp)->next; + } + ++ colwidth = mandoc_reallocarray(NULL, maxcol + 1, sizeof(*colwidth)); + while (first_group != NULL) { + + /* ++ * Rebuild the array of the widths of all columns ++ * participating in spans that require expansion. ++ */ ++ ++ for (icol = 0; icol <= maxcol; icol++) ++ colwidth[icol] = SIZE_MAX; ++ for (g = first_group; g != NULL; g = g->next) ++ for (icol = g->startcol; icol <= g->endcol; icol++) ++ colwidth[icol] = tbl->cols[icol].width; ++ ++ /* + * Find the smallest and second smallest column width + * among the columns which may need expamsion. + */ + + min1 = min2 = SIZE_MAX; + for (icol = 0; icol <= maxcol; icol++) { +- width = tbl->cols[icol].width; ++ width = colwidth[icol]; + if (min1 > width) { + min2 = min1; + min1 = width; +@@ -281,7 +294,7 @@ + for (g = first_group; g != NULL; g = g->next) { + necol = 0; + for (icol = g->startcol; icol <= g->endcol; icol++) +- if (tbl->cols[icol].width == min1) ++ if (colwidth[icol] == min1) + necol++; + if (necol == 0) + continue; +@@ -298,7 +311,7 @@ + while ((g = *gp) != NULL) { + done = 0; + for (icol = g->startcol; icol <= g->endcol; icol++) { +- if (tbl->cols[icol].width != min1) ++ if (colwidth[icol] != min1) + continue; + if (g->wanted <= wanted - min1) { + tbl->cols[icol].width += g->wanted; +@@ -315,6 +328,7 @@ + gp = &(*gp)->next; + } + } ++ free(colwidth); + + /* + * Align numbers with text. diff --git a/srcpkgs/mdocml/template b/srcpkgs/mdocml/template new file mode 100644 index 0000000..2037597 --- /dev/null +++ b/srcpkgs/mdocml/template @@ -0,0 +1,78 @@ +# Template file for 'mdocml' +pkgname=mdocml +version=1.14.6 +revision=7 +build_style=configure +make_build_args="all man.cgi" +make_check_target="regress" +hostmakedepends="less" +makedepends="zlib-devel" +depends="busybox-core" +checkdepends="perl" +conf_files="/etc/man.conf" +short_desc="UNIX manpage compiler toolset (mandoc)" +maintainer="Leah Neukirchen " +license="ISC" +homepage="https://mandoc.bsd.lv" +distfiles="https://mandoc.bsd.lv/snapshots/mandoc-${version}.tar.gz" +checksum=8bf0d570f01e70a6e124884088870cbed7537f36328d512909eb10cd53179d9c +provides="man-0_1" + +alternatives=" + man:man:/usr/bin/mandoc + man:whatis:/usr/bin/mandoc + man:apropos:/usr/bin/mandoc + man:man.1:/usr/share/man/man1/mandoc-man.1 + man:whatis.1:/usr/share/man/man1/mandoc-whatis.1 + man:apropos.1:/usr/share/man/man1/mandoc-apropos.1" + +CFLAGS="-fcommon" + +post_patch() { + cat ${FILESDIR}/void.css >>mandoc.css + cp ${FILESDIR}/cgi.h . +} +pre_configure() { + cat >configure.local <<-EOF + PREFIX=/usr + SBINDIR=/usr/bin + MANDIR=/usr/share/man + OSNAME="Void Linux" + BINM_SOELIM=mandoc-soelim + MANM_ROFF="mandoc_roff" + LDFLAGS="$LDFLAGS" + CFLAGS="$CFLAGS" + CC="$CC" + HAVE_REWB_BSD=0 + EOF + case "$XBPS_TARGET_MACHINE" in + *-musl) echo 'UTF8_LOCALE="C.UTF-8"' >>configure.local;; + esac +} +post_install() { + # Rename mans for alternatives + for f in apropos man whatis; do + mv ${DESTDIR}/usr/share/man/man1/{$f,mandoc-$f}.1 + done + # Use alternatives. + rm -f ${DESTDIR}/usr/bin/{apropos,man,whatis} + # man(1) configuration file + vconf ${FILESDIR}/man.conf + # remove devel stuff + rm -rf ${DESTDIR}/usr/{include,lib,share/man/man3} + # Daily cron job to generate man db + vinstall ${FILESDIR}/makewhatis.cron.daily 755 etc/cron.daily makewhatis + vlicense LICENSE +} + +void-man-cgi_package() { + short_desc="CGI manpage formatter for man.voidlinux.org" + depends="${sourcepkg}>=${version}_${revision}" + pkg_install() { + vmkdir usr/libexec/mandoc + vinstall man.cgi 0755 usr/libexec/mandoc + vsconf mandoc.css + vman man.cgi.3 + vman man.cgi.8 + } +} diff --git a/srcpkgs/mdocml/update b/srcpkgs/mdocml/update new file mode 100644 index 0000000..24c575a --- /dev/null +++ b/srcpkgs/mdocml/update @@ -0,0 +1,2 @@ +ignore='*.regress' +pkgname='mandoc' diff --git a/srcpkgs/neofetch/template b/srcpkgs/neofetch/template new file mode 100644 index 0000000..4120d83 --- /dev/null +++ b/srcpkgs/neofetch/template @@ -0,0 +1,23 @@ +#!/bin/sh +pkgname=neofetch +version=7.1.0 +revision=5 +short_desc="Simple system information script (not my software)" +maintainer="Tracker-Friendly " +homepage="https://codeberg.org/EvolutionOS/neofetch" +license="MIT" +makedepends="make git" +depends="bash" + +do_build() { + echo "Building..." + # Not needed +} + +do_install() { + echo "Installing..." + git clone --depth=1 https://codeberg.org/EvolutionOS/neofetch.git + cd neofetch + mkdir -p ${DESTDIR}/usr/ + make PREFIX=${DESTDIR}/usr/ install +} diff --git a/srcpkgs/runit-void-apparmor b/srcpkgs/runit-void-apparmor new file mode 120000 index 0000000..56af434 --- /dev/null +++ b/srcpkgs/runit-void-apparmor @@ -0,0 +1 @@ +runit-void \ No newline at end of file diff --git a/srcpkgs/runit-void/INSTALL b/srcpkgs/runit-void/INSTALL new file mode 100644 index 0000000..758cb9e --- /dev/null +++ b/srcpkgs/runit-void/INSTALL @@ -0,0 +1,26 @@ +case "${ACTION}" in +post) + # Enable default services: + # - agetty-tty[1-4] (default) + # - udevd (default) + # - sulogin (single) + mkdir -p etc/runit/runsvdir/single + ln -sf /etc/sv/sulogin etc/runit/runsvdir/single + + mkdir -p etc/runit/runsvdir/default + if [ ! -e etc/runit/runsvdir/current ]; then + ln -sf default etc/runit/runsvdir/current + fi + for f in 1 2 3 4 5 6; do + [ -e /etc/sv/agetty-tty${f}/down ] || ln -sf /etc/sv/agetty-tty$f etc/runit/runsvdir/default + done + [ -e etc/sv/udevd/run ] && ln -sf /etc/sv/udevd etc/runit/runsvdir/default + + if [ -d usr/sbin -a ! -L usr/sbin ]; then + for f in init shutdown halt reboot poweroff; do + ln -sr ../bin/$f usr/sbin/$f + done + fi + + ;; +esac diff --git a/srcpkgs/runit-void/files/09-apparmor.sh b/srcpkgs/runit-void/files/09-apparmor.sh new file mode 100644 index 0000000..1d24b4e --- /dev/null +++ b/srcpkgs/runit-void/files/09-apparmor.sh @@ -0,0 +1,27 @@ +# vim: set ts=4 sw=4 et: + +# AppArmor is not enabled in kernel, silently exit +[ ! -d /sys/kernel/security/apparmor ] && return + +# Load config +[ -r /etc/default/apparmor ] && . /etc/default/apparmor + +# Proceed to load profiles depending on user settings +msg "Loading AppArmor profiles..." + +if [ -n "$APPARMOR" ]; then + if [ "$APPARMOR" != "complain" -a "$APPARMOR" != "enforce" ]; then + printf '! AppArmor set to %s - ignoring profiles\n' "$APPARMOR" + return + fi + + [ "$APPARMOR" = "complain" ] && AACOMPLAIN="-C" + + if [ -d /etc/apparmor.d -a -x /usr/bin/apparmor_parser ]; then + apparmor_parser -a $AACOMPLAIN $(find /etc/apparmor.d -maxdepth 1 -type f ! -name '*.new-*_*') + else + printf '! AppArmor installation problem - ensure you have installed apparmor package\n' + fi +else + printf '! AppArmor disabled - ignoring profiles\n' +fi diff --git a/srcpkgs/runit-void/files/apparmor b/srcpkgs/runit-void/files/apparmor new file mode 100644 index 0000000..b32ce11 --- /dev/null +++ b/srcpkgs/runit-void/files/apparmor @@ -0,0 +1,7 @@ +# AppArmor configuration + +# Possible options: +# - disable +# - complain +# - enforce +APPARMOR=complain diff --git a/srcpkgs/runit-void/files/hostname b/srcpkgs/runit-void/files/hostname new file mode 100644 index 0000000..916d471 --- /dev/null +++ b/srcpkgs/runit-void/files/hostname @@ -0,0 +1 @@ +void-live diff --git a/srcpkgs/runit-void/files/locale.conf b/srcpkgs/runit-void/files/locale.conf new file mode 100644 index 0000000..abfaa52 --- /dev/null +++ b/srcpkgs/runit-void/files/locale.conf @@ -0,0 +1,2 @@ +LANG=en_US.UTF-8 +LC_COLLATE=C diff --git a/srcpkgs/runit-void/runit-void-apparmor.INSTALL b/srcpkgs/runit-void/runit-void-apparmor.INSTALL new file mode 100644 index 0000000..54b8e2d --- /dev/null +++ b/srcpkgs/runit-void/runit-void-apparmor.INSTALL @@ -0,0 +1,13 @@ +case "$ACTION" in +pre) + # Fix incorrect path in /etc/default + if [ -e /etc/default/apparmor/rc.apparmor ]; then + mv /etc/default/apparmor/rc.apparmor /etc/default/rc.apparmor + rm -rf /etc/default/apparmor + mv /etc/default/rc.apparmor /etc/default/apparmor + fi + if [ -d /etc/default/apparmor ]; then + rm -rf /etc/default/apparmor + fi + ;; +esac diff --git a/srcpkgs/runit-void/template b/srcpkgs/runit-void/template new file mode 100644 index 0000000..5028c85 --- /dev/null +++ b/srcpkgs/runit-void/template @@ -0,0 +1,54 @@ +# Template file for 'runit-void' +pkgname=runit-void +version=20230413 +revision=1 +build_style=gnu-makefile +short_desc="Void / Evolution Linux runit scripts (partially patched by Tracker-Friendly)" +maintainer="Enno Boland " +license="CC0-1.0" +homepage="https://github.com/void-linux/void-runit" +distfiles="https://github.com/void-linux/void-runit/archive/refs/tags/${version}.tar.gz" +checksum=1049555eb27c370ec482ab576382ff951c2c33da6e8f5d165b3733c4a6d157cb + +depends="virtual?awk procps-ng runit" +conf_files=" + /etc/hostname + /etc/locale.conf + /etc/rc.conf + /etc/rc.local + /etc/rc.shutdown + /etc/sv/agetty-console/conf + /etc/sv/agetty-serial/conf + /etc/sv/agetty-hvc0/conf + /etc/sv/agetty-hvsi0/conf" + +make_dirs=" + /etc/zzz.d/suspend 0755 root root + /etc/zzz.d/resume 0755 root root" + +post_install() { + vmkdir usr/bin + mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin + vconf ${FILESDIR}/hostname + vconf ${FILESDIR}/locale.conf + vinstall ${FILESDIR}/apparmor 644 /etc/default/ + vinstall ${FILESDIR}/09-apparmor.sh 644 /etc/runit/core-services/ + vmkdir usr/lib + # Enable services at post-install time instead. + rm -f ${DESTDIR}/etc/runit/runsvdir/current + rm -rf ${DESTDIR}/etc/runit/runsvdir/default + rm -rf ${DESTDIR}/etc/runit/runsvdir/single + ln -s runit-init ${DESTDIR}/usr/bin/init + rm -rfv ${DESTDIR}/etc/sv/agetty-tty1/conf +} + +runit-void-apparmor_package() { + short_desc+=" - AppArmor initialization" + depends="${sourcepkg}-${version}_${revision}" + conf_files="/etc/default/apparmor" + pkg_install() { + vmove etc/default/apparmor + vmove etc/runit/core-services/09-apparmor.sh + rm -rfv ${DESTDIR}/etc/sv/agetty-tty1/conf + } +} diff --git a/srcpkgs/shadowfix/template b/srcpkgs/shadowfix/template new file mode 100644 index 0000000..b2fd355 --- /dev/null +++ b/srcpkgs/shadowfix/template @@ -0,0 +1,16 @@ +pkgname=shadowfix +version=1.0 +revision=0 +build_style=meta +maintainer="Tracker-Friendly " +short_desc="Something that should only ever be installed ONCE. EVER." +license="GPL-3.0" +homepage="https://evolutionos.codeberg.page" + +do_install() { + #!/bin/bash + + mkdir -p ${DESTDIR}/etc/ + + touch ${DESTDIR}/etc/shadow +} diff --git a/srcpkgs/void-man-cgi b/srcpkgs/void-man-cgi new file mode 120000 index 0000000..1f8650c --- /dev/null +++ b/srcpkgs/void-man-cgi @@ -0,0 +1 @@ +mdocml \ No newline at end of file diff --git a/srcpkgs/xbps-triggers/files/appstream-cache b/srcpkgs/xbps-triggers/files/appstream-cache new file mode 100755 index 0000000..8494d1e --- /dev/null +++ b/srcpkgs/xbps-triggers/files/appstream-cache @@ -0,0 +1,65 @@ +#!/bin/sh +# +# Updates the appstream AppData cache during installation of packages and +# deletes it when AppStream is removed +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +# The appstreamcli binary program. +APPSTREAMCLI="usr/bin/appstreamcli" + +# Paths that hold appstream metadata files +# the first one is the traditional one where most package reside but it is +# considered deprecated by upstream +# the other 3 are the ones used by upstream as noted in as-pool.c#L93-95 +APPDATA_DATAPATHS="usr/share/appdata usr/share/app-info var/lib/app-info var/cache/app-info" + +# Location where the cache files go when they are generated they are most +# of the time compressed with gvz extension +APPSTREAM_CACHE="var/cache/app-info/gv" + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + case "$TARGET" in + post-install|post-remove) + if [ $PKGNAME = "AppStream" -a $TARGET = "post-remove" ]; then + for f in ${APPSTREAM_CACHE}/*; do + rm -f ${f} + done + echo "Removing AppStream cache..." + rmdir ${APPSTREAM_CACHE} + exit 0 + fi + + if [ ! -x "$APPSTREAMCLI" ]; then + exit 0 + fi + + for path in ${APPDATA_DATAPATHS}; do + APPSTREAM_PATHS="${APPSTREAM_PATHS} --datapath ${path}" + done + + echo "Updating AppStream cache..." + ${APPSTREAMCLI} refresh-cache --force ${APPSTREAM_PATHS} --cachepath ${APPSTREAM_CACHE} + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/binfmts b/srcpkgs/xbps-triggers/files/binfmts new file mode 100755 index 0000000..1691983 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/binfmts @@ -0,0 +1,61 @@ +#!/bin/sh +# +# binfmts trigger. +# +# Binaries can be specified like: +# binfmts=" [ ...]" +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +export PATH="usr/bin:usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin" + +case "$ACTION" in +targets) + echo "post-install pre-remove" + ;; +run) + [ -x /usr/bin/update-binfmts ] || exit 0 + [ -z "${binfmts}" ] && exit 0 + + case "$TARGET" in + post-install) + echo "$binfmts" | tr '\' '&' 2> /dev/null | while read line; do + line=$(echo $line | tr '&' '\' 2> /dev/null) + set -- ${line} + _bin="$1"; shift; _args="$@"; _bname="$(basename ${_bin})" + update-binfmts --package ${PKGNAME} --install ${_bname} ${_bin} ${_args} + done + ;; + pre-remove) + echo "$binfmts" | tr '\' '&' 2> /dev/null | while read line; do + line=$(echo $line | tr '&' '\' 2> /dev/null) + set -- ${line} + _bin="$1"; shift; _args="$@"; _bname="$(basename ${_bin})" + if [ -f /var/lib/binfmts/${_bname} ]; then + update-binfmts --package ${PKGNAME} --remove ${_bname} ${_bin} + fi + done + ;; + *) + exit 1 + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 +# end +# end diff --git a/srcpkgs/xbps-triggers/files/dkms b/srcpkgs/xbps-triggers/files/dkms new file mode 100755 index 0000000..ae87f3b --- /dev/null +++ b/srcpkgs/xbps-triggers/files/dkms @@ -0,0 +1,148 @@ +#!/bin/sh +# +# DKMS trigger. Used to add/build/install or remove the specified modules +# from all kernels. +# +# Modules can be specified like: +# dkms_modules=" ..." +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +export PATH="usr/bin:usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin" + +remove_modules() { + # Remove the specified modules from all kernels. + set -- ${dkms_modules} + while [ $# -gt 0 ]; do + $DKMS status -m "$1" | while read -r line; do + IFS=" ,:/" read -r modname modver kver arch status _ <<-EOF + $line + EOF + if [ "${line#*: }" = added ]; then + # The module wasn't built successfully for any kernel version + printf %s "Cleaning up DKMS module '$modname-$modver'... " + $DKMS remove -m "$modname" -v "$modver" >/dev/null 2>&1 + elif [ "$status" = installed ] || [ "$status" = built ]; then + printf %s "Removing DKMS module '$modname-$modver' for kernel-$kver... " + $DKMS remove -m "$modname" -v "$modver" -k "$kver" >/dev/null 2>&1 + else + # Invalid output + continue + fi + if [ $? -eq 0 ]; then + echo "done." + else + echo "FAILED!" + fi + done + shift 2 + done +} + +add_modules() { + local rval= + + # Add/build and install the specified modules for all kernels. + set -- ${dkms_modules} + while [ $# -gt 0 ]; do + $DKMS add -m "$1" -v "$2" >/dev/null 2>&1 + rval=$? + if [ $rval -eq 0 ]; then + echo "Added DKMS module '$1-$2'." + elif [ $rval -eq 3 ]; then + echo "DKMS module '$1-$2' already added, skipping." + else + echo "Failed to add DKMS module: '$1-$2'..." + err=1 + fi + shift 2 + done + [ -n "$err" ] && exit $err + + for f in $(echo lib/modules/*); do + _kver=$(basename $f) + if [ ! -e "${f}/build/include" ]; then + echo "Skipping kernel-${_kver}. kernel-headers package not installed..." + continue + fi + if [ ! -f ${f}/build/scripts/basic/fixdep ] || [ ! -f ${f}/build/scripts/mod/modpost ] ; then + echo -n "Prepare to build modules for kernel-${_kver}... " + yes "" | make -j$(nproc) -C ${f}/build prepare0 > ${f}/build/make.log 2>&1 + if [ $? -eq 0 ]; then + echo "done." + else + echo "FAILED!" + echo "Kernel scripts failed to build, please check /${f}/build/make.log" + echo "for errors in the log file." + fi + fi + set -- ${dkms_modules} + while [ $# -gt 0 ]; do + echo -n "Building DKMS module '$1-$2' for kernel-${_kver}... " + $DKMS build -q -m "$1" -v "$2" -k "${_kver}" >/dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "done." + else + echo "FAILED!" + echo "DKMS module '$1-$2' failed to build, please check /var/lib/dkms" + echo "for errors in the log file." + shift 2; continue + fi + echo -n "Installing DKMS module '$1-$2' for kernel-${_kver}... " + $DKMS install --force -q -m "$1" -v "$2" -k "${_kver}" >/dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "done." + else + echo "FAILED!" + echo "DKMS module '$1-$2' failed to install, please do this manually" + echo "and check for errors in the log file." + fi + shift 2 + done + done +} + +case "$ACTION" in +targets) + echo "post-install pre-remove" + ;; +run) + if [ -x /usr/bin/dkms ]; then + DKMS=/usr/bin/dkms + elif [ -x /usr/sbin/dkms ]; then + DKMS=/usr/sbin/dkms + else + exit 0 + fi + + [ ! -x $DKMS -o -z "$dkms_modules" ] && exit 0 + + case "$TARGET" in + post-install) + export IGNORE_CC_MISMATCH=1 + add_modules + ;; + pre-remove) + remove_modules + ;; + *) + exit 1 + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/gconf-schemas b/srcpkgs/xbps-triggers/files/gconf-schemas new file mode 100755 index 0000000..776b801 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/gconf-schemas @@ -0,0 +1,104 @@ +#!/bin/sh +# +# (Un)registers GConf schemas/entries into the schemas database directory. +# +# The following variables can be defined by a package to register .entries +# and .schemas files: +# +# gconf_entries - A list of .entries files to register. When using this +# variable, packages need to be fixed to not register +# them and to install those files to GCONF_SCHEMAS_DIR. +# gconf_schemas - A list of .schemas files to register. When using this +# variable, packages need to be fixed to not register +# them and to install those files to GCONF_SCHEMAS_DIR. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +# The gconftool-2 binary program. +GCONFTOOL2="usr/bin/gconftool-2" + +# Default configuration source (database). +GCONF_CONFIG_SOURCE="xml::/etc/gconf/gconf.xml.defaults" + +# Where .schemas files go. +GCONF_SCHEMAS_DIR="usr/share/gconf/schemas" + +case "$ACTION" in +targets) + echo "post-install pre-remove" + ;; +run) + if [ ! -x "$GCONFTOOL2" ]; then + exit 0 + fi + if [ -z "$gconf_entries" -a -z "$gconf_schemas" ]; then + return 0 + fi + + case "$TARGET" in + post-install) + for f in ${gconf_schemas}; do + if [ ! -f "${GCONF_SCHEMAS_DIR}/${f}" ]; then + continue + fi + GCONF_CONFIG_SOURCE="$GCONF_CONFIG_SOURCE" \ + ${GCONFTOOL2} --makefile-install-rule \ + ${GCONF_SCHEMAS_DIR}/${f} >/dev/null + if [ $? -eq 0 ]; then + echo "Registered GConf schema: ${f}." + fi + done + for f in ${gconf_entries}; do + if [ ! -f "${GCONF_SCHEMAS_DIR}/${f}" ]; then + continue + fi + ${GCONFTOOL2} --config-source=${GCONF_CONFIG_SOURCE} \ + --direct --load ${GCONF_SCHEMAS_DIR}/${f} \ + >/dev/null + if [ $? -eq 0 ]; then + echo "Registered GConf entry: ${f}." + fi + done + ;; + pre-remove) + for f in ${gconf_entries}; do + if [ ! -f "${GCONF_SCHEMAS_DIR}/${f}" ]; then + continue + fi + ${GCONFTOOL2} --config-source=${GCONF_CONFIG_SOURCE} \ + --direct --unload ${GCONF_SCHEMAS_DIR}/${f} \ + >/dev/null + if [ $? -eq 0 ]; then + echo "Unregistered GConf entry: ${f}." + fi + done + for f in ${gconf_schemas}; do + if [ ! -f "${GCONF_SCHEMAS_DIR}/${f}" ]; then + continue + fi + GCONF_CONFIG_SOURCE="${GCONF_CONFIG_SOURCE}" \ + ${GCONFTOOL2} --makefile-uninstall-rule \ + ${GCONF_SCHEMAS_DIR}/${f} >/dev/null + if [ $? -eq 0 ]; then + echo "Unregistered GConf schema: ${f}." + fi + done + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/gdk-pixbuf-loaders b/srcpkgs/xbps-triggers/files/gdk-pixbuf-loaders new file mode 100755 index 0000000..26a7eee --- /dev/null +++ b/srcpkgs/xbps-triggers/files/gdk-pixbuf-loaders @@ -0,0 +1,49 @@ +#!/bin/sh +# +# Updates's GDK Pixbuf loaders cache with gdk-pixbuf-query-loaders(1). +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +pixbuf_bin=usr/bin/gdk-pixbuf-query-loaders +pixbuf_cache=usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache + +case "$ACTION" in +targets) + echo "post-install pre-remove post-remove" + ;; +run) + [ ! -x ${pixbuf_bin} ] && exit 0 + + if [ "$TARGET" = "pre-remove" -a "${PKGNAME}" = "gdk-pixbuf" ]; then + [ -f ${pixbuf_cache} ] && rm -f ${pixbuf_cache} + break + fi + case "$TARGET" in + post-*) + if [ -f etc/gtk-2.0/gdk-pixbuf.loaders ]; then + echo " Removing obsolete conf file: etc/gtk-2.0/gdk-pixbuf.loaders" + rm -f etc/gtk-2.0/gdk-pixbuf.loaders + fi + if [ -x ${pixbuf_bin} ]; then + echo "Updating GDK Pixbuf loaders cache..." + ${pixbuf_bin} --update-cache + fi + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/gio-modules b/srcpkgs/xbps-triggers/files/gio-modules new file mode 100755 index 0000000..0425459 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/gio-modules @@ -0,0 +1,39 @@ +#!/bin/sh +# +# Updates GLib GIO module cache with gio-querymodules. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +gioquery=usr/bin/gio-querymodules +giocachedir=usr/lib/gio/modules + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + case "$TARGET" in + post-*) + if [ -x ${gioquery} -a -d ${giocachedir} ]; then + echo "Updating GLib GIO modules cache..." + ${gioquery} ${giocachedir} + fi + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/gsettings-schemas b/srcpkgs/xbps-triggers/files/gsettings-schemas new file mode 100755 index 0000000..854126d --- /dev/null +++ b/srcpkgs/xbps-triggers/files/gsettings-schemas @@ -0,0 +1,58 @@ +#!/bin/sh +# +# GLib's GSettings XML schema files. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +# The glib-compile-schemas binary program. +GSCHEMASCOMP="usr/bin/glib-compile-schemas" + +# Where .schemas files go. +GLIB_SCHEMAS_DIR="usr/share/glib-2.0/schemas" + +case "$ACTION" in +targets) + echo "post-install post-remove pre-remove" + ;; +run) + if [ ! -x "$GSCHEMASCOMP" ]; then + exit 0 + fi + + case "$TARGET" in + post-*) + [ ! -d ${GLIB_SCHEMAS_DIR} ] && exit 0 + # Compile all GSettings schema files. + echo -n "Refreshing GSettings database from " + echo -n "${GLIB_SCHEMAS_DIR}... " + ${GSCHEMASCOMP} ${GLIB_SCHEMAS_DIR} + if [ $? -eq 0 ]; then + echo "done." + else + echo "failed!" + fi + ;; + pre-remove) + if [ "${PKGNAME}" = "glib" ]; then + rm -f ${GLIB_SCHEMAS_DIR}/*.compiled + echo "Removed GSettings database file." + fi + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/gtk-icon-cache b/srcpkgs/xbps-triggers/files/gtk-icon-cache new file mode 100755 index 0000000..abff328 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/gtk-icon-cache @@ -0,0 +1,56 @@ +#!/bin/sh +# +# Updates GTK+ icon cache file with gtk-update-icon-cache(1). +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +iconcache_bin=usr/bin/gtk-update-icon-cache + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + if [ "$TARGET" = "post-remove" -a "${PKGNAME}" = "gtk+" ]; then + for dir in ${gtk_iconcache_dirs}; do + if [ -f .${dir}/icon-theme.cache ]; then + rm -f .${dir}/icon-theme.cache + echo -n "Removed GTK+ icon theme " + echo "cache for ${dir}." + fi + done + exit 0 + fi + + if [ ! -x $iconcache_bin ]; then + exit 0 + fi + + case "$TARGET" in + post-*) + for dir in ${gtk_iconcache_dirs}; do + if [ -d ".${dir}" ]; then + echo -n "Updating GTK+ icon cache for " + echo "${dir}..." + ${iconcache_bin} -q -f -t .${dir} + fi + done + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/gtk-immodules b/srcpkgs/xbps-triggers/files/gtk-immodules new file mode 100755 index 0000000..46e3a6b --- /dev/null +++ b/srcpkgs/xbps-triggers/files/gtk-immodules @@ -0,0 +1,50 @@ +#!/bin/sh +# +# Updates GTK+ IM modules file with gtk-query-immodules-2.0(1). +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +immodules_bin=usr/bin/gtk-query-immodules-2.0 +immodules_cache=usr/lib/gtk-2.0/2.10.0/immodules.cache + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + if [ "$TARGET" = "post-remove" -a "${PKGNAME}" = "gtk+" ]; then + [ -f ${immodules_cache} ] && rm -f ${immodules_cache} + exit 0 + fi + case "$TARGET" in + post-*) + if [ -f etc/gtk-2.0/gtk.immodules ]; then + echo "Removing obsolete conf file: etc/gtk-2.0/gtk.immodules" + rm -f etc/gtk-2.0/gtk.immodules + fi + + if [ ! -x $immodules_bin ]; then + exit 0 + fi + + echo "Updating GTK+ immodules cache..." + $immodules_bin --update-cache + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/gtk-pixbuf-loaders b/srcpkgs/xbps-triggers/files/gtk-pixbuf-loaders new file mode 100755 index 0000000..802b489 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/gtk-pixbuf-loaders @@ -0,0 +1,6 @@ +#!/bin/sh +# +# This trigger retains the old name of the current 'gdk-pixbuf-loaders' trigger +# and redirects all args there +# +exec usr/libexec/xbps-triggers/gdk-pixbuf-loaders "$@" diff --git a/srcpkgs/xbps-triggers/files/gtk3-immodules b/srcpkgs/xbps-triggers/files/gtk3-immodules new file mode 100755 index 0000000..12042fc --- /dev/null +++ b/srcpkgs/xbps-triggers/files/gtk3-immodules @@ -0,0 +1,50 @@ +#!/bin/sh +# +# Updates GTK+3 IM modules file with gtk-query-immodules-3.0(1). +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +immodules_bin=usr/bin/gtk-query-immodules-3.0 +immodules_cache=usr/lib/gtk-3.0/3.0.0/immodules.cache + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + if [ "$TARGET" = "post-remove" -a "${PKGNAME}" = "gtk+3" ]; then + [ -f ${immodules_cache} ] && rm -f ${immodules_cache} + exit 0 + fi + case "$TARGET" in + post-*) + if [ -f etc/gtk-3.0/gtk.immodules ]; then + echo "Removing obsolete conf file: etc/gtk-3.0/gtk.immodules" + rm -f etc/gtk-3.0/gtk.immodules + fi + + if [ ! -x $immodules_bin ]; then + exit 0 + fi + + echo "Updating GTK+3 immodules cache..." + $immodules_bin --update-cache + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/hwdb.d-dir b/srcpkgs/xbps-triggers/files/hwdb.d-dir new file mode 100755 index 0000000..c651f00 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/hwdb.d-dir @@ -0,0 +1,36 @@ +#!/bin/sh +# +# Updates hardware database +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +udevadm=usr/bin/udevadm + +case "$ACTION" in +targets) + echo "post-install pre-remove" + ;; +run) + if [ ! -x $udevadm ]; then + exit 0 + fi + + echo "Updating udev hardware database ..." + $udevadm hwdb --root=. --update + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/info-files b/srcpkgs/xbps-triggers/files/info-files new file mode 100755 index 0000000..7ad012b --- /dev/null +++ b/srcpkgs/xbps-triggers/files/info-files @@ -0,0 +1,63 @@ +#!/bin/sh +# +# Registers or unregisters info files for a package. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +installinfo=usr/bin/install-info +infodir=usr/share/info + +case "$ACTION" in +targets) + echo "post-install pre-remove" + ;; +run) + [ ! -x "$installinfo" ] && exit 0 + + if [ -z "$info_files" ]; then + echo "Trigger info-files: empty info_files." + exit 1 + fi + + for f in ${info_files}; do + if [ "$f" = "/usr/share/info/dir" ]; then + continue + elif [ ! -f ".$f" ]; then + echo "WARNING: $f does not exist! skipping..." + continue + fi + + case "$TARGET" in + post-install) + echo -n "Registering info file: $f... " + ;; + pre-remove) + echo -n "Unregistering info file: $f... " + infoargs="--delete" + ;; + esac + + $installinfo $infoargs ./$f $infodir/dir 2>/dev/null + if [ $? -eq 0 ]; then + echo "done." + else + echo "failed!" + fi + done + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/initramfs-regenerate b/srcpkgs/xbps-triggers/files/initramfs-regenerate new file mode 100755 index 0000000..20fd998 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/initramfs-regenerate @@ -0,0 +1,57 @@ +#!/bin/sh +# +# Trigger to regenerate an initramfs for every kernel with a module directory +# in lib/modules on package post-install. +# +# To change the initramfs generator, edit or create the file +# etc/default/initramfs-regenerate and add or change the line +# +# INITRAMFS_GENERATOR= +# +# where is one of "dracut", "mkinitcpio" or "none". By default, a +# value of "dracut" is assumed. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] + +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +export PATH="usr/bin:/usr/sbin:/usr/bin:/sbin:/bin" + +case "$ACTION" in + targets) + echo "post-install post-remove" + exit 0 + ;; + run) + ;; + *) + exit 1 + ;; +esac + +# Prefer the new alternatives-based initramfs hooks +HOOK="etc/kernel.d/post-install/20-initramfs" +if [ ! -x "${HOOK}" ]; then + # Otherwise, use legacy trigger behavior to find a preferred hook + [ -f etc/default/initramfs-regenerate ] && . etc/default/initramfs-regenerate + HOOK="etc/kernel.d/post-install/20-${INITRAMFS_GENERATOR:-dracut}" + [ -x "${HOOK}" ] || exit 0 +fi + +echo "Regenerating initramfs images using kernel hook ${HOOK##*/}" + +# Regenerate images for every kernel version with modules +for kdir in usr/lib/modules/*; do + [ -d "${kdir}/kernel" ] || continue + kver="${kdir##*/}" + "${HOOK}" "${PKGNAME}" "${kver}" +done +exit 0 diff --git a/srcpkgs/xbps-triggers/files/kernel-hooks b/srcpkgs/xbps-triggers/files/kernel-hooks new file mode 100755 index 0000000..61574e9 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/kernel-hooks @@ -0,0 +1,53 @@ +#!/bin/sh +# +# Run scripts found in /etc/kernel.d/ directories. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +RUN_TARGETS="pre-install post-install pre-remove post-remove" + +case "$ACTION" in +targets) + echo "${RUN_TARGETS}" + ;; +run) + # Ignore pre-remove when updating a package. + if [ "${TARGET}" = "pre-remove" ]; then + [ "${UPDATE}" = "yes" ] && exit 0 + fi + + # Create required dirs when necessary. + for _dir_ in ${RUN_TARGETS}; do + [ ! -d etc/kernel.d/${_dir_} ] && mkdir -p etc/kernel.d/${_dir_} + done + + # Execute kernel hooks for the specified target. + for _file_ in etc/kernel.d/${TARGET}/*; do + [ ! -x "${_file_}" ] && continue + echo "Executing ${TARGET} kernel hook: $(basename ${_file_}) ..." + + # A package may export "kernel_hooks_version" as a hint + # to pass this version to the hooks. + if [ -n "${kernel_hooks_version}" ]; then + env ROOTDIR="." ${_file_} ${PKGNAME} ${kernel_hooks_version} + else + env ROOTDIR="." ${_file_} ${PKGNAME} ${VERSION} + fi + done + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/mimedb b/srcpkgs/xbps-triggers/files/mimedb new file mode 100755 index 0000000..e5535f2 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/mimedb @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Updates the shared-mime-info db file with update-mime-database(1). +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +mimedb_bin=usr/bin/update-mime-database + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + case "$TARGET" in + post-*) + if [ ! -x ${mimedb_bin} ]; then + exit 0 + fi + + echo "Updating shared-mime-info database..." + PKGSYSTEM_ENABLE_FSYNC=0 ${mimedb_bin} -n usr/share/mime > /dev/null + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/mkdirs b/srcpkgs/xbps-triggers/files/mkdirs new file mode 100755 index 0000000..089beca --- /dev/null +++ b/srcpkgs/xbps-triggers/files/mkdirs @@ -0,0 +1,59 @@ +#!/bin/sh +# +# Creates or removes directories as specified by the make_dirs +# environment variable, as follows (relative to rootdir): +# +# dir mode uid gid +# blah 0755 0 0 +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + [ -z "$make_dirs" ] && return 0 + + if [ "$TARGET" = "post-install" ]; then + # create directories + set -- ${make_dirs} + while [ $# -gt 0 ]; do + _dir="$1"; _mode="$2"; _uid="$3"; _gid="$4" + if [ ! -d ".${_dir}" ]; then + mkdir -p ".${_dir}" || \ + echo "Failed to create .${_dir}!" + fi + chown "${_uid}:${_gid}" ".${_dir}" && \ + chmod ${_mode} ".${_dir}" || \ + echo "Failed to set perms ${_mode} ${_uid}:${_gid} to .${_dir}!" + shift; shift; shift; shift + done + else + # remove directories + set -- ${make_dirs} + while [ $# -gt 0 ]; do + _dir="$1" + if [ -d ".${_dir}" ]; then + rmdir ".${_dir}" >/dev/null 2>&1 + fi + shift; shift; shift; shift + done + fi + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile new file mode 100755 index 0000000..007d9cd --- /dev/null +++ b/srcpkgs/xbps-triggers/files/openjdk-profile @@ -0,0 +1,39 @@ +#!/bin/sh +# +# Adds an entry to /etc/profile.d for setting $JAVA_HOME. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +jdkprofile=etc/profile.d/openjdk.sh + +case "$ACTION" in +targets) + echo "post-install" + ;; +run) + [ -f "$jdkprofile" ] && exit 0 + + cat > "$jdkprofile" <<'EOF' +if _java_bin=$(readlink -e /usr/bin/java); then + _java_bin="${_java_bin%/bin/java}" + [ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}" +fi +unset _java_bin +EOF + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/pango-modules b/srcpkgs/xbps-triggers/files/pango-modules new file mode 100755 index 0000000..9c95d54 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/pango-modules @@ -0,0 +1,43 @@ +#!/bin/sh +# +# This is a reduced version for the pango-modules trigger which is now +# obsolete upstream. +# The pango-modulesquery binary was removed from upstream and isn't provided +# anymore by our 'pango' package +# +# This reduced version just removes the pango.modules file if it exists during +# the removal of the 'pango' package +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +pango_modules=etc/pango/pango.modules + +case "$ACTION" in +targets) + echo "post-remove" + ;; +run) + if [ "$TARGET" = "post-remove" -a "${PKGNAME}" = "pango" ]; then + if [ -f ${pango_modules} ]; then + echo "Removing pango modules file..." + rm -f ${pango_modules} + fi + break + fi + ;; +*) + exit 0 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/pycompile b/srcpkgs/xbps-triggers/files/pycompile new file mode 100755 index 0000000..fb55a20 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/pycompile @@ -0,0 +1,116 @@ +#!/bin/sh +# +# Trigger to compile python code into native bytecode and remove +# generated bytecode files. +# +# Packages need to set the variable pycompile_dirs with a list +# of directories (absolute path) separated by spaces, and WITHOUT +# the first slash, e.g: +# +# pycompile_dirs="usr/blah/foo usr/zoo/d00d" +# +# or if the code resides in standard site-packages directory, +# need to set the pycompile_module variable: +# +# pycompile_module="blah foo" +# +# Or if a module is stored in top-level site-packages directory: +# +# pycompile_module="foo.py" +# +# Additionally another var can be used to specify the target python version: +# +# pycompile_version="3.4" +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +export PATH="usr/bin:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin" + +update_ldcache() { + if [ -x sbin/ldconfig -o -x bin/ldconfig ]; then + echo "Updating ldconfig(8) cache..." + ldconfig -X || : + fi +} + +compile() +{ + for f in ${pycompile_dirs}; do + echo "Byte-compiling python code in ${f}..." + python${pycompile_version} -m compileall -f -q ./${f} && \ + python${pycompile_version} -O -m compileall -f -q ./${f} + done + for f in ${pycompile_module}; do + echo "Byte-compiling python${pycompile_version} code for module ${f}..." + if [ -d "usr/lib/python${pycompile_version}/site-packages/${f}" ]; then + python${pycompile_version} -m compileall -f -q \ + usr/lib/python${pycompile_version}/site-packages/${f} && \ + python${pycompile_version} -O -m compileall -f -q \ + usr/lib/python${pycompile_version}/site-packages/${f} + else + python${pycompile_version} -m compileall -f -q \ + usr/lib/python${pycompile_version}/site-packages/${f} && \ + python${pycompile_version} -O -m compileall -f -q \ + usr/lib/python${pycompile_version}/site-packages/${f} + fi + done + update_ldcache +} + +remove() +{ + for f in ${pycompile_dirs}; do + echo "Removing byte-compiled python${pycompile_version} files in ${f}..." + find ./${f} -type f -name \*.py[co] -delete 2>&1 >/dev/null + find ./${f} -type d -name __pycache__ -delete 2>&1 >/dev/null + done + for f in ${pycompile_module}; do + echo "Removing byte-compiled python${pycompile_version} code for module ${f}..." + if [ -d usr/lib/python${pycompile_version}/site-packages/${f} ]; then + find usr/lib/python${pycompile_version}/site-packages/${f} \ + -type f -name \*.py[co] -delete 2>&1 >/dev/null + find usr/lib/python${pycompile_version}/site-packages/${f} \ + -type d -name __pycache__ -delete 2>&1 >/dev/null + else + rm -f usr/lib/python${pycompile_version}/site-packages/${f%.py}.py[co] + fi + done + update_ldcache +} + +case "$ACTION" in +targets) + echo "post-install pre-remove" + ;; +run) + [ ! -x usr/bin/python${pycompile_version} ] && exit 0 + [ -z "${pycompile_dirs}" -a -z "${pycompile_module}" ] && exit 0 + + case "$TARGET" in + post-install) + compile + ;; + pre-remove) + remove + ;; + *) + exit 1 + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/register-shell b/srcpkgs/xbps-triggers/files/register-shell new file mode 100755 index 0000000..316d112 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/register-shell @@ -0,0 +1,66 @@ +#!/bin/sh +# +# Registers or unregisters a shell in /etc/shells. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + [ "$TARGET" != "post-install" -a "$TARGET" != "post-remove" ] && exit 1 + + if [ -z "$register_shell" ]; then + echo "Trigger register-shell: empty \$register_shell!" + exit 1 + fi + + case "$TARGET" in + post-install) + if [ ! -f etc/shells ]; then + for f in ${register_shell}; do + echo $f >> etc/shells + echo "Registered $f into /etc/shells." + done + chmod 644 etc/shells + else + for f in ${register_shell}; do + if ! grep -qFx "$f" etc/shells; then + echo "$f" >> etc/shells + echo -n "Registered $f into " + echo "/etc/shells." + fi + done + fi + ;; + post-remove) + if [ -f etc/shells ]; then + for f in ${register_shell}; do + if grep -q $f etc/shells; then + shell=$(echo $f|sed "s|\\/|\\\/|g") + sed -i -e "/$shell/d" etc/shells + echo -n "Unregistered $f from " + echo "/etc/shells." + fi + done + fi + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/system-accounts b/srcpkgs/xbps-triggers/files/system-accounts new file mode 100755 index 0000000..f502848 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/system-accounts @@ -0,0 +1,178 @@ +#!/bin/sh +# +# (Un)registers systems accounts (users/groups). +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +export PATH="usr/sbin:usr/bin:/usr/sbin:/usr/bin:/sbin:/bin" + +# Determine whether useradd/groupadd/usermod need a prefix argument +if [ "$(readlink -f . 2>/dev/null || echo .)" != "/" ]; then + prefix="-P ." +else + prefix= +fi + +# show_acct_details [groups] +show_acct_details() { + echo " Account: $1" + echo " Description: '$2'" + echo " Homedir: '$3'" + echo " Shell: '$4'" + [ -n "$5" ] && echo " Additional groups: '$5'" +} + +group_add() { + local _pretty_grname _grname _gid _prefix + + if ! command -v groupadd >/dev/null 2>&1; then + echo "WARNING: cannot create $1 system group (missing groupadd)" + echo "The following group must be created manually: $1" + return + fi + + _grname="${1%:*}" + _gid="${1##*:}" + + [ "${_grname}" = "${_gid}" ] && _gid= + + _pretty_grname="${_grname}${_gid:+ (gid: ${_gid})}" + + groupadd ${prefix} -r ${_grname} ${_gid:+-g ${_gid}} >/dev/null 2>&1 + + case $? in + 0) echo "Created ${_pretty_grname} system group." ;; + 9) ;; + *) echo "ERROR: failed to create system group ${_pretty_grname}!"; exit 1;; + esac +} + +case "$ACTION" in +targets) + echo "post-install pre-remove" + ;; +run) + [ -z "$system_accounts" -a -z "$system_groups" ] && exit 0 + + if command -v useradd >/dev/null 2>&1; then + USERADD="useradd ${prefix}" + fi + + if command -v usermod >/dev/null 2>&1; then + USERMOD="usermod ${prefix}" + fi + + case "$TARGET" in + post-install) + # System groups required by a package. + for grp in ${system_groups}; do + group_add $grp + done + + # System user/group required by a package. + for acct in ${system_accounts}; do + _uname="${acct%:*}" + _uid="${acct##*:}" + + [ "${_uname}" = "${_uid}" ] && _uid= + + eval homedir="\$${_uname}_homedir" + eval shell="\$${_uname}_shell" + eval descr="\$${_uname}_descr" + eval groups="\$${_uname}_groups" + eval pgroup="\$${_uname}_pgroup" + + [ -z "$homedir" ] && homedir="/var/empty" + [ -z "$shell" ] && shell="/sbin/nologin" + [ -z "$descr" ] && descr="${_uname} unprivileged user" + [ -n "$groups" ] && user_groups="-G $groups" + + if [ -n "${_uid}" ]; then + use_id="-u ${_uid} -g ${pgroup:-${_uid}}" + _pretty_uname="${_uname} (uid: ${_uid})" + else + use_id="-g ${pgroup:-${_uname}}" + _pretty_uname="${_uname}" + fi + + if [ -z "$USERADD" -o -z "$USERMOD" ]; then + echo "WARNING: cannot create ${_uname} system account (missing useradd or usermod)" + echo "The following system account must be created:" + show_acct_details "${_pretty_uname}" "${descr}" "${homedir}" "${shell}" "${groups}" + continue + fi + + group_add ${pgroup:-${acct}} + + ${USERADD} -c "${descr}" -d "${homedir}" \ + ${use_id} ${pgroup:+-N} -s "${shell}" \ + ${user_groups} -r ${_uname} >/dev/null 2>&1 + + case $? in + 0) + echo "Created ${_pretty_uname} system user." + ${USERMOD} -L ${_uname} >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "WARNING: unable to lock password for ${_uname} system account" + fi + ;; + 9) + ${USERMOD} -c "${descr}" -d "${homedir}" \ + -s "${shell}" -g "${pgroup:-${_uname}}" \ + ${user_groups} ${_uname} >/dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "Updated ${_uname} system user." + else + echo "WARNING: unable to modify ${_uname} system account" + echo "Please verify that account is compatible with these settings:" + show_acct_details "${_pretty_uname}" \ + "${descr}" "${homedir}" "${shell}" "${groups}" + continue + fi + ;; + *) + echo "ERROR: failed to create system user ${_pretty_uname}!" + exit 1 + ;; + esac + done + ;; + pre-remove) + if [ "$UPDATE" = "no" ]; then + for acct in ${system_accounts}; do + _uname="${acct%:*}" + + comment="$( (getent passwd "${_uname}" | cut -d: -f5 | head -n1) 2>/dev/null )" + comment="${comment:-unprivileged user} - for uninstalled package ${PKGNAME}" + + if [ -z "$USERMOD" ]; then + echo "WARNING: cannot disable ${_uname} system user (missing usermod)" + continue + fi + + ${USERMOD} -L -d /var/empty -s /bin/false \ + -c "${comment}" ${_uname} >/dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "Disabled ${_uname} system user." + fi + done + fi + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/texmf-dist b/srcpkgs/xbps-triggers/files/texmf-dist new file mode 100755 index 0000000..94a8194 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/texmf-dist @@ -0,0 +1,48 @@ +#!/bin/sh +# +# Updates texmf-dist hashes and format library. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +texhash=usr/bin/texhash +fmtutil=usr/bin/fmtutil-sys +updmap=usr/bin/updmap-sys +optional_engines="luahbtex,luajithbtex,luajittex,luatex,xetex" + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + if [ -x ${texhash} ]; then + echo "Updating texmf-dist hashes..." + ${texhash} 2>&1 >/dev/null || true # silence strange errors + fi + if [ -x ${fmtutil} ]; then + echo "Updating texmf-dist formats..." + ${fmtutil} --no-error-if-no-engine="${optional_engines}" \ + --quiet --all >/dev/null || true + fi + if [ -x ${updmap} ]; then + echo "Syncing font map files..." + yes y | ${updmap} --quiet --syncwithtrees >/dev/null + echo "Updating font map files..." + ${updmap} --quiet >/dev/null + fi + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/update-desktopdb b/srcpkgs/xbps-triggers/files/update-desktopdb new file mode 100755 index 0000000..bc447ec --- /dev/null +++ b/srcpkgs/xbps-triggers/files/update-desktopdb @@ -0,0 +1,49 @@ +#!/bin/sh +# +# Updates the MIME database that connects with applications, through +# the update-desktop-database(1) utility. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +desktopdb_bin=usr/bin/update-desktop-database +desktopdb_dir=usr/share/applications +desktopdb_cache=${desktopdb_dir}/mimeinfo.cache + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + if [ "$TARGET" = "post-remove" -a "${PKGNAME}" = "desktop-file-utils" ]; then + [ -f ${desktopdb_cache} ] && rm -f ${desktopdb_cache} + exit 0 + fi + case "$TARGET" in + post-*) + if [ ! -x $desktopdb_bin ]; then + exit 0 + fi + + if [ -d $desktopdb_dir ]; then + echo "Updating MIME database..." + ${desktopdb_bin} ${desktopdb_dir} + fi + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/x11-fonts b/srcpkgs/xbps-triggers/files/x11-fonts new file mode 100755 index 0000000..c5d74cd --- /dev/null +++ b/srcpkgs/xbps-triggers/files/x11-fonts @@ -0,0 +1,57 @@ +#!/bin/sh +# +# This trigger rebuilds the fonts.dir and fonts.scale files +# for packages that install X11 fonts, and update fontconfig's +# cache for those fonts. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +mkfontdir=usr/bin/mkfontdir +mkfontscale=usr/bin/mkfontscale +fccache=usr/bin/fc-cache + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + if [ ! -x $mkfontdir ]; then + exit 0 + fi + + if [ ! -x $mkfontscale ]; then + exit 0 + fi + + [ -z "${font_dirs}" ] && exit 0 + + case "$TARGET" in + post-install|post-remove) + for dir in ${font_dirs}; do + echo "Building ${dir}/fonts.dir..." + ${mkfontdir} .${dir} + echo "Building ${dir}/fonts.scale..." + ${mkfontscale} .${dir} + echo "Updating fontconfig's cache..." + ${fccache} -f .${dir} + done + ;; + esac + + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/files/xml-catalog b/srcpkgs/xbps-triggers/files/xml-catalog new file mode 100755 index 0000000..6671695 --- /dev/null +++ b/srcpkgs/xbps-triggers/files/xml-catalog @@ -0,0 +1,96 @@ +#!/bin/sh +# +# Registers or unregisters SGML/XML catalog entries, through +# the xmlcatmgr application. +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/pre-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +sgml_catalog=usr/share/sgml/catalog +xml_catalog=usr/share/xml/catalog + +xmlcatmgr=usr/bin/xmlcatmgr + +register_entries() +{ + if [ -n "${sgml_entries}" ]; then + echo -n "Registering SGML catalog entries... " + set -- ${sgml_entries} + while [ $# -gt 0 ]; do + $xmlcatmgr -sc ${sgml_catalog} add "$1" "$2" "$3" + shift; shift; shift; + done + echo "done." + fi + + if [ -n "${xml_entries}" ]; then + echo -n "Registering XML catalog entries... " + set -- ${xml_entries} + while [ $# -gt 0 ]; do + $xmlcatmgr -c ${xml_catalog} add "$1" "$2" "$3" + shift; shift; shift; + done + echo "done." + fi +} + +unregister_entries() +{ + if [ -n "${sgml_entries}" ]; then + echo -n "Unregistering SGML catalog entries... " + set -- ${sgml_entries} + while [ $# -gt 0 ]; do + $xmlcatmgr -sc ${sgml_catalog} remove "$1" "$2" \ + 2>/dev/null + shift; shift; shift + done + echo "done." + fi + if [ -n "${xml_entries}" ]; then + echo -n "Unregistering XML catalog entries... " + set -- ${xml_entries} + while [ $# -gt 0 ]; do + $xmlcatmgr -c ${xml_catalog} remove "$1" "$2" \ + 2>/dev/null + shift; shift; shift + done + echo "done." + fi +} + +case "$ACTION" in +targets) + echo "post-install pre-remove" + ;; +run) + [ ! -x $xmlcatmgr ] && exit 0 + [ -n "${sgml_entries}" -a ! -f "${sgml_catalog}" ] && exit 0 + [ -n "${xml_entries}" -a ! -f "${xml_catalog}" ] && exit 0 + + case "$TARGET" in + post-install) + register_entries + ;; + pre-remove) + unregister_entries + ;; + *) + exit 1 + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template new file mode 100644 index 0000000..89cc939 --- /dev/null +++ b/srcpkgs/xbps-triggers/template @@ -0,0 +1,22 @@ +# Template file for 'xbps-triggers' +pkgname=xbps-triggers +version=0.125 +revision=1 +bootstrap=yes +short_desc="XBPS triggers for Void Linux" +maintainer="Enno Boland " +license="Public Domain" +homepage="https://voidlinux.org" + +do_install() { + _triggersdir=usr/libexec/${pkgname} + + for f in ${FILESDIR}/*; do + _trigger=$(basename $f) + vinstall ${FILESDIR}/${_trigger} 754 ${_triggersdir} + echo "# end" >> ${DESTDIR}/${_triggersdir}/${_trigger} + done + vmkdir var/db/xbps + cd ${DESTDIR}/var/db/xbps + ln -sf ../../../${_triggersdir} triggers +} diff --git a/xbps-src b/xbps-src new file mode 100755 index 0000000..cdb5f8c --- /dev/null +++ b/xbps-src @@ -0,0 +1,1015 @@ +#!/bin/bash +# vim: set ts=4 sw=4 et: + +print_cross_targets() { + local f + for f in common/cross-profiles/*.sh; do + f=${f%.sh}; f=${f##*/}; printf "\t$f\n" + done +} + +usage() { + cat << _EOF +$PROGNAME: [options] [arguments] + +Targets: (only one may be specified) + +binary-bootstrap [arch] + Install bootstrap packages from host repositories into . + If the optional 'arch' argument is set, it will install bootstrap packages + from this architecture, and its required xbps utilities. The + will be initialized for chroot operations. + +bootstrap + Build and install from source the bootstrap packages into . + +bootstrap-update + Updates bootstrap packages with latest versions available from registered + repositories in the XBPS configuration file. + +consistency-check + Runs a consistency check on all packages + +chroot + Enter to the chroot in . + +clean-repocache + Removes obsolete packages from /repocache. + +fetch + Download package source distribution file(s). + +extract + Extract package source distribution file(s) into the build directory. + By default set to /builddir. + +patch + Patch the package sources and perform other operations required to + prepare a package for configuring and building + +configure + Configure a package (fetch + extract + patch + configure). + +build + Build package source (fetch + extract + patch + configure + build). + +check + Run the package check(s) after building the package source. + +install + Install target package into but not building the binary package + and not removing build directory for inspection purposes. + +pkg + Build binary package for and all required dependencies. + +clean [pkgname] + Removes auto dependencies, cleans up /builddir and /destdir. + If argument is specified, package files from /destdir and its + build directory in /buiddir are removed. + +list + Lists installed packages in . + +remove + Remove target package from . If - is not matched + from build template nothing is removed. + +remove-autodeps + Removes all package dependencies that were installed automatically. + +purge-distfiles + Removes all obsolete distfiles in /sources. + +show + Show information for the specified package. + +show-avail + Returns 0 if package can be built for the given architecture, + any other error otherwise. + +show-build-deps + Show required build dependencies for . + +show-deps + Show required run-time dependencies for . Package must be + installed into destdir. + +show-files + Show files installed by . Package must be installed into destdir. + +show-hostmakedepends + Show required host build dependencies for . + +show-makedepends + Show required target build dependencies for . + +show-options + Show available build options by . + +show-shlib-provides + Show list of provided shlibs for . Package must be installed into destdir. + +show-shlib-requires + Show list of required shlibs for . Package must be installed into destdir. + +show-var + Prints the value of if it's defined in xbps-src. + +show-repo-updates + Prints the list of outdated packages in XBPS repositories. + +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. + +update-bulk + Rebuilds all packages in the system repositories that are outdated. + +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. + +update-hash-cache + Update the hash cache with existing source distfiles. + +zap + Removes a masterdir but preserving ccache, distcc and host directories. + +Options: + +-1 If dependencies of target package are missing, fail instead of building them. + +-a + Cross compile packages for this target machine. Supported targets: + +$(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. + +-C Do not remove build directory, automatic dependencies and + package destdir after successful install. + +-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) + even if it ran successfully. + +-G Enable XBPS_USE_GIT_REVS (see etc/defaults.conf for more information). + +-g Enable building -dbg packages with debugging symbols. + +-H + Absolute path to a directory to be bind mounted at /host. + The host directory stores binary packages, sources and package dependencies + downloaded from remote repositories. + If unset defaults to void-packages/hostdir. + +-h Usage output. + +-I Ignore required dependencies, useful for extracting/fetching sources. + +-i Make xbps-src internal errors non-fatal. + +-j Number of parallel build jobs to use when building packages. + +-L Disable ASCII colors. + +-m + Absolute path to a directory to be used as masterdir. + The masterdir is the main directory to build/store/compile packages. + If unset defaults to void-packages/masterdir. + +-N Disable use of remote repositories to resolve dependencies. + +-o + Enable or disable (prefixed with ~) package build options. If 'etc/conf' + already specifies some, it is merged. Keep in mind that these options + apply to all packages within the build, as in if a dependency needs to + be built, it will inherit these options. + + Supported options can be shown with the 'show-options' target. + +-p + For show target, show specified variables in addition to default ones. + Variable is split and each word is printed in separate line by default. + In order to print the whole value in one line, append asterisk to variable name. + +-Q Enable running the check stage. + +-K Enable running the check stage with longer tests. + +-q Suppress informational output of xbps-src (build output is still printed). + +-r + Use an alternative local repository to store generated binary packages. + If unset defaults to /binpkgs. If set the binpkgs will + be stored into /binpkgs/. + 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. + This flag requires xbps-uchroot(1), and won't work on filesystems that don't + support overlayfs. + +-V Print version of xbps, then exit. + +_EOF +} + +check_reqhost_utils() { + local broken + + [ "$IN_CHROOT" ] && return 0 + + for f in ${REQHOST_UTILS}; do + if ! command -v ${f} &>/dev/null; then + echo "${f} is missing in your system, can't continue!" 1>&2 + broken=1 + fi + done + [ "$broken" ] && exit 1 + [ -z "$1" ] && return 0 + + for f in ${REQHOST_UTILS_BOOTSTRAP}; do + if ! command -v ${f} &>/dev/null; then + echo "${f} is missing in your system, can't continue!" 1>&2 + broken=1 + fi + done + [ "$broken" ] && exit 1 +} + +check_build_requirements() { + local found + + case "$XBPS_TARGET" in + *bootstrap*) found=1;; + *) ;; + esac + if [ -z "$found" ]; then + xbps-uhelper cmpver "$XBPS_VERSION" "$XBPS_VERSION_REQ" + if [ $? -eq 255 ]; then + echo "ERROR: requires xbps>=${XBPS_VERSION_REQ}" 1>&2 + echo "Bootstrap packages must be updated with 'xbps-src bootstrap-update'" 1>&2 + exit 1 + fi + fi +} + +chroot_check() { + if [ -f $XBPS_MASTERDIR/.xbps_chroot_init -o "$XBPS_CHROOT_CMD" = "ethereal" ]; then + export CHROOT_READY=1 + fi +} + +check_native_arch() { + if [ "$CHROOT_READY" ]; then + if [ -s $XBPS_MASTERDIR/.xbps_chroot_init ]; then + export XBPS_ARCH=$(<$XBPS_MASTERDIR/.xbps_chroot_init) + else + export XBPS_ARCH=$(xbps-uhelper arch) + fi + elif [ "$XBPS_TARGET" = 'binary-bootstrap' ] && [ "$XBPS_TARGET_PKG" ]; then + # ^ special case for binary-bootstrap for e.g: + # x86_64 -> x86_64-musl + # x86_64 -> i686 + export XBPS_ARCH=$XBPS_TARGET_PKG + else + LDD=$(ldd --version 2>&1|head -1) + if [[ $LDD == *musl* ]]; then + export XBPS_ARCH=${XBPS_MACHINE%-musl}-musl + else + # XBPS_ARCH == $(uname -m) + export XBPS_ARCH=$(uname -m) + fi + fi +} + +masterdir_zap() { + rm -rf "$XBPS_MASTERDIR" + mkdir -p "$XBPS_MASTERDIR" + msg_normal "xbps-src: $XBPS_MASTERDIR masterdir cleaned up.\n" +} + +exit_func() { + wait + if [ "$sourcepkg" ]; then + remove_pkg $XBPS_CROSS_BUILD + fi + if [ -z "$IN_CHROOT" ]; then + msg_red "xbps-src: a failure has occurred! exiting...\n" + fi + exit 2 +} + +read_pkg() { + if [ -z "${XBPS_TARGET_PKG}" ]; then + [ ! -r ./template ] && msg_error "xbps-src: missing build template in $(pwd).\n" + XBPS_TARGET_PKG=${PWD##*/} + fi + setup_pkg "$XBPS_TARGET_PKG" "$XBPS_CROSS_BUILD" "$1" +} + +setup_distfiles_mirror() { + local mirror scheme path + + # Scheme file:// mirror locations only work with uchroot + for mirror in $XBPS_DISTFILES_MIRROR; do + scheme="file" + if [[ "$mirror" == *://* ]]; then + scheme="${mirror%%://*}" + path="${mirror#${scheme}://}" + else + path="$mirror" + fi + [ "$scheme" != "file" ] && continue + if [ "$XBPS_CHROOT_CMD" == "uchroot" ]; then + if [ ! -d "$path" ]; then + msg_warn "xbps-src: Invalid path in XBPS_DISTFILES_MIRROR ($mirror)\n" + continue + fi + mkdir -p "$XBPS_MASTERDIR/$path" + XBPS_CHROOT_CMD_ARGS+=" -b $path:$path" + else + case "$XBPS_TARGET" in + fetch|extract|patch|configure|build|check|install|pkg|bootstrap|bootstrap-update|update-sys) + msg_warn "xbps-src: File URLs ($mirror) don't work with '$XBPS_CHROOT_CMD'\n" + esac + fi + done +} + +# +# main() +# +readonly PROGNAME="${0##*/}" +readonly XBPS_VERSION_REQ="0.55" +XBPS_VERSION=$(xbps-uhelper -V) +XBPS_VERSION=${XBPS_VERSION%%API*} +XBPS_VERSION=${XBPS_VERSION##*:} +readonly XBPS_SRC_VERSION="113" +export XBPS_MACHINE=$(xbps-uhelper -C /dev/null arch) + +XBPS_OPTIONS= +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" "$@"); + +# 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";; + f) XBPS_ARG_BUILD_FORCEMODE=1; XBPS_OPTIONS+=" -f";; + G) XBPS_ARG_USE_GIT_REVS=1; XBPS_OPTIONS+=" -G";; + g) XBPS_ARG_DEBUG_PKGS=1; XBPS_OPTIONS+=" -g";; + H) XBPS_ARG_HOSTDIR="$OPTARG"; XBPS_OPTIONS+=" -H $OPTARG";; + h) usage && exit 0;; + i) XBPS_ARG_INFORMATIVE_RUN=1; XBPS_OPTIONS+=" -i";; + I) XBPS_ARG_SKIP_DEPS=1; XBPS_SKIP_REMOTEREPOS=1; XBPS_OPTIONS+=" -I -N";; + j) XBPS_ARG_MAKEJOBS="$OPTARG"; XBPS_OPTIONS+=" -j $OPTARG";; + L) export NOCOLORS=1; XBPS_OPTIONS+=" -L";; + m) XBPS_ARG_MASTERDIR="$OPTARG"; XBPS_OPTIONS+=" -m $OPTARG";; + N) XBPS_ARG_SKIP_REMOTEREPOS=1; XBPS_OPTIONS+=" -N";; + o) XBPS_ARG_PKG_OPTIONS="$OPTARG"; XBPS_OPTIONS+=" -o $OPTARG";; + p) XBPS_ARG_PRINT_VARIABLES="$OPTARG"; XBPS_OPTIONS+=" -p $OPTARG";; + q) XBPS_ARG_QUIET=1; XBPS_OPTIONS+=" -q";; + 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;; + esac +done +shift $(($OPTIND - 1)) + +[ $# -eq 0 ] && usage && exit 1 + +# Check if stdout is a tty; if false disable colors. +test -t 1 || export NOCOLORS=1 +# http://no-color.org +if [ "${NO_COLOR+x}" ]; then + export NOCOLORS=1 +fi + +# sane umask +umask 022 + +# +# Check for required utilities in host system. +# +# Required utilities in host system for the bootstrap target. +readonly REQHOST_UTILS_BOOTSTRAP="file objdump find make gawk bash sed gcc g++ gnat \ + perl bsdtar gzip patch flock pkg-config" + +# Required utilities in host. +readonly REQHOST_UTILS="xbps-install xbps-query xbps-rindex xbps-uhelper \ + xbps-reconfigure xbps-remove xbps-create xbps-uchroot xbps-uunshare" + +check_reqhost_utils + +# +# Set XBPS_CONFIG_FILE, XBPS_DISTDIR, XBPS_MASTERDIR +# and XBPS_HOSTDIR. +# +if [ "$IN_CHROOT" ]; then + readonly XBPS_CONFIG_FILE=/etc/xbps/xbps-src.conf + readonly XBPS_DISTDIR=/void-packages + readonly XBPS_MASTERDIR=/ + readonly XBPS_HOSTDIR=/host +else + _distdir="$(readlink -f ${0%/*})" + if [ "${_distdir}" = "." ]; then + readonly XBPS_DISTDIR="$(pwd -P)" + else + readonly XBPS_DISTDIR="${_distdir}" + fi + # Read defaults and then the local configuration file + if [ -f $XBPS_DISTDIR/etc/defaults.conf ]; then + . $XBPS_DISTDIR/etc/defaults.conf + fi + if [ -n "$XBPS_ARG_CONFIG" -a -s $XBPS_DISTDIR/etc/conf.$XBPS_ARG_CONFIG ]; then + # If specified, read custom user configuration... + readonly XBPS_CONFIG_FILE=$XBPS_DISTDIR/etc/conf.$XBPS_ARG_CONFIG + elif [ -s $XBPS_DISTDIR/etc/conf ]; then + # ... otherwise read generic user configuration... + readonly XBPS_CONFIG_FILE=$XBPS_DISTDIR/etc/conf + elif [ -s ${XDG_CONFIG_HOME:-$HOME/.config}/xbps-src.conf ]; then + readonly XBPS_CONFIG_FILE=${XDG_CONFIG_HOME:-$HOME/.config}/xbps-src.conf + elif [ -s $HOME/.xbps-src.conf ]; then + # ... fallback to ~/.xbps-src.conf otherwise. + readonly XBPS_CONFIG_FILE=$HOME/.xbps-src.conf + fi +fi +# Read settings from config file +[ -s "$XBPS_CONFIG_FILE" ] && . $XBPS_CONFIG_FILE &>/dev/null + +# 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 +[ -n "$XBPS_ARG_TEMP_MASTERDIR" ] && XBPS_TEMP_MASTERDIR=1 +[ -n "$XBPS_ARG_BINPKG_EXISTS" ] && XBPS_BINPKG_EXISTS=1 +[ -n "$XBPS_ARG_USE_GIT_REVS" ] && XBPS_USE_GIT_REVS=1 +[ -n "$XBPS_ARG_DEBUG_PKGS" ] && XBPS_DEBUG_PKGS=1 +[ -n "$XBPS_ARG_SKIP_DEPS" ] && XBPS_SKIP_DEPS=1 +[ -n "$XBPS_ARG_KEEP_ALL" ] && XBPS_KEEP_ALL=1 +[ -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" + +# Default to nproc for XBPS_MAKEJOBS if not set and nproc is available +if command -v nproc >/dev/null ; then + : ${XBPS_MAKEJOBS:=$(nproc)} +else + : ${XBPS_MAKEJOBS:=1} +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_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 + [ -n "$XBPS_ARG_MASTERDIR" ] && XBPS_MASTERDIR="$XBPS_ARG_MASTERDIR" + [ -n "$XBPS_ARG_HOSTDIR" ] && XBPS_HOSTDIR="$XBPS_ARG_HOSTDIR" + + # Sanitize masterdir/hostdir once set for real (resolve links) + export XBPS_MASTERDIR="$(readlink -f $XBPS_MASTERDIR 2>/dev/null)" + export XBPS_HOSTDIR="$(readlink -f $XBPS_HOSTDIR 2>/dev/null)" +fi + +# Forbid root unless XBPS_ALLOW_CHROOT_BREAKOUT is set +# (for CI). +if [ -z "$IN_CHROOT" -a "$UID" -eq 0 -a -z "$XBPS_ALLOW_CHROOT_BREAKOUT" ]; then + echo "ERROR: xbps-src cannot be used as root." 1>&2 + exit 1 +fi + +# if XBPS_MASTERDIR unset, defaults to $XBPS_DISTDIR/masterdir. +: ${XBPS_MASTERDIR:=$XBPS_DISTDIR/masterdir} +[ ! -d $XBPS_MASTERDIR ] && mkdir -p $XBPS_MASTERDIR + +# if XBPS_HOSTDIR unset, defaults to $XBPS_DISTDIR/hostdir. +: ${XBPS_HOSTDIR:=$XBPS_DISTDIR/hostdir} +[ ! -d $XBPS_HOSTDIR ] && mkdir -p $XBPS_HOSTDIR + +if [ -d "$XBPS_MASTERDIR" -a ! -w "$XBPS_MASTERDIR" ]; then + echo "ERROR: can't write to masterdir $XBPS_MASTERDIR." 1>&2 + exit 1 +fi + +# Try using chroot-git then git from the host system +if command -v chroot-git &>/dev/null; then + export XBPS_GIT_CMD=$(command -v chroot-git) +elif command -v git &>/dev/null; then + export XBPS_GIT_CMD=$(command -v git) +elif [ -z "$XBPS_USE_BUILD_MTIME" ] || [ "$XBPS_USE_GIT_REVS" ]; then + echo "neither chroot-git or git are available in your system!" 1>&2 + exit 1 +fi + +if [ -n "$XBPS_HOSTDIR" ]; then + export XBPS_REPOSITORY=$XBPS_HOSTDIR/binpkgs + readonly XBPS_SRCDISTDIR=$XBPS_HOSTDIR/sources +else + export XBPS_REPOSITORY=$XBPS_MASTERDIR/host/binpkgs + readonly XBPS_SRCDISTDIR=$XBPS_MASTERDIR/host/sources +fi + +# Set XBPS_REPOSITORY to our current branch. +if [ -z "$XBPS_ALT_REPOSITORY" ]; then + pushd "$PWD" &>/dev/null + cd $XBPS_DISTDIR + _gitbranch="$($XBPS_GIT_CMD symbolic-ref --short HEAD 2>/dev/null)" + if [ "${_gitbranch}" -a "${_gitbranch}" != "master" ]; then + export XBPS_ALT_REPOSITORY="${_gitbranch}" + export XBPS_REPOSITORY="${XBPS_REPOSITORY}/${_gitbranch}" + fi + popd &>/dev/null +else + export XBPS_REPOSITORY="${XBPS_REPOSITORY}/${XBPS_ALT_REPOSITORY}" +fi + +readonly XBPS_SRCPKGDIR=$XBPS_DISTDIR/srcpkgs +readonly XBPS_COMMONDIR=$XBPS_DISTDIR/common +readonly XBPS_SHUTILSDIR=$XBPS_COMMONDIR/xbps-src/shutils +readonly XBPS_TRIGGERSDIR=$XBPS_SRCPKGDIR/xbps-triggers/files +readonly XBPS_CROSSPFDIR=$XBPS_COMMONDIR/cross-profiles +readonly XBPS_BUILDSTYLEDIR=$XBPS_COMMONDIR/build-style +readonly XBPS_LIBEXECDIR=$XBPS_COMMONDIR/xbps-src/libexec +readonly XBPS_BUILDHELPERDIR=$XBPS_COMMONDIR/build-helper + +readonly XBPS_TARGET="$1" +if [ "$2" ]; then + XBPS_TARGET_PKG="${2##*/}" +fi + +# Check for CHROOT_READY and set up XBPS_ARCH environment var for xbps. +chroot_check +check_native_arch + +# test if to use linux32 for 32-bit masterdirs in 64-bit environments +# x86_64, ppc64 (BE) and aarch64 are capable of this, others are not +linux32_check() { + local hostarch="$1" + local tgtarch="$2" + case "$hostarch" in + x86_64*) if [[ "$tgtarch" == i686* ]]; then return 0; fi ;; + ppc64le*) if [[ "$tgtarch" == ppcle* ]]; then return 0; fi ;; + ppc64*) + case "$tgtarch" in + ppc64*) return 1 ;; + ppc*) return 0 ;; + esac + ;; + aarch64*) if [[ "$tgtarch" == armv* ]]; then return 0; fi ;; + esac + return 1 +} + +# Reconfigure pkgs for 32bit on 64-bit systems and reexec itself. +if [ -z "$XBPS_REINIT" -a -s $XBPS_MASTERDIR/.xbps_chroot_init ]; then + export XBPS_ARCH=${XBPS_ARCH:-$(<$XBPS_MASTERDIR/.xbps_chroot_init)} + if linux32_check "$XBPS_MACHINE" "$XBPS_ARCH"; then + # reconfigure pkgs via linux32 + linux32 xbps-reconfigure -r ${XBPS_MASTERDIR} -a &>/dev/null + # reexec itself via linux32 + export XBPS_REINIT=1 + exec linux32 $0 ${XBPS_OPTIONS} $@ + fi +fi +if [ "$XBPS_ARCH" ]; then + export XBPS_MACHINE=$XBPS_ARCH +fi +# At this point if XBPS_TARGET_MACHINE isn't defined we assume +# it's a native build. +if [ -z "$XBPS_TARGET_MACHINE" ]; then + export XBPS_TARGET_MACHINE=$XBPS_MACHINE +fi + +if [ "$IN_CHROOT" ]; then + readonly XBPS_UHELPER_CMD="xbps-uhelper" + readonly XBPS_INSTALL_CMD="xbps-install -c /host/repocache-$XBPS_MACHINE" + readonly XBPS_QUERY_CMD="xbps-query -c /host/repocache-$XBPS_MACHINE" + readonly XBPS_RECONFIGURE_CMD="xbps-reconfigure" + readonly XBPS_REMOVE_CMD="xbps-remove" + readonly XBPS_CHECKVERS_CMD="xbps-checkvers" + readonly XBPS_DESTDIR=/destdir + readonly XBPS_BUILDDIR=/builddir +else + readonly XBPS_UHELPER_CMD="xbps-uhelper -r $XBPS_MASTERDIR" + readonly XBPS_INSTALL_CMD="xbps-install -c $XBPS_HOSTDIR/repocache-$XBPS_MACHINE -r $XBPS_MASTERDIR -C etc/xbps.d" + readonly XBPS_QUERY_CMD="xbps-query -c $XBPS_HOSTDIR/repocache-$XBPS_MACHINE -r $XBPS_MASTERDIR -C etc/xbps.d" + readonly XBPS_RECONFIGURE_CMD="xbps-reconfigure -r $XBPS_MASTERDIR" + readonly XBPS_REMOVE_CMD="xbps-remove -r $XBPS_MASTERDIR" + readonly XBPS_CHECKVERS_CMD="xbps-checkvers -r $XBPS_MASTERDIR" + readonly XBPS_DESTDIR=$XBPS_MASTERDIR/destdir + readonly XBPS_BUILDDIR=$XBPS_MASTERDIR/builddir +fi +readonly XBPS_RINDEX_CMD="xbps-rindex" +readonly XBPS_FETCH_CMD="xbps-fetch" +readonly XBPS_DIGEST_CMD="xbps-digest" +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_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 \ + XBPS_CPPFLAGS XBPS_CFLAGS XBPS_CXXFLAGS XBPS_FFLAGS XBPS_LDFLAGS \ + XBPS_MAKEJOBS XBPS_BUILD_FORCEMODE XBPS_USE_GIT_REVS XBPS_DEBUG_PKGS \ + XBPS_CHECK_PKGS XBPS_CCACHE XBPS_DISTCC XBPS_DISTCC_HOSTS XBPS_SKIP_DEPS \ + XBPS_SKIP_REMOTEREPOS XBPS_CROSS_BUILD XBPS_ARG_PKG_OPTIONS XBPS_CONFIG_FILE \ + XBPS_KEEP_ALL XBPS_HOSTDIR XBPS_MASTERDIR XBPS_SRC_VERSION \ + XBPS_DESTDIR XBPS_MACHINE XBPS_TEMP_MASTERDIR XBPS_BINPKG_EXISTS \ + 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_IGNORE_BROKENNESS + +for i in REPOSITORY DESTDIR BUILDDIR SRCDISTDIR; do + eval val="\$XBPS_$i" + if [ ! -d "$val" ]; then + mkdir -p $val + fi + unset val +done + +# A temporary masterdir requires xbps-uchroot(1) and -O to use overlayfs +# on tmpfs (available with xbps-0.45). +if [ -z "$IN_CHROOT" -a -n "$XBPS_TEMP_MASTERDIR" ]; then + export XBPS_CHROOT_CMD="uchroot" + export XBPS_CHROOT_CMD_ARGS+=" -O" +fi +# +# Sanitize PATH. +# +if [ -z "$IN_CHROOT" ]; then + # In non chroot case always prefer host tools. + export PATH="$PATH:$XBPS_MASTERDIR/usr/bin" +fi + +# +# Set up ccache +# +if [ "$XBPS_CCACHE" ]; then + export CCACHEPATH="/usr/lib/ccache/bin" + export CCACHE_DIR="$XBPS_HOSTDIR/ccache" + # Avoid not using cached files just due to compiler mtime + # changes when e.g. bootstrapping + export CCACHE_COMPILERCHECK=content CCACHE_COMPRESS=1 + export PATH="$CCACHEPATH:$PATH" + mkdir -p $CCACHE_DIR +fi + +# +# Set up distcc +# +if [ "$XBPS_DISTCC" ]; then + if [ "$XBPS_CCACHE" ]; then + export CCACHE_PREFIX="/usr/bin/distcc" + else + DISTCCPATH="/usr/lib/distcc/bin" + export PATH="$DISTCCPATH:$PATH" + fi + export DISTCC_DIR="$XBPS_HOSTDIR/distcc-${XBPS_CROSS_BUILD:-${XBPS_MACHINE}}" + export DISTCC_HOSTS="$XBPS_DISTCC_HOSTS" + mkdir -p $DISTCC_DIR +fi + +check_build_requirements + +# +# Read funcs from helpers +# +for f in ${XBPS_SHUTILSDIR}/*.sh; do + [ -r "$f" ] && . $f +done + +if [ -z "$IN_CHROOT" ]; then + trap 'exit_func' INT TERM + if [ -n "$XBPS_DISTFILES_MIRROR" ]; then + setup_distfiles_mirror + fi +fi + +reconfigure_base_chroot + +# +# Main switch. +# +case "$XBPS_TARGET" in + binary-bootstrap) + install_base_chroot ${XBPS_TARGET_PKG:=$XBPS_MACHINE} + ;; + bootstrap) + if [ -n "$XBPS_CHECK_PKGS" ]; then + msg_error "xbps-src: disable tests for bootstrap\n" + exit 1 + fi + # base-chroot building on host + # check for required host utils + check_reqhost_utils bootstrap + ( + export XBPS_ARCH=$XBPS_MACHINE + export XBPS_SKIP_REMOTEREPOS=1 + chroot_sync_repodata + $XBPS_LIBEXECDIR/build.sh \ + base-chroot base-chroot $XBPS_TARGET || exit 1 + ) || exit 1 + [ -d $XBPS_MASTERDIR ] && rm -rf $XBPS_MASTERDIR + install_base_chroot ${XBPS_TARGET_PKG:=$XBPS_MACHINE} + ;; + bootstrap-update) + if [ -n "$CHROOT_READY" -a -z "$IN_CHROOT" ]; then + chroot_handler bootstrap-update + else + chroot_sync_repodata + update_base_chroot + fi + ;; + chroot) + chroot_sync_repodata + chroot_handler chroot dummy + ;; + clean) + if [ -z "$XBPS_TARGET_PKG" ]; then + if [ -n "$CHROOT_READY" -a -z "$IN_CHROOT" ]; then + chroot_handler remove-autodeps + else + remove_pkg_autodeps + fi + msg_normal "xbps-src: cleaning up masterdir...\n" + # Needed to remove Go Modules + [ -d "$XBPS_BUILDDIR" ] && chmod -R +wX $XBPS_BUILDDIR + rm -rf \ + $XBPS_BUILDDIR \ + $XBPS_DESTDIR + rm -rf $XBPS_MASTERDIR/tmp + mkdir -p $XBPS_MASTERDIR/tmp + else + read_pkg + if [ -n "$CHROOT_READY" -a -z "$IN_CHROOT" ]; then + chroot_handler $XBPS_TARGET $XBPS_TARGET_PKG || exit $? + else + if declare -f do_clean >/dev/null; then + run_func do_clean + fi + remove_pkg_wrksrc + remove_pkg_statedir + fi + remove_pkg $XBPS_CROSS_BUILD + fi + ;; + clean-repocache) + export XBPS_TARGET_ARCH="${XBPS_CROSS_BUILD:-$XBPS_TARGET_MACHINE}" + $XBPS_REMOVE_CMD -C /dev/null -c $XBPS_HOSTDIR/repocache-${XBPS_TARGET_ARCH} -O + ;; + consistency-check) + consistency_check + ;; + remove-autodeps) + if [ -n "$CHROOT_READY" -a -z "$IN_CHROOT" ]; then + chroot_handler remove-autodeps + else + remove_pkg_autodeps + fi + ;; + fetch|extract|patch|configure|build|check|install|pkg) + if [ "$XBPS_TARGET" = "check" ] && [ -z "$XBPS_CHECK_PKGS" ]; then + export XBPS_CHECK_PKGS=full + fi + read_pkg + 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 + $XBPS_LIBEXECDIR/build.sh $XBPS_TARGET_PKG $XBPS_TARGET_PKG \ + $XBPS_TARGET $XBPS_CROSS_BUILD || exit $? + fi + ;; + remove|remove-destdir) + read_pkg + remove_pkg $XBPS_CROSS_BUILD + ;; + list) + $XBPS_QUERY_CMD -l + ;; + purge-distfiles) + purge_distfiles + ;; + show) + read_pkg ignore-problems + show_pkg $XBPS_PRINT_VARIABLES + ;; + show-avail) + read_pkg &>/dev/null + show_avail + ;; + show-files) + read_pkg ignore-problems + show_pkg_files + ;; + show-deps) + read_pkg ignore-problems + show_pkg_deps + ;; + show-build-deps) + read_pkg ignore-problems + show_pkg_build_deps + ;; + show-hostmakedepends) + read_pkg ignore-problems + show_pkg_hostmakedepends + ;; + show-makedepends) + read_pkg ignore-problems + show_pkg_makedepends + ;; + show-pkg-var-dump) + read_pkg ignore-problems + for sub_name in $subpackages; do + if [ $sub_name = $XBPS_TARGET_PKG ]; then + . ${XBPS_COMMONDIR}/environment/setup-subpkg/subpkg.sh + ${sub_name}_package + fi + done + printf "archs: %s\n\n" "$archs" + printf "bootstrap: %s\n\n" "$bootstrap" + printf "broken: %s\n\n" "$broken" + printf "depends: %s\n\n" "$depends" + printf "hostmakedepends: %s\n\n" "$hostmakedepends" + printf "makedepends: %s\n\n" "$makedepends" + printf "nocross: %s\n\n" "$nocross" + printf "pkgname: %s\n\n" "$pkgname" + printf "restricted: %s\n\n" "$restricted" + printf "revision: %s\n\n" "$revision" + printf "subpackages: %s\n\n" "$subpackages" + printf "version: %s\n\n" "$version" + printf "provides: %s\n\n" "$provides" + printf "lib32disabled: %s\n\n" "$lib32disabled" + printf "nodebug: %s\n\n" "$nodebug" + ;; + show-pkg-var) + read_pkg ignore-problems + for sub_name in $subpackages; do + if [ $sub_name = $XBPS_TARGET_PKG ]; then + . ${XBPS_COMMONDIR}/environment/setup-subpkg/subpkg.sh + ${sub_name}_package + fi + done + while IFS= read -r pkg_var; do + print_var= + case "${pkg_var}" in + archs) print_var="$archs ";; + bootstrap) print_var="$bootstrap ";; + broken) print_var="$broken ";; + depends) print_var="$depends ";; + hostmakedepends) print_var="$hostmakedepends ";; + makedepends) print_var="$makedepends ";; + nocross) print_var="$nocross ";; + pkgname) print_var="$pkgname ";; + restricted) print_var="$restricted ";; + revision) print_var="$revision ";; + subpackages) print_var="$subpackages ";; + version) print_var="$version ";; + provides) print_var="$provides ";; + lib32disabled) print_var="$lib32disabled ";; + nodebug) print_var="$nodebug ";; + esac # the space at the end of each is essential for unset vars + if [ -n "$print_var" ]; then + printf "%s\n" "$(printf "${print_var% }" | tr -t '\n\r' ' ')" + fi # The trailing space gets stripped before printing anyway + done + ;; + dbulk-dump) + read_pkg + check_pkg_arch "$XBPS_CROSS_BUILD" + for x in pkgname version revision; do + printf '%s: %s\n' "$x" "${!x}" + done + for x in bootstrap; do + [[ ${!x} ]] && printf '%s: %s\n' "$x" "${!x}" + done + for x in hostmakedepends makedepends; do + arr=(${!x}) + if [[ ${#arr} -gt 0 ]]; then + printf '%s:\n' "$x" + printf ' %s\n' "${arr[@]}" + fi + done + _cleandeps=$(setup_pkg_depends "" 1 1 | { grep -vF "$(printf "%s\n" $pkgname $subpackages)" || :; } | sort -u) || exit 1 + if [[ $_cleandeps ]]; then + printf 'depends:\n' + printf ' %s\n' $_cleandeps + fi + if [[ $subpackages ]]; then + printf 'subpackages:\n' + printf ' %s\n' $subpackages + fi + ;; + show-options) + read_pkg ignore-problems + show_pkg_build_options + ;; + show-shlib-provides) + read_pkg ignore-problems + show_pkg_shlib_provides + ;; + show-shlib-requires) + read_pkg ignore-problems + show_pkg_shlib_requires + ;; + show-var) + for f in ${XBPS_COMMONDIR}/environment/setup/*.sh; do + source $f + done + if [ "$XBPS_CROSS_BUILD" ]; then + source ${XBPS_COMMONDIR}/cross-profiles/${XBPS_CROSS_BUILD}.sh + else + source ${XBPS_COMMONDIR}/build-profiles/${XBPS_MACHINE}.sh + fi + eval value="\${$XBPS_TARGET_PKG}" + echo $value + ;; + show-repo-updates) + bulk_build + ;; + show-sys-updates) + bulk_build installed + ;; + show-local-updates) + bulk_build local + ;; + sort-dependencies) + bulk_sortdeps ${@/$XBPS_TARGET/} + ;; + update-bulk) + bulk_update + ;; + update-sys) + bulk_update installed + ;; + update-local) + bulk_update local + ;; + update-check) + read_pkg ignore-problems + update_check + ;; + update-hash-cache) + update_hash_cache + ;; + zap) + masterdir_zap + ;; + *) + msg_red "xbps-src: invalid target $XBPS_TARGET.\n" + usage && exit 1 + ;; +esac + +exit_and_cleanup $?