Compare commits

..

No commits in common. "master" and "next" have entirely different histories.
master ... next

304 changed files with 8701 additions and 7227 deletions

View file

@ -10,7 +10,7 @@ jobs:
permissions: permissions:
issues: write issues: write
container: container:
image: 'ghcr.io/void-linux/xbps-src-masterdir:20230425RC01-x86_64-musl' image: 'ghcr.io/void-linux/xbps-src-masterdir:20220527RC01-x86_64-musl'
steps: steps:
- name: Prepare container - name: Prepare container
run: | run: |

View file

@ -8,7 +8,7 @@ jobs:
permissions: permissions:
issues: write issues: write
container: container:
image: 'ghcr.io/void-linux/xbps-src-masterdir:20230425RC01-x86_64-musl' image: 'ghcr.io/void-linux/xbps-src-masterdir:20220527RC01-x86_64-musl'
steps: steps:
- name: Prepare container - name: Prepare container
run: | run: |

22
.gitignore vendored
View file

@ -2,23 +2,13 @@
*.swp *.swp
*~ *~
\#*# \#*#
*.o
# exclude everything in root except files and directories from void-packages masterdir*
/* hostdir*
!/.gitattributes masterdir*/
!/.github hostdir*/
!/.gitignore
!/.mailmap
!/CONTRIBUTING.md
!/COPYING
!/Manual.md
!/README.md
!/common
!/etc
!/srcpkgs
!/xbps-src
etc/conf etc/conf
etc/conf.* etc/conf.*
etc/virtual etc/virtual
etc/xbps.d/custom etc/xbps.d/custom
etc/repo-keys .xbps-checkvers*.plist

View file

@ -20,7 +20,6 @@ while not meeting any of the following requirements, is a good candidate for the
In particular, new themes are highly unlikely to be accepted. 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. 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). 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. Browser forks, including those based on Chromium and Firefox, are generally not accepted.
Such forks require heavy patching, maintenance and hours of build time. Such forks require heavy patching, maintenance and hours of build time.
@ -82,29 +81,6 @@ The checksum can be updated automatically with the `xgensum` helper from the [xt
$ xgensum -i <pkgname> $ xgensum -i <pkgname>
### Adopting a template
If a template is orphaned (maintained by `orphan@voidlinux.org`) or the current `maintainer` has not contributed to
Void in over a year, template maintainership can be adopted by someone else. To ensure a template gets the care it needs,
template adopters should be familiar with the package and have an established history of contributions to Void.
Those who have contributed several updates, especially for the template in question, are good candidates for template
maintainership.
It is best to adopt a template when making another change to it. When adopting the template, add your name or username
and email to the `maintainer` field in the template, and mention the adoption in your commit message, for example:
libfoo: update to 1.2.3, adopt.
### Orphaning a template
If you no longer wish to maintain a template, you can remove yourself as maintainer by setting the `maintainer` field in
the template to `Orphaned <orphan@voidlinux.org>`. The commit message should mention this, for example:
libfoo: orphan.
It is not necessary to make other changes to the template when orphaning, and incrementing the revision (triggering a
rebuild) is not necessary either.
### Committing your changes ### Committing your changes
After making your changes, please check that the package builds successfully. From the top level directory of your local copy of the `void-packages` repository, run: After making your changes, please check that the package builds successfully. From the top level directory of your local copy of the `void-packages` repository, run:

View file

@ -1,5 +1,5 @@
Copyright (c) 2008-2020 Juan Romero Pardines and contributors Copyright (c) 2008-2020 Juan Romero Pardines and contributors
Copyright (c) 2017-2024 The Void Linux team and contributors Copyright (c) 2017-2023 The Void Linux team and contributors
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without

226
Manual.md
View file

@ -5,8 +5,7 @@ packages for XBPS, the `Void Linux` native packaging system.
*Table of Contents* *Table of Contents*
* The XBPS source packages manual * [Introduction](#Introduction)
* [Introduction](#Introduction)
* [Package build phases](#buildphase) * [Package build phases](#buildphase)
* [Package naming conventions](#namingconventions) * [Package naming conventions](#namingconventions)
* [Libraries](#libs) * [Libraries](#libs)
@ -28,13 +27,13 @@ packages for XBPS, the `Void Linux` native packaging system.
* [Build helper scripts](#build_helper) * [Build helper scripts](#build_helper)
* [Functions](#functions) * [Functions](#functions)
* [Build options](#build_options) * [Build options](#build_options)
* [Runtime dependencies](#deps_runtime)
* [INSTALL and REMOVE files](#install_remove_files) * [INSTALL and REMOVE files](#install_remove_files)
* [INSTALL.msg and REMOVE.msg files](#install_remove_files_msg) * [INSTALL.msg and REMOVE.msg files](#install_remove_files_msg)
* [Creating system accounts/groups at runtime](#runtime_account_creation) * [Creating system accounts/groups at runtime](#runtime_account_creation)
* [Writing runit services](#writing_runit_services) * [Writing runit services](#writing_runit_services)
* [32bit packages](#32bit_pkgs) * [32bit packages](#32bit_pkgs)
* [Subpackages](#pkgs_sub) * [Subpackages](#pkgs_sub)
* [Some package classes](#pkgs_classes)
* [Development packages](#pkgs_development) * [Development packages](#pkgs_development)
* [Data packages](#pkgs_data) * [Data packages](#pkgs_data)
* [Documentation packages](#pkgs_documentation) * [Documentation packages](#pkgs_documentation)
@ -62,6 +61,7 @@ packages for XBPS, the `Void Linux` native packaging system.
* [kernel-hooks](#triggers_kernel_hooks) * [kernel-hooks](#triggers_kernel_hooks)
* [mimedb](#triggers_mimedb) * [mimedb](#triggers_mimedb)
* [mkdirs](#triggers_mkdirs) * [mkdirs](#triggers_mkdirs)
* [openjdk-profile](#triggers_openjdk_profile)
* [pango-modules](#triggers_pango_module) * [pango-modules](#triggers_pango_module)
* [pycompile](#triggers_pycompile) * [pycompile](#triggers_pycompile)
* [register-shell](#triggers_register_shell) * [register-shell](#triggers_register_shell)
@ -73,10 +73,10 @@ packages for XBPS, the `Void Linux` native packaging system.
* [Void specific documentation](#documentation) * [Void specific documentation](#documentation)
* [Notes](#notes) * [Notes](#notes)
* [Contributing via git](#contributing) * [Contributing via git](#contributing)
* [Help](#help) * [Help](#help)
<a id="Introduction"></a> <a id="Introduction"></a>
### Introduction ## Introduction
The `void-packages` repository contains all the The `void-packages` repository contains all the
recipes to download, compile and build binary packages for Void Linux. recipes to download, compile and build binary packages for Void Linux.
@ -316,7 +316,7 @@ The following functions are defined by `xbps-src` and can be used on any templat
`${FILESDIR}/$service`, containing `exec vlogger -t $service -p $facility`. `${FILESDIR}/$service`, containing `exec vlogger -t $service -p $facility`.
if a second argument is not specified, the `daemon` facility is used. if a second argument is not specified, the `daemon` facility is used.
For more information about `vlogger` and available values for the facility, For more information about `vlogger` and available values for the facility,
see [vlogger(8)](https://man.voidlinux.org/vlogger.8). see [vlogger(1)](https://man.voidlinux.org/vlogger.1).
- *vsed()* `vsed -i <file> -e <regex>` - *vsed()* `vsed -i <file> -e <regex>`
@ -335,29 +335,6 @@ The following functions are defined by `xbps-src` and can be used on any templat
it will default to `pkgname`. The `shell` argument can be one of `bash`, it will default to `pkgname`. The `shell` argument can be one of `bash`,
`fish` or `zsh`. `fish` or `zsh`.
- *vextract()* `[-C <target directory>] [--no-strip-components|--strip-components=<n>] <file>`
Extracts `file` to `target directory` with `n` directory components stripped. If
`target directory` not specified, defaults to the working directory. If
`--strip-components` or `--no-strip-components` is not specified, defaults to
`--strip-components=1`.
- *vsrcextract()* `[-C <target directory>] [--no-strip-components|--strip-components=<n>] <file>`
Extracts `$XBPS_SRCDISTDIR/$pkgname-$version/<file>` to `target directory`
with `n` directory components stripped. If `target directory` not specified,
defaults to the working directory. If `--strip-components` or `--no-strip-components`
is not specified, defaults to `--strip-components=1`.
This is useful when used in conjunction with `skip_extraction` and for submodule distfiles.
- *vsrccopy()* `<file>... <target>`
Copies `file`s from `$XBPS_SRCDISTDIR/$pkgname-$version/` into the `target` directory,
creating `target` if it does not exist.
This is useful when used in conjunction with `skip_extraction`.
> Shell wildcards must be properly quoted, Example: `vmove "usr/lib/*.a"`. > Shell wildcards must be properly quoted, Example: `vmove "usr/lib/*.a"`.
<a id="global_vars"></a> <a id="global_vars"></a>
@ -463,8 +440,8 @@ the generated `binary packages` have been modified.
- `version` A string with the package version. Must not contain dashes or underscore - `version` A string with the package version. Must not contain dashes or underscore
and at least one digit is required. Shell's variable substitution usage is not allowed. and at least one digit is required. Shell's variable substitution usage is not allowed.
`pkgname` and `version` are forbidden to contain special characters. Hence, they don't Neither `pkgname` or `version` should contain special characters which make it
need to be quoted, and by convention, they shouldn't be. necessary to quote them, so they shouldn't be quoted in the template.
<a id="optional_vars"></a> <a id="optional_vars"></a>
#### Optional variables #### Optional variables
@ -759,9 +736,9 @@ built for, available architectures can be found under `common/cross-profiles`.
In general, `archs` should only be set if the upstream software explicitly targets In general, `archs` should only be set if the upstream software explicitly targets
certain architectures or there is a compelling reason why the software should not be certain architectures or there is a compelling reason why the software should not be
available on some supported architectures. available on some supported architectures.
Prepending a pattern with a tilde means disallowing build on the indicated archs. Prepending pattern with tilde means disallowing build on indicated archs.
The first matching pattern is taken to allow/deny build. When no pattern matches, First matching pattern is taken to allow/deny build. When no pattern matches,
the package is built if the last pattern includes a tilde. package is build if last pattern includes tilde.
Examples: Examples:
``` ```
@ -810,65 +787,20 @@ should be listed in `checkdepends` and will be installed as if they were part of
a D-Bus session for applications that need it a D-Bus session for applications that need it
- `git`: some test suites run the `git` command - `git`: some test suites run the `git` command
<a id="deps_runtime"></a>
Lastly, a package may require certain dependencies at runtime, without which it Lastly, a package may require certain dependencies at runtime, without which it
is unusable. These dependencies, when they aren't detected automatically by is unusable. These dependencies, when they aren't detected automatically by
XBPS, should be listed in `depends`. XBPS, should be listed in `depends`. This is mostly relevant for Perl and Python
modules and other programs that use `dlopen(3)` instead of dynamically linking.
Libraries linked by ELF objects are detected automatically by `xbps-src`, hence they
must not be specified in templates via `depends`. This variable should list:
- executables called as separate processes.
- ELF objects using dlopen(3).
- non-object code, e.g. C headers, perl/python/ruby/etc modules.
- data files.
- overriding the minimal version specified in the `common/shlibs` file.
The runtime dependencies for ELF objects are detected by checking which SONAMEs
they require and then the SONAMEs are mapped to a binary package name with a minimal
required version. The `common/shlibs` file
sets up the `<SONAME> <pkgname>>=<version>` mappings.
For example the `foo-1.0_1` package provides the `libfoo.so.1` SONAME and
software requiring this library will link to `libfoo.so.1`; the resulting binary
package will have a run-time dependency on `foo>=1.0_1` package as specified in
`common/shlibs`:
```
# common/shlibs
...
libfoo.so.1 foo-1.0_1
...
```
- The first field specifies the SONAME.
- The second field specified the package name and minimal version required.
- A third optional field (usually set to `ignore`) can be used to skip checks in soname bumps.
Dependencies declared via `depends` are not installed to the master directory, rather they are
only checked if they exist as binary packages, and are built automatically by `xbps-src` if
the specified version is not in the local repository.
As a special case, `virtual` dependencies may be specified as runtime dependencies in the
`depends` template variable. Several different packages can provide common functionality by
declaring a virtual name and version in the `provides` template variable (e.g.
`provides="vpkg-0.1_1"`). Packages that rely on the common functionality without concern for the
specific provider can declare a dependency on the virtual package name with the prefix `virtual?`
(e.g., `depends="virtual?vpkg-0.1_1"`). When a package is built by `xbps-src`, providers for any
virtual packages will be confirmed to exist and will be built if necessary. A map from virtual
packages to their default providers is defined in `etc/defaults.virtual`. Individual mappings can be
overridden by local preferences in `etc/virtual`. Comments in `etc/defaults.virtual` provide more
information on this map.
Finally, as a general rule, if a package is built the exact same way whether or Finally, as a general rule, if a package is built the exact same way whether or
not a particular package is present in `makedepends` or `hostmakedepends`, that not a particular package is present in `makedepends` or `hostmakedepends`, that
package shouldn't be added as a build time dependency. package shouldn't be added as a build time dependency.
<a id="repositories"></a> <a id="repositories"></a>
### Repositories #### Repositories
<a id="repo_by_branch"></a> <a id="repo_by_branch"></a>
#### Repositories defined by Branch ##### Repositories defined by Branch
The global repository takes the name of The global repository takes the name of
the current branch, except if the name of the branch is master. Then the resulting the current branch, except if the name of the branch is master. Then the resulting
@ -876,19 +808,17 @@ repository will be at the global scope. The usage scenario is that the user can
update multiple packages in a second branch without polluting his local repository. update multiple packages in a second branch without polluting his local repository.
<a id="pkg_defined_repo"></a> <a id="pkg_defined_repo"></a>
#### Package defined Repositories ##### Package defined Repositories
The second way to define a repository is by setting the `repository` variable in The second way to define a repository is by setting the `repository` variable in
a template. This way the maintainer can define repositories for a specific a template. This way the maintainer can define repositories for a specific
package or a group of packages. This is currently used to distinguish between package or a group of packages. This is currently used to distinguish between
certain classes of packages. closed source packages, which are put in the `nonfree` repository and other
packages which are at the root-repository.
The following repository names are valid: The following repository names are valid:
* `bootstrap`: Repository for xbps-src-specific packages. * `nonfree`: Repository for closed source packages.
* `debug`: Repository for packages containing debug symbols. In almost all cases,
these packages are generated automatically.
* `nonfree`: Repository for packages that are closed source or have nonfree licenses.
<a id="updates"></a> <a id="updates"></a>
### Checking for new upstream releases ### Checking for new upstream releases
@ -929,10 +859,6 @@ in url. Defaults to `(|v|$pkgname)[-_.]*`.
part that follows numeric part of version directory part that follows numeric part of version directory
in url. Defaults to `(|\.x)`. in url. Defaults to `(|\.x)`.
- `disabled` can be set to disable update checking for the package,
in cases where checking for updates is impossible or does not make sense.
This should be set to a string describing why it is disabled.
<a id="patches"></a> <a id="patches"></a>
### Handling patches ### Handling patches
@ -1069,11 +995,13 @@ system. Additional arguments may be passed to the `zig build` invocation using
For packages that use the Python module build method (`setup.py` or For packages that use the Python module build method (`setup.py` or
[PEP 517](https://www.python.org/dev/peps/pep-0517/)), you can choose one of the following: [PEP 517](https://www.python.org/dev/peps/pep-0517/)), you can choose one of the following:
- `python2-module` to build Python 2.x modules - `python-module` to build *both* Python 2.x and 3.x modules
- `python3-module` to build Python 3.x modules - `python2-module` to build Python 2.x only modules
- `python3-pep517` to build Python 3.x modules that provide a PEP 517 build description without - `python3-module` to build Python 3.x only modules
- `python3-pep517` to build Python 3.x only modules that provide a PEP 517 build description without
a `setup.py` script a `setup.py` script
Environment variables for a specific `build_style` can be declared in a filename Environment variables for a specific `build_style` can be declared in a filename
@ -1092,7 +1020,8 @@ suitable environment for working with certain sets of packages.
The current list of available `build_helper` scripts is the following: The current list of available `build_helper` scripts is the following:
- `cmake-wxWidgets-gtk3` sets the `WX_CONFIG` variable which is used by FindwxWidgets.cmake - `rust` specifies environment variables required for cross-compiling crates via cargo and
for compiling cargo -sys crates.
- `gir` specifies dependencies for native and cross builds to deal with - `gir` specifies dependencies for native and cross builds to deal with
GObject Introspection. The following variables may be set in the template to handle GObject Introspection. The following variables may be set in the template to handle
@ -1102,20 +1031,6 @@ additional paths to be searched when linking target binaries to be introspected.
`qemu-<target_arch>-static` when running the target binary. You can for example specify `qemu-<target_arch>-static` when running the target binary. You can for example specify
`GIR_EXTRA_OPTIONS="-strace"` to see a trace of what happens when running that binary. `GIR_EXTRA_OPTIONS="-strace"` to see a trace of what happens when running that binary.
- `meson` creates a cross file, `${XBPS_WRAPPERDIR}/meson/xbps_meson.cross`, which configures
meson for cross builds. This is particularly useful for building packages that wrap meson
invocations (e.g., `python3-pep517` packages that use a meson backend) and is added by default
for packages that use the `meson` build style.
- `numpy` configures the environment for cross-compilation of python packages that provide
compiled extensions linking to NumPy C libraries. If the `meson` build helper is also
configured, a secondary cross file, `${XBPS_WRAPPERDIR}/meson/xbps_numpy.cross`, will be
written to inform meson where common NumPy components may be found.
- `python3` configures the cross-build environment to use Python libraries, header files, and
interpreter configurations in the target root. The `python3` helper is added by default for
packages that use the `python3-module` or `python3-pep517` build styles.
- `qemu` sets additional variables for the `cmake` and `meson` build styles to allow - `qemu` sets additional variables for the `cmake` and `meson` build styles to allow
executing cross-compiled binaries inside qemu. executing cross-compiled binaries inside qemu.
It sets `CMAKE_CROSSCOMPILING_EMULATOR` for cmake and `exe_wrapper` for meson It sets `CMAKE_CROSSCOMPILING_EMULATOR` for cmake and `exe_wrapper` for meson
@ -1129,9 +1044,7 @@ This aims to fix cross-builds for when the build-style is mixed: e.g. when in a
`gnu-configure` style the configure script calls `qmake` or a `Makefile` in `gnu-configure` style the configure script calls `qmake` or a `Makefile` in
`gnu-makefile` style, respectively. `gnu-makefile` style, respectively.
- `rust` specifies environment variables required for cross-compiling crates via cargo and - `cmake-wxWidgets-gtk3` sets the `WX_CONFIG` variable which is used by FindwxWidgets.cmake
for compiling cargo -sys crates. This helper is added by default for packages that use the
`cargo` build style.
<a id="functions"></a> <a id="functions"></a>
### Functions ### Functions
@ -1247,11 +1160,6 @@ package accordingly. Additionally, the following functions are available:
Outputs `-D<property>=true` if the option is set, or Outputs `-D<property>=true` if the option is set, or
`-D<property>=false` otherwise. `-D<property>=false` otherwise.
- *vopt_feature()* `vopt_feature <option> <property>`
Same as `vopt_bool`, but uses `-D<property=enabled` and
`-D<property>=disabled` respectively.
The following example shows how to change a source package that uses GNU The following example shows how to change a source package that uses GNU
configure to enable a new build option to support PNG images: configure to enable a new build option to support PNG images:
@ -1308,6 +1216,52 @@ Example: `XBPS_PKG_OPTIONS_xorg_server=opt`.
The list of supported package build options and its description is defined in the The list of supported package build options and its description is defined in the
`common/options.description` file. `common/options.description` file.
<a id="deps_runtime"></a>
#### Runtime dependencies
Dependencies for ELF objects are detected automatically by `xbps-src`, hence runtime
dependencies must not be specified in templates via `$depends` with the following exceptions:
- ELF objects using dlopen(3).
- non ELF objects, i.e perl/python/ruby/etc modules.
- Overriding the minimal version specified in the `shlibs` file.
The runtime dependencies for ELF objects are detected by checking which SONAMEs
they require and then the SONAMEs are mapped to a binary package name with a minimal
required version. The `shlibs` file in the `void-packages/common` directory
sets up the `<SONAME> <pkgname>>=<version>` mappings.
For example the `foo-1.0_1` package provides the `libfoo.so.1` SONAME and
software requiring this library will link to `libfoo`; the resulting binary
package will have a run-time dependency to `foo>=1.0_1` package as specified in
`common/shlibs`:
```
# common/shlibs
...
libfoo.so.1 foo-1.0_1
...
```
- The first field specifies the SONAME.
- The second field specified the package name and minimal version required.
- A third optional field (usually set to `ignore`) can be used to skip checks in soname bumps.
Dependencies declared via `${depends}` are not installed to the master directory, rather are
only checked if they exist as binary packages, and are built automatically by `xbps-src` if
the specified version is not in the local repository.
As a special case, `virtual` dependencies may be specified as runtime dependencies in the
`${depends}` template variable. Several different packages can provide common functionality by
declaring a virtual name and version in the `${provides}` template variable (e.g.,
`provides="vpkg-0.1_1"`). Packages that rely on the common functionality without concern for the
specific provider can declare a dependency on the virtual package name with the prefix `virtual?`
(e.g., `depends="virtual?vpkg-0.1_1"`). When a package is built by `xbps-src`, providers for any
virtual packages will be confirmed to exist and will be built if necessary. A map from virtual
packages to their default providers is defined in `etc/defaults.virtual`. Individual mappings can be
overridden by local preferences in `etc/virtual`. Comments in `etc/defaults.virtual` provide more
information on this map.
<a id="install_remove_files"></a> <a id="install_remove_files"></a>
### INSTALL and REMOVE files ### INSTALL and REMOVE files
@ -1363,8 +1317,6 @@ Ideally those files should not exceed 80 chars per line.
subpackages can also have their own `INSTALL.msg` and `REMOVE.msg` files, simply create them subpackages can also have their own `INSTALL.msg` and `REMOVE.msg` files, simply create them
as `srcpkgs/<pkgname>/<subpkg>.INSTALL.msg` or `srcpkgs/<pkgname>/<subpkg>.REMOVE.msg` respectively. as `srcpkgs/<pkgname>/<subpkg>.INSTALL.msg` or `srcpkgs/<pkgname>/<subpkg>.REMOVE.msg` respectively.
This should only be used for critical messages, like warning users of breaking changes.
<a id="runtime_account_creation"></a> <a id="runtime_account_creation"></a>
### Creating system accounts/groups at runtime ### Creating system accounts/groups at runtime
@ -1526,11 +1478,8 @@ destdir (`$DESTDIR`) to the `subpackage` destdir (`$PKGDESTDIR`).
Subpackages are processed always in alphabetical order; To force a custom order, Subpackages are processed always in alphabetical order; To force a custom order,
the `subpackages` variable can be declared with the wanted order. the `subpackages` variable can be declared with the wanted order.
<a id="pkgs_classes"></a>
### Some package classes
<a id="pkgs_development"></a> <a id="pkgs_development"></a>
#### Development packages ### Development packages
A development package, commonly generated as a subpackage, shall only contain A development package, commonly generated as a subpackage, shall only contain
files required for development, that is, headers, static libraries, shared files required for development, that is, headers, static libraries, shared
@ -1560,7 +1509,7 @@ following subset of files from the main package:
* Vala bindings `usr/share/vala` * Vala bindings `usr/share/vala`
<a id="pkgs_data"></a> <a id="pkgs_data"></a>
#### Data packages ### Data packages
Another common subpackage type is the `-data` subpackage. This subpackage Another common subpackage type is the `-data` subpackage. This subpackage
type used to split architecture independent, big(ger) or huge amounts type used to split architecture independent, big(ger) or huge amounts
@ -1572,7 +1521,7 @@ The main package must then have `depends="${pkgname}-data-${version}_${revision}
possibly in addition to other, non-automatic depends. possibly in addition to other, non-automatic depends.
<a id="pkgs_documentation"></a> <a id="pkgs_documentation"></a>
#### Documentation packages ### Documentation packages
Packages intended for user interaction do not always unconditionally require Packages intended for user interaction do not always unconditionally require
their documentation part. A user who does not want to e.g. develop their documentation part. A user who does not want to e.g. develop
@ -1587,7 +1536,7 @@ amounts of documentation for no reason. Thus the size of the documentation part
be your guidance to decide whether or not to split off a `-doc` subpackage. be your guidance to decide whether or not to split off a `-doc` subpackage.
<a id="pkgs_python"></a> <a id="pkgs_python"></a>
#### Python packages ### Python packages
Python packages should be built with the `python{,2,3}-module` build style, if possible. Python packages should be built with the `python{,2,3}-module` build style, if possible.
This sets some environment variables required to allow cross compilation. Support to allow This sets some environment variables required to allow cross compilation. Support to allow
@ -1630,8 +1579,6 @@ In most cases version is inferred from shebang, install path or build style.
Only required for some multi-language Only required for some multi-language
applications (e.g., the application is written in C while the command is applications (e.g., the application is written in C while the command is
written in Python) or just single Python file ones that live in `/usr/bin`. written in Python) or just single Python file ones that live in `/usr/bin`.
If `python_version` is set to `ignore`, python-containing shebangs will not be rewritten.
Use this only if a package should not be using a system version of python.
Also, a set of useful variables are defined to use in the templates: Also, a set of useful variables are defined to use in the templates:
@ -1650,7 +1597,7 @@ Also, a set of useful variables are defined to use in the templates:
python versions. python versions.
<a id="pkgs_go"></a> <a id="pkgs_go"></a>
#### Go packages ### Go packages
Go packages should be built with the `go` build style, if possible. Go packages should be built with the `go` build style, if possible.
The `go` build style takes care of downloading Go dependencies and The `go` build style takes care of downloading Go dependencies and
@ -1684,7 +1631,7 @@ The path to the package's source inside `$GOPATH` is available as
`$GOSRCPATH`. `$GOSRCPATH`.
<a id="pkgs_haskell"></a> <a id="pkgs_haskell"></a>
#### Haskell packages ### Haskell packages
We build Haskell package using `stack` from We build Haskell package using `stack` from
[Stackage](http://www.stackage.org/), generally the LTS versions. [Stackage](http://www.stackage.org/), generally the LTS versions.
@ -1702,7 +1649,7 @@ The following variables influence how Haskell packages are built:
you can add your `--flag ...` parameters there. you can add your `--flag ...` parameters there.
<a id="pkgs_font"></a> <a id="pkgs_font"></a>
#### Font packages ### Font packages
Font packages are very straightforward to write, they are always set with the Font packages are very straightforward to write, they are always set with the
following variables: following variables:
@ -1959,7 +1906,7 @@ If it is running under another architecture it tries to use the host's `install-
utility. utility.
<a id="triggers_initramfs_regenerate"></a> <a id="triggers_initramfs_regenerate"></a>
#### initramfs-regenerate ### initramfs-regenerate
The initramfs-regenerate trigger will trigger the regeneration of all kernel The initramfs-regenerate trigger will trigger the regeneration of all kernel
initramfs images after package installation or removal. The trigger must be initramfs images after package installation or removal. The trigger must be
@ -2040,6 +1987,13 @@ During removal it will delete the directory using `rmdir`.
To include this trigger use the `make_dirs` variable, as the trigger won't do anything To include this trigger use the `make_dirs` variable, as the trigger won't do anything
unless it is defined. unless it is defined.
<a id="triggers_openjdk_profile"></a>
#### openjdk-profile
The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
sets the `JAVA_HOME` environment variable to the currently-selected alternative for
`/usr/bin/java` on installation. This trigger must be manually requested.
<a id="triggers_pango_module"></a> <a id="triggers_pango_module"></a>
#### pango-modules #### pango-modules
@ -2184,7 +2138,7 @@ otherwise the `debug` packages won't have debugging symbols.
<a id="contributing"></a> <a id="contributing"></a>
### Contributing via git ### Contributing via git
To get started, [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) the void-linux `void-packages` git repository on GitHub and clone it: To get started, [fork](https://help.github.com/articles/fork-a-repo) the void-linux `void-packages` git repository on GitHub and clone it:
$ git clone git@github.com:<user>/void-packages.git $ git clone git@github.com:<user>/void-packages.git
@ -2201,7 +2155,7 @@ to pull in new changes:
$ git pull --rebase upstream master $ git pull --rebase upstream master
<a id="help"></a> <a id="help"></a>
### Help ## Help
If after reading this `manual` you still need some kind of help, please join If after reading this `manual` you still need some kind of help, please join
us at `#xbps` via IRC at `irc.libera.chat`. us at `#xbps` via IRC at `irc.libera.chat`.

View file

@ -87,7 +87,7 @@ Once built, the package will be available in `hostdir/binpkgs` or an appropriate
Alternatively, packages can be installed with the `xi` utility, from the `xtools` package. `xi` takes the repository of the current working directory into account. 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 <package_name> # xi <package_name>
``` ```
<a name="chroot-methods"></a> <a name="chroot-methods"></a>
@ -217,7 +217,7 @@ The following directory hierarchy is used with a default configuration file:
| |- repocache ... | |- repocache ...
| |- sources ... | |- sources ...
| |
|- masterdir-<arch> |- masterdir
| |- builddir -> ... | |- builddir -> ...
| |- destdir -> ... | |- destdir -> ...
| |- host -> bind mounted from <hostdir> | |- host -> bind mounted from <hostdir>
@ -226,7 +226,7 @@ The following directory hierarchy is used with a default configuration file:
The description of these directories is as follows: The description of these directories is as follows:
- `masterdir-<arch>`: master directory to be used as rootfs to build/install packages. - `masterdir`: master directory to be used as rootfs to build/install packages.
- `builddir`: to unpack package source tarballs and where packages are built. - `builddir`: to unpack package source tarballs and where packages are built.
- `destdir`: to install packages, aka **fake destdir**. - `destdir`: to install packages, aka **fake destdir**.
- `hostdir/ccache`: to store ccache data if the `XBPS_CCACHE` option is enabled. - `hostdir/ccache`: to store ccache data if the `XBPS_CCACHE` option is enabled.
@ -331,7 +331,7 @@ And then make a signature per package:
If the RSA key was protected with a passphrase you'll have to type it, or alternatively set 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. it via the `XBPS_PASSPHRASE` environment variable.
Once the binary packages have been signed, check if the repository contains the appropriate `hex fingerprint`: Once the binary packages have been signed, check the repository contains the appropriate `hex fingerprint`:
$ xbps-query --repository=hostdir/binpkgs -vL $ xbps-query --repository=hostdir/binpkgs -vL
... ...
@ -340,14 +340,11 @@ Each time a binary package is created, a package signature must be created with
> It is not possible to sign a repository with multiple RSA keys. > It is not possible to sign a repository with multiple RSA keys.
If packages in `hostdir/binpkgs` are signed, the key in `.plist` format (as imported by xbps) can be placed
in `etc/repo-keys/` to prevent xbps-src from prompting to import that key.
<a name="rebuilding"></a> <a name="rebuilding"></a>
### Rebuilding and overwriting existing local packages ### Rebuilding and overwriting existing local packages
Packages are overwritten on every build to make getting package with changed build options easy. 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, To make xbps-src skip build and preserve first package build with with given version and revision,
same as in official void repository, set `XBPS_PRESERVE_PKGS=yes` in `etc/conf` file. same as in official void repository, set `XBPS_PRESERVE_PKGS=yes` in `etc/conf` file.
Reinstalling a package in your target `rootdir` can be easily done too: Reinstalling a package in your target `rootdir` can be easily done too:
@ -362,7 +359,7 @@ the package from the desired repository.
<a name="distcc"></a> <a name="distcc"></a>
### Enabling distcc for distributed compilation ### Enabling distcc for distributed compilation
Setup the workers (machines that will compile the code): Setup the slaves (machines that will compile the code):
# xbps-install -Sy distcc # xbps-install -Sy distcc
@ -375,7 +372,7 @@ Enable and start the `distccd` service:
# ln -s /etc/sv/distccd /var/service # ln -s /etc/sv/distccd /var/service
Install distcc on the host (machine that executes xbps-src) as well. Install distcc on the host (machine that executes xbps-src) as well.
Unless you want to use the host as worker from other machines, there is no need Unless you want to use the host as slave from other machines, there is no need
to modify the configuration. to modify the configuration.
On the host you can now enable distcc in the `void-packages/etc/conf` file: On the host you can now enable distcc in the `void-packages/etc/conf` file:
@ -386,8 +383,8 @@ On the host you can now enable distcc in the `void-packages/etc/conf` file:
The example values assume a localhost CPU with 4 cores of which at most 2 are used for compiler jobs. 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 number of slots for preprocessor jobs is set to 24 in order to have enough preprocessed data for other CPUs to compile.
The worker 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.101 has a CPU with 8 cores and the /9 for the number of jobs is a saturating choice.
The worker 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 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). The XBPS_MAKEJOBS setting is increased to 16 to account for the possible parallelism (2 + 9 + 2 + some slack).
<a name="distfiles-mirrors"></a> <a name="distfiles-mirrors"></a>
@ -434,7 +431,7 @@ xbps-src can be used in any recent Linux distribution matching the CPU architect
To use xbps-src in your Linux distribution use the following instructions. Let's start downloading the xbps static binaries: 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.<arch>-musl.tar.xz $ wget http://alpha.de.repo.voidlinux.org/static/xbps-static-latest.<arch>-musl.tar.xz
$ mkdir ~/XBPS $ mkdir ~/XBPS
$ tar xvf xbps-static-latest.<arch>-musl.tar.xz -C ~/XBPS $ tar xvf xbps-static-latest.<arch>-musl.tar.xz -C ~/XBPS
$ export PATH=~/XBPS/usr/bin:$PATH $ export PATH=~/XBPS/usr/bin:$PATH
@ -450,7 +447,7 @@ and `xbps-src` should be fully functional; just start the `bootstrap` process, i
$ ./xbps-src binary-bootstrap $ ./xbps-src binary-bootstrap
The default masterdir is created in the current working directory, i.e. `void-packages/masterdir-<arch>`, where `<arch>` for the default masterdir is is the native xbps architecture. The default masterdir is created in the current working directory, i.e `void-packages/masterdir`.
<a name="remaking-masterdir"></a> <a name="remaking-masterdir"></a>
### Remaking the masterdir ### Remaking the masterdir
@ -477,21 +474,20 @@ Two ways are available to build 32bit packages on x86\_64:
The canonical mode (native) needs a new x86 `masterdir`: The canonical mode (native) needs a new x86 `masterdir`:
$ ./xbps-src -A i686 binary-bootstrap $ ./xbps-src -m masterdir-x86 binary-bootstrap i686
$ ./xbps-src -A i686 ... $ ./xbps-src -m masterdir-x86 ...
<a name="building-for-musl"></a> <a name="building-for-musl"></a>
### Building packages natively for the musl C library ### Building packages natively for the musl C library
The canonical way of building packages for same architecture but different C library is through a dedicated masterdir by using the host architecture flag `-A`. 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: To build for x86_64-musl on glibc x86_64 system, prepare a new masterdir with the musl packages:
$ ./xbps-src -A x86_64-musl binary-bootstrap $ ./xbps-src -m masterdir-x86_64-musl binary-bootstrap x86_64-musl
This will create and bootstrap a new masterdir called `masterdir-x86_64-musl` that will be used when `-A x86_64-musl` is specified.
Your new masterdir is now ready to build packages natively for the musl C library: Your new masterdir is now ready to build packages natively for the musl C library:
$ ./xbps-src -A x86_64-musl pkg ... $ ./xbps-src -m masterdir-x86_64-musl pkg ...
<a name="building-base-system"></a> <a name="building-base-system"></a>
### Building void base-system from scratch ### Building void base-system from scratch

View file

@ -1,86 +0,0 @@
# This build helper writes a Meson cross-file, allowing other build styles
# to properly drive cross-builds in Meson when appropriate
# Action is only taken for cross builds
[ -z "$CROSS_BUILD" ] && return 0
# The cross file should only be written once, unless forced
[ -e "${XBPS_WRAPPERDIR}/meson/xbps_meson.cross" ] && [ -z "$XBPS_BUILD_FORCEMODE" ] && return 0
mkdir -p "${XBPS_WRAPPERDIR}/meson"
_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
# Tell meson to run binaries with qemu if desired
_MESON_EXE_WRAPPER=""
if [[ "${build_helper}" = *qemu* ]]; then
_MESON_EXE_WRAPPER="exe_wrapper = '/usr/bin/qemu-${XBPS_TARGET_QEMU_MACHINE}-static'"
fi
# Record cross-compiling information in cross file.
#
# CFLAGS, CXXFLAGS and LDFLAGS are not yet available and
# will be taken from the environment at configure time.
cat > "${XBPS_WRAPPERDIR}/meson/xbps_meson.cross" <<-EOF
[binaries]
${_MESON_EXE_WRAPPER:-# exe_wrapper is not set}
c = '${CC}'
cpp = '${CXX}'
ar = '${XBPS_CROSS_TRIPLET}-gcc-ar'
nm = '${NM}'
strip = '${STRIP}'
readelf = '${READELF}'
objcopy = '${OBJCOPY}'
pkg-config = '${PKG_CONFIG}'
rust = ['rustc', '--target', '${RUST_TARGET}' ,'--sysroot', '${XBPS_CROSS_BASE}/usr']
g-ir-scanner = '${XBPS_CROSS_BASE}/usr/bin/g-ir-scanner'
g-ir-compiler = '${XBPS_CROSS_BASE}/usr/bin/g-ir-compiler'
g-ir-generate = '${XBPS_CROSS_BASE}/usr/bin/g-ir-generate'
llvm-config = '/usr/bin/llvm-config'
cups-config = '${XBPS_CROSS_BASE}/usr/bin/cups-config'
[properties]
needs_exe_wrapper = true
bindgen_clang_arguments = ['-target', '${XBPS_CROSS_TRIPLET}']
[host_machine]
system = 'linux'
cpu_family = '${_MESON_CPU_FAMILY}'
cpu = '${_MESON_TARGET_CPU}'
endian = '${_MESON_TARGET_ENDIAN}'
EOF
unset _MESON_CPU_FAMILY _MESON_TARGET_CPU _MESON_TARGET_ENDIAN _MESON_EXE_WRAPPER

View file

@ -11,43 +11,27 @@ if [[ $hostmakedepends != *"python3-numpy"* ]]; then
hostmakedepends+=" python3-numpy" hostmakedepends+=" python3-numpy"
fi fi
[ -z "$CROSS_BUILD" ] && return 0 if [ "$CROSS_BUILD" ]; then
if [[ $makedepends != *"python3-numpy"* ]]; then
if [[ $makedepends != *"python3-numpy"* ]]; then
makedepends+=" python3-numpy" 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
# Write a secondary meson cross file for numpy configuration
if [[ "${build_helper}" = *meson* ]]; then
_npy_meson_cross="${XBPS_WRAPPERDIR}/meson/xbps_numpy.cross"
_cross_py_site="${XBPS_CROSS_BASE}/${py3_sitelib}"
if [ ! -e "${_npy_meson_cross}" ] || [ -n "$XBPS_BUILD_FORCEMODE" ]; then
mkdir -p "${XBPS_WRAPPERDIR}/meson"
cat > "${_npy_meson_cross}" <<-EOF
[properties]
numpy-include-dir = '${_cross_py_site}/numpy/core/include'
pythran-include-dir = '${_cross_py_site}/pythran'
EOF
fi fi
unset _npy_meson_cross _cross_py_site
# 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 fi

View file

@ -30,16 +30,9 @@ else
unset CARGO_BUILD_TARGET unset CARGO_BUILD_TARGET
fi fi
# prevent cargo stripping debug symbols
export CARGO_PROFILE_RELEASE_STRIP=false
# For cross-compiling rust -sys crates # For cross-compiling rust -sys crates
export PKG_CONFIG_ALLOW_CROSS=1 export PKG_CONFIG_ALLOW_CROSS=1
# For cross-compiling pyo3 bindings
export PYO3_CROSS_LIB_DIR="${XBPS_CROSS_BASE}/usr/lib"
export PYO3_CROSS_INCLUDE_DIR="${XBPS_CROSS_BASE}/usr/include"
# gettext-rs # gettext-rs
export GETTEXT_BIN_DIR=/usr/bin export GETTEXT_BIN_DIR=/usr/bin
export GETTEXT_LIB_DIR="${XBPS_CROSS_BASE}/usr/lib/gettext" export GETTEXT_LIB_DIR="${XBPS_CROSS_BASE}/usr/lib/gettext"
@ -64,12 +57,3 @@ export ZSTD_SYS_USE_PKG_CONFIG=1
# onig-sys # onig-sys
export RUSTONIG_SYSTEM_LIBONIG=1 export RUSTONIG_SYSTEM_LIBONIG=1
# libsqlite3-sys
export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
# jemalloc-sys
export JEMALLOC_SYS_WITH_LG_PAGE=16
# libgit2-sys
export LIBGIT2_NO_VENDOR=1

View file

@ -1,7 +0,0 @@
XBPS_TARGET_CFLAGS="-march=rv64imafdc"
XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS"
XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS"
XBPS_TRIPLET="riscv64-unknown-linux-musl"
XBPS_RUST_TARGET="riscv64gc-unknown-linux-musl"
XBPS_ZIG_TARGET="riscv64-linux-musl"
XBPS_ZIG_CPU="baseline"

View file

@ -1,7 +0,0 @@
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"

View file

@ -31,7 +31,6 @@ _EOF
ppc64*) _CMAKE_SYSTEM_PROCESSOR=ppc64 ;; ppc64*) _CMAKE_SYSTEM_PROCESSOR=ppc64 ;;
ppcle*) _CMAKE_SYSTEM_PROCESSOR=ppcle ;; ppcle*) _CMAKE_SYSTEM_PROCESSOR=ppcle ;;
ppc*) _CMAKE_SYSTEM_PROCESSOR=ppc ;; ppc*) _CMAKE_SYSTEM_PROCESSOR=ppc ;;
riscv64*) _CMAKE_SYSTEM_PROCESSOR=riscv64 ;;
*) _CMAKE_SYSTEM_PROCESSOR=generic ;; *) _CMAKE_SYSTEM_PROCESSOR=generic ;;
esac esac
cat > cross_${XBPS_CROSS_TRIPLET}.cmake <<_EOF cat > cross_${XBPS_CROSS_TRIPLET}.cmake <<_EOF
@ -40,7 +39,6 @@ SET(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_C_COMPILER ${CC}) SET(CMAKE_C_COMPILER ${CC})
SET(CMAKE_CXX_COMPILER ${CXX}) SET(CMAKE_CXX_COMPILER ${CXX})
SET(Rust_CARGO_TARGET ${XBPS_CROSS_RUST_TARGET})
SET(CMAKE_CROSSCOMPILING TRUE) SET(CMAKE_CROSSCOMPILING TRUE)
SET(CMAKE_SYSTEM_PROCESSOR ${_CMAKE_SYSTEM_PROCESSOR}) SET(CMAKE_SYSTEM_PROCESSOR ${_CMAKE_SYSTEM_PROCESSOR})
@ -53,10 +51,11 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
_EOF _EOF
cmake_args+=" -DCMAKE_TOOLCHAIN_FILE=${wrksrc}/${build_wrksrc}/${cmake_builddir}/cross_${XBPS_CROSS_TRIPLET}.cmake" cmake_args+=" -DCMAKE_TOOLCHAIN_FILE=${wrksrc}/${build_wrksrc}/${cmake_builddir}/cross_${XBPS_CROSS_TRIPLET}.cmake"
fi fi
cmake_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" cmake_args+=" -DCMAKE_INSTALL_PREFIX=/usr"
cmake_args+=" -DCMAKE_BUILD_TYPE=None" cmake_args+=" -DCMAKE_BUILD_TYPE=None"
cmake_args+=" -DCMAKE_INSTALL_LIBDIR:PATH=lib${XBPS_TARGET_WORDSIZE}" cmake_args+=" -DCMAKE_INSTALL_LIBDIR=lib${XBPS_TARGET_WORDSIZE}"
cmake_args+=" -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc" cmake_args+=" -DCMAKE_INSTALL_SYSCONFDIR=/etc"
cmake_args+=" -DFETCHCONTENT_FULLY_DISCONNECTED=ON"
if [ "$CROSS_BUILD" ]; then if [ "$CROSS_BUILD" ]; then
cmake_args+=" -DQT_HOST_PATH=/usr" cmake_args+=" -DQT_HOST_PATH=/usr"
@ -70,7 +69,7 @@ _EOF
>> cross_${XBPS_CROSS_TRIPLET}.cmake >> cross_${XBPS_CROSS_TRIPLET}.cmake
fi fi
cmake_args+=" -DCMAKE_INSTALL_SBINDIR:PATH=bin" cmake_args+=" -DCMAKE_INSTALL_SBINDIR=bin"
export CMAKE_GENERATOR="${CMAKE_GENERATOR:-Ninja}" export CMAKE_GENERATOR="${CMAKE_GENERATOR:-Ninja}"
# Remove -pipe: https://gitlab.kitware.com/cmake/cmake/issues/19590 # Remove -pipe: https://gitlab.kitware.com/cmake/cmake/issues/19590

View file

@ -32,16 +32,6 @@ do_build() {
go_package=${go_package:-$go_import_path} go_package=${go_package:-$go_import_path}
# Build using Go modules if there's a go.mod file # Build using Go modules if there's a go.mod file
if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then
if [[ -n "${_go_mod_path}" ]]; then
pushd $(dirname ${_go_mod_path})
fi
# Check if go_import_path matches module
if [ "module $go_import_path" != "$(grep '^module' go.mod | head -n1)" ]; 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 if [ -z "${go_mod_mode}" ] && [ -d vendor ]; then
msg_normal "Using vendor dir for $pkgname Go dependencies.\n" msg_normal "Using vendor dir for $pkgname Go dependencies.\n"
go_mod_mode=vendor go_mod_mode=vendor
@ -50,13 +40,10 @@ do_build() {
# default behavior. # default behavior.
go_mod_mode= go_mod_mode=
fi fi
go install -p "$XBPS_MAKEJOBS" -mod="${go_mod_mode}" -modcacherw -v -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package} go install -p "$XBPS_MAKEJOBS" -mod="${go_mod_mode}" -modcacherw -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
if [[ -n "${_go_mod_path}" ]]; then
popd
fi
else else
# Otherwise, build using GOPATH # Otherwise, build using GOPATH
go install -p "$XBPS_MAKEJOBS" -v -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package} go get -p "$XBPS_MAKEJOBS" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
fi fi
} }

View file

@ -1,11 +1,94 @@
# #
# This helper is for templates using meson. # 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} <<EOF
[binaries]
c = '${CC}'
cpp = '${CXX}'
ar = '${XBPS_CROSS_TRIPLET}-gcc-ar'
nm = '${NM}'
ld = '${LD}'
strip = '${STRIP}'
readelf = '${READELF}'
objcopy = '${OBJCOPY}'
pkgconfig = '${PKG_CONFIG}'
rust = ['rustc', '--target', '${RUST_TARGET}' ,'--sysroot', '${XBPS_CROSS_BASE}/usr']
g-ir-scanner = '${XBPS_CROSS_BASE}/usr/bin/g-ir-scanner'
g-ir-compiler = '${XBPS_CROSS_BASE}/usr/bin/g-ir-compiler'
g-ir-generate = '${XBPS_CROSS_BASE}/usr/bin/g-ir-generate'
llvm-config = '/usr/bin/llvm-config'
cups-config = '${XBPS_CROSS_BASE}/usr/bin/cups-config'
[properties]
needs_exe_wrapper = true
[built-in options]
c_args = ['$(echo ${CFLAGS} | sed -r "s/\s+/','/g")']
c_link_args = ['$(echo ${LDFLAGS} | sed -r "s/\s+/','/g")']
cpp_args = ['$(echo ${CXXFLAGS} | sed -r "s/\s+/','/g")']
cpp_link_args = ['$(echo ${LDFLAGS} | sed -r "s/\s+/','/g")']
[host_machine]
system = 'linux'
cpu_family = '${_MESON_CPU_FAMILY}'
cpu = '${_MESON_TARGET_CPU}'
endian = '${_MESON_TARGET_ENDIAN}'
EOF
if [[ $build_helper = *"qemu"* ]]; then
sed -e "/\[binaries\]/ a exe_wrapper = '/usr/bin/qemu-${XBPS_TARGET_QEMU_MACHINE}-static'" \
-i ${meson_crossfile}
fi
unset _MESON_CPU_FAMILY _MESON_TARGET_CPU _MESON_TARGET_ENDIAN
fi
}
do_configure() { do_configure() {
: ${meson_cmd:=meson} : ${meson_cmd:=meson}
: ${meson_builddir:=build} : ${meson_builddir:=build}
: ${meson_crossfile:="${XBPS_WRAPPERDIR}/meson/xbps_meson.cross"} : ${meson_crossfile:=xbps_meson.cross}
if [ "$CROSS_BUILD" ]; then if [ "$CROSS_BUILD" ]; then
configure_args+=" --cross-file=${meson_crossfile}" configure_args+=" --cross-file=${meson_crossfile}"

View file

@ -0,0 +1,96 @@
#
# This helper is for templates installing python modules.
#
do_build() {
: ${python_versions:="2.7 $py3_ver"}
local pyver= tmp_cflags="$CFLAGS" tmp_ldflags="$LDFLAGS"
for pyver in $python_versions; do
if [ -n "$CROSS_BUILD" ]; then
CFLAGS="$tmp_cflags"
LDFLAGS="$tmp_ldflags"
ADDENV=
PYPREFIX="$XBPS_CROSS_BASE"
CFLAGS+=" -I${XBPS_CROSS_BASE}/include/python${pyver} -I${XBPS_CROSS_BASE}/usr/include"
LDFLAGS+=" -L${XBPS_CROSS_BASE}/lib/python${pyver} -L${XBPS_CROSS_BASE}/usr/lib"
CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
LDSHARED="${CC} -shared $LDFLAGS"
case $pyver in
3.*)
for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
f=${f##*/}
_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
done
ADDENV+=" PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}"
ADDENV+=" _PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME""
esac
env CC="$CC" LDSHARED="$LDSHARED" $ADDENV \
PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
LDFLAGS="$LDFLAGS" python${pyver} setup.py \
build --build-base=build-${pyver} ${make_build_args}
else
python${pyver} setup.py build --build-base=build-${pyver} ${make_build_args}
fi
done
}
do_check() {
: ${python_versions:="2.7 $py3_ver"}
for pyver in $python_versions; do
ln -s build-${pyver} build
if [ -z "$make_check_target" ]; then
if ! python${pyver} setup.py --help test >/dev/null 2>&1; then
msg_warn "No command 'test' defined by setup.py for python${pyver}.\n"
rm build
return 0
fi
fi
${make_check_pre} python${pyver} setup.py ${make_check_target:-test} ${make_check_args}
rm build
done
}
do_install() {
: ${python_versions:="2.7 $py3_ver"}
local pyver=
for pyver in $python_versions; do
if [ -n "$CROSS_BUILD" ]; then
ADDENV=
PYPREFIX="$XBPS_CROSS_BASE"
CFLAGS+=" -I${XBPS_CROSS_BASE}/include/python${pyver} -I${XBPS_CROSS_BASE}/usr/include"
LDFLAGS+=" -L${XBPS_CROSS_BASE}/lib/python${pyver} -L${XBPS_CROSS_BASE}/usr/lib"
CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
LDSHARED="${CC} -shared $LDFLAGS"
case $pyver in
3.*)
for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
f=${f##*/}
_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
done
ADDENV+=" PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}"
ADDENV+=" _PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME""
esac
env CC="$CC" LDSHARED="$LDSHARED" $ADDENV \
PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
LDFLAGS="$LDFLAGS" python${pyver} setup.py \
build --build-base=build-${pyver} \
install --prefix=/usr --root=${DESTDIR} ${make_install_args}
else
python${pyver} setup.py build --build-base=build-${pyver} \
install --prefix=/usr --root=${DESTDIR} ${make_install_args}
fi
# Rename unversioned scripts to avoid name conflicts.
if [ -d ${DESTDIR}/usr/bin ]; then
find ${DESTDIR}/usr/bin -type f ! -name "*[[:digit:]]" | while IFS= read -r f _; do
mv "${f}" "${f}${pyver%.*}"
echo "[python-module] Unversioned script renamed to '${f#$DESTDIR}${pyver%.*}'"
done
fi
done
}

View file

@ -12,7 +12,7 @@ do_check() {
if python3 -c 'import xdist' >/dev/null 2>&1; then if python3 -c 'import xdist' >/dev/null 2>&1; then
testjobs="-n $XBPS_MAKEJOBS" testjobs="-n $XBPS_MAKEJOBS"
fi fi
PYTHONPATH="$(cd build/lib* && pwd)" PY_IGNORE_IMPORTMISMATCH=1 \ PYTHONPATH="$(cd build/lib* && pwd)" \
${make_check_pre} \ ${make_check_pre} \
python3 -m pytest ${testjobs} ${make_check_args} ${make_check_target} python3 -m pytest ${testjobs} ${make_check_args} ${make_check_target}
else else

View file

@ -4,18 +4,8 @@
do_build() { do_build() {
: ${make_build_target:=.} : ${make_build_target:=.}
: ${make_build_args:=--no-isolation --wheel}
if [ "${CROSS_BUILD}" ] && [[ "${build_helper}" = *meson* ]]; then python3 -m build ${make_build_args} ${make_build_target}
local mcross="-Csetup-args=--cross-file=${XBPS_WRAPPERDIR}/meson"
make_build_args+=" ${mcross}/xbps_meson.cross"
if [[ "${build_helper}" = *numpy* ]]; then
make_build_args+=" ${mcross}/xbps_numpy.cross"
fi
fi
python3 -m build --no-isolation --wheel \
${make_build_args} ${make_build_target}
} }
do_check() { do_check() {
@ -29,11 +19,11 @@ do_check() {
testjobs="-n $XBPS_MAKEJOBS" testjobs="-n $XBPS_MAKEJOBS"
fi fi
local testdir="${wrksrc}/.xbps-testdir/$(date +%s)" local testdir="${wrksrc}/tmp/$(date +%s)"
python3 -m installer --destdir "${testdir}" \ python3 -m installer --destdir "${testdir}" \
${make_install_args} ${make_install_target:-dist/*.whl} ${make_install_args} ${make_install_target:-dist/*.whl}
PATH="${testdir}/usr/bin:${PATH}" PYTHONPATH="${testdir}/${py3_sitelib}" PY_IGNORE_IMPORTMISMATCH=1 \ PATH="${testdir}/usr/bin:${PATH}" PYTHONPATH="${testdir}/${py3_sitelib}" \
${make_check_pre} pytest3 ${testjobs} ${make_check_args} ${make_check_target} ${make_check_pre} pytest3 ${testjobs} ${make_check_args} ${make_check_target}
} }

View file

@ -4,22 +4,17 @@
do_configure() { do_configure() {
local qmake local qmake
local qmake_args local qmake_args
local qt=${QT:-} local qt
local builddir="${wrksrc}/${build_wrksrc}" if [ -x "/usr/lib/qt5/bin/qmake" ]; then
cd ${builddir} qmake="/usr/lib/qt5/bin/qmake"
if [ "${QT}" ]; then
qt=${QT}
if [ ! -x "/usr/lib/${qt}/bin/qmake" ]; then
msg_error "${QT} is requested, but not found\n"
fi
elif [ -x "/usr/lib/qt5/bin/qmake" ]; then
qt="qt5" qt="qt5"
elif [ -x "/usr/lib/qt6/bin/qmake" ]; then elif [ -x "/usr/lib/qt6/bin/qmake" ]; then
qmake="/usr/lib/qt6/bin/qmake"
qt="qt6" qt="qt6"
else fi
if [ -z "${qmake}" ]; then
msg_error "${pkgver}: Could not find qmake - missing in hostmakedepends?\n" msg_error "${pkgver}: Could not find qmake - missing in hostmakedepends?\n"
fi fi
qmake="/usr/lib/${qt}/bin/qmake"
if [ "$CROSS_BUILD" ]; then if [ "$CROSS_BUILD" ]; then
case $XBPS_TARGET_MACHINE in case $XBPS_TARGET_MACHINE in
i686*) _qt_arch=i386;; i686*) _qt_arch=i386;;
@ -30,8 +25,8 @@ do_configure() {
ppc64*) _qt_arch=power64;; ppc64*) _qt_arch=power64;;
ppc*) _qt_arch=power;; ppc*) _qt_arch=power;;
esac esac
mkdir -p "${builddir}/.target-spec/linux-g++" mkdir -p "${wrksrc}/.target-spec/linux-g++"
cat > "${builddir}/.target-spec/linux-g++/qmake.conf" <<_EOF cat > "${wrksrc}/.target-spec/linux-g++/qmake.conf" <<_EOF
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental no_qt_rpath CONFIG += incremental no_qt_rpath
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
@ -59,10 +54,10 @@ QMAKE_CXXFLAGS = ${CXXFLAGS}
QMAKE_LFLAGS = ${LDFLAGS} QMAKE_LFLAGS = ${LDFLAGS}
load(qt_config) load(qt_config)
_EOF _EOF
echo "#include \"${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h\"" > "${builddir}/.target-spec/linux-g++/qplatformdefs.h" echo "#include \"${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h\"" > "${wrksrc}/.target-spec/linux-g++/qplatformdefs.h"
mkdir -p "${builddir}/.host-spec/linux-g++" mkdir -p "${wrksrc}/.host-spec/linux-g++"
cat > "${builddir}/.host-spec/linux-g++/qmake.conf" <<_EOF cat > "${wrksrc}/.host-spec/linux-g++/qmake.conf" <<_EOF
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental no_qt_rpath CONFIG += incremental no_qt_rpath
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
@ -89,8 +84,8 @@ QMAKE_CXXFLAGS = ${CXXFLAGS_host}
QMAKE_LFLAGS = ${LDFLAGS_host} QMAKE_LFLAGS = ${LDFLAGS_host}
load(qt_config) load(qt_config)
_EOF _EOF
echo '#include "/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h"' > "${builddir}/.host-spec/linux-g++/qplatformdefs.h" echo '#include "/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h"' > "${wrksrc}/.host-spec/linux-g++/qplatformdefs.h"
cat > "${builddir}/qt.conf" <<_EOF cat > "${wrksrc}/qt.conf" <<_EOF
[Paths] [Paths]
Sysroot=${XBPS_CROSS_BASE} Sysroot=${XBPS_CROSS_BASE}
Prefix=/usr Prefix=/usr
@ -113,10 +108,10 @@ HostData=/usr/lib/${qt}
HostBinaries=/usr/lib/${qt}/bin HostBinaries=/usr/lib/${qt}/bin
HostLibraries=/usr/lib HostLibraries=/usr/lib
HostLibraryExecutables=/usr/lib/${qt}/libexec HostLibraryExecutables=/usr/lib/${qt}/libexec
Spec=${builddir}/.host-spec/linux-g++ Spec=${wrksrc}/.host-spec/linux-g++
TargetSpec=${builddir}/.target-spec/linux-g++ TargetSpec=${wrksrc}/.target-spec/linux-g++
_EOF _EOF
qmake_args="-qtconf ${builddir}/qt.conf PKG_CONFIG_EXECUTABLE=${XBPS_WRAPPERDIR}/${PKG_CONFIG}" qmake_args="-qtconf ${wrksrc}/qt.conf PKG_CONFIG_EXECUTABLE=${XBPS_WRAPPERDIR}/${PKG_CONFIG}"
${qmake} ${qmake_args} \ ${qmake} ${qmake_args} \
PREFIX=/usr \ PREFIX=/usr \
QT_INSTALL_PREFIX=/usr \ QT_INSTALL_PREFIX=/usr \
@ -139,7 +134,6 @@ _EOF
} }
do_build() { do_build() {
cd "${wrksrc}/${build_wrksrc}"
: ${make_cmd:=make} : ${make_cmd:=make}
${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} \ ${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} \
@ -147,7 +141,6 @@ do_build() {
} }
do_install() { do_install() {
cd "${wrksrc}/${build_wrksrc}"
: ${make_cmd:=make} : ${make_cmd:=make}
: ${make_install_target:=install} : ${make_install_target:=install}

View file

@ -3,11 +3,14 @@ do_build() {
# Extract the source files # Extract the source files
mkdir -p "build/usr/share/texmf-dist" mkdir -p "build/usr/share/texmf-dist"
find . -maxdepth 1 -print -name "*.tar.xz" \ find . -maxdepth 1 -print -name "*.tar.xz" \
-exec bsdtar \ -exec bsdtar -C "build/usr/share/texmf-dist" -xf {} \;
-s '|^texmf-dist/||' \
-C "build/usr/share/texmf-dist" \
-xf {} \;
cd "build/usr/share/texmf-dist/" 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 # LICENSEs are unneeded
rm -f LICENSE* rm -f LICENSE*

View file

@ -134,7 +134,7 @@ _void_cross_build_bootstrap_gcc() {
--disable-libmudflap \ --disable-libmudflap \
--disable-libssp \ --disable-libssp \
--disable-libitm \ --disable-libitm \
--disable-libatomic --disable-autolink-libatomic \ --disable-libatomic \
--disable-gcov \ --disable-gcov \
--disable-threads \ --disable-threads \
--disable-sjlj-exceptions \ --disable-sjlj-exceptions \
@ -264,10 +264,9 @@ _void_cross_build_glibc() {
CC="${tgt}-gcc" CXX="${tgt}-g++" CPP="${tgt}-cpp" LD="${tgt}-ld" \ CC="${tgt}-gcc" CXX="${tgt}-g++" CPP="${tgt}-cpp" LD="${tgt}-ld" \
AR="${tgt}-ar" AS="${tgt}-as" NM="${tgt}-nm" \ AR="${tgt}-ar" AS="${tgt}-as" NM="${tgt}-nm" \
OBJDUMP="${tgt}-objdump" OBJCOPY="${tgt}-objcopy" \
CFLAGS="-pipe ${cross_glibc_cflags}" \ CFLAGS="-pipe ${cross_glibc_cflags}" \
CXXFLAGS="-pipe ${cross_glibc_cflags}" \ CXXFLAGS="-pipe ${cross_glibc_cflags}" \
CPPFLAGS="" \ CPPFLAGS="${cross_glibc_cflags}" \
LDFLAGS="${cross_glibc_ldflags}" \ LDFLAGS="${cross_glibc_ldflags}" \
../glibc-${ver}/configure \ ../glibc-${ver}/configure \
--prefix=/usr \ --prefix=/usr \
@ -378,10 +377,6 @@ _void_cross_build_gcc() {
msg_normal "Building gcc for ${tgt}\n" 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 mkdir -p ${wrksrc}/gcc_build
cd ${wrksrc}/gcc_build cd ${wrksrc}/gcc_build
@ -404,8 +399,13 @@ _void_cross_build_gcc() {
# note on --disable-libquadmath: # note on --disable-libquadmath:
# on some platforms the library is actually necessary for the # on some platforms the library is actually necessary for the
# fortran frontend to build, platforms where this is a problem # fortran frontend to build, but still disable it because it
# should explicitly force libquadmath to be on via cross_gcc_configure_args # 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 \ ../gcc-${ver}/configure \
--prefix=/usr \ --prefix=/usr \
@ -641,9 +641,12 @@ do_install() {
ln -sf libgnat-${gcc_major}.so ${DESTDIR}/${sysroot}/usr/lib/libgnat.so ln -sf libgnat-${gcc_major}.so ${DESTDIR}/${sysroot}/usr/lib/libgnat.so
rm -vf ${DESTDIR}/${adalib}/libgna{rl,t}.so rm -vf ${DESTDIR}/${adalib}/libgna{rl,t}.so
# Remove libgomp library because it conflicts with libgomp and # Remove unnecessary libatomic which is only built for gccgo
# libgomp-devel packages rm -rf ${DESTDIR}/${sysroot}/usr/lib/libatomic.*
rm -f ${DESTDIR}/${sysroot}/usr/lib/libgomp*
# 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 # Remove libdep linker plugin because it conflicts with system binutils
rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep* rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*

View file

@ -9,27 +9,12 @@ readonly EXTRA_ARGS="$4"
readonly CMD="$5" readonly CMD="$5"
shift 5 shift 5
msg_red() { if ! command -v xbps-uchroot >/dev/null 2>&1; then
# error messages in bold/red
[ -n "$NOCOLORS" ] || printf >&2 "\033[1m\033[31m"
printf "=> ERROR: %s\\n" "$@" >&2
[ -n "$NOCOLORS" ] || printf >&2 "\033[m"
}
readonly XBPS_UCHROOT_CMD="$(command -v xbps-uchroot 2>/dev/null)"
if [ -z "$XBPS_UCHROOT_CMD" ]; then
msg_red "could not find xbps-uchroot"
exit 1 exit 1
fi fi
if ! [ -x "$XBPS_UCHROOT_CMD" ]; then if [ -z "$MASTERDIR" -o -z "$DISTDIR" ]; then
msg_red "xbps-uchroot is not executable. Are you in the $(stat -c %G "$XBPS_UCHROOT_CMD") group?" echo "$0 MASTERDIR/DISTDIR not set"
exit 1
fi
if [ -z "$MASTERDIR" ] || [ -z "$DISTDIR" ]; then
msg_red "$0: MASTERDIR/DISTDIR not set"
exit 1 exit 1
fi fi

View file

@ -1,35 +0,0 @@
# syntax=docker/dockerfile:1
FROM --platform=${BUILDPLATFORM} alpine:3.18 AS bootstrap
ARG TARGETPLATFORM
ARG MIRROR=https://repo-ci.voidlinux.org
ARG LIBC
RUN apk add ca-certificates curl && \
curl "${MIRROR}/static/xbps-static-static-0.59_5.$(uname -m)-musl.tar.xz" | tar vJx
COPY common/repo-keys/* /target/var/db/xbps/keys/
COPY common/container/setup.sh /bootstrap/setup.sh
RUN --mount=type=cache,sharing=locked,target=/target/var/cache/xbps,id=repocache-${LIBC} \
. /bootstrap/setup.sh; \
XBPS_TARGET_ARCH=${ARCH} xbps-install -S \
-R "${REPO}" -R "${REPO}/bootstrap" \
-r /target
FROM --platform=${BUILDPLATFORM} bootstrap AS install
ARG TARGETPLATFORM
ARG MIRROR
ARG LIBC
COPY --from=bootstrap /target /target
COPY common/container/noextract.conf /target/etc/xbps.d/noextract.conf
RUN --mount=type=cache,sharing=locked,target=/target/var/cache/xbps,id=repocache-${LIBC} \
. /bootstrap/setup.sh; \
XBPS_TARGET_ARCH=${ARCH} xbps-install -y \
-R "${REPO}" -R "${REPO}/bootstrap" \
-r /target \
base-chroot void-repo-bootstrap
FROM scratch AS image
COPY --link --from=install /target /
RUN \
install -dm1777 tmp; \
xbps-reconfigure -fa; \
rm -rf /var/cache/xbps/*
CMD ["/bin/sh"]

View file

@ -1,9 +0,0 @@
## void-packages buildroot containers
These containers are used for CI and should contain everything needed to run xbps-src.
### Updating
To build a new version, kick off a CI run by pushing something to `common/container/` on `master` or using the `Run workflow` button [here](https://github.com/void-linux/void-packages/actions/workflows/container.yaml).
Once this is built, update the version where it is used in `.github/workflows/` (typically in the value of a `container.image` key) to the newly-built tag.

View file

@ -1,29 +0,0 @@
variable "MIRROR" {
default = "https://repo-ci.voidlinux.org/"
}
target "docker-metadata-action" {}
target "_common" {
inherits = ["docker-metadata-action"]
dockerfile = "common/container/Containerfile"
no-cache-filter = ["bootstrap"]
cache-to = ["type=local,dest=/tmp/buildx-cache"]
cache-from = ["type=local,src=/tmp/buildx-cache"]
target = "image"
args = {
"MIRROR" = "${MIRROR}"
}
}
target "void-buildroot-glibc" {
inherits = ["_common"]
platforms = ["linux/amd64", "linux/386", "linux/arm64", "linux/arm/v7", "linux/arm/v6"]
args = { "LIBC" = "glibc" }
}
target "void-buildroot-musl" {
inherits = ["_common"]
platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/arm/v6"]
args = { "LIBC" = "musl" }
}

View file

@ -1,14 +0,0 @@
noextract=/etc/sv*
noextract=/usr/share/man*
noextract=/usr/lib/dracut*
noextract=/etc/hosts
noextract=/etc/mtab
noextract=/etc/skel*
noextract=/usr/lib/modprobe.d*
noextract=/usr/lib/sysctl.d*
noextract=/usr/lib/udev*
noextract=/usr/share/bash-completion*
noextract=/usr/share/fish/vendor-completions.d*
noextract=/usr/share/zsh/site-functions*
noextract=/usr/share/info*
noextract=/usr/share/locale*

View file

@ -1,29 +0,0 @@
#!/bin/sh
: "${MIRROR:=https://repo-default.voidlinux.org/}"
suffix() {
case "${LIBC:?}" in
musl) echo "-musl" ;;
esac
}
repo() {
case "${ARCH:?}" in
aarch64*) echo "${MIRROR}/current/aarch64" ;;
*-musl) echo "${MIRROR}/current/musl" ;;
*) echo "${MIRROR}/current" ;;
esac
}
case "${TARGETPLATFORM:?}" in
linux/arm/v6) ARCH="armv6l$(suffix)" ;;
linux/arm/v7) ARCH="armv7l$(suffix)" ;;
linux/arm64) ARCH="aarch64$(suffix)" ;;
linux/amd64) ARCH="x86_64$(suffix)" ;;
linux/386) ARCH="i686$(suffix)" ;;
esac
REPO="$(repo)"
export ARCH REPO

View file

@ -1,12 +0,0 @@
# Cross build profile for riscv64 and Musl libc.
XBPS_TARGET_MACHINE="riscv64-musl"
XBPS_TARGET_QEMU_MACHINE="riscv64"
XBPS_CROSS_TRIPLET="riscv64-linux-musl"
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-musl"
XBPS_CROSS_ZIG_TARGET="riscv64-linux-musl"
XBPS_CROSS_ZIG_CPU="baseline"

View file

@ -1,12 +0,0 @@
# 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"

View file

@ -8,4 +8,6 @@ if [ "$CROSS_BUILD" ]; then
makedepends+=" rust-std" makedepends+=" rust-std"
fi fi
export CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
build_helper+=" rust" build_helper+=" rust"

View file

@ -1,6 +1,6 @@
if [ "$CHROOT_READY" ]; then if [ "$CHROOT_READY" ]; then
if [ "$pkgname" != cmake-bootstrap ]; then if [ "$pkgname" != cmake ]; then
hostmakedepends+=" cmake-bootstrap" hostmakedepends+=" cmake"
fi fi
if [ "${make_cmd:-ninja}" = ninja ]; then if [ "${make_cmd:-ninja}" = ninja ]; then
hostmakedepends+=" ninja" hostmakedepends+=" ninja"
@ -8,4 +8,3 @@ if [ "$CHROOT_READY" ]; then
fi fi
export CTEST_OUTPUT_ON_FAILURE=TRUE export CTEST_OUTPUT_ON_FAILURE=TRUE
PATH="$PATH:/usr/libexec/xbps-src/bin"

View file

@ -1,7 +1,7 @@
if [ -z "$hostmakedepends" -o "${hostmakedepends##*gcc-go-tools*}" ]; then if [ -z "$hostmakedepends" -o "${hostmakedepends##*gcc-go-tools*}" ]; then
# gc compiler # gc compiler
if [ -z "$archs" ]; then if [ -z "$archs" ]; then
archs="aarch64* armv[567]* i686* x86_64* ppc64le* riscv64*" archs="aarch64* armv[567]* i686* x86_64* ppc64le*"
fi fi
hostmakedepends+=" go" hostmakedepends+=" go"
nopie=yes nopie=yes
@ -9,7 +9,7 @@ else
# gccgo compiler # gccgo compiler
if [ -z "$archs" ]; then if [ -z "$archs" ]; then
# we have support for these in our gcc # we have support for these in our gcc
archs="aarch64* armv[567]* i686* x86_64* ppc64* riscv64*" archs="aarch64* armv[567]* i686* x86_64* ppc64*"
fi fi
if [ "$CROSS_BUILD" ]; then if [ "$CROSS_BUILD" ]; then
# target compiler to use; otherwise it'll just call gccgo # target compiler to use; otherwise it'll just call gccgo
@ -29,7 +29,6 @@ case "$XBPS_TARGET_MACHINE" in
ppc*) export GOARCH=ppc;; ppc*) export GOARCH=ppc;;
mipsel*) export GOARCH=mipsle;; mipsel*) export GOARCH=mipsle;;
mips*) export GOARCH=mips;; mips*) export GOARCH=mips;;
riscv64*) export GOARCH=riscv64;;
esac esac
export GOPATH="${wrksrc}/_build-${pkgname}-xbps" export GOPATH="${wrksrc}/_build-${pkgname}-xbps"
@ -40,10 +39,6 @@ export CGO_CXXFLAGS="$CXXFLAGS"
export CGO_LDFLAGS="$LDFLAGS" export CGO_LDFLAGS="$LDFLAGS"
export CGO_ENABLED="${CGO_ENABLED:-1}" export CGO_ENABLED="${CGO_ENABLED:-1}"
export GO111MODULE=auto export GO111MODULE=auto
export GOTOOLCHAIN="${GOTOOLCHAIN:-local}"
export GOPROXY="https://proxy.golang.org,direct"
export GOSUMDB="sum.golang.org"
case "$XBPS_TARGET_MACHINE" in case "$XBPS_TARGET_MACHINE" in
*-musl) export GOCACHE="${XBPS_HOSTDIR}/gocache-muslc" ;; *-musl) export GOCACHE="${XBPS_HOSTDIR}/gocache-muslc" ;;
*) export GOCACHE="${XBPS_HOSTDIR}/gocache-glibc" ;; *) export GOCACHE="${XBPS_HOSTDIR}/gocache-glibc" ;;

View file

@ -1,2 +1 @@
hostmakedepends+=" meson" hostmakedepends+=" meson"
build_helper+=" meson"

View file

@ -0,0 +1,2 @@
lib32disabled=yes
makedepends+=" python python3"

View file

@ -1,2 +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 isn't needed for everything either
python_version=3 python_version=3

View file

@ -26,7 +26,6 @@ scripts/attachfile2/pdfatfi.pl texlive
scripts/authorindex/authorindex texlive scripts/authorindex/authorindex texlive
scripts/bib2gls/bib2gls.sh texlive scripts/bib2gls/bib2gls.sh texlive
scripts/bib2gls/convertgls2bib.sh texlive scripts/bib2gls/convertgls2bib.sh texlive
scripts/bibcop/bibcop.pl texlive
scripts/bibexport/bibexport.sh texlive scripts/bibexport/bibexport.sh texlive
scripts/bundledoc/arlatex texlive scripts/bundledoc/arlatex texlive
scripts/bundledoc/bundledoc texlive scripts/bundledoc/bundledoc texlive
@ -34,11 +33,17 @@ scripts/cachepic/cachepic.tlu texlive-pictures
scripts/checkcites/checkcites.lua texlive scripts/checkcites/checkcites.lua texlive
scripts/checklistings/checklistings.sh texlive scripts/checklistings/checklistings.sh texlive
scripts/chklref/chklref.pl texlive scripts/chklref/chklref.pl texlive
scripts/citation-style-language/citeproc-lua.lua texlive
scripts/cjk-gs-integrate/cjk-gs-integrate.pl texlive scripts/cjk-gs-integrate/cjk-gs-integrate.pl texlive
scripts/clojure-pamphlet/pamphletangler texlive scripts/clojure-pamphlet/pamphletangler texlive
scripts/cluttex/cluttex.lua texlive scripts/cluttex/cluttex.lua texlive
scripts/context/perl/mptopdf.pl 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/convbkmk/convbkmk.rb texlive-langjapanese
scripts/crossrefware/bbl2bib.pl texlive scripts/crossrefware/bbl2bib.pl texlive
scripts/crossrefware/bibdoiadd.pl texlive scripts/crossrefware/bibdoiadd.pl texlive
@ -52,7 +57,6 @@ scripts/ctan-o-mat/ctan-o-mat.pl texlive
scripts/ctanupload/ctanupload.pl texlive scripts/ctanupload/ctanupload.pl texlive
scripts/de-macro/de-macro texlive scripts/de-macro/de-macro texlive
scripts/diadia/diadia.lua texlive-humanities scripts/diadia/diadia.lua texlive-humanities
scripts/digestif/digestif.texlua texlive
scripts/dosepsbin/dosepsbin.pl texlive scripts/dosepsbin/dosepsbin.pl texlive
scripts/dtxgen/dtxgen texlive scripts/dtxgen/dtxgen texlive
scripts/dviasm/dviasm.py texlive scripts/dviasm/dviasm.py texlive
@ -98,7 +102,6 @@ scripts/listbib/listbib texlive
scripts/listings-ext/listings-ext.sh texlive scripts/listings-ext/listings-ext.sh texlive
scripts/ltxfileinfo/ltxfileinfo texlive scripts/ltxfileinfo/ltxfileinfo texlive
scripts/ltximg/ltximg.pl texlive scripts/ltximg/ltximg.pl texlive
scripts/luafindfont/luafindfont.lua texlive
scripts/luaotfload/luaotfload-tool.lua texlive scripts/luaotfload/luaotfload-tool.lua texlive
scripts/lwarp/lwarpmk.lua texlive scripts/lwarp/lwarpmk.lua texlive
scripts/make4ht/make4ht texlive scripts/make4ht/make4ht texlive
@ -113,9 +116,6 @@ scripts/m-tx/m-tx.lua texlive-music
scripts/multibibliography/multibibliography.pl texlive scripts/multibibliography/multibibliography.pl texlive
scripts/musixtex/musixflx.lua texlive-music scripts/musixtex/musixflx.lua texlive-music
scripts/musixtex/musixtex.lua texlive-music scripts/musixtex/musixtex.lua texlive-music
scripts/optexcount/optexcount texlive
scripts/pagelayout/pagelayoutapi texlive
scripts/pagelayout/textestvis texlive
scripts/pax/pdfannotextractor.pl texlive scripts/pax/pdfannotextractor.pl texlive
scripts/pdfbook2/pdfbook2 texlive scripts/pdfbook2/pdfbook2 texlive
scripts/pdfcrop/pdfcrop.pl texlive scripts/pdfcrop/pdfcrop.pl texlive
@ -155,7 +155,6 @@ scripts/srcredact/srcredact.pl texlive
scripts/sty2dtx/sty2dtx.pl texlive scripts/sty2dtx/sty2dtx.pl texlive
scripts/svn-multi/svn-multi.pl texlive scripts/svn-multi/svn-multi.pl texlive
scripts/tex4ebook/tex4ebook texlive scripts/tex4ebook/tex4ebook texlive
scripts/texaccents/texaccents.sno texlive
scripts/texcount/texcount.pl texlive scripts/texcount/texcount.pl texlive
scripts/texdef/texdef.pl texlive scripts/texdef/texdef.pl texlive
scripts/texdiff/texdiff texlive scripts/texdiff/texdiff texlive
@ -179,8 +178,6 @@ scripts/texlive-extra/texconfig-dialog.sh texlive
scripts/texlive-extra/texconfig.sh texlive scripts/texlive-extra/texconfig.sh texlive
scripts/texlive-extra/texconfig-sys.sh texlive scripts/texlive-extra/texconfig-sys.sh texlive
scripts/texlive-extra/texlinks.sh texlive scripts/texlive-extra/texlinks.sh texlive
scripts/texlive-extra/xelatex-unsafe.sh texlive
scripts/texlive-extra/xetex-unsafe.sh texlive
scripts/texlive/fmtutil.pl texlive scripts/texlive/fmtutil.pl texlive
scripts/texlive/fmtutil-sys.sh texlive scripts/texlive/fmtutil-sys.sh texlive
scripts/texlive/fmtutil-user.sh texlive scripts/texlive/fmtutil-user.sh texlive
@ -188,15 +185,13 @@ scripts/texlive/mktexlsr texlive
scripts/texlive/mktexmf texlive scripts/texlive/mktexmf texlive
scripts/texlive/mktexpk texlive scripts/texlive/mktexpk texlive
scripts/texlive/mktextfm texlive scripts/texlive/mktextfm texlive
scripts/texlive/rungs.lua texlive
scripts/texliveonfly/texliveonfly.py texlive scripts/texliveonfly/texliveonfly.py texlive
scripts/texlive/rungs.tlu texlive
scripts/texlive/tlmgr.pl texlive scripts/texlive/tlmgr.pl texlive
scripts/texlive/updmap.pl texlive scripts/texlive/updmap.pl texlive
scripts/texlive/updmap-sys.sh texlive scripts/texlive/updmap-sys.sh texlive
scripts/texlive/updmap-user.sh texlive scripts/texlive/updmap-user.sh texlive
scripts/texloganalyser/texloganalyser texlive scripts/texloganalyser/texloganalyser texlive
scripts/texlogfilter/texlogfilter texlive
scripts/texlogsieve/texlogsieve texlive
scripts/texosquery/texosquery-jre5.sh texlive scripts/texosquery/texosquery-jre5.sh texlive
scripts/texosquery/texosquery-jre8.sh texlive scripts/texosquery/texosquery-jre8.sh texlive
scripts/texosquery/texosquery.sh texlive scripts/texosquery/texosquery.sh texlive

View file

@ -1,148 +0,0 @@
## # 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
c_cv_sizeof_int=${ac_cv_sizeof_int=4}
ac_cv_sizeof_long=${ac_cv_sizeof_long=8}
ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8}
ac_cv_sizeof_long_int=${ac_cv_sizeof_long_int=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_long=${ac_cv_sizeof_long_long=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 */'

View file

@ -123,10 +123,6 @@ case "$XBPS_TARGET_MACHINE" in
. ${_AUTOCONFCACHEDIR}/powerpc-linux . ${_AUTOCONFCACHEDIR}/powerpc-linux
. ${_AUTOCONFCACHEDIR}/powerpc32-linux . ${_AUTOCONFCACHEDIR}/powerpc32-linux
;; ;;
riscv*)
. ${_AUTOCONFCACHEDIR}/endian-little
. ${_AUTOCONFCACHEDIR}/riscv64-linux
;;
*) ;; *) ;;
esac esac

View file

@ -24,7 +24,7 @@ if [ -z "$nopie" ]; then
fi fi
else else
CFLAGS="-fno-PIE ${CFLAGS}" CFLAGS="-fno-PIE ${CFLAGS}"
CXXFLAGS="-fno-PIE ${CXXFLAGS}" CXXFLAGS="-fno-PIE ${CFLAGS}"
FFLAGS="-fno-PIE ${FFLAGS}" FFLAGS="-fno-PIE ${FFLAGS}"
LDFLAGS="-no-pie ${LDFLAGS}" LDFLAGS="-no-pie ${LDFLAGS}"
fi fi

View file

@ -1,182 +0,0 @@
vextract() {
local sc=--strip-components=1
local dst=
while [ "$#" -ne 1 ]; do
case "$1" in
-C)
if [ -z "$2" ]; then
msg_error "$pkgver: vextract -C <directory>.\n"
fi
dst="$2"
mkdir -p "$dst"
shift 2
;;
--no-strip-components)
sc=
shift
;;
--strip-components=*)
sc="$1"
shift
;;
--)
shift; break ;;
*)
break ;;
esac
done
local TAR_CMD="${tar_cmd}"
local sfx
local archive="$1"
local ret=0
[ -z "$TAR_CMD" ] && TAR_CMD="$(command -v bsdtar)"
[ -z "$TAR_CMD" ] && TAR_CMD="$(command -v tar)"
[ -z "$TAR_CMD" ] && msg_error "xbps-src: no suitable tar cmd (bsdtar, tar)\n"
case "$archive" in
*.tar.lzma) sfx="txz";;
*.tar.lz) sfx="tlz";;
*.tlz) sfx="tlz";;
*.tar.xz) sfx="txz";;
*.txz) sfx="txz";;
*.tar.bz2) sfx="tbz";;
*.tbz) sfx="tbz";;
*.tar.gz) sfx="tgz";;
*.tgz) sfx="tgz";;
*.tar.zst) sfx="tzst";;
*.tzst) sfx="tzst";;
*.gz) sfx="gz";;
*.xz) sfx="xz";;
*.bz2) sfx="bz2";;
*.zst) sfx="zst";;
*.tar) sfx="tar";;
*.zip) sfx="zip";;
*.rpm) sfx="rpm";;
*.deb) sfx="deb";;
*.patch) sfx="txt";;
*.diff) sfx="txt";;
*.txt) sfx="txt";;
*.sh) sfx="txt";;
*.7z) sfx="7z";;
*.gem) sfx="gem";;
*.crate) sfx="crate";;
*) msg_error "$pkgver: unknown distfile suffix for $archive.\n";;
esac
case ${sfx} in
tar|txz|tbz|tlz|tgz|tzst|crate)
$TAR_CMD ${sc:+"$sc"} ${dst:+-C "$dst"} -x \
--no-same-permissions --no-same-owner \
-f $archive
;;
gz|bz2|xz|zst)
cp -f $archive "${dst:-.}"
(
if [ "$dst" ]; then cd "$dst"; fi
case ${sfx} in
gz)
gunzip -f ${archive##*/}
;;
bz2)
bunzip2 -f ${archive##*/}
;;
xz)
unxz -f ${archive##*/}
;;
zst)
unzstd ${archive##*/}
;;
esac
)
;;
zip)
if command -v unzip &>/dev/null; then
unzip -o -q $archive ${dst:+-d "$dst"}
elif command -v bsdtar &>/dev/null; then
bsdtar ${sc:+"$sc"} ${dst:+-C "$dst"} -xf $archive
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 ${sc:+"$sc"} ${dst:+-C "$dst"} -x \
--no-same-permissions --no-same-owner -f $archive
;;
deb)
if command -v bsdtar &>/dev/null; then
bsdtar -x -O -f "$archive" "data.tar.*" |
bsdtar ${sc:+"$sc"} ${dst:+-C "$dst"} -x \
--no-same-permissions --no-same-owner -f -
else
msg_error "$pkgver: cannot find bsdtar for extraction.\n"
fi
;;
txt)
cp -f $archive "$dst"
;;
7z)
if command -v 7z &>/dev/null; then
7z x $archive -o"$dst"
elif command -v bsdtar &>/dev/null; then
bsdtar ${sc:+"$sc"} ${dst:+-C "$dst"} -xf $archive
else
msg_error "$pkgver: cannot find 7z or bsdtar bin for extraction.\n"
fi
;;
gem)
$TAR_CMD -xOf $archive data.tar.gz |
$TAR_CMD ${sc:+"$sc"} ${dst:+-C "$dst"} -xz -f -
;;
*)
msg_error "$pkgver: cannot guess $archive extract suffix. ($sfx)\n"
;;
esac
if [ "$?" -ne 0 ]; then
msg_error "$pkgver: extracting $archive.\n"
fi
}
vsrcextract() {
local sc=--strip-components=1
local dst=
while [ "$#" -ge 1 ]; do
case "$1" in
-C)
if [ -z "$2" ]; then
msg_error "$pkgver: vsrcextract -C <directory>.\n"
fi
dst="$2"
shift 2
;;
--no-strip-components|--strip-components=*)
sc="$1"
shift
;;
*)
break ;;
esac
done
vextract "$sc" ${dst:+-C "$dst"} \
"${XBPS_SRCDISTDIR}/${pkgname}-${version}/$1"
}
vtar() {
bsdtar "$@"
}
vsrccopy() {
local _tgt
if [ $# -lt 2 ]; then
msg_error "vsrccopy <file>... <target>"
fi
_tgt="${@: -1}"
mkdir -p "$_tgt"
while [ $# -gt 1 ]; do
cp -a "${XBPS_SRCDISTDIR}/${pkgname}-${version}/$1" "$_tgt"
shift
done
}

View file

@ -15,10 +15,10 @@ elif [ -z "${SOURCE_DATE_EPOCH}" ]; then
fi fi
# check if the template is under version control: # check if the template is under version control:
if [ -n "$basepkg" -a -z "$($XBPS_GIT_CMD -C ${XBPS_SRCPKGDIR}/${basepkg} ls-files template)" ]; then if [ -n "$basepkg" -a -z "$($XBPS_GIT_CMD -C ${XBPS_SRCPKGDIR}/${basepkg} ls-files template)" ]; then
export SOURCE_DATE_EPOCH="$(stat_mtime ${XBPS_SRCPKGDIR}/${basepkg}/template)" export SOURCE_DATE_EPOCH="$(stat -c %Y ${XBPS_SRCPKGDIR}/${basepkg}/template)"
else else
export SOURCE_DATE_EPOCH=$($XBPS_GIT_CMD -C ${XBPS_DISTDIR} cat-file commit HEAD | 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;}') sed -n '/^committer /{s/.*> \([0-9][0-9]*\) [-+][0-9].*/\1/p;q}')
fi fi
fi fi

View file

@ -9,13 +9,11 @@ unalias -a
# disable wildcards helper # disable wildcards helper
_noglob_helper() { _noglob_helper() {
set +f set +f
IFS= "$@" "$@"
} }
# Apply _noglob to v* commands # Apply _noglob to v* commands
for cmd in vinstall vcopy vcompletion vmove vmkdir vbin vman vdoc vconf vsconf vlicense vsv; do for cmd in vinstall vcopy vcompletion vmove vmkdir vbin vman vdoc vconf vsconf vlicense vsv; do
# intentionally expanded when defined
# shellcheck disable=SC2139
alias ${cmd}="set -f; _noglob_helper _${cmd}" alias ${cmd}="set -f; _noglob_helper _${cmd}"
done done
@ -26,8 +24,6 @@ _vsv() {
local svdir="${PKGDESTDIR}/etc/sv/${service}" local svdir="${PKGDESTDIR}/etc/sv/${service}"
if [ $# -lt 1 ] || [ $# -gt 2 ]; then if [ $# -lt 1 ] || [ $# -gt 2 ]; then
# pkgver is defined in common/xbps-src/shutils/commmon.sh
# shellcheck disable=SC2154
msg_red "$pkgver: vsv: up to 2 arguments expected: <service> [<log facility>]\n" msg_red "$pkgver: vsv: up to 2 arguments expected: <service> [<log facility>]\n"
return 1 return 1
fi fi
@ -38,26 +34,26 @@ _vsv() {
vmkdir etc/sv vmkdir etc/sv
vcopy "${FILESDIR}/$service" etc/sv vcopy "${FILESDIR}/$service" etc/sv
if [ ! -L "$svdir/run" ]; then 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" 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" chmod 755 $svdir/run
fi fi
if [ -e "$svdir/finish" ] && [ ! -L "$svdir/finish" ]; then if [ -e $svdir/finish ] && [ ! -L $svdir/finish ]; then
chmod 755 "$svdir/finish" chmod 755 $svdir/finish
fi fi
ln ${LN_OPTS} "/run/runit/supervise.${service}" "$svdir/supervise" ln ${LN_OPTS} /run/runit/supervise.${service} $svdir/supervise
if [ -d "$svdir/log" ] || [ -L "$svdir/log" ]; then if [ -d $svdir/log ] || [ -L $svdir/log ]; then
msg_warn "$pkgver: vsv: overriding default log service\n" msg_warn "$pkgver: vsv: overriding default log service\n"
else else
mkdir "$svdir/log" mkdir $svdir/log
cat <<-EOF > "$svdir/log/run" cat <<-EOF > $svdir/log/run
#!/bin/sh #!/bin/sh
exec vlogger -t $service -p $facility exec vlogger -t $service -p $facility
EOF EOF
fi fi
ln ${LN_OPTS} "/run/runit/supervise.${service}-log" "$svdir/log/supervise" ln ${LN_OPTS} /run/runit/supervise.${service}-log $svdir/log/supervise
if [ -e "$svdir/log/run" ] && [ ! -L "$svdir/log/run" ]; then if [ -e $svdir/log/run ] && [ ! -L $svdir/log/run ]; then
chmod 755 "${PKGDESTDIR}/etc/sv/${service}/log/run" chmod 755 ${PKGDESTDIR}/etc/sv/${service}/log/run
fi fi
} }
@ -124,8 +120,6 @@ _vdoc() {
return 1 return 1
fi fi
# pkgname is defined in the package
# shellcheck disable=SC2154
vinstall "$file" 644 "usr/share/doc/${pkgname}" "$targetfile" vinstall "$file" 644 "usr/share/doc/${pkgname}" "$targetfile"
} }
@ -181,9 +175,9 @@ _vinstall() {
fi fi
if [ -z "$targetfile" ]; then if [ -z "$targetfile" ]; then
install -Dm"${mode}" "${file}" "${PKGDESTDIR}/${targetdir}/${file##*/}" install -Dm${mode} "${file}" "${PKGDESTDIR}/${targetdir}/${file##*/}"
else else
install -Dm"${mode}" "${file}" "${PKGDESTDIR}/${targetdir}/${targetfile##*/}" install -Dm${mode} "${file}" "${PKGDESTDIR}/${targetdir}/${targetfile##*/}"
fi fi
} }
@ -199,9 +193,7 @@ _vcopy() {
return 1 return 1
fi fi
# intentionally unquoted for globbing cp -a $files ${PKGDESTDIR}/${targetdir}
# shellcheck disable=SC2086
cp -a $files "${PKGDESTDIR}/${targetdir}"
} }
_vmove() { _vmove() {
@ -227,17 +219,13 @@ _vmove() {
done done
if [ -z "${_targetdir}" ]; then if [ -z "${_targetdir}" ]; then
[ ! -d "${PKGDESTDIR}" ] && install -d "${PKGDESTDIR}" [ ! -d ${PKGDESTDIR} ] && install -d ${PKGDESTDIR}
# intentionally unquoted for globbing mv ${DESTDIR}/$files ${PKGDESTDIR}
# shellcheck disable=SC2086
mv "${DESTDIR}"/$files "${PKGDESTDIR}"
else else
if [ ! -d "${PKGDESTDIR}/${_targetdir}" ]; then if [ ! -d ${PKGDESTDIR}/${_targetdir} ]; then
install -d "${PKGDESTDIR}/${_targetdir}" install -d ${PKGDESTDIR}/${_targetdir}
fi fi
# intentionally unquoted for globbing mv ${DESTDIR}/$files ${PKGDESTDIR}/${_targetdir}
# shellcheck disable=SC2086
mv "${DESTDIR}"/$files "${PKGDESTDIR}/${_targetdir}"
fi fi
} }
@ -255,9 +243,9 @@ _vmkdir() {
fi fi
if [ -z "$mode" ]; then if [ -z "$mode" ]; then
install -d "${PKGDESTDIR}/${dir}" install -d ${PKGDESTDIR}/${dir}
else else
install -dm"${mode}" "${PKGDESTDIR}/${dir}" install -dm${mode} ${PKGDESTDIR}/${dir}
fi fi
} }

View file

@ -36,11 +36,3 @@ vopt_bool() {
fi fi
vopt_if "$1" "-D${prop}=true" "-D${prop}=false" 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"
}

View file

@ -7,7 +7,7 @@ py2_lib="usr/lib/python${py2_ver}"
py2_sitelib="${py2_lib}/site-packages" py2_sitelib="${py2_lib}/site-packages"
py2_inc="usr/include/python${py2_ver}" py2_inc="usr/include/python${py2_ver}"
py3_ver="3.12" py3_ver="3.11"
py3_abiver="" py3_abiver=""
py3_lib="usr/lib/python${py3_ver}" py3_lib="usr/lib/python${py3_ver}"
py3_sitelib="${py3_lib}/site-packages" py3_sitelib="${py3_lib}/site-packages"

View file

@ -5,13 +5,7 @@
for var in $(awk 'BEGIN{for (i in ENVIRON) {print i}}' </dev/null); do for var in $(awk 'BEGIN{for (i in ENVIRON) {print i}}' </dev/null); do
# Those variables in chroot.sh will be kept # Those variables in chroot.sh will be kept
case "$var" in case "$var" in
BASH_FUNC_*'%%') XBPS_* | IN_CHROOT | CHROOT_READY | SOURCE_DATE_EPOCH)
# bash exported functions
var="${var%??}"
var="${var#BASH_FUNC_}"
unset -f "$var"
;;
XBPS_* | IN_CHROOT | CHROOT_READY | SOURCE_DATE_EPOCH | NOCOLORS)
# xbps-src specific # xbps-src specific
;; ;;
SOURCEFORGE_SITE | NONGNU_SITE | XORG_SITE | DEBIAN_SITE | GNOME_SITE) SOURCEFORGE_SITE | NONGNU_SITE | XORG_SITE | DEBIAN_SITE | GNOME_SITE)

View file

@ -45,7 +45,128 @@ hook() {
unset found unset found
continue continue
fi fi
vsrcextract --no-strip-components -C "$extractdir" "$curfile"
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";;
*.tar.zst) cursufx="tzst";;
*.tzst) cursufx="tzst";;
*.gz) cursufx="gz";;
*.xz) cursufx="xz";;
*.bz2) cursufx="bz2";;
*.zst) cursufx="zst";;
*.tar) cursufx="tar";;
*.zip) cursufx="zip";;
*.rpm) cursufx="rpm";;
*.deb) cursufx="deb";;
*.patch) cursufx="txt";;
*.diff) cursufx="txt";;
*.txt) cursufx="txt";;
*.sh) 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|tzst|crate)
$TAR_CMD -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
;;
gz|bz2|xz|zst)
cp -f $srcdir/$curfile "$extractdir"
cd "$extractdir"
case ${cursufx} in
gz)
gunzip -f $curfile
;;
bz2)
bunzip2 -f $curfile
;;
xz)
unxz -f $curfile
;;
zst)
unzstd $curfile
;;
esac
;;
zip)
if command -v unzip &>/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 done
cd "$extractdir" cd "$extractdir"

View file

@ -253,7 +253,7 @@ hook() {
if [[ $cksum = $filesum ]]; then if [[ $cksum = $filesum ]]; then
dfgood=$((dfgood + 1)) dfgood=$((dfgood + 1))
else else
inode=$(stat_inode "$distfile") inode=$(stat "$distfile" --printf "%i")
msg_warn "$pkgver: wrong checksum found for ${curfile} - purging\n" msg_warn "$pkgver: wrong checksum found for ${curfile} - purging\n"
find ${XBPS_SRCDISTDIR} -inum ${inode} -delete -print find ${XBPS_SRCDISTDIR} -inum ${inode} -delete -print
fi fi

View file

@ -15,7 +15,8 @@ hook() {
rm -f ${PKGDESTDIR}/usr/share/info/dir rm -f ${PKGDESTDIR}/usr/share/info/dir
fi fi
find ${PKGDESTDIR}/usr/share/info -type f -follow | while read -r f; do find ${PKGDESTDIR}/usr/share/info -type f -follow | while read f
do
j=$(echo "$f"|sed -e "$fpattern") j=$(echo "$f"|sed -e "$fpattern")
[ "$j" = "" ] && continue [ "$j" = "" ] && continue
[ "$j" = "/usr/share/info/dir" ] && continue [ "$j" = "/usr/share/info/dir" ] && continue

View file

@ -9,7 +9,8 @@ hook() {
fi fi
# rewrite symlinks # rewrite symlinks
find $mandir -type l -regex '.*\.\(gz\|bz2\)' | while read -r f; do find $mandir -type l -regex '.*\.\(gz\|bz2\)' | while read f
do
lnkat=$(readlink "$f") lnkat=$(readlink "$f")
ln -s ${lnkat%.*} ${f%.*} ln -s ${lnkat%.*} ${f%.*}
rm $f rm $f

View file

@ -2,7 +2,7 @@
hook() { hook() {
if [ -d "${PKGDESTDIR}" ]; then if [ -d "${PKGDESTDIR}" ]; then
find "${PKGDESTDIR}" -mindepth 1 -type d -empty -print -delete|sort -r|while read -r f; do find "${PKGDESTDIR}" -mindepth 1 -type d -empty -print -delete|sort -r|while read f; do
_dir="${f##${PKGDESTDIR}}" _dir="${f##${PKGDESTDIR}}"
msg_warn "$pkgver: removed empty dir: ${_dir}\n" msg_warn "$pkgver: removed empty dir: ${_dir}\n"
done done

View file

@ -119,16 +119,10 @@ _EOF
# #
# Handle binfmts trigger # Handle binfmts trigger
# #
if [ -n "${binfmts}" ] || [ -d "${PKGDESTDIR}/usr/share/binfmts" ]; then
_add_trigger binfmts
fi
if [ -n "${binfmts}" ]; then if [ -n "${binfmts}" ]; then
_add_trigger binfmts
echo "export binfmts=\"${binfmts}\"" >> $tmpf echo "export binfmts=\"${binfmts}\"" >> $tmpf
fi fi
if [ -d "${PKGDESTDIR}/usr/share/binfmts" ]; then
_import_binfmts="$(find "${PKGDESTDIR}/usr/share/binfmts" -type f -printf '%f\n')"
echo "export import_binfmts=\"${_import_binfmts}\"" >> $tmpf
fi
# #
# Handle GNU Info files. # Handle GNU Info files.
# #
@ -278,7 +272,7 @@ _EOF
fi fi
fi fi
if [ -n "$python_version" ] && [ "$python_version" != ignore ]; then if [ -n "$python_version" ]; then
pycompile_version=${python_version} pycompile_version=${python_version}
fi fi

View file

@ -65,7 +65,7 @@ hook() {
STRIPCMD=/usr/bin/$STRIP STRIPCMD=/usr/bin/$STRIP
find ${PKGDESTDIR} -type f | while read -r f; do find ${PKGDESTDIR} -type f | while read f; do
if [[ $f =~ ^${PKGDESTDIR}/usr/lib/debug/ ]]; then if [[ $f =~ ^${PKGDESTDIR}/usr/lib/debug/ ]]; then
continue continue
fi fi

View file

@ -16,8 +16,7 @@ hook() {
# s,/usr/armv7l-linux-musleabihf/usr,/usr,g # s,/usr/armv7l-linux-musleabihf/usr,/usr,g
# trailing /usr to avoid clashing with # trailing /usr to avoid clashing with
# other $XBPS_CROSS_BASE and $XBPS_CROSS_TRIPLET. # other $XBPS_CROSS_BASE and $XBPS_CROSS_TRIPLET.
sed -i --follow-symlinks \ sed -i -e "s,$XBPS_CROSS_BASE/usr,/usr,g" "$f"
-e "s,$XBPS_CROSS_BASE/usr,/usr,g" "$f"
fi fi
done done
} }

View file

@ -238,6 +238,7 @@ hook() {
generic_wrapper3 libetpan-config generic_wrapper3 libetpan-config
generic_wrapper3 giblib-config generic_wrapper3 giblib-config
python_wrapper python-config 2.7 python_wrapper python-config 2.7
python_wrapper python3-config 3.12 python_wrapper python3-config 3.11
apr_apu_wrapper apr-1-config
apr_apu_wrapper apu-1-config apr_apu_wrapper apu-1-config
} }

View file

@ -12,10 +12,6 @@ hook() {
pyver="$python_version" pyver="$python_version"
fi fi
if [ "$python_version" = ignore ]; then
return
fi
if [ -n "$pyver" ]; then if [ -n "$pyver" ]; then
default_shebang="#!/usr/bin/python${pyver%.*}" default_shebang="#!/usr/bin/python${pyver%.*}"
fi fi

View file

@ -40,14 +40,13 @@ store_pkgdestdir_rundeps() {
-z "$($XBPS_UHELPER_CMD getpkgname ${_curdep} 2>/dev/null)" ]; then -z "$($XBPS_UHELPER_CMD getpkgname ${_curdep} 2>/dev/null)" ]; then
_curdep="${_curdep}>=0" _curdep="${_curdep}>=0"
fi fi
printf "%s " "${_curdep}" printf -- "${_curdep}\n"
done > "${PKGDESTDIR}/rdeps" done | sort | xargs > ${PKGDESTDIR}/rdeps
fi fi
} }
hook() { hook() {
local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
# Disable trap on ERR, xbps-uhelper cmd might return error... but not something # 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 # to be worried about because if there are broken shlibs this hook returns
@ -70,7 +69,7 @@ hook() {
exec 3<&0 # save stdin exec 3<&0 # save stdin
exec < $depsftmp exec < $depsftmp
while read -r f; do while read f; do
lf=${f#${PKGDESTDIR}} lf=${f#${PKGDESTDIR}}
if [ "${skiprdeps/${lf}/}" != "${skiprdeps}" ]; then if [ "${skiprdeps/${lf}/}" != "${skiprdeps}" ]; then
msg_normal "Skipping dependency scan for ${lf}\n" msg_normal "Skipping dependency scan for ${lf}\n"
@ -96,33 +95,39 @@ hook() {
# above, the mapping is done thru the common/shlibs file. # above, the mapping is done thru the common/shlibs file.
# #
for f in ${verify_deps}; do for f in ${verify_deps}; do
unset _rdep _pkgname _rdepver unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found
_f=$(echo "$f"|sed -E 's|\+|\\+|g')
local _findargs="-name" rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)"
# if SONAME is a path, find should use -wholename rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)"
if [[ "$f" = */* ]]; then if [ -z "$rdep" ]; then
_findargs="-wholename"
fi
if [ "$(find "${PKGDESTDIR}" $_findargs "$f")" ]; then
# Ignore libs by current pkg # Ignore libs by current pkg
echo " SONAME: $f <-> $pkgname (ignored)" soname=$(find ${PKGDESTDIR} -name "$f")
continue if [ -z "$soname" ]; then
# If this library is provided by a subpkg of sourcepkg, use that subpkg
elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.soname 2>/dev/null)"; then
# If that library has SONAME, add it to shlibs-requires, too.
_pkgname=${_pkgname%.soname}
_sdep="${_pkgname}-${version}_${revision}"
sorequires+="${f} "
elif _pkgname="$(cd "$_shlib_dir" && grep -F -l -x "$f" *.nosoname 2>/dev/null)"; then
_pkgname=${_pkgname%.nosoname}
_sdep="${_pkgname}-${version}_${revision}"
else
_rdep="$(awk -v sl="$f" '$1 == sl { print $2; exit; }' "$mapshlibs")"
if [ -z "$_rdep" ]; then
msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n" msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
broken_shlibs=1 broken_shlibs=1
else
echo " SONAME: $f <-> $pkgname (ignored)"
fi
continue 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 fi
_pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null) _pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
_rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null) _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
@ -131,12 +136,24 @@ hook() {
broken_shlibs=1 broken_shlibs=1
continue continue
fi fi
# Check if pkg is a subpkg of sourcepkg; if true, ignore version
# in common/shlibs.
_sdep="${_pkgname}>=${_rdepver}" _sdep="${_pkgname}>=${_rdepver}"
for _subpkg in ${subpackages}; do
# By this point, SONAME can't be found in current pkg if [ "${_subpkg}" = "${_pkgname}" ]; then
sorequires+="${f} " _sdep="${_pkgname}-${version}_${revision}"
break
fi fi
done
if [ "${_pkgname}" != "${pkgname}" ]; then
echo " SONAME: $f <-> ${_sdep}" echo " SONAME: $f <-> ${_sdep}"
sorequires+="${f} "
else
# Ignore libs by current pkg
echo " SONAME: $f <-> ${_rdep} (ignored)"
continue
fi
add_rundep "${_sdep}" add_rundep "${_sdep}"
done done
# #

View file

@ -1,87 +0,0 @@
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 [ ! -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
# 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
}

View file

@ -61,7 +61,7 @@ hook() {
elif [ "$lib32mode" = "full" ]; then elif [ "$lib32mode" = "full" ]; then
# Full 32bit mode; copy everything to new destdir. # Full 32bit mode; copy everything to new destdir.
mkdir -p ${destdir32} mkdir -p ${destdir32}
cp -a ${PKGDESTDIR}/. ${destdir32}/ cp -a ${PKGDESTDIR}/* ${destdir32}/
# remove symlink # remove symlink
if [ -h ${destdir32}/usr/lib32 ]; then if [ -h ${destdir32}/usr/lib32 ]; then
rm ${destdir32}/usr/lib32 rm ${destdir32}/usr/lib32
@ -74,11 +74,74 @@ hook() {
if [[ ${pkgname} == *-devel ]]; then if [[ ${pkgname} == *-devel ]]; then
mkdir -p ${destdir32} mkdir -p ${destdir32}
fi fi
if [ ! -d ${destdir32} ]; then if [ ! -d ${destdir32} ]; then
return return
fi 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". # Also install additional files set via "lib32files".
for f in ${lib32files}; do for f in ${lib32files}; do
echo "$pkgver: installing additional files: $f ..." echo "$pkgver: installing additional files: $f ..."
@ -86,7 +149,6 @@ hook() {
mkdir -p ${_targetdir/\/usr\/lib/\/usr\/lib32} mkdir -p ${_targetdir/\/usr\/lib/\/usr\/lib32}
cp -a ${PKGDESTDIR}/${f} ${_targetdir/\/usr\/lib/\/usr\/lib32} cp -a ${PKGDESTDIR}/${f} ${_targetdir/\/usr\/lib/\/usr\/lib32}
done done
# Additional symlinks to the native libdir. # Additional symlinks to the native libdir.
for f in ${lib32symlinks}; do for f in ${lib32symlinks}; do
echo "$pkgver: symlinking $f to the native libdir..." echo "$pkgver: symlinking $f to the native libdir..."
@ -97,4 +159,10 @@ hook() {
fi fi
ln -sfr ${destdir32}/usr/lib32/$f ${destdir32}/usr/lib/$f ln -sfr ${destdir32}/usr/lib32/$f ${destdir32}/usr/lib/$f
done 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
} }

View file

@ -6,30 +6,19 @@ collect_sonames() {
local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$" local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$" local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
local _tmpfile=$(mktemp) || exit 1 local _tmpfile=$(mktemp) || exit 1
local _mainpkg="$2"
local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
local _no_soname=$(mktemp) || exit 1
mkdir -p "${_shlib_dir}" || exit 1
if [ ! -d ${_destdir} ]; then if [ ! -d ${_destdir} ]; then
rm -f ${_tmpfile} rm -f ${_tmpfile}
rm -f ${_no_soname}
return 0 return 0
fi fi
# real pkg # real pkg
find ${_destdir} -type f -name "*.so*" | while read f; do find ${_destdir} -type f -name "*.so*" | while read f; do
_fname="${f##*/}" _fname="${f##*/}"
case "$(file -bi "$f")" in case "$(file -bi "$f")" in
application/x-sharedlib*|application/x-pie-executable*) application/x-sharedlib*|application/x-pie-executable*)
# shared library # shared library
_soname=$(${OBJDUMP} -p "$f"|awk '/SONAME/{print $2}') _soname=$(${OBJDUMP} -p "$f"|grep SONAME|awk '{print $2}')
if [ -n "$noshlibprovides" ]; then
# register all shared lib for rt-deps between sub-pkg
echo "${_fname}" >>${_no_soname}
continue
fi
# Register all versioned sonames, and # Register all versioned sonames, and
# unversioned sonames only when in libdir. # unversioned sonames only when in libdir.
if [[ ${_soname} =~ ${_versioned_pattern} ]] || if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
@ -38,9 +27,6 @@ collect_sonames() {
-e ${_destdir}/usr/lib32/${_fname} ) ]]; then -e ${_destdir}/usr/lib32/${_fname} ) ]]; then
echo "${_soname}" >> ${_tmpfile} echo "${_soname}" >> ${_tmpfile}
echo " SONAME ${_soname} from ${f##${_destdir}}" echo " SONAME ${_soname} from ${f##${_destdir}}"
else
# register all shared lib for rt-deps between sub-pkg
echo "${_fname}" >>${_no_soname}
fi fi
;; ;;
esac esac
@ -52,37 +38,19 @@ collect_sonames() {
if [ -s "${_tmpfile}" ]; then if [ -s "${_tmpfile}" ]; then
tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides
echo >> ${_destdir}/shlib-provides echo >> ${_destdir}/shlib-provides
if [ "$_mainpkg" ]; then
cp "${_tmpfile}" "${_shlib_dir}/${pkgname}.soname"
fi
fi
if [ "$_mainpkg" ] && [ -s "${_no_soname}" ]; then
mv "${_no_soname}" "${_shlib_dir}/${pkgname}.nosoname"
else
rm -f ${_no_soname}
fi fi
rm -f ${_tmpfile} rm -f ${_tmpfile}
} }
hook() { hook() {
local _destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version} local _destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version}
local _mainpkg=yes
local _pkg
case "$pkgname" in if [ -n "$noshlibprovides" ]; then
*-32bit) return 0
_pkgname=${pkgname%-32bit}
for _pkg in $sourcepkg $subpackages; do
if [ "$_pkg" = "$_pkgname" ]; then
_mainpkg=
break
fi fi
done
;;
esac
# native pkg # native pkg
collect_sonames ${PKGDESTDIR} $_mainpkg collect_sonames ${PKGDESTDIR}
# 32bit pkg # 32bit pkg
collect_sonames ${_destdir32} collect_sonames ${_destdir32}
} }

View file

@ -79,23 +79,9 @@ hook() {
# Check for l10n files in usr/lib/locale # Check for l10n files in usr/lib/locale
if [ -d ${PKGDESTDIR}/usr/lib/locale ]; then if [ -d ${PKGDESTDIR}/usr/lib/locale ]; then
local locale_allow=0 ldir
local lroot="${PKGDESTDIR}/usr/lib/locale"
if [ "${pkgname}" = "glibc" ]; then
# glibc gets an exception for its included C.utf8 locale
locale_allow=1
for ldir in "${lroot}"/*; do
[ "${ldir}" = "${lroot}/C.utf8" ] && continue
locale_allow=0
done
fi
if [ "${locale_allow}" -ne 1 ]; then
msg_red "${pkgver}: /usr/lib/locale is forbidden, use /usr/share/locale!\n" msg_red "${pkgver}: /usr/lib/locale is forbidden, use /usr/share/locale!\n"
error=1 error=1
fi fi
fi
# Check for bash completions in etc/bash_completion.d # Check for bash completions in etc/bash_completion.d
# should be on usr/share/bash-completion/completions # should be on usr/share/bash-completion/completions
@ -185,7 +171,7 @@ hook() {
_pattern="^${_shlib}\.so\.[0-9]+(.*)[[:blank:]]+${_pkgname}-[^-]+_[0-9]+" _pattern="^${_shlib}\.so\.[0-9]+(.*)[[:blank:]]+${_pkgname}-[^-]+_[0-9]+"
fi fi
grep -E "${_pattern}" $mapshlibs | { \ grep -E "${_pattern}" $mapshlibs | { \
while read -r conflictFile conflictPkg ignore; do while read conflictFile conflictPkg ignore; do
found=1 found=1
conflictRev=${conflictFile#*.so.} conflictRev=${conflictFile#*.so.}
if [ -n "$ignore" -a "$ignore" != "$XBPS_TARGET_MACHINE" ]; then if [ -n "$ignore" -a "$ignore" != "$XBPS_TARGET_MACHINE" ]; then

View file

@ -1,9 +0,0 @@
#!/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

View file

@ -109,7 +109,7 @@ list_interesting_files() {
if partial_check; then if partial_check; then
list_newly_built_files list_newly_built_files
else else
xlocate / | sed s'/ -> .*//' | grep -F -f <(xlocate / | sed 's/[^[:space:]]*[[:space:]]*//' | sed s'/ -> .*//' | sort | uniq -d) xlocate / | sed s'/ -> .*//' | grep -F -f <(xlocate / | cut -f 2- | sed s'/ -> .*//' | sort | uniq -d)
fi fi
} }

View file

@ -97,14 +97,10 @@ if __name__ == '__main__':
parser = ArgumentParser(description='Cycle detector for xbps-src') parser = ArgumentParser(description='Cycle detector for xbps-src')
parser.add_argument('-j', '--jobs', default=None, parser.add_argument('-j', '--jobs', default=None,
type=int, help='Number of parallel jobs') type=int, help='Number of parallel jobs')
parser.add_argument('-c', '--cachedir', default=None, parser.add_argument('-c', '--cachedir',
help='Directory used to cache build dependencies (must exist)') default=None, help='''Directory to use as cache for xbps-src show-build-deps. Directory must exist already.''')
parser.add_argument('-d', '--directory', parser.add_argument('-d', '--directory',
default=None, help='Path to void-packages repo') default=None, help='Path to void-packages repo')
parser.add_argument('-Q', dest='check_pkgs', action='store_const',
const='yes', help='Use build dependencies for check -Q')
parser.add_argument('-K', dest='check_pkgs', action='store_const',
const='full', help='Use build dependencies for check -K')
args = parser.parse_args() args = parser.parse_args()
@ -112,15 +108,13 @@ if __name__ == '__main__':
try: args.directory = os.environ['XBPS_DISTDIR'] try: args.directory = os.environ['XBPS_DISTDIR']
except KeyError: args.directory = '.' except KeyError: args.directory = '.'
if args.check_pkgs: cachedir = args.cachedir
os.environ['XBPS_CHECK_PKGS'] = args.check_pkgs
pool = multiprocessing.Pool(processes = args.jobs) pool = multiprocessing.Pool(processes = args.jobs)
pattern = os.path.join(args.directory, 'srcpkgs', '*') pattern = os.path.join(args.directory, 'srcpkgs', '*')
pkgs = {os.path.realpath(p) for p in glob.iglob(pattern)} depmap = dict(pool.starmap(enum_depends,
((os.path.basename(g), args.directory, cachedir)
depargs = ((os.path.basename(g), args.directory, args.cachedir) for g in pkgs) for g in glob.iglob(pattern))))
depmap = dict(pool.starmap(enum_depends, depargs))
find_cycles(depmap, args.directory) find_cycles(depmap, args.directory)

File diff suppressed because it is too large Load diff

View file

@ -10,7 +10,7 @@ if [ "$3" = 1 ]; then
test="-Q" test="-Q"
fi fi
PKGS=$(/hostrepo/xbps-src $test sort-dependencies $(cat /tmp/templates)) PKGS=$(/hostrepo/xbps-src sort-dependencies $(cat /tmp/templates))
for pkg in ${PKGS}; do for pkg in ${PKGS}; do
/hostrepo/xbps-src -j$(nproc) -s -H "$HOME"/hostdir $arch $test pkg "$pkg" /hostrepo/xbps-src -j$(nproc) -s -H "$HOME"/hostdir $arch $test pkg "$pkg"

View file

@ -24,6 +24,5 @@ git diff-tree -r --no-renames --name-only --diff-filter=AM \
"$base" "$tip" \ "$base" "$tip" \
-- 'srcpkgs/*/template' | -- 'srcpkgs/*/template' |
cut -d/ -f 2 | cut -d/ -f 2 |
xargs ./xbps-src sort-dependencies |
tee /tmp/templates | tee /tmp/templates |
sed "s/^/ /" >&2 sed "s/^/ /" >&2

View file

@ -0,0 +1,9 @@
#!/bin/sh
#
# changed_templates.sh
# required by git 2.35.2+
git config --global --add safe.directory "$PWD"
/bin/echo -e '\x1b[32mFetching upstream...\x1b[0m'
git fetch --depth 200 https://github.com/void-linux/void-packages.git master

View file

@ -22,13 +22,9 @@ APSL-1.0
APSL-1.1 APSL-1.1
APSL-1.2 APSL-1.2
APSL-2.0 APSL-2.0
ASWF-Digital-Assets-1.0
ASWF-Digital-Assets-1.1
Abstyles Abstyles
AdaCore-doc
Adobe-2006 Adobe-2006
Adobe-Glyph Adobe-Glyph
Adobe-Utopia
Afmparse Afmparse
Aladdin Aladdin
Apache-1.0 Apache-1.0
@ -40,19 +36,14 @@ Artistic-1.0-Perl
Artistic-1.0-cl8 Artistic-1.0-cl8
Artistic-1.0 Artistic-1.0
Artistic-2.0 Artistic-2.0
Asterisk-exception
Autoconf-exception-2.0 Autoconf-exception-2.0
Autoconf-exception-3.0 Autoconf-exception-3.0
Autoconf-exception-generic-3.0
Autoconf-exception-generic
Autoconf-exception-macro
BSD-1-Clause BSD-1-Clause
BSD-2-Clause-Patent BSD-2-Clause-Patent
BSD-2-Clause-Views BSD-2-Clause-Views
BSD-2-Clause BSD-2-Clause
BSD-3-Clause-Attribution BSD-3-Clause-Attribution
BSD-3-Clause-Clear BSD-3-Clause-Clear
BSD-3-Clause-HP
BSD-3-Clause-LBNL BSD-3-Clause-LBNL
BSD-3-Clause-Modification BSD-3-Clause-Modification
BSD-3-Clause-No-Military-License BSD-3-Clause-No-Military-License
@ -60,20 +51,12 @@ BSD-3-Clause-No-Nuclear-License-2014
BSD-3-Clause-No-Nuclear-License BSD-3-Clause-No-Nuclear-License
BSD-3-Clause-No-Nuclear-Warranty BSD-3-Clause-No-Nuclear-Warranty
BSD-3-Clause-Open-MPI BSD-3-Clause-Open-MPI
BSD-3-Clause-Sun
BSD-3-Clause-flex
BSD-3-Clause BSD-3-Clause
BSD-4-Clause-Shortened BSD-4-Clause-Shortened
BSD-4-Clause-UC BSD-4-Clause-UC
BSD-4-Clause BSD-4-Clause
BSD-4.3RENO
BSD-4.3TAHOE
BSD-Advertising-Acknowledgement
BSD-Attribution-HPND-disclaimer
BSD-Inferno-Nettverk
BSD-Protection BSD-Protection
BSD-Source-Code BSD-Source-Code
BSD-Systemics
BSL-1.0 BSL-1.0
BUSL-1.1 BUSL-1.1
Baekmuk Baekmuk
@ -83,13 +66,10 @@ Beerware
Bison-exception-2.2 Bison-exception-2.2
BitTorrent-1.0 BitTorrent-1.0
BitTorrent-1.1 BitTorrent-1.1
Bitstream-Charter
Bitstream-Vera Bitstream-Vera
BlueOak-1.0.0 BlueOak-1.0.0
Boehm-GC
Bootloader-exception Bootloader-exception
Borceux Borceux
Brian-Gladman-3-Clause
C-UDA-1.0 C-UDA-1.0
CAL-1.0-Combined-Work-Exception CAL-1.0-Combined-Work-Exception
CAL-1.0 CAL-1.0
@ -119,7 +99,6 @@ CC-BY-NC-ND-3.0-IGO
CC-BY-NC-ND-3.0 CC-BY-NC-ND-3.0
CC-BY-NC-ND-4.0 CC-BY-NC-ND-4.0
CC-BY-NC-SA-1.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-FR
CC-BY-NC-SA-2.0-UK CC-BY-NC-SA-2.0-UK
CC-BY-NC-SA-2.0 CC-BY-NC-SA-2.0
@ -141,7 +120,6 @@ CC-BY-SA-2.1-JP
CC-BY-SA-2.5 CC-BY-SA-2.5
CC-BY-SA-3.0-AT CC-BY-SA-3.0-AT
CC-BY-SA-3.0-DE CC-BY-SA-3.0-DE
CC-BY-SA-3.0-IGO
CC-BY-SA-3.0 CC-BY-SA-3.0
CC-BY-SA-4.0 CC-BY-SA-4.0
CC-PDDC CC-PDDC
@ -163,9 +141,7 @@ CERN-OHL-1.2
CERN-OHL-P-2.0 CERN-OHL-P-2.0
CERN-OHL-S-2.0 CERN-OHL-S-2.0
CERN-OHL-W-2.0 CERN-OHL-W-2.0
CFITSIO
CLISP-exception-2.0 CLISP-exception-2.0
CMU-Mach
CNRI-Jython CNRI-Jython
CNRI-Python-GPL-Compatible CNRI-Python-GPL-Compatible
CNRI-Python CNRI-Python
@ -177,17 +153,13 @@ CUA-OPL-1.0
Caldera Caldera
ClArtistic ClArtistic
Classpath-exception-2.0 Classpath-exception-2.0
Clips
Community-Spec-1.0 Community-Spec-1.0
Condor-1.1 Condor-1.1
Cornell-Lossless-JPEG
Cronyx
Crossword Crossword
CrystalStacker CrystalStacker
Cube Cube
D-FSL-1.0 D-FSL-1.0
DL-DE-BY-2.0 DL-DE-BY-2.0
DL-DE-ZERO-2.0
DOC DOC
DRL-1.0 DRL-1.0
DSDP DSDP
@ -208,7 +180,6 @@ Elastic-2.0
Entessa Entessa
ErlPL-1.1 ErlPL-1.1
Eurosym Eurosym
FBM
FDK-AAC FDK-AAC
FLTK-exception FLTK-exception
FSFAP FSFAP
@ -218,13 +189,10 @@ FSFULLRWD
FTL FTL
Fair Fair
Fawkes-Runtime-exception Fawkes-Runtime-exception
Ferguson-Twofish
Font-exception-2.0 Font-exception-2.0
Frameworx-1.0 Frameworx-1.0
FreeBSD-DOC FreeBSD-DOC
FreeImage FreeImage
Furuseth
GCC-exception-2.0-note
GCC-exception-2.0 GCC-exception-2.0
GCC-exception-3.1 GCC-exception-3.1
GD GD
@ -248,13 +216,10 @@ GFDL-1.3-only
GFDL-1.3-or-later GFDL-1.3-or-later
GL2PS GL2PS
GLWTPL GLWTPL
GNAT-exception
GNU-compiler-exception
GPL-1.0-only GPL-1.0-only
GPL-1.0-or-later GPL-1.0-or-later
GPL-2.0-only GPL-2.0-only
GPL-2.0-or-later GPL-2.0-or-later
GPL-3.0-interface-exception
GPL-3.0-linking-exception GPL-3.0-linking-exception
GPL-3.0-linking-source-exception GPL-3.0-linking-source-exception
GPL-3.0-only GPL-3.0-only
@ -265,19 +230,6 @@ GStreamer-exception-2008
Giftware Giftware
Glide Glide
Glulxe Glulxe
Graphics-Gems
HP-1986
HP-1989
HPND-DEC
HPND-Markus-Kuhn
HPND-Pbmplus
HPND-UC
HPND-doc-sell
HPND-doc
HPND-export-US-modify
HPND-export-US
HPND-sell-regexpr
HPND-sell-variant-MIT-disclaimer
HPND-sell-variant HPND-sell-variant
HPND HPND
HTMLTIDY HTMLTIDY
@ -285,8 +237,6 @@ HaskellReport
Hippocratic-2.1 Hippocratic-2.1
IBM-pibs IBM-pibs
ICU ICU
IEC-Code-Components-EULA
IJG-short
IJG IJG
IPA IPA
IPL-1.0 IPL-1.0
@ -294,17 +244,13 @@ ISC
ImageMagick ImageMagick
Imlib2 Imlib2
Info-ZIP Info-ZIP
Inner-Net-2.0
Intel-ACPI Intel-ACPI
Intel Intel
Interbase-1.0 Interbase-1.0
JPL-image
JPNIC JPNIC
JSON JSON
Jam Jam
JasPer-2.0 JasPer-2.0
Kastrup
Kazlib
KiCad-libraries-exception KiCad-libraries-exception
Knuth-CTAN Knuth-CTAN
LAL-1.2 LAL-1.2
@ -317,9 +263,7 @@ LGPL-3.0-linking-exception
LGPL-3.0-only LGPL-3.0-only
LGPL-3.0-or-later LGPL-3.0-or-later
LGPLLR LGPLLR
LLGPL
LLVM-exception LLVM-exception
LOOP
LPL-1.0 LPL-1.0
LPL-1.02 LPL-1.02
LPPL-1.0 LPPL-1.0
@ -330,7 +274,6 @@ LPPL-1.3c
LZMA-SDK-9.11-to-9.20 LZMA-SDK-9.11-to-9.20
LZMA-SDK-9.22 LZMA-SDK-9.22
LZMA-exception LZMA-exception
Latex2e-translated-notice
Latex2e Latex2e
Leptonica Leptonica
LiLiQ-P-1.1 LiLiQ-P-1.1
@ -339,26 +282,17 @@ LiLiQ-Rplus-1.1
Libpng Libpng
Libtool-exception Libtool-exception
Linux-OpenIB Linux-OpenIB
Linux-man-pages-1-para
Linux-man-pages-copyleft-2-para
Linux-man-pages-copyleft-var
Linux-man-pages-copyleft Linux-man-pages-copyleft
Linux-syscall-note Linux-syscall-note
Lucida-Bitmap-Fonts
MIT-0 MIT-0
MIT-CMU MIT-CMU
MIT-Festival
MIT-Modern-Variant MIT-Modern-Variant
MIT-Wu
MIT-advertising MIT-advertising
MIT-enna MIT-enna
MIT-feh MIT-feh
MIT-open-group MIT-open-group
MIT-testregex
MIT MIT
MITNFA MITNFA
MMIXware
MPEG-SSG
MPL-1.0 MPL-1.0
MPL-1.1 MPL-1.1
MPL-2.0-no-copyleft-exception MPL-2.0-no-copyleft-exception
@ -368,8 +302,6 @@ MS-PL
MS-RL MS-RL
MTLL MTLL
MakeIndex MakeIndex
Martin-Birgmeier
McPhee-slideshow
Minpack Minpack
MirOS MirOS
Motosoto Motosoto
@ -386,7 +318,6 @@ NGPL
NICTA-1.0 NICTA-1.0
NIST-PD-fallback NIST-PD-fallback
NIST-PD NIST-PD
NIST-Software
NLOD-1.0 NLOD-1.0
NLOD-2.0 NLOD-2.0
NLPL NLPL
@ -411,7 +342,6 @@ OCLC-2.0
OCaml-LGPL-linking-exception OCaml-LGPL-linking-exception
ODC-By-1.0 ODC-By-1.0
ODbL-1.0 ODbL-1.0
OFFIS
OFL-1.0-RFN OFL-1.0-RFN
OFL-1.0-no-RFN OFL-1.0-no-RFN
OFL-1.0 OFL-1.0
@ -441,10 +371,8 @@ OLDAP-2.5
OLDAP-2.6 OLDAP-2.6
OLDAP-2.7 OLDAP-2.7
OLDAP-2.8 OLDAP-2.8
OLFL-1.3
OML OML
OPL-1.0 OPL-1.0
OPL-UK-3.0
OPUBL-1.0 OPUBL-1.0
OSET-PL-2.1 OSET-PL-2.1
OSL-1.0 OSL-1.0
@ -453,9 +381,7 @@ OSL-2.0
OSL-2.1 OSL-2.1
OSL-3.0 OSL-3.0
OpenJDK-assembly-exception-1.0 OpenJDK-assembly-exception-1.0
OpenPBS-2.3
OpenSSL OpenSSL
PADL
PDDL-1.0 PDDL-1.0
PHP-3.0 PHP-3.0
PHP-3.01 PHP-3.01
@ -469,8 +395,6 @@ PolyForm-Small-Business-1.0.0
PostgreSQL PostgreSQL
Python-2.0.1 Python-2.0.1
Python-2.0 Python-2.0
QPL-1.0-INRIA-2004-exception
QPL-1.0-INRIA-2004
QPL-1.0 QPL-1.0
Qhull Qhull
Qt-GPL-exception-1.0 Qt-GPL-exception-1.0
@ -484,21 +408,17 @@ RSA-MD
RSCPL RSCPL
Rdisc Rdisc
Ruby Ruby
SANE-exception
SAX-PD SAX-PD
SCEA SCEA
SGI-B-1.0 SGI-B-1.0
SGI-B-1.1 SGI-B-1.1
SGI-B-2.0 SGI-B-2.0
SGI-OpenGL
SGP4
SHL-0.5 SHL-0.5
SHL-0.51 SHL-0.51
SHL-2.0 SHL-2.0
SHL-2.1 SHL-2.1
SISSL-1.2 SISSL-1.2
SISSL SISSL
SL
SMLNJ SMLNJ
SMPPL SMPPL
SNIA SNIA
@ -506,7 +426,6 @@ SPL-1.0
SSH-OpenSSH SSH-OpenSSH
SSH-short SSH-short
SSPL-1.0 SSPL-1.0
SWI-exception
SWL SWL
Saxpath Saxpath
SchemeReport SchemeReport
@ -514,38 +433,25 @@ Sendmail-8.23
Sendmail Sendmail
SimPL-2.0 SimPL-2.0
Sleepycat Sleepycat
Soundex
Spencer-86 Spencer-86
Spencer-94 Spencer-94
Spencer-99 Spencer-99
SugarCRM-1.1.3 SugarCRM-1.1.3
SunPro
Swift-exception Swift-exception
Symlinks
TAPR-OHL-1.0 TAPR-OHL-1.0
TCL TCL
TCP-wrappers TCP-wrappers
TMate TMate
TORQUE-1.1 TORQUE-1.1
TOSL TOSL
TPDL
TPL-1.0
TTWL
TTYP0
TU-Berlin-1.0 TU-Berlin-1.0
TU-Berlin-2.0 TU-Berlin-2.0
TermReadKey
Texinfo-exception
UBDL-exception
UCAR
UCL-1.0 UCL-1.0
UPL-1.0 UPL-1.0
URT-RLE
Unicode-DFS-2015 Unicode-DFS-2015
Unicode-DFS-2016 Unicode-DFS-2016
Unicode-TOU Unicode-TOU
Universal-FOSS-exception-1.0 Universal-FOSS-exception-1.0
UnixCrypt
Unlicense Unlicense
VOSTROM VOSTROM
VSL-1.0 VSL-1.0
@ -555,16 +461,13 @@ W3C-20150513
W3C W3C
WTFPL WTFPL
Watcom-1.0 Watcom-1.0
Widget-Workshop
Wsuipa Wsuipa
WxWindows-exception-3.1 WxWindows-exception-3.1
X11-distribute-modifications-variant X11-distribute-modifications-variant
X11 X11
XFree86-1.1 XFree86-1.1
XSkat XSkat
Xdebug-1.03
Xerox Xerox
Xfig
Xnet Xnet
YPL-1.0 YPL-1.0
YPL-1.1 YPL-1.1
@ -572,18 +475,15 @@ ZPL-1.1
ZPL-2.0 ZPL-2.0
ZPL-2.1 ZPL-2.1
Zed Zed
Zeeff
Zend-2.0 Zend-2.0
Zimbra-1.3 Zimbra-1.3
Zimbra-1.4 Zimbra-1.4
Zlib Zlib
blessing blessing
bzip2-1.0.6 bzip2-1.0.6
check-cvs
checkmk checkmk
copyleft-next-0.3.0 copyleft-next-0.3.0
copyleft-next-0.3.1 copyleft-next-0.3.1
cryptsetup-OpenSSL-exception
curl curl
deprecated_AGPL-1.0 deprecated_AGPL-1.0
deprecated_AGPL-3.0 deprecated_AGPL-3.0
@ -617,45 +517,29 @@ deprecated_bzip2-1.0.5
deprecated_eCos-2.0 deprecated_eCos-2.0
deprecated_wxWindows deprecated_wxWindows
diffmark diffmark
dtoa
dvipdfm dvipdfm
eCos-exception-2.0 eCos-exception-2.0
eGenix eGenix
etalab-2.0 etalab-2.0
freertos-exception-2.0 freertos-exception-2.0
fwlw
gSOAP-1.3b gSOAP-1.3b
gnu-javamail-exception gnu-javamail-exception
gnuplot gnuplot
i2p-gpl-java-exception i2p-gpl-java-exception
iMatix iMatix
libpng-2.0 libpng-2.0
libpri-OpenH323-exception
libselinux-1.0 libselinux-1.0
libtiff libtiff
libutil-David-Nugent libutil-David-Nugent
lsof
magaz
metamail
mif-exception mif-exception
mpi-permissive mpi-permissive
mpich2 mpich2
mplus mplus
openvpn-openssl-exception openvpn-openssl-exception
pnmstitch
psfrag psfrag
psutils psutils
python-ldap
snprintf
ssh-keyscan
stunnel-exception
swrule
u-boot-exception-2.0 u-boot-exception-2.0
ulem
vsftpd-openssl-exception
w3m
x11vnc-openssl-exception x11vnc-openssl-exception
xinetd xinetd
xlock
xpp xpp
zlib-acknowledgement zlib-acknowledgement

View file

@ -2,6 +2,8 @@
# #
# prepare.sh # prepare.sh
[ "$XLINT" ] && exit 0
/bin/echo -e '\x1b[32mUpdating etc/conf...\x1b[0m' /bin/echo -e '\x1b[32mUpdating etc/conf...\x1b[0m'
echo XBPS_BUILD_ENVIRONMENT=void-packages-ci >> etc/conf echo XBPS_BUILD_ENVIRONMENT=void-packages-ci >> etc/conf
echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf

View file

@ -1,20 +0,0 @@
#!/bin/sh
# runs update-check on all changed templates, then errors only if there was an
# issue with the update-check. does not error if further updates are available,
# as there may be a good reason not to update to those versions
set -e
export XBPS_UPDATE_CHECK_VERBOSE=yes
err=0
while read -r pkg; do
/bin/echo -e "\x1b[34mVerifying update-check of $pkg:\x1b[0m"
./xbps-src update-check "$pkg" 2>&1 > /tmp/update-check.log || err=1
cat /tmp/update-check.log
if grep -q 'NO VERSION' /tmp/update-check.log; then
echo "::warning file=srcpkgs/$pkg/template,line=1,title=update-check failed::verify and fix update-check for $pkg"
fi
done < /tmp/templates
exit $err

View file

@ -2,6 +2,8 @@
# #
# xlint.sh # xlint.sh
[ "$XLINT" ] || exit 0
EXITCODE=0 EXITCODE=0
read base tip < /tmp/revisions read base tip < /tmp/revisions

View file

@ -8,11 +8,11 @@ ARGS=("$@")
i=0 i=0
while [ $i -lt ${#ARGS[@]} ]; do while [ $i -lt ${#ARGS[@]} ]; do
arg="${ARGS[$i]}" arg="${ARGS[$i]}"
if [ -n "$incpath" ]; then if [ "$incpath" ]; then
if [ "$arg" = "/usr/include" ]; then if [ "$arg" = "/usr/include" ]; then
echo "[cc-wrapper] ignoring ${incpath} $arg" echo "[cc-wrapper] ignoring -I $arg"
else else
MYARGS+=("${incpath}${arg}") MYARGS+=("-I${arg}")
fi fi
unset incpath unset incpath
elif [ "$libpath" ]; then elif [ "$libpath" ]; then
@ -23,13 +23,13 @@ while [ $i -lt ${#ARGS[@]} ]; do
MYARGS+=("-L${arg}") MYARGS+=("-L${arg}")
fi fi
unset libpath unset libpath
elif [ "$arg" = "-I" -o "$arg" = "-isystem" ]; then elif [ "$arg" = "-I" ]; then
incpath="$arg" incpath=1
elif [ "$arg" = "-L" ]; then elif [ "$arg" = "-L" ]; then
libpath=1 libpath=1
elif [ "$arg" = "-I/usr/include" -o "$arg" = "-isystem/usr/include" \ elif [ "$arg" = "-I/usr/include" -o "$arg" = "-L/usr/lib" \
-o "$arg" = "-L/usr/lib32" -o "$arg" = "-L/usr/lib64" \ -o "$arg" = "-L/usr/lib32" -o "$arg" = "-L/usr/lib64" \
-o "$arg" = "-L/usr/lib" -o "$arg" = "-L/lib" ]; then -o "$arg" = "-L/lib" ]; then
echo "[cc-wrapper] ignoring $arg" echo "[cc-wrapper] ignoring $arg"
else else
MYARGS+=("${arg}") MYARGS+=("${arg}")

View file

@ -124,17 +124,6 @@ check_installed_pkg() {
return 1 return 1
} }
#
# Return 0 if we will skip the check step
#
skip_check_step() {
[ -z "$XBPS_CHECK_PKGS" ] ||
[ "$XBPS_CROSS_BUILD" ] ||
[ "$make_check" = ci-skip -a "$XBPS_BUILD_ENVIRONMENT" = void-packages-ci ] ||
[ "$make_check" = extended -a "$XBPS_CHECK_PKGS" != full ] ||
[ "$make_check" = no ]
}
# #
# Build all dependencies required to build and run. # Build all dependencies required to build and run.
# #
@ -148,7 +137,7 @@ install_pkg_deps() {
local -a host_missing_deps missing_deps missing_rdeps local -a host_missing_deps missing_deps missing_rdeps
[ -z "$pkgname" ] && return 2 [ -z "$pkgname" ] && return 2
skip_check_step && unset checkdepends [ -z "$XBPS_CHECK_PKGS" ] && unset checkdepends
if [[ $build_style ]] || [[ $build_helper ]]; then if [[ $build_style ]] || [[ $build_helper ]]; then
style=" with" style=" with"
@ -219,7 +208,7 @@ install_pkg_deps() {
# #
# Host check dependencies. # Host check dependencies.
# #
if [[ ${checkdepends} ]]; then if [[ ${checkdepends} ]] && [[ $XBPS_CHECK_PKGS ]] && [ -z "$XBPS_CROSS_BUILD" ]; then
templates="" templates=""
# check validity # check validity
for f in ${checkdepends}; do for f in ${checkdepends}; do
@ -421,12 +410,22 @@ install_pkg_deps() {
done done
if [[ ${host_binpkg_deps} ]]; then if [[ ${host_binpkg_deps} ]]; then
msg_normal "$pkgver: installing host dependencies: ${host_binpkg_deps[*]} ...\n" 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[@]}" install_pkg_from_repos "" host "${host_binpkg_deps[@]}"
fi fi
if [[ ${binpkg_deps} ]]; then if [[ ${binpkg_deps} ]]; then
msg_normal "$pkgver: installing target dependencies: ${binpkg_deps[*]} ...\n" 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[@]}" install_pkg_from_repos "$cross" target "${binpkg_deps[@]}"
fi fi

View file

@ -8,22 +8,22 @@ install_base_chroot() {
XBPS_TARGET_PKG="$1" XBPS_TARGET_PKG="$1"
fi fi
# binary bootstrap # binary bootstrap
msg_normal "xbps-src: installing base-chroot...\n" msg_normal "xbps-src: installing base-chroot-cereus...\n"
# XBPS_TARGET_PKG == arch # XBPS_TARGET_PKG == arch
if [ "$XBPS_TARGET_PKG" ]; then if [ "$XBPS_TARGET_PKG" ]; then
_bootstrap_arch="env XBPS_TARGET_ARCH=$XBPS_TARGET_PKG" _bootstrap_arch="env XBPS_TARGET_ARCH=$XBPS_TARGET_PKG"
fi fi
(export XBPS_MACHINE=$XBPS_TARGET_PKG XBPS_ARCH=$XBPS_TARGET_PKG; chroot_sync_repodata) (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 ${_bootstrap_arch} $XBPS_INSTALL_CMD ${XBPS_INSTALL_ARGS} -y base-chroot-cereus
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
msg_error "xbps-src: failed to install base-chroot!\n" msg_error "xbps-src: failed to install base-chroot-cereus!\n"
fi fi
# Reconfigure base-files to create dirs/symlinks. # Reconfigure base-files to create dirs/symlinks.
if xbps-query -r $XBPS_MASTERDIR base-files &>/dev/null; then 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 XBPS_ARCH=$XBPS_TARGET_PKG xbps-reconfigure -r $XBPS_MASTERDIR -f base-files &>/dev/null
fi fi
msg_normal "xbps-src: installed base-chroot successfully!\n" msg_normal "xbps-src: installed base-chroot-cereus successfully!\n"
chroot_prepare $XBPS_TARGET_PKG || msg_error "xbps-src: failed to initialize chroot!\n" chroot_prepare $XBPS_TARGET_PKG || msg_error "xbps-src: failed to initialize chroot!\n"
chroot_check chroot_check
chroot_handler clean chroot_handler clean
@ -34,7 +34,7 @@ reconfigure_base_chroot() {
local pkgs="glibc-locales ca-certificates" local pkgs="glibc-locales ca-certificates"
[ -z "$IN_CHROOT" -o -e $statefile ] && return 0 [ -z "$IN_CHROOT" -o -e $statefile ] && return 0
# Reconfigure ca-certificates. # Reconfigure ca-certificates.
msg_normal "xbps-src: reconfiguring base-chroot...\n" msg_normal "xbps-src: reconfiguring base-chroot-cereus...\n"
for f in ${pkgs}; do for f in ${pkgs}; do
if xbps-query -r $XBPS_MASTERDIR $f &>/dev/null; then if xbps-query -r $XBPS_MASTERDIR $f &>/dev/null; then
xbps-reconfigure -r $XBPS_MASTERDIR -f $f xbps-reconfigure -r $XBPS_MASTERDIR -f $f
@ -51,7 +51,7 @@ update_base_chroot() {
if $(${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -nu|grep -q xbps); then 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" ${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu xbps || msg_error "xbps-src: failed to update xbps!\n"
fi fi
${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu || msg_error "xbps-src: failed to update base-chroot!\n" ${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu || msg_error "xbps-src: failed to update base-chroot-cereus!\n"
msg_normal "xbps-src: cleaning up $XBPS_MASTERDIR masterdir...\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 "$XBPS_SKIP_DEPS" ] && remove_pkg_autodeps
[ -z "$XBPS_KEEP_ALL" -a -z "$keep_all_force" ] && rm -rf $XBPS_MASTERDIR/builddir $XBPS_MASTERDIR/destdir [ -z "$XBPS_KEEP_ALL" -a -z "$keep_all_force" ] && rm -rf $XBPS_MASTERDIR/builddir $XBPS_MASTERDIR/destdir
@ -309,9 +309,6 @@ chroot_sync_repodata() {
# Copy xbps repository keys to the masterdir. # Copy xbps repository keys to the masterdir.
mkdir -p $XBPS_MASTERDIR/var/db/xbps/keys mkdir -p $XBPS_MASTERDIR/var/db/xbps/keys
cp -f $XBPS_COMMONDIR/repo-keys/*.plist $XBPS_MASTERDIR/var/db/xbps/keys cp -f $XBPS_COMMONDIR/repo-keys/*.plist $XBPS_MASTERDIR/var/db/xbps/keys
if [ -n "$(shopt -s nullglob; echo "$XBPS_DISTDIR"/etc/repo-keys/*.plist)" ]; then
cp -f "$XBPS_DISTDIR"/etc/repo-keys/*.plist "$XBPS_MASTERDIR"/var/db/xbps/keys
fi
# Make sure to sync index for remote repositories. # Make sure to sync index for remote repositories.
if [ -z "$XBPS_SKIP_REMOTEREPOS" ]; then if [ -z "$XBPS_SKIP_REMOTEREPOS" ]; then

View file

@ -1,41 +1,5 @@
# vim: set ts=4 sw=4 et: # vim: set ts=4 sw=4 et:
# A portable abstraction for stat(1)
#
# The stat(1) command has different syntaxes between GNU flavor
# and BSD flavor; implementations generally follow one or the other
#
if ! stat -c "%s" / > /dev/null 2>&1; then
# BSD stat
stat_size() {
stat -f %z "$1"
}
stat_inode() {
stat -f %i "$1"
}
stat_mtime() {
stat -f %m "$1"
}
else
# GNU stat
stat_size() {
stat -c %s "$1"
}
stat_inode() {
stat -c %i "$1"
}
stat_mtime() {
stat -c %Y "$1"
}
fi
run_func() { run_func() {
local func="$1" desc="$2" funcname="$3" restoretrap= logpipe= logfile= teepid= local func="$1" desc="$2" funcname="$3" restoretrap= logpipe= logfile= teepid=
@ -176,24 +140,13 @@ msg_warn_nochroot() {
msg_normal() { msg_normal() {
if [ -z "$XBPS_QUIET" ]; then if [ -z "$XBPS_QUIET" ]; then
# normal messages in bright bold white # normal messages in bold
if [ "$XBPS_BUILD_ENVIRONMENT" = "void-packages-ci" ]; then
# Github CI considers '1m' to be just a font bold
[ -n "$NOCOLORS" ] || printf "\033[97m\033[1m"
else
[ -n "$NOCOLORS" ] || printf "\033[1m" [ -n "$NOCOLORS" ] || printf "\033[1m"
fi
printf "=> $@" printf "=> $@"
[ -n "$NOCOLORS" ] || printf "\033[m" [ -n "$NOCOLORS" ] || printf "\033[m"
fi fi
} }
msg_verbose() {
if [ -n "$XBPS_VERBOSE" ]; then
printf >&2 "$@"
fi
}
report_broken() { report_broken() {
if [ "$show_problems" = "ignore-problems" ]; then if [ "$show_problems" = "ignore-problems" ]; then
return return
@ -212,12 +165,7 @@ report_broken() {
} }
msg_normal_append() { msg_normal_append() {
if [ "$XBPS_BUILD_ENVIRONMENT" = "void-packages-ci" ]; then
# Github CI considers '1m' to be just a font bold
[ -n "$NOCOLORS" ] || printf "\033[97m\033[1m"
else
[ -n "$NOCOLORS" ] || printf "\033[1m" [ -n "$NOCOLORS" ] || printf "\033[1m"
fi
printf "$@" printf "$@"
[ -n "$NOCOLORS" ] || printf "\033[m" [ -n "$NOCOLORS" ] || printf "\033[m"
} }
@ -341,7 +289,6 @@ get_endian() {
ppc*le) echo "le";; ppc*le) echo "le";;
ppc*) echo "be";; ppc*) echo "be";;
x86_64) echo "le";; x86_64) echo "le";;
riscv64) echo "le";;
esac esac
} }
@ -369,7 +316,6 @@ get_wordsize() {
ppc64*) echo "64";; ppc64*) echo "64";;
ppc*) echo "32";; ppc*) echo "32";;
x86_64) echo "64";; x86_64) echo "64";;
riscv64) echo "64";;
esac esac
} }

View file

@ -16,7 +16,7 @@ remove_pkg_cross_deps() {
$XBPS_REMOVE_XCMD -Ryo > $tmplogf 2>&1 $XBPS_REMOVE_XCMD -Ryo > $tmplogf 2>&1
rval=$? rval=$?
while [ $rval -eq 0 ]; do while [ $rval -eq 0 ]; do
local curs=$(stat_size $tmplogf) local curs=$(stat -c %s $tmplogf)
if [ $curs -eq $prevs ]; then if [ $curs -eq $prevs ]; then
break break
fi fi

View file

@ -65,11 +65,11 @@ remove_pkg_autodeps() {
remove_pkg_cross_deps remove_pkg_cross_deps
$XBPS_RECONFIGURE_CMD -a >> $tmplogf 2>&1 $XBPS_RECONFIGURE_CMD -a >> $tmplogf 2>&1
prevs=$(stat_size $tmplogf) prevs=$(stat -c %s $tmplogf)
echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf
rval=$? rval=$?
while [ $rval -eq 0 ]; do while [ $rval -eq 0 ]; do
local curs=$(stat_size $tmplogf) local curs=$(stat -c %s $tmplogf)
if [ $curs -eq $prevs ]; then if [ $curs -eq $prevs ]; then
break break
fi fi

View file

@ -57,7 +57,7 @@ purge_distfiles() {
cur=0 cur=0
percent=-1 percent=-1
for distfile in ${distfiles[@]}; do for distfile in ${distfiles[@]}; do
inode=$(stat_inode "$distfile") inode=$(stat "$distfile" --printf "%i")
if [ -z "${inodes[$inode]}" ]; then if [ -z "${inodes[$inode]}" ]; then
inodes[$inode]="$distfile" inodes[$inode]="$distfile"
else else
@ -77,7 +77,7 @@ purge_distfiles() {
hash_distfile=${file##*/} hash_distfile=${file##*/}
hash=${hash_distfile:0:$HASHLEN} hash=${hash_distfile:0:$HASHLEN}
[ -n "${my_hashes[$hash]}" ] && continue [ -n "${my_hashes[$hash]}" ] && continue
inode=$(stat_inode "$file") inode=$(stat "$file" --printf "%i")
echo "Obsolete $hash (inode: $inode)" echo "Obsolete $hash (inode: $inode)"
( IFS="|"; for f in ${inodes[$inode]}; do rm -vf "$f"; rmdir "${f%/*}" 2>/dev/null; done ) ( IFS="|"; for f in ${inodes[$inode]}; do rm -vf "$f"; rmdir "${f%/*}" 2>/dev/null; done )
done done

View file

@ -75,7 +75,7 @@ show_avail() {
show_eval_dep() { show_eval_dep() {
local f x _pkgname _srcpkg found local f x _pkgname _srcpkg found
local _dep="${1%-32bit}" local _dep="$1"
local _host="$2" local _host="$2"
if [ -z "$CROSS_BUILD" ] || [ -z "$_host" ]; then if [ -z "$CROSS_BUILD" ] || [ -z "$_host" ]; then
# ignore dependency on itself # ignore dependency on itself
@ -92,7 +92,8 @@ show_eval_dep() {
[[ $_dep == $x ]] && found=1 && break [[ $_dep == $x ]] && found=1 && break
done done
[[ $found ]] && return [[ $found ]] && return
_srcpkg=$(readlink -f ${XBPS_SRCPKGDIR}/${_dep}) _pkgname=${_dep/-32bit}
_srcpkg=$(readlink -f ${XBPS_SRCPKGDIR}/${_pkgname})
_srcpkg=${_srcpkg##*/} _srcpkg=${_srcpkg##*/}
echo $_srcpkg echo $_srcpkg
} }
@ -116,9 +117,7 @@ show_pkg_build_depends() {
} }
show_pkg_build_deps() { show_pkg_build_deps() {
local build_depends="${makedepends} $(setup_pkg_depends '' 1 1)" show_pkg_build_depends "${makedepends} $(setup_pkg_depends '' 1 1)" "${hostmakedepends}"
skip_check_step || build_depends+=" ${checkdepends}"
show_pkg_build_depends "${build_depends}" "${hostmakedepends}"
} }
show_pkg_hostmakedepends() { show_pkg_hostmakedepends() {
@ -129,21 +128,16 @@ show_pkg_makedepends() {
show_pkg_build_depends "${makedepends}" "" show_pkg_build_depends "${makedepends}" ""
} }
show_pkg_checkdepends() {
show_pkg_build_depends "${checkdepends}" ""
}
show_pkg_build_options() { show_pkg_build_options() {
local f local f opt desc
[ -z "$PKG_BUILD_OPTIONS" ] && return 0 [ -z "$PKG_BUILD_OPTIONS" ] && return 0
source $XBPS_COMMONDIR/options.description source $XBPS_COMMONDIR/options.description
msg_normal "$pkgver: the following build options are set:\n" msg_normal "$pkgver: the following build options are set:\n"
for f in ${PKG_BUILD_OPTIONS}; do for f in ${PKG_BUILD_OPTIONS}; do
local opt="${f#\~}" opt="${f#\~}"
local descref="desc_option_${opt}" eval desc="\${desc_option_${opt}}"
local desc="${!descref-Enable support for $opt}"
if [[ ${f:0:1} == '~' ]]; then if [[ ${f:0:1} == '~' ]]; then
echo " $opt: $desc (OFF)" echo " $opt: $desc (OFF)"
else else

View file

@ -1,4 +1,4 @@
# vim: set ts=4 sw=4 et ft=bash : # vim: set ts=4 sw=4 et:
update_check() { update_check() {
local i p url pkgurlname rx found_version consider local i p url pkgurlname rx found_version consider
@ -8,25 +8,15 @@ update_check() {
local urlpfx urlsfx local urlpfx urlsfx
local -A fetchedurls local -A fetchedurls
local curlargs=(
-A "xbps-src-update-check/$XBPS_SRC_VERSION"
--max-time 10 --compressed -Lsk
)
pkgname=${pkgname#kf6-}
# XBPS_UPDATE_CHECK_VERBOSE is the old way to show verbose messages
[ "$XBPS_UPDATE_CHECK_VERBOSE" ] && XBPS_VERBOSE="$XBPS_UPDATE_CHECK_VERBOSE"
if [ -r $update_override ]; then if [ -r $update_override ]; then
. $update_override . $update_override
msg_verbose "using $XBPS_TARGET_PKG/update overrides\n" if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
if [ -n "$disabled" ]; then echo "using $XBPS_TARGET_PKG/update overrides" 1>&2
msg_verbose "update-check DISABLED for $original_pkgname: $disabled\n"
return 0
fi fi
elif [ -z "$distfiles" ]; then elif [ -z "$distfiles" ]; then
msg_verbose "NO DISTFILES found for $original_pkgname\n" if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
echo "NO DISTFILES found for $original_pkgname" 1>&2
fi
return 0 return 0
fi fi
@ -69,7 +59,7 @@ update_check() {
*code.google.com*|*googlecode*|\ *code.google.com*|*googlecode*|\
*launchpad.net*|\ *launchpad.net*|\
*cpan.*|\ *cpan.*|\
*pythonhosted.org*|*pypi.org/project/*|\ *pythonhosted.org*|\
*github.com*|\ *github.com*|\
*//gitlab.*|\ *//gitlab.*|\
*bitbucket.org*|\ *bitbucket.org*|\
@ -100,9 +90,11 @@ update_check() {
esac esac
if [ "$rx" ]; then if [ "$rx" ]; then
# substitute url if needed # substitute url if needed
msg_verbose "(folder) fetching $urlpfx and scanning with $rx\n" if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
echo "(folder) fetching $urlpfx and scanning with $rx" 1>&2
fi
skipdirs= skipdirs=
curl "${curlargs[@]}" "$urlpfx" | curl -A "xbps-src-update-check/$XBPS_SRC_VERSION" --max-time 10 -Lsk "$urlpfx" |
grep -Po -i "$rx" | grep -Po -i "$rx" |
# sort -V places 1.1/ before 1/, but 1A/ before 1.1A/ # 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$::' | sed -e 's:$:A:' -e 's:/A$:A/:' | sort -Vru | sed -e 's:A/$:/A:' -e 's:A$::' |
@ -131,10 +123,9 @@ update_check() {
url="https://launchpad.net/$pkgurlname/+download";; url="https://launchpad.net/$pkgurlname/+download";;
*cpan.*) *cpan.*)
pkgname=${pkgname#perl-};; pkgname=${pkgname#perl-};;
*pythonhosted.org*|*pypi.org/project/*) *pythonhosted.org*)
pkgname=${pkgname#python-} pkgname=${pkgname#python-}
pkgname=${pkgname#python3-} pkgname=${pkgname#python3-}
rx="(?<=${pkgname//-/[-_]}-)[0-9.]+(post[0-9]*)?(?=(([.]tar|-cp|-py)))"
url="https://pypi.org/simple/$pkgname";; url="https://pypi.org/simple/$pkgname";;
*github.com*) *github.com*)
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)" pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
@ -146,16 +137,16 @@ update_check() {
*) pkgurlname="$(printf %s "$url" | cut -d / -f 1-5)";; *) pkgurlname="$(printf %s "$url" | cut -d / -f 1-5)";;
esac esac
url="$pkgurlname/-/tags" url="$pkgurlname/-/tags"
rx='/archive/[^/]+/\Q'"$pkgname"'\E-v?\K[\d.]+(?=\.tar\.gz)';; rx='/archive/[^/]+/\Q'"$pkgname"'\E-v?\K[\d.]+(?=\.tar\.gz")';;
*bitbucket.org*) *bitbucket.org*)
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)" pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
url="https://bitbucket.org/$pkgurlname/downloads" url="https://bitbucket.org/$pkgurlname/downloads"
rx='/(get|downloads)/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar)';; rx='/(get|downloads)/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar)';;
*ftp.gnome.org*|*download.gnome.org*) *ftp.gnome.org*|*download.gnome.org*)
rx='(?<=LATEST-IS-)([0-24-9]|3\.[0-9]*[02468]|[4-9][0-9]+)\.[0-9.]*[0-9](?=\")' : ${pattern="\Q$pkgname\E-\K(0|[13]\.[0-9]*[02468]|[4-9][0-9]+)\.[0-9.]*[0-9](?=.tar)"}
url="https://download.gnome.org/sources/$pkgname/cache.json";; url="https://download.gnome.org/sources/$pkgname/cache.json";;
*archive.xfce.org*) *archive.xfce.org*)
rx='\Q'"$pkgname"'\E-\K((([4-9]|([1-9][0-9]+))\.[0-9]*[02468]\.[0-9.]*[0-9])|([0-3]\.[0-9.]*))(?=.tar)' : ${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" ;; url="https://archive.xfce.org/feeds/project/$pkgname" ;;
*kernel.org/pub/linux/kernel/*) *kernel.org/pub/linux/kernel/*)
rx=linux-'\K'${version%.*}'[\d.]+(?=\.tar\.xz)';; rx=linux-'\K'${version%.*}'[\d.]+(?=\.tar\.xz)';;
@ -200,12 +191,16 @@ update_check() {
rx=${rx:-'(?<!-)\b\Q'"$pkgname"'\E[-_]?((src|source)[-_])?v?\K([^-/_\s]*?\d[^-/_\s]*?)(?=(?:[-_.](?:src|source|orig))?\.(?:[jt]ar|shar|t[bglx]z|tbz2|zip))\b'} rx=${rx:-'(?<!-)\b\Q'"$pkgname"'\E[-_]?((src|source)[-_])?v?\K([^-/_\s]*?\d[^-/_\s]*?)(?=(?:[-_.](?:src|source|orig))?\.(?:[jt]ar|shar|t[bglx]z|tbz2|zip))\b'}
if [ "${fetchedurls[$url]}" ]; then if [ "${fetchedurls[$url]}" ]; then
msg_verbose "already fetched $url\n" if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
echo "already fetched $url" 1>&2
fi
continue continue
fi fi
msg_verbose "fetching $url and scanning with $rx\n" if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
curl "${curlargs[@]}" -H 'Accept: text/html,application/xhtml+xml,application/xml,text/plain,application/rss+xml' "$url" | 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" grep -Po -i "$rx"
fetchedurls[$url]=yes fetchedurls[$url]=yes
done | done |
@ -215,7 +210,9 @@ update_check() {
grep . || echo "NO VERSION found for $original_pkgname" 1>&2 grep . || echo "NO VERSION found for $original_pkgname" 1>&2
} | } |
while IFS= read -r found_version; do while IFS= read -r found_version; do
msg_verbose "found version $found_version\n" if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
echo "found version $found_version"
fi
consider=true consider=true
p="$ignore " p="$ignore "
while [ -n "$p" ]; do while [ -n "$p" ]; do
@ -224,7 +221,9 @@ update_check() {
case "$found_version" in case "$found_version" in
$i) $i)
consider=false consider=false
msg_verbose "ignored $found_version due to $i\n" if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
echo "ignored $found_version due to $i"
fi
esac esac
done done
if $consider; then if $consider; then

View file

@ -24,13 +24,11 @@ emacs emacs
java-environment openjdk8 java-environment openjdk8
java-runtime openjdk8-jre java-runtime openjdk8-jre
libudev eudev-libudev libudev eudev-libudev
lightdm-greeter base-chroot-cyclic-solver
nodejs-runtime nodejs nodejs-runtime nodejs
ntp-daemon chrony ntp-daemon chrony
phonon-qt6-backend phonon-backend-vlc phonon-backend phonon-backend-gstreamer
phonon-qt5-backend phonon-qt5-backend-gstreamer phonon-qt5-backend phonon-qt5-backend-gstreamer
php-runtime php8.3 pipewire-session-manager pipewire-session-manager-bootstrap
pipewire-session-manager base-chroot-cyclic-solver
rkt-stage1 rkt-stage1-coreos rkt-stage1 rkt-stage1-coreos
smtp-server opensmtpd smtp-server opensmtpd
tex texlive tex texlive
@ -39,5 +37,3 @@ xserver-abi-video xorg-server
libGL libglvnd libGL libglvnd
libEGL libglvnd libEGL libglvnd
libGLES libglvnd libGLES libglvnd
hunspell-en_GB hunspell-en_GB-all
libadwaita libadwaita-without-adwaita

View file

@ -1,6 +1,6 @@
# voidlinux remote repositories (musl) # 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
repository=https://repo-default.voidlinux.org/current/musl/bootstrap
repository=https://repo-default.voidlinux.org/current/musl/nonfree repository=https://repo-default.voidlinux.org/current/musl/nonfree
repository=https://repo-default.voidlinux.org/current/musl/debug repository=https://repo-default.voidlinux.org/current/musl/debug

View file

@ -1,8 +1,8 @@
# voidlinux remote repositories (glibc) # 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
repository=https://repo-default.voidlinux.org/current/nonfree repository=https://repo-default.voidlinux.org/current/nonfree
repository=https://repo-default.voidlinux.org/current/debug repository=https://repo-default.voidlinux.org/current/debug
repository=https://repo-default.voidlinux.org/current/bootstrap
# Cereus Linux remote repositories (glibc) # Cereus Linux remote repositories (glibc)
repository=https://sourceforge.net/projects/cereus-linux/files/repos/cereus-core/x86_64 repository=https://sourceforge.net/projects/cereus-linux/files/repos/cereus-core/x86_64

View file

@ -6,18 +6,20 @@ build_style=meta
nostrip=yes nostrip=yes
repository="cereus-extra" repository="cereus-extra"
wrksrc=Graphite-color-schemes-${version} wrksrc=Graphite-color-schemes-${version}
depends="Graphite-color-schemes-light depends="Graphite-color-schemes-light \
Graphite-color-schemes-dark Graphite-color-schemes-dark \
Graphite-color-schemes-black Graphite-color-schemes-black \
Graphite-color-schemes-nord-light Graphite-color-schemes-nord-light \
Graphite-color-schemes-nord-dark" Graphite-color-schemes-nord-dark"
hostmakedepends="git"
short_desc="Custom additional color schemes of Graphite theme for KDE Plasma desktop" short_desc="Custom additional color schemes of Graphite theme for KDE Plasma desktop"
_commit="8b9a6b3d96c1cf3c476a46bd095b43c71aed33e1" maintainer="Kevin F. <https://github.com/KF-Art>"
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
license="GPL-3.0" license="GPL-3.0"
homepage="https://github.com/KF-Art/Graphite-color-schemes" homepage="https://github.com/KF-Art/Graphite-color-schemes"
distfiles="${homepage}/archive/${_commit}.tar.gz"
checksum=21caa00141911d6943692e2d384117973933b3129e37d3473c29158798e3a768 do_fetch() {
git clone https://github.com/KF-Art/Graphite-color-schemes ${wrksrc}
}
Graphite-color-schemes-light_package() { Graphite-color-schemes-light_package() {
short_desc+=" - light variant" short_desc+=" - light variant"

View file

@ -6,7 +6,7 @@ wrksrc=${pkgname}-main
repository="cereus-extra" repository="cereus-extra"
_cursordir=usr/share/icons _cursordir=usr/share/icons
short_desc="Graphite cursors theme for Linux desktops" short_desc="Graphite cursors theme for Linux desktops"
maintainer="Kevin Figueroa <kfdevart@disroot.org>" maintainer="KF-Art <https://github.com/KF-Art>"
license="GPL-3.0-or-later" license="GPL-3.0-or-later"
homepage="https://github.com/vinceliuice/${pkgname}" homepage="https://github.com/vinceliuice/${pkgname}"
distfiles="${homepage}/archive/refs/heads/main.zip" distfiles="${homepage}/archive/refs/heads/main.zip"

View file

@ -1,6 +1,6 @@
# Template file for 'Graphite-gtk-theme' # Template file for 'Graphite-gtk-theme'
pkgname=Graphite-gtk-theme pkgname=Graphite-gtk-theme
version=2023.12.31 version=2023.05.17
date=${version//./-} date=${version//./-}
revision=1 revision=1
repository="cereus-extra" repository="cereus-extra"
@ -25,18 +25,18 @@ ${pkgname}-nord-light
${pkgname}-nord-light-compact" ${pkgname}-nord-light-compact"
short_desc="Material design inspired GTK theme with light and dark variants" short_desc="Material design inspired GTK theme with light and dark variants"
maintainer="Kevin Figueroa <kfdevart@disroot.org>" maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="GPL-3.0" license="GPL-3.0"
homepage="https://github.com/vinceliuice/Graphite-gtk-theme" homepage="https://github.com/vinceliuice/Graphite-gtk-theme"
distfiles="${homepage}/archive/refs/tags/${date}.tar.gz" distfiles="${homepage}/archive/refs/tags/${date}.tar.gz"
checksum=b21c3803d2c34928b2f05c6bc9e58995545e135de780ffffc143027b33df4bac checksum=aa212d71ba70cfbc3038fc0f850b1265a9d85a3a87ae1a9da024127e25f53903
Graphite-gtk-theme-black_package() { Graphite-gtk-theme-black_package() {
nostrip=yes nostrip=yes
short_desc+=' - black variant' short_desc+=' - black variant'
pkg_install() { pkg_install() {
vmkdir ${theme_dir} vmkdir ${theme_dir}
./install.sh -t all -c dark -s standard -n Graphite-black --tweaks normal rimless black -d ${wrksrc}/themes ./install.sh -t all -c dark -s standard -n Graphite-black --tweaks rimless black -d ${wrksrc}/themes
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir} vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
rm -r ${wrksrc}/themes/* rm -r ${wrksrc}/themes/*
vlicense LICENSE vlicense LICENSE
@ -47,7 +47,7 @@ Graphite-gtk-theme-black-compact_package() {
short_desc+=' - black-compact variant' short_desc+=' - black-compact variant'
pkg_install() { pkg_install() {
vmkdir ${theme_dir} vmkdir ${theme_dir}
./install.sh -t all -c dark -s compact -n Graphite-black --tweaks normal rimless black -d ${wrksrc}/themes ./install.sh -t all -c dark -s compact -n Graphite-black --tweaks rimless black -d ${wrksrc}/themes
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir} vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
rm -r ${wrksrc}/themes/* rm -r ${wrksrc}/themes/*
vlicense LICENSE vlicense LICENSE
@ -58,7 +58,7 @@ Graphite-gtk-theme-dark_package() {
short_desc+=' - dark variant' short_desc+=' - dark variant'
pkg_install() { pkg_install() {
vmkdir ${theme_dir} vmkdir ${theme_dir}
./install.sh -t all -c dark -s standard --tweaks normal rimless -d ${wrksrc}/themes ./install.sh -t all -c dark -s standard --tweaks rimless -d ${wrksrc}/themes
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir} vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
rm -r ${wrksrc}/themes/* rm -r ${wrksrc}/themes/*
vlicense LICENSE vlicense LICENSE
@ -69,7 +69,7 @@ Graphite-gtk-theme-dark-compact_package() {
short_desc+=' - dark-compact variant' short_desc+=' - dark-compact variant'
pkg_install() { pkg_install() {
vmkdir ${theme_dir} vmkdir ${theme_dir}
./install.sh -t all -c dark -s compact --tweaks normal rimless -d ${wrksrc}/themes ./install.sh -t all -c dark -s compact --tweaks rimless -d ${wrksrc}/themes
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir} vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
rm -r ${wrksrc}/themes/* rm -r ${wrksrc}/themes/*
vlicense LICENSE vlicense LICENSE
@ -80,7 +80,7 @@ Graphite-gtk-theme-light_package() {
short_desc+=' - light variant' short_desc+=' - light variant'
pkg_install() { pkg_install() {
vmkdir ${theme_dir} vmkdir ${theme_dir}
./install.sh -t all -c light -s standard --tweaks normal rimless -d ${wrksrc}/themes ./install.sh -t all -c light -s standard --tweaks rimless -d ${wrksrc}/themes
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir} vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
rm -r ${wrksrc}/themes/* rm -r ${wrksrc}/themes/*
vlicense LICENSE vlicense LICENSE
@ -91,7 +91,7 @@ Graphite-gtk-theme-light-compact_package() {
short_desc+=' - light-compact variant' short_desc+=' - light-compact variant'
pkg_install() { pkg_install() {
vmkdir ${theme_dir} vmkdir ${theme_dir}
./install.sh -t all -c light -s compact --tweaks normal rimless -d ${wrksrc}/themes ./install.sh -t all -c light -s compact --tweaks rimless -d ${wrksrc}/themes
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir} vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
rm -r ${wrksrc}/themes/* rm -r ${wrksrc}/themes/*
vlicense LICENSE vlicense LICENSE
@ -102,7 +102,7 @@ Graphite-gtk-theme-nord-dark_package() {
short_desc+=' - nord-dark variant' short_desc+=' - nord-dark variant'
pkg_install() { pkg_install() {
vmkdir ${theme_dir} vmkdir ${theme_dir}
./install.sh -t all -c dark -s standard --tweaks normal rimless nord -d ${wrksrc}/themes ./install.sh -t all -c dark -s standard --tweaks rimless nord -d ${wrksrc}/themes
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir} vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
rm -r ${wrksrc}/themes/* rm -r ${wrksrc}/themes/*
vlicense LICENSE vlicense LICENSE
@ -113,7 +113,7 @@ Graphite-gtk-theme-nord-light_package() {
short_desc+=' - nord-light variant' short_desc+=' - nord-light variant'
pkg_install() { pkg_install() {
vmkdir ${theme_dir} vmkdir ${theme_dir}
./install.sh -t all -c light -s standard --tweaks normal rimless nord -d ${wrksrc}/themes ./install.sh -t all -c light -s standard --tweaks rimless nord -d ${wrksrc}/themes
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir} vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
rm -r ${wrksrc}/themes/* rm -r ${wrksrc}/themes/*
vlicense LICENSE vlicense LICENSE
@ -124,7 +124,7 @@ Graphite-gtk-theme-nord-dark-compact_package() {
short_desc+=' - nord-dark-compact variant' short_desc+=' - nord-dark-compact variant'
pkg_install() { pkg_install() {
vmkdir ${theme_dir} vmkdir ${theme_dir}
./install.sh -t all -c dark -s compact --tweaks normal rimless nord -d ${wrksrc}/themes ./install.sh -t all -c dark -s compact --tweaks rimless nord -d ${wrksrc}/themes
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir} vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
rm -r ${wrksrc}/themes/* rm -r ${wrksrc}/themes/*
vlicense LICENSE vlicense LICENSE
@ -135,7 +135,7 @@ Graphite-gtk-theme-nord-light-compact_package() {
short_desc+=' - nord-light-compact variant' short_desc+=' - nord-light-compact variant'
pkg_install() { pkg_install() {
vmkdir ${theme_dir} vmkdir ${theme_dir}
./install.sh -t all -c light -s compact --tweaks normal rimless nord -d ${wrksrc}/themes ./install.sh -t all -c light -s compact --tweaks rimless nord -d ${wrksrc}/themes
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir} vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
rm -r ${wrksrc}/themes/* rm -r ${wrksrc}/themes/*
vlicense LICENSE vlicense LICENSE

View file

@ -12,7 +12,7 @@ depends="${pkgname}-black
nostrip=yes nostrip=yes
wrksrc=Graphite-kvantum-colors-${version} wrksrc=Graphite-kvantum-colors-${version}
short_desc="Material design inspired Kvantum theme" short_desc="Material design inspired Kvantum theme"
maintainer="Kevin Figueroa <kfdevart@disroot.org>" maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="GPL-3.0" license="GPL-3.0"
homepage="https://github.com/KF-Art/Graphite-kvantum-colors" homepage="https://github.com/KF-Art/Graphite-kvantum-colors"
changelog="${homepage}/releases/tag/${version}" changelog="${homepage}/releases/tag/${version}"

@ -1 +1 @@
Subproject commit 63e53829cff756a2d1de84d823d3ede922ee625b Subproject commit 6a60aa0e13561acb6fa9cde4109bff1d8dddf61a

View file

@ -1,21 +1,20 @@
# Template file for 'Tela-icon-theme' # Template file for 'Tela-icon-theme'
pkgname=Tela-icon-theme pkgname=Tela-icon-theme
version=2024.04.19 version=2023.02.03
date=${version//./-} date=${version//./-}
revision=1 revision=1
build_style=meta build_style=meta
repository=cereus-extra repository=cereus-extra
depends="${pkgname}-standard depends="${pkgname}-standard \
${pkgname}-black ${pkgname}-black \
${pkgname}-brown ${pkgname}-blue \
${pkgname}-blue ${pkgname}-green \
${pkgname}-green ${pkgname}-grey \
${pkgname}-grey ${pkgname}-orange \
${pkgname}-orange ${pkgname}-pink \
${pkgname}-pink ${pkgname}-purple \
${pkgname}-purple ${pkgname}-red \
${pkgname}-red ${pkgname}-yellow \
${pkgname}-yellow
${pkgname}-manjaro ${pkgname}-manjaro
${pkgname}-ubuntu ${pkgname}-ubuntu
${pkgname}-nord" ${pkgname}-nord"
@ -25,11 +24,11 @@ icondir=usr/share/icons
wrksrc=${pkgname}-${date} wrksrc=${pkgname}-${date}
hostmakedepends="gtk-update-icon-cache" hostmakedepends="gtk-update-icon-cache"
short_desc="A flat colorful Design icon theme" short_desc="A flat colorful Design icon theme"
maintainer="Kevin Figueroa <kfdevart@disroot.org>" maintainer="Kevin F. <https://github.com/KF-Art>"
license="GPL-3.0" license="GPL-3.0"
homepage="https://github.com/vinceliuice/Tela-icon-theme" homepage="https://github.com/vinceliuice/Tela-icon-theme"
distfiles="${homepage}/archive/refs/tags/${date}.tar.gz" distfiles="${homepage}/archive/refs/tags/${date}.tar.gz"
checksum=bff62334a443023a18225b27c045d782822761566bc06e3117a07de54aa11c0c checksum=ab6bf283875a8d777d1a3c8b5969c78a0d329409a4561f4c0f22d36d69171e5d
Tela-icon-theme-standard_package() { Tela-icon-theme-standard_package() {
color=standard color=standard

View file

@ -0,0 +1,26 @@
# Template file for 'aleta-icon-theme'
pkgname=aleta-icon-theme
version=1.1pre8.2022.09.18
revision=1
hostmakedepends="git parallel optipng inkscape"
repository="cereus-extra"
_icondir="usr/share/icons"
short_desc="A material icon pack featuring gradients, squares, and white symbolics"
maintainer="KF-Art <https://github.com/KF-Art>"
license="CC-BY-SA-4.0"
homepage="https://git.owlcode.tech/germedeb/aleta-postre"
do_fetch() {
git clone ${homepage} ${wrksrc}
}
do_build() {
./tasks/build.sh -r
}
do_install() {
vmkdir ${_icondir}
vcopy _build/aleta ${_icondir}/
vcopy AUTHORS.md ${_icondir}/aleta/
vlicense LICENSES/CC-BY-SA-4.0.txt
}

View file

@ -1,22 +1,20 @@
# Template file for 'alttab-git' # Template file for 'alttab-git'
pkgname=alttab-git pkgname=alttab-git
version=2024.06.09 version=2023.03.19
revision=1 revision=1
build_style=gnu-configure build_style=gnu-configure
hostmakedepends="pkg-config" hostmakedepends="pkg-config git"
repository="cereus-extra" repository="cereus-extra"
makedepends="libX11-devel libXft-devel libXmu-devel libXrandr-devel makedepends="libX11-devel libXft-devel libXmu-devel libXrandr-devel
libXrender-devel libpng-devel libXpm-devel uthash automake" libXrender-devel libpng-devel libXpm-devel uthash automake"
checkdepends="procps-ng xvfb-run xeyes xprop" checkdepends="procps-ng xvfb-run xeyes xprop"
_commit="2c4c750e3d1813e7c75dce1058d24fb3d4cc3c80" short_desc="Task switcher for minimalistic window managers - git branch"
short_desc="Task switcher for minimalistic window managers - git development branch" maintainer="Kevin F. <kevinfigueroart@proton.me>"
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
license="GPL-3.0-or-later" license="GPL-3.0-or-later"
homepage="https://github.com/sagb/alttab" homepage="https://github.com/sagb/alttab"
changelog="https://github.com/sagb/alttab/raw/master/ChangeLog" changelog="https://github.com/sagb/alttab/raw/master/ChangeLog"
conflicts="alttab"
replaces="alttab" replaces="alttab"
distfiles="${homepage}/archive/${_commit}.tar.gz"
checksum=59b643c9c5cedd9cde4a02c1bd1efcd9683bb9b5c871dea4c271664f029b7160
make_check=no # needs cnee/xnee which is not packaged make_check=no # needs cnee/xnee which is not packaged
@ -28,3 +26,7 @@ case "$XBPS_TARGET_MACHINE" in
export LDFLAGS="-lfts" export LDFLAGS="-lfts"
;; ;;
esac esac
do_fetch() {
git clone ${homepage} ${wrksrc}
}

View file

@ -1,11 +1,11 @@
# Template file for 'base-cereus' # Template file for 'base-cereus'
pkgname=base-cereus pkgname=base-cereus
version=2023.11.12 version=2023.02.14
revision=1 revision=1
build_style=meta build_style=meta
repository=cereus-core repository=cereus-core
short_desc="Cereus Linux base system meta package" short_desc="Cereus Linux base system meta package"
maintainer="Kevin Figueroa <kfdevart@disroot.org>" maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="Public Domain" license="Public Domain"
conflicts="base-system" conflicts="base-system"
homepage="https://cereuslinuxproject.github.io" homepage="https://cereuslinuxproject.github.io"
@ -25,6 +25,5 @@ case "$XBPS_TARGET_MACHINE" in
esac esac
case "$XBPS_TARGET_MACHINE" in case "$XBPS_TARGET_MACHINE" in
x86_64*|ppc*) depends+=" linux-default-cereus";; i686*|x86_64*|ppc*) depends+=" linux-default-cereus";;
i686*) depends+=" linux-legacy-cereus" ;;
esac esac

View file

@ -1,11 +1,11 @@
# Template file for 'base-cereustrap' # Template file for 'base-cereustrap'
pkgname=base-cereustrap pkgname=base-cereustrap
version=0.11 version=0.11
revision=3 revision=2
build_style=meta build_style=meta
repository="cereus-core" repository="cereus-core"
short_desc="Cereus Linux base system meta package for containers/chroots" short_desc="Cereus Linux base system meta package for containers/chroots"
maintainer="Kevin Figueroa <kfdevart@disroot.org>" maintainer="Kevin F. <https://github.com/KF-Art>"
license="Public Domain" license="Public Domain"
homepage="https://cereuslinuxproject.github.io" homepage="https://cereuslinuxproject.github.io"
@ -14,8 +14,7 @@ depends="
dash bash grep gzip file sed gawk less util-linux which tar man-pages dash bash grep gzip file sed gawk less util-linux which tar man-pages
mdocml>=1.13.3 shadow e2fsprogs btrfs-progs xfsprogs f2fs-tools dosfstools kbd mdocml>=1.13.3 shadow e2fsprogs btrfs-progs xfsprogs f2fs-tools dosfstools kbd
procps-ng tzdata pciutils iana-etc eudev runit-cereus openssh dhcpcd procps-ng tzdata pciutils iana-etc eudev runit-cereus openssh dhcpcd
iproute2 iputils iw xbps nvi traceroute kmod removed-packages cereus-repo-core iproute2 iputils iw xbps nvi traceroute kmod removed-packages"
cereus-repo-extra"
case "$XBPS_TARGET_MACHINE" in case "$XBPS_TARGET_MACHINE" in
*-musl) depends+=" musl musl-locales";; *-musl) depends+=" musl musl-locales";;

View file

@ -7,7 +7,7 @@ build_style=meta
conflicts="base-chroot" conflicts="base-chroot"
repository=cereus-core repository=cereus-core
short_desc="Minimal set of packages required for chroot with xbps-src - Cereus patched version" short_desc="Minimal set of packages required for chroot with xbps-src - Cereus patched version"
maintainer="Kevin Figueroa <kfdevart@disroot.org>" maintainer="Kevin F. <https://github.com/KF-Art>"
license="Public Domain" license="Public Domain"
homepage="https://cereuslinuxproject.github.io" homepage="https://cereuslinuxproject.github.io"

View file

@ -38,8 +38,8 @@ make_system_dirs() {
# Create /var/run and /var/lock symlinks. # Create /var/run and /var/lock symlinks.
for d in run lock; do for d in run lock; do
if [ ! -h "var/${d}" -a -d "var/${d}" ]; then if [ ! -h "var/$d" -a -d var/${d} ]; then
echo "/var/${d} must not be a directory, exiting!" echo "/${d} must not be a directory, exiting!"
exit 1 exit 1
fi fi
done done

View file

@ -1 +0,0 @@
SUBSYSTEM=="usbmon", GROUP="usbmon", MODE="640"

View file

@ -20,7 +20,6 @@ COLOR tty
OPTIONS -F -T 0 OPTIONS -F -T 0
# Below, there should be one TERM entry for each termtype that is colorizable # Below, there should be one TERM entry for each termtype that is colorizable
TERM alacritty
TERM putty-256color TERM putty-256color
TERM rxvt-256color TERM rxvt-256color
TERM screen-256color TERM screen-256color

View file

@ -1,34 +0,0 @@
#compdef vkpurge
local context state state_descr line
typeset -A opt_args
local curcontext="$curcontext"
_arguments -C \
'1: :->subcmd' \
'*:: :->kernels'
case "$state" in
subcmd)
local subcommands=(
'list:list removable kernel versions'
'rm:remove removable kernel versions'
)
_describe -t commands subcommand subcommands
;;
kernels)
curcontext="${curcontext%:*:*}:vkpurge-$line[1]:"
case "$line[1]" in
list)
_arguments '1::version glob: '
;;
rm)
local kernels=(
'all:all removable kernels'
$(vkpurge list all)
)
_describe -t kernels kernel kernels
;;
esac
;;
esac

View file

@ -4,4 +4,3 @@
[[ $- != *i* ]] && return [[ $- != *i* ]] && return
alias ls='ls --color=auto' alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '

View file

@ -22,9 +22,6 @@ scanner:x:20:
network:x:21: network:x:21:
kvm:x:24: kvm:x:24:
input:x:25: input:x:25:
plugdev:x:26:
usbmon:x:27:
sgx:x:28:
nogroup:x:99: nogroup:x:99:
users:x:100: users:x:100:
xbuilder:x:101: xbuilder:x:101:

Some files were not shown because too many files have changed in this diff Show more