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:
|
permissions:
|
||||||
issues: write
|
issues: write
|
||||||
container:
|
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:
|
steps:
|
||||||
- name: Prepare container
|
- name: Prepare container
|
||||||
run: |
|
run: |
|
||||||
|
|
2
.github/workflows/manual_check_cycles.yml
vendored
2
.github/workflows/manual_check_cycles.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
||||||
permissions:
|
permissions:
|
||||||
issues: write
|
issues: write
|
||||||
container:
|
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:
|
steps:
|
||||||
- name: Prepare container
|
- name: Prepare container
|
||||||
run: |
|
run: |
|
||||||
|
|
22
.gitignore
vendored
22
.gitignore
vendored
|
@ -2,13 +2,23 @@
|
||||||
*.swp
|
*.swp
|
||||||
*~
|
*~
|
||||||
\#*#
|
\#*#
|
||||||
*.o
|
|
||||||
masterdir*
|
# exclude everything in root except files and directories from void-packages
|
||||||
hostdir*
|
/*
|
||||||
masterdir*/
|
!/.gitattributes
|
||||||
hostdir*/
|
!/.github
|
||||||
|
!/.gitignore
|
||||||
|
!/.mailmap
|
||||||
|
!/CONTRIBUTING.md
|
||||||
|
!/COPYING
|
||||||
|
!/Manual.md
|
||||||
|
!/README.md
|
||||||
|
!/common
|
||||||
|
!/etc
|
||||||
|
!/srcpkgs
|
||||||
|
!/xbps-src
|
||||||
etc/conf
|
etc/conf
|
||||||
etc/conf.*
|
etc/conf.*
|
||||||
etc/virtual
|
etc/virtual
|
||||||
etc/xbps.d/custom
|
etc/xbps.d/custom
|
||||||
.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.
|
In particular, new themes are highly unlikely to be accepted.
|
||||||
Simple shell scripts are unlikely to be accepted unless they provide considerable value to a broad user base.
|
Simple shell scripts are unlikely to be accepted unless they provide considerable value to a broad user base.
|
||||||
New fonts may be accepted if they provide value beyond aesthetics (e.g. they contain glyphs for a script missing in already packaged fonts).
|
New fonts may be accepted if they provide value beyond aesthetics (e.g. they contain glyphs for a script missing in already packaged fonts).
|
||||||
|
Packages related to cryptocurrencies (wallets, miners, nodes, etc) are not accepted.
|
||||||
|
|
||||||
Browser forks, including those based on Chromium and Firefox, are generally not accepted.
|
Browser forks, including those based on Chromium and Firefox, are generally not accepted.
|
||||||
Such forks require heavy patching, maintenance and hours of build time.
|
Such forks require heavy patching, maintenance and hours of build time.
|
||||||
|
@ -81,6 +82,29 @@ The checksum can be updated automatically with the `xgensum` helper from the [xt
|
||||||
|
|
||||||
$ xgensum -i <pkgname>
|
$ xgensum -i <pkgname>
|
||||||
|
|
||||||
|
### Adopting a template
|
||||||
|
|
||||||
|
If a template is orphaned (maintained by `orphan@voidlinux.org`) or the current `maintainer` has not contributed to
|
||||||
|
Void in over a year, template maintainership can be adopted by someone else. To ensure a template gets the care it needs,
|
||||||
|
template adopters should be familiar with the package and have an established history of contributions to Void.
|
||||||
|
Those who have contributed several updates, especially for the template in question, are good candidates for template
|
||||||
|
maintainership.
|
||||||
|
|
||||||
|
It is best to adopt a template when making another change to it. When adopting the template, add your name or username
|
||||||
|
and email to the `maintainer` field in the template, and mention the adoption in your commit message, for example:
|
||||||
|
|
||||||
|
libfoo: update to 1.2.3, adopt.
|
||||||
|
|
||||||
|
### Orphaning a template
|
||||||
|
|
||||||
|
If you no longer wish to maintain a template, you can remove yourself as maintainer by setting the `maintainer` field in
|
||||||
|
the template to `Orphaned <orphan@voidlinux.org>`. The commit message should mention this, for example:
|
||||||
|
|
||||||
|
libfoo: orphan.
|
||||||
|
|
||||||
|
It is not necessary to make other changes to the template when orphaning, and incrementing the revision (triggering a
|
||||||
|
rebuild) is not necessary either.
|
||||||
|
|
||||||
### Committing your changes
|
### Committing your changes
|
||||||
|
|
||||||
After making your changes, please check that the package builds successfully. From the top level directory of your local copy of the `void-packages` repository, run:
|
After making your changes, please check that the package builds successfully. From the top level directory of your local copy of the `void-packages` repository, run:
|
||||||
|
|
2
COPYING
2
COPYING
|
@ -1,5 +1,5 @@
|
||||||
Copyright (c) 2008-2020 Juan Romero Pardines and contributors
|
Copyright (c) 2008-2020 Juan Romero Pardines and contributors
|
||||||
Copyright (c) 2017-2023 The Void Linux team and contributors
|
Copyright (c) 2017-2024 The Void Linux team and contributors
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
|
222
Manual.md
222
Manual.md
|
@ -5,6 +5,7 @@ packages for XBPS, the `Void Linux` native packaging system.
|
||||||
|
|
||||||
*Table of Contents*
|
*Table of Contents*
|
||||||
|
|
||||||
|
* The XBPS source packages manual
|
||||||
* [Introduction](#Introduction)
|
* [Introduction](#Introduction)
|
||||||
* [Package build phases](#buildphase)
|
* [Package build phases](#buildphase)
|
||||||
* [Package naming conventions](#namingconventions)
|
* [Package naming conventions](#namingconventions)
|
||||||
|
@ -27,13 +28,13 @@ packages for XBPS, the `Void Linux` native packaging system.
|
||||||
* [Build helper scripts](#build_helper)
|
* [Build helper scripts](#build_helper)
|
||||||
* [Functions](#functions)
|
* [Functions](#functions)
|
||||||
* [Build options](#build_options)
|
* [Build options](#build_options)
|
||||||
* [Runtime dependencies](#deps_runtime)
|
|
||||||
* [INSTALL and REMOVE files](#install_remove_files)
|
* [INSTALL and REMOVE files](#install_remove_files)
|
||||||
* [INSTALL.msg and REMOVE.msg files](#install_remove_files_msg)
|
* [INSTALL.msg and REMOVE.msg files](#install_remove_files_msg)
|
||||||
* [Creating system accounts/groups at runtime](#runtime_account_creation)
|
* [Creating system accounts/groups at runtime](#runtime_account_creation)
|
||||||
* [Writing runit services](#writing_runit_services)
|
* [Writing runit services](#writing_runit_services)
|
||||||
* [32bit packages](#32bit_pkgs)
|
* [32bit packages](#32bit_pkgs)
|
||||||
* [Subpackages](#pkgs_sub)
|
* [Subpackages](#pkgs_sub)
|
||||||
|
* [Some package classes](#pkgs_classes)
|
||||||
* [Development packages](#pkgs_development)
|
* [Development packages](#pkgs_development)
|
||||||
* [Data packages](#pkgs_data)
|
* [Data packages](#pkgs_data)
|
||||||
* [Documentation packages](#pkgs_documentation)
|
* [Documentation packages](#pkgs_documentation)
|
||||||
|
@ -61,7 +62,6 @@ packages for XBPS, the `Void Linux` native packaging system.
|
||||||
* [kernel-hooks](#triggers_kernel_hooks)
|
* [kernel-hooks](#triggers_kernel_hooks)
|
||||||
* [mimedb](#triggers_mimedb)
|
* [mimedb](#triggers_mimedb)
|
||||||
* [mkdirs](#triggers_mkdirs)
|
* [mkdirs](#triggers_mkdirs)
|
||||||
* [openjdk-profile](#triggers_openjdk_profile)
|
|
||||||
* [pango-modules](#triggers_pango_module)
|
* [pango-modules](#triggers_pango_module)
|
||||||
* [pycompile](#triggers_pycompile)
|
* [pycompile](#triggers_pycompile)
|
||||||
* [register-shell](#triggers_register_shell)
|
* [register-shell](#triggers_register_shell)
|
||||||
|
@ -76,7 +76,7 @@ packages for XBPS, the `Void Linux` native packaging system.
|
||||||
* [Help](#help)
|
* [Help](#help)
|
||||||
|
|
||||||
<a id="Introduction"></a>
|
<a id="Introduction"></a>
|
||||||
## Introduction
|
### Introduction
|
||||||
|
|
||||||
The `void-packages` repository contains all the
|
The `void-packages` repository contains all the
|
||||||
recipes to download, compile and build binary packages for Void Linux.
|
recipes to download, compile and build binary packages for Void Linux.
|
||||||
|
@ -316,7 +316,7 @@ The following functions are defined by `xbps-src` and can be used on any templat
|
||||||
`${FILESDIR}/$service`, containing `exec vlogger -t $service -p $facility`.
|
`${FILESDIR}/$service`, containing `exec vlogger -t $service -p $facility`.
|
||||||
if a second argument is not specified, the `daemon` facility is used.
|
if a second argument is not specified, the `daemon` facility is used.
|
||||||
For more information about `vlogger` and available values for the facility,
|
For more information about `vlogger` and available values for the facility,
|
||||||
see [vlogger(1)](https://man.voidlinux.org/vlogger.1).
|
see [vlogger(8)](https://man.voidlinux.org/vlogger.8).
|
||||||
|
|
||||||
- *vsed()* `vsed -i <file> -e <regex>`
|
- *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`,
|
it will default to `pkgname`. The `shell` argument can be one of `bash`,
|
||||||
`fish` or `zsh`.
|
`fish` or `zsh`.
|
||||||
|
|
||||||
|
- *vextract()* `[-C <target directory>] [--no-strip-components|--strip-components=<n>] <file>`
|
||||||
|
|
||||||
|
Extracts `file` to `target directory` with `n` directory components stripped. If
|
||||||
|
`target directory` not specified, defaults to the working directory. If
|
||||||
|
`--strip-components` or `--no-strip-components` is not specified, defaults to
|
||||||
|
`--strip-components=1`.
|
||||||
|
|
||||||
|
- *vsrcextract()* `[-C <target directory>] [--no-strip-components|--strip-components=<n>] <file>`
|
||||||
|
|
||||||
|
Extracts `$XBPS_SRCDISTDIR/$pkgname-$version/<file>` to `target directory`
|
||||||
|
with `n` directory components stripped. If `target directory` not specified,
|
||||||
|
defaults to the working directory. If `--strip-components` or `--no-strip-components`
|
||||||
|
is not specified, defaults to `--strip-components=1`.
|
||||||
|
|
||||||
|
This is useful when used in conjunction with `skip_extraction` and for submodule distfiles.
|
||||||
|
|
||||||
|
- *vsrccopy()* `<file>... <target>`
|
||||||
|
|
||||||
|
Copies `file`s from `$XBPS_SRCDISTDIR/$pkgname-$version/` into the `target` directory,
|
||||||
|
creating `target` if it does not exist.
|
||||||
|
|
||||||
|
This is useful when used in conjunction with `skip_extraction`.
|
||||||
|
|
||||||
> Shell wildcards must be properly quoted, Example: `vmove "usr/lib/*.a"`.
|
> Shell wildcards must be properly quoted, Example: `vmove "usr/lib/*.a"`.
|
||||||
|
|
||||||
<a id="global_vars"></a>
|
<a id="global_vars"></a>
|
||||||
|
@ -440,8 +463,8 @@ the generated `binary packages` have been modified.
|
||||||
- `version` A string with the package version. Must not contain dashes or underscore
|
- `version` A string with the package version. Must not contain dashes or underscore
|
||||||
and at least one digit is required. Shell's variable substitution usage is not allowed.
|
and at least one digit is required. Shell's variable substitution usage is not allowed.
|
||||||
|
|
||||||
Neither `pkgname` or `version` should contain special characters which make it
|
`pkgname` and `version` are forbidden to contain special characters. Hence, they don't
|
||||||
necessary to quote them, so they shouldn't be quoted in the template.
|
need to be quoted, and by convention, they shouldn't be.
|
||||||
|
|
||||||
<a id="optional_vars"></a>
|
<a id="optional_vars"></a>
|
||||||
#### Optional variables
|
#### 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
|
In general, `archs` should only be set if the upstream software explicitly targets
|
||||||
certain architectures or there is a compelling reason why the software should not be
|
certain architectures or there is a compelling reason why the software should not be
|
||||||
available on some supported architectures.
|
available on some supported architectures.
|
||||||
Prepending pattern with tilde means disallowing build on indicated archs.
|
Prepending a pattern with a tilde means disallowing build on the indicated archs.
|
||||||
First matching pattern is taken to allow/deny build. When no pattern matches,
|
The first matching pattern is taken to allow/deny build. When no pattern matches,
|
||||||
package is build if last pattern includes tilde.
|
the package is built if the last pattern includes a tilde.
|
||||||
Examples:
|
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
|
a D-Bus session for applications that need it
|
||||||
- `git`: some test suites run the `git` command
|
- `git`: some test suites run the `git` command
|
||||||
|
|
||||||
|
<a id="deps_runtime"></a>
|
||||||
Lastly, a package may require certain dependencies at runtime, without which it
|
Lastly, a package may require certain dependencies at runtime, without which it
|
||||||
is unusable. These dependencies, when they aren't detected automatically by
|
is unusable. These dependencies, when they aren't detected automatically by
|
||||||
XBPS, should be listed in `depends`. This is mostly relevant for Perl and Python
|
XBPS, should be listed in `depends`.
|
||||||
modules and other programs that use `dlopen(3)` instead of dynamically linking.
|
|
||||||
|
Libraries linked by ELF objects are detected automatically by `xbps-src`, hence they
|
||||||
|
must not be specified in templates via `depends`. This variable should list:
|
||||||
|
|
||||||
|
- executables called as separate processes.
|
||||||
|
- ELF objects using dlopen(3).
|
||||||
|
- non-object code, e.g. C headers, perl/python/ruby/etc modules.
|
||||||
|
- data files.
|
||||||
|
- overriding the minimal version specified in the `common/shlibs` file.
|
||||||
|
|
||||||
|
The runtime dependencies for ELF objects are detected by checking which SONAMEs
|
||||||
|
they require and then the SONAMEs are mapped to a binary package name with a minimal
|
||||||
|
required version. The `common/shlibs` file
|
||||||
|
sets up the `<SONAME> <pkgname>>=<version>` mappings.
|
||||||
|
|
||||||
|
For example the `foo-1.0_1` package provides the `libfoo.so.1` SONAME and
|
||||||
|
software requiring this library will link to `libfoo.so.1`; the resulting binary
|
||||||
|
package will have a run-time dependency on `foo>=1.0_1` package as specified in
|
||||||
|
`common/shlibs`:
|
||||||
|
|
||||||
|
```
|
||||||
|
# common/shlibs
|
||||||
|
...
|
||||||
|
libfoo.so.1 foo-1.0_1
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
- The first field specifies the SONAME.
|
||||||
|
- The second field specified the package name and minimal version required.
|
||||||
|
- A third optional field (usually set to `ignore`) can be used to skip checks in soname bumps.
|
||||||
|
|
||||||
|
Dependencies declared via `depends` are not installed to the master directory, rather they are
|
||||||
|
only checked if they exist as binary packages, and are built automatically by `xbps-src` if
|
||||||
|
the specified version is not in the local repository.
|
||||||
|
|
||||||
|
As a special case, `virtual` dependencies may be specified as runtime dependencies in the
|
||||||
|
`depends` template variable. Several different packages can provide common functionality by
|
||||||
|
declaring a virtual name and version in the `provides` template variable (e.g.
|
||||||
|
`provides="vpkg-0.1_1"`). Packages that rely on the common functionality without concern for the
|
||||||
|
specific provider can declare a dependency on the virtual package name with the prefix `virtual?`
|
||||||
|
(e.g., `depends="virtual?vpkg-0.1_1"`). When a package is built by `xbps-src`, providers for any
|
||||||
|
virtual packages will be confirmed to exist and will be built if necessary. A map from virtual
|
||||||
|
packages to their default providers is defined in `etc/defaults.virtual`. Individual mappings can be
|
||||||
|
overridden by local preferences in `etc/virtual`. Comments in `etc/defaults.virtual` provide more
|
||||||
|
information on this map.
|
||||||
|
|
||||||
Finally, as a general rule, if a package is built the exact same way whether or
|
Finally, as a general rule, if a package is built the exact same way whether or
|
||||||
not a particular package is present in `makedepends` or `hostmakedepends`, that
|
not a particular package is present in `makedepends` or `hostmakedepends`, that
|
||||||
package shouldn't be added as a build time dependency.
|
package shouldn't be added as a build time dependency.
|
||||||
|
|
||||||
<a id="repositories"></a>
|
<a id="repositories"></a>
|
||||||
#### Repositories
|
### Repositories
|
||||||
|
|
||||||
<a id="repo_by_branch"></a>
|
<a id="repo_by_branch"></a>
|
||||||
##### Repositories defined by Branch
|
#### Repositories defined by Branch
|
||||||
|
|
||||||
The global repository takes the name of
|
The global repository takes the name of
|
||||||
the current branch, except if the name of the branch is master. Then the resulting
|
the current branch, except if the name of the branch is master. Then the resulting
|
||||||
|
@ -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.
|
update multiple packages in a second branch without polluting his local repository.
|
||||||
|
|
||||||
<a id="pkg_defined_repo"></a>
|
<a id="pkg_defined_repo"></a>
|
||||||
##### Package defined Repositories
|
#### Package defined Repositories
|
||||||
|
|
||||||
The second way to define a repository is by setting the `repository` variable in
|
The second way to define a repository is by setting the `repository` variable in
|
||||||
a template. This way the maintainer can define repositories for a specific
|
a template. This way the maintainer can define repositories for a specific
|
||||||
package or a group of packages. This is currently used to distinguish between
|
package or a group of packages. This is currently used to distinguish between
|
||||||
closed source packages, which are put in the `nonfree` repository and other
|
certain classes of packages.
|
||||||
packages which are at the root-repository.
|
|
||||||
|
|
||||||
The following repository names are valid:
|
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>
|
<a id="updates"></a>
|
||||||
### Checking for new upstream releases
|
### Checking for new upstream releases
|
||||||
|
@ -859,6 +929,10 @@ in url. Defaults to `(|v|$pkgname)[-_.]*`.
|
||||||
part that follows numeric part of version directory
|
part that follows numeric part of version directory
|
||||||
in url. Defaults to `(|\.x)`.
|
in url. Defaults to `(|\.x)`.
|
||||||
|
|
||||||
|
- `disabled` can be set to disable update checking for the package,
|
||||||
|
in cases where checking for updates is impossible or does not make sense.
|
||||||
|
This should be set to a string describing why it is disabled.
|
||||||
|
|
||||||
<a id="patches"></a>
|
<a id="patches"></a>
|
||||||
### Handling patches
|
### Handling patches
|
||||||
|
|
||||||
|
@ -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
|
For packages that use the Python module build method (`setup.py` or
|
||||||
[PEP 517](https://www.python.org/dev/peps/pep-0517/)), you can choose one of the following:
|
[PEP 517](https://www.python.org/dev/peps/pep-0517/)), you can choose one of the following:
|
||||||
|
|
||||||
- `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 modules that provide a PEP 517 build description without
|
||||||
|
|
||||||
- `python3-pep517` to build Python 3.x only modules that provide a PEP 517 build description without
|
|
||||||
a `setup.py` script
|
a `setup.py` script
|
||||||
|
|
||||||
Environment variables for a specific `build_style` can be declared in a filename
|
Environment variables for a specific `build_style` can be declared in a filename
|
||||||
|
@ -1020,8 +1092,7 @@ suitable environment for working with certain sets of packages.
|
||||||
|
|
||||||
The current list of available `build_helper` scripts is the following:
|
The current list of available `build_helper` scripts is the following:
|
||||||
|
|
||||||
- `rust` specifies environment variables required for cross-compiling crates via cargo and
|
- `cmake-wxWidgets-gtk3` sets the `WX_CONFIG` variable which is used by FindwxWidgets.cmake
|
||||||
for compiling cargo -sys crates.
|
|
||||||
|
|
||||||
- `gir` specifies dependencies for native and cross builds to deal with
|
- `gir` specifies dependencies for native and cross builds to deal with
|
||||||
GObject Introspection. The following variables may be set in the template to handle
|
GObject Introspection. The following variables may be set in the template to handle
|
||||||
|
@ -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
|
`qemu-<target_arch>-static` when running the target binary. You can for example specify
|
||||||
`GIR_EXTRA_OPTIONS="-strace"` to see a trace of what happens when running that binary.
|
`GIR_EXTRA_OPTIONS="-strace"` to see a trace of what happens when running that binary.
|
||||||
|
|
||||||
|
- `meson` creates a cross file, `${XBPS_WRAPPERDIR}/meson/xbps_meson.cross`, which configures
|
||||||
|
meson for cross builds. This is particularly useful for building packages that wrap meson
|
||||||
|
invocations (e.g., `python3-pep517` packages that use a meson backend) and is added by default
|
||||||
|
for packages that use the `meson` build style.
|
||||||
|
|
||||||
|
- `numpy` configures the environment for cross-compilation of python packages that provide
|
||||||
|
compiled extensions linking to NumPy C libraries. If the `meson` build helper is also
|
||||||
|
configured, a secondary cross file, `${XBPS_WRAPPERDIR}/meson/xbps_numpy.cross`, will be
|
||||||
|
written to inform meson where common NumPy components may be found.
|
||||||
|
|
||||||
|
- `python3` configures the cross-build environment to use Python libraries, header files, and
|
||||||
|
interpreter configurations in the target root. The `python3` helper is added by default for
|
||||||
|
packages that use the `python3-module` or `python3-pep517` build styles.
|
||||||
|
|
||||||
- `qemu` sets additional variables for the `cmake` and `meson` build styles to allow
|
- `qemu` sets additional variables for the `cmake` and `meson` build styles to allow
|
||||||
executing cross-compiled binaries inside qemu.
|
executing cross-compiled binaries inside qemu.
|
||||||
It sets `CMAKE_CROSSCOMPILING_EMULATOR` for cmake and `exe_wrapper` for meson
|
It sets `CMAKE_CROSSCOMPILING_EMULATOR` for cmake and `exe_wrapper` for meson
|
||||||
|
@ -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-configure` style the configure script calls `qmake` or a `Makefile` in
|
||||||
`gnu-makefile` style, respectively.
|
`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>
|
<a id="functions"></a>
|
||||||
### Functions
|
### Functions
|
||||||
|
@ -1160,6 +1247,11 @@ package accordingly. Additionally, the following functions are available:
|
||||||
Outputs `-D<property>=true` if the option is set, or
|
Outputs `-D<property>=true` if the option is set, or
|
||||||
`-D<property>=false` otherwise.
|
`-D<property>=false` otherwise.
|
||||||
|
|
||||||
|
- *vopt_feature()* `vopt_feature <option> <property>`
|
||||||
|
|
||||||
|
Same as `vopt_bool`, but uses `-D<property=enabled` and
|
||||||
|
`-D<property>=disabled` respectively.
|
||||||
|
|
||||||
The following example shows how to change a source package that uses GNU
|
The following example shows how to change a source package that uses GNU
|
||||||
configure to enable a new build option to support PNG images:
|
configure to enable a new build option to support PNG images:
|
||||||
|
|
||||||
|
@ -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
|
The list of supported package build options and its description is defined in the
|
||||||
`common/options.description` file.
|
`common/options.description` file.
|
||||||
|
|
||||||
<a id="deps_runtime"></a>
|
|
||||||
#### Runtime dependencies
|
|
||||||
|
|
||||||
Dependencies for ELF objects are detected automatically by `xbps-src`, hence runtime
|
|
||||||
dependencies must not be specified in templates via `$depends` with the following exceptions:
|
|
||||||
|
|
||||||
- ELF objects using dlopen(3).
|
|
||||||
- non ELF objects, i.e perl/python/ruby/etc modules.
|
|
||||||
- Overriding the minimal version specified in the `shlibs` file.
|
|
||||||
|
|
||||||
The runtime dependencies for ELF objects are detected by checking which SONAMEs
|
|
||||||
they require and then the SONAMEs are mapped to a binary package name with a minimal
|
|
||||||
required version. The `shlibs` file in the `void-packages/common` directory
|
|
||||||
sets up the `<SONAME> <pkgname>>=<version>` mappings.
|
|
||||||
|
|
||||||
For example the `foo-1.0_1` package provides the `libfoo.so.1` SONAME and
|
|
||||||
software requiring this library will link to `libfoo`; the resulting binary
|
|
||||||
package will have a run-time dependency to `foo>=1.0_1` package as specified in
|
|
||||||
`common/shlibs`:
|
|
||||||
|
|
||||||
```
|
|
||||||
# common/shlibs
|
|
||||||
...
|
|
||||||
libfoo.so.1 foo-1.0_1
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
- The first field specifies the SONAME.
|
|
||||||
- The second field specified the package name and minimal version required.
|
|
||||||
- A third optional field (usually set to `ignore`) can be used to skip checks in soname bumps.
|
|
||||||
|
|
||||||
Dependencies declared via `${depends}` are not installed to the master directory, rather are
|
|
||||||
only checked if they exist as binary packages, and are built automatically by `xbps-src` if
|
|
||||||
the specified version is not in the local repository.
|
|
||||||
|
|
||||||
As a special case, `virtual` dependencies may be specified as runtime dependencies in the
|
|
||||||
`${depends}` template variable. Several different packages can provide common functionality by
|
|
||||||
declaring a virtual name and version in the `${provides}` template variable (e.g.,
|
|
||||||
`provides="vpkg-0.1_1"`). Packages that rely on the common functionality without concern for the
|
|
||||||
specific provider can declare a dependency on the virtual package name with the prefix `virtual?`
|
|
||||||
(e.g., `depends="virtual?vpkg-0.1_1"`). When a package is built by `xbps-src`, providers for any
|
|
||||||
virtual packages will be confirmed to exist and will be built if necessary. A map from virtual
|
|
||||||
packages to their default providers is defined in `etc/defaults.virtual`. Individual mappings can be
|
|
||||||
overridden by local preferences in `etc/virtual`. Comments in `etc/defaults.virtual` provide more
|
|
||||||
information on this map.
|
|
||||||
|
|
||||||
<a id="install_remove_files"></a>
|
<a id="install_remove_files"></a>
|
||||||
### INSTALL and REMOVE files
|
### INSTALL and REMOVE files
|
||||||
|
|
||||||
|
@ -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
|
subpackages can also have their own `INSTALL.msg` and `REMOVE.msg` files, simply create them
|
||||||
as `srcpkgs/<pkgname>/<subpkg>.INSTALL.msg` or `srcpkgs/<pkgname>/<subpkg>.REMOVE.msg` respectively.
|
as `srcpkgs/<pkgname>/<subpkg>.INSTALL.msg` or `srcpkgs/<pkgname>/<subpkg>.REMOVE.msg` respectively.
|
||||||
|
|
||||||
|
This should only be used for critical messages, like warning users of breaking changes.
|
||||||
|
|
||||||
<a id="runtime_account_creation"></a>
|
<a id="runtime_account_creation"></a>
|
||||||
### Creating system accounts/groups at runtime
|
### Creating system accounts/groups at runtime
|
||||||
|
|
||||||
|
@ -1478,8 +1526,11 @@ destdir (`$DESTDIR`) to the `subpackage` destdir (`$PKGDESTDIR`).
|
||||||
Subpackages are processed always in alphabetical order; To force a custom order,
|
Subpackages are processed always in alphabetical order; To force a custom order,
|
||||||
the `subpackages` variable can be declared with the wanted order.
|
the `subpackages` variable can be declared with the wanted order.
|
||||||
|
|
||||||
|
<a id="pkgs_classes"></a>
|
||||||
|
### Some package classes
|
||||||
|
|
||||||
<a id="pkgs_development"></a>
|
<a id="pkgs_development"></a>
|
||||||
### Development packages
|
#### Development packages
|
||||||
|
|
||||||
A development package, commonly generated as a subpackage, shall only contain
|
A development package, commonly generated as a subpackage, shall only contain
|
||||||
files required for development, that is, headers, static libraries, shared
|
files required for development, that is, headers, static libraries, shared
|
||||||
|
@ -1509,7 +1560,7 @@ following subset of files from the main package:
|
||||||
* Vala bindings `usr/share/vala`
|
* Vala bindings `usr/share/vala`
|
||||||
|
|
||||||
<a id="pkgs_data"></a>
|
<a id="pkgs_data"></a>
|
||||||
### Data packages
|
#### Data packages
|
||||||
|
|
||||||
Another common subpackage type is the `-data` subpackage. This subpackage
|
Another common subpackage type is the `-data` subpackage. This subpackage
|
||||||
type used to split architecture independent, big(ger) or huge amounts
|
type used to split architecture independent, big(ger) or huge amounts
|
||||||
|
@ -1521,7 +1572,7 @@ The main package must then have `depends="${pkgname}-data-${version}_${revision}
|
||||||
possibly in addition to other, non-automatic depends.
|
possibly in addition to other, non-automatic depends.
|
||||||
|
|
||||||
<a id="pkgs_documentation"></a>
|
<a id="pkgs_documentation"></a>
|
||||||
### Documentation packages
|
#### Documentation packages
|
||||||
|
|
||||||
Packages intended for user interaction do not always unconditionally require
|
Packages intended for user interaction do not always unconditionally require
|
||||||
their documentation part. A user who does not want to e.g. develop
|
their documentation part. A user who does not want to e.g. develop
|
||||||
|
@ -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.
|
be your guidance to decide whether or not to split off a `-doc` subpackage.
|
||||||
|
|
||||||
<a id="pkgs_python"></a>
|
<a id="pkgs_python"></a>
|
||||||
### Python packages
|
#### Python packages
|
||||||
|
|
||||||
Python packages should be built with the `python{,2,3}-module` build style, if possible.
|
Python packages should be built with the `python{,2,3}-module` build style, if possible.
|
||||||
This sets some environment variables required to allow cross compilation. Support to allow
|
This sets some environment variables required to allow cross compilation. Support to allow
|
||||||
|
@ -1579,6 +1630,8 @@ In most cases version is inferred from shebang, install path or build style.
|
||||||
Only required for some multi-language
|
Only required for some multi-language
|
||||||
applications (e.g., the application is written in C while the command is
|
applications (e.g., the application is written in C while the command is
|
||||||
written in Python) or just single Python file ones that live in `/usr/bin`.
|
written in Python) or just single Python file ones that live in `/usr/bin`.
|
||||||
|
If `python_version` is set to `ignore`, python-containing shebangs will not be rewritten.
|
||||||
|
Use this only if a package should not be using a system version of python.
|
||||||
|
|
||||||
Also, a set of useful variables are defined to use in the templates:
|
Also, a set of useful variables are defined to use in the templates:
|
||||||
|
|
||||||
|
@ -1597,7 +1650,7 @@ Also, a set of useful variables are defined to use in the templates:
|
||||||
python versions.
|
python versions.
|
||||||
|
|
||||||
<a id="pkgs_go"></a>
|
<a id="pkgs_go"></a>
|
||||||
### Go packages
|
#### Go packages
|
||||||
|
|
||||||
Go packages should be built with the `go` build style, if possible.
|
Go packages should be built with the `go` build style, if possible.
|
||||||
The `go` build style takes care of downloading Go dependencies and
|
The `go` build style takes care of downloading Go dependencies and
|
||||||
|
@ -1631,7 +1684,7 @@ The path to the package's source inside `$GOPATH` is available as
|
||||||
`$GOSRCPATH`.
|
`$GOSRCPATH`.
|
||||||
|
|
||||||
<a id="pkgs_haskell"></a>
|
<a id="pkgs_haskell"></a>
|
||||||
### Haskell packages
|
#### Haskell packages
|
||||||
|
|
||||||
We build Haskell package using `stack` from
|
We build Haskell package using `stack` from
|
||||||
[Stackage](http://www.stackage.org/), generally the LTS versions.
|
[Stackage](http://www.stackage.org/), generally the LTS versions.
|
||||||
|
@ -1649,7 +1702,7 @@ The following variables influence how Haskell packages are built:
|
||||||
you can add your `--flag ...` parameters there.
|
you can add your `--flag ...` parameters there.
|
||||||
|
|
||||||
<a id="pkgs_font"></a>
|
<a id="pkgs_font"></a>
|
||||||
### Font packages
|
#### Font packages
|
||||||
|
|
||||||
Font packages are very straightforward to write, they are always set with the
|
Font packages are very straightforward to write, they are always set with the
|
||||||
following variables:
|
following variables:
|
||||||
|
@ -1906,7 +1959,7 @@ If it is running under another architecture it tries to use the host's `install-
|
||||||
utility.
|
utility.
|
||||||
|
|
||||||
<a id="triggers_initramfs_regenerate"></a>
|
<a id="triggers_initramfs_regenerate"></a>
|
||||||
### initramfs-regenerate
|
#### initramfs-regenerate
|
||||||
|
|
||||||
The initramfs-regenerate trigger will trigger the regeneration of all kernel
|
The initramfs-regenerate trigger will trigger the regeneration of all kernel
|
||||||
initramfs images after package installation or removal. The trigger must be
|
initramfs images after package installation or removal. The trigger must be
|
||||||
|
@ -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
|
To include this trigger use the `make_dirs` variable, as the trigger won't do anything
|
||||||
unless it is defined.
|
unless it is defined.
|
||||||
|
|
||||||
<a id="triggers_openjdk_profile"></a>
|
|
||||||
#### openjdk-profile
|
|
||||||
|
|
||||||
The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
|
|
||||||
sets the `JAVA_HOME` environment variable to the currently-selected alternative for
|
|
||||||
`/usr/bin/java` on installation. This trigger must be manually requested.
|
|
||||||
|
|
||||||
<a id="triggers_pango_module"></a>
|
<a id="triggers_pango_module"></a>
|
||||||
#### pango-modules
|
#### pango-modules
|
||||||
|
|
||||||
|
@ -2138,7 +2184,7 @@ otherwise the `debug` packages won't have debugging symbols.
|
||||||
<a id="contributing"></a>
|
<a id="contributing"></a>
|
||||||
### Contributing via git
|
### Contributing via git
|
||||||
|
|
||||||
To get started, [fork](https://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
|
$ git clone git@github.com:<user>/void-packages.git
|
||||||
|
|
||||||
|
@ -2155,7 +2201,7 @@ to pull in new changes:
|
||||||
$ git pull --rebase upstream master
|
$ git pull --rebase upstream master
|
||||||
|
|
||||||
<a id="help"></a>
|
<a id="help"></a>
|
||||||
## Help
|
### Help
|
||||||
|
|
||||||
If after reading this `manual` you still need some kind of help, please join
|
If after reading this `manual` you still need some kind of help, please join
|
||||||
us at `#xbps` via IRC at `irc.libera.chat`.
|
us at `#xbps` via IRC at `irc.libera.chat`.
|
||||||
|
|
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.
|
Alternatively, packages can be installed with the `xi` utility, from the `xtools` package. `xi` takes the repository of the current working directory into account.
|
||||||
|
|
||||||
```
|
```
|
||||||
# xi <package_name>
|
$ xi <package_name>
|
||||||
```
|
```
|
||||||
|
|
||||||
<a name="chroot-methods"></a>
|
<a name="chroot-methods"></a>
|
||||||
|
@ -217,7 +217,7 @@ The following directory hierarchy is used with a default configuration file:
|
||||||
| |- repocache ...
|
| |- repocache ...
|
||||||
| |- sources ...
|
| |- sources ...
|
||||||
|
|
|
|
||||||
|- masterdir
|
|- masterdir-<arch>
|
||||||
| |- builddir -> ...
|
| |- builddir -> ...
|
||||||
| |- destdir -> ...
|
| |- destdir -> ...
|
||||||
| |- host -> bind mounted from <hostdir>
|
| |- host -> bind mounted from <hostdir>
|
||||||
|
@ -226,7 +226,7 @@ The following directory hierarchy is used with a default configuration file:
|
||||||
|
|
||||||
The description of these directories is as follows:
|
The description of these directories is as follows:
|
||||||
|
|
||||||
- `masterdir`: 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.
|
- `builddir`: to unpack package source tarballs and where packages are built.
|
||||||
- `destdir`: to install packages, aka **fake destdir**.
|
- `destdir`: to install packages, aka **fake destdir**.
|
||||||
- `hostdir/ccache`: to store ccache data if the `XBPS_CCACHE` option is enabled.
|
- `hostdir/ccache`: to store ccache data if the `XBPS_CCACHE` option is enabled.
|
||||||
|
@ -331,7 +331,7 @@ And then make a signature per package:
|
||||||
If the RSA key was protected with a passphrase you'll have to type it, or alternatively set
|
If the RSA key was protected with a passphrase you'll have to type it, or alternatively set
|
||||||
it via the `XBPS_PASSPHRASE` environment variable.
|
it via the `XBPS_PASSPHRASE` environment variable.
|
||||||
|
|
||||||
Once the binary packages have been signed, check 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
|
$ 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.
|
> It is not possible to sign a repository with multiple RSA keys.
|
||||||
|
|
||||||
|
If packages in `hostdir/binpkgs` are signed, the key in `.plist` format (as imported by xbps) can be placed
|
||||||
|
in `etc/repo-keys/` to prevent xbps-src from prompting to import that key.
|
||||||
|
|
||||||
<a name="rebuilding"></a>
|
<a name="rebuilding"></a>
|
||||||
### Rebuilding and overwriting existing local packages
|
### Rebuilding and overwriting existing local packages
|
||||||
|
|
||||||
Packages are overwritten on every build to make getting package with changed build options easy.
|
Packages are overwritten on every build to make getting package with changed build options easy.
|
||||||
To make xbps-src skip build and preserve first package build with 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.
|
same as in official void repository, set `XBPS_PRESERVE_PKGS=yes` in `etc/conf` file.
|
||||||
|
|
||||||
Reinstalling a package in your target `rootdir` can be easily done too:
|
Reinstalling a package in your target `rootdir` can be easily done too:
|
||||||
|
@ -359,7 +362,7 @@ the package from the desired repository.
|
||||||
<a name="distcc"></a>
|
<a name="distcc"></a>
|
||||||
### Enabling distcc for distributed compilation
|
### Enabling distcc for distributed compilation
|
||||||
|
|
||||||
Setup the slaves (machines that will compile the code):
|
Setup the workers (machines that will compile the code):
|
||||||
|
|
||||||
# xbps-install -Sy distcc
|
# xbps-install -Sy distcc
|
||||||
|
|
||||||
|
@ -372,7 +375,7 @@ Enable and start the `distccd` service:
|
||||||
# ln -s /etc/sv/distccd /var/service
|
# ln -s /etc/sv/distccd /var/service
|
||||||
|
|
||||||
Install distcc on the host (machine that executes xbps-src) as well.
|
Install distcc on the host (machine that executes xbps-src) as well.
|
||||||
Unless you want to use the host as 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.
|
to modify the configuration.
|
||||||
|
|
||||||
On the host you can now enable distcc in the `void-packages/etc/conf` file:
|
On the host you can now enable distcc in the `void-packages/etc/conf` file:
|
||||||
|
@ -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 example values assume a localhost CPU with 4 cores of which at most 2 are used for compiler jobs.
|
||||||
The number of slots for preprocessor jobs is set to 24 in order to have enough preprocessed data for other CPUs to compile.
|
The number of slots for preprocessor jobs is set to 24 in order to have enough preprocessed data for other CPUs to compile.
|
||||||
The slave 192.168.2.101 has a CPU with 8 cores and the /9 for the number of jobs is a saturating choice.
|
The worker 192.168.2.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.102 is set to run at most 2 compile jobs to keep its load low, even if its CPU has 4 cores.
|
||||||
The XBPS_MAKEJOBS setting is increased to 16 to account for the possible parallelism (2 + 9 + 2 + some slack).
|
The XBPS_MAKEJOBS setting is increased to 16 to account for the possible parallelism (2 + 9 + 2 + some slack).
|
||||||
|
|
||||||
<a name="distfiles-mirrors"></a>
|
<a name="distfiles-mirrors"></a>
|
||||||
|
@ -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:
|
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
|
$ mkdir ~/XBPS
|
||||||
$ tar xvf xbps-static-latest.<arch>-musl.tar.xz -C ~/XBPS
|
$ tar xvf xbps-static-latest.<arch>-musl.tar.xz -C ~/XBPS
|
||||||
$ export PATH=~/XBPS/usr/bin:$PATH
|
$ export PATH=~/XBPS/usr/bin:$PATH
|
||||||
|
@ -447,7 +450,7 @@ and `xbps-src` should be fully functional; just start the `bootstrap` process, i
|
||||||
|
|
||||||
$ ./xbps-src binary-bootstrap
|
$ ./xbps-src binary-bootstrap
|
||||||
|
|
||||||
The default masterdir is created in the current working directory, i.e `void-packages/masterdir`.
|
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>
|
<a name="remaking-masterdir"></a>
|
||||||
### Remaking the masterdir
|
### 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`:
|
The canonical mode (native) needs a new x86 `masterdir`:
|
||||||
|
|
||||||
$ ./xbps-src -m masterdir-x86 binary-bootstrap i686
|
$ ./xbps-src -A i686 binary-bootstrap
|
||||||
$ ./xbps-src -m masterdir-x86 ...
|
$ ./xbps-src -A i686 ...
|
||||||
|
|
||||||
<a name="building-for-musl"></a>
|
<a name="building-for-musl"></a>
|
||||||
### Building packages natively for the musl C library
|
### Building packages natively for the musl C library
|
||||||
|
|
||||||
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:
|
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:
|
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>
|
<a name="building-base-system"></a>
|
||||||
### Building void base-system from scratch
|
### 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,7 +11,8 @@ if [[ $hostmakedepends != *"python3-numpy"* ]]; then
|
||||||
hostmakedepends+=" python3-numpy"
|
hostmakedepends+=" python3-numpy"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
[ -z "$CROSS_BUILD" ] && return 0
|
||||||
|
|
||||||
if [[ $makedepends != *"python3-numpy"* ]]; then
|
if [[ $makedepends != *"python3-numpy"* ]]; then
|
||||||
makedepends+=" python3-numpy"
|
makedepends+=" python3-numpy"
|
||||||
fi
|
fi
|
||||||
|
@ -34,4 +35,19 @@ if [ "$CROSS_BUILD" ]; then
|
||||||
ln -sf "${_gfortran}" "${XBPS_WRAPPERDIR}/gfortran"
|
ln -sf "${_gfortran}" "${XBPS_WRAPPERDIR}/gfortran"
|
||||||
fi
|
fi
|
||||||
unset _gfortran
|
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
|
fi
|
||||||
|
|
|
@ -30,9 +30,16 @@ else
|
||||||
unset CARGO_BUILD_TARGET
|
unset CARGO_BUILD_TARGET
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# prevent cargo stripping debug symbols
|
||||||
|
export CARGO_PROFILE_RELEASE_STRIP=false
|
||||||
|
|
||||||
# For cross-compiling rust -sys crates
|
# For cross-compiling rust -sys crates
|
||||||
export PKG_CONFIG_ALLOW_CROSS=1
|
export PKG_CONFIG_ALLOW_CROSS=1
|
||||||
|
|
||||||
|
# For cross-compiling pyo3 bindings
|
||||||
|
export PYO3_CROSS_LIB_DIR="${XBPS_CROSS_BASE}/usr/lib"
|
||||||
|
export PYO3_CROSS_INCLUDE_DIR="${XBPS_CROSS_BASE}/usr/include"
|
||||||
|
|
||||||
# gettext-rs
|
# gettext-rs
|
||||||
export GETTEXT_BIN_DIR=/usr/bin
|
export GETTEXT_BIN_DIR=/usr/bin
|
||||||
export GETTEXT_LIB_DIR="${XBPS_CROSS_BASE}/usr/lib/gettext"
|
export GETTEXT_LIB_DIR="${XBPS_CROSS_BASE}/usr/lib/gettext"
|
||||||
|
@ -57,3 +64,12 @@ export ZSTD_SYS_USE_PKG_CONFIG=1
|
||||||
|
|
||||||
# onig-sys
|
# onig-sys
|
||||||
export RUSTONIG_SYSTEM_LIBONIG=1
|
export RUSTONIG_SYSTEM_LIBONIG=1
|
||||||
|
|
||||||
|
# libsqlite3-sys
|
||||||
|
export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
|
||||||
|
|
||||||
|
# jemalloc-sys
|
||||||
|
export JEMALLOC_SYS_WITH_LG_PAGE=16
|
||||||
|
|
||||||
|
# libgit2-sys
|
||||||
|
export LIBGIT2_NO_VENDOR=1
|
||||||
|
|
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 ;;
|
ppc64*) _CMAKE_SYSTEM_PROCESSOR=ppc64 ;;
|
||||||
ppcle*) _CMAKE_SYSTEM_PROCESSOR=ppcle ;;
|
ppcle*) _CMAKE_SYSTEM_PROCESSOR=ppcle ;;
|
||||||
ppc*) _CMAKE_SYSTEM_PROCESSOR=ppc ;;
|
ppc*) _CMAKE_SYSTEM_PROCESSOR=ppc ;;
|
||||||
|
riscv64*) _CMAKE_SYSTEM_PROCESSOR=riscv64 ;;
|
||||||
*) _CMAKE_SYSTEM_PROCESSOR=generic ;;
|
*) _CMAKE_SYSTEM_PROCESSOR=generic ;;
|
||||||
esac
|
esac
|
||||||
cat > cross_${XBPS_CROSS_TRIPLET}.cmake <<_EOF
|
cat > cross_${XBPS_CROSS_TRIPLET}.cmake <<_EOF
|
||||||
|
@ -39,6 +40,7 @@ SET(CMAKE_SYSTEM_VERSION 1)
|
||||||
|
|
||||||
SET(CMAKE_C_COMPILER ${CC})
|
SET(CMAKE_C_COMPILER ${CC})
|
||||||
SET(CMAKE_CXX_COMPILER ${CXX})
|
SET(CMAKE_CXX_COMPILER ${CXX})
|
||||||
|
SET(Rust_CARGO_TARGET ${XBPS_CROSS_RUST_TARGET})
|
||||||
SET(CMAKE_CROSSCOMPILING TRUE)
|
SET(CMAKE_CROSSCOMPILING TRUE)
|
||||||
|
|
||||||
SET(CMAKE_SYSTEM_PROCESSOR ${_CMAKE_SYSTEM_PROCESSOR})
|
SET(CMAKE_SYSTEM_PROCESSOR ${_CMAKE_SYSTEM_PROCESSOR})
|
||||||
|
@ -51,11 +53,10 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
_EOF
|
_EOF
|
||||||
cmake_args+=" -DCMAKE_TOOLCHAIN_FILE=${wrksrc}/${build_wrksrc}/${cmake_builddir}/cross_${XBPS_CROSS_TRIPLET}.cmake"
|
cmake_args+=" -DCMAKE_TOOLCHAIN_FILE=${wrksrc}/${build_wrksrc}/${cmake_builddir}/cross_${XBPS_CROSS_TRIPLET}.cmake"
|
||||||
fi
|
fi
|
||||||
cmake_args+=" -DCMAKE_INSTALL_PREFIX=/usr"
|
cmake_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
|
||||||
cmake_args+=" -DCMAKE_BUILD_TYPE=None"
|
cmake_args+=" -DCMAKE_BUILD_TYPE=None"
|
||||||
cmake_args+=" -DCMAKE_INSTALL_LIBDIR=lib${XBPS_TARGET_WORDSIZE}"
|
cmake_args+=" -DCMAKE_INSTALL_LIBDIR:PATH=lib${XBPS_TARGET_WORDSIZE}"
|
||||||
cmake_args+=" -DCMAKE_INSTALL_SYSCONFDIR=/etc"
|
cmake_args+=" -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc"
|
||||||
cmake_args+=" -DFETCHCONTENT_FULLY_DISCONNECTED=ON"
|
|
||||||
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
if [ "$CROSS_BUILD" ]; then
|
||||||
cmake_args+=" -DQT_HOST_PATH=/usr"
|
cmake_args+=" -DQT_HOST_PATH=/usr"
|
||||||
|
@ -69,7 +70,7 @@ _EOF
|
||||||
>> cross_${XBPS_CROSS_TRIPLET}.cmake
|
>> cross_${XBPS_CROSS_TRIPLET}.cmake
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cmake_args+=" -DCMAKE_INSTALL_SBINDIR=bin"
|
cmake_args+=" -DCMAKE_INSTALL_SBINDIR:PATH=bin"
|
||||||
|
|
||||||
export CMAKE_GENERATOR="${CMAKE_GENERATOR:-Ninja}"
|
export CMAKE_GENERATOR="${CMAKE_GENERATOR:-Ninja}"
|
||||||
# Remove -pipe: https://gitlab.kitware.com/cmake/cmake/issues/19590
|
# Remove -pipe: https://gitlab.kitware.com/cmake/cmake/issues/19590
|
||||||
|
|
|
@ -32,6 +32,16 @@ do_build() {
|
||||||
go_package=${go_package:-$go_import_path}
|
go_package=${go_package:-$go_import_path}
|
||||||
# Build using Go modules if there's a go.mod file
|
# Build using Go modules if there's a go.mod file
|
||||||
if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then
|
if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then
|
||||||
|
|
||||||
|
if [[ -n "${_go_mod_path}" ]]; then
|
||||||
|
pushd $(dirname ${_go_mod_path})
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if go_import_path matches module
|
||||||
|
if [ "module $go_import_path" != "$(grep '^module' go.mod | head -n1)" ]; then
|
||||||
|
msg_error "\"\$go_import_path\" doesn't match the one defined in go.mod!\n"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "${go_mod_mode}" ] && [ -d vendor ]; then
|
if [ -z "${go_mod_mode}" ] && [ -d vendor ]; then
|
||||||
msg_normal "Using vendor dir for $pkgname Go dependencies.\n"
|
msg_normal "Using vendor dir for $pkgname Go dependencies.\n"
|
||||||
go_mod_mode=vendor
|
go_mod_mode=vendor
|
||||||
|
@ -40,10 +50,13 @@ do_build() {
|
||||||
# default behavior.
|
# default behavior.
|
||||||
go_mod_mode=
|
go_mod_mode=
|
||||||
fi
|
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
|
else
|
||||||
# Otherwise, build using GOPATH
|
# 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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,94 +1,11 @@
|
||||||
#
|
#
|
||||||
# This helper is for templates using meson.
|
# This helper is for templates using meson.
|
||||||
#
|
#
|
||||||
do_patch() {
|
|
||||||
: ${meson_crossfile:=xbps_meson.cross}
|
|
||||||
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
|
||||||
_MESON_TARGET_ENDIAN=little
|
|
||||||
# drop the -musl suffix to the target cpu, meson doesn't recognize it
|
|
||||||
_MESON_TARGET_CPU=${XBPS_TARGET_MACHINE/-musl/}
|
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
|
||||||
mips|mips-musl|mipshf-musl)
|
|
||||||
_MESON_TARGET_ENDIAN=big
|
|
||||||
_MESON_CPU_FAMILY=mips
|
|
||||||
;;
|
|
||||||
armv*)
|
|
||||||
_MESON_CPU_FAMILY=arm
|
|
||||||
;;
|
|
||||||
i686*)
|
|
||||||
_MESON_CPU_FAMILY=x86
|
|
||||||
;;
|
|
||||||
ppc64le*)
|
|
||||||
_MESON_CPU_FAMILY=ppc64
|
|
||||||
;;
|
|
||||||
ppc64*)
|
|
||||||
_MESON_TARGET_ENDIAN=big
|
|
||||||
_MESON_CPU_FAMILY=ppc64
|
|
||||||
;;
|
|
||||||
ppcle*)
|
|
||||||
_MESON_CPU_FAMILY=ppc
|
|
||||||
;;
|
|
||||||
ppc*)
|
|
||||||
_MESON_TARGET_ENDIAN=big
|
|
||||||
_MESON_CPU_FAMILY=ppc
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# if we reached here that means that the cpu and cpu_family
|
|
||||||
# are the same like 'x86_64' and 'aarch64'
|
|
||||||
_MESON_CPU_FAMILY=${_MESON_TARGET_CPU}
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Record cross-compiling information in cross file.
|
|
||||||
# CFLAGS and LDFLAGS must be set as c_args and c_link_args.
|
|
||||||
cat > ${meson_crossfile} <<EOF
|
|
||||||
[binaries]
|
|
||||||
c = '${CC}'
|
|
||||||
cpp = '${CXX}'
|
|
||||||
ar = '${XBPS_CROSS_TRIPLET}-gcc-ar'
|
|
||||||
nm = '${NM}'
|
|
||||||
ld = '${LD}'
|
|
||||||
strip = '${STRIP}'
|
|
||||||
readelf = '${READELF}'
|
|
||||||
objcopy = '${OBJCOPY}'
|
|
||||||
pkgconfig = '${PKG_CONFIG}'
|
|
||||||
rust = ['rustc', '--target', '${RUST_TARGET}' ,'--sysroot', '${XBPS_CROSS_BASE}/usr']
|
|
||||||
g-ir-scanner = '${XBPS_CROSS_BASE}/usr/bin/g-ir-scanner'
|
|
||||||
g-ir-compiler = '${XBPS_CROSS_BASE}/usr/bin/g-ir-compiler'
|
|
||||||
g-ir-generate = '${XBPS_CROSS_BASE}/usr/bin/g-ir-generate'
|
|
||||||
llvm-config = '/usr/bin/llvm-config'
|
|
||||||
cups-config = '${XBPS_CROSS_BASE}/usr/bin/cups-config'
|
|
||||||
|
|
||||||
[properties]
|
|
||||||
needs_exe_wrapper = true
|
|
||||||
|
|
||||||
[built-in options]
|
|
||||||
c_args = ['$(echo ${CFLAGS} | sed -r "s/\s+/','/g")']
|
|
||||||
c_link_args = ['$(echo ${LDFLAGS} | sed -r "s/\s+/','/g")']
|
|
||||||
|
|
||||||
cpp_args = ['$(echo ${CXXFLAGS} | sed -r "s/\s+/','/g")']
|
|
||||||
cpp_link_args = ['$(echo ${LDFLAGS} | sed -r "s/\s+/','/g")']
|
|
||||||
|
|
||||||
[host_machine]
|
|
||||||
system = 'linux'
|
|
||||||
cpu_family = '${_MESON_CPU_FAMILY}'
|
|
||||||
cpu = '${_MESON_TARGET_CPU}'
|
|
||||||
endian = '${_MESON_TARGET_ENDIAN}'
|
|
||||||
EOF
|
|
||||||
if [[ $build_helper = *"qemu"* ]]; then
|
|
||||||
sed -e "/\[binaries\]/ a exe_wrapper = '/usr/bin/qemu-${XBPS_TARGET_QEMU_MACHINE}-static'" \
|
|
||||||
-i ${meson_crossfile}
|
|
||||||
fi
|
|
||||||
|
|
||||||
unset _MESON_CPU_FAMILY _MESON_TARGET_CPU _MESON_TARGET_ENDIAN
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
do_configure() {
|
do_configure() {
|
||||||
: ${meson_cmd:=meson}
|
: ${meson_cmd:=meson}
|
||||||
: ${meson_builddir:=build}
|
: ${meson_builddir:=build}
|
||||||
: ${meson_crossfile:=xbps_meson.cross}
|
: ${meson_crossfile:="${XBPS_WRAPPERDIR}/meson/xbps_meson.cross"}
|
||||||
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
if [ "$CROSS_BUILD" ]; then
|
||||||
configure_args+=" --cross-file=${meson_crossfile}"
|
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
|
if python3 -c 'import xdist' >/dev/null 2>&1; then
|
||||||
testjobs="-n $XBPS_MAKEJOBS"
|
testjobs="-n $XBPS_MAKEJOBS"
|
||||||
fi
|
fi
|
||||||
PYTHONPATH="$(cd build/lib* && pwd)" \
|
PYTHONPATH="$(cd build/lib* && pwd)" PY_IGNORE_IMPORTMISMATCH=1 \
|
||||||
${make_check_pre} \
|
${make_check_pre} \
|
||||||
python3 -m pytest ${testjobs} ${make_check_args} ${make_check_target}
|
python3 -m pytest ${testjobs} ${make_check_args} ${make_check_target}
|
||||||
else
|
else
|
||||||
|
|
|
@ -4,8 +4,18 @@
|
||||||
|
|
||||||
do_build() {
|
do_build() {
|
||||||
: ${make_build_target:=.}
|
: ${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() {
|
do_check() {
|
||||||
|
@ -19,11 +29,11 @@ do_check() {
|
||||||
testjobs="-n $XBPS_MAKEJOBS"
|
testjobs="-n $XBPS_MAKEJOBS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local testdir="${wrksrc}/tmp/$(date +%s)"
|
local testdir="${wrksrc}/.xbps-testdir/$(date +%s)"
|
||||||
python3 -m installer --destdir "${testdir}" \
|
python3 -m installer --destdir "${testdir}" \
|
||||||
${make_install_args} ${make_install_target:-dist/*.whl}
|
${make_install_args} ${make_install_target:-dist/*.whl}
|
||||||
|
|
||||||
PATH="${testdir}/usr/bin:${PATH}" PYTHONPATH="${testdir}/${py3_sitelib}" \
|
PATH="${testdir}/usr/bin:${PATH}" PYTHONPATH="${testdir}/${py3_sitelib}" PY_IGNORE_IMPORTMISMATCH=1 \
|
||||||
${make_check_pre} pytest3 ${testjobs} ${make_check_args} ${make_check_target}
|
${make_check_pre} pytest3 ${testjobs} ${make_check_args} ${make_check_target}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,17 +4,22 @@
|
||||||
do_configure() {
|
do_configure() {
|
||||||
local qmake
|
local qmake
|
||||||
local qmake_args
|
local qmake_args
|
||||||
local qt
|
local qt=${QT:-}
|
||||||
if [ -x "/usr/lib/qt5/bin/qmake" ]; then
|
local builddir="${wrksrc}/${build_wrksrc}"
|
||||||
qmake="/usr/lib/qt5/bin/qmake"
|
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"
|
qt="qt5"
|
||||||
elif [ -x "/usr/lib/qt6/bin/qmake" ]; then
|
elif [ -x "/usr/lib/qt6/bin/qmake" ]; then
|
||||||
qmake="/usr/lib/qt6/bin/qmake"
|
|
||||||
qt="qt6"
|
qt="qt6"
|
||||||
fi
|
else
|
||||||
if [ -z "${qmake}" ]; then
|
|
||||||
msg_error "${pkgver}: Could not find qmake - missing in hostmakedepends?\n"
|
msg_error "${pkgver}: Could not find qmake - missing in hostmakedepends?\n"
|
||||||
fi
|
fi
|
||||||
|
qmake="/usr/lib/${qt}/bin/qmake"
|
||||||
if [ "$CROSS_BUILD" ]; then
|
if [ "$CROSS_BUILD" ]; then
|
||||||
case $XBPS_TARGET_MACHINE in
|
case $XBPS_TARGET_MACHINE in
|
||||||
i686*) _qt_arch=i386;;
|
i686*) _qt_arch=i386;;
|
||||||
|
@ -25,8 +30,8 @@ do_configure() {
|
||||||
ppc64*) _qt_arch=power64;;
|
ppc64*) _qt_arch=power64;;
|
||||||
ppc*) _qt_arch=power;;
|
ppc*) _qt_arch=power;;
|
||||||
esac
|
esac
|
||||||
mkdir -p "${wrksrc}/.target-spec/linux-g++"
|
mkdir -p "${builddir}/.target-spec/linux-g++"
|
||||||
cat > "${wrksrc}/.target-spec/linux-g++/qmake.conf" <<_EOF
|
cat > "${builddir}/.target-spec/linux-g++/qmake.conf" <<_EOF
|
||||||
MAKEFILE_GENERATOR = UNIX
|
MAKEFILE_GENERATOR = UNIX
|
||||||
CONFIG += incremental no_qt_rpath
|
CONFIG += incremental no_qt_rpath
|
||||||
QMAKE_INCREMENTAL_STYLE = sublib
|
QMAKE_INCREMENTAL_STYLE = sublib
|
||||||
|
@ -54,10 +59,10 @@ QMAKE_CXXFLAGS = ${CXXFLAGS}
|
||||||
QMAKE_LFLAGS = ${LDFLAGS}
|
QMAKE_LFLAGS = ${LDFLAGS}
|
||||||
load(qt_config)
|
load(qt_config)
|
||||||
_EOF
|
_EOF
|
||||||
echo "#include \"${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h\"" > "${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++"
|
mkdir -p "${builddir}/.host-spec/linux-g++"
|
||||||
cat > "${wrksrc}/.host-spec/linux-g++/qmake.conf" <<_EOF
|
cat > "${builddir}/.host-spec/linux-g++/qmake.conf" <<_EOF
|
||||||
MAKEFILE_GENERATOR = UNIX
|
MAKEFILE_GENERATOR = UNIX
|
||||||
CONFIG += incremental no_qt_rpath
|
CONFIG += incremental no_qt_rpath
|
||||||
QMAKE_INCREMENTAL_STYLE = sublib
|
QMAKE_INCREMENTAL_STYLE = sublib
|
||||||
|
@ -84,8 +89,8 @@ QMAKE_CXXFLAGS = ${CXXFLAGS_host}
|
||||||
QMAKE_LFLAGS = ${LDFLAGS_host}
|
QMAKE_LFLAGS = ${LDFLAGS_host}
|
||||||
load(qt_config)
|
load(qt_config)
|
||||||
_EOF
|
_EOF
|
||||||
echo '#include "/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h"' > "${wrksrc}/.host-spec/linux-g++/qplatformdefs.h"
|
echo '#include "/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h"' > "${builddir}/.host-spec/linux-g++/qplatformdefs.h"
|
||||||
cat > "${wrksrc}/qt.conf" <<_EOF
|
cat > "${builddir}/qt.conf" <<_EOF
|
||||||
[Paths]
|
[Paths]
|
||||||
Sysroot=${XBPS_CROSS_BASE}
|
Sysroot=${XBPS_CROSS_BASE}
|
||||||
Prefix=/usr
|
Prefix=/usr
|
||||||
|
@ -108,10 +113,10 @@ HostData=/usr/lib/${qt}
|
||||||
HostBinaries=/usr/lib/${qt}/bin
|
HostBinaries=/usr/lib/${qt}/bin
|
||||||
HostLibraries=/usr/lib
|
HostLibraries=/usr/lib
|
||||||
HostLibraryExecutables=/usr/lib/${qt}/libexec
|
HostLibraryExecutables=/usr/lib/${qt}/libexec
|
||||||
Spec=${wrksrc}/.host-spec/linux-g++
|
Spec=${builddir}/.host-spec/linux-g++
|
||||||
TargetSpec=${wrksrc}/.target-spec/linux-g++
|
TargetSpec=${builddir}/.target-spec/linux-g++
|
||||||
_EOF
|
_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} \
|
${qmake} ${qmake_args} \
|
||||||
PREFIX=/usr \
|
PREFIX=/usr \
|
||||||
QT_INSTALL_PREFIX=/usr \
|
QT_INSTALL_PREFIX=/usr \
|
||||||
|
@ -134,6 +139,7 @@ _EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
do_build() {
|
do_build() {
|
||||||
|
cd "${wrksrc}/${build_wrksrc}"
|
||||||
: ${make_cmd:=make}
|
: ${make_cmd:=make}
|
||||||
|
|
||||||
${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} \
|
${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} \
|
||||||
|
@ -141,6 +147,7 @@ do_build() {
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
|
cd "${wrksrc}/${build_wrksrc}"
|
||||||
: ${make_cmd:=make}
|
: ${make_cmd:=make}
|
||||||
: ${make_install_target:=install}
|
: ${make_install_target:=install}
|
||||||
|
|
||||||
|
|
|
@ -3,14 +3,11 @@ do_build() {
|
||||||
# Extract the source files
|
# Extract the source files
|
||||||
mkdir -p "build/usr/share/texmf-dist"
|
mkdir -p "build/usr/share/texmf-dist"
|
||||||
find . -maxdepth 1 -print -name "*.tar.xz" \
|
find . -maxdepth 1 -print -name "*.tar.xz" \
|
||||||
-exec bsdtar -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/"
|
cd "build/usr/share/texmf-dist/"
|
||||||
# Everything in usr/share/texmf-dist/texmf-dist should really be in
|
|
||||||
# usr/share/texmf-dist, so we move it
|
|
||||||
if [ -d "texmf-dist" ] ; then
|
|
||||||
rsync -ar texmf-dist/ ./
|
|
||||||
rm -rf texmf-dist/
|
|
||||||
fi
|
|
||||||
# LICENSEs are unneeded
|
# LICENSEs are unneeded
|
||||||
rm -f LICENSE*
|
rm -f LICENSE*
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ _void_cross_build_bootstrap_gcc() {
|
||||||
--disable-libmudflap \
|
--disable-libmudflap \
|
||||||
--disable-libssp \
|
--disable-libssp \
|
||||||
--disable-libitm \
|
--disable-libitm \
|
||||||
--disable-libatomic \
|
--disable-libatomic --disable-autolink-libatomic \
|
||||||
--disable-gcov \
|
--disable-gcov \
|
||||||
--disable-threads \
|
--disable-threads \
|
||||||
--disable-sjlj-exceptions \
|
--disable-sjlj-exceptions \
|
||||||
|
@ -264,9 +264,10 @@ _void_cross_build_glibc() {
|
||||||
|
|
||||||
CC="${tgt}-gcc" CXX="${tgt}-g++" CPP="${tgt}-cpp" LD="${tgt}-ld" \
|
CC="${tgt}-gcc" CXX="${tgt}-g++" CPP="${tgt}-cpp" LD="${tgt}-ld" \
|
||||||
AR="${tgt}-ar" AS="${tgt}-as" NM="${tgt}-nm" \
|
AR="${tgt}-ar" AS="${tgt}-as" NM="${tgt}-nm" \
|
||||||
|
OBJDUMP="${tgt}-objdump" OBJCOPY="${tgt}-objcopy" \
|
||||||
CFLAGS="-pipe ${cross_glibc_cflags}" \
|
CFLAGS="-pipe ${cross_glibc_cflags}" \
|
||||||
CXXFLAGS="-pipe ${cross_glibc_cflags}" \
|
CXXFLAGS="-pipe ${cross_glibc_cflags}" \
|
||||||
CPPFLAGS="${cross_glibc_cflags}" \
|
CPPFLAGS="" \
|
||||||
LDFLAGS="${cross_glibc_ldflags}" \
|
LDFLAGS="${cross_glibc_ldflags}" \
|
||||||
../glibc-${ver}/configure \
|
../glibc-${ver}/configure \
|
||||||
--prefix=/usr \
|
--prefix=/usr \
|
||||||
|
@ -377,6 +378,10 @@ _void_cross_build_gcc() {
|
||||||
|
|
||||||
msg_normal "Building gcc for ${tgt}\n"
|
msg_normal "Building gcc for ${tgt}\n"
|
||||||
|
|
||||||
|
# GIANT HACK: create an empty libatomic.a so gcc cross-compile
|
||||||
|
# below works.
|
||||||
|
ar r ${wrksrc}/build_root/usr/${tgt}/usr/lib/libatomic.a
|
||||||
|
|
||||||
mkdir -p ${wrksrc}/gcc_build
|
mkdir -p ${wrksrc}/gcc_build
|
||||||
cd ${wrksrc}/gcc_build
|
cd ${wrksrc}/gcc_build
|
||||||
|
|
||||||
|
@ -399,13 +404,8 @@ _void_cross_build_gcc() {
|
||||||
|
|
||||||
# note on --disable-libquadmath:
|
# note on --disable-libquadmath:
|
||||||
# on some platforms the library is actually necessary for the
|
# on some platforms the library is actually necessary for the
|
||||||
# fortran frontend to build, but still disable it because it
|
# fortran frontend to build, platforms where this is a problem
|
||||||
# should not be in the resulting packages; it conflicts with
|
# should explicitly force libquadmath to be on via cross_gcc_configure_args
|
||||||
# the libquadmath you can install into the cross root
|
|
||||||
#
|
|
||||||
# platforms where this is a problem should explicitly force
|
|
||||||
# libquadmath to be on via cross_gcc_configure_args, the
|
|
||||||
# do_install in this build-style automatically removes it
|
|
||||||
#
|
#
|
||||||
../gcc-${ver}/configure \
|
../gcc-${ver}/configure \
|
||||||
--prefix=/usr \
|
--prefix=/usr \
|
||||||
|
@ -641,12 +641,9 @@ do_install() {
|
||||||
ln -sf libgnat-${gcc_major}.so ${DESTDIR}/${sysroot}/usr/lib/libgnat.so
|
ln -sf libgnat-${gcc_major}.so ${DESTDIR}/${sysroot}/usr/lib/libgnat.so
|
||||||
rm -vf ${DESTDIR}/${adalib}/libgna{rl,t}.so
|
rm -vf ${DESTDIR}/${adalib}/libgna{rl,t}.so
|
||||||
|
|
||||||
# Remove unnecessary libatomic which is only built for gccgo
|
# Remove libgomp library because it conflicts with libgomp and
|
||||||
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libatomic.*
|
# libgomp-devel packages
|
||||||
|
rm -f ${DESTDIR}/${sysroot}/usr/lib/libgomp*
|
||||||
# If libquadmath was forced (needed for gfortran on some platforms)
|
|
||||||
# then remove it because it conflicts with libquadmath package
|
|
||||||
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.*
|
|
||||||
|
|
||||||
# Remove libdep linker plugin because it conflicts with system binutils
|
# Remove libdep linker plugin because it conflicts with system binutils
|
||||||
rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
|
rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
|
||||||
|
|
|
@ -9,12 +9,27 @@ readonly EXTRA_ARGS="$4"
|
||||||
readonly CMD="$5"
|
readonly CMD="$5"
|
||||||
shift 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
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$MASTERDIR" -o -z "$DISTDIR" ]; then
|
if ! [ -x "$XBPS_UCHROOT_CMD" ]; then
|
||||||
echo "$0 MASTERDIR/DISTDIR not set"
|
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
|
exit 1
|
||||||
fi
|
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"
|
makedepends+=" rust-std"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
|
|
||||||
|
|
||||||
build_helper+=" rust"
|
build_helper+=" rust"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
if [ "$CHROOT_READY" ]; then
|
if [ "$CHROOT_READY" ]; then
|
||||||
if [ "$pkgname" != cmake ]; then
|
if [ "$pkgname" != cmake-bootstrap ]; then
|
||||||
hostmakedepends+=" cmake"
|
hostmakedepends+=" cmake-bootstrap"
|
||||||
fi
|
fi
|
||||||
if [ "${make_cmd:-ninja}" = ninja ]; then
|
if [ "${make_cmd:-ninja}" = ninja ]; then
|
||||||
hostmakedepends+=" ninja"
|
hostmakedepends+=" ninja"
|
||||||
|
@ -8,3 +8,4 @@ if [ "$CHROOT_READY" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export CTEST_OUTPUT_ON_FAILURE=TRUE
|
export CTEST_OUTPUT_ON_FAILURE=TRUE
|
||||||
|
PATH="$PATH:/usr/libexec/xbps-src/bin"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
if [ -z "$hostmakedepends" -o "${hostmakedepends##*gcc-go-tools*}" ]; then
|
if [ -z "$hostmakedepends" -o "${hostmakedepends##*gcc-go-tools*}" ]; then
|
||||||
# gc compiler
|
# gc compiler
|
||||||
if [ -z "$archs" ]; then
|
if [ -z "$archs" ]; then
|
||||||
archs="aarch64* armv[567]* i686* x86_64* ppc64le*"
|
archs="aarch64* armv[567]* i686* x86_64* ppc64le* riscv64*"
|
||||||
fi
|
fi
|
||||||
hostmakedepends+=" go"
|
hostmakedepends+=" go"
|
||||||
nopie=yes
|
nopie=yes
|
||||||
|
@ -9,7 +9,7 @@ else
|
||||||
# gccgo compiler
|
# gccgo compiler
|
||||||
if [ -z "$archs" ]; then
|
if [ -z "$archs" ]; then
|
||||||
# we have support for these in our gcc
|
# we have support for these in our gcc
|
||||||
archs="aarch64* armv[567]* i686* x86_64* ppc64*"
|
archs="aarch64* armv[567]* i686* x86_64* ppc64* riscv64*"
|
||||||
fi
|
fi
|
||||||
if [ "$CROSS_BUILD" ]; then
|
if [ "$CROSS_BUILD" ]; then
|
||||||
# target compiler to use; otherwise it'll just call gccgo
|
# target compiler to use; otherwise it'll just call gccgo
|
||||||
|
@ -29,6 +29,7 @@ case "$XBPS_TARGET_MACHINE" in
|
||||||
ppc*) export GOARCH=ppc;;
|
ppc*) export GOARCH=ppc;;
|
||||||
mipsel*) export GOARCH=mipsle;;
|
mipsel*) export GOARCH=mipsle;;
|
||||||
mips*) export GOARCH=mips;;
|
mips*) export GOARCH=mips;;
|
||||||
|
riscv64*) export GOARCH=riscv64;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
export GOPATH="${wrksrc}/_build-${pkgname}-xbps"
|
export GOPATH="${wrksrc}/_build-${pkgname}-xbps"
|
||||||
|
@ -39,6 +40,10 @@ export CGO_CXXFLAGS="$CXXFLAGS"
|
||||||
export CGO_LDFLAGS="$LDFLAGS"
|
export CGO_LDFLAGS="$LDFLAGS"
|
||||||
export CGO_ENABLED="${CGO_ENABLED:-1}"
|
export CGO_ENABLED="${CGO_ENABLED:-1}"
|
||||||
export GO111MODULE=auto
|
export GO111MODULE=auto
|
||||||
|
export GOTOOLCHAIN="${GOTOOLCHAIN:-local}"
|
||||||
|
export GOPROXY="https://proxy.golang.org,direct"
|
||||||
|
export GOSUMDB="sum.golang.org"
|
||||||
|
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
*-musl) export GOCACHE="${XBPS_HOSTDIR}/gocache-muslc" ;;
|
*-musl) export GOCACHE="${XBPS_HOSTDIR}/gocache-muslc" ;;
|
||||||
*) export GOCACHE="${XBPS_HOSTDIR}/gocache-glibc" ;;
|
*) export GOCACHE="${XBPS_HOSTDIR}/gocache-glibc" ;;
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
hostmakedepends+=" meson"
|
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 isn't needed for everything either
|
||||||
python_version=3
|
python_version=3
|
||||||
|
|
|
@ -26,6 +26,7 @@ scripts/attachfile2/pdfatfi.pl texlive
|
||||||
scripts/authorindex/authorindex texlive
|
scripts/authorindex/authorindex texlive
|
||||||
scripts/bib2gls/bib2gls.sh texlive
|
scripts/bib2gls/bib2gls.sh texlive
|
||||||
scripts/bib2gls/convertgls2bib.sh texlive
|
scripts/bib2gls/convertgls2bib.sh texlive
|
||||||
|
scripts/bibcop/bibcop.pl texlive
|
||||||
scripts/bibexport/bibexport.sh texlive
|
scripts/bibexport/bibexport.sh texlive
|
||||||
scripts/bundledoc/arlatex texlive
|
scripts/bundledoc/arlatex texlive
|
||||||
scripts/bundledoc/bundledoc texlive
|
scripts/bundledoc/bundledoc texlive
|
||||||
|
@ -33,17 +34,11 @@ scripts/cachepic/cachepic.tlu texlive-pictures
|
||||||
scripts/checkcites/checkcites.lua texlive
|
scripts/checkcites/checkcites.lua texlive
|
||||||
scripts/checklistings/checklistings.sh texlive
|
scripts/checklistings/checklistings.sh texlive
|
||||||
scripts/chklref/chklref.pl texlive
|
scripts/chklref/chklref.pl texlive
|
||||||
|
scripts/citation-style-language/citeproc-lua.lua texlive
|
||||||
scripts/cjk-gs-integrate/cjk-gs-integrate.pl texlive
|
scripts/cjk-gs-integrate/cjk-gs-integrate.pl texlive
|
||||||
scripts/clojure-pamphlet/pamphletangler texlive
|
scripts/clojure-pamphlet/pamphletangler texlive
|
||||||
scripts/cluttex/cluttex.lua texlive
|
scripts/cluttex/cluttex.lua texlive
|
||||||
scripts/context/perl/mptopdf.pl texlive
|
scripts/context/perl/mptopdf.pl texlive
|
||||||
scripts/context/stubs/unix/contextjit texlive
|
|
||||||
scripts/context/stubs/unix/context texlive
|
|
||||||
scripts/context/stubs/unix/luatools texlive
|
|
||||||
scripts/context/stubs/unix/mtxrunjit texlive
|
|
||||||
scripts/context/stubs/unix/mtxrun texlive
|
|
||||||
scripts/context/stubs/unix/texexec texlive
|
|
||||||
scripts/context/stubs/unix/texmfstart texlive
|
|
||||||
scripts/convbkmk/convbkmk.rb texlive-langjapanese
|
scripts/convbkmk/convbkmk.rb texlive-langjapanese
|
||||||
scripts/crossrefware/bbl2bib.pl texlive
|
scripts/crossrefware/bbl2bib.pl texlive
|
||||||
scripts/crossrefware/bibdoiadd.pl texlive
|
scripts/crossrefware/bibdoiadd.pl texlive
|
||||||
|
@ -57,6 +52,7 @@ scripts/ctan-o-mat/ctan-o-mat.pl texlive
|
||||||
scripts/ctanupload/ctanupload.pl texlive
|
scripts/ctanupload/ctanupload.pl texlive
|
||||||
scripts/de-macro/de-macro texlive
|
scripts/de-macro/de-macro texlive
|
||||||
scripts/diadia/diadia.lua texlive-humanities
|
scripts/diadia/diadia.lua texlive-humanities
|
||||||
|
scripts/digestif/digestif.texlua texlive
|
||||||
scripts/dosepsbin/dosepsbin.pl texlive
|
scripts/dosepsbin/dosepsbin.pl texlive
|
||||||
scripts/dtxgen/dtxgen texlive
|
scripts/dtxgen/dtxgen texlive
|
||||||
scripts/dviasm/dviasm.py texlive
|
scripts/dviasm/dviasm.py texlive
|
||||||
|
@ -102,6 +98,7 @@ scripts/listbib/listbib texlive
|
||||||
scripts/listings-ext/listings-ext.sh texlive
|
scripts/listings-ext/listings-ext.sh texlive
|
||||||
scripts/ltxfileinfo/ltxfileinfo texlive
|
scripts/ltxfileinfo/ltxfileinfo texlive
|
||||||
scripts/ltximg/ltximg.pl texlive
|
scripts/ltximg/ltximg.pl texlive
|
||||||
|
scripts/luafindfont/luafindfont.lua texlive
|
||||||
scripts/luaotfload/luaotfload-tool.lua texlive
|
scripts/luaotfload/luaotfload-tool.lua texlive
|
||||||
scripts/lwarp/lwarpmk.lua texlive
|
scripts/lwarp/lwarpmk.lua texlive
|
||||||
scripts/make4ht/make4ht texlive
|
scripts/make4ht/make4ht texlive
|
||||||
|
@ -116,6 +113,9 @@ scripts/m-tx/m-tx.lua texlive-music
|
||||||
scripts/multibibliography/multibibliography.pl texlive
|
scripts/multibibliography/multibibliography.pl texlive
|
||||||
scripts/musixtex/musixflx.lua texlive-music
|
scripts/musixtex/musixflx.lua texlive-music
|
||||||
scripts/musixtex/musixtex.lua texlive-music
|
scripts/musixtex/musixtex.lua texlive-music
|
||||||
|
scripts/optexcount/optexcount texlive
|
||||||
|
scripts/pagelayout/pagelayoutapi texlive
|
||||||
|
scripts/pagelayout/textestvis texlive
|
||||||
scripts/pax/pdfannotextractor.pl texlive
|
scripts/pax/pdfannotextractor.pl texlive
|
||||||
scripts/pdfbook2/pdfbook2 texlive
|
scripts/pdfbook2/pdfbook2 texlive
|
||||||
scripts/pdfcrop/pdfcrop.pl texlive
|
scripts/pdfcrop/pdfcrop.pl texlive
|
||||||
|
@ -155,6 +155,7 @@ scripts/srcredact/srcredact.pl texlive
|
||||||
scripts/sty2dtx/sty2dtx.pl texlive
|
scripts/sty2dtx/sty2dtx.pl texlive
|
||||||
scripts/svn-multi/svn-multi.pl texlive
|
scripts/svn-multi/svn-multi.pl texlive
|
||||||
scripts/tex4ebook/tex4ebook texlive
|
scripts/tex4ebook/tex4ebook texlive
|
||||||
|
scripts/texaccents/texaccents.sno texlive
|
||||||
scripts/texcount/texcount.pl texlive
|
scripts/texcount/texcount.pl texlive
|
||||||
scripts/texdef/texdef.pl texlive
|
scripts/texdef/texdef.pl texlive
|
||||||
scripts/texdiff/texdiff texlive
|
scripts/texdiff/texdiff texlive
|
||||||
|
@ -178,6 +179,8 @@ scripts/texlive-extra/texconfig-dialog.sh texlive
|
||||||
scripts/texlive-extra/texconfig.sh texlive
|
scripts/texlive-extra/texconfig.sh texlive
|
||||||
scripts/texlive-extra/texconfig-sys.sh texlive
|
scripts/texlive-extra/texconfig-sys.sh texlive
|
||||||
scripts/texlive-extra/texlinks.sh texlive
|
scripts/texlive-extra/texlinks.sh texlive
|
||||||
|
scripts/texlive-extra/xelatex-unsafe.sh texlive
|
||||||
|
scripts/texlive-extra/xetex-unsafe.sh texlive
|
||||||
scripts/texlive/fmtutil.pl texlive
|
scripts/texlive/fmtutil.pl texlive
|
||||||
scripts/texlive/fmtutil-sys.sh texlive
|
scripts/texlive/fmtutil-sys.sh texlive
|
||||||
scripts/texlive/fmtutil-user.sh texlive
|
scripts/texlive/fmtutil-user.sh texlive
|
||||||
|
@ -185,13 +188,15 @@ scripts/texlive/mktexlsr texlive
|
||||||
scripts/texlive/mktexmf texlive
|
scripts/texlive/mktexmf texlive
|
||||||
scripts/texlive/mktexpk texlive
|
scripts/texlive/mktexpk texlive
|
||||||
scripts/texlive/mktextfm texlive
|
scripts/texlive/mktextfm texlive
|
||||||
|
scripts/texlive/rungs.lua texlive
|
||||||
scripts/texliveonfly/texliveonfly.py texlive
|
scripts/texliveonfly/texliveonfly.py texlive
|
||||||
scripts/texlive/rungs.tlu texlive
|
|
||||||
scripts/texlive/tlmgr.pl texlive
|
scripts/texlive/tlmgr.pl texlive
|
||||||
scripts/texlive/updmap.pl texlive
|
scripts/texlive/updmap.pl texlive
|
||||||
scripts/texlive/updmap-sys.sh texlive
|
scripts/texlive/updmap-sys.sh texlive
|
||||||
scripts/texlive/updmap-user.sh texlive
|
scripts/texlive/updmap-user.sh texlive
|
||||||
scripts/texloganalyser/texloganalyser texlive
|
scripts/texloganalyser/texloganalyser texlive
|
||||||
|
scripts/texlogfilter/texlogfilter texlive
|
||||||
|
scripts/texlogsieve/texlogsieve texlive
|
||||||
scripts/texosquery/texosquery-jre5.sh texlive
|
scripts/texosquery/texosquery-jre5.sh texlive
|
||||||
scripts/texosquery/texosquery-jre8.sh texlive
|
scripts/texosquery/texosquery-jre8.sh texlive
|
||||||
scripts/texosquery/texosquery.sh texlive
|
scripts/texosquery/texosquery.sh texlive
|
||||||
|
|
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}/powerpc-linux
|
||||||
. ${_AUTOCONFCACHEDIR}/powerpc32-linux
|
. ${_AUTOCONFCACHEDIR}/powerpc32-linux
|
||||||
;;
|
;;
|
||||||
|
riscv*)
|
||||||
|
. ${_AUTOCONFCACHEDIR}/endian-little
|
||||||
|
. ${_AUTOCONFCACHEDIR}/riscv64-linux
|
||||||
|
;;
|
||||||
|
|
||||||
*) ;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -24,7 +24,7 @@ if [ -z "$nopie" ]; then
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
CFLAGS="-fno-PIE ${CFLAGS}"
|
CFLAGS="-fno-PIE ${CFLAGS}"
|
||||||
CXXFLAGS="-fno-PIE ${CFLAGS}"
|
CXXFLAGS="-fno-PIE ${CXXFLAGS}"
|
||||||
FFLAGS="-fno-PIE ${FFLAGS}"
|
FFLAGS="-fno-PIE ${FFLAGS}"
|
||||||
LDFLAGS="-no-pie ${LDFLAGS}"
|
LDFLAGS="-no-pie ${LDFLAGS}"
|
||||||
fi
|
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
|
fi
|
||||||
# check if the template is under version control:
|
# check if the template is under version control:
|
||||||
if [ -n "$basepkg" -a -z "$($XBPS_GIT_CMD -C ${XBPS_SRCPKGDIR}/${basepkg} ls-files template)" ]; then
|
if [ -n "$basepkg" -a -z "$($XBPS_GIT_CMD -C ${XBPS_SRCPKGDIR}/${basepkg} ls-files template)" ]; then
|
||||||
export SOURCE_DATE_EPOCH="$(stat -c %Y ${XBPS_SRCPKGDIR}/${basepkg}/template)"
|
export SOURCE_DATE_EPOCH="$(stat_mtime ${XBPS_SRCPKGDIR}/${basepkg}/template)"
|
||||||
else
|
else
|
||||||
export SOURCE_DATE_EPOCH=$($XBPS_GIT_CMD -C ${XBPS_DISTDIR} cat-file commit HEAD |
|
export SOURCE_DATE_EPOCH=$($XBPS_GIT_CMD -C ${XBPS_DISTDIR} cat-file commit HEAD |
|
||||||
sed -n '/^committer /{s/.*> \([0-9][0-9]*\) [-+][0-9].*/\1/p;q}')
|
sed -n '/^committer /{s/.*> \([0-9][0-9]*\) [-+][0-9].*/\1/p;q;}')
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -9,11 +9,13 @@ unalias -a
|
||||||
# disable wildcards helper
|
# disable wildcards helper
|
||||||
_noglob_helper() {
|
_noglob_helper() {
|
||||||
set +f
|
set +f
|
||||||
"$@"
|
IFS= "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Apply _noglob to v* commands
|
# Apply _noglob to v* commands
|
||||||
for cmd in vinstall vcopy vcompletion vmove vmkdir vbin vman vdoc vconf vsconf vlicense vsv; do
|
for cmd in vinstall vcopy vcompletion vmove vmkdir vbin vman vdoc vconf vsconf vlicense vsv; do
|
||||||
|
# intentionally expanded when defined
|
||||||
|
# shellcheck disable=SC2139
|
||||||
alias ${cmd}="set -f; _noglob_helper _${cmd}"
|
alias ${cmd}="set -f; _noglob_helper _${cmd}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -24,6 +26,8 @@ _vsv() {
|
||||||
local svdir="${PKGDESTDIR}/etc/sv/${service}"
|
local svdir="${PKGDESTDIR}/etc/sv/${service}"
|
||||||
|
|
||||||
if [ $# -lt 1 ] || [ $# -gt 2 ]; then
|
if [ $# -lt 1 ] || [ $# -gt 2 ]; then
|
||||||
|
# pkgver is defined in common/xbps-src/shutils/commmon.sh
|
||||||
|
# shellcheck disable=SC2154
|
||||||
msg_red "$pkgver: vsv: up to 2 arguments expected: <service> [<log facility>]\n"
|
msg_red "$pkgver: vsv: up to 2 arguments expected: <service> [<log facility>]\n"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
@ -34,26 +38,26 @@ _vsv() {
|
||||||
|
|
||||||
vmkdir etc/sv
|
vmkdir etc/sv
|
||||||
vcopy "${FILESDIR}/$service" etc/sv
|
vcopy "${FILESDIR}/$service" etc/sv
|
||||||
if [ ! -L $svdir/run ]; then
|
if [ ! -L "$svdir/run" ]; then
|
||||||
grep -Fq 'exec 2>&1' $svdir/run || msg_warn "$pkgver: vsv: service '$service' does not contain 'exec 2>&1' to log stderr\n"
|
grep -Fq 'exec 2>&1' "$svdir/run" || msg_warn "$pkgver: vsv: service '$service' does not contain 'exec 2>&1' to log stderr\n"
|
||||||
chmod 755 $svdir/run
|
chmod 755 "$svdir/run"
|
||||||
fi
|
fi
|
||||||
if [ -e $svdir/finish ] && [ ! -L $svdir/finish ]; then
|
if [ -e "$svdir/finish" ] && [ ! -L "$svdir/finish" ]; then
|
||||||
chmod 755 $svdir/finish
|
chmod 755 "$svdir/finish"
|
||||||
fi
|
fi
|
||||||
ln ${LN_OPTS} /run/runit/supervise.${service} $svdir/supervise
|
ln ${LN_OPTS} "/run/runit/supervise.${service}" "$svdir/supervise"
|
||||||
if [ -d $svdir/log ] || [ -L $svdir/log ]; then
|
if [ -d "$svdir/log" ] || [ -L "$svdir/log" ]; then
|
||||||
msg_warn "$pkgver: vsv: overriding default log service\n"
|
msg_warn "$pkgver: vsv: overriding default log service\n"
|
||||||
else
|
else
|
||||||
mkdir $svdir/log
|
mkdir "$svdir/log"
|
||||||
cat <<-EOF > $svdir/log/run
|
cat <<-EOF > "$svdir/log/run"
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
exec vlogger -t $service -p $facility
|
exec vlogger -t $service -p $facility
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
ln ${LN_OPTS} /run/runit/supervise.${service}-log $svdir/log/supervise
|
ln ${LN_OPTS} "/run/runit/supervise.${service}-log" "$svdir/log/supervise"
|
||||||
if [ -e $svdir/log/run ] && [ ! -L $svdir/log/run ]; then
|
if [ -e "$svdir/log/run" ] && [ ! -L "$svdir/log/run" ]; then
|
||||||
chmod 755 ${PKGDESTDIR}/etc/sv/${service}/log/run
|
chmod 755 "${PKGDESTDIR}/etc/sv/${service}/log/run"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,6 +124,8 @@ _vdoc() {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# pkgname is defined in the package
|
||||||
|
# shellcheck disable=SC2154
|
||||||
vinstall "$file" 644 "usr/share/doc/${pkgname}" "$targetfile"
|
vinstall "$file" 644 "usr/share/doc/${pkgname}" "$targetfile"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,9 +181,9 @@ _vinstall() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$targetfile" ]; then
|
if [ -z "$targetfile" ]; then
|
||||||
install -Dm${mode} "${file}" "${PKGDESTDIR}/${targetdir}/${file##*/}"
|
install -Dm"${mode}" "${file}" "${PKGDESTDIR}/${targetdir}/${file##*/}"
|
||||||
else
|
else
|
||||||
install -Dm${mode} "${file}" "${PKGDESTDIR}/${targetdir}/${targetfile##*/}"
|
install -Dm"${mode}" "${file}" "${PKGDESTDIR}/${targetdir}/${targetfile##*/}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,7 +199,9 @@ _vcopy() {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cp -a $files ${PKGDESTDIR}/${targetdir}
|
# intentionally unquoted for globbing
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
cp -a $files "${PKGDESTDIR}/${targetdir}"
|
||||||
}
|
}
|
||||||
|
|
||||||
_vmove() {
|
_vmove() {
|
||||||
|
@ -219,13 +227,17 @@ _vmove() {
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -z "${_targetdir}" ]; then
|
if [ -z "${_targetdir}" ]; then
|
||||||
[ ! -d ${PKGDESTDIR} ] && install -d ${PKGDESTDIR}
|
[ ! -d "${PKGDESTDIR}" ] && install -d "${PKGDESTDIR}"
|
||||||
mv ${DESTDIR}/$files ${PKGDESTDIR}
|
# intentionally unquoted for globbing
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
mv "${DESTDIR}"/$files "${PKGDESTDIR}"
|
||||||
else
|
else
|
||||||
if [ ! -d ${PKGDESTDIR}/${_targetdir} ]; then
|
if [ ! -d "${PKGDESTDIR}/${_targetdir}" ]; then
|
||||||
install -d ${PKGDESTDIR}/${_targetdir}
|
install -d "${PKGDESTDIR}/${_targetdir}"
|
||||||
fi
|
fi
|
||||||
mv ${DESTDIR}/$files ${PKGDESTDIR}/${_targetdir}
|
# intentionally unquoted for globbing
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
mv "${DESTDIR}"/$files "${PKGDESTDIR}/${_targetdir}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,9 +255,9 @@ _vmkdir() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$mode" ]; then
|
if [ -z "$mode" ]; then
|
||||||
install -d ${PKGDESTDIR}/${dir}
|
install -d "${PKGDESTDIR}/${dir}"
|
||||||
else
|
else
|
||||||
install -dm${mode} ${PKGDESTDIR}/${dir}
|
install -dm"${mode}" "${PKGDESTDIR}/${dir}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,3 +36,11 @@ vopt_bool() {
|
||||||
fi
|
fi
|
||||||
vopt_if "$1" "-D${prop}=true" "-D${prop}=false"
|
vopt_if "$1" "-D${prop}=true" "-D${prop}=false"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vopt_feature() {
|
||||||
|
local opt="$1" prop="${2:-$1}"
|
||||||
|
if [ "$#" -gt "2" ]; then
|
||||||
|
msg_error "vopt_feature $opt: $(($# - 2)) excess parameter(s)\n"
|
||||||
|
fi
|
||||||
|
vopt_if "$1" "-D${prop}=enabled" "-D${prop}=disabled"
|
||||||
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ py2_lib="usr/lib/python${py2_ver}"
|
||||||
py2_sitelib="${py2_lib}/site-packages"
|
py2_sitelib="${py2_lib}/site-packages"
|
||||||
py2_inc="usr/include/python${py2_ver}"
|
py2_inc="usr/include/python${py2_ver}"
|
||||||
|
|
||||||
py3_ver="3.11"
|
py3_ver="3.12"
|
||||||
py3_abiver=""
|
py3_abiver=""
|
||||||
py3_lib="usr/lib/python${py3_ver}"
|
py3_lib="usr/lib/python${py3_ver}"
|
||||||
py3_sitelib="${py3_lib}/site-packages"
|
py3_sitelib="${py3_lib}/site-packages"
|
||||||
|
|
|
@ -5,7 +5,13 @@
|
||||||
for var in $(awk 'BEGIN{for (i in ENVIRON) {print i}}' </dev/null); do
|
for var in $(awk 'BEGIN{for (i in ENVIRON) {print i}}' </dev/null); do
|
||||||
# Those variables in chroot.sh will be kept
|
# Those variables in chroot.sh will be kept
|
||||||
case "$var" in
|
case "$var" in
|
||||||
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
|
# xbps-src specific
|
||||||
;;
|
;;
|
||||||
SOURCEFORGE_SITE | NONGNU_SITE | XORG_SITE | DEBIAN_SITE | GNOME_SITE)
|
SOURCEFORGE_SITE | NONGNU_SITE | XORG_SITE | DEBIAN_SITE | GNOME_SITE)
|
||||||
|
|
|
@ -45,128 +45,7 @@ hook() {
|
||||||
unset found
|
unset found
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
vsrcextract --no-strip-components -C "$extractdir" "$curfile"
|
||||||
case $curfile in
|
|
||||||
*.tar.lzma) cursufx="txz";;
|
|
||||||
*.tar.lz) cursufx="tlz";;
|
|
||||||
*.tlz) cursufx="tlz";;
|
|
||||||
*.tar.xz) cursufx="txz";;
|
|
||||||
*.txz) cursufx="txz";;
|
|
||||||
*.tar.bz2) cursufx="tbz";;
|
|
||||||
*.tbz) cursufx="tbz";;
|
|
||||||
*.tar.gz) cursufx="tgz";;
|
|
||||||
*.tgz) cursufx="tgz";;
|
|
||||||
*.tar.zst) cursufx="tzst";;
|
|
||||||
*.tzst) cursufx="tzst";;
|
|
||||||
*.gz) cursufx="gz";;
|
|
||||||
*.xz) cursufx="xz";;
|
|
||||||
*.bz2) cursufx="bz2";;
|
|
||||||
*.zst) cursufx="zst";;
|
|
||||||
*.tar) cursufx="tar";;
|
|
||||||
*.zip) cursufx="zip";;
|
|
||||||
*.rpm) cursufx="rpm";;
|
|
||||||
*.deb) cursufx="deb";;
|
|
||||||
*.patch) cursufx="txt";;
|
|
||||||
*.diff) cursufx="txt";;
|
|
||||||
*.txt) cursufx="txt";;
|
|
||||||
*.sh) cursufx="txt";;
|
|
||||||
*.7z) cursufx="7z";;
|
|
||||||
*.gem) cursufx="gem";;
|
|
||||||
*.crate) cursufx="crate";;
|
|
||||||
*) msg_error "$pkgver: unknown distfile suffix for $curfile.\n";;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case ${cursufx} in
|
|
||||||
tar|txz|tbz|tlz|tgz|tzst|crate)
|
|
||||||
$TAR_CMD -x --no-same-permissions --no-same-owner -f $srcdir/$curfile -C "$extractdir"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
gz|bz2|xz|zst)
|
|
||||||
cp -f $srcdir/$curfile "$extractdir"
|
|
||||||
cd "$extractdir"
|
|
||||||
case ${cursufx} in
|
|
||||||
gz)
|
|
||||||
gunzip -f $curfile
|
|
||||||
;;
|
|
||||||
bz2)
|
|
||||||
bunzip2 -f $curfile
|
|
||||||
;;
|
|
||||||
xz)
|
|
||||||
unxz -f $curfile
|
|
||||||
;;
|
|
||||||
zst)
|
|
||||||
unzstd $curfile
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
zip)
|
|
||||||
if command -v unzip &>/dev/null; then
|
|
||||||
unzip -o -q $srcdir/$curfile -d "$extractdir"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
|
|
||||||
fi
|
|
||||||
elif command -v bsdtar &>/dev/null; then
|
|
||||||
bsdtar -xf $srcdir/$curfile -C "$extractdir"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
msg_error "$pkgver: cannot find unzip or bsdtar bin for extraction.\n"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
rpm)
|
|
||||||
if ! command -v bsdtar &>/dev/null; then
|
|
||||||
msg_error "$pkgver: cannot find bsdtar for extraction.\n"
|
|
||||||
fi
|
|
||||||
bsdtar -x --no-same-permissions --no-same-owner -f $srcdir/$curfile -C "$extractdir"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
deb)
|
|
||||||
if command -v bsdtar &>/dev/null; then
|
|
||||||
bsdtar -x -O -f "$srcdir/$curfile" "data.tar.*" |
|
|
||||||
bsdtar -C "$extractdir" -x --no-same-permissions --no-same-owner
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
msg_error "$pkgver: cannot find bsdtar for extraction.\n"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
txt)
|
|
||||||
cp -f $srcdir/$curfile "$extractdir"
|
|
||||||
;;
|
|
||||||
7z)
|
|
||||||
if command -v 7z &>/dev/null; then
|
|
||||||
7z x $srcdir/$curfile -o"$extractdir"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
|
|
||||||
fi
|
|
||||||
elif command -v bsdtar &>/dev/null; then
|
|
||||||
bsdtar -xf $srcdir/$curfile -C "$extractdir"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
msg_error "$pkgver: cannot find 7z or bsdtar bin for extraction.\n"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
gem)
|
|
||||||
innerdir="$extractdir/${wrksrc##*/}"
|
|
||||||
mkdir -p "$innerdir"
|
|
||||||
$TAR_CMD -xOf $srcdir/$curfile data.tar.gz |
|
|
||||||
$TAR_CMD -xz -C "$innerdir" -f -
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
msg_error "$pkgver: cannot guess $curfile extract suffix. ($cursufx)\n"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
done
|
||||||
|
|
||||||
cd "$extractdir"
|
cd "$extractdir"
|
||||||
|
|
|
@ -253,7 +253,7 @@ hook() {
|
||||||
if [[ $cksum = $filesum ]]; then
|
if [[ $cksum = $filesum ]]; then
|
||||||
dfgood=$((dfgood + 1))
|
dfgood=$((dfgood + 1))
|
||||||
else
|
else
|
||||||
inode=$(stat "$distfile" --printf "%i")
|
inode=$(stat_inode "$distfile")
|
||||||
msg_warn "$pkgver: wrong checksum found for ${curfile} - purging\n"
|
msg_warn "$pkgver: wrong checksum found for ${curfile} - purging\n"
|
||||||
find ${XBPS_SRCDISTDIR} -inum ${inode} -delete -print
|
find ${XBPS_SRCDISTDIR} -inum ${inode} -delete -print
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -15,8 +15,7 @@ hook() {
|
||||||
rm -f ${PKGDESTDIR}/usr/share/info/dir
|
rm -f ${PKGDESTDIR}/usr/share/info/dir
|
||||||
fi
|
fi
|
||||||
|
|
||||||
find ${PKGDESTDIR}/usr/share/info -type f -follow | while read f
|
find ${PKGDESTDIR}/usr/share/info -type f -follow | while read -r f; do
|
||||||
do
|
|
||||||
j=$(echo "$f"|sed -e "$fpattern")
|
j=$(echo "$f"|sed -e "$fpattern")
|
||||||
[ "$j" = "" ] && continue
|
[ "$j" = "" ] && continue
|
||||||
[ "$j" = "/usr/share/info/dir" ] && continue
|
[ "$j" = "/usr/share/info/dir" ] && continue
|
||||||
|
|
|
@ -9,8 +9,7 @@ hook() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# rewrite symlinks
|
# rewrite symlinks
|
||||||
find $mandir -type l -regex '.*\.\(gz\|bz2\)' | while read f
|
find $mandir -type l -regex '.*\.\(gz\|bz2\)' | while read -r f; do
|
||||||
do
|
|
||||||
lnkat=$(readlink "$f")
|
lnkat=$(readlink "$f")
|
||||||
ln -s ${lnkat%.*} ${f%.*}
|
ln -s ${lnkat%.*} ${f%.*}
|
||||||
rm $f
|
rm $f
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
hook() {
|
hook() {
|
||||||
if [ -d "${PKGDESTDIR}" ]; then
|
if [ -d "${PKGDESTDIR}" ]; then
|
||||||
find "${PKGDESTDIR}" -mindepth 1 -type d -empty -print -delete|sort -r|while read f; do
|
find "${PKGDESTDIR}" -mindepth 1 -type d -empty -print -delete|sort -r|while read -r f; do
|
||||||
_dir="${f##${PKGDESTDIR}}"
|
_dir="${f##${PKGDESTDIR}}"
|
||||||
msg_warn "$pkgver: removed empty dir: ${_dir}\n"
|
msg_warn "$pkgver: removed empty dir: ${_dir}\n"
|
||||||
done
|
done
|
||||||
|
|
|
@ -119,10 +119,16 @@ _EOF
|
||||||
#
|
#
|
||||||
# Handle binfmts trigger
|
# Handle binfmts trigger
|
||||||
#
|
#
|
||||||
if [ -n "${binfmts}" ]; then
|
if [ -n "${binfmts}" ] || [ -d "${PKGDESTDIR}/usr/share/binfmts" ]; then
|
||||||
_add_trigger binfmts
|
_add_trigger binfmts
|
||||||
|
fi
|
||||||
|
if [ -n "${binfmts}" ]; then
|
||||||
echo "export binfmts=\"${binfmts}\"" >> $tmpf
|
echo "export binfmts=\"${binfmts}\"" >> $tmpf
|
||||||
fi
|
fi
|
||||||
|
if [ -d "${PKGDESTDIR}/usr/share/binfmts" ]; then
|
||||||
|
_import_binfmts="$(find "${PKGDESTDIR}/usr/share/binfmts" -type f -printf '%f\n')"
|
||||||
|
echo "export import_binfmts=\"${_import_binfmts}\"" >> $tmpf
|
||||||
|
fi
|
||||||
#
|
#
|
||||||
# Handle GNU Info files.
|
# Handle GNU Info files.
|
||||||
#
|
#
|
||||||
|
@ -272,7 +278,7 @@ _EOF
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$python_version" ]; then
|
if [ -n "$python_version" ] && [ "$python_version" != ignore ]; then
|
||||||
pycompile_version=${python_version}
|
pycompile_version=${python_version}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ hook() {
|
||||||
|
|
||||||
STRIPCMD=/usr/bin/$STRIP
|
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
|
if [[ $f =~ ^${PKGDESTDIR}/usr/lib/debug/ ]]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -16,7 +16,8 @@ hook() {
|
||||||
# s,/usr/armv7l-linux-musleabihf/usr,/usr,g
|
# s,/usr/armv7l-linux-musleabihf/usr,/usr,g
|
||||||
# trailing /usr to avoid clashing with
|
# trailing /usr to avoid clashing with
|
||||||
# other $XBPS_CROSS_BASE and $XBPS_CROSS_TRIPLET.
|
# other $XBPS_CROSS_BASE and $XBPS_CROSS_TRIPLET.
|
||||||
sed -i -e "s,$XBPS_CROSS_BASE/usr,/usr,g" "$f"
|
sed -i --follow-symlinks \
|
||||||
|
-e "s,$XBPS_CROSS_BASE/usr,/usr,g" "$f"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,7 @@ hook() {
|
||||||
elif [ "$lib32mode" = "full" ]; then
|
elif [ "$lib32mode" = "full" ]; then
|
||||||
# Full 32bit mode; copy everything to new destdir.
|
# Full 32bit mode; copy everything to new destdir.
|
||||||
mkdir -p ${destdir32}
|
mkdir -p ${destdir32}
|
||||||
cp -a ${PKGDESTDIR}/* ${destdir32}/
|
cp -a ${PKGDESTDIR}/. ${destdir32}/
|
||||||
# remove symlink
|
# remove symlink
|
||||||
if [ -h ${destdir32}/usr/lib32 ]; then
|
if [ -h ${destdir32}/usr/lib32 ]; then
|
||||||
rm ${destdir32}/usr/lib32
|
rm ${destdir32}/usr/lib32
|
||||||
|
@ -74,74 +74,11 @@ hook() {
|
||||||
if [[ ${pkgname} == *-devel ]]; then
|
if [[ ${pkgname} == *-devel ]]; then
|
||||||
mkdir -p ${destdir32}
|
mkdir -p ${destdir32}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d ${destdir32} ]; then
|
if [ ! -d ${destdir32} ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If the rdeps file exist (runtime deps), copy and then modify it for
|
|
||||||
# 32bit dependencies.
|
|
||||||
trap - ERR
|
|
||||||
|
|
||||||
: > ${destdir32}/rdeps
|
|
||||||
|
|
||||||
if [ -s "$PKGDESTDIR/rdeps" ]; then
|
|
||||||
if [ -n "$lib32depends" ]; then
|
|
||||||
_deps="${lib32depends}"
|
|
||||||
else
|
|
||||||
_deps="$(<${PKGDESTDIR}/rdeps)"
|
|
||||||
fi
|
|
||||||
for f in ${_deps}; do
|
|
||||||
unset found pkgn pkgv _shprovides
|
|
||||||
|
|
||||||
pkgn="$($XBPS_UHELPER_CMD getpkgdepname $f)"
|
|
||||||
if [ -z "${pkgn}" ]; then
|
|
||||||
pkgn="$($XBPS_UHELPER_CMD getpkgname $f)"
|
|
||||||
if [ -z "${pkgn}" ]; then
|
|
||||||
msg_error "$pkgver: invalid dependency $f\n"
|
|
||||||
fi
|
|
||||||
pkgv="-$($XBPS_UHELPER_CMD getpkgversion ${f})"
|
|
||||||
else
|
|
||||||
pkgv="$($XBPS_UHELPER_CMD getpkgdepversion ${f})"
|
|
||||||
fi
|
|
||||||
# If dependency is a development pkg switch it to 32bit.
|
|
||||||
if [[ $pkgn == *-devel ]]; then
|
|
||||||
echo " RDEP: $f -> ${pkgn}-32bit${pkgv} (development)"
|
|
||||||
printf "${pkgn}-32bit${pkgv} " >> ${destdir32}/rdeps
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
# If dependency does not have "shlib-provides" do not
|
|
||||||
# change it to 32bit.
|
|
||||||
for x in ${subpackages}; do
|
|
||||||
if [ "$x" = "$pkgn" ]; then
|
|
||||||
found=1
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [ -z "$found" ]; then
|
|
||||||
# Dependency is not a subpkg, check shlib-provides
|
|
||||||
# via binpkgs.
|
|
||||||
_shprovides="$($XBPS_QUERY_CMD -R --property=shlib-provides "$pkgn")"
|
|
||||||
if [ -n "${_shprovides}" ]; then
|
|
||||||
echo " RDEP: $f -> ${pkgn}-32bit${pkgv} (shlib-provides)"
|
|
||||||
printf "${pkgn}-32bit${pkgv} " >> ${destdir32}/rdeps
|
|
||||||
else
|
|
||||||
echo " RDEP: $f -> ${pkgn}${pkgv} (no shlib-provides)"
|
|
||||||
printf "${pkgn}${pkgv} " >> ${destdir32}/rdeps
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ -s ${XBPS_DESTDIR}/${pkgn}-${version}/shlib-provides ]; then
|
|
||||||
# Dependency is a subpkg; check if it provides any shlib
|
|
||||||
# and convert to 32bit if true.
|
|
||||||
echo " RDEP: $f -> ${pkgn}-32bit${pkgv} (subpkg, shlib-provides)"
|
|
||||||
printf "${pkgn}-32bit${pkgv} " >> ${destdir32}/rdeps
|
|
||||||
else
|
|
||||||
echo " RDEP: $f -> ${pkgn}${pkgv} (subpkg, no shlib-provides)"
|
|
||||||
printf "${pkgn}${pkgv} " >> ${destdir32}/rdeps
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Also install additional files set via "lib32files".
|
# Also install additional files set via "lib32files".
|
||||||
for f in ${lib32files}; do
|
for f in ${lib32files}; do
|
||||||
echo "$pkgver: installing additional files: $f ..."
|
echo "$pkgver: installing additional files: $f ..."
|
||||||
|
@ -149,6 +86,7 @@ hook() {
|
||||||
mkdir -p ${_targetdir/\/usr\/lib/\/usr\/lib32}
|
mkdir -p ${_targetdir/\/usr\/lib/\/usr\/lib32}
|
||||||
cp -a ${PKGDESTDIR}/${f} ${_targetdir/\/usr\/lib/\/usr\/lib32}
|
cp -a ${PKGDESTDIR}/${f} ${_targetdir/\/usr\/lib/\/usr\/lib32}
|
||||||
done
|
done
|
||||||
|
|
||||||
# Additional symlinks to the native libdir.
|
# Additional symlinks to the native libdir.
|
||||||
for f in ${lib32symlinks}; do
|
for f in ${lib32symlinks}; do
|
||||||
echo "$pkgver: symlinking $f to the native libdir..."
|
echo "$pkgver: symlinking $f to the native libdir..."
|
||||||
|
@ -159,10 +97,4 @@ hook() {
|
||||||
fi
|
fi
|
||||||
ln -sfr ${destdir32}/usr/lib32/$f ${destdir32}/usr/lib/$f
|
ln -sfr ${destdir32}/usr/lib32/$f ${destdir32}/usr/lib/$f
|
||||||
done
|
done
|
||||||
# If it's a development pkg add a dependency to the 64bit pkg.
|
|
||||||
if [[ $pkgn == *-devel ]]; then
|
|
||||||
echo " RDEP: ${pkgver}"
|
|
||||||
printf "${pkgver} " >> ${destdir32}/rdeps
|
|
||||||
fi
|
|
||||||
printf "\n" >> ${destdir32}/rdeps
|
|
||||||
}
|
}
|
|
@ -6,19 +6,30 @@ collect_sonames() {
|
||||||
local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
|
local _pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)*$"
|
||||||
local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
|
local _versioned_pattern="^[[:alnum:]]+(.*)+\.so(\.[0-9]+)+$"
|
||||||
local _tmpfile=$(mktemp) || exit 1
|
local _tmpfile=$(mktemp) || exit 1
|
||||||
|
local _mainpkg="$2"
|
||||||
|
local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
|
||||||
|
local _no_soname=$(mktemp) || exit 1
|
||||||
|
|
||||||
|
mkdir -p "${_shlib_dir}" || exit 1
|
||||||
if [ ! -d ${_destdir} ]; then
|
if [ ! -d ${_destdir} ]; then
|
||||||
rm -f ${_tmpfile}
|
rm -f ${_tmpfile}
|
||||||
|
rm -f ${_no_soname}
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# real pkg
|
# real pkg
|
||||||
find ${_destdir} -type f -name "*.so*" | while read f; do
|
find ${_destdir} -type f -name "*.so*" | while read f; do
|
||||||
_fname="${f##*/}"
|
_fname="${f##*/}"
|
||||||
case "$(file -bi "$f")" in
|
case "$(file -bi "$f")" in
|
||||||
application/x-sharedlib*|application/x-pie-executable*)
|
application/x-sharedlib*|application/x-pie-executable*)
|
||||||
# shared library
|
# shared library
|
||||||
_soname=$(${OBJDUMP} -p "$f"|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
|
# Register all versioned sonames, and
|
||||||
# unversioned sonames only when in libdir.
|
# unversioned sonames only when in libdir.
|
||||||
if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
|
if [[ ${_soname} =~ ${_versioned_pattern} ]] ||
|
||||||
|
@ -27,6 +38,9 @@ collect_sonames() {
|
||||||
-e ${_destdir}/usr/lib32/${_fname} ) ]]; then
|
-e ${_destdir}/usr/lib32/${_fname} ) ]]; then
|
||||||
echo "${_soname}" >> ${_tmpfile}
|
echo "${_soname}" >> ${_tmpfile}
|
||||||
echo " SONAME ${_soname} from ${f##${_destdir}}"
|
echo " SONAME ${_soname} from ${f##${_destdir}}"
|
||||||
|
else
|
||||||
|
# register all shared lib for rt-deps between sub-pkg
|
||||||
|
echo "${_fname}" >>${_no_soname}
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -38,19 +52,37 @@ collect_sonames() {
|
||||||
if [ -s "${_tmpfile}" ]; then
|
if [ -s "${_tmpfile}" ]; then
|
||||||
tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides
|
tr '\n' ' ' < "${_tmpfile}" > ${_destdir}/shlib-provides
|
||||||
echo >> ${_destdir}/shlib-provides
|
echo >> ${_destdir}/shlib-provides
|
||||||
|
if [ "$_mainpkg" ]; then
|
||||||
|
cp "${_tmpfile}" "${_shlib_dir}/${pkgname}.soname"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$_mainpkg" ] && [ -s "${_no_soname}" ]; then
|
||||||
|
mv "${_no_soname}" "${_shlib_dir}/${pkgname}.nosoname"
|
||||||
|
else
|
||||||
|
rm -f ${_no_soname}
|
||||||
fi
|
fi
|
||||||
rm -f ${_tmpfile}
|
rm -f ${_tmpfile}
|
||||||
}
|
}
|
||||||
|
|
||||||
hook() {
|
hook() {
|
||||||
local _destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version}
|
local _destdir32=${XBPS_DESTDIR}/${pkgname}-32bit-${version}
|
||||||
|
local _mainpkg=yes
|
||||||
|
local _pkg
|
||||||
|
|
||||||
if [ -n "$noshlibprovides" ]; then
|
case "$pkgname" in
|
||||||
return 0
|
*-32bit)
|
||||||
|
_pkgname=${pkgname%-32bit}
|
||||||
|
for _pkg in $sourcepkg $subpackages; do
|
||||||
|
if [ "$_pkg" = "$_pkgname" ]; then
|
||||||
|
_mainpkg=
|
||||||
|
break
|
||||||
fi
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# native pkg
|
# native pkg
|
||||||
collect_sonames ${PKGDESTDIR}
|
collect_sonames ${PKGDESTDIR} $_mainpkg
|
||||||
# 32bit pkg
|
# 32bit pkg
|
||||||
collect_sonames ${_destdir32}
|
collect_sonames ${_destdir32}
|
||||||
}
|
}
|
|
@ -238,7 +238,6 @@ hook() {
|
||||||
generic_wrapper3 libetpan-config
|
generic_wrapper3 libetpan-config
|
||||||
generic_wrapper3 giblib-config
|
generic_wrapper3 giblib-config
|
||||||
python_wrapper python-config 2.7
|
python_wrapper python-config 2.7
|
||||||
python_wrapper python3-config 3.11
|
python_wrapper python3-config 3.12
|
||||||
apr_apu_wrapper apr-1-config
|
|
||||||
apr_apu_wrapper apu-1-config
|
apr_apu_wrapper apu-1-config
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,10 @@ hook() {
|
||||||
pyver="$python_version"
|
pyver="$python_version"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$python_version" = ignore ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$pyver" ]; then
|
if [ -n "$pyver" ]; then
|
||||||
default_shebang="#!/usr/bin/python${pyver%.*}"
|
default_shebang="#!/usr/bin/python${pyver%.*}"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -40,13 +40,14 @@ store_pkgdestdir_rundeps() {
|
||||||
-z "$($XBPS_UHELPER_CMD getpkgname ${_curdep} 2>/dev/null)" ]; then
|
-z "$($XBPS_UHELPER_CMD getpkgname ${_curdep} 2>/dev/null)" ]; then
|
||||||
_curdep="${_curdep}>=0"
|
_curdep="${_curdep}>=0"
|
||||||
fi
|
fi
|
||||||
printf -- "${_curdep}\n"
|
printf "%s " "${_curdep}"
|
||||||
done | sort | xargs > ${PKGDESTDIR}/rdeps
|
done > "${PKGDESTDIR}/rdeps"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
hook() {
|
hook() {
|
||||||
local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
|
local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
|
||||||
|
local _shlib_dir="${XBPS_STATEDIR}/shlib-provides"
|
||||||
|
|
||||||
# Disable trap on ERR, xbps-uhelper cmd might return error... but not something
|
# Disable trap on ERR, xbps-uhelper cmd might return error... but not something
|
||||||
# to be worried about because if there are broken shlibs this hook returns
|
# to be worried about because if there are broken shlibs this hook returns
|
||||||
|
@ -69,7 +70,7 @@ hook() {
|
||||||
|
|
||||||
exec 3<&0 # save stdin
|
exec 3<&0 # save stdin
|
||||||
exec < $depsftmp
|
exec < $depsftmp
|
||||||
while read f; do
|
while read -r f; do
|
||||||
lf=${f#${PKGDESTDIR}}
|
lf=${f#${PKGDESTDIR}}
|
||||||
if [ "${skiprdeps/${lf}/}" != "${skiprdeps}" ]; then
|
if [ "${skiprdeps/${lf}/}" != "${skiprdeps}" ]; then
|
||||||
msg_normal "Skipping dependency scan for ${lf}\n"
|
msg_normal "Skipping dependency scan for ${lf}\n"
|
||||||
|
@ -95,39 +96,33 @@ hook() {
|
||||||
# above, the mapping is done thru the common/shlibs file.
|
# above, the mapping is done thru the common/shlibs file.
|
||||||
#
|
#
|
||||||
for f in ${verify_deps}; do
|
for f in ${verify_deps}; do
|
||||||
unset _f j rdep _rdep rdepcnt soname _pkgname _rdepver found
|
unset _rdep _pkgname _rdepver
|
||||||
_f=$(echo "$f"|sed -E 's|\+|\\+|g')
|
|
||||||
rdep="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2)"
|
local _findargs="-name"
|
||||||
rdepcnt="$(grep -E "^${_f}[[:blank:]]+.*$" $mapshlibs|cut -d ' ' -f2|wc -l)"
|
# if SONAME is a path, find should use -wholename
|
||||||
if [ -z "$rdep" ]; then
|
if [[ "$f" = */* ]]; then
|
||||||
|
_findargs="-wholename"
|
||||||
|
fi
|
||||||
|
if [ "$(find "${PKGDESTDIR}" $_findargs "$f")" ]; then
|
||||||
# Ignore libs by current pkg
|
# Ignore libs by current pkg
|
||||||
soname=$(find ${PKGDESTDIR} -name "$f")
|
echo " SONAME: $f <-> $pkgname (ignored)"
|
||||||
if [ -z "$soname" ]; then
|
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"
|
msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
|
||||||
broken_shlibs=1
|
broken_shlibs=1
|
||||||
else
|
|
||||||
echo " SONAME: $f <-> $pkgname (ignored)"
|
|
||||||
fi
|
|
||||||
continue
|
continue
|
||||||
elif [ "$rdepcnt" -gt 1 ]; then
|
|
||||||
unset j found
|
|
||||||
# Check if shlib is provided by multiple pkgs.
|
|
||||||
for j in ${rdep}; do
|
|
||||||
_pkgname=$($XBPS_UHELPER_CMD getpkgname "$j")
|
|
||||||
# if there's a SONAME matching pkgname, use it.
|
|
||||||
for x in ${pkgname} ${subpackages}; do
|
|
||||||
[[ $_pkgname == $x ]] && found=1 && break
|
|
||||||
done
|
|
||||||
[[ $found ]] && _rdep=$j && break
|
|
||||||
done
|
|
||||||
if [ -z "${_rdep}" ]; then
|
|
||||||
# otherwise pick up the first one.
|
|
||||||
for j in ${rdep}; do
|
|
||||||
[ -z "${_rdep}" ] && _rdep=$j
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
_rdep=$rdep
|
|
||||||
fi
|
fi
|
||||||
_pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
|
_pkgname=$($XBPS_UHELPER_CMD getpkgname "${_rdep}" 2>/dev/null)
|
||||||
_rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
|
_rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
|
||||||
|
@ -136,24 +131,12 @@ hook() {
|
||||||
broken_shlibs=1
|
broken_shlibs=1
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
# Check if pkg is a subpkg of sourcepkg; if true, ignore version
|
|
||||||
# in common/shlibs.
|
|
||||||
_sdep="${_pkgname}>=${_rdepver}"
|
_sdep="${_pkgname}>=${_rdepver}"
|
||||||
for _subpkg in ${subpackages}; do
|
|
||||||
if [ "${_subpkg}" = "${_pkgname}" ]; then
|
|
||||||
_sdep="${_pkgname}-${version}_${revision}"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "${_pkgname}" != "${pkgname}" ]; then
|
# By this point, SONAME can't be found in current pkg
|
||||||
echo " SONAME: $f <-> ${_sdep}"
|
|
||||||
sorequires+="${f} "
|
sorequires+="${f} "
|
||||||
else
|
|
||||||
# Ignore libs by current pkg
|
|
||||||
echo " SONAME: $f <-> ${_rdep} (ignored)"
|
|
||||||
continue
|
|
||||||
fi
|
fi
|
||||||
|
echo " SONAME: $f <-> ${_sdep}"
|
||||||
add_rundep "${_sdep}"
|
add_rundep "${_sdep}"
|
||||||
done
|
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,9 +79,23 @@ hook() {
|
||||||
|
|
||||||
# Check for l10n files in usr/lib/locale
|
# Check for l10n files in usr/lib/locale
|
||||||
if [ -d ${PKGDESTDIR}/usr/lib/locale ]; then
|
if [ -d ${PKGDESTDIR}/usr/lib/locale ]; then
|
||||||
|
local locale_allow=0 ldir
|
||||||
|
local lroot="${PKGDESTDIR}/usr/lib/locale"
|
||||||
|
|
||||||
|
if [ "${pkgname}" = "glibc" ]; then
|
||||||
|
# glibc gets an exception for its included C.utf8 locale
|
||||||
|
locale_allow=1
|
||||||
|
for ldir in "${lroot}"/*; do
|
||||||
|
[ "${ldir}" = "${lroot}/C.utf8" ] && continue
|
||||||
|
locale_allow=0
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${locale_allow}" -ne 1 ]; then
|
||||||
msg_red "${pkgver}: /usr/lib/locale is forbidden, use /usr/share/locale!\n"
|
msg_red "${pkgver}: /usr/lib/locale is forbidden, use /usr/share/locale!\n"
|
||||||
error=1
|
error=1
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Check for bash completions in etc/bash_completion.d
|
# Check for bash completions in etc/bash_completion.d
|
||||||
# should be on usr/share/bash-completion/completions
|
# should be on usr/share/bash-completion/completions
|
||||||
|
@ -171,7 +185,7 @@ hook() {
|
||||||
_pattern="^${_shlib}\.so\.[0-9]+(.*)[[:blank:]]+${_pkgname}-[^-]+_[0-9]+"
|
_pattern="^${_shlib}\.so\.[0-9]+(.*)[[:blank:]]+${_pkgname}-[^-]+_[0-9]+"
|
||||||
fi
|
fi
|
||||||
grep -E "${_pattern}" $mapshlibs | { \
|
grep -E "${_pattern}" $mapshlibs | { \
|
||||||
while read conflictFile conflictPkg ignore; do
|
while read -r conflictFile conflictPkg ignore; do
|
||||||
found=1
|
found=1
|
||||||
conflictRev=${conflictFile#*.so.}
|
conflictRev=${conflictFile#*.so.}
|
||||||
if [ -n "$ignore" -a "$ignore" != "$XBPS_TARGET_MACHINE" ]; then
|
if [ -n "$ignore" -a "$ignore" != "$XBPS_TARGET_MACHINE" ]; then
|
||||||
|
|
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
|
if partial_check; then
|
||||||
list_newly_built_files
|
list_newly_built_files
|
||||||
else
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -97,10 +97,14 @@ if __name__ == '__main__':
|
||||||
parser = ArgumentParser(description='Cycle detector for xbps-src')
|
parser = ArgumentParser(description='Cycle detector for xbps-src')
|
||||||
parser.add_argument('-j', '--jobs', default=None,
|
parser.add_argument('-j', '--jobs', default=None,
|
||||||
type=int, help='Number of parallel jobs')
|
type=int, help='Number of parallel jobs')
|
||||||
parser.add_argument('-c', '--cachedir',
|
parser.add_argument('-c', '--cachedir', default=None,
|
||||||
default=None, help='''Directory to use as cache for xbps-src show-build-deps. Directory must exist already.''')
|
help='Directory used to cache build dependencies (must exist)')
|
||||||
parser.add_argument('-d', '--directory',
|
parser.add_argument('-d', '--directory',
|
||||||
default=None, help='Path to void-packages repo')
|
default=None, help='Path to void-packages repo')
|
||||||
|
parser.add_argument('-Q', dest='check_pkgs', action='store_const',
|
||||||
|
const='yes', help='Use build dependencies for check -Q')
|
||||||
|
parser.add_argument('-K', dest='check_pkgs', action='store_const',
|
||||||
|
const='full', help='Use build dependencies for check -K')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
@ -108,13 +112,15 @@ if __name__ == '__main__':
|
||||||
try: args.directory = os.environ['XBPS_DISTDIR']
|
try: args.directory = os.environ['XBPS_DISTDIR']
|
||||||
except KeyError: args.directory = '.'
|
except KeyError: args.directory = '.'
|
||||||
|
|
||||||
cachedir = args.cachedir
|
if args.check_pkgs:
|
||||||
|
os.environ['XBPS_CHECK_PKGS'] = args.check_pkgs
|
||||||
|
|
||||||
pool = multiprocessing.Pool(processes = args.jobs)
|
pool = multiprocessing.Pool(processes = args.jobs)
|
||||||
|
|
||||||
pattern = os.path.join(args.directory, 'srcpkgs', '*')
|
pattern = os.path.join(args.directory, 'srcpkgs', '*')
|
||||||
depmap = dict(pool.starmap(enum_depends,
|
pkgs = {os.path.realpath(p) for p in glob.iglob(pattern)}
|
||||||
((os.path.basename(g), args.directory, cachedir)
|
|
||||||
for g 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)
|
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"
|
test="-Q"
|
||||||
fi
|
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
|
for pkg in ${PKGS}; do
|
||||||
/hostrepo/xbps-src -j$(nproc) -s -H "$HOME"/hostdir $arch $test pkg "$pkg"
|
/hostrepo/xbps-src -j$(nproc) -s -H "$HOME"/hostdir $arch $test pkg "$pkg"
|
||||||
|
|
|
@ -24,5 +24,6 @@ git diff-tree -r --no-renames --name-only --diff-filter=AM \
|
||||||
"$base" "$tip" \
|
"$base" "$tip" \
|
||||||
-- 'srcpkgs/*/template' |
|
-- 'srcpkgs/*/template' |
|
||||||
cut -d/ -f 2 |
|
cut -d/ -f 2 |
|
||||||
|
xargs ./xbps-src sort-dependencies |
|
||||||
tee /tmp/templates |
|
tee /tmp/templates |
|
||||||
sed "s/^/ /" >&2
|
sed "s/^/ /" >&2
|
||||||
|
|
|
@ -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.1
|
||||||
APSL-1.2
|
APSL-1.2
|
||||||
APSL-2.0
|
APSL-2.0
|
||||||
|
ASWF-Digital-Assets-1.0
|
||||||
|
ASWF-Digital-Assets-1.1
|
||||||
Abstyles
|
Abstyles
|
||||||
|
AdaCore-doc
|
||||||
Adobe-2006
|
Adobe-2006
|
||||||
Adobe-Glyph
|
Adobe-Glyph
|
||||||
|
Adobe-Utopia
|
||||||
Afmparse
|
Afmparse
|
||||||
Aladdin
|
Aladdin
|
||||||
Apache-1.0
|
Apache-1.0
|
||||||
|
@ -36,14 +40,19 @@ Artistic-1.0-Perl
|
||||||
Artistic-1.0-cl8
|
Artistic-1.0-cl8
|
||||||
Artistic-1.0
|
Artistic-1.0
|
||||||
Artistic-2.0
|
Artistic-2.0
|
||||||
|
Asterisk-exception
|
||||||
Autoconf-exception-2.0
|
Autoconf-exception-2.0
|
||||||
Autoconf-exception-3.0
|
Autoconf-exception-3.0
|
||||||
|
Autoconf-exception-generic-3.0
|
||||||
|
Autoconf-exception-generic
|
||||||
|
Autoconf-exception-macro
|
||||||
BSD-1-Clause
|
BSD-1-Clause
|
||||||
BSD-2-Clause-Patent
|
BSD-2-Clause-Patent
|
||||||
BSD-2-Clause-Views
|
BSD-2-Clause-Views
|
||||||
BSD-2-Clause
|
BSD-2-Clause
|
||||||
BSD-3-Clause-Attribution
|
BSD-3-Clause-Attribution
|
||||||
BSD-3-Clause-Clear
|
BSD-3-Clause-Clear
|
||||||
|
BSD-3-Clause-HP
|
||||||
BSD-3-Clause-LBNL
|
BSD-3-Clause-LBNL
|
||||||
BSD-3-Clause-Modification
|
BSD-3-Clause-Modification
|
||||||
BSD-3-Clause-No-Military-License
|
BSD-3-Clause-No-Military-License
|
||||||
|
@ -51,12 +60,20 @@ BSD-3-Clause-No-Nuclear-License-2014
|
||||||
BSD-3-Clause-No-Nuclear-License
|
BSD-3-Clause-No-Nuclear-License
|
||||||
BSD-3-Clause-No-Nuclear-Warranty
|
BSD-3-Clause-No-Nuclear-Warranty
|
||||||
BSD-3-Clause-Open-MPI
|
BSD-3-Clause-Open-MPI
|
||||||
|
BSD-3-Clause-Sun
|
||||||
|
BSD-3-Clause-flex
|
||||||
BSD-3-Clause
|
BSD-3-Clause
|
||||||
BSD-4-Clause-Shortened
|
BSD-4-Clause-Shortened
|
||||||
BSD-4-Clause-UC
|
BSD-4-Clause-UC
|
||||||
BSD-4-Clause
|
BSD-4-Clause
|
||||||
|
BSD-4.3RENO
|
||||||
|
BSD-4.3TAHOE
|
||||||
|
BSD-Advertising-Acknowledgement
|
||||||
|
BSD-Attribution-HPND-disclaimer
|
||||||
|
BSD-Inferno-Nettverk
|
||||||
BSD-Protection
|
BSD-Protection
|
||||||
BSD-Source-Code
|
BSD-Source-Code
|
||||||
|
BSD-Systemics
|
||||||
BSL-1.0
|
BSL-1.0
|
||||||
BUSL-1.1
|
BUSL-1.1
|
||||||
Baekmuk
|
Baekmuk
|
||||||
|
@ -66,10 +83,13 @@ Beerware
|
||||||
Bison-exception-2.2
|
Bison-exception-2.2
|
||||||
BitTorrent-1.0
|
BitTorrent-1.0
|
||||||
BitTorrent-1.1
|
BitTorrent-1.1
|
||||||
|
Bitstream-Charter
|
||||||
Bitstream-Vera
|
Bitstream-Vera
|
||||||
BlueOak-1.0.0
|
BlueOak-1.0.0
|
||||||
|
Boehm-GC
|
||||||
Bootloader-exception
|
Bootloader-exception
|
||||||
Borceux
|
Borceux
|
||||||
|
Brian-Gladman-3-Clause
|
||||||
C-UDA-1.0
|
C-UDA-1.0
|
||||||
CAL-1.0-Combined-Work-Exception
|
CAL-1.0-Combined-Work-Exception
|
||||||
CAL-1.0
|
CAL-1.0
|
||||||
|
@ -99,6 +119,7 @@ CC-BY-NC-ND-3.0-IGO
|
||||||
CC-BY-NC-ND-3.0
|
CC-BY-NC-ND-3.0
|
||||||
CC-BY-NC-ND-4.0
|
CC-BY-NC-ND-4.0
|
||||||
CC-BY-NC-SA-1.0
|
CC-BY-NC-SA-1.0
|
||||||
|
CC-BY-NC-SA-2.0-DE
|
||||||
CC-BY-NC-SA-2.0-FR
|
CC-BY-NC-SA-2.0-FR
|
||||||
CC-BY-NC-SA-2.0-UK
|
CC-BY-NC-SA-2.0-UK
|
||||||
CC-BY-NC-SA-2.0
|
CC-BY-NC-SA-2.0
|
||||||
|
@ -120,6 +141,7 @@ CC-BY-SA-2.1-JP
|
||||||
CC-BY-SA-2.5
|
CC-BY-SA-2.5
|
||||||
CC-BY-SA-3.0-AT
|
CC-BY-SA-3.0-AT
|
||||||
CC-BY-SA-3.0-DE
|
CC-BY-SA-3.0-DE
|
||||||
|
CC-BY-SA-3.0-IGO
|
||||||
CC-BY-SA-3.0
|
CC-BY-SA-3.0
|
||||||
CC-BY-SA-4.0
|
CC-BY-SA-4.0
|
||||||
CC-PDDC
|
CC-PDDC
|
||||||
|
@ -141,7 +163,9 @@ CERN-OHL-1.2
|
||||||
CERN-OHL-P-2.0
|
CERN-OHL-P-2.0
|
||||||
CERN-OHL-S-2.0
|
CERN-OHL-S-2.0
|
||||||
CERN-OHL-W-2.0
|
CERN-OHL-W-2.0
|
||||||
|
CFITSIO
|
||||||
CLISP-exception-2.0
|
CLISP-exception-2.0
|
||||||
|
CMU-Mach
|
||||||
CNRI-Jython
|
CNRI-Jython
|
||||||
CNRI-Python-GPL-Compatible
|
CNRI-Python-GPL-Compatible
|
||||||
CNRI-Python
|
CNRI-Python
|
||||||
|
@ -153,13 +177,17 @@ CUA-OPL-1.0
|
||||||
Caldera
|
Caldera
|
||||||
ClArtistic
|
ClArtistic
|
||||||
Classpath-exception-2.0
|
Classpath-exception-2.0
|
||||||
|
Clips
|
||||||
Community-Spec-1.0
|
Community-Spec-1.0
|
||||||
Condor-1.1
|
Condor-1.1
|
||||||
|
Cornell-Lossless-JPEG
|
||||||
|
Cronyx
|
||||||
Crossword
|
Crossword
|
||||||
CrystalStacker
|
CrystalStacker
|
||||||
Cube
|
Cube
|
||||||
D-FSL-1.0
|
D-FSL-1.0
|
||||||
DL-DE-BY-2.0
|
DL-DE-BY-2.0
|
||||||
|
DL-DE-ZERO-2.0
|
||||||
DOC
|
DOC
|
||||||
DRL-1.0
|
DRL-1.0
|
||||||
DSDP
|
DSDP
|
||||||
|
@ -180,6 +208,7 @@ Elastic-2.0
|
||||||
Entessa
|
Entessa
|
||||||
ErlPL-1.1
|
ErlPL-1.1
|
||||||
Eurosym
|
Eurosym
|
||||||
|
FBM
|
||||||
FDK-AAC
|
FDK-AAC
|
||||||
FLTK-exception
|
FLTK-exception
|
||||||
FSFAP
|
FSFAP
|
||||||
|
@ -189,10 +218,13 @@ FSFULLRWD
|
||||||
FTL
|
FTL
|
||||||
Fair
|
Fair
|
||||||
Fawkes-Runtime-exception
|
Fawkes-Runtime-exception
|
||||||
|
Ferguson-Twofish
|
||||||
Font-exception-2.0
|
Font-exception-2.0
|
||||||
Frameworx-1.0
|
Frameworx-1.0
|
||||||
FreeBSD-DOC
|
FreeBSD-DOC
|
||||||
FreeImage
|
FreeImage
|
||||||
|
Furuseth
|
||||||
|
GCC-exception-2.0-note
|
||||||
GCC-exception-2.0
|
GCC-exception-2.0
|
||||||
GCC-exception-3.1
|
GCC-exception-3.1
|
||||||
GD
|
GD
|
||||||
|
@ -216,10 +248,13 @@ GFDL-1.3-only
|
||||||
GFDL-1.3-or-later
|
GFDL-1.3-or-later
|
||||||
GL2PS
|
GL2PS
|
||||||
GLWTPL
|
GLWTPL
|
||||||
|
GNAT-exception
|
||||||
|
GNU-compiler-exception
|
||||||
GPL-1.0-only
|
GPL-1.0-only
|
||||||
GPL-1.0-or-later
|
GPL-1.0-or-later
|
||||||
GPL-2.0-only
|
GPL-2.0-only
|
||||||
GPL-2.0-or-later
|
GPL-2.0-or-later
|
||||||
|
GPL-3.0-interface-exception
|
||||||
GPL-3.0-linking-exception
|
GPL-3.0-linking-exception
|
||||||
GPL-3.0-linking-source-exception
|
GPL-3.0-linking-source-exception
|
||||||
GPL-3.0-only
|
GPL-3.0-only
|
||||||
|
@ -230,6 +265,19 @@ GStreamer-exception-2008
|
||||||
Giftware
|
Giftware
|
||||||
Glide
|
Glide
|
||||||
Glulxe
|
Glulxe
|
||||||
|
Graphics-Gems
|
||||||
|
HP-1986
|
||||||
|
HP-1989
|
||||||
|
HPND-DEC
|
||||||
|
HPND-Markus-Kuhn
|
||||||
|
HPND-Pbmplus
|
||||||
|
HPND-UC
|
||||||
|
HPND-doc-sell
|
||||||
|
HPND-doc
|
||||||
|
HPND-export-US-modify
|
||||||
|
HPND-export-US
|
||||||
|
HPND-sell-regexpr
|
||||||
|
HPND-sell-variant-MIT-disclaimer
|
||||||
HPND-sell-variant
|
HPND-sell-variant
|
||||||
HPND
|
HPND
|
||||||
HTMLTIDY
|
HTMLTIDY
|
||||||
|
@ -237,6 +285,8 @@ HaskellReport
|
||||||
Hippocratic-2.1
|
Hippocratic-2.1
|
||||||
IBM-pibs
|
IBM-pibs
|
||||||
ICU
|
ICU
|
||||||
|
IEC-Code-Components-EULA
|
||||||
|
IJG-short
|
||||||
IJG
|
IJG
|
||||||
IPA
|
IPA
|
||||||
IPL-1.0
|
IPL-1.0
|
||||||
|
@ -244,13 +294,17 @@ ISC
|
||||||
ImageMagick
|
ImageMagick
|
||||||
Imlib2
|
Imlib2
|
||||||
Info-ZIP
|
Info-ZIP
|
||||||
|
Inner-Net-2.0
|
||||||
Intel-ACPI
|
Intel-ACPI
|
||||||
Intel
|
Intel
|
||||||
Interbase-1.0
|
Interbase-1.0
|
||||||
|
JPL-image
|
||||||
JPNIC
|
JPNIC
|
||||||
JSON
|
JSON
|
||||||
Jam
|
Jam
|
||||||
JasPer-2.0
|
JasPer-2.0
|
||||||
|
Kastrup
|
||||||
|
Kazlib
|
||||||
KiCad-libraries-exception
|
KiCad-libraries-exception
|
||||||
Knuth-CTAN
|
Knuth-CTAN
|
||||||
LAL-1.2
|
LAL-1.2
|
||||||
|
@ -263,7 +317,9 @@ LGPL-3.0-linking-exception
|
||||||
LGPL-3.0-only
|
LGPL-3.0-only
|
||||||
LGPL-3.0-or-later
|
LGPL-3.0-or-later
|
||||||
LGPLLR
|
LGPLLR
|
||||||
|
LLGPL
|
||||||
LLVM-exception
|
LLVM-exception
|
||||||
|
LOOP
|
||||||
LPL-1.0
|
LPL-1.0
|
||||||
LPL-1.02
|
LPL-1.02
|
||||||
LPPL-1.0
|
LPPL-1.0
|
||||||
|
@ -274,6 +330,7 @@ LPPL-1.3c
|
||||||
LZMA-SDK-9.11-to-9.20
|
LZMA-SDK-9.11-to-9.20
|
||||||
LZMA-SDK-9.22
|
LZMA-SDK-9.22
|
||||||
LZMA-exception
|
LZMA-exception
|
||||||
|
Latex2e-translated-notice
|
||||||
Latex2e
|
Latex2e
|
||||||
Leptonica
|
Leptonica
|
||||||
LiLiQ-P-1.1
|
LiLiQ-P-1.1
|
||||||
|
@ -282,17 +339,26 @@ LiLiQ-Rplus-1.1
|
||||||
Libpng
|
Libpng
|
||||||
Libtool-exception
|
Libtool-exception
|
||||||
Linux-OpenIB
|
Linux-OpenIB
|
||||||
|
Linux-man-pages-1-para
|
||||||
|
Linux-man-pages-copyleft-2-para
|
||||||
|
Linux-man-pages-copyleft-var
|
||||||
Linux-man-pages-copyleft
|
Linux-man-pages-copyleft
|
||||||
Linux-syscall-note
|
Linux-syscall-note
|
||||||
|
Lucida-Bitmap-Fonts
|
||||||
MIT-0
|
MIT-0
|
||||||
MIT-CMU
|
MIT-CMU
|
||||||
|
MIT-Festival
|
||||||
MIT-Modern-Variant
|
MIT-Modern-Variant
|
||||||
|
MIT-Wu
|
||||||
MIT-advertising
|
MIT-advertising
|
||||||
MIT-enna
|
MIT-enna
|
||||||
MIT-feh
|
MIT-feh
|
||||||
MIT-open-group
|
MIT-open-group
|
||||||
|
MIT-testregex
|
||||||
MIT
|
MIT
|
||||||
MITNFA
|
MITNFA
|
||||||
|
MMIXware
|
||||||
|
MPEG-SSG
|
||||||
MPL-1.0
|
MPL-1.0
|
||||||
MPL-1.1
|
MPL-1.1
|
||||||
MPL-2.0-no-copyleft-exception
|
MPL-2.0-no-copyleft-exception
|
||||||
|
@ -302,6 +368,8 @@ MS-PL
|
||||||
MS-RL
|
MS-RL
|
||||||
MTLL
|
MTLL
|
||||||
MakeIndex
|
MakeIndex
|
||||||
|
Martin-Birgmeier
|
||||||
|
McPhee-slideshow
|
||||||
Minpack
|
Minpack
|
||||||
MirOS
|
MirOS
|
||||||
Motosoto
|
Motosoto
|
||||||
|
@ -318,6 +386,7 @@ NGPL
|
||||||
NICTA-1.0
|
NICTA-1.0
|
||||||
NIST-PD-fallback
|
NIST-PD-fallback
|
||||||
NIST-PD
|
NIST-PD
|
||||||
|
NIST-Software
|
||||||
NLOD-1.0
|
NLOD-1.0
|
||||||
NLOD-2.0
|
NLOD-2.0
|
||||||
NLPL
|
NLPL
|
||||||
|
@ -342,6 +411,7 @@ OCLC-2.0
|
||||||
OCaml-LGPL-linking-exception
|
OCaml-LGPL-linking-exception
|
||||||
ODC-By-1.0
|
ODC-By-1.0
|
||||||
ODbL-1.0
|
ODbL-1.0
|
||||||
|
OFFIS
|
||||||
OFL-1.0-RFN
|
OFL-1.0-RFN
|
||||||
OFL-1.0-no-RFN
|
OFL-1.0-no-RFN
|
||||||
OFL-1.0
|
OFL-1.0
|
||||||
|
@ -371,8 +441,10 @@ OLDAP-2.5
|
||||||
OLDAP-2.6
|
OLDAP-2.6
|
||||||
OLDAP-2.7
|
OLDAP-2.7
|
||||||
OLDAP-2.8
|
OLDAP-2.8
|
||||||
|
OLFL-1.3
|
||||||
OML
|
OML
|
||||||
OPL-1.0
|
OPL-1.0
|
||||||
|
OPL-UK-3.0
|
||||||
OPUBL-1.0
|
OPUBL-1.0
|
||||||
OSET-PL-2.1
|
OSET-PL-2.1
|
||||||
OSL-1.0
|
OSL-1.0
|
||||||
|
@ -381,7 +453,9 @@ OSL-2.0
|
||||||
OSL-2.1
|
OSL-2.1
|
||||||
OSL-3.0
|
OSL-3.0
|
||||||
OpenJDK-assembly-exception-1.0
|
OpenJDK-assembly-exception-1.0
|
||||||
|
OpenPBS-2.3
|
||||||
OpenSSL
|
OpenSSL
|
||||||
|
PADL
|
||||||
PDDL-1.0
|
PDDL-1.0
|
||||||
PHP-3.0
|
PHP-3.0
|
||||||
PHP-3.01
|
PHP-3.01
|
||||||
|
@ -395,6 +469,8 @@ PolyForm-Small-Business-1.0.0
|
||||||
PostgreSQL
|
PostgreSQL
|
||||||
Python-2.0.1
|
Python-2.0.1
|
||||||
Python-2.0
|
Python-2.0
|
||||||
|
QPL-1.0-INRIA-2004-exception
|
||||||
|
QPL-1.0-INRIA-2004
|
||||||
QPL-1.0
|
QPL-1.0
|
||||||
Qhull
|
Qhull
|
||||||
Qt-GPL-exception-1.0
|
Qt-GPL-exception-1.0
|
||||||
|
@ -408,17 +484,21 @@ RSA-MD
|
||||||
RSCPL
|
RSCPL
|
||||||
Rdisc
|
Rdisc
|
||||||
Ruby
|
Ruby
|
||||||
|
SANE-exception
|
||||||
SAX-PD
|
SAX-PD
|
||||||
SCEA
|
SCEA
|
||||||
SGI-B-1.0
|
SGI-B-1.0
|
||||||
SGI-B-1.1
|
SGI-B-1.1
|
||||||
SGI-B-2.0
|
SGI-B-2.0
|
||||||
|
SGI-OpenGL
|
||||||
|
SGP4
|
||||||
SHL-0.5
|
SHL-0.5
|
||||||
SHL-0.51
|
SHL-0.51
|
||||||
SHL-2.0
|
SHL-2.0
|
||||||
SHL-2.1
|
SHL-2.1
|
||||||
SISSL-1.2
|
SISSL-1.2
|
||||||
SISSL
|
SISSL
|
||||||
|
SL
|
||||||
SMLNJ
|
SMLNJ
|
||||||
SMPPL
|
SMPPL
|
||||||
SNIA
|
SNIA
|
||||||
|
@ -426,6 +506,7 @@ SPL-1.0
|
||||||
SSH-OpenSSH
|
SSH-OpenSSH
|
||||||
SSH-short
|
SSH-short
|
||||||
SSPL-1.0
|
SSPL-1.0
|
||||||
|
SWI-exception
|
||||||
SWL
|
SWL
|
||||||
Saxpath
|
Saxpath
|
||||||
SchemeReport
|
SchemeReport
|
||||||
|
@ -433,25 +514,38 @@ Sendmail-8.23
|
||||||
Sendmail
|
Sendmail
|
||||||
SimPL-2.0
|
SimPL-2.0
|
||||||
Sleepycat
|
Sleepycat
|
||||||
|
Soundex
|
||||||
Spencer-86
|
Spencer-86
|
||||||
Spencer-94
|
Spencer-94
|
||||||
Spencer-99
|
Spencer-99
|
||||||
SugarCRM-1.1.3
|
SugarCRM-1.1.3
|
||||||
|
SunPro
|
||||||
Swift-exception
|
Swift-exception
|
||||||
|
Symlinks
|
||||||
TAPR-OHL-1.0
|
TAPR-OHL-1.0
|
||||||
TCL
|
TCL
|
||||||
TCP-wrappers
|
TCP-wrappers
|
||||||
TMate
|
TMate
|
||||||
TORQUE-1.1
|
TORQUE-1.1
|
||||||
TOSL
|
TOSL
|
||||||
|
TPDL
|
||||||
|
TPL-1.0
|
||||||
|
TTWL
|
||||||
|
TTYP0
|
||||||
TU-Berlin-1.0
|
TU-Berlin-1.0
|
||||||
TU-Berlin-2.0
|
TU-Berlin-2.0
|
||||||
|
TermReadKey
|
||||||
|
Texinfo-exception
|
||||||
|
UBDL-exception
|
||||||
|
UCAR
|
||||||
UCL-1.0
|
UCL-1.0
|
||||||
UPL-1.0
|
UPL-1.0
|
||||||
|
URT-RLE
|
||||||
Unicode-DFS-2015
|
Unicode-DFS-2015
|
||||||
Unicode-DFS-2016
|
Unicode-DFS-2016
|
||||||
Unicode-TOU
|
Unicode-TOU
|
||||||
Universal-FOSS-exception-1.0
|
Universal-FOSS-exception-1.0
|
||||||
|
UnixCrypt
|
||||||
Unlicense
|
Unlicense
|
||||||
VOSTROM
|
VOSTROM
|
||||||
VSL-1.0
|
VSL-1.0
|
||||||
|
@ -461,13 +555,16 @@ W3C-20150513
|
||||||
W3C
|
W3C
|
||||||
WTFPL
|
WTFPL
|
||||||
Watcom-1.0
|
Watcom-1.0
|
||||||
|
Widget-Workshop
|
||||||
Wsuipa
|
Wsuipa
|
||||||
WxWindows-exception-3.1
|
WxWindows-exception-3.1
|
||||||
X11-distribute-modifications-variant
|
X11-distribute-modifications-variant
|
||||||
X11
|
X11
|
||||||
XFree86-1.1
|
XFree86-1.1
|
||||||
XSkat
|
XSkat
|
||||||
|
Xdebug-1.03
|
||||||
Xerox
|
Xerox
|
||||||
|
Xfig
|
||||||
Xnet
|
Xnet
|
||||||
YPL-1.0
|
YPL-1.0
|
||||||
YPL-1.1
|
YPL-1.1
|
||||||
|
@ -475,15 +572,18 @@ ZPL-1.1
|
||||||
ZPL-2.0
|
ZPL-2.0
|
||||||
ZPL-2.1
|
ZPL-2.1
|
||||||
Zed
|
Zed
|
||||||
|
Zeeff
|
||||||
Zend-2.0
|
Zend-2.0
|
||||||
Zimbra-1.3
|
Zimbra-1.3
|
||||||
Zimbra-1.4
|
Zimbra-1.4
|
||||||
Zlib
|
Zlib
|
||||||
blessing
|
blessing
|
||||||
bzip2-1.0.6
|
bzip2-1.0.6
|
||||||
|
check-cvs
|
||||||
checkmk
|
checkmk
|
||||||
copyleft-next-0.3.0
|
copyleft-next-0.3.0
|
||||||
copyleft-next-0.3.1
|
copyleft-next-0.3.1
|
||||||
|
cryptsetup-OpenSSL-exception
|
||||||
curl
|
curl
|
||||||
deprecated_AGPL-1.0
|
deprecated_AGPL-1.0
|
||||||
deprecated_AGPL-3.0
|
deprecated_AGPL-3.0
|
||||||
|
@ -517,29 +617,45 @@ deprecated_bzip2-1.0.5
|
||||||
deprecated_eCos-2.0
|
deprecated_eCos-2.0
|
||||||
deprecated_wxWindows
|
deprecated_wxWindows
|
||||||
diffmark
|
diffmark
|
||||||
|
dtoa
|
||||||
dvipdfm
|
dvipdfm
|
||||||
eCos-exception-2.0
|
eCos-exception-2.0
|
||||||
eGenix
|
eGenix
|
||||||
etalab-2.0
|
etalab-2.0
|
||||||
freertos-exception-2.0
|
freertos-exception-2.0
|
||||||
|
fwlw
|
||||||
gSOAP-1.3b
|
gSOAP-1.3b
|
||||||
gnu-javamail-exception
|
gnu-javamail-exception
|
||||||
gnuplot
|
gnuplot
|
||||||
i2p-gpl-java-exception
|
i2p-gpl-java-exception
|
||||||
iMatix
|
iMatix
|
||||||
libpng-2.0
|
libpng-2.0
|
||||||
|
libpri-OpenH323-exception
|
||||||
libselinux-1.0
|
libselinux-1.0
|
||||||
libtiff
|
libtiff
|
||||||
libutil-David-Nugent
|
libutil-David-Nugent
|
||||||
|
lsof
|
||||||
|
magaz
|
||||||
|
metamail
|
||||||
mif-exception
|
mif-exception
|
||||||
mpi-permissive
|
mpi-permissive
|
||||||
mpich2
|
mpich2
|
||||||
mplus
|
mplus
|
||||||
openvpn-openssl-exception
|
openvpn-openssl-exception
|
||||||
|
pnmstitch
|
||||||
psfrag
|
psfrag
|
||||||
psutils
|
psutils
|
||||||
|
python-ldap
|
||||||
|
snprintf
|
||||||
|
ssh-keyscan
|
||||||
|
stunnel-exception
|
||||||
|
swrule
|
||||||
u-boot-exception-2.0
|
u-boot-exception-2.0
|
||||||
|
ulem
|
||||||
|
vsftpd-openssl-exception
|
||||||
|
w3m
|
||||||
x11vnc-openssl-exception
|
x11vnc-openssl-exception
|
||||||
xinetd
|
xinetd
|
||||||
|
xlock
|
||||||
xpp
|
xpp
|
||||||
zlib-acknowledgement
|
zlib-acknowledgement
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
#
|
#
|
||||||
# prepare.sh
|
# prepare.sh
|
||||||
|
|
||||||
[ "$XLINT" ] && exit 0
|
|
||||||
|
|
||||||
/bin/echo -e '\x1b[32mUpdating etc/conf...\x1b[0m'
|
/bin/echo -e '\x1b[32mUpdating etc/conf...\x1b[0m'
|
||||||
echo XBPS_BUILD_ENVIRONMENT=void-packages-ci >> etc/conf
|
echo XBPS_BUILD_ENVIRONMENT=void-packages-ci >> etc/conf
|
||||||
echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf
|
echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf
|
||||||
|
|
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.sh
|
||||||
|
|
||||||
[ "$XLINT" ] || exit 0
|
|
||||||
|
|
||||||
EXITCODE=0
|
EXITCODE=0
|
||||||
read base tip < /tmp/revisions
|
read base tip < /tmp/revisions
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,11 @@ ARGS=("$@")
|
||||||
i=0
|
i=0
|
||||||
while [ $i -lt ${#ARGS[@]} ]; do
|
while [ $i -lt ${#ARGS[@]} ]; do
|
||||||
arg="${ARGS[$i]}"
|
arg="${ARGS[$i]}"
|
||||||
if [ "$incpath" ]; then
|
if [ -n "$incpath" ]; then
|
||||||
if [ "$arg" = "/usr/include" ]; then
|
if [ "$arg" = "/usr/include" ]; then
|
||||||
echo "[cc-wrapper] ignoring -I $arg"
|
echo "[cc-wrapper] ignoring ${incpath} $arg"
|
||||||
else
|
else
|
||||||
MYARGS+=("-I${arg}")
|
MYARGS+=("${incpath}${arg}")
|
||||||
fi
|
fi
|
||||||
unset incpath
|
unset incpath
|
||||||
elif [ "$libpath" ]; then
|
elif [ "$libpath" ]; then
|
||||||
|
@ -23,13 +23,13 @@ while [ $i -lt ${#ARGS[@]} ]; do
|
||||||
MYARGS+=("-L${arg}")
|
MYARGS+=("-L${arg}")
|
||||||
fi
|
fi
|
||||||
unset libpath
|
unset libpath
|
||||||
elif [ "$arg" = "-I" ]; then
|
elif [ "$arg" = "-I" -o "$arg" = "-isystem" ]; then
|
||||||
incpath=1
|
incpath="$arg"
|
||||||
elif [ "$arg" = "-L" ]; then
|
elif [ "$arg" = "-L" ]; then
|
||||||
libpath=1
|
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/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"
|
echo "[cc-wrapper] ignoring $arg"
|
||||||
else
|
else
|
||||||
MYARGS+=("${arg}")
|
MYARGS+=("${arg}")
|
||||||
|
|
|
@ -124,6 +124,17 @@ check_installed_pkg() {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Return 0 if we will skip the check step
|
||||||
|
#
|
||||||
|
skip_check_step() {
|
||||||
|
[ -z "$XBPS_CHECK_PKGS" ] ||
|
||||||
|
[ "$XBPS_CROSS_BUILD" ] ||
|
||||||
|
[ "$make_check" = ci-skip -a "$XBPS_BUILD_ENVIRONMENT" = void-packages-ci ] ||
|
||||||
|
[ "$make_check" = extended -a "$XBPS_CHECK_PKGS" != full ] ||
|
||||||
|
[ "$make_check" = no ]
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Build all dependencies required to build and run.
|
# Build all dependencies required to build and run.
|
||||||
#
|
#
|
||||||
|
@ -137,7 +148,7 @@ install_pkg_deps() {
|
||||||
local -a host_missing_deps missing_deps missing_rdeps
|
local -a host_missing_deps missing_deps missing_rdeps
|
||||||
|
|
||||||
[ -z "$pkgname" ] && return 2
|
[ -z "$pkgname" ] && return 2
|
||||||
[ -z "$XBPS_CHECK_PKGS" ] && unset checkdepends
|
skip_check_step && unset checkdepends
|
||||||
|
|
||||||
if [[ $build_style ]] || [[ $build_helper ]]; then
|
if [[ $build_style ]] || [[ $build_helper ]]; then
|
||||||
style=" with"
|
style=" with"
|
||||||
|
@ -208,7 +219,7 @@ install_pkg_deps() {
|
||||||
#
|
#
|
||||||
# Host check dependencies.
|
# Host check dependencies.
|
||||||
#
|
#
|
||||||
if [[ ${checkdepends} ]] && [[ $XBPS_CHECK_PKGS ]] && [ -z "$XBPS_CROSS_BUILD" ]; then
|
if [[ ${checkdepends} ]]; then
|
||||||
templates=""
|
templates=""
|
||||||
# check validity
|
# check validity
|
||||||
for f in ${checkdepends}; do
|
for f in ${checkdepends}; do
|
||||||
|
@ -410,22 +421,12 @@ install_pkg_deps() {
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ ${host_binpkg_deps} ]]; then
|
if [[ ${host_binpkg_deps} ]]; then
|
||||||
if [ -z "$XBPS_QUIET" ]; then
|
msg_normal "$pkgver: installing host dependencies: ${host_binpkg_deps[*]} ...\n"
|
||||||
# normal messages in bold
|
|
||||||
[[ $NOCOLORS ]] || printf "\033[1m"
|
|
||||||
echo "=> $pkgver: installing host dependencies: ${host_binpkg_deps[@]} ..."
|
|
||||||
[[ $NOCOLORS ]] || printf "\033[m"
|
|
||||||
fi
|
|
||||||
install_pkg_from_repos "" host "${host_binpkg_deps[@]}"
|
install_pkg_from_repos "" host "${host_binpkg_deps[@]}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${binpkg_deps} ]]; then
|
if [[ ${binpkg_deps} ]]; then
|
||||||
if [ -z "$XBPS_QUIET" ]; then
|
msg_normal "$pkgver: installing target dependencies: ${binpkg_deps[*]} ...\n"
|
||||||
# normal messages in bold
|
|
||||||
[[ $NOCOLORS ]] || printf "\033[1m"
|
|
||||||
echo "=> $pkgver: installing target dependencies: ${binpkg_deps[@]} ..."
|
|
||||||
[[ $NOCOLORS ]] || printf "\033[m"
|
|
||||||
fi
|
|
||||||
install_pkg_from_repos "$cross" target "${binpkg_deps[@]}"
|
install_pkg_from_repos "$cross" target "${binpkg_deps[@]}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -8,22 +8,22 @@ install_base_chroot() {
|
||||||
XBPS_TARGET_PKG="$1"
|
XBPS_TARGET_PKG="$1"
|
||||||
fi
|
fi
|
||||||
# binary bootstrap
|
# binary bootstrap
|
||||||
msg_normal "xbps-src: installing base-chroot-cereus...\n"
|
msg_normal "xbps-src: installing base-chroot...\n"
|
||||||
# XBPS_TARGET_PKG == arch
|
# XBPS_TARGET_PKG == arch
|
||||||
if [ "$XBPS_TARGET_PKG" ]; then
|
if [ "$XBPS_TARGET_PKG" ]; then
|
||||||
_bootstrap_arch="env XBPS_TARGET_ARCH=$XBPS_TARGET_PKG"
|
_bootstrap_arch="env XBPS_TARGET_ARCH=$XBPS_TARGET_PKG"
|
||||||
fi
|
fi
|
||||||
(export XBPS_MACHINE=$XBPS_TARGET_PKG XBPS_ARCH=$XBPS_TARGET_PKG; chroot_sync_repodata)
|
(export XBPS_MACHINE=$XBPS_TARGET_PKG XBPS_ARCH=$XBPS_TARGET_PKG; chroot_sync_repodata)
|
||||||
${_bootstrap_arch} $XBPS_INSTALL_CMD ${XBPS_INSTALL_ARGS} -y base-chroot-cereus
|
${_bootstrap_arch} $XBPS_INSTALL_CMD ${XBPS_INSTALL_ARGS} -y base-chroot
|
||||||
if [ $? -ne 0 ]; then
|
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
|
fi
|
||||||
# Reconfigure base-files to create dirs/symlinks.
|
# Reconfigure base-files to create dirs/symlinks.
|
||||||
if xbps-query -r $XBPS_MASTERDIR base-files &>/dev/null; then
|
if xbps-query -r $XBPS_MASTERDIR base-files &>/dev/null; then
|
||||||
XBPS_ARCH=$XBPS_TARGET_PKG xbps-reconfigure -r $XBPS_MASTERDIR -f base-files &>/dev/null
|
XBPS_ARCH=$XBPS_TARGET_PKG xbps-reconfigure -r $XBPS_MASTERDIR -f base-files &>/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_normal "xbps-src: installed base-chroot-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_prepare $XBPS_TARGET_PKG || msg_error "xbps-src: failed to initialize chroot!\n"
|
||||||
chroot_check
|
chroot_check
|
||||||
chroot_handler clean
|
chroot_handler clean
|
||||||
|
@ -34,7 +34,7 @@ reconfigure_base_chroot() {
|
||||||
local pkgs="glibc-locales ca-certificates"
|
local pkgs="glibc-locales ca-certificates"
|
||||||
[ -z "$IN_CHROOT" -o -e $statefile ] && return 0
|
[ -z "$IN_CHROOT" -o -e $statefile ] && return 0
|
||||||
# Reconfigure ca-certificates.
|
# Reconfigure ca-certificates.
|
||||||
msg_normal "xbps-src: reconfiguring base-chroot-cereus...\n"
|
msg_normal "xbps-src: reconfiguring base-chroot...\n"
|
||||||
for f in ${pkgs}; do
|
for f in ${pkgs}; do
|
||||||
if xbps-query -r $XBPS_MASTERDIR $f &>/dev/null; then
|
if xbps-query -r $XBPS_MASTERDIR $f &>/dev/null; then
|
||||||
xbps-reconfigure -r $XBPS_MASTERDIR -f $f
|
xbps-reconfigure -r $XBPS_MASTERDIR -f $f
|
||||||
|
@ -51,7 +51,7 @@ update_base_chroot() {
|
||||||
if $(${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -nu|grep -q xbps); then
|
if $(${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -nu|grep -q xbps); then
|
||||||
${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu xbps || msg_error "xbps-src: failed to update xbps!\n"
|
${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu xbps || msg_error "xbps-src: failed to update xbps!\n"
|
||||||
fi
|
fi
|
||||||
${XBPS_INSTALL_CMD} ${XBPS_INSTALL_ARGS} -yu || msg_error "xbps-src: failed to update base-chroot-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"
|
msg_normal "xbps-src: cleaning up $XBPS_MASTERDIR masterdir...\n"
|
||||||
[ -z "$XBPS_KEEP_ALL" -a -z "$XBPS_SKIP_DEPS" ] && remove_pkg_autodeps
|
[ -z "$XBPS_KEEP_ALL" -a -z "$XBPS_SKIP_DEPS" ] && remove_pkg_autodeps
|
||||||
[ -z "$XBPS_KEEP_ALL" -a -z "$keep_all_force" ] && rm -rf $XBPS_MASTERDIR/builddir $XBPS_MASTERDIR/destdir
|
[ -z "$XBPS_KEEP_ALL" -a -z "$keep_all_force" ] && rm -rf $XBPS_MASTERDIR/builddir $XBPS_MASTERDIR/destdir
|
||||||
|
@ -309,6 +309,9 @@ chroot_sync_repodata() {
|
||||||
# Copy xbps repository keys to the masterdir.
|
# Copy xbps repository keys to the masterdir.
|
||||||
mkdir -p $XBPS_MASTERDIR/var/db/xbps/keys
|
mkdir -p $XBPS_MASTERDIR/var/db/xbps/keys
|
||||||
cp -f $XBPS_COMMONDIR/repo-keys/*.plist $XBPS_MASTERDIR/var/db/xbps/keys
|
cp -f $XBPS_COMMONDIR/repo-keys/*.plist $XBPS_MASTERDIR/var/db/xbps/keys
|
||||||
|
if [ -n "$(shopt -s nullglob; echo "$XBPS_DISTDIR"/etc/repo-keys/*.plist)" ]; then
|
||||||
|
cp -f "$XBPS_DISTDIR"/etc/repo-keys/*.plist "$XBPS_MASTERDIR"/var/db/xbps/keys
|
||||||
|
fi
|
||||||
|
|
||||||
# Make sure to sync index for remote repositories.
|
# Make sure to sync index for remote repositories.
|
||||||
if [ -z "$XBPS_SKIP_REMOTEREPOS" ]; then
|
if [ -z "$XBPS_SKIP_REMOTEREPOS" ]; then
|
||||||
|
|
|
@ -1,5 +1,41 @@
|
||||||
# vim: set ts=4 sw=4 et:
|
# vim: set ts=4 sw=4 et:
|
||||||
|
|
||||||
|
# A portable abstraction for stat(1)
|
||||||
|
#
|
||||||
|
# The stat(1) command has different syntaxes between GNU flavor
|
||||||
|
# and BSD flavor; implementations generally follow one or the other
|
||||||
|
#
|
||||||
|
if ! stat -c "%s" / > /dev/null 2>&1; then
|
||||||
|
# BSD stat
|
||||||
|
|
||||||
|
stat_size() {
|
||||||
|
stat -f %z "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
stat_inode() {
|
||||||
|
stat -f %i "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
stat_mtime() {
|
||||||
|
stat -f %m "$1"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
# GNU stat
|
||||||
|
|
||||||
|
stat_size() {
|
||||||
|
stat -c %s "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
stat_inode() {
|
||||||
|
stat -c %i "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
stat_mtime() {
|
||||||
|
stat -c %Y "$1"
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
run_func() {
|
run_func() {
|
||||||
local func="$1" desc="$2" funcname="$3" restoretrap= logpipe= logfile= teepid=
|
local func="$1" desc="$2" funcname="$3" restoretrap= logpipe= logfile= teepid=
|
||||||
|
|
||||||
|
@ -140,13 +176,24 @@ msg_warn_nochroot() {
|
||||||
|
|
||||||
msg_normal() {
|
msg_normal() {
|
||||||
if [ -z "$XBPS_QUIET" ]; then
|
if [ -z "$XBPS_QUIET" ]; then
|
||||||
# normal messages in bold
|
# 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"
|
[ -n "$NOCOLORS" ] || printf "\033[1m"
|
||||||
|
fi
|
||||||
printf "=> $@"
|
printf "=> $@"
|
||||||
[ -n "$NOCOLORS" ] || printf "\033[m"
|
[ -n "$NOCOLORS" ] || printf "\033[m"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
msg_verbose() {
|
||||||
|
if [ -n "$XBPS_VERBOSE" ]; then
|
||||||
|
printf >&2 "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
report_broken() {
|
report_broken() {
|
||||||
if [ "$show_problems" = "ignore-problems" ]; then
|
if [ "$show_problems" = "ignore-problems" ]; then
|
||||||
return
|
return
|
||||||
|
@ -165,7 +212,12 @@ report_broken() {
|
||||||
}
|
}
|
||||||
|
|
||||||
msg_normal_append() {
|
msg_normal_append() {
|
||||||
|
if [ "$XBPS_BUILD_ENVIRONMENT" = "void-packages-ci" ]; then
|
||||||
|
# Github CI considers '1m' to be just a font bold
|
||||||
|
[ -n "$NOCOLORS" ] || printf "\033[97m\033[1m"
|
||||||
|
else
|
||||||
[ -n "$NOCOLORS" ] || printf "\033[1m"
|
[ -n "$NOCOLORS" ] || printf "\033[1m"
|
||||||
|
fi
|
||||||
printf "$@"
|
printf "$@"
|
||||||
[ -n "$NOCOLORS" ] || printf "\033[m"
|
[ -n "$NOCOLORS" ] || printf "\033[m"
|
||||||
}
|
}
|
||||||
|
@ -289,6 +341,7 @@ get_endian() {
|
||||||
ppc*le) echo "le";;
|
ppc*le) echo "le";;
|
||||||
ppc*) echo "be";;
|
ppc*) echo "be";;
|
||||||
x86_64) echo "le";;
|
x86_64) echo "le";;
|
||||||
|
riscv64) echo "le";;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,6 +369,7 @@ get_wordsize() {
|
||||||
ppc64*) echo "64";;
|
ppc64*) echo "64";;
|
||||||
ppc*) echo "32";;
|
ppc*) echo "32";;
|
||||||
x86_64) echo "64";;
|
x86_64) echo "64";;
|
||||||
|
riscv64) echo "64";;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ remove_pkg_cross_deps() {
|
||||||
$XBPS_REMOVE_XCMD -Ryo > $tmplogf 2>&1
|
$XBPS_REMOVE_XCMD -Ryo > $tmplogf 2>&1
|
||||||
rval=$?
|
rval=$?
|
||||||
while [ $rval -eq 0 ]; do
|
while [ $rval -eq 0 ]; do
|
||||||
local curs=$(stat -c %s $tmplogf)
|
local curs=$(stat_size $tmplogf)
|
||||||
if [ $curs -eq $prevs ]; then
|
if [ $curs -eq $prevs ]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -65,11 +65,11 @@ remove_pkg_autodeps() {
|
||||||
|
|
||||||
remove_pkg_cross_deps
|
remove_pkg_cross_deps
|
||||||
$XBPS_RECONFIGURE_CMD -a >> $tmplogf 2>&1
|
$XBPS_RECONFIGURE_CMD -a >> $tmplogf 2>&1
|
||||||
prevs=$(stat -c %s $tmplogf)
|
prevs=$(stat_size $tmplogf)
|
||||||
echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf
|
echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf
|
||||||
rval=$?
|
rval=$?
|
||||||
while [ $rval -eq 0 ]; do
|
while [ $rval -eq 0 ]; do
|
||||||
local curs=$(stat -c %s $tmplogf)
|
local curs=$(stat_size $tmplogf)
|
||||||
if [ $curs -eq $prevs ]; then
|
if [ $curs -eq $prevs ]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -57,7 +57,7 @@ purge_distfiles() {
|
||||||
cur=0
|
cur=0
|
||||||
percent=-1
|
percent=-1
|
||||||
for distfile in ${distfiles[@]}; do
|
for distfile in ${distfiles[@]}; do
|
||||||
inode=$(stat "$distfile" --printf "%i")
|
inode=$(stat_inode "$distfile")
|
||||||
if [ -z "${inodes[$inode]}" ]; then
|
if [ -z "${inodes[$inode]}" ]; then
|
||||||
inodes[$inode]="$distfile"
|
inodes[$inode]="$distfile"
|
||||||
else
|
else
|
||||||
|
@ -77,7 +77,7 @@ purge_distfiles() {
|
||||||
hash_distfile=${file##*/}
|
hash_distfile=${file##*/}
|
||||||
hash=${hash_distfile:0:$HASHLEN}
|
hash=${hash_distfile:0:$HASHLEN}
|
||||||
[ -n "${my_hashes[$hash]}" ] && continue
|
[ -n "${my_hashes[$hash]}" ] && continue
|
||||||
inode=$(stat "$file" --printf "%i")
|
inode=$(stat_inode "$file")
|
||||||
echo "Obsolete $hash (inode: $inode)"
|
echo "Obsolete $hash (inode: $inode)"
|
||||||
( IFS="|"; for f in ${inodes[$inode]}; do rm -vf "$f"; rmdir "${f%/*}" 2>/dev/null; done )
|
( IFS="|"; for f in ${inodes[$inode]}; do rm -vf "$f"; rmdir "${f%/*}" 2>/dev/null; done )
|
||||||
done
|
done
|
||||||
|
|
|
@ -75,7 +75,7 @@ show_avail() {
|
||||||
|
|
||||||
show_eval_dep() {
|
show_eval_dep() {
|
||||||
local f x _pkgname _srcpkg found
|
local f x _pkgname _srcpkg found
|
||||||
local _dep="$1"
|
local _dep="${1%-32bit}"
|
||||||
local _host="$2"
|
local _host="$2"
|
||||||
if [ -z "$CROSS_BUILD" ] || [ -z "$_host" ]; then
|
if [ -z "$CROSS_BUILD" ] || [ -z "$_host" ]; then
|
||||||
# ignore dependency on itself
|
# ignore dependency on itself
|
||||||
|
@ -92,8 +92,7 @@ show_eval_dep() {
|
||||||
[[ $_dep == $x ]] && found=1 && break
|
[[ $_dep == $x ]] && found=1 && break
|
||||||
done
|
done
|
||||||
[[ $found ]] && return
|
[[ $found ]] && return
|
||||||
_pkgname=${_dep/-32bit}
|
_srcpkg=$(readlink -f ${XBPS_SRCPKGDIR}/${_dep})
|
||||||
_srcpkg=$(readlink -f ${XBPS_SRCPKGDIR}/${_pkgname})
|
|
||||||
_srcpkg=${_srcpkg##*/}
|
_srcpkg=${_srcpkg##*/}
|
||||||
echo $_srcpkg
|
echo $_srcpkg
|
||||||
}
|
}
|
||||||
|
@ -117,7 +116,9 @@ show_pkg_build_depends() {
|
||||||
}
|
}
|
||||||
|
|
||||||
show_pkg_build_deps() {
|
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() {
|
show_pkg_hostmakedepends() {
|
||||||
|
@ -128,16 +129,21 @@ show_pkg_makedepends() {
|
||||||
show_pkg_build_depends "${makedepends}" ""
|
show_pkg_build_depends "${makedepends}" ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_pkg_checkdepends() {
|
||||||
|
show_pkg_build_depends "${checkdepends}" ""
|
||||||
|
}
|
||||||
|
|
||||||
show_pkg_build_options() {
|
show_pkg_build_options() {
|
||||||
local f opt desc
|
local f
|
||||||
|
|
||||||
[ -z "$PKG_BUILD_OPTIONS" ] && return 0
|
[ -z "$PKG_BUILD_OPTIONS" ] && return 0
|
||||||
|
|
||||||
source $XBPS_COMMONDIR/options.description
|
source $XBPS_COMMONDIR/options.description
|
||||||
msg_normal "$pkgver: the following build options are set:\n"
|
msg_normal "$pkgver: the following build options are set:\n"
|
||||||
for f in ${PKG_BUILD_OPTIONS}; do
|
for f in ${PKG_BUILD_OPTIONS}; do
|
||||||
opt="${f#\~}"
|
local opt="${f#\~}"
|
||||||
eval desc="\${desc_option_${opt}}"
|
local descref="desc_option_${opt}"
|
||||||
|
local desc="${!descref-Enable support for $opt}"
|
||||||
if [[ ${f:0:1} == '~' ]]; then
|
if [[ ${f:0:1} == '~' ]]; then
|
||||||
echo " $opt: $desc (OFF)"
|
echo " $opt: $desc (OFF)"
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# vim: set ts=4 sw=4 et:
|
# vim: set ts=4 sw=4 et ft=bash :
|
||||||
|
|
||||||
update_check() {
|
update_check() {
|
||||||
local i p url pkgurlname rx found_version consider
|
local i p url pkgurlname rx found_version consider
|
||||||
|
@ -8,15 +8,25 @@ update_check() {
|
||||||
local urlpfx urlsfx
|
local urlpfx urlsfx
|
||||||
local -A fetchedurls
|
local -A fetchedurls
|
||||||
|
|
||||||
|
local curlargs=(
|
||||||
|
-A "xbps-src-update-check/$XBPS_SRC_VERSION"
|
||||||
|
--max-time 10 --compressed -Lsk
|
||||||
|
)
|
||||||
|
|
||||||
|
pkgname=${pkgname#kf6-}
|
||||||
|
|
||||||
|
# XBPS_UPDATE_CHECK_VERBOSE is the old way to show verbose messages
|
||||||
|
[ "$XBPS_UPDATE_CHECK_VERBOSE" ] && XBPS_VERBOSE="$XBPS_UPDATE_CHECK_VERBOSE"
|
||||||
|
|
||||||
if [ -r $update_override ]; then
|
if [ -r $update_override ]; then
|
||||||
. $update_override
|
. $update_override
|
||||||
if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
msg_verbose "using $XBPS_TARGET_PKG/update overrides\n"
|
||||||
echo "using $XBPS_TARGET_PKG/update overrides" 1>&2
|
if [ -n "$disabled" ]; then
|
||||||
|
msg_verbose "update-check DISABLED for $original_pkgname: $disabled\n"
|
||||||
|
return 0
|
||||||
fi
|
fi
|
||||||
elif [ -z "$distfiles" ]; then
|
elif [ -z "$distfiles" ]; then
|
||||||
if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
msg_verbose "NO DISTFILES found for $original_pkgname\n"
|
||||||
echo "NO DISTFILES found for $original_pkgname" 1>&2
|
|
||||||
fi
|
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -59,7 +69,7 @@ update_check() {
|
||||||
*code.google.com*|*googlecode*|\
|
*code.google.com*|*googlecode*|\
|
||||||
*launchpad.net*|\
|
*launchpad.net*|\
|
||||||
*cpan.*|\
|
*cpan.*|\
|
||||||
*pythonhosted.org*|\
|
*pythonhosted.org*|*pypi.org/project/*|\
|
||||||
*github.com*|\
|
*github.com*|\
|
||||||
*//gitlab.*|\
|
*//gitlab.*|\
|
||||||
*bitbucket.org*|\
|
*bitbucket.org*|\
|
||||||
|
@ -90,11 +100,9 @@ update_check() {
|
||||||
esac
|
esac
|
||||||
if [ "$rx" ]; then
|
if [ "$rx" ]; then
|
||||||
# substitute url if needed
|
# substitute url if needed
|
||||||
if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
msg_verbose "(folder) fetching $urlpfx and scanning with $rx\n"
|
||||||
echo "(folder) fetching $urlpfx and scanning with $rx" 1>&2
|
|
||||||
fi
|
|
||||||
skipdirs=
|
skipdirs=
|
||||||
curl -A "xbps-src-update-check/$XBPS_SRC_VERSION" --max-time 10 -Lsk "$urlpfx" |
|
curl "${curlargs[@]}" "$urlpfx" |
|
||||||
grep -Po -i "$rx" |
|
grep -Po -i "$rx" |
|
||||||
# sort -V places 1.1/ before 1/, but 1A/ before 1.1A/
|
# sort -V places 1.1/ before 1/, but 1A/ before 1.1A/
|
||||||
sed -e 's:$:A:' -e 's:/A$:A/:' | sort -Vru | sed -e 's:A/$:/A:' -e 's:A$::' |
|
sed -e 's:$:A:' -e 's:/A$:A/:' | sort -Vru | sed -e 's:A/$:/A:' -e 's:A$::' |
|
||||||
|
@ -123,9 +131,10 @@ update_check() {
|
||||||
url="https://launchpad.net/$pkgurlname/+download";;
|
url="https://launchpad.net/$pkgurlname/+download";;
|
||||||
*cpan.*)
|
*cpan.*)
|
||||||
pkgname=${pkgname#perl-};;
|
pkgname=${pkgname#perl-};;
|
||||||
*pythonhosted.org*)
|
*pythonhosted.org*|*pypi.org/project/*)
|
||||||
pkgname=${pkgname#python-}
|
pkgname=${pkgname#python-}
|
||||||
pkgname=${pkgname#python3-}
|
pkgname=${pkgname#python3-}
|
||||||
|
rx="(?<=${pkgname//-/[-_]}-)[0-9.]+(post[0-9]*)?(?=(([.]tar|-cp|-py)))"
|
||||||
url="https://pypi.org/simple/$pkgname";;
|
url="https://pypi.org/simple/$pkgname";;
|
||||||
*github.com*)
|
*github.com*)
|
||||||
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
|
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
|
||||||
|
@ -137,16 +146,16 @@ update_check() {
|
||||||
*) pkgurlname="$(printf %s "$url" | cut -d / -f 1-5)";;
|
*) pkgurlname="$(printf %s "$url" | cut -d / -f 1-5)";;
|
||||||
esac
|
esac
|
||||||
url="$pkgurlname/-/tags"
|
url="$pkgurlname/-/tags"
|
||||||
rx='/archive/[^/]+/\Q'"$pkgname"'\E-v?\K[\d.]+(?=\.tar\.gz")';;
|
rx='/archive/[^/]+/\Q'"$pkgname"'\E-v?\K[\d.]+(?=\.tar\.gz)';;
|
||||||
*bitbucket.org*)
|
*bitbucket.org*)
|
||||||
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
|
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
|
||||||
url="https://bitbucket.org/$pkgurlname/downloads"
|
url="https://bitbucket.org/$pkgurlname/downloads"
|
||||||
rx='/(get|downloads)/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar)';;
|
rx='/(get|downloads)/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar)';;
|
||||||
*ftp.gnome.org*|*download.gnome.org*)
|
*ftp.gnome.org*|*download.gnome.org*)
|
||||||
: ${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";;
|
url="https://download.gnome.org/sources/$pkgname/cache.json";;
|
||||||
*archive.xfce.org*)
|
*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" ;;
|
url="https://archive.xfce.org/feeds/project/$pkgname" ;;
|
||||||
*kernel.org/pub/linux/kernel/*)
|
*kernel.org/pub/linux/kernel/*)
|
||||||
rx=linux-'\K'${version%.*}'[\d.]+(?=\.tar\.xz)';;
|
rx=linux-'\K'${version%.*}'[\d.]+(?=\.tar\.xz)';;
|
||||||
|
@ -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'}
|
rx=${rx:-'(?<!-)\b\Q'"$pkgname"'\E[-_]?((src|source)[-_])?v?\K([^-/_\s]*?\d[^-/_\s]*?)(?=(?:[-_.](?:src|source|orig))?\.(?:[jt]ar|shar|t[bglx]z|tbz2|zip))\b'}
|
||||||
|
|
||||||
if [ "${fetchedurls[$url]}" ]; then
|
if [ "${fetchedurls[$url]}" ]; then
|
||||||
if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
msg_verbose "already fetched $url\n"
|
||||||
echo "already fetched $url" 1>&2
|
|
||||||
fi
|
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
msg_verbose "fetching $url and scanning with $rx\n"
|
||||||
echo "fetching $url and scanning with $rx" 1>&2
|
curl "${curlargs[@]}" -H 'Accept: text/html,application/xhtml+xml,application/xml,text/plain,application/rss+xml' "$url" |
|
||||||
fi
|
|
||||||
curl -H 'Accept: text/html,application/xhtml+xml,application/xml,text/plain,application/rss+xml' -A "xbps-src-update-check/$XBPS_SRC_VERSION" --max-time 10 -Lsk "$url" |
|
|
||||||
grep -Po -i "$rx"
|
grep -Po -i "$rx"
|
||||||
fetchedurls[$url]=yes
|
fetchedurls[$url]=yes
|
||||||
done |
|
done |
|
||||||
|
@ -210,9 +215,7 @@ update_check() {
|
||||||
grep . || echo "NO VERSION found for $original_pkgname" 1>&2
|
grep . || echo "NO VERSION found for $original_pkgname" 1>&2
|
||||||
} |
|
} |
|
||||||
while IFS= read -r found_version; do
|
while IFS= read -r found_version; do
|
||||||
if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
msg_verbose "found version $found_version\n"
|
||||||
echo "found version $found_version"
|
|
||||||
fi
|
|
||||||
consider=true
|
consider=true
|
||||||
p="$ignore "
|
p="$ignore "
|
||||||
while [ -n "$p" ]; do
|
while [ -n "$p" ]; do
|
||||||
|
@ -221,9 +224,7 @@ update_check() {
|
||||||
case "$found_version" in
|
case "$found_version" in
|
||||||
$i)
|
$i)
|
||||||
consider=false
|
consider=false
|
||||||
if [ -n "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
|
msg_verbose "ignored $found_version due to $i\n"
|
||||||
echo "ignored $found_version due to $i"
|
|
||||||
fi
|
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
if $consider; then
|
if $consider; then
|
||||||
|
|
|
@ -24,11 +24,13 @@ emacs emacs
|
||||||
java-environment openjdk8
|
java-environment openjdk8
|
||||||
java-runtime openjdk8-jre
|
java-runtime openjdk8-jre
|
||||||
libudev eudev-libudev
|
libudev eudev-libudev
|
||||||
|
lightdm-greeter base-chroot-cyclic-solver
|
||||||
nodejs-runtime nodejs
|
nodejs-runtime nodejs
|
||||||
ntp-daemon chrony
|
ntp-daemon chrony
|
||||||
phonon-backend phonon-backend-gstreamer
|
phonon-qt6-backend phonon-backend-vlc
|
||||||
phonon-qt5-backend phonon-qt5-backend-gstreamer
|
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
|
rkt-stage1 rkt-stage1-coreos
|
||||||
smtp-server opensmtpd
|
smtp-server opensmtpd
|
||||||
tex texlive
|
tex texlive
|
||||||
|
@ -37,3 +39,5 @@ xserver-abi-video xorg-server
|
||||||
libGL libglvnd
|
libGL libglvnd
|
||||||
libEGL libglvnd
|
libEGL libglvnd
|
||||||
libGLES libglvnd
|
libGLES libglvnd
|
||||||
|
hunspell-en_GB hunspell-en_GB-all
|
||||||
|
libadwaita libadwaita-without-adwaita
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# voidlinux remote repositories (musl)
|
# 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/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/nonfree
|
||||||
repository=https://repo-default.voidlinux.org/current/musl/debug
|
repository=https://repo-default.voidlinux.org/current/musl/debug
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# voidlinux remote repositories (glibc)
|
# voidlinux remote repositories (glibc)
|
||||||
|
repository=https://repo-default.voidlinux.org/current/bootstrap
|
||||||
repository=https://repo-default.voidlinux.org/current
|
repository=https://repo-default.voidlinux.org/current
|
||||||
repository=https://repo-default.voidlinux.org/current/nonfree
|
repository=https://repo-default.voidlinux.org/current/nonfree
|
||||||
repository=https://repo-default.voidlinux.org/current/debug
|
repository=https://repo-default.voidlinux.org/current/debug
|
||||||
repository=https://repo-default.voidlinux.org/current/bootstrap
|
|
||||||
|
|
||||||
# Cereus Linux remote repositories (glibc)
|
# Cereus Linux remote repositories (glibc)
|
||||||
repository=https://sourceforge.net/projects/cereus-linux/files/repos/cereus-core/x86_64
|
repository=https://sourceforge.net/projects/cereus-linux/files/repos/cereus-core/x86_64
|
||||||
|
|
|
@ -6,20 +6,18 @@ build_style=meta
|
||||||
nostrip=yes
|
nostrip=yes
|
||||||
repository="cereus-extra"
|
repository="cereus-extra"
|
||||||
wrksrc=Graphite-color-schemes-${version}
|
wrksrc=Graphite-color-schemes-${version}
|
||||||
depends="Graphite-color-schemes-light \
|
depends="Graphite-color-schemes-light
|
||||||
Graphite-color-schemes-dark \
|
Graphite-color-schemes-dark
|
||||||
Graphite-color-schemes-black \
|
Graphite-color-schemes-black
|
||||||
Graphite-color-schemes-nord-light \
|
Graphite-color-schemes-nord-light
|
||||||
Graphite-color-schemes-nord-dark"
|
Graphite-color-schemes-nord-dark"
|
||||||
hostmakedepends="git"
|
|
||||||
short_desc="Custom additional color schemes of Graphite theme for KDE Plasma desktop"
|
short_desc="Custom additional color schemes of Graphite theme for KDE Plasma desktop"
|
||||||
maintainer="Kevin F. <https://github.com/KF-Art>"
|
_commit="8b9a6b3d96c1cf3c476a46bd095b43c71aed33e1"
|
||||||
|
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||||
license="GPL-3.0"
|
license="GPL-3.0"
|
||||||
homepage="https://github.com/KF-Art/Graphite-color-schemes"
|
homepage="https://github.com/KF-Art/Graphite-color-schemes"
|
||||||
|
distfiles="${homepage}/archive/${_commit}.tar.gz"
|
||||||
do_fetch() {
|
checksum=21caa00141911d6943692e2d384117973933b3129e37d3473c29158798e3a768
|
||||||
git clone https://github.com/KF-Art/Graphite-color-schemes ${wrksrc}
|
|
||||||
}
|
|
||||||
|
|
||||||
Graphite-color-schemes-light_package() {
|
Graphite-color-schemes-light_package() {
|
||||||
short_desc+=" - light variant"
|
short_desc+=" - light variant"
|
||||||
|
|
|
@ -6,7 +6,7 @@ wrksrc=${pkgname}-main
|
||||||
repository="cereus-extra"
|
repository="cereus-extra"
|
||||||
_cursordir=usr/share/icons
|
_cursordir=usr/share/icons
|
||||||
short_desc="Graphite cursors theme for Linux desktops"
|
short_desc="Graphite cursors theme for Linux desktops"
|
||||||
maintainer="KF-Art <https://github.com/KF-Art>"
|
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||||
license="GPL-3.0-or-later"
|
license="GPL-3.0-or-later"
|
||||||
homepage="https://github.com/vinceliuice/${pkgname}"
|
homepage="https://github.com/vinceliuice/${pkgname}"
|
||||||
distfiles="${homepage}/archive/refs/heads/main.zip"
|
distfiles="${homepage}/archive/refs/heads/main.zip"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Template file for 'Graphite-gtk-theme'
|
# Template file for 'Graphite-gtk-theme'
|
||||||
pkgname=Graphite-gtk-theme
|
pkgname=Graphite-gtk-theme
|
||||||
version=2023.05.17
|
version=2023.12.31
|
||||||
date=${version//./-}
|
date=${version//./-}
|
||||||
revision=1
|
revision=1
|
||||||
repository="cereus-extra"
|
repository="cereus-extra"
|
||||||
|
@ -25,18 +25,18 @@ ${pkgname}-nord-light
|
||||||
${pkgname}-nord-light-compact"
|
${pkgname}-nord-light-compact"
|
||||||
|
|
||||||
short_desc="Material design inspired GTK theme with light and dark variants"
|
short_desc="Material design inspired GTK theme with light and dark variants"
|
||||||
maintainer="Kevin F. <kevinfigueroart@proton.me>"
|
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||||
license="GPL-3.0"
|
license="GPL-3.0"
|
||||||
homepage="https://github.com/vinceliuice/Graphite-gtk-theme"
|
homepage="https://github.com/vinceliuice/Graphite-gtk-theme"
|
||||||
distfiles="${homepage}/archive/refs/tags/${date}.tar.gz"
|
distfiles="${homepage}/archive/refs/tags/${date}.tar.gz"
|
||||||
checksum=aa212d71ba70cfbc3038fc0f850b1265a9d85a3a87ae1a9da024127e25f53903
|
checksum=b21c3803d2c34928b2f05c6bc9e58995545e135de780ffffc143027b33df4bac
|
||||||
|
|
||||||
Graphite-gtk-theme-black_package() {
|
Graphite-gtk-theme-black_package() {
|
||||||
nostrip=yes
|
nostrip=yes
|
||||||
short_desc+=' - black variant'
|
short_desc+=' - black variant'
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir ${theme_dir}
|
vmkdir ${theme_dir}
|
||||||
./install.sh -t all -c dark -s standard -n Graphite-black --tweaks 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}
|
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||||
rm -r ${wrksrc}/themes/*
|
rm -r ${wrksrc}/themes/*
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
@ -47,7 +47,7 @@ Graphite-gtk-theme-black-compact_package() {
|
||||||
short_desc+=' - black-compact variant'
|
short_desc+=' - black-compact variant'
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir ${theme_dir}
|
vmkdir ${theme_dir}
|
||||||
./install.sh -t all -c dark -s compact -n Graphite-black --tweaks 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}
|
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||||
rm -r ${wrksrc}/themes/*
|
rm -r ${wrksrc}/themes/*
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
@ -58,7 +58,7 @@ Graphite-gtk-theme-dark_package() {
|
||||||
short_desc+=' - dark variant'
|
short_desc+=' - dark variant'
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir ${theme_dir}
|
vmkdir ${theme_dir}
|
||||||
./install.sh -t all -c dark -s standard --tweaks rimless -d ${wrksrc}/themes
|
./install.sh -t all -c dark -s standard --tweaks normal rimless -d ${wrksrc}/themes
|
||||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||||
rm -r ${wrksrc}/themes/*
|
rm -r ${wrksrc}/themes/*
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
@ -69,7 +69,7 @@ Graphite-gtk-theme-dark-compact_package() {
|
||||||
short_desc+=' - dark-compact variant'
|
short_desc+=' - dark-compact variant'
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir ${theme_dir}
|
vmkdir ${theme_dir}
|
||||||
./install.sh -t all -c dark -s compact --tweaks rimless -d ${wrksrc}/themes
|
./install.sh -t all -c dark -s compact --tweaks normal rimless -d ${wrksrc}/themes
|
||||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||||
rm -r ${wrksrc}/themes/*
|
rm -r ${wrksrc}/themes/*
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
@ -80,7 +80,7 @@ Graphite-gtk-theme-light_package() {
|
||||||
short_desc+=' - light variant'
|
short_desc+=' - light variant'
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir ${theme_dir}
|
vmkdir ${theme_dir}
|
||||||
./install.sh -t all -c light -s standard --tweaks rimless -d ${wrksrc}/themes
|
./install.sh -t all -c light -s standard --tweaks normal rimless -d ${wrksrc}/themes
|
||||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||||
rm -r ${wrksrc}/themes/*
|
rm -r ${wrksrc}/themes/*
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
@ -91,7 +91,7 @@ Graphite-gtk-theme-light-compact_package() {
|
||||||
short_desc+=' - light-compact variant'
|
short_desc+=' - light-compact variant'
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir ${theme_dir}
|
vmkdir ${theme_dir}
|
||||||
./install.sh -t all -c light -s compact --tweaks rimless -d ${wrksrc}/themes
|
./install.sh -t all -c light -s compact --tweaks normal rimless -d ${wrksrc}/themes
|
||||||
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||||
rm -r ${wrksrc}/themes/*
|
rm -r ${wrksrc}/themes/*
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
@ -102,7 +102,7 @@ Graphite-gtk-theme-nord-dark_package() {
|
||||||
short_desc+=' - nord-dark variant'
|
short_desc+=' - nord-dark variant'
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir ${theme_dir}
|
vmkdir ${theme_dir}
|
||||||
./install.sh -t all -c dark -s standard --tweaks 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}
|
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||||
rm -r ${wrksrc}/themes/*
|
rm -r ${wrksrc}/themes/*
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
@ -113,7 +113,7 @@ Graphite-gtk-theme-nord-light_package() {
|
||||||
short_desc+=' - nord-light variant'
|
short_desc+=' - nord-light variant'
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir ${theme_dir}
|
vmkdir ${theme_dir}
|
||||||
./install.sh -t all -c light -s standard --tweaks 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}
|
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||||
rm -r ${wrksrc}/themes/*
|
rm -r ${wrksrc}/themes/*
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
@ -124,7 +124,7 @@ Graphite-gtk-theme-nord-dark-compact_package() {
|
||||||
short_desc+=' - nord-dark-compact variant'
|
short_desc+=' - nord-dark-compact variant'
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir ${theme_dir}
|
vmkdir ${theme_dir}
|
||||||
./install.sh -t all -c dark -s compact --tweaks 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}
|
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||||
rm -r ${wrksrc}/themes/*
|
rm -r ${wrksrc}/themes/*
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
@ -135,7 +135,7 @@ Graphite-gtk-theme-nord-light-compact_package() {
|
||||||
short_desc+=' - nord-light-compact variant'
|
short_desc+=' - nord-light-compact variant'
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir ${theme_dir}
|
vmkdir ${theme_dir}
|
||||||
./install.sh -t all -c light -s compact --tweaks 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}
|
vcopy ${wrksrc}/themes/Graphite-* ${theme_dir}
|
||||||
rm -r ${wrksrc}/themes/*
|
rm -r ${wrksrc}/themes/*
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
|
|
@ -12,7 +12,7 @@ depends="${pkgname}-black
|
||||||
nostrip=yes
|
nostrip=yes
|
||||||
wrksrc=Graphite-kvantum-colors-${version}
|
wrksrc=Graphite-kvantum-colors-${version}
|
||||||
short_desc="Material design inspired Kvantum theme"
|
short_desc="Material design inspired Kvantum theme"
|
||||||
maintainer="Kevin F. <kevinfigueroart@proton.me>"
|
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||||
license="GPL-3.0"
|
license="GPL-3.0"
|
||||||
homepage="https://github.com/KF-Art/Graphite-kvantum-colors"
|
homepage="https://github.com/KF-Art/Graphite-kvantum-colors"
|
||||||
changelog="${homepage}/releases/tag/${version}"
|
changelog="${homepage}/releases/tag/${version}"
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 6a60aa0e13561acb6fa9cde4109bff1d8dddf61a
|
Subproject commit 63e53829cff756a2d1de84d823d3ede922ee625b
|
|
@ -1,20 +1,21 @@
|
||||||
# Template file for 'Tela-icon-theme'
|
# Template file for 'Tela-icon-theme'
|
||||||
pkgname=Tela-icon-theme
|
pkgname=Tela-icon-theme
|
||||||
version=2023.02.03
|
version=2024.04.19
|
||||||
date=${version//./-}
|
date=${version//./-}
|
||||||
revision=1
|
revision=1
|
||||||
build_style=meta
|
build_style=meta
|
||||||
repository=cereus-extra
|
repository=cereus-extra
|
||||||
depends="${pkgname}-standard \
|
depends="${pkgname}-standard
|
||||||
${pkgname}-black \
|
${pkgname}-black
|
||||||
${pkgname}-blue \
|
${pkgname}-brown
|
||||||
${pkgname}-green \
|
${pkgname}-blue
|
||||||
${pkgname}-grey \
|
${pkgname}-green
|
||||||
${pkgname}-orange \
|
${pkgname}-grey
|
||||||
${pkgname}-pink \
|
${pkgname}-orange
|
||||||
${pkgname}-purple \
|
${pkgname}-pink
|
||||||
${pkgname}-red \
|
${pkgname}-purple
|
||||||
${pkgname}-yellow \
|
${pkgname}-red
|
||||||
|
${pkgname}-yellow
|
||||||
${pkgname}-manjaro
|
${pkgname}-manjaro
|
||||||
${pkgname}-ubuntu
|
${pkgname}-ubuntu
|
||||||
${pkgname}-nord"
|
${pkgname}-nord"
|
||||||
|
@ -24,11 +25,11 @@ icondir=usr/share/icons
|
||||||
wrksrc=${pkgname}-${date}
|
wrksrc=${pkgname}-${date}
|
||||||
hostmakedepends="gtk-update-icon-cache"
|
hostmakedepends="gtk-update-icon-cache"
|
||||||
short_desc="A flat colorful Design icon theme"
|
short_desc="A flat colorful Design icon theme"
|
||||||
maintainer="Kevin F. <https://github.com/KF-Art>"
|
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||||
license="GPL-3.0"
|
license="GPL-3.0"
|
||||||
homepage="https://github.com/vinceliuice/Tela-icon-theme"
|
homepage="https://github.com/vinceliuice/Tela-icon-theme"
|
||||||
distfiles="${homepage}/archive/refs/tags/${date}.tar.gz"
|
distfiles="${homepage}/archive/refs/tags/${date}.tar.gz"
|
||||||
checksum=ab6bf283875a8d777d1a3c8b5969c78a0d329409a4561f4c0f22d36d69171e5d
|
checksum=bff62334a443023a18225b27c045d782822761566bc06e3117a07de54aa11c0c
|
||||||
|
|
||||||
Tela-icon-theme-standard_package() {
|
Tela-icon-theme-standard_package() {
|
||||||
color=standard
|
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'
|
# Template file for 'alttab-git'
|
||||||
pkgname=alttab-git
|
pkgname=alttab-git
|
||||||
version=2023.03.19
|
version=2024.06.09
|
||||||
revision=1
|
revision=1
|
||||||
build_style=gnu-configure
|
build_style=gnu-configure
|
||||||
hostmakedepends="pkg-config git"
|
hostmakedepends="pkg-config"
|
||||||
repository="cereus-extra"
|
repository="cereus-extra"
|
||||||
makedepends="libX11-devel libXft-devel libXmu-devel libXrandr-devel
|
makedepends="libX11-devel libXft-devel libXmu-devel libXrandr-devel
|
||||||
libXrender-devel libpng-devel libXpm-devel uthash automake"
|
libXrender-devel libpng-devel libXpm-devel uthash automake"
|
||||||
checkdepends="procps-ng xvfb-run xeyes xprop"
|
checkdepends="procps-ng xvfb-run xeyes xprop"
|
||||||
short_desc="Task switcher for minimalistic window managers - git branch"
|
_commit="2c4c750e3d1813e7c75dce1058d24fb3d4cc3c80"
|
||||||
maintainer="Kevin F. <kevinfigueroart@proton.me>"
|
short_desc="Task switcher for minimalistic window managers - git development branch"
|
||||||
|
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||||
license="GPL-3.0-or-later"
|
license="GPL-3.0-or-later"
|
||||||
homepage="https://github.com/sagb/alttab"
|
homepage="https://github.com/sagb/alttab"
|
||||||
changelog="https://github.com/sagb/alttab/raw/master/ChangeLog"
|
changelog="https://github.com/sagb/alttab/raw/master/ChangeLog"
|
||||||
conflicts="alttab"
|
|
||||||
replaces="alttab"
|
replaces="alttab"
|
||||||
|
distfiles="${homepage}/archive/${_commit}.tar.gz"
|
||||||
|
checksum=59b643c9c5cedd9cde4a02c1bd1efcd9683bb9b5c871dea4c271664f029b7160
|
||||||
|
|
||||||
make_check=no # needs cnee/xnee which is not packaged
|
make_check=no # needs cnee/xnee which is not packaged
|
||||||
|
|
||||||
|
@ -26,7 +28,3 @@ case "$XBPS_TARGET_MACHINE" in
|
||||||
export LDFLAGS="-lfts"
|
export LDFLAGS="-lfts"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
do_fetch() {
|
|
||||||
git clone ${homepage} ${wrksrc}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# Template file for 'base-cereus'
|
# Template file for 'base-cereus'
|
||||||
pkgname=base-cereus
|
pkgname=base-cereus
|
||||||
version=2023.02.14
|
version=2023.11.12
|
||||||
revision=1
|
revision=1
|
||||||
build_style=meta
|
build_style=meta
|
||||||
repository=cereus-core
|
repository=cereus-core
|
||||||
short_desc="Cereus Linux base system meta package"
|
short_desc="Cereus Linux base system meta package"
|
||||||
maintainer="Kevin F. <kevinfigueroart@proton.me>"
|
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||||
license="Public Domain"
|
license="Public Domain"
|
||||||
conflicts="base-system"
|
conflicts="base-system"
|
||||||
homepage="https://cereuslinuxproject.github.io"
|
homepage="https://cereuslinuxproject.github.io"
|
||||||
|
@ -25,5 +25,6 @@ case "$XBPS_TARGET_MACHINE" in
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
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
|
esac
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# Template file for 'base-cereustrap'
|
# Template file for 'base-cereustrap'
|
||||||
pkgname=base-cereustrap
|
pkgname=base-cereustrap
|
||||||
version=0.11
|
version=0.11
|
||||||
revision=2
|
revision=3
|
||||||
build_style=meta
|
build_style=meta
|
||||||
repository="cereus-core"
|
repository="cereus-core"
|
||||||
short_desc="Cereus Linux base system meta package for containers/chroots"
|
short_desc="Cereus Linux base system meta package for containers/chroots"
|
||||||
maintainer="Kevin F. <https://github.com/KF-Art>"
|
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||||
license="Public Domain"
|
license="Public Domain"
|
||||||
homepage="https://cereuslinuxproject.github.io"
|
homepage="https://cereuslinuxproject.github.io"
|
||||||
|
|
||||||
|
@ -14,7 +14,8 @@ depends="
|
||||||
dash bash grep gzip file sed gawk less util-linux which tar man-pages
|
dash bash grep gzip file sed gawk less util-linux which tar man-pages
|
||||||
mdocml>=1.13.3 shadow e2fsprogs btrfs-progs xfsprogs f2fs-tools dosfstools kbd
|
mdocml>=1.13.3 shadow e2fsprogs btrfs-progs xfsprogs f2fs-tools dosfstools kbd
|
||||||
procps-ng tzdata pciutils iana-etc eudev runit-cereus openssh dhcpcd
|
procps-ng tzdata pciutils iana-etc eudev runit-cereus openssh dhcpcd
|
||||||
iproute2 iputils iw xbps nvi traceroute kmod removed-packages"
|
iproute2 iputils iw xbps nvi traceroute kmod removed-packages cereus-repo-core
|
||||||
|
cereus-repo-extra"
|
||||||
|
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
*-musl) depends+=" musl musl-locales";;
|
*-musl) depends+=" musl musl-locales";;
|
||||||
|
|
|
@ -7,7 +7,7 @@ build_style=meta
|
||||||
conflicts="base-chroot"
|
conflicts="base-chroot"
|
||||||
repository=cereus-core
|
repository=cereus-core
|
||||||
short_desc="Minimal set of packages required for chroot with xbps-src - Cereus patched version"
|
short_desc="Minimal set of packages required for chroot with xbps-src - Cereus patched version"
|
||||||
maintainer="Kevin F. <https://github.com/KF-Art>"
|
maintainer="Kevin Figueroa <kfdevart@disroot.org>"
|
||||||
license="Public Domain"
|
license="Public Domain"
|
||||||
homepage="https://cereuslinuxproject.github.io"
|
homepage="https://cereuslinuxproject.github.io"
|
||||||
|
|
||||||
|
|
|
@ -38,8 +38,8 @@ make_system_dirs() {
|
||||||
|
|
||||||
# Create /var/run and /var/lock symlinks.
|
# Create /var/run and /var/lock symlinks.
|
||||||
for d in run lock; do
|
for d in run lock; do
|
||||||
if [ ! -h "var/$d" -a -d var/${d} ]; then
|
if [ ! -h "var/${d}" -a -d "var/${d}" ]; then
|
||||||
echo "/${d} must not be a directory, exiting!"
|
echo "/var/${d} must not be a directory, exiting!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
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
|
OPTIONS -F -T 0
|
||||||
|
|
||||||
# Below, there should be one TERM entry for each termtype that is colorizable
|
# Below, there should be one TERM entry for each termtype that is colorizable
|
||||||
|
TERM alacritty
|
||||||
TERM putty-256color
|
TERM putty-256color
|
||||||
TERM rxvt-256color
|
TERM rxvt-256color
|
||||||
TERM screen-256color
|
TERM screen-256color
|
||||||
|
|
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
|
[[ $- != *i* ]] && return
|
||||||
|
|
||||||
alias ls='ls --color=auto'
|
alias ls='ls --color=auto'
|
||||||
|
PS1='[\u@\h \W]\$ '
|
||||||
|
|
|
@ -22,6 +22,9 @@ scanner:x:20:
|
||||||
network:x:21:
|
network:x:21:
|
||||||
kvm:x:24:
|
kvm:x:24:
|
||||||
input:x:25:
|
input:x:25:
|
||||||
|
plugdev:x:26:
|
||||||
|
usbmon:x:27:
|
||||||
|
sgx:x:28:
|
||||||
nogroup:x:99:
|
nogroup:x:99:
|
||||||
users:x:100:
|
users:x:100:
|
||||||
xbuilder:x:101:
|
xbuilder:x:101:
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue