Commit graph

132 commits

Author SHA1 Message Date
Đoàn Trần Công Danh
ee2368a0e5 hooks/gen-provides: Correctly uses builtin provides and mapfile
- `read -r -a' somehow doesn't work with newline, but we don't need to
  invoke a builtin for that, we can just simply assign to the variable
- In `mapfile', `-t' is used for removing newline, not for target. The
  targeting array need to be specified last in the array.

Close #53532
2024-12-19 21:28:47 +07:00
John
b9289ef4d6 common/hooks/pre-pkg/06-verify-python-deps: check for noverifypydeps 2024-12-17 09:47:29 -05:00
classabbyamp
ada7d18ca5 common/hooks/pre-pkg/06-verify-python-deps: add hook
compares rdeps and Python module metadata to find missing dependencies
for python packages. this uses virtual packages to map python canonical
package names to void packages.
2024-12-14 07:44:02 -05:00
classabbyamp
232221efaf common/hooks: use file for managing provides
python packages use this to automatically generate provides for each
module installed by the package.
2024-12-14 07:44:02 -05:00
classabbyamp
17efb6163a common: move handling of rdeps, shlib-provides, shlib-requires files
to XBPS_STATEDIR. There's no need for them to pollute PKGDESTDIR. Keep
INSTALL.msg/REMOVE.msg handling as-is for now because it's a little more
complex. Keep the pkglints for these files because xbps still ignores
them.
2024-12-10 08:31:36 -05:00
classabbyamp
afea603940 common/hooks/pre-pkg/04-generate-runtime-deps: support SONAME as path
neovim looks for a SONAME that is a whole path

find: warning: ‘-name’ matches against basenames only, but the given pattern
  contains a directory separator (‘/’), thus the expression will evaluate to
  false all the time.  Did you mean ‘-wholename’?
    SONAME: /usr/lib/lua/5.1/lpeg.so <-> lua51-lpeg>=1.1.0_2
2024-05-21 18:23:18 -04:00
classabbyamp
58705ffcbf common: support disabling python shebang rewriting
useful if there are special python-containing shebangs that should not
be rewritten, for example with Ghidra's embedded jython.
2024-04-23 23:51:01 -04:00
Andrew J. Hesford
de0e1f9846 common/hooks/pre-pkg/99-pkglint.sh: allow C.utf8 locale in glibc package 2024-03-13 06:46:09 -04:00
classabbyamp
5e9fb8708c common/hooks/pre-pkg/04-generate-runtime-deps: partially revert sorting
only sort shlib-deps, as those are automatically found.
regular dependencies should not be sorted as that can mess with the
order for things like virtual packages or alternatives groups, notably
for gawk (needs to be before anything that depends on the awk virtual
package) and dash (needs to be before bash to select the correct sh
alternatives group).

partial revert of 5ec2556004
2024-03-12 16:03:59 -04:00
Duncaen
773e2e375f
xbps-src: split 32bit hook into two steps
This should fix issues where -32bit packages are missing the runtime
dependencies, since the common/hooks/post-install/98-shlib-provides.sh
hook depends on the 32bit files being copied and the runtime and the
rdep part of the common/hooks/post-install/80-prepare-32bit.sh depends
on the common/hooks/post-install/98-shlib-provides.sh.
2023-09-07 23:15:43 +02:00
Duncaen
65c9ade5e4
xbps-src: consistently use read -r when reading file paths 2023-08-31 14:18:14 +02:00
Đoàn Trần Công Danh
9ee583c661 hooks/gen-rt-deps: Look for rt-deps by subpkg first, common/shlibs later 2023-08-30 13:24:12 +07:00
Đoàn Trần Công Danh
337d270447 hooks: move prepare-32bit and shlib-provides to post-install
In a later change, we will generate shlib-depends cross subpkgs during
pre-pkg stage.  Thus we need shlib-provides information of all subpkgs
ready before pre-pkg is run.

Those information can only be read in post-install stage at the
eariliest.

Let's move the shlib-provides to post-install.  This hook requires
prepare-32bit, so, let's move that hook, too.
2023-08-30 13:24:12 +07:00
Đoàn Trần Công Danh
2111dfa815 gen-runtime-deps: verify rdeps for shlib_requires too
While we're at it, mark one more variables as local
2022-11-30 23:22:16 +07:00
Andrew J. Hesford
7436cebdd5 pre-pkg/04-generate-runtime-deps.sh: avoid conflict with broken template var
Using a non-local `broken` variable in the hook

    common/hooks/prepkg/04-generate-runtime-deps.sh

will cause a spurious shlib error when building templates marked broken
are built with `xbps-src -b`. Declaring the variable local is
sufficient, but let's make the name a bit more distinctive anyway.
2022-11-30 11:15:57 -05:00
Michal Vasilek
0eddd66177 hooks/99-pkglint.sh: error when pkg ships gschemas.compiled
gschemas.compiled is generated by glib-compile-schemas and should not be
overriden by a package
2022-11-22 22:51:04 +01:00
Đoàn Trần Công Danh
22054be835 pkglint: forbid /usr/lib/libexec 2022-11-22 09:05:10 +07:00
Duncaen
02fb37373b
hooks/99-pkglint.sh: error out if /usr/usr path is used 2022-11-01 15:40:29 +01:00
Duncaen
ccd0dc07e0 hooks/99-pkglint.sh: error if /usr/share/man/man/ is used 2022-09-10 21:58:15 +00:00
Đoàn Trần Công Danh
c22acb3072 99-pkglint: forbid /usr/etc
data files should go to /usr/share, config files should go to /etc
2022-09-06 17:43:20 +07:00
classabbyamp
fb9aef712b common/hooks/pre-pkg/04-generate-runtime-deps.sh: fix sorequires 2022-05-13 22:16:58 +02:00
classabbyamp
5ec2556004 common/hooks/pre-pkg/04-generate-runtime-deps.sh: sort deps for reproducibility
fixes #36641
2022-05-13 21:21:23 +02:00
Piotr Wójcik
1b3ee76ea1 hooks/99-pkglint.sh: make missing shlib entry not a warning 2022-04-22 21:54:58 +02:00
Quentin Rameau
7a0bd8af2d common: fix tooling section in comments 2021-10-24 21:33:13 +02:00
Andrew J. Hesford
9b61ec59f9 python3: update to 3.10.0. 2021-10-09 08:00:19 -04:00
Érico Nogueira
6303c2e6ce common/hooks: speed up generate-runtime-deps.
Instead of using file(1) to check for ELF files, just read bytes
directly from the file and check if they are the ELF magic bytes.

Should probably be factored out into a common function that can be used
in other places, if necessary.

Also use awk instead of "grep|awk" for some minor speedup.
2021-07-22 11:56:26 -03:00
Piotr Wójcik
3680c424db hooks/prepare-32bit: create packages from all *-devel
All *-devel dependencies of 32bit packages are replaced
with *-devel-32bit. Missing dependencies made some
uninstallable.
2021-07-10 20:45:50 +02:00
Piotr Wójcik
7845fa8c53 hooks/prepare-32bit: correct devel packages matching
fixes cases like 'ruby-devel-doc'
2021-07-10 20:45:50 +02:00
q66
1ea593eeda base-files: fix conf files replacing each other wrong 2021-02-28 02:05:33 +01:00
q66
5949392125 base-files: make some sysctls like kexec setting user-alterable
While at it, relax the pkglint for base-files only.
2021-02-28 01:44:30 +01:00
Leah Neukirchen
6ecbbf767a hooks/pre-pkg/03-rewrite-python-shebang.sh: use grep -r instead of find.
This saves us one sed execution per file in the destdir, resulting
in a major speedup.

Grep will only consider text files and only look at the first line.
2021-01-30 15:20:43 +01:00
q66
cb804fbf85 xbps-src: remove noarch 2021-01-20 13:09:59 +01:00
Đoàn Trần Công Danh
04825ced01 hooks: abort if l10n files found in /usr/lib 2021-01-09 13:11:27 +07:00
Đoàn Trần Công Danh
bd62ff8580 99-pkglint-subpkgs: replace grep with case..esac
On experience with 100 subpkgs, this change reduces execution time from
284ms to 4ms

Closes: #27137 [via git-merge-pr]
2020-12-29 22:46:59 -08:00
Đoàn Trần Công Danh
3996821f07 99-pkglint-subpkgs: correct for multiline subpackages
As discussing in [1], on template with "subpackages" as multilines will
report false positive on some packages will never be built.

There're multiple problems here:

- expanded "subpackages" will have an empty line if it has a newline
  inside template
- "sed" expression couldn't work with multilines "subpackages"

Let's not quote "$subpkgs" and "$subpackages" in "printf" to let the
shell do expansion and trim the empty lines for us. And rewrite the
"sed" expression to work with multilines "subpackages"

[1]: https://github.com/void-linux/void-packages/pull/26939#issuecomment-739098547
2020-12-14 09:35:02 +07:00
Andrew J. Hesford
4ef9cff1d3 xbps-src: consume all shebang arguments during rewrite 2020-06-18 09:38:18 +02:00
Andrew J. Hesford
b56a3b0650 xbps-src: improve python shebang rewrites 2020-06-10 19:11:58 +02:00
Đoàn Trần Công Danh
d9c22b4d0a pre-pkg: use existing info to check empty package 2020-05-31 02:11:11 +00:00
Đoàn Trần Công Danh
91c0eaa5a7 xbps-src: pre-pkg: allow only white-listed directories. 2020-05-31 02:11:11 +00:00
Andrew J. Hesford
596250e4ea xbps-src: remove default python_version
Closes: #21209 [via git-merge-pr]
2020-04-21 18:45:25 -04:00
Đoàn Trần Công Danh
7c8ab37d36 pkglint: forbid files generated by mimedb trigger 2020-04-11 21:19:42 -04:00
Đoàn Trần Công Danh
f130fb058a hook: python-shebang: check for shebang in the first line only
- Grepping whole files is inefficient
- git-instaweb (in git package) has the code to generate python file in
  a here doc in the middle of its code, old hook generates false
  positive with this package
2019-12-28 18:02:39 +01:00
Juan RP
3a08e3d1b6
xbps-src: new pre-pkg hook that prints collected rdeps. 2019-12-15 18:55:58 +01:00
Cameron Nemo
091ab0b612 base-files: ship bin and lib symlinks 2019-12-14 14:01:42 +01:00
Juan RP
e4984d01ea xbps-src: multiple performance improvements
- use xbps-checkvers(1) to resolve dependencies.
- all dependencies are installed at once for the host and target.
- the show-build-deps target is now much faster.
- the update-bulk/show-repo-updates targets are now much faster.
- the update-sys/show-sys-updates targets are now much faster.
- the bootstrap target now works on musl hosts.
- simplified some loops.
- use cut(1) rather than awk(1) where applicable.
- multiple random changes to improve performance.

Based on work started by @Duncaen on #12433

Close #12433
Close #11282
2019-07-10 20:28:46 +02:00
Jürgen Buchmüller
17ba00b095 Revert "xbps-src: multiple performance improvements."
This reverts commit 2a4e178e35.
2019-07-05 12:08:45 +02:00
Juan RP
2a4e178e35 xbps-src: multiple performance improvements.
- use xbps-checkvers(1) to resolve dependencies.
- all dependencies are installed at once for the host and target.
- the `show-build-deps` target is now much faster.
- the `update-bulk/show-repo-updates` targets are now much faster.
- the `update-sys/show-sys-updates` targets are now much faster.
- the `bootstrap` target now works on musl hosts.
- simplified some loops.
- use cut(1) rather than awk(1) where applicable.
- multiple random changes to improve performance.

Based on work started by @Duncaen on https://github.com/void-linux/void-packages/pull/12433

Close https://github.com/void-linux/void-packages/pull/12433
Close https://github.com/void-linux/void-packages/pull/11282
2019-07-05 08:53:51 +02:00
Cameron Nemo
206a4a73f5 99-pkglint.sh: prevent installing files in /destdir
Signed-off-by: Cameron Nemo <cnemo@tutanota.com>
2019-06-23 17:17:22 +02:00
Juan RP
7b7d7c13a1
xbps-src: exit properly if mktemp(1) fails, not from its subshell.
Thanks @huglovefan
2019-06-17 17:38:07 +02:00
Juan RP
f59b295903 xbps-src: cleaned up usage of mktemp(1).
This one was on my TODO for a long while... fixes unportable
arguments (checked with the NetBSD's manual page).
2019-06-17 15:23:20 +02:00