Compare commits
216 commits
Author | SHA1 | Date | |
---|---|---|---|
|
5024a54891 | ||
|
f0331f0fb0 | ||
|
cec1e5a8a3 | ||
|
f35f1857b3 | ||
|
5bcca9507b | ||
|
3ec46c5684 | ||
|
c0e6223120 | ||
|
fdc084aea4 | ||
|
10584b1bbb | ||
|
e9f12b44db | ||
|
d05106ae6f | ||
|
53c39cef30 | ||
|
60a6a870a7 | ||
|
ba08f9e09d | ||
|
77f56288b4 | ||
|
a6338f2652 | ||
|
cb9a59ac30 | ||
|
8ec970c577 | ||
|
265abea619 | ||
|
c762c8bd99 | ||
|
6fa69de4f0 | ||
|
4411e6d417 | ||
|
3f80e5d92d | ||
|
bb0684472e | ||
|
db9df2ed96 | ||
|
4a1a7bbe75 | ||
|
d04f621444 | ||
|
2600ebfd9b | ||
|
f09184e4b3 | ||
|
0eb7876e15 | ||
|
fa995f0f86 | ||
|
1cc721e1d9 | ||
|
fa2ba97a1b | ||
|
928da18170 | ||
|
3989ce51e2 | ||
|
331a7c2565 | ||
|
0352338737 | ||
|
d5cc740a53 | ||
|
0a5620076e | ||
|
c0ff09272f | ||
|
c3bb418ca9 | ||
|
f5a09a8be9 | ||
|
949c59ec52 | ||
|
64453da419 | ||
|
a92fe5e2ab | ||
|
be70f7b16b | ||
|
df8c9775c1 | ||
|
0b12c07c18 | ||
|
32117ee46c | ||
|
923d011c99 | ||
|
e91671c974 | ||
|
543a8571f2 | ||
|
e11c0b03b0 | ||
|
285887cd1a | ||
|
5617e71c9e | ||
|
5ad2e7ab37 | ||
|
d1cae1ff5c | ||
|
8be2068cb7 | ||
|
fa5e421bbb | ||
|
501e8039e4 | ||
|
5fd01a6d84 | ||
|
4969346713 | ||
|
e7c9130587 | ||
|
3ec714e0c5 | ||
|
4d10e56915 | ||
|
398c045793 | ||
|
25e7f193ad | ||
|
e569b49524 | ||
|
d75ce26f3a | ||
|
4b9487edfe | ||
|
552c558c44 | ||
|
8f82520c5d | ||
|
96db5c4665 | ||
|
b3edb47c88 | ||
|
f525d155a7 | ||
|
48d4d5e537 | ||
|
49249325d8 | ||
|
f16114c0ff | ||
|
d717e04fad | ||
|
2389cd7437 | ||
|
fa695dda6b | ||
|
055523ffd8 | ||
|
dfb15400cd | ||
|
2199cc97e2 | ||
|
b13cb02833 | ||
|
542d34f923 | ||
|
77bcd265c9 | ||
|
eb8200681f | ||
|
c4025a799a | ||
|
ca94e7ac07 | ||
|
453421dd6e | ||
|
5db73a4dde | ||
|
9068b3a698 | ||
|
6e8120eb97 | ||
|
4278fd4a6d | ||
|
5e1ad052ba | ||
|
6c3255ba40 | ||
|
fbd7d006a7 | ||
|
7a7c4f9428 | ||
|
99eea3a84b | ||
|
688d7ee8f1 | ||
|
f5b1769777 | ||
|
619b6af8a6 | ||
|
a1a46a978a | ||
|
e756ed7f74 | ||
|
0b3cca1c2d | ||
|
d15b2f245c | ||
|
585f34fae3 | ||
|
7fb4db0a48 | ||
|
392325f77e | ||
|
03dc473da4 | ||
|
03a2565a78 | ||
|
3d3e002fd8 | ||
|
b88f5fdc13 | ||
|
4e89b37f01 | ||
|
b399aa7057 | ||
|
a10870f754 | ||
|
29fc4bb26b | ||
|
08274556cc | ||
|
dbde27292d | ||
|
a5a26daa90 | ||
|
278af3305f | ||
|
a24cffe849 | ||
|
6c5b711893 | ||
|
ad269530d6 | ||
|
e5059b1cc9 | ||
|
b1c5ef30f5 | ||
|
21caebbee6 | ||
|
76b9099a77 | ||
|
ee864286ad | ||
|
59b54adcde | ||
|
c7d94bfd8d | ||
|
51b884d53b | ||
|
13431325c3 | ||
|
267d8e240f | ||
|
1956c44a7b | ||
|
c25cde7cd2 | ||
|
ad69052334 | ||
|
5c4542b19f | ||
|
c1ae50a429 | ||
|
dd4e0a3976 | ||
|
3fb441f181 | ||
|
e949ccbda9 | ||
|
ba4e2a2860 | ||
|
1441a9a6fe | ||
|
f1f247a042 | ||
|
b4f6a830ac | ||
|
abfec20528 | ||
|
2ae81bba28 | ||
|
3a7e1ac4a0 | ||
|
6348a5a144 | ||
|
4f9a28f834 | ||
|
1dba15b5a2 | ||
|
f5a4d376d2 | ||
|
3166b38d80 | ||
|
8336f0088e | ||
|
d8ad04e1b0 | ||
|
efdc2645f7 | ||
|
883a7393a3 | ||
|
25060f1bd4 | ||
|
65261012a2 | ||
|
977c6a3eeb | ||
|
90a1573088 | ||
|
068094c620 | ||
|
783f9c2423 | ||
|
bcf6d18b18 | ||
|
57b09ba37e | ||
|
430a1517ba | ||
|
1658ac318f | ||
|
e5c0c7b54f | ||
|
2f387a7e05 | ||
|
d850517d75 | ||
|
5d9224b208 | ||
|
29f19c2bde | ||
|
e0806b87c8 | ||
|
b52b757b5c | ||
|
d3e841016f | ||
|
cbb318eda9 | ||
|
9ef4625301 | ||
|
75584960e2 | ||
|
848817c37e | ||
|
0cf045b733 | ||
|
b99d08373d | ||
|
df6f4f2fd2 | ||
|
a542171d0c | ||
|
497ae16ca7 | ||
|
fab2e71932 | ||
|
a41587d52d | ||
|
276306e8f9 | ||
|
b98d40feaa | ||
|
f89d04d3f3 | ||
|
973a37f67b | ||
|
f346ecebdf | ||
|
6172d9d711 | ||
|
c11264e1a5 | ||
|
08f5110b45 | ||
|
75a4395d78 | ||
|
3b24945dd3 | ||
|
309febe73e | ||
|
942faffe77 | ||
|
5ecb31583b | ||
|
cb1f20e46d | ||
|
069fd4fa76 | ||
|
18a006cf7a | ||
|
7f278bc205 | ||
|
b4dea1080e | ||
|
2257482026 | ||
|
896c304841 | ||
|
2749e98ca9 | ||
|
55082610d9 | ||
|
bdc984ec99 | ||
|
b697462e4c | ||
|
10924cb352 | ||
|
23a2fb1d30 | ||
|
02da529e91 | ||
|
f8ab16bc2a |
304 changed files with 7222 additions and 8696 deletions
2
.github/workflows/cycles.yml
vendored
2
.github/workflows/cycles.yml
vendored
|
@ -10,7 +10,7 @@ jobs:
|
|||
permissions:
|
||||
issues: write
|
||||
container:
|
||||
image: 'ghcr.io/void-linux/xbps-src-masterdir:20220527RC01-x86_64-musl'
|
||||
image: 'ghcr.io/void-linux/xbps-src-masterdir:20230425RC01-x86_64-musl'
|
||||
steps:
|
||||
- name: Prepare container
|
||||
run: |
|
||||
|
|
2
.github/workflows/manual_check_cycles.yml
vendored
2
.github/workflows/manual_check_cycles.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
|||
permissions:
|
||||
issues: write
|
||||
container:
|
||||
image: 'ghcr.io/void-linux/xbps-src-masterdir:20220527RC01-x86_64-musl'
|
||||
image: 'ghcr.io/void-linux/xbps-src-masterdir:20230425RC01-x86_64-musl'
|
||||
steps:
|
||||
- name: Prepare container
|
||||
run: |
|
||||
|
|
22
.gitignore
vendored
22
.gitignore
vendored
|
@ -2,13 +2,23 @@
|
|||
*.swp
|
||||
*~
|
||||
\#*#
|
||||
*.o
|
||||
masterdir*
|
||||
hostdir*
|
||||
masterdir*/
|
||||
hostdir*/
|
||||
|
||||
# exclude everything in root except files and directories from void-packages
|
||||
/*
|
||||
!/.gitattributes
|
||||
!/.github
|
||||
!/.gitignore
|
||||
!/.mailmap
|
||||
!/CONTRIBUTING.md
|
||||
!/COPYING
|
||||
!/Manual.md
|
||||
!/README.md
|
||||
!/common
|
||||
!/etc
|
||||
!/srcpkgs
|
||||
!/xbps-src
|
||||
etc/conf
|
||||
etc/conf.*
|
||||
etc/virtual
|
||||
etc/xbps.d/custom
|
||||
.xbps-checkvers*.plist
|
||||
etc/repo-keys
|
||||
|
|
|
@ -20,6 +20,7 @@ while not meeting any of the following requirements, is a good candidate for the
|
|||
In particular, new themes are highly unlikely to be accepted.
|
||||
Simple shell scripts are unlikely to be accepted unless they provide considerable value to a broad user base.
|
||||
New fonts may be accepted if they provide value beyond aesthetics (e.g. they contain glyphs for a script missing in already packaged fonts).
|
||||
Packages related to cryptocurrencies (wallets, miners, nodes, etc) are not accepted.
|
||||
|
||||
Browser forks, including those based on Chromium and Firefox, are generally not accepted.
|
||||
Such forks require heavy patching, maintenance and hours of build time.
|
||||
|
@ -81,6 +82,29 @@ The checksum can be updated automatically with the `xgensum` helper from the [xt
|
|||
|
||||
$ 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
|
||||
|
||||
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:
|
||||
|
|
2
COPYING
2
COPYING
|
@ -1,5 +1,5 @@
|
|||
Copyright (c) 2008-2020 Juan Romero Pardines and contributors
|
||||
Copyright (c) 2017-2023 The Void Linux team and contributors
|
||||
Copyright (c) 2017-2024 The Void Linux team and contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
|
240
Manual.md
240
Manual.md
|
@ -5,7 +5,8 @@ packages for XBPS, the `Void Linux` native packaging system.
|
|||
|
||||
*Table of Contents*
|
||||
|
||||
* [Introduction](#Introduction)
|
||||
* The XBPS source packages manual
|
||||
* [Introduction](#Introduction)
|
||||
* [Package build phases](#buildphase)
|
||||
* [Package naming conventions](#namingconventions)
|
||||
* [Libraries](#libs)
|
||||
|
@ -27,20 +28,20 @@ packages for XBPS, the `Void Linux` native packaging system.
|
|||
* [Build helper scripts](#build_helper)
|
||||
* [Functions](#functions)
|
||||
* [Build options](#build_options)
|
||||
* [Runtime dependencies](#deps_runtime)
|
||||
* [INSTALL and REMOVE files](#install_remove_files)
|
||||
* [INSTALL.msg and REMOVE.msg files](#install_remove_files_msg)
|
||||
* [Creating system accounts/groups at runtime](#runtime_account_creation)
|
||||
* [Writing runit services](#writing_runit_services)
|
||||
* [32bit packages](#32bit_pkgs)
|
||||
* [Subpackages](#pkgs_sub)
|
||||
* [Development packages](#pkgs_development)
|
||||
* [Data packages](#pkgs_data)
|
||||
* [Documentation packages](#pkgs_documentation)
|
||||
* [Python packages](#pkgs_python)
|
||||
* [Go packages](#pkgs_go)
|
||||
* [Haskell packages](#pkgs_haskell)
|
||||
* [Font packages](#pkgs_font)
|
||||
* [Some package classes](#pkgs_classes)
|
||||
* [Development packages](#pkgs_development)
|
||||
* [Data packages](#pkgs_data)
|
||||
* [Documentation packages](#pkgs_documentation)
|
||||
* [Python packages](#pkgs_python)
|
||||
* [Go packages](#pkgs_go)
|
||||
* [Haskell packages](#pkgs_haskell)
|
||||
* [Font packages](#pkgs_font)
|
||||
* [Renaming a package](#pkg_rename)
|
||||
* [Removing a package](#pkg_remove)
|
||||
* [XBPS Triggers](#xbps_triggers)
|
||||
|
@ -61,7 +62,6 @@ packages for XBPS, the `Void Linux` native packaging system.
|
|||
* [kernel-hooks](#triggers_kernel_hooks)
|
||||
* [mimedb](#triggers_mimedb)
|
||||
* [mkdirs](#triggers_mkdirs)
|
||||
* [openjdk-profile](#triggers_openjdk_profile)
|
||||
* [pango-modules](#triggers_pango_module)
|
||||
* [pycompile](#triggers_pycompile)
|
||||
* [register-shell](#triggers_register_shell)
|
||||
|
@ -73,10 +73,10 @@ packages for XBPS, the `Void Linux` native packaging system.
|
|||
* [Void specific documentation](#documentation)
|
||||
* [Notes](#notes)
|
||||
* [Contributing via git](#contributing)
|
||||
* [Help](#help)
|
||||
* [Help](#help)
|
||||
|
||||
<a id="Introduction"></a>
|
||||
## Introduction
|
||||
### Introduction
|
||||
|
||||
The `void-packages` repository contains all the
|
||||
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`.
|
||||
if a second argument is not specified, the `daemon` facility is used.
|
||||
For more information about `vlogger` and available values for the facility,
|
||||
see [vlogger(1)](https://man.voidlinux.org/vlogger.1).
|
||||
see [vlogger(8)](https://man.voidlinux.org/vlogger.8).
|
||||
|
||||
- *vsed()* `vsed -i <file> -e <regex>`
|
||||
|
||||
|
@ -335,6 +335,29 @@ 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`,
|
||||
`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"`.
|
||||
|
||||
<a id="global_vars"></a>
|
||||
|
@ -440,8 +463,8 @@ the generated `binary packages` have been modified.
|
|||
- `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.
|
||||
|
||||
Neither `pkgname` or `version` should contain special characters which make it
|
||||
necessary to quote them, so they shouldn't be quoted in the template.
|
||||
`pkgname` and `version` are forbidden to contain special characters. Hence, they don't
|
||||
need to be quoted, and by convention, they shouldn't be.
|
||||
|
||||
<a id="optional_vars"></a>
|
||||
#### Optional variables
|
||||
|
@ -736,9 +759,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
|
||||
certain architectures or there is a compelling reason why the software should not be
|
||||
available on some supported architectures.
|
||||
Prepending pattern with tilde means disallowing build on indicated archs.
|
||||
First matching pattern is taken to allow/deny build. When no pattern matches,
|
||||
package is build if last pattern includes tilde.
|
||||
Prepending a pattern with a tilde means disallowing build on the indicated archs.
|
||||
The first matching pattern is taken to allow/deny build. When no pattern matches,
|
||||
the package is built if the last pattern includes a tilde.
|
||||
Examples:
|
||||
|
||||
```
|
||||
|
@ -787,20 +810,65 @@ should be listed in `checkdepends` and will be installed as if they were part of
|
|||
a D-Bus session for applications that need it
|
||||
- `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
|
||||
is unusable. These dependencies, when they aren't detected automatically by
|
||||
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.
|
||||
XBPS, should be listed in `depends`.
|
||||
|
||||
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
|
||||
not a particular package is present in `makedepends` or `hostmakedepends`, that
|
||||
package shouldn't be added as a build time dependency.
|
||||
|
||||
<a id="repositories"></a>
|
||||
#### Repositories
|
||||
### Repositories
|
||||
|
||||
<a id="repo_by_branch"></a>
|
||||
##### Repositories defined by Branch
|
||||
#### Repositories defined by Branch
|
||||
|
||||
The global repository takes the name of
|
||||
the current branch, except if the name of the branch is master. Then the resulting
|
||||
|
@ -808,17 +876,19 @@ 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.
|
||||
|
||||
<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
|
||||
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
|
||||
closed source packages, which are put in the `nonfree` repository and other
|
||||
packages which are at the root-repository.
|
||||
certain classes of packages.
|
||||
|
||||
The following repository names are valid:
|
||||
|
||||
* `nonfree`: Repository for closed source packages.
|
||||
* `bootstrap`: Repository for xbps-src-specific 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>
|
||||
### Checking for new upstream releases
|
||||
|
@ -859,6 +929,10 @@ in url. Defaults to `(|v|$pkgname)[-_.]*`.
|
|||
part that follows numeric part of version directory
|
||||
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>
|
||||
### Handling patches
|
||||
|
||||
|
@ -995,13 +1069,11 @@ system. Additional arguments may be passed to the `zig build` invocation using
|
|||
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:
|
||||
|
||||
- `python-module` to build *both* Python 2.x and 3.x modules
|
||||
- `python2-module` to build Python 2.x modules
|
||||
|
||||
- `python2-module` to build Python 2.x only modules
|
||||
- `python3-module` to build Python 3.x modules
|
||||
|
||||
- `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
|
||||
- `python3-pep517` to build Python 3.x modules that provide a PEP 517 build description without
|
||||
a `setup.py` script
|
||||
|
||||
Environment variables for a specific `build_style` can be declared in a filename
|
||||
|
@ -1020,8 +1092,7 @@ suitable environment for working with certain sets of packages.
|
|||
|
||||
The current list of available `build_helper` scripts is the following:
|
||||
|
||||
- `rust` specifies environment variables required for cross-compiling crates via cargo and
|
||||
for compiling cargo -sys crates.
|
||||
- `cmake-wxWidgets-gtk3` sets the `WX_CONFIG` variable which is used by FindwxWidgets.cmake
|
||||
|
||||
- `gir` specifies dependencies for native and cross builds to deal with
|
||||
GObject Introspection. The following variables may be set in the template to handle
|
||||
|
@ -1031,6 +1102,20 @@ 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
|
||||
`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
|
||||
executing cross-compiled binaries inside qemu.
|
||||
It sets `CMAKE_CROSSCOMPILING_EMULATOR` for cmake and `exe_wrapper` for meson
|
||||
|
@ -1044,7 +1129,9 @@ 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-makefile` style, respectively.
|
||||
|
||||
- `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. This helper is added by default for packages that use the
|
||||
`cargo` build style.
|
||||
|
||||
<a id="functions"></a>
|
||||
### Functions
|
||||
|
@ -1160,6 +1247,11 @@ package accordingly. Additionally, the following functions are available:
|
|||
Outputs `-D<property>=true` if the option is set, or
|
||||
`-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
|
||||
configure to enable a new build option to support PNG images:
|
||||
|
||||
|
@ -1216,52 +1308,6 @@ Example: `XBPS_PKG_OPTIONS_xorg_server=opt`.
|
|||
The list of supported package build options and its description is defined in the
|
||||
`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>
|
||||
### INSTALL and REMOVE files
|
||||
|
||||
|
@ -1317,6 +1363,8 @@ 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
|
||||
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>
|
||||
### Creating system accounts/groups at runtime
|
||||
|
||||
|
@ -1478,8 +1526,11 @@ destdir (`$DESTDIR`) to the `subpackage` destdir (`$PKGDESTDIR`).
|
|||
Subpackages are processed always in alphabetical order; To force a custom order,
|
||||
the `subpackages` variable can be declared with the wanted order.
|
||||
|
||||
<a id="pkgs_classes"></a>
|
||||
### Some package classes
|
||||
|
||||
<a id="pkgs_development"></a>
|
||||
### Development packages
|
||||
#### Development packages
|
||||
|
||||
A development package, commonly generated as a subpackage, shall only contain
|
||||
files required for development, that is, headers, static libraries, shared
|
||||
|
@ -1509,7 +1560,7 @@ following subset of files from the main package:
|
|||
* Vala bindings `usr/share/vala`
|
||||
|
||||
<a id="pkgs_data"></a>
|
||||
### Data packages
|
||||
#### Data packages
|
||||
|
||||
Another common subpackage type is the `-data` subpackage. This subpackage
|
||||
type used to split architecture independent, big(ger) or huge amounts
|
||||
|
@ -1521,7 +1572,7 @@ The main package must then have `depends="${pkgname}-data-${version}_${revision}
|
|||
possibly in addition to other, non-automatic depends.
|
||||
|
||||
<a id="pkgs_documentation"></a>
|
||||
### Documentation packages
|
||||
#### Documentation packages
|
||||
|
||||
Packages intended for user interaction do not always unconditionally require
|
||||
their documentation part. A user who does not want to e.g. develop
|
||||
|
@ -1536,7 +1587,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.
|
||||
|
||||
<a id="pkgs_python"></a>
|
||||
### Python packages
|
||||
#### Python packages
|
||||
|
||||
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
|
||||
|
@ -1579,6 +1630,8 @@ In most cases version is inferred from shebang, install path or build style.
|
|||
Only required for some multi-language
|
||||
applications (e.g., the application is written in C while the command is
|
||||
written in Python) or just single Python file ones that live in `/usr/bin`.
|
||||
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:
|
||||
|
||||
|
@ -1597,7 +1650,7 @@ Also, a set of useful variables are defined to use in the templates:
|
|||
python versions.
|
||||
|
||||
<a id="pkgs_go"></a>
|
||||
### Go packages
|
||||
#### Go packages
|
||||
|
||||
Go packages should be built with the `go` build style, if possible.
|
||||
The `go` build style takes care of downloading Go dependencies and
|
||||
|
@ -1631,7 +1684,7 @@ The path to the package's source inside `$GOPATH` is available as
|
|||
`$GOSRCPATH`.
|
||||
|
||||
<a id="pkgs_haskell"></a>
|
||||
### Haskell packages
|
||||
#### Haskell packages
|
||||
|
||||
We build Haskell package using `stack` from
|
||||
[Stackage](http://www.stackage.org/), generally the LTS versions.
|
||||
|
@ -1649,7 +1702,7 @@ The following variables influence how Haskell packages are built:
|
|||
you can add your `--flag ...` parameters there.
|
||||
|
||||
<a id="pkgs_font"></a>
|
||||
### Font packages
|
||||
#### Font packages
|
||||
|
||||
Font packages are very straightforward to write, they are always set with the
|
||||
following variables:
|
||||
|
@ -1906,7 +1959,7 @@ If it is running under another architecture it tries to use the host's `install-
|
|||
utility.
|
||||
|
||||
<a id="triggers_initramfs_regenerate"></a>
|
||||
### initramfs-regenerate
|
||||
#### initramfs-regenerate
|
||||
|
||||
The initramfs-regenerate trigger will trigger the regeneration of all kernel
|
||||
initramfs images after package installation or removal. The trigger must be
|
||||
|
@ -1987,13 +2040,6 @@ During removal it will delete the directory using `rmdir`.
|
|||
To include this trigger use the `make_dirs` variable, as the trigger won't do anything
|
||||
unless it is defined.
|
||||
|
||||
<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>
|
||||
#### pango-modules
|
||||
|
||||
|
@ -2138,7 +2184,7 @@ otherwise the `debug` packages won't have debugging symbols.
|
|||
<a id="contributing"></a>
|
||||
### Contributing via git
|
||||
|
||||
To get started, [fork](https://help.github.com/articles/fork-a-repo) the void-linux `void-packages` git repository on GitHub and clone it:
|
||||
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:
|
||||
|
||||
$ git clone git@github.com:<user>/void-packages.git
|
||||
|
||||
|
@ -2155,7 +2201,7 @@ to pull in new changes:
|
|||
$ git pull --rebase upstream master
|
||||
|
||||
<a id="help"></a>
|
||||
## Help
|
||||
### Help
|
||||
|
||||
If after reading this `manual` you still need some kind of help, please join
|
||||
us at `#xbps` via IRC at `irc.libera.chat`.
|
||||
|
|
36
README.md
36
README.md
|
@ -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.
|
||||
|
||||
```
|
||||
# xi <package_name>
|
||||
$ xi <package_name>
|
||||
```
|
||||
|
||||
<a name="chroot-methods"></a>
|
||||
|
@ -217,7 +217,7 @@ The following directory hierarchy is used with a default configuration file:
|
|||
| |- repocache ...
|
||||
| |- sources ...
|
||||
|
|
||||
|- masterdir
|
||||
|- masterdir-<arch>
|
||||
| |- builddir -> ...
|
||||
| |- destdir -> ...
|
||||
| |- 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:
|
||||
|
||||
- `masterdir`: master directory to be used as rootfs to build/install packages.
|
||||
- `masterdir-<arch>`: master directory to be used as rootfs to build/install packages.
|
||||
- `builddir`: to unpack package source tarballs and where packages are built.
|
||||
- `destdir`: to install packages, aka **fake destdir**.
|
||||
- `hostdir/ccache`: to store ccache data if the `XBPS_CCACHE` option is enabled.
|
||||
|
@ -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
|
||||
it via the `XBPS_PASSPHRASE` environment variable.
|
||||
|
||||
Once the binary packages have been signed, check the repository contains the appropriate `hex fingerprint`:
|
||||
Once the binary packages have been signed, check if the repository contains the appropriate `hex fingerprint`:
|
||||
|
||||
$ xbps-query --repository=hostdir/binpkgs -vL
|
||||
...
|
||||
|
@ -340,11 +340,14 @@ 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.
|
||||
|
||||
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>
|
||||
### Rebuilding and overwriting existing local packages
|
||||
|
||||
Packages are overwritten on every build to make getting package with changed build options easy.
|
||||
To make xbps-src skip build and preserve first package build with with given version and revision,
|
||||
To make xbps-src skip build and preserve first package build with given version and revision,
|
||||
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:
|
||||
|
@ -359,7 +362,7 @@ the package from the desired repository.
|
|||
<a name="distcc"></a>
|
||||
### Enabling distcc for distributed compilation
|
||||
|
||||
Setup the slaves (machines that will compile the code):
|
||||
Setup the workers (machines that will compile the code):
|
||||
|
||||
# xbps-install -Sy distcc
|
||||
|
||||
|
@ -372,7 +375,7 @@ Enable and start the `distccd` service:
|
|||
# ln -s /etc/sv/distccd /var/service
|
||||
|
||||
Install distcc on the host (machine that executes xbps-src) as well.
|
||||
Unless you want to use the host as slave from other machines, there is no need
|
||||
Unless you want to use the host as worker from other machines, there is no need
|
||||
to modify the configuration.
|
||||
|
||||
On the host you can now enable distcc in the `void-packages/etc/conf` file:
|
||||
|
@ -383,8 +386,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 number of slots for preprocessor jobs is set to 24 in order to have enough preprocessed data for other CPUs to compile.
|
||||
The slave 192.168.2.101 has a CPU with 8 cores and the /9 for the number of jobs is a saturating choice.
|
||||
The slave 192.168.2.102 is set to run at most 2 compile jobs to keep its load low, even if its CPU has 4 cores.
|
||||
The worker 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 XBPS_MAKEJOBS setting is increased to 16 to account for the possible parallelism (2 + 9 + 2 + some slack).
|
||||
|
||||
<a name="distfiles-mirrors"></a>
|
||||
|
@ -431,7 +434,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:
|
||||
|
||||
$ wget http://alpha.de.repo.voidlinux.org/static/xbps-static-latest.<arch>-musl.tar.xz
|
||||
$ wget http://repo-default.voidlinux.org/static/xbps-static-latest.<arch>-musl.tar.xz
|
||||
$ mkdir ~/XBPS
|
||||
$ tar xvf xbps-static-latest.<arch>-musl.tar.xz -C ~/XBPS
|
||||
$ export PATH=~/XBPS/usr/bin:$PATH
|
||||
|
@ -447,7 +450,7 @@ and `xbps-src` should be fully functional; just start the `bootstrap` process, i
|
|||
|
||||
$ ./xbps-src binary-bootstrap
|
||||
|
||||
The default masterdir is created in the current working directory, i.e `void-packages/masterdir`.
|
||||
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.
|
||||
|
||||
<a name="remaking-masterdir"></a>
|
||||
### Remaking the masterdir
|
||||
|
@ -474,20 +477,21 @@ Two ways are available to build 32bit packages on x86\_64:
|
|||
|
||||
The canonical mode (native) needs a new x86 `masterdir`:
|
||||
|
||||
$ ./xbps-src -m masterdir-x86 binary-bootstrap i686
|
||||
$ ./xbps-src -m masterdir-x86 ...
|
||||
$ ./xbps-src -A i686 binary-bootstrap
|
||||
$ ./xbps-src -A i686 ...
|
||||
|
||||
<a name="building-for-musl"></a>
|
||||
### Building packages natively for the musl C library
|
||||
|
||||
Canonical way of building packages for same architecture but different C library is through dedicated masterdir.
|
||||
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`.
|
||||
To build for x86_64-musl on glibc x86_64 system, prepare a new masterdir with the musl packages:
|
||||
|
||||
$ ./xbps-src -m masterdir-x86_64-musl binary-bootstrap x86_64-musl
|
||||
$ ./xbps-src -A x86_64-musl binary-bootstrap
|
||||
|
||||
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:
|
||||
|
||||
$ ./xbps-src -m masterdir-x86_64-musl pkg ...
|
||||
$ ./xbps-src -A x86_64-musl pkg ...
|
||||
|
||||
<a name="building-base-system"></a>
|
||||
### Building void base-system from scratch
|
||||
|
|
86
common/build-helper/meson.sh
Normal file
86
common/build-helper/meson.sh
Normal file
|
@ -0,0 +1,86 @@
|
|||
# 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
|
|
@ -11,27 +11,43 @@ if [[ $hostmakedepends != *"python3-numpy"* ]]; then
|
|||
hostmakedepends+=" python3-numpy"
|
||||
fi
|
||||
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
if [[ $makedepends != *"python3-numpy"* ]]; then
|
||||
makedepends+=" python3-numpy"
|
||||
fi
|
||||
[ -z "$CROSS_BUILD" ] && return 0
|
||||
|
||||
# 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
|
||||
if [[ $makedepends != *"python3-numpy"* ]]; then
|
||||
makedepends+=" python3-numpy"
|
||||
fi
|
||||
|
||||
# python3-setuptools finds numpy libs and headers on the host first;
|
||||
# adding search paths up front allows the target to take priority
|
||||
CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_sitelib}/numpy/core/include"
|
||||
LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_sitelib}/numpy/core/lib"
|
||||
LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_sitelib}/numpy/random/lib"
|
||||
|
||||
# distutils from python3-numpy looks to environment variables F77 and
|
||||
# F90 rather than the XBPS-set FC
|
||||
export F77="${FC}"
|
||||
export F90="${FC}"
|
||||
|
||||
# When compiling and linking FORTRAN, distutils from python3-numpy
|
||||
# refuses respect any linker name except "gfortran"; symlink to the
|
||||
# cross-compiler to that the right linker and compiler will be used
|
||||
if _gfortran=$(command -v "${FC}"); then
|
||||
ln -sf "${_gfortran}" "${XBPS_WRAPPERDIR}/gfortran"
|
||||
fi
|
||||
unset _gfortran
|
||||
|
||||
# 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
|
||||
unset _npy_meson_cross _cross_py_site
|
||||
fi
|
||||
|
|
|
@ -30,9 +30,16 @@ else
|
|||
unset CARGO_BUILD_TARGET
|
||||
fi
|
||||
|
||||
# prevent cargo stripping debug symbols
|
||||
export CARGO_PROFILE_RELEASE_STRIP=false
|
||||
|
||||
# For cross-compiling rust -sys crates
|
||||
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
|
||||
export GETTEXT_BIN_DIR=/usr/bin
|
||||
export GETTEXT_LIB_DIR="${XBPS_CROSS_BASE}/usr/lib/gettext"
|
||||
|
@ -57,3 +64,12 @@ export ZSTD_SYS_USE_PKG_CONFIG=1
|
|||
|
||||
# onig-sys
|
||||
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
|
||||
|
|
7
common/build-profiles/riscv64-musl.sh
Normal file
7
common/build-profiles/riscv64-musl.sh
Normal file
|
@ -0,0 +1,7 @@
|
|||
XBPS_TARGET_CFLAGS="-march=rv64imafdc"
|
||||
XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS"
|
||||
XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS"
|
||||
XBPS_TRIPLET="riscv64-unknown-linux-musl"
|
||||
XBPS_RUST_TARGET="riscv64gc-unknown-linux-musl"
|
||||
XBPS_ZIG_TARGET="riscv64-linux-musl"
|
||||
XBPS_ZIG_CPU="baseline"
|
7
common/build-profiles/riscv64.sh
Normal file
7
common/build-profiles/riscv64.sh
Normal file
|
@ -0,0 +1,7 @@
|
|||
XBPS_TARGET_CFLAGS="-march=rv64imafdc"
|
||||
XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS"
|
||||
XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS"
|
||||
XBPS_TRIPLET="riscv64-unknown-linux-gnu"
|
||||
XBPS_RUST_TARGET="riscv64gc-unknown-linux-gnu"
|
||||
XBPS_ZIG_TARGET="riscv64-linux-gnu"
|
||||
XBPS_ZIG_CPU="baseline"
|
|
@ -31,6 +31,7 @@ _EOF
|
|||
ppc64*) _CMAKE_SYSTEM_PROCESSOR=ppc64 ;;
|
||||
ppcle*) _CMAKE_SYSTEM_PROCESSOR=ppcle ;;
|
||||
ppc*) _CMAKE_SYSTEM_PROCESSOR=ppc ;;
|
||||
riscv64*) _CMAKE_SYSTEM_PROCESSOR=riscv64 ;;
|
||||
*) _CMAKE_SYSTEM_PROCESSOR=generic ;;
|
||||
esac
|
||||
cat > cross_${XBPS_CROSS_TRIPLET}.cmake <<_EOF
|
||||
|
@ -39,6 +40,7 @@ SET(CMAKE_SYSTEM_VERSION 1)
|
|||
|
||||
SET(CMAKE_C_COMPILER ${CC})
|
||||
SET(CMAKE_CXX_COMPILER ${CXX})
|
||||
SET(Rust_CARGO_TARGET ${XBPS_CROSS_RUST_TARGET})
|
||||
SET(CMAKE_CROSSCOMPILING TRUE)
|
||||
|
||||
SET(CMAKE_SYSTEM_PROCESSOR ${_CMAKE_SYSTEM_PROCESSOR})
|
||||
|
@ -51,11 +53,10 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|||
_EOF
|
||||
cmake_args+=" -DCMAKE_TOOLCHAIN_FILE=${wrksrc}/${build_wrksrc}/${cmake_builddir}/cross_${XBPS_CROSS_TRIPLET}.cmake"
|
||||
fi
|
||||
cmake_args+=" -DCMAKE_INSTALL_PREFIX=/usr"
|
||||
cmake_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
|
||||
cmake_args+=" -DCMAKE_BUILD_TYPE=None"
|
||||
cmake_args+=" -DCMAKE_INSTALL_LIBDIR=lib${XBPS_TARGET_WORDSIZE}"
|
||||
cmake_args+=" -DCMAKE_INSTALL_SYSCONFDIR=/etc"
|
||||
cmake_args+=" -DFETCHCONTENT_FULLY_DISCONNECTED=ON"
|
||||
cmake_args+=" -DCMAKE_INSTALL_LIBDIR:PATH=lib${XBPS_TARGET_WORDSIZE}"
|
||||
cmake_args+=" -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc"
|
||||
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
cmake_args+=" -DQT_HOST_PATH=/usr"
|
||||
|
@ -69,7 +70,7 @@ _EOF
|
|||
>> cross_${XBPS_CROSS_TRIPLET}.cmake
|
||||
fi
|
||||
|
||||
cmake_args+=" -DCMAKE_INSTALL_SBINDIR=bin"
|
||||
cmake_args+=" -DCMAKE_INSTALL_SBINDIR:PATH=bin"
|
||||
|
||||
export CMAKE_GENERATOR="${CMAKE_GENERATOR:-Ninja}"
|
||||
# Remove -pipe: https://gitlab.kitware.com/cmake/cmake/issues/19590
|
||||
|
|
|
@ -32,6 +32,16 @@ do_build() {
|
|||
go_package=${go_package:-$go_import_path}
|
||||
# Build using Go modules if there's a go.mod file
|
||||
if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then
|
||||
|
||||
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
|
||||
msg_normal "Using vendor dir for $pkgname Go dependencies.\n"
|
||||
go_mod_mode=vendor
|
||||
|
@ -40,10 +50,13 @@ do_build() {
|
|||
# default behavior.
|
||||
go_mod_mode=
|
||||
fi
|
||||
go install -p "$XBPS_MAKEJOBS" -mod="${go_mod_mode}" -modcacherw -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
|
||||
go install -p "$XBPS_MAKEJOBS" -mod="${go_mod_mode}" -modcacherw -v -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
|
||||
if [[ -n "${_go_mod_path}" ]]; then
|
||||
popd
|
||||
fi
|
||||
else
|
||||
# Otherwise, build using GOPATH
|
||||
go get -p "$XBPS_MAKEJOBS" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
|
||||
go install -p "$XBPS_MAKEJOBS" -v -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -1,94 +1,11 @@
|
|||
#
|
||||
# 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() {
|
||||
: ${meson_cmd:=meson}
|
||||
: ${meson_builddir:=build}
|
||||
: ${meson_crossfile:=xbps_meson.cross}
|
||||
: ${meson_crossfile:="${XBPS_WRAPPERDIR}/meson/xbps_meson.cross"}
|
||||
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
configure_args+=" --cross-file=${meson_crossfile}"
|
||||
|
|
|
@ -1,96 +0,0 @@
|
|||
#
|
||||
# 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
|
||||
}
|
|
@ -12,7 +12,7 @@ do_check() {
|
|||
if python3 -c 'import xdist' >/dev/null 2>&1; then
|
||||
testjobs="-n $XBPS_MAKEJOBS"
|
||||
fi
|
||||
PYTHONPATH="$(cd build/lib* && pwd)" \
|
||||
PYTHONPATH="$(cd build/lib* && pwd)" PY_IGNORE_IMPORTMISMATCH=1 \
|
||||
${make_check_pre} \
|
||||
python3 -m pytest ${testjobs} ${make_check_args} ${make_check_target}
|
||||
else
|
||||
|
|
|
@ -4,8 +4,18 @@
|
|||
|
||||
do_build() {
|
||||
: ${make_build_target:=.}
|
||||
: ${make_build_args:=--no-isolation --wheel}
|
||||
python3 -m build ${make_build_args} ${make_build_target}
|
||||
|
||||
if [ "${CROSS_BUILD}" ] && [[ "${build_helper}" = *meson* ]]; then
|
||||
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() {
|
||||
|
@ -19,11 +29,11 @@ do_check() {
|
|||
testjobs="-n $XBPS_MAKEJOBS"
|
||||
fi
|
||||
|
||||
local testdir="${wrksrc}/tmp/$(date +%s)"
|
||||
local testdir="${wrksrc}/.xbps-testdir/$(date +%s)"
|
||||
python3 -m installer --destdir "${testdir}" \
|
||||
${make_install_args} ${make_install_target:-dist/*.whl}
|
||||
|
||||
PATH="${testdir}/usr/bin:${PATH}" PYTHONPATH="${testdir}/${py3_sitelib}" \
|
||||
PATH="${testdir}/usr/bin:${PATH}" PYTHONPATH="${testdir}/${py3_sitelib}" PY_IGNORE_IMPORTMISMATCH=1 \
|
||||
${make_check_pre} pytest3 ${testjobs} ${make_check_args} ${make_check_target}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,17 +4,22 @@
|
|||
do_configure() {
|
||||
local qmake
|
||||
local qmake_args
|
||||
local qt
|
||||
if [ -x "/usr/lib/qt5/bin/qmake" ]; then
|
||||
qmake="/usr/lib/qt5/bin/qmake"
|
||||
local qt=${QT:-}
|
||||
local builddir="${wrksrc}/${build_wrksrc}"
|
||||
cd ${builddir}
|
||||
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"
|
||||
elif [ -x "/usr/lib/qt6/bin/qmake" ]; then
|
||||
qmake="/usr/lib/qt6/bin/qmake"
|
||||
qt="qt6"
|
||||
fi
|
||||
if [ -z "${qmake}" ]; then
|
||||
else
|
||||
msg_error "${pkgver}: Could not find qmake - missing in hostmakedepends?\n"
|
||||
fi
|
||||
qmake="/usr/lib/${qt}/bin/qmake"
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
case $XBPS_TARGET_MACHINE in
|
||||
i686*) _qt_arch=i386;;
|
||||
|
@ -25,8 +30,8 @@ do_configure() {
|
|||
ppc64*) _qt_arch=power64;;
|
||||
ppc*) _qt_arch=power;;
|
||||
esac
|
||||
mkdir -p "${wrksrc}/.target-spec/linux-g++"
|
||||
cat > "${wrksrc}/.target-spec/linux-g++/qmake.conf" <<_EOF
|
||||
mkdir -p "${builddir}/.target-spec/linux-g++"
|
||||
cat > "${builddir}/.target-spec/linux-g++/qmake.conf" <<_EOF
|
||||
MAKEFILE_GENERATOR = UNIX
|
||||
CONFIG += incremental no_qt_rpath
|
||||
QMAKE_INCREMENTAL_STYLE = sublib
|
||||
|
@ -54,10 +59,10 @@ QMAKE_CXXFLAGS = ${CXXFLAGS}
|
|||
QMAKE_LFLAGS = ${LDFLAGS}
|
||||
load(qt_config)
|
||||
_EOF
|
||||
echo "#include \"${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h\"" > "${wrksrc}/.target-spec/linux-g++/qplatformdefs.h"
|
||||
echo "#include \"${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h\"" > "${builddir}/.target-spec/linux-g++/qplatformdefs.h"
|
||||
|
||||
mkdir -p "${wrksrc}/.host-spec/linux-g++"
|
||||
cat > "${wrksrc}/.host-spec/linux-g++/qmake.conf" <<_EOF
|
||||
mkdir -p "${builddir}/.host-spec/linux-g++"
|
||||
cat > "${builddir}/.host-spec/linux-g++/qmake.conf" <<_EOF
|
||||
MAKEFILE_GENERATOR = UNIX
|
||||
CONFIG += incremental no_qt_rpath
|
||||
QMAKE_INCREMENTAL_STYLE = sublib
|
||||
|
@ -84,8 +89,8 @@ QMAKE_CXXFLAGS = ${CXXFLAGS_host}
|
|||
QMAKE_LFLAGS = ${LDFLAGS_host}
|
||||
load(qt_config)
|
||||
_EOF
|
||||
echo '#include "/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h"' > "${wrksrc}/.host-spec/linux-g++/qplatformdefs.h"
|
||||
cat > "${wrksrc}/qt.conf" <<_EOF
|
||||
echo '#include "/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h"' > "${builddir}/.host-spec/linux-g++/qplatformdefs.h"
|
||||
cat > "${builddir}/qt.conf" <<_EOF
|
||||
[Paths]
|
||||
Sysroot=${XBPS_CROSS_BASE}
|
||||
Prefix=/usr
|
||||
|
@ -108,10 +113,10 @@ HostData=/usr/lib/${qt}
|
|||
HostBinaries=/usr/lib/${qt}/bin
|
||||
HostLibraries=/usr/lib
|
||||
HostLibraryExecutables=/usr/lib/${qt}/libexec
|
||||
Spec=${wrksrc}/.host-spec/linux-g++
|
||||
TargetSpec=${wrksrc}/.target-spec/linux-g++
|
||||
Spec=${builddir}/.host-spec/linux-g++
|
||||
TargetSpec=${builddir}/.target-spec/linux-g++
|
||||
_EOF
|
||||
qmake_args="-qtconf ${wrksrc}/qt.conf PKG_CONFIG_EXECUTABLE=${XBPS_WRAPPERDIR}/${PKG_CONFIG}"
|
||||
qmake_args="-qtconf ${builddir}/qt.conf PKG_CONFIG_EXECUTABLE=${XBPS_WRAPPERDIR}/${PKG_CONFIG}"
|
||||
${qmake} ${qmake_args} \
|
||||
PREFIX=/usr \
|
||||
QT_INSTALL_PREFIX=/usr \
|
||||
|
@ -134,6 +139,7 @@ _EOF
|
|||
}
|
||||
|
||||
do_build() {
|
||||
cd "${wrksrc}/${build_wrksrc}"
|
||||
: ${make_cmd:=make}
|
||||
|
||||
${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} \
|
||||
|
@ -141,6 +147,7 @@ do_build() {
|
|||
}
|
||||
|
||||
do_install() {
|
||||
cd "${wrksrc}/${build_wrksrc}"
|
||||
: ${make_cmd:=make}
|
||||
: ${make_install_target:=install}
|
||||
|
||||
|
|
|
@ -3,14 +3,11 @@ do_build() {
|
|||
# Extract the source files
|
||||
mkdir -p "build/usr/share/texmf-dist"
|
||||
find . -maxdepth 1 -print -name "*.tar.xz" \
|
||||
-exec bsdtar -C "build/usr/share/texmf-dist" -xf {} \;
|
||||
-exec bsdtar \
|
||||
-s '|^texmf-dist/||' \
|
||||
-C "build/usr/share/texmf-dist" \
|
||||
-xf {} \;
|
||||
cd "build/usr/share/texmf-dist/"
|
||||
# Everything in usr/share/texmf-dist/texmf-dist should really be in
|
||||
# usr/share/texmf-dist, so we move it
|
||||
if [ -d "texmf-dist" ] ; then
|
||||
rsync -ar texmf-dist/ ./
|
||||
rm -rf texmf-dist/
|
||||
fi
|
||||
# LICENSEs are unneeded
|
||||
rm -f LICENSE*
|
||||
|
||||
|
|
|
@ -134,7 +134,7 @@ _void_cross_build_bootstrap_gcc() {
|
|||
--disable-libmudflap \
|
||||
--disable-libssp \
|
||||
--disable-libitm \
|
||||
--disable-libatomic \
|
||||
--disable-libatomic --disable-autolink-libatomic \
|
||||
--disable-gcov \
|
||||
--disable-threads \
|
||||
--disable-sjlj-exceptions \
|
||||
|
@ -264,9 +264,10 @@ _void_cross_build_glibc() {
|
|||
|
||||
CC="${tgt}-gcc" CXX="${tgt}-g++" CPP="${tgt}-cpp" LD="${tgt}-ld" \
|
||||
AR="${tgt}-ar" AS="${tgt}-as" NM="${tgt}-nm" \
|
||||
OBJDUMP="${tgt}-objdump" OBJCOPY="${tgt}-objcopy" \
|
||||
CFLAGS="-pipe ${cross_glibc_cflags}" \
|
||||
CXXFLAGS="-pipe ${cross_glibc_cflags}" \
|
||||
CPPFLAGS="${cross_glibc_cflags}" \
|
||||
CPPFLAGS="" \
|
||||
LDFLAGS="${cross_glibc_ldflags}" \
|
||||
../glibc-${ver}/configure \
|
||||
--prefix=/usr \
|
||||
|
@ -377,6 +378,10 @@ _void_cross_build_gcc() {
|
|||
|
||||
msg_normal "Building gcc for ${tgt}\n"
|
||||
|
||||
# GIANT HACK: create an empty libatomic.a so gcc cross-compile
|
||||
# below works.
|
||||
ar r ${wrksrc}/build_root/usr/${tgt}/usr/lib/libatomic.a
|
||||
|
||||
mkdir -p ${wrksrc}/gcc_build
|
||||
cd ${wrksrc}/gcc_build
|
||||
|
||||
|
@ -399,13 +404,8 @@ _void_cross_build_gcc() {
|
|||
|
||||
# note on --disable-libquadmath:
|
||||
# on some platforms the library is actually necessary for the
|
||||
# fortran frontend to build, but still disable it because it
|
||||
# should not be in the resulting packages; it conflicts with
|
||||
# the libquadmath you can install into the cross root
|
||||
#
|
||||
# platforms where this is a problem should explicitly force
|
||||
# libquadmath to be on via cross_gcc_configure_args, the
|
||||
# do_install in this build-style automatically removes it
|
||||
# fortran frontend to build, platforms where this is a problem
|
||||
# should explicitly force libquadmath to be on via cross_gcc_configure_args
|
||||
#
|
||||
../gcc-${ver}/configure \
|
||||
--prefix=/usr \
|
||||
|
@ -641,12 +641,9 @@ do_install() {
|
|||
ln -sf libgnat-${gcc_major}.so ${DESTDIR}/${sysroot}/usr/lib/libgnat.so
|
||||
rm -vf ${DESTDIR}/${adalib}/libgna{rl,t}.so
|
||||
|
||||
# Remove unnecessary libatomic which is only built for gccgo
|
||||
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libatomic.*
|
||||
|
||||
# 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 libgomp library because it conflicts with libgomp and
|
||||
# libgomp-devel packages
|
||||
rm -f ${DESTDIR}/${sysroot}/usr/lib/libgomp*
|
||||
|
||||
# Remove libdep linker plugin because it conflicts with system binutils
|
||||
rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
|
||||
|
|
|
@ -9,12 +9,27 @@ readonly EXTRA_ARGS="$4"
|
|||
readonly CMD="$5"
|
||||
shift 5
|
||||
|
||||
if ! command -v xbps-uchroot >/dev/null 2>&1; then
|
||||
msg_red() {
|
||||
# error messages in bold/red
|
||||
[ -n "$NOCOLORS" ] || printf >&2 "\033[1m\033[31m"
|
||||
printf "=> ERROR: %s\\n" "$@" >&2
|
||||
[ -n "$NOCOLORS" ] || printf >&2 "\033[m"
|
||||
}
|
||||
|
||||
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
|
||||
fi
|
||||
|
||||
if [ -z "$MASTERDIR" -o -z "$DISTDIR" ]; then
|
||||
echo "$0 MASTERDIR/DISTDIR not set"
|
||||
if ! [ -x "$XBPS_UCHROOT_CMD" ]; then
|
||||
msg_red "xbps-uchroot is not executable. Are you in the $(stat -c %G "$XBPS_UCHROOT_CMD") group?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$MASTERDIR" ] || [ -z "$DISTDIR" ]; then
|
||||
msg_red "$0: MASTERDIR/DISTDIR not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
35
common/container/Containerfile
Normal file
35
common/container/Containerfile
Normal file
|
@ -0,0 +1,35 @@
|
|||
# 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"]
|
9
common/container/README.md
Normal file
9
common/container/README.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
## 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.
|
29
common/container/docker-bake.hcl
Normal file
29
common/container/docker-bake.hcl
Normal file
|
@ -0,0 +1,29 @@
|
|||
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" }
|
||||
}
|
14
common/container/noextract.conf
Normal file
14
common/container/noextract.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
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*
|
29
common/container/setup.sh
Normal file
29
common/container/setup.sh
Normal file
|
@ -0,0 +1,29 @@
|
|||
#!/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
|
12
common/cross-profiles/riscv64-musl.sh
Normal file
12
common/cross-profiles/riscv64-musl.sh
Normal file
|
@ -0,0 +1,12 @@
|
|||
# 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"
|
12
common/cross-profiles/riscv64.sh
Normal file
12
common/cross-profiles/riscv64.sh
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Cross build profile for riscv64 and Musl libc.
|
||||
|
||||
XBPS_TARGET_MACHINE="riscv64"
|
||||
XBPS_TARGET_QEMU_MACHINE="riscv64"
|
||||
XBPS_CROSS_TRIPLET="riscv64-linux-gnu"
|
||||
XBPS_CROSS_CFLAGS="-march=rv64imafdc"
|
||||
XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS"
|
||||
XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS"
|
||||
XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr"
|
||||
XBPS_CROSS_RUST_TARGET="riscv64gc-unknown-linux-gnu"
|
||||
XBPS_CROSS_ZIG_TARGET="riscv64-linux-gnu"
|
||||
XBPS_CROSS_ZIG_CPU="baseline"
|
|
@ -8,6 +8,4 @@ if [ "$CROSS_BUILD" ]; then
|
|||
makedepends+=" rust-std"
|
||||
fi
|
||||
|
||||
export CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
|
||||
|
||||
build_helper+=" rust"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
if [ "$CHROOT_READY" ]; then
|
||||
if [ "$pkgname" != cmake ]; then
|
||||
hostmakedepends+=" cmake"
|
||||
if [ "$pkgname" != cmake-bootstrap ]; then
|
||||
hostmakedepends+=" cmake-bootstrap"
|
||||
fi
|
||||
if [ "${make_cmd:-ninja}" = ninja ]; then
|
||||
hostmakedepends+=" ninja"
|
||||
|
@ -8,3 +8,4 @@ if [ "$CHROOT_READY" ]; then
|
|||
fi
|
||||
|
||||
export CTEST_OUTPUT_ON_FAILURE=TRUE
|
||||
PATH="$PATH:/usr/libexec/xbps-src/bin"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
if [ -z "$hostmakedepends" -o "${hostmakedepends##*gcc-go-tools*}" ]; then
|
||||
# gc compiler
|
||||
if [ -z "$archs" ]; then
|
||||
archs="aarch64* armv[567]* i686* x86_64* ppc64le*"
|
||||
archs="aarch64* armv[567]* i686* x86_64* ppc64le* riscv64*"
|
||||
fi
|
||||
hostmakedepends+=" go"
|
||||
nopie=yes
|
||||
|
@ -9,7 +9,7 @@ else
|
|||
# gccgo compiler
|
||||
if [ -z "$archs" ]; then
|
||||
# we have support for these in our gcc
|
||||
archs="aarch64* armv[567]* i686* x86_64* ppc64*"
|
||||
archs="aarch64* armv[567]* i686* x86_64* ppc64* riscv64*"
|
||||
fi
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
# target compiler to use; otherwise it'll just call gccgo
|
||||
|
@ -29,6 +29,7 @@ case "$XBPS_TARGET_MACHINE" in
|
|||
ppc*) export GOARCH=ppc;;
|
||||
mipsel*) export GOARCH=mipsle;;
|
||||
mips*) export GOARCH=mips;;
|
||||
riscv64*) export GOARCH=riscv64;;
|
||||
esac
|
||||
|
||||
export GOPATH="${wrksrc}/_build-${pkgname}-xbps"
|
||||
|
@ -39,6 +40,10 @@ export CGO_CXXFLAGS="$CXXFLAGS"
|
|||
export CGO_LDFLAGS="$LDFLAGS"
|
||||
export CGO_ENABLED="${CGO_ENABLED:-1}"
|
||||
export GO111MODULE=auto
|
||||
export GOTOOLCHAIN="${GOTOOLCHAIN:-local}"
|
||||
export GOPROXY="https://proxy.golang.org,direct"
|
||||
export GOSUMDB="sum.golang.org"
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl) export GOCACHE="${XBPS_HOSTDIR}/gocache-muslc" ;;
|
||||
*) export GOCACHE="${XBPS_HOSTDIR}/gocache-glibc" ;;
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
hostmakedepends+=" meson"
|
||||
build_helper+=" meson"
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
lib32disabled=yes
|
||||
makedepends+=" python python3"
|
|
@ -1,4 +1,2 @@
|
|||
# rsync isn't needed for everything but it's far easier to just put it here
|
||||
hostmakedepends+=" rsync"
|
||||
# python_version isn't needed for everything either
|
||||
python_version=3
|
||||
|
|
|
@ -26,6 +26,7 @@ scripts/attachfile2/pdfatfi.pl texlive
|
|||
scripts/authorindex/authorindex texlive
|
||||
scripts/bib2gls/bib2gls.sh texlive
|
||||
scripts/bib2gls/convertgls2bib.sh texlive
|
||||
scripts/bibcop/bibcop.pl texlive
|
||||
scripts/bibexport/bibexport.sh texlive
|
||||
scripts/bundledoc/arlatex texlive
|
||||
scripts/bundledoc/bundledoc texlive
|
||||
|
@ -33,17 +34,11 @@ scripts/cachepic/cachepic.tlu texlive-pictures
|
|||
scripts/checkcites/checkcites.lua texlive
|
||||
scripts/checklistings/checklistings.sh texlive
|
||||
scripts/chklref/chklref.pl texlive
|
||||
scripts/citation-style-language/citeproc-lua.lua texlive
|
||||
scripts/cjk-gs-integrate/cjk-gs-integrate.pl texlive
|
||||
scripts/clojure-pamphlet/pamphletangler texlive
|
||||
scripts/cluttex/cluttex.lua texlive
|
||||
scripts/context/perl/mptopdf.pl texlive
|
||||
scripts/context/stubs/unix/contextjit texlive
|
||||
scripts/context/stubs/unix/context texlive
|
||||
scripts/context/stubs/unix/luatools texlive
|
||||
scripts/context/stubs/unix/mtxrunjit texlive
|
||||
scripts/context/stubs/unix/mtxrun texlive
|
||||
scripts/context/stubs/unix/texexec texlive
|
||||
scripts/context/stubs/unix/texmfstart texlive
|
||||
scripts/convbkmk/convbkmk.rb texlive-langjapanese
|
||||
scripts/crossrefware/bbl2bib.pl texlive
|
||||
scripts/crossrefware/bibdoiadd.pl texlive
|
||||
|
@ -57,6 +52,7 @@ scripts/ctan-o-mat/ctan-o-mat.pl texlive
|
|||
scripts/ctanupload/ctanupload.pl texlive
|
||||
scripts/de-macro/de-macro texlive
|
||||
scripts/diadia/diadia.lua texlive-humanities
|
||||
scripts/digestif/digestif.texlua texlive
|
||||
scripts/dosepsbin/dosepsbin.pl texlive
|
||||
scripts/dtxgen/dtxgen texlive
|
||||
scripts/dviasm/dviasm.py texlive
|
||||
|
@ -102,6 +98,7 @@ scripts/listbib/listbib texlive
|
|||
scripts/listings-ext/listings-ext.sh texlive
|
||||
scripts/ltxfileinfo/ltxfileinfo texlive
|
||||
scripts/ltximg/ltximg.pl texlive
|
||||
scripts/luafindfont/luafindfont.lua texlive
|
||||
scripts/luaotfload/luaotfload-tool.lua texlive
|
||||
scripts/lwarp/lwarpmk.lua texlive
|
||||
scripts/make4ht/make4ht texlive
|
||||
|
@ -116,6 +113,9 @@ scripts/m-tx/m-tx.lua texlive-music
|
|||
scripts/multibibliography/multibibliography.pl texlive
|
||||
scripts/musixtex/musixflx.lua texlive-music
|
||||
scripts/musixtex/musixtex.lua texlive-music
|
||||
scripts/optexcount/optexcount texlive
|
||||
scripts/pagelayout/pagelayoutapi texlive
|
||||
scripts/pagelayout/textestvis texlive
|
||||
scripts/pax/pdfannotextractor.pl texlive
|
||||
scripts/pdfbook2/pdfbook2 texlive
|
||||
scripts/pdfcrop/pdfcrop.pl texlive
|
||||
|
@ -155,6 +155,7 @@ scripts/srcredact/srcredact.pl texlive
|
|||
scripts/sty2dtx/sty2dtx.pl texlive
|
||||
scripts/svn-multi/svn-multi.pl texlive
|
||||
scripts/tex4ebook/tex4ebook texlive
|
||||
scripts/texaccents/texaccents.sno texlive
|
||||
scripts/texcount/texcount.pl texlive
|
||||
scripts/texdef/texdef.pl texlive
|
||||
scripts/texdiff/texdiff texlive
|
||||
|
@ -178,6 +179,8 @@ scripts/texlive-extra/texconfig-dialog.sh texlive
|
|||
scripts/texlive-extra/texconfig.sh texlive
|
||||
scripts/texlive-extra/texconfig-sys.sh texlive
|
||||
scripts/texlive-extra/texlinks.sh texlive
|
||||
scripts/texlive-extra/xelatex-unsafe.sh texlive
|
||||
scripts/texlive-extra/xetex-unsafe.sh texlive
|
||||
scripts/texlive/fmtutil.pl texlive
|
||||
scripts/texlive/fmtutil-sys.sh texlive
|
||||
scripts/texlive/fmtutil-user.sh texlive
|
||||
|
@ -185,13 +188,15 @@ scripts/texlive/mktexlsr texlive
|
|||
scripts/texlive/mktexmf texlive
|
||||
scripts/texlive/mktexpk texlive
|
||||
scripts/texlive/mktextfm texlive
|
||||
scripts/texlive/rungs.lua texlive
|
||||
scripts/texliveonfly/texliveonfly.py texlive
|
||||
scripts/texlive/rungs.tlu texlive
|
||||
scripts/texlive/tlmgr.pl texlive
|
||||
scripts/texlive/updmap.pl texlive
|
||||
scripts/texlive/updmap-sys.sh texlive
|
||||
scripts/texlive/updmap-user.sh texlive
|
||||
scripts/texloganalyser/texloganalyser texlive
|
||||
scripts/texlogfilter/texlogfilter texlive
|
||||
scripts/texlogsieve/texlogsieve texlive
|
||||
scripts/texosquery/texosquery-jre5.sh texlive
|
||||
scripts/texosquery/texosquery-jre8.sh texlive
|
||||
scripts/texosquery/texosquery.sh texlive
|
||||
|
|
148
common/environment/configure/autoconf_cache/riscv64-linux
Normal file
148
common/environment/configure/autoconf_cache/riscv64-linux
Normal file
|
@ -0,0 +1,148 @@
|
|||
|
||||
## # 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 */'
|
|
@ -123,6 +123,10 @@ case "$XBPS_TARGET_MACHINE" in
|
|||
. ${_AUTOCONFCACHEDIR}/powerpc-linux
|
||||
. ${_AUTOCONFCACHEDIR}/powerpc32-linux
|
||||
;;
|
||||
riscv*)
|
||||
. ${_AUTOCONFCACHEDIR}/endian-little
|
||||
. ${_AUTOCONFCACHEDIR}/riscv64-linux
|
||||
;;
|
||||
|
||||
*) ;;
|
||||
esac
|
||||
|
|
|
@ -24,7 +24,7 @@ if [ -z "$nopie" ]; then
|
|||
fi
|
||||
else
|
||||
CFLAGS="-fno-PIE ${CFLAGS}"
|
||||
CXXFLAGS="-fno-PIE ${CFLAGS}"
|
||||
CXXFLAGS="-fno-PIE ${CXXFLAGS}"
|
||||
FFLAGS="-fno-PIE ${FFLAGS}"
|
||||
LDFLAGS="-no-pie ${LDFLAGS}"
|
||||
fi
|
||||
|
|
182
common/environment/setup/archive.sh
Normal file
182
common/environment/setup/archive.sh
Normal file
|
@ -0,0 +1,182 @@
|
|||
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
|
||||
}
|
|
@ -15,10 +15,10 @@ elif [ -z "${SOURCE_DATE_EPOCH}" ]; then
|
|||
fi
|
||||
# check if the template is under version control:
|
||||
if [ -n "$basepkg" -a -z "$($XBPS_GIT_CMD -C ${XBPS_SRCPKGDIR}/${basepkg} ls-files template)" ]; then
|
||||
export SOURCE_DATE_EPOCH="$(stat -c %Y ${XBPS_SRCPKGDIR}/${basepkg}/template)"
|
||||
export SOURCE_DATE_EPOCH="$(stat_mtime ${XBPS_SRCPKGDIR}/${basepkg}/template)"
|
||||
else
|
||||
export SOURCE_DATE_EPOCH=$($XBPS_GIT_CMD -C ${XBPS_DISTDIR} cat-file commit HEAD |
|
||||
sed -n '/^committer /{s/.*> \([0-9][0-9]*\) [-+][0-9].*/\1/p;q}')
|
||||
sed -n '/^committer /{s/.*> \([0-9][0-9]*\) [-+][0-9].*/\1/p;q;}')
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
@ -8,13 +8,15 @@ unalias -a
|
|||
|
||||
# disable wildcards helper
|
||||
_noglob_helper() {
|
||||
set +f
|
||||
"$@"
|
||||
set +f
|
||||
IFS= "$@"
|
||||
}
|
||||
|
||||
# Apply _noglob to v* commands
|
||||
for cmd in vinstall vcopy vcompletion vmove vmkdir vbin vman vdoc vconf vsconf vlicense vsv; do
|
||||
alias ${cmd}="set -f; _noglob_helper _${cmd}"
|
||||
# intentionally expanded when defined
|
||||
# shellcheck disable=SC2139
|
||||
alias ${cmd}="set -f; _noglob_helper _${cmd}"
|
||||
done
|
||||
|
||||
_vsv() {
|
||||
|
@ -24,6 +26,8 @@ _vsv() {
|
|||
local svdir="${PKGDESTDIR}/etc/sv/${service}"
|
||||
|
||||
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"
|
||||
return 1
|
||||
fi
|
||||
|
@ -34,26 +38,26 @@ _vsv() {
|
|||
|
||||
vmkdir etc/sv
|
||||
vcopy "${FILESDIR}/$service" etc/sv
|
||||
if [ ! -L $svdir/run ]; then
|
||||
grep -Fq 'exec 2>&1' $svdir/run || msg_warn "$pkgver: vsv: service '$service' does not contain 'exec 2>&1' to log stderr\n"
|
||||
chmod 755 $svdir/run
|
||||
if [ ! -L "$svdir/run" ]; then
|
||||
grep -Fq 'exec 2>&1' "$svdir/run" || msg_warn "$pkgver: vsv: service '$service' does not contain 'exec 2>&1' to log stderr\n"
|
||||
chmod 755 "$svdir/run"
|
||||
fi
|
||||
if [ -e $svdir/finish ] && [ ! -L $svdir/finish ]; then
|
||||
chmod 755 $svdir/finish
|
||||
if [ -e "$svdir/finish" ] && [ ! -L "$svdir/finish" ]; then
|
||||
chmod 755 "$svdir/finish"
|
||||
fi
|
||||
ln ${LN_OPTS} /run/runit/supervise.${service} $svdir/supervise
|
||||
if [ -d $svdir/log ] || [ -L $svdir/log ]; then
|
||||
ln ${LN_OPTS} "/run/runit/supervise.${service}" "$svdir/supervise"
|
||||
if [ -d "$svdir/log" ] || [ -L "$svdir/log" ]; then
|
||||
msg_warn "$pkgver: vsv: overriding default log service\n"
|
||||
else
|
||||
mkdir $svdir/log
|
||||
cat <<-EOF > $svdir/log/run
|
||||
mkdir "$svdir/log"
|
||||
cat <<-EOF > "$svdir/log/run"
|
||||
#!/bin/sh
|
||||
exec vlogger -t $service -p $facility
|
||||
EOF
|
||||
fi
|
||||
ln ${LN_OPTS} /run/runit/supervise.${service}-log $svdir/log/supervise
|
||||
if [ -e $svdir/log/run ] && [ ! -L $svdir/log/run ]; then
|
||||
chmod 755 ${PKGDESTDIR}/etc/sv/${service}/log/run
|
||||
ln ${LN_OPTS} "/run/runit/supervise.${service}-log" "$svdir/log/supervise"
|
||||
if [ -e "$svdir/log/run" ] && [ ! -L "$svdir/log/run" ]; then
|
||||
chmod 755 "${PKGDESTDIR}/etc/sv/${service}/log/run"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -120,6 +124,8 @@ _vdoc() {
|
|||
return 1
|
||||
fi
|
||||
|
||||
# pkgname is defined in the package
|
||||
# shellcheck disable=SC2154
|
||||
vinstall "$file" 644 "usr/share/doc/${pkgname}" "$targetfile"
|
||||
}
|
||||
|
||||
|
@ -175,9 +181,9 @@ _vinstall() {
|
|||
fi
|
||||
|
||||
if [ -z "$targetfile" ]; then
|
||||
install -Dm${mode} "${file}" "${PKGDESTDIR}/${targetdir}/${file##*/}"
|
||||
install -Dm"${mode}" "${file}" "${PKGDESTDIR}/${targetdir}/${file##*/}"
|
||||
else
|
||||
install -Dm${mode} "${file}" "${PKGDESTDIR}/${targetdir}/${targetfile##*/}"
|
||||
install -Dm"${mode}" "${file}" "${PKGDESTDIR}/${targetdir}/${targetfile##*/}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -193,7 +199,9 @@ _vcopy() {
|
|||
return 1
|
||||
fi
|
||||
|
||||
cp -a $files ${PKGDESTDIR}/${targetdir}
|
||||
# intentionally unquoted for globbing
|
||||
# shellcheck disable=SC2086
|
||||
cp -a $files "${PKGDESTDIR}/${targetdir}"
|
||||
}
|
||||
|
||||
_vmove() {
|
||||
|
@ -219,13 +227,17 @@ _vmove() {
|
|||
done
|
||||
|
||||
if [ -z "${_targetdir}" ]; then
|
||||
[ ! -d ${PKGDESTDIR} ] && install -d ${PKGDESTDIR}
|
||||
mv ${DESTDIR}/$files ${PKGDESTDIR}
|
||||
[ ! -d "${PKGDESTDIR}" ] && install -d "${PKGDESTDIR}"
|
||||
# intentionally unquoted for globbing
|
||||
# shellcheck disable=SC2086
|
||||
mv "${DESTDIR}"/$files "${PKGDESTDIR}"
|
||||
else
|
||||
if [ ! -d ${PKGDESTDIR}/${_targetdir} ]; then
|
||||
install -d ${PKGDESTDIR}/${_targetdir}
|
||||
if [ ! -d "${PKGDESTDIR}/${_targetdir}" ]; then
|
||||
install -d "${PKGDESTDIR}/${_targetdir}"
|
||||
fi
|
||||
mv ${DESTDIR}/$files ${PKGDESTDIR}/${_targetdir}
|
||||
# intentionally unquoted for globbing
|
||||
# shellcheck disable=SC2086
|
||||
mv "${DESTDIR}"/$files "${PKGDESTDIR}/${_targetdir}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -243,9 +255,9 @@ _vmkdir() {
|
|||
fi
|
||||
|
||||
if [ -z "$mode" ]; then
|
||||
install -d ${PKGDESTDIR}/${dir}
|
||||
install -d "${PKGDESTDIR}/${dir}"
|
||||
else
|
||||
install -dm${mode} ${PKGDESTDIR}/${dir}
|
||||
install -dm"${mode}" "${PKGDESTDIR}/${dir}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -36,3 +36,11 @@ vopt_bool() {
|
|||
fi
|
||||
vopt_if "$1" "-D${prop}=true" "-D${prop}=false"
|
||||
}
|
||||
|
||||
vopt_feature() {
|
||||
local opt="$1" prop="${2:-$1}"
|
||||
if [ "$#" -gt "2" ]; then
|
||||
msg_error "vopt_feature $opt: $(($# - 2)) excess parameter(s)\n"
|
||||
fi
|
||||
vopt_if "$1" "-D${prop}=enabled" "-D${prop}=disabled"
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ py2_lib="usr/lib/python${py2_ver}"
|
|||
py2_sitelib="${py2_lib}/site-packages"
|
||||
py2_inc="usr/include/python${py2_ver}"
|
||||
|
||||
py3_ver="3.11"
|
||||
py3_ver="3.12"
|
||||
py3_abiver=""
|
||||
py3_lib="usr/lib/python${py3_ver}"
|
||||
py3_sitelib="${py3_lib}/site-packages"
|
||||
|
|
|
@ -5,7 +5,13 @@
|
|||
for var in $(awk 'BEGIN{for (i in ENVIRON) {print i}}' </dev/null); do
|
||||
# Those variables in chroot.sh will be kept
|
||||
case "$var" in
|
||||
XBPS_* | IN_CHROOT | CHROOT_READY | SOURCE_DATE_EPOCH)
|
||||
BASH_FUNC_*'%%')
|
||||
# bash exported functions
|
||||
var="${var%??}"
|
||||
var="${var#BASH_FUNC_}"
|
||||
unset -f "$var"
|
||||
;;
|
||||
XBPS_* | IN_CHROOT | CHROOT_READY | SOURCE_DATE_EPOCH | NOCOLORS)
|
||||
# xbps-src specific
|
||||
;;
|
||||
SOURCEFORGE_SITE | NONGNU_SITE | XORG_SITE | DEBIAN_SITE | GNOME_SITE)
|
||||
|
|
|
@ -45,128 +45,7 @@ hook() {
|
|||
unset found
|
||||
continue
|
||||
fi
|
||||
|
||||
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
|
||||
vsrcextract --no-strip-components -C "$extractdir" "$curfile"
|
||||
done
|
||||
|
||||
cd "$extractdir"
|
||||
|
|
|
@ -253,7 +253,7 @@ hook() {
|
|||
if [[ $cksum = $filesum ]]; then
|
||||
dfgood=$((dfgood + 1))
|
||||
else
|
||||
inode=$(stat "$distfile" --printf "%i")
|
||||
inode=$(stat_inode "$distfile")
|
||||
msg_warn "$pkgver: wrong checksum found for ${curfile} - purging\n"
|
||||
find ${XBPS_SRCDISTDIR} -inum ${inode} -delete -print
|
||||
fi
|
||||
|
|
|
@ -15,8 +15,7 @@ hook() {
|
|||
rm -f ${PKGDESTDIR}/usr/share/info/dir
|
||||
fi
|
||||
|
||||
find ${PKGDESTDIR}/usr/share/info -type f -follow | while read f
|
||||
do
|
||||
find ${PKGDESTDIR}/usr/share/info -type f -follow | while read -r f; do
|
||||
j=$(echo "$f"|sed -e "$fpattern")
|
||||
[ "$j" = "" ] && continue
|
||||
[ "$j" = "/usr/share/info/dir" ] && continue
|
||||
|
|
|
@ -9,8 +9,7 @@ hook() {
|
|||
fi
|
||||
|
||||
# rewrite symlinks
|
||||
find $mandir -type l -regex '.*\.\(gz\|bz2\)' | while read f
|
||||
do
|
||||
find $mandir -type l -regex '.*\.\(gz\|bz2\)' | while read -r f; do
|
||||
lnkat=$(readlink "$f")
|
||||
ln -s ${lnkat%.*} ${f%.*}
|
||||
rm $f
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
hook() {
|
||||
if [ -d "${PKGDESTDIR}" ]; then
|
||||
find "${PKGDESTDIR}" -mindepth 1 -type d -empty -print -delete|sort -r|while read f; do
|
||||
find "${PKGDESTDIR}" -mindepth 1 -type d -empty -print -delete|sort -r|while read -r f; do
|
||||
_dir="${f##${PKGDESTDIR}}"
|
||||
msg_warn "$pkgver: removed empty dir: ${_dir}\n"
|
||||
done
|
||||
|
|
|
@ -119,10 +119,16 @@ _EOF
|
|||
#
|
||||
# Handle binfmts trigger
|
||||
#
|
||||
if [ -n "${binfmts}" ]; then
|
||||
if [ -n "${binfmts}" ] || [ -d "${PKGDESTDIR}/usr/share/binfmts" ]; then
|
||||
_add_trigger binfmts
|
||||
fi
|
||||
if [ -n "${binfmts}" ]; then
|
||||
echo "export binfmts=\"${binfmts}\"" >> $tmpf
|
||||
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.
|
||||
#
|
||||
|
@ -272,7 +278,7 @@ _EOF
|
|||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$python_version" ]; then
|
||||
if [ -n "$python_version" ] && [ "$python_version" != ignore ]; then
|
||||
pycompile_version=${python_version}
|
||||
fi
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ hook() {
|
|||
|
||||
STRIPCMD=/usr/bin/$STRIP
|
||||
|
||||
find ${PKGDESTDIR} -type f | while read f; do
|
||||
find ${PKGDESTDIR} -type f | while read -r f; do
|
||||
if [[ $f =~ ^${PKGDESTDIR}/usr/lib/debug/ ]]; then
|
||||
continue
|
||||
fi
|
||||
|
|
|
@ -16,7 +16,8 @@ hook() {
|
|||
# s,/usr/armv7l-linux-musleabihf/usr,/usr,g
|
||||
# trailing /usr to avoid clashing with
|
||||
# other $XBPS_CROSS_BASE and $XBPS_CROSS_TRIPLET.
|
||||
sed -i -e "s,$XBPS_CROSS_BASE/usr,/usr,g" "$f"
|
||||
sed -i --follow-symlinks \
|
||||
-e "s,$XBPS_CROSS_BASE/usr,/usr,g" "$f"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ hook() {
|
|||
elif [ "$lib32mode" = "full" ]; then
|
||||
# Full 32bit mode; copy everything to new destdir.
|
||||
mkdir -p ${destdir32}
|
||||
cp -a ${PKGDESTDIR}/* ${destdir32}/
|
||||
cp -a ${PKGDESTDIR}/. ${destdir32}/
|
||||
# remove symlink
|
||||
if [ -h ${destdir32}/usr/lib32 ]; then
|
||||
rm ${destdir32}/usr/lib32
|
||||
|
@ -74,74 +74,11 @@ hook() {
|
|||
if [[ ${pkgname} == *-devel ]]; then
|
||||
mkdir -p ${destdir32}
|
||||
fi
|
||||
|
||||
if [ ! -d ${destdir32} ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# If the rdeps file exist (runtime deps), copy and then modify it for
|
||||
# 32bit dependencies.
|
||||
trap - ERR
|
||||
|
||||
: > ${destdir32}/rdeps
|
||||
|
||||
if [ -s "$PKGDESTDIR/rdeps" ]; then
|
||||
if [ -n "$lib32depends" ]; then
|
||||
_deps="${lib32depends}"
|
||||
else
|
||||
_deps="$(<${PKGDESTDIR}/rdeps)"
|
||||
fi
|
||||
for f in ${_deps}; do
|
||||
unset found pkgn pkgv _shprovides
|
||||
|
||||
pkgn="$($XBPS_UHELPER_CMD getpkgdepname $f)"
|
||||
if [ -z "${pkgn}" ]; then
|
||||
pkgn="$($XBPS_UHELPER_CMD getpkgname $f)"
|
||||
if [ -z "${pkgn}" ]; then
|
||||
msg_error "$pkgver: invalid dependency $f\n"
|
||||
fi
|
||||
pkgv="-$($XBPS_UHELPER_CMD getpkgversion ${f})"
|
||||
else
|
||||
pkgv="$($XBPS_UHELPER_CMD getpkgdepversion ${f})"
|
||||
fi
|
||||
# If dependency is a development pkg switch it to 32bit.
|
||||
if [[ $pkgn == *-devel ]]; then
|
||||
echo " RDEP: $f -> ${pkgn}-32bit${pkgv} (development)"
|
||||
printf "${pkgn}-32bit${pkgv} " >> ${destdir32}/rdeps
|
||||
continue
|
||||
fi
|
||||
# If dependency does not have "shlib-provides" do not
|
||||
# change it to 32bit.
|
||||
for x in ${subpackages}; do
|
||||
if [ "$x" = "$pkgn" ]; then
|
||||
found=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -z "$found" ]; then
|
||||
# Dependency is not a subpkg, check shlib-provides
|
||||
# via binpkgs.
|
||||
_shprovides="$($XBPS_QUERY_CMD -R --property=shlib-provides "$pkgn")"
|
||||
if [ -n "${_shprovides}" ]; then
|
||||
echo " RDEP: $f -> ${pkgn}-32bit${pkgv} (shlib-provides)"
|
||||
printf "${pkgn}-32bit${pkgv} " >> ${destdir32}/rdeps
|
||||
else
|
||||
echo " RDEP: $f -> ${pkgn}${pkgv} (no shlib-provides)"
|
||||
printf "${pkgn}${pkgv} " >> ${destdir32}/rdeps
|
||||
fi
|
||||
else
|
||||
if [ -s ${XBPS_DESTDIR}/${pkgn}-${version}/shlib-provides ]; then
|
||||
# Dependency is a subpkg; check if it provides any shlib
|
||||
# and convert to 32bit if true.
|
||||
echo " RDEP: $f -> ${pkgn}-32bit${pkgv} (subpkg, shlib-provides)"
|
||||
printf "${pkgn}-32bit${pkgv} " >> ${destdir32}/rdeps
|
||||
else
|
||||
echo " RDEP: $f -> ${pkgn}${pkgv} (subpkg, no shlib-provides)"
|
||||
printf "${pkgn}${pkgv} " >> ${destdir32}/rdeps
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Also install additional files set via "lib32files".
|
||||
for f in ${lib32files}; do
|
||||
echo "$pkgver: installing additional files: $f ..."
|
||||
|
@ -149,6 +86,7 @@ hook() {
|
|||
mkdir -p ${_targetdir/\/usr\/lib/\/usr\/lib32}
|
||||
cp -a ${PKGDESTDIR}/${f} ${_targetdir/\/usr\/lib/\/usr\/lib32}
|
||||
done
|
||||
|
||||
# Additional symlinks to the native libdir.
|
||||
for f in ${lib32symlinks}; do
|
||||
echo "$pkgver: symlinking $f to the native libdir..."
|
||||
|
@ -159,10 +97,4 @@ hook() {
|
|||
fi
|
||||
ln -sfr ${destdir32}/usr/lib32/$f ${destdir32}/usr/lib/$f
|
||||
done
|
||||
# If it's a development pkg add a dependency to the 64bit pkg.
|
||||
if [[ $pkgn == *-devel ]]; then
|
||||
echo " RDEP: ${pkgver}"
|
||||
printf "${pkgver} " >> ${destdir32}/rdeps
|
||||
fi
|
||||
printf "\n" >> ${destdir32}/rdeps
|
||||
}
|
|
@ -6,19 +6,30 @@ collect_sonames() {
|
|||
local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
|
||||
local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
|
||||
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
|
||||
rm -f ${_tmpfile}
|
||||
rm -f ${_no_soname}
|
||||
return 0
|
||||
fi
|
||||
|
||||
|
||||
# real pkg
|
||||
find ${_destdir} -type f -name "*.so*" | while read f; do
|
||||
_fname="${f##*/}"
|
||||
case "$(file -bi "$f")" in
|
||||
application/x-sharedlib*|application/x-pie-executable*)
|
||||
# shared library
|
||||
_soname=$(${OBJDUMP} -p "$f"|grep SONAME|awk '{print $2}')
|
||||
_soname=$(${OBJDUMP} -p "$f"|awk '/SONAME/{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
|
||||
# unversioned sonames only when in libdir.
|
||||
if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
|
||||
|
@ -27,6 +38,9 @@ collect_sonames() {
|
|||
-e ${_destdir}/usr/lib32/${_fname} ) ]]; then
|
||||
echo "${_soname}" >> ${_tmpfile}
|
||||
echo " SONAME ${_soname} from ${f##${_destdir}}"
|
||||
else
|
||||
# register all shared lib for rt-deps between sub-pkg
|
||||
echo "${_fname}" >>${_no_soname}
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
@ -38,19 +52,37 @@ collect_sonames() {
|
|||
if [ -s "${_tmpfile}" ]; then
|
||||
tr '\n' ' ' < "${_tmpfile}" > ${_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
|
||||
rm -f ${_tmpfile}
|
||||
}
|
||||
|
||||
hook() {
|
||||
local _destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version}
|
||||
local _mainpkg=yes
|
||||
local _pkg
|
||||
|
||||
if [ -n "$noshlibprovides" ]; then
|
||||
return 0
|
||||
fi
|
||||
case "$pkgname" in
|
||||
*-32bit)
|
||||
_pkgname=${pkgname%-32bit}
|
||||
for _pkg in $sourcepkg $subpackages; do
|
||||
if [ "$_pkg" = "$_pkgname" ]; then
|
||||
_mainpkg=
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
# native pkg
|
||||
collect_sonames ${PKGDESTDIR}
|
||||
collect_sonames ${PKGDESTDIR} $_mainpkg
|
||||
# 32bit pkg
|
||||
collect_sonames ${_destdir32}
|
||||
}
|
|
@ -238,7 +238,6 @@ hook() {
|
|||
generic_wrapper3 libetpan-config
|
||||
generic_wrapper3 giblib-config
|
||||
python_wrapper python-config 2.7
|
||||
python_wrapper python3-config 3.11
|
||||
apr_apu_wrapper apr-1-config
|
||||
python_wrapper python3-config 3.12
|
||||
apr_apu_wrapper apu-1-config
|
||||
}
|
||||
|
|
|
@ -12,6 +12,10 @@ hook() {
|
|||
pyver="$python_version"
|
||||
fi
|
||||
|
||||
if [ "$python_version" = ignore ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -n "$pyver" ]; then
|
||||
default_shebang="#!/usr/bin/python${pyver%.*}"
|
||||
fi
|
||||
|
|
|
@ -40,13 +40,14 @@ store_pkgdestdir_rundeps() {
|
|||
-z "$($XBPS_UHELPER_CMD getpkgname ${_curdep} 2>/dev/null)" ]; then
|
||||
_curdep="${_curdep}>=0"
|
||||
fi
|
||||
printf -- "${_curdep}\n"
|
||||
done | sort | xargs > ${PKGDESTDIR}/rdeps
|
||||
printf "%s " "${_curdep}"
|
||||
done > "${PKGDESTDIR}/rdeps"
|
||||
fi
|
||||
}
|
||||
|
||||
hook() {
|
||||
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
|
||||
# to be worried about because if there are broken shlibs this hook returns
|
||||
|
@ -69,7 +70,7 @@ hook() {
|
|||
|
||||
exec 3<&0 # save stdin
|
||||
exec < $depsftmp
|
||||
while read f; do
|
||||
while read -r f; do
|
||||
lf=${f#${PKGDESTDIR}}
|
||||
if [ "${skiprdeps/${lf}/}" != "${skiprdeps}" ]; then
|
||||
msg_normal "Skipping dependency scan for ${lf}\n"
|
||||
|
@ -95,65 +96,47 @@ hook() {
|
|||
# above, the mapping is done thru the common/shlibs file.
|
||||
#
|
||||
for f in ${verify_deps}; do
|
||||
unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found
|
||||
_f=$(echo "$f"|sed -E 's|\+|\\+|g')
|
||||
rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)"
|
||||
rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)"
|
||||
if [ -z "$rdep" ]; then
|
||||
unset _rdep _pkgname _rdepver
|
||||
|
||||
local _findargs="-name"
|
||||
# if SONAME is a path, find should use -wholename
|
||||
if [[ "$f" = */* ]]; then
|
||||
_findargs="-wholename"
|
||||
fi
|
||||
if [ "$(find "${PKGDESTDIR}" $_findargs "$f")" ]; then
|
||||
# Ignore libs by current pkg
|
||||
soname=$(find ${PKGDESTDIR} -name "$f")
|
||||
if [ -z "$soname" ]; then
|
||||
echo " SONAME: $f <-> $pkgname (ignored)"
|
||||
continue
|
||||
# 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"
|
||||
broken_shlibs=1
|
||||
else
|
||||
echo " SONAME: $f <-> $pkgname (ignored)"
|
||||
continue
|
||||
fi
|
||||
continue
|
||||
elif [ "$rdepcnt" -gt 1 ]; then
|
||||
unset j found
|
||||
# Check if shlib is provided by multiple pkgs.
|
||||
for j in ${rdep}; do
|
||||
_pkgname=$($XBPS_UHELPER_CMD getpkgname "$j")
|
||||
# if there's a SONAME matching pkgname, use it.
|
||||
for x in ${pkgname} ${subpackages}; do
|
||||
[[ $_pkgname == $x ]] && found=1 && break
|
||||
done
|
||||
[[ $found ]] && _rdep=$j && break
|
||||
done
|
||||
if [ -z "${_rdep}" ]; then
|
||||
# otherwise pick up the first one.
|
||||
for j in ${rdep}; do
|
||||
[ -z "${_rdep}" ] && _rdep=$j
|
||||
done
|
||||
_pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
|
||||
_rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
|
||||
if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
|
||||
msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
|
||||
broken_shlibs=1
|
||||
continue
|
||||
fi
|
||||
else
|
||||
_rdep=$rdep
|
||||
fi
|
||||
_pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
|
||||
_rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
|
||||
if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
|
||||
msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
|
||||
broken_shlibs=1
|
||||
continue
|
||||
fi
|
||||
# Check if pkg is a subpkg of sourcepkg; if true, ignore version
|
||||
# in common/shlibs.
|
||||
_sdep="${_pkgname}>=${_rdepver}"
|
||||
for _subpkg in ${subpackages}; do
|
||||
if [ "${_subpkg}" = "${_pkgname}" ]; then
|
||||
_sdep="${_pkgname}-${version}_${revision}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
_sdep="${_pkgname}>=${_rdepver}"
|
||||
|
||||
if [ "${_pkgname}" != "${pkgname}" ]; then
|
||||
echo " SONAME: $f <-> ${_sdep}"
|
||||
# By this point, SONAME can't be found in current pkg
|
||||
sorequires+="${f} "
|
||||
else
|
||||
# Ignore libs by current pkg
|
||||
echo " SONAME: $f <-> ${_rdep} (ignored)"
|
||||
continue
|
||||
fi
|
||||
echo " SONAME: $f <-> ${_sdep}"
|
||||
add_rundep "${_sdep}"
|
||||
done
|
||||
#
|
||||
|
|
87
common/hooks/pre-pkg/05-generate-32bit-runtime-deps.sh
Normal file
87
common/hooks/pre-pkg/05-generate-32bit-runtime-deps.sh
Normal file
|
@ -0,0 +1,87 @@
|
|||
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
|
||||
}
|
|
@ -79,8 +79,22 @@ hook() {
|
|||
|
||||
# Check for l10n files in usr/lib/locale
|
||||
if [ -d ${PKGDESTDIR}/usr/lib/locale ]; then
|
||||
msg_red "${pkgver}: /usr/lib/locale is forbidden, use /usr/share/locale!\n"
|
||||
error=1
|
||||
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"
|
||||
error=1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check for bash completions in etc/bash_completion.d
|
||||
|
@ -171,7 +185,7 @@ hook() {
|
|||
_pattern="^${_shlib}\.so\.[0-9]+(.*)[[:blank:]]+${_pkgname}-[^-]+_[0-9]+"
|
||||
fi
|
||||
grep -E "${_pattern}" $mapshlibs | { \
|
||||
while read conflictFile conflictPkg ignore; do
|
||||
while read -r conflictFile conflictPkg ignore; do
|
||||
found=1
|
||||
conflictRev=${conflictFile#*.so.}
|
||||
if [ -n "$ignore" -a "$ignore" != "$XBPS_TARGET_MACHINE" ]; then
|
||||
|
|
9
common/scripts/check-custom-licenses
Executable file
9
common/scripts/check-custom-licenses
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
# checks for licenses that are no longer custom in packages
|
||||
|
||||
mapfile -t licenses < common/travis/license.lst
|
||||
|
||||
for lic in "${licenses[@]}"; do
|
||||
grep -rl "custom:$lic"'[,"]' --include=template srcpkgs \
|
||||
| cut -d/ -f2 | xargs -rn1 printf "%s: $lic is no longer custom\n"
|
||||
done
|
|
@ -109,7 +109,7 @@ list_interesting_files() {
|
|||
if partial_check; then
|
||||
list_newly_built_files
|
||||
else
|
||||
xlocate / | sed s'/ -> .*//' | grep -F -f <(xlocate / | cut -f 2- | sed s'/ -> .*//' | sort | uniq -d)
|
||||
xlocate / | sed s'/ -> .*//' | grep -F -f <(xlocate / | sed 's/[^[:space:]]*[[:space:]]*//' | sed s'/ -> .*//' | sort | uniq -d)
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ def find_cycles(depmap, xbpsdir):
|
|||
try: deps = pkgs.pop(p)
|
||||
except KeyError: break
|
||||
|
||||
# Any of the dependencies here contributes to a cycle
|
||||
# Any of the dependencies here contributes to a cycle
|
||||
p = min(deps)
|
||||
if len(deps) > 1:
|
||||
print('Multipath: {} -> {}, choosing first'.format(p, deps))
|
||||
|
@ -97,10 +97,14 @@ if __name__ == '__main__':
|
|||
parser = ArgumentParser(description='Cycle detector for xbps-src')
|
||||
parser.add_argument('-j', '--jobs', default=None,
|
||||
type=int, help='Number of parallel jobs')
|
||||
parser.add_argument('-c', '--cachedir',
|
||||
default=None, help='''Directory to use as cache for xbps-src show-build-deps. Directory must exist already.''')
|
||||
parser.add_argument('-c', '--cachedir', default=None,
|
||||
help='Directory used to cache build dependencies (must exist)')
|
||||
parser.add_argument('-d', '--directory',
|
||||
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()
|
||||
|
||||
|
@ -108,13 +112,15 @@ if __name__ == '__main__':
|
|||
try: args.directory = os.environ['XBPS_DISTDIR']
|
||||
except KeyError: args.directory = '.'
|
||||
|
||||
cachedir = args.cachedir
|
||||
if args.check_pkgs:
|
||||
os.environ['XBPS_CHECK_PKGS'] = args.check_pkgs
|
||||
|
||||
pool = multiprocessing.Pool(processes = args.jobs)
|
||||
|
||||
pattern = os.path.join(args.directory, 'srcpkgs', '*')
|
||||
depmap = dict(pool.starmap(enum_depends,
|
||||
((os.path.basename(g), args.directory, cachedir)
|
||||
for g in glob.iglob(pattern))))
|
||||
pkgs = {os.path.realpath(p) for p in glob.iglob(pattern)}
|
||||
|
||||
depargs = ((os.path.basename(g), args.directory, args.cachedir) for g in pkgs)
|
||||
depmap = dict(pool.starmap(enum_depends, depargs))
|
||||
|
||||
find_cycles(depmap, args.directory)
|
||||
|
|
1908
common/shlibs
1908
common/shlibs
File diff suppressed because it is too large
Load diff
|
@ -10,7 +10,7 @@ if [ "$3" = 1 ]; then
|
|||
test="-Q"
|
||||
fi
|
||||
|
||||
PKGS=$(/hostrepo/xbps-src sort-dependencies $(cat /tmp/templates))
|
||||
PKGS=$(/hostrepo/xbps-src $test sort-dependencies $(cat /tmp/templates))
|
||||
|
||||
for pkg in ${PKGS}; do
|
||||
/hostrepo/xbps-src -j$(nproc) -s -H "$HOME"/hostdir $arch $test pkg "$pkg"
|
||||
|
|
|
@ -24,5 +24,6 @@ git diff-tree -r --no-renames --name-only --diff-filter=AM \
|
|||
"$base" "$tip" \
|
||||
-- 'srcpkgs/*/template' |
|
||||
cut -d/ -f 2 |
|
||||
xargs ./xbps-src sort-dependencies |
|
||||
tee /tmp/templates |
|
||||
sed "s/^/ /" >&2
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
#!/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
|
|
@ -22,9 +22,13 @@ APSL-1.0
|
|||
APSL-1.1
|
||||
APSL-1.2
|
||||
APSL-2.0
|
||||
ASWF-Digital-Assets-1.0
|
||||
ASWF-Digital-Assets-1.1
|
||||
Abstyles
|
||||
AdaCore-doc
|
||||
Adobe-2006
|
||||
Adobe-Glyph
|
||||
Adobe-Utopia
|
||||
Afmparse
|
||||
Aladdin
|
||||
Apache-1.0
|
||||
|
@ -36,14 +40,19 @@ Artistic-1.0-Perl
|
|||
Artistic-1.0-cl8
|
||||
Artistic-1.0
|
||||
Artistic-2.0
|
||||
Asterisk-exception
|
||||
Autoconf-exception-2.0
|
||||
Autoconf-exception-3.0
|
||||
Autoconf-exception-generic-3.0
|
||||
Autoconf-exception-generic
|
||||
Autoconf-exception-macro
|
||||
BSD-1-Clause
|
||||
BSD-2-Clause-Patent
|
||||
BSD-2-Clause-Views
|
||||
BSD-2-Clause
|
||||
BSD-3-Clause-Attribution
|
||||
BSD-3-Clause-Clear
|
||||
BSD-3-Clause-HP
|
||||
BSD-3-Clause-LBNL
|
||||
BSD-3-Clause-Modification
|
||||
BSD-3-Clause-No-Military-License
|
||||
|
@ -51,12 +60,20 @@ BSD-3-Clause-No-Nuclear-License-2014
|
|||
BSD-3-Clause-No-Nuclear-License
|
||||
BSD-3-Clause-No-Nuclear-Warranty
|
||||
BSD-3-Clause-Open-MPI
|
||||
BSD-3-Clause-Sun
|
||||
BSD-3-Clause-flex
|
||||
BSD-3-Clause
|
||||
BSD-4-Clause-Shortened
|
||||
BSD-4-Clause-UC
|
||||
BSD-4-Clause
|
||||
BSD-4.3RENO
|
||||
BSD-4.3TAHOE
|
||||
BSD-Advertising-Acknowledgement
|
||||
BSD-Attribution-HPND-disclaimer
|
||||
BSD-Inferno-Nettverk
|
||||
BSD-Protection
|
||||
BSD-Source-Code
|
||||
BSD-Systemics
|
||||
BSL-1.0
|
||||
BUSL-1.1
|
||||
Baekmuk
|
||||
|
@ -66,10 +83,13 @@ Beerware
|
|||
Bison-exception-2.2
|
||||
BitTorrent-1.0
|
||||
BitTorrent-1.1
|
||||
Bitstream-Charter
|
||||
Bitstream-Vera
|
||||
BlueOak-1.0.0
|
||||
Boehm-GC
|
||||
Bootloader-exception
|
||||
Borceux
|
||||
Brian-Gladman-3-Clause
|
||||
C-UDA-1.0
|
||||
CAL-1.0-Combined-Work-Exception
|
||||
CAL-1.0
|
||||
|
@ -99,6 +119,7 @@ CC-BY-NC-ND-3.0-IGO
|
|||
CC-BY-NC-ND-3.0
|
||||
CC-BY-NC-ND-4.0
|
||||
CC-BY-NC-SA-1.0
|
||||
CC-BY-NC-SA-2.0-DE
|
||||
CC-BY-NC-SA-2.0-FR
|
||||
CC-BY-NC-SA-2.0-UK
|
||||
CC-BY-NC-SA-2.0
|
||||
|
@ -120,6 +141,7 @@ CC-BY-SA-2.1-JP
|
|||
CC-BY-SA-2.5
|
||||
CC-BY-SA-3.0-AT
|
||||
CC-BY-SA-3.0-DE
|
||||
CC-BY-SA-3.0-IGO
|
||||
CC-BY-SA-3.0
|
||||
CC-BY-SA-4.0
|
||||
CC-PDDC
|
||||
|
@ -141,7 +163,9 @@ CERN-OHL-1.2
|
|||
CERN-OHL-P-2.0
|
||||
CERN-OHL-S-2.0
|
||||
CERN-OHL-W-2.0
|
||||
CFITSIO
|
||||
CLISP-exception-2.0
|
||||
CMU-Mach
|
||||
CNRI-Jython
|
||||
CNRI-Python-GPL-Compatible
|
||||
CNRI-Python
|
||||
|
@ -153,13 +177,17 @@ CUA-OPL-1.0
|
|||
Caldera
|
||||
ClArtistic
|
||||
Classpath-exception-2.0
|
||||
Clips
|
||||
Community-Spec-1.0
|
||||
Condor-1.1
|
||||
Cornell-Lossless-JPEG
|
||||
Cronyx
|
||||
Crossword
|
||||
CrystalStacker
|
||||
Cube
|
||||
D-FSL-1.0
|
||||
DL-DE-BY-2.0
|
||||
DL-DE-ZERO-2.0
|
||||
DOC
|
||||
DRL-1.0
|
||||
DSDP
|
||||
|
@ -180,6 +208,7 @@ Elastic-2.0
|
|||
Entessa
|
||||
ErlPL-1.1
|
||||
Eurosym
|
||||
FBM
|
||||
FDK-AAC
|
||||
FLTK-exception
|
||||
FSFAP
|
||||
|
@ -189,10 +218,13 @@ FSFULLRWD
|
|||
FTL
|
||||
Fair
|
||||
Fawkes-Runtime-exception
|
||||
Ferguson-Twofish
|
||||
Font-exception-2.0
|
||||
Frameworx-1.0
|
||||
FreeBSD-DOC
|
||||
FreeImage
|
||||
Furuseth
|
||||
GCC-exception-2.0-note
|
||||
GCC-exception-2.0
|
||||
GCC-exception-3.1
|
||||
GD
|
||||
|
@ -216,10 +248,13 @@ GFDL-1.3-only
|
|||
GFDL-1.3-or-later
|
||||
GL2PS
|
||||
GLWTPL
|
||||
GNAT-exception
|
||||
GNU-compiler-exception
|
||||
GPL-1.0-only
|
||||
GPL-1.0-or-later
|
||||
GPL-2.0-only
|
||||
GPL-2.0-or-later
|
||||
GPL-3.0-interface-exception
|
||||
GPL-3.0-linking-exception
|
||||
GPL-3.0-linking-source-exception
|
||||
GPL-3.0-only
|
||||
|
@ -230,6 +265,19 @@ GStreamer-exception-2008
|
|||
Giftware
|
||||
Glide
|
||||
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
|
||||
HTMLTIDY
|
||||
|
@ -237,6 +285,8 @@ HaskellReport
|
|||
Hippocratic-2.1
|
||||
IBM-pibs
|
||||
ICU
|
||||
IEC-Code-Components-EULA
|
||||
IJG-short
|
||||
IJG
|
||||
IPA
|
||||
IPL-1.0
|
||||
|
@ -244,13 +294,17 @@ ISC
|
|||
ImageMagick
|
||||
Imlib2
|
||||
Info-ZIP
|
||||
Inner-Net-2.0
|
||||
Intel-ACPI
|
||||
Intel
|
||||
Interbase-1.0
|
||||
JPL-image
|
||||
JPNIC
|
||||
JSON
|
||||
Jam
|
||||
JasPer-2.0
|
||||
Kastrup
|
||||
Kazlib
|
||||
KiCad-libraries-exception
|
||||
Knuth-CTAN
|
||||
LAL-1.2
|
||||
|
@ -263,7 +317,9 @@ LGPL-3.0-linking-exception
|
|||
LGPL-3.0-only
|
||||
LGPL-3.0-or-later
|
||||
LGPLLR
|
||||
LLGPL
|
||||
LLVM-exception
|
||||
LOOP
|
||||
LPL-1.0
|
||||
LPL-1.02
|
||||
LPPL-1.0
|
||||
|
@ -274,6 +330,7 @@ LPPL-1.3c
|
|||
LZMA-SDK-9.11-to-9.20
|
||||
LZMA-SDK-9.22
|
||||
LZMA-exception
|
||||
Latex2e-translated-notice
|
||||
Latex2e
|
||||
Leptonica
|
||||
LiLiQ-P-1.1
|
||||
|
@ -282,17 +339,26 @@ LiLiQ-Rplus-1.1
|
|||
Libpng
|
||||
Libtool-exception
|
||||
Linux-OpenIB
|
||||
Linux-man-pages-1-para
|
||||
Linux-man-pages-copyleft-2-para
|
||||
Linux-man-pages-copyleft-var
|
||||
Linux-man-pages-copyleft
|
||||
Linux-syscall-note
|
||||
Lucida-Bitmap-Fonts
|
||||
MIT-0
|
||||
MIT-CMU
|
||||
MIT-Festival
|
||||
MIT-Modern-Variant
|
||||
MIT-Wu
|
||||
MIT-advertising
|
||||
MIT-enna
|
||||
MIT-feh
|
||||
MIT-open-group
|
||||
MIT-testregex
|
||||
MIT
|
||||
MITNFA
|
||||
MMIXware
|
||||
MPEG-SSG
|
||||
MPL-1.0
|
||||
MPL-1.1
|
||||
MPL-2.0-no-copyleft-exception
|
||||
|
@ -302,6 +368,8 @@ MS-PL
|
|||
MS-RL
|
||||
MTLL
|
||||
MakeIndex
|
||||
Martin-Birgmeier
|
||||
McPhee-slideshow
|
||||
Minpack
|
||||
MirOS
|
||||
Motosoto
|
||||
|
@ -318,6 +386,7 @@ NGPL
|
|||
NICTA-1.0
|
||||
NIST-PD-fallback
|
||||
NIST-PD
|
||||
NIST-Software
|
||||
NLOD-1.0
|
||||
NLOD-2.0
|
||||
NLPL
|
||||
|
@ -342,6 +411,7 @@ OCLC-2.0
|
|||
OCaml-LGPL-linking-exception
|
||||
ODC-By-1.0
|
||||
ODbL-1.0
|
||||
OFFIS
|
||||
OFL-1.0-RFN
|
||||
OFL-1.0-no-RFN
|
||||
OFL-1.0
|
||||
|
@ -371,8 +441,10 @@ OLDAP-2.5
|
|||
OLDAP-2.6
|
||||
OLDAP-2.7
|
||||
OLDAP-2.8
|
||||
OLFL-1.3
|
||||
OML
|
||||
OPL-1.0
|
||||
OPL-UK-3.0
|
||||
OPUBL-1.0
|
||||
OSET-PL-2.1
|
||||
OSL-1.0
|
||||
|
@ -381,7 +453,9 @@ OSL-2.0
|
|||
OSL-2.1
|
||||
OSL-3.0
|
||||
OpenJDK-assembly-exception-1.0
|
||||
OpenPBS-2.3
|
||||
OpenSSL
|
||||
PADL
|
||||
PDDL-1.0
|
||||
PHP-3.0
|
||||
PHP-3.01
|
||||
|
@ -395,6 +469,8 @@ PolyForm-Small-Business-1.0.0
|
|||
PostgreSQL
|
||||
Python-2.0.1
|
||||
Python-2.0
|
||||
QPL-1.0-INRIA-2004-exception
|
||||
QPL-1.0-INRIA-2004
|
||||
QPL-1.0
|
||||
Qhull
|
||||
Qt-GPL-exception-1.0
|
||||
|
@ -408,17 +484,21 @@ RSA-MD
|
|||
RSCPL
|
||||
Rdisc
|
||||
Ruby
|
||||
SANE-exception
|
||||
SAX-PD
|
||||
SCEA
|
||||
SGI-B-1.0
|
||||
SGI-B-1.1
|
||||
SGI-B-2.0
|
||||
SGI-OpenGL
|
||||
SGP4
|
||||
SHL-0.5
|
||||
SHL-0.51
|
||||
SHL-2.0
|
||||
SHL-2.1
|
||||
SISSL-1.2
|
||||
SISSL
|
||||
SL
|
||||
SMLNJ
|
||||
SMPPL
|
||||
SNIA
|
||||
|
@ -426,6 +506,7 @@ SPL-1.0
|
|||
SSH-OpenSSH
|
||||
SSH-short
|
||||
SSPL-1.0
|
||||
SWI-exception
|
||||
SWL
|
||||
Saxpath
|
||||
SchemeReport
|
||||
|
@ -433,25 +514,38 @@ Sendmail-8.23
|
|||
Sendmail
|
||||
SimPL-2.0
|
||||
Sleepycat
|
||||
Soundex
|
||||
Spencer-86
|
||||
Spencer-94
|
||||
Spencer-99
|
||||
SugarCRM-1.1.3
|
||||
SunPro
|
||||
Swift-exception
|
||||
Symlinks
|
||||
TAPR-OHL-1.0
|
||||
TCL
|
||||
TCP-wrappers
|
||||
TMate
|
||||
TORQUE-1.1
|
||||
TOSL
|
||||
TPDL
|
||||
TPL-1.0
|
||||
TTWL
|
||||
TTYP0
|
||||
TU-Berlin-1.0
|
||||
TU-Berlin-2.0
|
||||
TermReadKey
|
||||
Texinfo-exception
|
||||
UBDL-exception
|
||||
UCAR
|
||||
UCL-1.0
|
||||
UPL-1.0
|
||||
URT-RLE
|
||||
Unicode-DFS-2015
|
||||
Unicode-DFS-2016
|
||||
Unicode-TOU
|
||||
Universal-FOSS-exception-1.0
|
||||
UnixCrypt
|
||||
Unlicense
|
||||
VOSTROM
|
||||
VSL-1.0
|
||||
|
@ -461,13 +555,16 @@ W3C-20150513
|
|||
W3C
|
||||
WTFPL
|
||||
Watcom-1.0
|
||||
Widget-Workshop
|
||||
Wsuipa
|
||||
WxWindows-exception-3.1
|
||||
X11-distribute-modifications-variant
|
||||
X11
|
||||
XFree86-1.1
|
||||
XSkat
|
||||
Xdebug-1.03
|
||||
Xerox
|
||||
Xfig
|
||||
Xnet
|
||||
YPL-1.0
|
||||
YPL-1.1
|
||||
|
@ -475,15 +572,18 @@ ZPL-1.1
|
|||
ZPL-2.0
|
||||
ZPL-2.1
|
||||
Zed
|
||||
Zeeff
|
||||
Zend-2.0
|
||||
Zimbra-1.3
|
||||
Zimbra-1.4
|
||||
Zlib
|
||||
blessing
|
||||
bzip2-1.0.6
|
||||
check-cvs
|
||||
checkmk
|
||||
copyleft-next-0.3.0
|
||||
copyleft-next-0.3.1
|
||||
cryptsetup-OpenSSL-exception
|
||||
curl
|
||||
deprecated_AGPL-1.0
|
||||
deprecated_AGPL-3.0
|
||||
|
@ -517,29 +617,45 @@ deprecated_bzip2-1.0.5
|
|||
deprecated_eCos-2.0
|
||||
deprecated_wxWindows
|
||||
diffmark
|
||||
dtoa
|
||||
dvipdfm
|
||||
eCos-exception-2.0
|
||||
eGenix
|
||||
etalab-2.0
|
||||
freertos-exception-2.0
|
||||
fwlw
|
||||
gSOAP-1.3b
|
||||
gnu-javamail-exception
|
||||
gnuplot
|
||||
i2p-gpl-java-exception
|
||||
iMatix
|
||||
libpng-2.0
|
||||
libpri-OpenH323-exception
|
||||
libselinux-1.0
|
||||
libtiff
|
||||
libutil-David-Nugent
|
||||
lsof
|
||||
magaz
|
||||
metamail
|
||||
mif-exception
|
||||
mpi-permissive
|
||||
mpich2
|
||||
mplus
|
||||
openvpn-openssl-exception
|
||||
pnmstitch
|
||||
psfrag
|
||||
psutils
|
||||
python-ldap
|
||||
snprintf
|
||||
ssh-keyscan
|
||||
stunnel-exception
|
||||
swrule
|
||||
u-boot-exception-2.0
|
||||
ulem
|
||||
vsftpd-openssl-exception
|
||||
w3m
|
||||
x11vnc-openssl-exception
|
||||
xinetd
|
||||
xlock
|
||||
xpp
|
||||
zlib-acknowledgement
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
#
|
||||
# prepare.sh
|
||||
|
||||
[ "$XLINT" ] && exit 0
|
||||
|
||||
/bin/echo -e '\x1b[32mUpdating etc/conf...\x1b[0m'
|
||||
echo XBPS_BUILD_ENVIRONMENT=void-packages-ci >> etc/conf
|
||||
echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf
|
||||
|
|
20
common/travis/verify-update-check.sh
Executable file
20
common/travis/verify-update-check.sh
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/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
|
|
@ -2,8 +2,6 @@
|
|||
#
|
||||
# xlint.sh
|
||||
|
||||
[ "$XLINT" ] || exit 0
|
||||
|
||||
EXITCODE=0
|
||||
read base tip < /tmp/revisions
|
||||
|
||||
|
|
|
@ -8,11 +8,11 @@ ARGS=("$@")
|
|||
i=0
|
||||
while [ $i -lt ${#ARGS[@]} ]; do
|
||||
arg="${ARGS[$i]}"
|
||||
if [ "$incpath" ]; then
|
||||
if [ -n "$incpath" ]; then
|
||||
if [ "$arg" = "/usr/include" ]; then
|
||||
echo "[cc-wrapper] ignoring -I $arg"
|
||||
echo "[cc-wrapper] ignoring ${incpath} $arg"
|
||||
else
|
||||
MYARGS+=("-I${arg}")
|
||||
MYARGS+=("${incpath}${arg}")
|
||||
fi
|
||||
unset incpath
|
||||
elif [ "$libpath" ]; then
|
||||
|
@ -23,13 +23,13 @@ while [ $i -lt ${#ARGS[@]} ]; do
|
|||
MYARGS+=("-L${arg}")
|
||||
fi
|
||||
unset libpath
|
||||
elif [ "$arg" = "-I" ]; then
|
||||
incpath=1
|
||||
elif [ "$arg" = "-I" -o "$arg" = "-isystem" ]; then
|
||||
incpath="$arg"
|
||||
elif [ "$arg" = "-L" ]; then
|
||||
libpath=1
|
||||
elif [ "$arg" = "-I/usr/include" -o "$arg" = "-L/usr/lib" \
|
||||
elif [ "$arg" = "-I/usr/include" -o "$arg" = "-isystem/usr/include" \
|
||||
-o "$arg" = "-L/usr/lib32" -o "$arg" = "-L/usr/lib64" \
|
||||
-o "$arg" = "-L/lib" ]; then
|
||||
-o "$arg" = "-L/usr/lib" -o "$arg" = "-L/lib" ]; then
|
||||
echo "[cc-wrapper] ignoring $arg"
|
||||
else
|
||||
MYARGS+=("${arg}")
|
||||
|
|
|
@ -124,6 +124,17 @@ check_installed_pkg() {
|
|||
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.
|
||||
#
|
||||
|
@ -137,7 +148,7 @@ install_pkg_deps() {
|
|||
local -a host_missing_deps missing_deps missing_rdeps
|
||||
|
||||
[ -z "$pkgname" ] && return 2
|
||||
[ -z "$XBPS_CHECK_PKGS" ] && unset checkdepends
|
||||
skip_check_step && unset checkdepends
|
||||
|
||||
if [[ $build_style ]] || [[ $build_helper ]]; then
|
||||
style=" with"
|
||||
|
@ -208,7 +219,7 @@ install_pkg_deps() {
|
|||
#
|
||||
# Host check dependencies.
|
||||
#
|
||||
if [[ ${checkdepends} ]] && [[ $XBPS_CHECK_PKGS ]] && [ -z "$XBPS_CROSS_BUILD" ]; then
|
||||
if [[ ${checkdepends} ]]; then
|
||||
templates=""
|
||||
# check validity
|
||||
for f in ${checkdepends}; do
|
||||
|
@ -410,22 +421,12 @@ install_pkg_deps() {
|
|||
done
|
||||
|
||||
if [[ ${host_binpkg_deps} ]]; then
|
||||
if [ -z "$XBPS_QUIET" ]; then
|
||||
# normal messages in bold
|
||||
[[ $NOCOLORS ]] || printf "\033[1m"
|
||||
echo "=> $pkgver: installing host dependencies: ${host_binpkg_deps[@]} ..."
|
||||
[[ $NOCOLORS ]] || printf "\033[m"
|
||||
fi
|
||||
msg_normal "$pkgver: installing host dependencies: ${host_binpkg_deps[*]} ...\n"
|
||||
install_pkg_from_repos "" host "${host_binpkg_deps[@]}"
|
||||
fi
|
||||
|
||||
if [[ ${binpkg_deps} ]]; then
|
||||
if [ -z "$XBPS_QUIET" ]; then
|
||||
# normal messages in bold
|
||||
[[ $NOCOLORS ]] || printf "\033[1m"
|
||||
echo "=> $pkgver: installing target dependencies: ${binpkg_deps[@]} ..."
|
||||
[[ $NOCOLORS ]] || printf "\033[m"
|
||||
fi
|
||||
msg_normal "$pkgver: installing target dependencies: ${binpkg_deps[*]} ...\n"
|
||||
install_pkg_from_repos "$cross" target "${binpkg_deps[@]}"
|
||||
fi
|
||||
|
||||
|
|
|
@ -8,22 +8,22 @@ install_base_chroot() {
|
|||
XBPS_TARGET_PKG="$1"
|
||||
fi
|
||||
# binary bootstrap
|
||||
msg_normal "xbps-src: installing base-chroot-cereus...\n"
|
||||
msg_normal "xbps-src: installing base-chroot...\n"
|
||||
# XBPS_TARGET_PKG == arch
|
||||
if [ "$XBPS_TARGET_PKG" ]; then
|
||||
_bootstrap_arch="env XBPS_TARGET_ARCH=$XBPS_TARGET_PKG"
|
||||
fi
|
||||
(export XBPS_MACHINE=$XBPS_TARGET_PKG XBPS_ARCH=$XBPS_TARGET_PKG; chroot_sync_repodata)
|
||||
${_bootstrap_arch} $XBPS_INSTALL_CMD ${XBPS_INSTALL_ARGS} -y base-chroot-cereus
|
||||
${_bootstrap_arch} $XBPS_INSTALL_CMD ${XBPS_INSTALL_ARGS} -y base-chroot
|
||||
if [ $? -ne 0 ]; then
|
||||
msg_error "xbps-src: failed to install base-chroot-cereus!\n"
|
||||
msg_error "xbps-src: failed to install base-chroot!\n"
|
||||
fi
|
||||
# Reconfigure base-files to create dirs/symlinks.
|
||||
if xbps-query -r $XBPS_MASTERDIR base-files &>/dev/null; then
|
||||
XBPS_ARCH=$XBPS_TARGET_PKG xbps-reconfigure -r $XBPS_MASTERDIR -f base-files &>/dev/null
|
||||
fi
|
||||
|
||||
msg_normal "xbps-src: installed base-chroot-cereus successfully!\n"
|
||||
msg_normal "xbps-src: installed base-chroot successfully!\n"
|
||||
chroot_prepare $XBPS_TARGET_PKG || msg_error "xbps-src: failed to initialize chroot!\n"
|
||||
chroot_check
|
||||
chroot_handler clean
|
||||
|
@ -34,7 +34,7 @@ reconfigure_base_chroot() {
|
|||
local pkgs="glibc-locales ca-certificates"
|
||||
[ -z "$IN_CHROOT" -o -e $statefile ] && return 0
|
||||
# Reconfigure ca-certificates.
|
||||
msg_normal "xbps-src: reconfiguring base-chroot-cereus...\n"
|
||||
msg_normal "xbps-src: reconfiguring base-chroot...\n"
|
||||
for f in ${pkgs}; do
|
||||
if xbps-query -r $XBPS_MASTERDIR $f &>/dev/null; then
|
||||
xbps-reconfigure -r $XBPS_MASTERDIR -f $f
|
||||
|
@ -51,7 +51,7 @@ update_base_chroot() {
|
|||
if $(${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -nu|grep -q xbps); then
|
||||
${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu xbps || msg_error "xbps-src: failed to update xbps!\n"
|
||||
fi
|
||||
${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu || msg_error "xbps-src: failed to update base-chroot-cereus!\n"
|
||||
${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu || msg_error "xbps-src: failed to update base-chroot!\n"
|
||||
msg_normal "xbps-src: cleaning up $XBPS_MASTERDIR masterdir...\n"
|
||||
[ -z "$XBPS_KEEP_ALL" -a -z "$XBPS_SKIP_DEPS" ] && remove_pkg_autodeps
|
||||
[ -z "$XBPS_KEEP_ALL" -a -z "$keep_all_force" ] && rm -rf $XBPS_MASTERDIR/builddir $XBPS_MASTERDIR/destdir
|
||||
|
@ -309,6 +309,9 @@ chroot_sync_repodata() {
|
|||
# Copy xbps repository keys to the masterdir.
|
||||
mkdir -p $XBPS_MASTERDIR/var/db/xbps/keys
|
||||
cp -f $XBPS_COMMONDIR/repo-keys/*.plist $XBPS_MASTERDIR/var/db/xbps/keys
|
||||
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.
|
||||
if [ -z "$XBPS_SKIP_REMOTEREPOS" ]; then
|
||||
|
|
|
@ -1,5 +1,41 @@
|
|||
# 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() {
|
||||
local func="$1" desc="$2" funcname="$3" restoretrap= logpipe= logfile= teepid=
|
||||
|
||||
|
@ -140,13 +176,24 @@ msg_warn_nochroot() {
|
|||
|
||||
msg_normal() {
|
||||
if [ -z "$XBPS_QUIET" ]; then
|
||||
# normal messages in bold
|
||||
[ -n "$NOCOLORS" ] || printf "\033[1m"
|
||||
# normal messages in bright bold white
|
||||
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"
|
||||
fi
|
||||
printf "=> $@"
|
||||
[ -n "$NOCOLORS" ] || printf "\033[m"
|
||||
fi
|
||||
}
|
||||
|
||||
msg_verbose() {
|
||||
if [ -n "$XBPS_VERBOSE" ]; then
|
||||
printf >&2 "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
report_broken() {
|
||||
if [ "$show_problems" = "ignore-problems" ]; then
|
||||
return
|
||||
|
@ -165,7 +212,12 @@ report_broken() {
|
|||
}
|
||||
|
||||
msg_normal_append() {
|
||||
[ -n "$NOCOLORS" ] || printf "\033[1m"
|
||||
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"
|
||||
fi
|
||||
printf "$@"
|
||||
[ -n "$NOCOLORS" ] || printf "\033[m"
|
||||
}
|
||||
|
@ -289,6 +341,7 @@ get_endian() {
|
|||
ppc*le) echo "le";;
|
||||
ppc*) echo "be";;
|
||||
x86_64) echo "le";;
|
||||
riscv64) echo "le";;
|
||||
esac
|
||||
}
|
||||
|
||||
|
@ -316,6 +369,7 @@ get_wordsize() {
|
|||
ppc64*) echo "64";;
|
||||
ppc*) echo "32";;
|
||||
x86_64) echo "64";;
|
||||
riscv64) echo "64";;
|
||||
esac
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ remove_pkg_cross_deps() {
|
|||
$XBPS_REMOVE_XCMD -Ryo > $tmplogf 2>&1
|
||||
rval=$?
|
||||
while [ $rval -eq 0 ]; do
|
||||
local curs=$(stat -c %s $tmplogf)
|
||||
local curs=$(stat_size $tmplogf)
|
||||
if [ $curs -eq $prevs ]; then
|
||||
break
|
||||
fi
|
||||
|
|
|
@ -65,11 +65,11 @@ remove_pkg_autodeps() {
|
|||
|
||||
remove_pkg_cross_deps
|
||||
$XBPS_RECONFIGURE_CMD -a >> $tmplogf 2>&1
|
||||
prevs=$(stat -c %s $tmplogf)
|
||||
prevs=$(stat_size $tmplogf)
|
||||
echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf
|
||||
rval=$?
|
||||
while [ $rval -eq 0 ]; do
|
||||
local curs=$(stat -c %s $tmplogf)
|
||||
local curs=$(stat_size $tmplogf)
|
||||
if [ $curs -eq $prevs ]; then
|
||||
break
|
||||
fi
|
||||
|
|
|
@ -57,7 +57,7 @@ purge_distfiles() {
|
|||
cur=0
|
||||
percent=-1
|
||||
for distfile in ${distfiles[@]}; do
|
||||
inode=$(stat "$distfile" --printf "%i")
|
||||
inode=$(stat_inode "$distfile")
|
||||
if [ -z "${inodes[$inode]}" ]; then
|
||||
inodes[$inode]="$distfile"
|
||||
else
|
||||
|
@ -77,7 +77,7 @@ purge_distfiles() {
|
|||
hash_distfile=${file##*/}
|
||||
hash=${hash_distfile:0:$HASHLEN}
|
||||
[ -n "${my_hashes[$hash]}" ] && continue
|
||||
inode=$(stat "$file" --printf "%i")
|
||||
inode=$(stat_inode "$file")
|
||||
echo "Obsolete $hash (inode: $inode)"
|
||||
( IFS="|"; for f in ${inodes[$inode]}; do rm -vf "$f"; rmdir "${f%/*}" 2>/dev/null; done )
|
||||
done
|
||||
|
|
|
@ -75,7 +75,7 @@ show_avail() {
|
|||
|
||||
show_eval_dep() {
|
||||
local f x _pkgname _srcpkg found
|
||||
local _dep="$1"
|
||||
local _dep="${1%-32bit}"
|
||||
local _host="$2"
|
||||
if [ -z "$CROSS_BUILD" ] || [ -z "$_host" ]; then
|
||||
# ignore dependency on itself
|
||||
|
@ -92,8 +92,7 @@ show_eval_dep() {
|
|||
[[ $_dep == $x ]] && found=1 && break
|
||||
done
|
||||
[[ $found ]] && return
|
||||
_pkgname=${_dep/-32bit}
|
||||
_srcpkg=$(readlink -f ${XBPS_SRCPKGDIR}/${_pkgname})
|
||||
_srcpkg=$(readlink -f ${XBPS_SRCPKGDIR}/${_dep})
|
||||
_srcpkg=${_srcpkg##*/}
|
||||
echo $_srcpkg
|
||||
}
|
||||
|
@ -117,7 +116,9 @@ show_pkg_build_depends() {
|
|||
}
|
||||
|
||||
show_pkg_build_deps() {
|
||||
show_pkg_build_depends "${makedepends} $(setup_pkg_depends '' 1 1)" "${hostmakedepends}"
|
||||
local build_depends="${makedepends} $(setup_pkg_depends '' 1 1)"
|
||||
skip_check_step || build_depends+=" ${checkdepends}"
|
||||
show_pkg_build_depends "${build_depends}" "${hostmakedepends}"
|
||||
}
|
||||
|
||||
show_pkg_hostmakedepends() {
|
||||
|
@ -128,16 +129,21 @@ show_pkg_makedepends() {
|
|||
show_pkg_build_depends "${makedepends}" ""
|
||||
}
|
||||
|
||||
show_pkg_checkdepends() {
|
||||
show_pkg_build_depends "${checkdepends}" ""
|
||||
}
|
||||
|
||||
show_pkg_build_options() {
|
||||
local f opt desc
|
||||
local f
|
||||
|
||||
[ -z "$PKG_BUILD_OPTIONS" ] && return 0
|
||||
|
||||
source $XBPS_COMMONDIR/options.description
|
||||
msg_normal "$pkgver: the following build options are set:\n"
|
||||
for f in ${PKG_BUILD_OPTIONS}; do
|
||||
opt="${f#\~}"
|
||||
eval desc="\${desc_option_${opt}}"
|
||||
local opt="${f#\~}"
|
||||
local descref="desc_option_${opt}"
|
||||
local desc="${!descref-Enable support for $opt}"
|
||||
if [[ ${f:0:1} == '~' ]]; then
|
||||
echo " $opt: $desc (OFF)"
|
||||
else
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# vim: set ts=4 sw=4 et:
|
||||
# vim: set ts=4 sw=4 et ft=bash :
|
||||
|
||||
update_check() {
|
||||
local i p url pkgurlname rx found_version consider
|
||||
|
@ -8,15 +8,25 @@ update_check() {
|
|||
local urlpfx urlsfx
|
||||
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
|
||||
. $update_override
|
||||
if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
||||
echo "using $XBPS_TARGET_PKG/update overrides" 1>&2
|
||||
msg_verbose "using $XBPS_TARGET_PKG/update overrides\n"
|
||||
if [ -n "$disabled" ]; then
|
||||
msg_verbose "update-check DISABLED for $original_pkgname: $disabled\n"
|
||||
return 0
|
||||
fi
|
||||
elif [ -z "$distfiles" ]; then
|
||||
if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
||||
echo "NO DISTFILES found for $original_pkgname" 1>&2
|
||||
fi
|
||||
msg_verbose "NO DISTFILES found for $original_pkgname\n"
|
||||
return 0
|
||||
fi
|
||||
|
||||
|
@ -59,7 +69,7 @@ update_check() {
|
|||
*code.google.com*|*googlecode*|\
|
||||
*launchpad.net*|\
|
||||
*cpan.*|\
|
||||
*pythonhosted.org*|\
|
||||
*pythonhosted.org*|*pypi.org/project/*|\
|
||||
*github.com*|\
|
||||
*//gitlab.*|\
|
||||
*bitbucket.org*|\
|
||||
|
@ -90,11 +100,9 @@ update_check() {
|
|||
esac
|
||||
if [ "$rx" ]; then
|
||||
# substitute url if needed
|
||||
if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
||||
echo "(folder) fetching $urlpfx and scanning with $rx" 1>&2
|
||||
fi
|
||||
msg_verbose "(folder) fetching $urlpfx and scanning with $rx\n"
|
||||
skipdirs=
|
||||
curl -A "xbps-src-update-check/$XBPS_SRC_VERSION" --max-time 10 -Lsk "$urlpfx" |
|
||||
curl "${curlargs[@]}" "$urlpfx" |
|
||||
grep -Po -i "$rx" |
|
||||
# sort -V places 1.1/ before 1/, but 1A/ before 1.1A/
|
||||
sed -e 's:$:A:' -e 's:/A$:A/:' | sort -Vru | sed -e 's:A/$:/A:' -e 's:A$::' |
|
||||
|
@ -123,9 +131,10 @@ update_check() {
|
|||
url="https://launchpad.net/$pkgurlname/+download";;
|
||||
*cpan.*)
|
||||
pkgname=${pkgname#perl-};;
|
||||
*pythonhosted.org*)
|
||||
*pythonhosted.org*|*pypi.org/project/*)
|
||||
pkgname=${pkgname#python-}
|
||||
pkgname=${pkgname#python3-}
|
||||
rx="(?<=${pkgname//-/[-_]}-)[0-9.]+(post[0-9]*)?(?=(([.]tar|-cp|-py)))"
|
||||
url="https://pypi.org/simple/$pkgname";;
|
||||
*github.com*)
|
||||
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
|
||||
|
@ -137,16 +146,16 @@ update_check() {
|
|||
*) pkgurlname="$(printf %s "$url" | cut -d / -f 1-5)";;
|
||||
esac
|
||||
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*)
|
||||
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
|
||||
url="https://bitbucket.org/$pkgurlname/downloads"
|
||||
rx='/(get|downloads)/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar)';;
|
||||
*ftp.gnome.org*|*download.gnome.org*)
|
||||
: ${pattern="\Q$pkgname\E-\K(0|[13]\.[0-9]*[02468]|[4-9][0-9]+)\.[0-9.]*[0-9](?=.tar)"}
|
||||
rx='(?<=LATEST-IS-)([0-24-9]|3\.[0-9]*[02468]|[4-9][0-9]+)\.[0-9.]*[0-9](?=\")'
|
||||
url="https://download.gnome.org/sources/$pkgname/cache.json";;
|
||||
*archive.xfce.org*)
|
||||
: ${pattern="\Q$pkgname\E-\K((([4-9]|([1-9][0-9]+))\.[0-9]*[02468]\.[0-9.]*[0-9])|([0-3]\.[0-9.]*))(?=.tar)"}
|
||||
rx='\Q'"$pkgname"'\E-\K((([4-9]|([1-9][0-9]+))\.[0-9]*[02468]\.[0-9.]*[0-9])|([0-3]\.[0-9.]*))(?=.tar)'
|
||||
url="https://archive.xfce.org/feeds/project/$pkgname" ;;
|
||||
*kernel.org/pub/linux/kernel/*)
|
||||
rx=linux-'\K'${version%.*}'[\d.]+(?=\.tar\.xz)';;
|
||||
|
@ -191,16 +200,12 @@ 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'}
|
||||
|
||||
if [ "${fetchedurls[$url]}" ]; then
|
||||
if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
||||
echo "already fetched $url" 1>&2
|
||||
fi
|
||||
msg_verbose "already fetched $url\n"
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
||||
echo "fetching $url and scanning with $rx" 1>&2
|
||||
fi
|
||||
curl -H 'Accept: text/html,application/xhtml+xml,application/xml,text/plain,application/rss+xml' -A "xbps-src-update-check/$XBPS_SRC_VERSION" --max-time 10 -Lsk "$url" |
|
||||
msg_verbose "fetching $url and scanning with $rx\n"
|
||||
curl "${curlargs[@]}" -H 'Accept: text/html,application/xhtml+xml,application/xml,text/plain,application/rss+xml' "$url" |
|
||||
grep -Po -i "$rx"
|
||||
fetchedurls[$url]=yes
|
||||
done |
|
||||
|
@ -210,9 +215,7 @@ update_check() {
|
|||
grep . || echo "NO VERSION found for $original_pkgname" 1>&2
|
||||
} |
|
||||
while IFS= read -r found_version; do
|
||||
if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
||||
echo "found version $found_version"
|
||||
fi
|
||||
msg_verbose "found version $found_version\n"
|
||||
consider=true
|
||||
p="$ignore "
|
||||
while [ -n "$p" ]; do
|
||||
|
@ -221,9 +224,7 @@ update_check() {
|
|||
case "$found_version" in
|
||||
$i)
|
||||
consider=false
|
||||
if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
||||
echo "ignored $found_version due to $i"
|
||||
fi
|
||||
msg_verbose "ignored $found_version due to $i\n"
|
||||
esac
|
||||
done
|
||||
if $consider; then
|
||||
|
|
|
@ -24,11 +24,13 @@ emacs emacs
|
|||
java-environment openjdk8
|
||||
java-runtime openjdk8-jre
|
||||
libudev eudev-libudev
|
||||
lightdm-greeter base-chroot-cyclic-solver
|
||||
nodejs-runtime nodejs
|
||||
ntp-daemon chrony
|
||||
phonon-backend phonon-backend-gstreamer
|
||||
phonon-qt6-backend phonon-backend-vlc
|
||||
phonon-qt5-backend phonon-qt5-backend-gstreamer
|
||||
pipewire-session-manager pipewire-session-manager-bootstrap
|
||||
php-runtime php8.3
|
||||
pipewire-session-manager base-chroot-cyclic-solver
|
||||
rkt-stage1 rkt-stage1-coreos
|
||||
smtp-server opensmtpd
|
||||
tex texlive
|
||||
|
@ -37,3 +39,5 @@ xserver-abi-video xorg-server
|
|||
libGL libglvnd
|
||||
libEGL libglvnd
|
||||
libGLES libglvnd
|
||||
hunspell-en_GB hunspell-en_GB-all
|
||||
libadwaita libadwaita-without-adwaita
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# voidlinux remote repositories (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
|
||||
repository=https://repo-default.voidlinux.org/current/musl/nonfree
|
||||
repository=https://repo-default.voidlinux.org/current/musl/debug
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# voidlinux remote repositories (glibc)
|
||||
repository=https://repo-default.voidlinux.org/current/bootstrap
|
||||
repository=https://repo-default.voidlinux.org/current
|
||||
repository=https://repo-default.voidlinux.org/current/nonfree
|
||||
repository=https://repo-default.voidlinux.org/current/debug
|
||||
repository=https://repo-default.voidlinux.org/current/bootstrap
|
||||
|
||||
# Cereus Linux remote repositories (glibc)
|
||||
repository=https://sourceforge.net/projects/cereus-linux/files/repos/cereus-core/x86_64
|
||||
|
|
|
@ -6,20 +6,18 @@ build_style=meta
|
|||
nostrip=yes
|
||||
repository="cereus-extra"
|
||||
wrksrc=Graphite-color-schemes-${version}
|
||||
depends="Graphite-color-schemes-light \
|
||||
Graphite-color-schemes-dark \
|
||||
Graphite-color-schemes-black \
|
||||
Graphite-color-schemes-nord-light \
|
||||
depends="Graphite-color-schemes-light
|
||||
Graphite-color-schemes-dark
|
||||
Graphite-color-schemes-black
|
||||
Graphite-color-schemes-nord-light
|
||||
Graphite-color-schemes-nord-dark"
|
||||
hostmakedepends="git"
|
||||
short_desc="Custom additional color schemes of Graphite theme for KDE Plasma desktop"
|
||||
maintainer="Kevin F. <https://github.com/KF-Art>"
|
||||
_commit="8b9a6b3d96c1cf3c476a46bd095b43c71aed33e1"
|
||||
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||
license="GPL-3.0"
|
||||
homepage="https://github.com/KF-Art/Graphite-color-schemes"
|
||||
|
||||
do_fetch() {
|
||||
git clone https://github.com/KF-Art/Graphite-color-schemes ${wrksrc}
|
||||
}
|
||||
distfiles="${homepage}/archive/${_commit}.tar.gz"
|
||||
checksum=21caa00141911d6943692e2d384117973933b3129e37d3473c29158798e3a768
|
||||
|
||||
Graphite-color-schemes-light_package() {
|
||||
short_desc+=" - light variant"
|
||||
|
|
|
@ -6,7 +6,7 @@ wrksrc=${pkgname}-main
|
|||
repository="cereus-extra"
|
||||
_cursordir=usr/share/icons
|
||||
short_desc="Graphite cursors theme for Linux desktops"
|
||||
maintainer="KF-Art <https://github.com/KF-Art>"
|
||||
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||
license="GPL-3.0-or-later"
|
||||
homepage="https://github.com/vinceliuice/${pkgname}"
|
||||
distfiles="${homepage}/archive/refs/heads/main.zip"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Template file for 'Graphite-gtk-theme'
|
||||
pkgname=Graphite-gtk-theme
|
||||
version=2023.05.17
|
||||
version=2023.12.31
|
||||
date=${version//./-}
|
||||
revision=1
|
||||
repository="cereus-extra"
|
||||
|
@ -25,18 +25,18 @@ ${pkgname}-nord-light
|
|||
${pkgname}-nord-light-compact"
|
||||
|
||||
short_desc="Material design inspired GTK theme with light and dark variants"
|
||||
maintainer="Kevin F. <kevinfigueroart@proton.me>"
|
||||
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||
license="GPL-3.0"
|
||||
homepage="https://github.com/vinceliuice/Graphite-gtk-theme"
|
||||
distfiles="${homepage}/archive/refs/tags/${date}.tar.gz"
|
||||
checksum=aa212d71ba70cfbc3038fc0f850b1265a9d85a3a87ae1a9da024127e25f53903
|
||||
checksum=b21c3803d2c34928b2f05c6bc9e58995545e135de780ffffc143027b33df4bac
|
||||
|
||||
Graphite-gtk-theme-black_package() {
|
||||
nostrip=yes
|
||||
short_desc+=' - black variant'
|
||||
pkg_install() {
|
||||
vmkdir ${theme_dir}
|
||||
./install.sh -t all -c dark -s standard -n Graphite-black --tweaks rimless black -d ${wrksrc}/themes
|
||||
./install.sh -t all -c dark -s standard -n Graphite-black --tweaks normal rimless black -d ${wrksrc}/themes
|
||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||
rm -r ${wrksrc}/themes/*
|
||||
vlicense LICENSE
|
||||
|
@ -47,7 +47,7 @@ Graphite-gtk-theme-black-compact_package() {
|
|||
short_desc+=' - black-compact variant'
|
||||
pkg_install() {
|
||||
vmkdir ${theme_dir}
|
||||
./install.sh -t all -c dark -s compact -n Graphite-black --tweaks rimless black -d ${wrksrc}/themes
|
||||
./install.sh -t all -c dark -s compact -n Graphite-black --tweaks normal rimless black -d ${wrksrc}/themes
|
||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||
rm -r ${wrksrc}/themes/*
|
||||
vlicense LICENSE
|
||||
|
@ -58,7 +58,7 @@ Graphite-gtk-theme-dark_package() {
|
|||
short_desc+=' - dark variant'
|
||||
pkg_install() {
|
||||
vmkdir ${theme_dir}
|
||||
./install.sh -t all -c dark -s standard --tweaks rimless -d ${wrksrc}/themes
|
||||
./install.sh -t all -c dark -s standard --tweaks normal rimless -d ${wrksrc}/themes
|
||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||
rm -r ${wrksrc}/themes/*
|
||||
vlicense LICENSE
|
||||
|
@ -69,7 +69,7 @@ Graphite-gtk-theme-dark-compact_package() {
|
|||
short_desc+=' - dark-compact variant'
|
||||
pkg_install() {
|
||||
vmkdir ${theme_dir}
|
||||
./install.sh -t all -c dark -s compact --tweaks rimless -d ${wrksrc}/themes
|
||||
./install.sh -t all -c dark -s compact --tweaks normal rimless -d ${wrksrc}/themes
|
||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||
rm -r ${wrksrc}/themes/*
|
||||
vlicense LICENSE
|
||||
|
@ -80,7 +80,7 @@ Graphite-gtk-theme-light_package() {
|
|||
short_desc+=' - light variant'
|
||||
pkg_install() {
|
||||
vmkdir ${theme_dir}
|
||||
./install.sh -t all -c light -s standard --tweaks rimless -d ${wrksrc}/themes
|
||||
./install.sh -t all -c light -s standard --tweaks normal rimless -d ${wrksrc}/themes
|
||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||
rm -r ${wrksrc}/themes/*
|
||||
vlicense LICENSE
|
||||
|
@ -91,7 +91,7 @@ Graphite-gtk-theme-light-compact_package() {
|
|||
short_desc+=' - light-compact variant'
|
||||
pkg_install() {
|
||||
vmkdir ${theme_dir}
|
||||
./install.sh -t all -c light -s compact --tweaks rimless -d ${wrksrc}/themes
|
||||
./install.sh -t all -c light -s compact --tweaks normal rimless -d ${wrksrc}/themes
|
||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||
rm -r ${wrksrc}/themes/*
|
||||
vlicense LICENSE
|
||||
|
@ -102,7 +102,7 @@ Graphite-gtk-theme-nord-dark_package() {
|
|||
short_desc+=' - nord-dark variant'
|
||||
pkg_install() {
|
||||
vmkdir ${theme_dir}
|
||||
./install.sh -t all -c dark -s standard --tweaks rimless nord -d ${wrksrc}/themes
|
||||
./install.sh -t all -c dark -s standard --tweaks normal rimless nord -d ${wrksrc}/themes
|
||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||
rm -r ${wrksrc}/themes/*
|
||||
vlicense LICENSE
|
||||
|
@ -113,7 +113,7 @@ Graphite-gtk-theme-nord-light_package() {
|
|||
short_desc+=' - nord-light variant'
|
||||
pkg_install() {
|
||||
vmkdir ${theme_dir}
|
||||
./install.sh -t all -c light -s standard --tweaks rimless nord -d ${wrksrc}/themes
|
||||
./install.sh -t all -c light -s standard --tweaks normal rimless nord -d ${wrksrc}/themes
|
||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||
rm -r ${wrksrc}/themes/*
|
||||
vlicense LICENSE
|
||||
|
@ -124,7 +124,7 @@ Graphite-gtk-theme-nord-dark-compact_package() {
|
|||
short_desc+=' - nord-dark-compact variant'
|
||||
pkg_install() {
|
||||
vmkdir ${theme_dir}
|
||||
./install.sh -t all -c dark -s compact --tweaks rimless nord -d ${wrksrc}/themes
|
||||
./install.sh -t all -c dark -s compact --tweaks normal rimless nord -d ${wrksrc}/themes
|
||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||
rm -r ${wrksrc}/themes/*
|
||||
vlicense LICENSE
|
||||
|
@ -135,7 +135,7 @@ Graphite-gtk-theme-nord-light-compact_package() {
|
|||
short_desc+=' - nord-light-compact variant'
|
||||
pkg_install() {
|
||||
vmkdir ${theme_dir}
|
||||
./install.sh -t all -c light -s compact --tweaks rimless nord -d ${wrksrc}/themes
|
||||
./install.sh -t all -c light -s compact --tweaks normal rimless nord -d ${wrksrc}/themes
|
||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||
rm -r ${wrksrc}/themes/*
|
||||
vlicense LICENSE
|
||||
|
|
|
@ -12,7 +12,7 @@ depends="${pkgname}-black
|
|||
nostrip=yes
|
||||
wrksrc=Graphite-kvantum-colors-${version}
|
||||
short_desc="Material design inspired Kvantum theme"
|
||||
maintainer="Kevin F. <kevinfigueroart@proton.me>"
|
||||
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||
license="GPL-3.0"
|
||||
homepage="https://github.com/KF-Art/Graphite-kvantum-colors"
|
||||
changelog="${homepage}/releases/tag/${version}"
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 6a60aa0e13561acb6fa9cde4109bff1d8dddf61a
|
||||
Subproject commit 63e53829cff756a2d1de84d823d3ede922ee625b
|
|
@ -1,20 +1,21 @@
|
|||
# Template file for 'Tela-icon-theme'
|
||||
pkgname=Tela-icon-theme
|
||||
version=2023.02.03
|
||||
version=2024.04.19
|
||||
date=${version//./-}
|
||||
revision=1
|
||||
build_style=meta
|
||||
repository=cereus-extra
|
||||
depends="${pkgname}-standard \
|
||||
${pkgname}-black \
|
||||
${pkgname}-blue \
|
||||
${pkgname}-green \
|
||||
${pkgname}-grey \
|
||||
${pkgname}-orange \
|
||||
${pkgname}-pink \
|
||||
${pkgname}-purple \
|
||||
${pkgname}-red \
|
||||
${pkgname}-yellow \
|
||||
depends="${pkgname}-standard
|
||||
${pkgname}-black
|
||||
${pkgname}-brown
|
||||
${pkgname}-blue
|
||||
${pkgname}-green
|
||||
${pkgname}-grey
|
||||
${pkgname}-orange
|
||||
${pkgname}-pink
|
||||
${pkgname}-purple
|
||||
${pkgname}-red
|
||||
${pkgname}-yellow
|
||||
${pkgname}-manjaro
|
||||
${pkgname}-ubuntu
|
||||
${pkgname}-nord"
|
||||
|
@ -24,11 +25,11 @@ icondir=usr/share/icons
|
|||
wrksrc=${pkgname}-${date}
|
||||
hostmakedepends="gtk-update-icon-cache"
|
||||
short_desc="A flat colorful Design icon theme"
|
||||
maintainer="Kevin F. <https://github.com/KF-Art>"
|
||||
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||
license="GPL-3.0"
|
||||
homepage="https://github.com/vinceliuice/Tela-icon-theme"
|
||||
distfiles="${homepage}/archive/refs/tags/${date}.tar.gz"
|
||||
checksum=ab6bf283875a8d777d1a3c8b5969c78a0d329409a4561f4c0f22d36d69171e5d
|
||||
checksum=bff62334a443023a18225b27c045d782822761566bc06e3117a07de54aa11c0c
|
||||
|
||||
Tela-icon-theme-standard_package() {
|
||||
color=standard
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
# 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
|
||||
}
|
|
@ -1,20 +1,22 @@
|
|||
# Template file for 'alttab-git'
|
||||
pkgname=alttab-git
|
||||
version=2023.03.19
|
||||
version=2024.06.09
|
||||
revision=1
|
||||
build_style=gnu-configure
|
||||
hostmakedepends="pkg-config git"
|
||||
hostmakedepends="pkg-config"
|
||||
repository="cereus-extra"
|
||||
makedepends="libX11-devel libXft-devel libXmu-devel libXrandr-devel
|
||||
libXrender-devel libpng-devel libXpm-devel uthash automake"
|
||||
checkdepends="procps-ng xvfb-run xeyes xprop"
|
||||
short_desc="Task switcher for minimalistic window managers - git branch"
|
||||
maintainer="Kevin F. <kevinfigueroart@proton.me>"
|
||||
_commit="2c4c750e3d1813e7c75dce1058d24fb3d4cc3c80"
|
||||
short_desc="Task switcher for minimalistic window managers - git development branch"
|
||||
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||
license="GPL-3.0-or-later"
|
||||
homepage="https://github.com/sagb/alttab"
|
||||
changelog="https://github.com/sagb/alttab/raw/master/ChangeLog"
|
||||
conflicts="alttab"
|
||||
replaces="alttab"
|
||||
distfiles="${homepage}/archive/${_commit}.tar.gz"
|
||||
checksum=59b643c9c5cedd9cde4a02c1bd1efcd9683bb9b5c871dea4c271664f029b7160
|
||||
|
||||
make_check=no # needs cnee/xnee which is not packaged
|
||||
|
||||
|
@ -26,7 +28,3 @@ case "$XBPS_TARGET_MACHINE" in
|
|||
export LDFLAGS="-lfts"
|
||||
;;
|
||||
esac
|
||||
|
||||
do_fetch() {
|
||||
git clone ${homepage} ${wrksrc}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# Template file for 'base-cereus'
|
||||
pkgname=base-cereus
|
||||
version=2023.02.14
|
||||
version=2023.11.12
|
||||
revision=1
|
||||
build_style=meta
|
||||
repository=cereus-core
|
||||
short_desc="Cereus Linux base system meta package"
|
||||
maintainer="Kevin F. <kevinfigueroart@proton.me>"
|
||||
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||
license="Public Domain"
|
||||
conflicts="base-system"
|
||||
homepage="https://cereuslinuxproject.github.io"
|
||||
|
@ -25,5 +25,6 @@ case "$XBPS_TARGET_MACHINE" in
|
|||
esac
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
i686*|x86_64*|ppc*) depends+=" linux-default-cereus";;
|
||||
x86_64*|ppc*) depends+=" linux-default-cereus";;
|
||||
i686*) depends+=" linux-legacy-cereus" ;;
|
||||
esac
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# Template file for 'base-cereustrap'
|
||||
pkgname=base-cereustrap
|
||||
version=0.11
|
||||
revision=2
|
||||
revision=3
|
||||
build_style=meta
|
||||
repository="cereus-core"
|
||||
short_desc="Cereus Linux base system meta package for containers/chroots"
|
||||
maintainer="Kevin F. <https://github.com/KF-Art>"
|
||||
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||
license="Public Domain"
|
||||
homepage="https://cereuslinuxproject.github.io"
|
||||
|
||||
|
@ -14,7 +14,8 @@ depends="
|
|||
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
|
||||
procps-ng tzdata pciutils iana-etc eudev runit-cereus openssh dhcpcd
|
||||
iproute2 iputils iw xbps nvi traceroute kmod removed-packages"
|
||||
iproute2 iputils iw xbps nvi traceroute kmod removed-packages cereus-repo-core
|
||||
cereus-repo-extra"
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl) depends+=" musl musl-locales";;
|
||||
|
|
|
@ -7,7 +7,7 @@ build_style=meta
|
|||
conflicts="base-chroot"
|
||||
repository=cereus-core
|
||||
short_desc="Minimal set of packages required for chroot with xbps-src - Cereus patched version"
|
||||
maintainer="Kevin F. <https://github.com/KF-Art>"
|
||||
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||
license="Public Domain"
|
||||
homepage="https://cereuslinuxproject.github.io"
|
||||
|
||||
|
|
|
@ -38,8 +38,8 @@ make_system_dirs() {
|
|||
|
||||
# Create /var/run and /var/lock symlinks.
|
||||
for d in run lock; do
|
||||
if [ ! -h "var/$d" -a -d var/${d} ]; then
|
||||
echo "/${d} must not be a directory, exiting!"
|
||||
if [ ! -h "var/${d}" -a -d "var/${d}" ]; then
|
||||
echo "/var/${d} must not be a directory, exiting!"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
|
1
srcpkgs/base-files/files/90-usbmon.rules
Normal file
1
srcpkgs/base-files/files/90-usbmon.rules
Normal file
|
@ -0,0 +1 @@
|
|||
SUBSYSTEM=="usbmon", GROUP="usbmon", MODE="640"
|
|
@ -20,6 +20,7 @@ COLOR tty
|
|||
OPTIONS -F -T 0
|
||||
|
||||
# Below, there should be one TERM entry for each termtype that is colorizable
|
||||
TERM alacritty
|
||||
TERM putty-256color
|
||||
TERM rxvt-256color
|
||||
TERM screen-256color
|
||||
|
|
34
srcpkgs/base-files/files/_vkpurge
Normal file
34
srcpkgs/base-files/files/_vkpurge
Normal file
|
@ -0,0 +1,34 @@
|
|||
#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
|
|
@ -4,3 +4,4 @@
|
|||
[[ $- != *i* ]] && return
|
||||
|
||||
alias ls='ls --color=auto'
|
||||
PS1='[\u@\h \W]\$ '
|
||||
|
|
|
@ -22,6 +22,9 @@ scanner:x:20:
|
|||
network:x:21:
|
||||
kvm:x:24:
|
||||
input:x:25:
|
||||
plugdev:x:26:
|
||||
usbmon:x:27:
|
||||
sgx:x:28:
|
||||
nogroup:x:99:
|
||||
users:x:100:
|
||||
xbuilder:x:101:
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue