Merge upstream changes from void-packages

This commit is contained in:
KF-Art 2023-06-01 11:44:58 -04:00
parent 47e890b4b6
commit 0003842ccf
64 changed files with 1041 additions and 718 deletions

View file

@ -56,7 +56,7 @@ This automatically sets up the `upstream` remote, so `git pull --rebase upstream
Using the GitHub web editor for making changes is strongly discouraged, because you will need to clone the repo anyways to edit and test your changes. Using the GitHub web editor for making changes is strongly discouraged, because you will need to clone the repo anyways to edit and test your changes.
using the the `master` branch of your fork for contributing is also strongly discouraged. Using the `master` branch of your fork for contributing is also strongly discouraged.
It can cause many issues with updating your pull request (also called a PR), and having multiple PRs open at once. It can cause many issues with updating your pull request (also called a PR), and having multiple PRs open at once.
To create a new branch: To create a new branch:

View file

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

View file

@ -304,7 +304,7 @@ The following functions are defined by `xbps-src` and can be used on any templat
`$DESTDIR`. The optional 2nd argument can be used to change the `$DESTDIR`. The optional 2nd argument can be used to change the
`file name`. See [license](#var_license) for when to use it. `file name`. See [license](#var_license) for when to use it.
- *vsv()* `vsv <service>` - *vsv()* `vsv <service> [<facility>]`
Installs `service` from `${FILESDIR}` to /etc/sv. The service must Installs `service` from `${FILESDIR}` to /etc/sv. The service must
be a directory containing at least a run script. Note the `supervise` be a directory containing at least a run script. Note the `supervise`
@ -312,6 +312,11 @@ The following functions are defined by `xbps-src` and can be used on any templat
is automatically made executable by this function. is automatically made executable by this function.
For further information on how to create a new service directory see For further information on how to create a new service directory see
[The corresponding section the FAQ](http://smarden.org/runit/faq.html#create). [The corresponding section the FAQ](http://smarden.org/runit/faq.html#create).
A `log` sub-service will be automatically created if one does not exist in
`${FILESDIR}/$service`, containing `exec vlogger -t $service -p $facility`.
if a second argument is not specified, the `daemon` facility is used.
For more information about `vlogger` and available values for the facility,
see [vlogger(1)](https://man.voidlinux.org/vlogger.1).
- *vsed()* `vsed -i <file> -e <regex>` - *vsed()* `vsed -i <file> -e <regex>`
@ -417,7 +422,7 @@ Multiple licenses should be separated by commas, Example: `GPL-3.0-or-later, cus
and thus have and require no license should use and thus have and require no license should use
`Public Domain`. `Public Domain`.
Note: `MIT`, `BSD`, `ISC` and custom licenses Note: `AGPL`, `MIT`, `BSD`, `ISC`, `X11`, and custom licenses
require the license file to be supplied with the binary package. require the license file to be supplied with the binary package.
- `maintainer` A string in the form of `name <user@domain>`. The email for this field - `maintainer` A string in the form of `name <user@domain>`. The email for this field
@ -906,8 +911,8 @@ should be passed in via `configure_args`.
- `fetch` For packages that only fetch files and are installed as is via `do_install()`. - `fetch` For packages that only fetch files and are installed as is via `do_install()`.
- `gnu-configure` For packages that use GNU configure scripts, additional configuration - `gnu-configure` For packages that use GNU autotools-compatible configure scripts,
arguments can be passed in via `configure_args`. additional configuration arguments can be passed in via `configure_args`.
- `gnu-makefile` For packages that use GNU make, build arguments can be passed in via - `gnu-makefile` For packages that use GNU make, build arguments can be passed in via
`make_build_args` and install arguments via `make_install_args`. The build `make_build_args` and install arguments via `make_install_args`. The build

View file

@ -3,7 +3,7 @@
# #
# This build-helper is used for packages that make use of # This build-helper is used for packages that make use of
# the GObject introspection middleware layer. # the GObject introspection middleware layer.
# #
# Check if the 'gir' build_option is set or if there is no # Check if the 'gir' build_option is set or if there is no
# 'gir' build_option. # 'gir' build_option.
@ -13,12 +13,12 @@ if [ "$build_option_gir" ] || [[ $build_options != *"gir"* ]]; then
# and its wrappers. # and its wrappers.
hostmakedepends+=" gobject-introspection" hostmakedepends+=" gobject-introspection"
fi fi
if [ "$CROSS_BUILD" ]; then if [ "$CROSS_BUILD" ]; then
# Required for running binaries produced from g-ir-compiler # Required for running binaries produced from g-ir-compiler
# via g-ir-scanner-qemuwrapper # via g-ir-scanner-qemuwrapper
hostmakedepends+=" qemu-user-static" hostmakedepends+=" qemu-user-static"
# Required for running the g-ir-scanner-lddwrapper # Required for running the g-ir-scanner-lddwrapper
hostmakedepends+=" prelink-cross" hostmakedepends+=" prelink-cross"

View file

@ -12,7 +12,7 @@ if [ "$CROSS_BUILD" ]; then
_XBPS_CROSS_RUST_TARGET_ENV="${_XBPS_CROSS_RUST_TARGET_ENV//-/_}" _XBPS_CROSS_RUST_TARGET_ENV="${_XBPS_CROSS_RUST_TARGET_ENV//-/_}"
export CARGO_TARGET_${_XBPS_CROSS_RUST_TARGET_ENV}_LINKER="$CC" export CARGO_TARGET_${_XBPS_CROSS_RUST_TARGET_ENV}_LINKER="$CC"
unset _XBPS_CROSS_RUST_TARGET_ENV unset _XBPS_CROSS_RUST_TARGET_ENV
# Define equivalent of TOML config in environment # Define equivalent of TOML config in environment
# [build] # [build]
# target = ${RUST_TARGET} # target = ${RUST_TARGET}
@ -25,7 +25,7 @@ if [ "$CROSS_BUILD" ]; then
export HOST_CFLAGS="-O2" export HOST_CFLAGS="-O2"
# Crates that use bindgen via build.rs are not cross-aware unless these are set # Crates that use bindgen via build.rs are not cross-aware unless these are set
export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=${XBPS_CROSS_BASE} -I${XBPS_CROSS_BASE}/usr/include" export BINDGEN_EXTRA_CLANG_ARGS+=" --sysroot=${XBPS_CROSS_BASE} -I${XBPS_CROSS_BASE}/usr/include"
else else
unset CARGO_BUILD_TARGET unset CARGO_BUILD_TARGET
fi fi
@ -39,7 +39,7 @@ export GETTEXT_LIB_DIR="${XBPS_CROSS_BASE}/usr/lib/gettext"
export GETTEXT_INCLUDE_DIR="${XBPS_CROSS_BASE}/usr/include" export GETTEXT_INCLUDE_DIR="${XBPS_CROSS_BASE}/usr/include"
# libssh2-sys # libssh2-sys
export LIBSSH2_SYS_USE_PKG_CONFIG=1 export LIBSSH2_SYS_USE_PKG_CONFIG=1
# sodium-sys # sodium-sys
export SODIUM_LIB_DIR="${XBPS_CROSS_BASE}/usr/include" export SODIUM_LIB_DIR="${XBPS_CROSS_BASE}/usr/include"
@ -51,3 +51,9 @@ export OPENSSL_NO_VENDOR=1
# pcre2-sys, only necessary for musl targets # pcre2-sys, only necessary for musl targets
export PCRE2_SYS_STATIC=0 export PCRE2_SYS_STATIC=0
# zstd-sys
export ZSTD_SYS_USE_PKG_CONFIG=1
# onig-sys
export RUSTONIG_SYSTEM_LIBONIG=1

View file

@ -5,14 +5,14 @@
do_build() { do_build() {
: ${make_cmd:=cargo auditable} : ${make_cmd:=cargo auditable}
${make_cmd} build --release --target ${RUST_TARGET} ${configure_args} ${make_cmd} build --release --locked --target ${RUST_TARGET} ${configure_args}
} }
do_check() { do_check() {
: ${make_cmd:=cargo auditable} : ${make_cmd:=cargo auditable}
${make_check_pre} ${make_cmd} test --release --target ${RUST_TARGET} ${configure_args} \ ${make_check_pre} ${make_cmd} test --release --locked --target ${RUST_TARGET} \
${make_check_args} ${configure_args} ${make_check_args}
} }
do_install() { do_install() {

View file

@ -55,6 +55,7 @@ _EOF
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=lib${XBPS_TARGET_WORDSIZE}"
cmake_args+=" -DCMAKE_INSTALL_SYSCONFDIR=/etc" cmake_args+=" -DCMAKE_INSTALL_SYSCONFDIR=/etc"
cmake_args+=" -DFETCHCONTENT_FULLY_DISCONNECTED=ON"
if [ "$CROSS_BUILD" ]; then if [ "$CROSS_BUILD" ]; then
cmake_args+=" -DQT_HOST_PATH=/usr" cmake_args+=" -DQT_HOST_PATH=/usr"

View file

@ -15,7 +15,7 @@ do_build() {
} }
do_check() { do_check() {
if [ -z "$make_cmd" ] && [ -z "$make_check_target" ]; then if [ -z "$make_cmd" ] && [ -z "$make_check_target" ]; then
if make -q check 2>/dev/null; then if make -q check 2>/dev/null; then
: :
else else

View file

@ -5,7 +5,7 @@ do_install() {
: ${gem_cmd:=gem} : ${gem_cmd:=gem}
local _GEMDIR _INSTDIR local _GEMDIR _INSTDIR
_GEMDIR=$($gem_cmd env gemdir) _GEMDIR=$($gem_cmd env gemdir)
_INSTDIR=${DESTDIR}/${_GEMDIR}/gems/${pkgname#ruby-}-${version} _INSTDIR=${DESTDIR}/${_GEMDIR}/gems/${pkgname#ruby-}-${version}

View file

@ -173,7 +173,7 @@ do_install() {
if [ "$CROSS_BUILD" ]; then if [ "$CROSS_BUILD" ]; then
local _TARGET_PLATFORM _TARGET_EXT_DIR local _TARGET_PLATFORM _TARGET_EXT_DIR
# Get arch of the target and host platform by reading the rbconfig.rb # Get arch of the target and host platform by reading the rbconfig.rb
# of the cross ruby # of the cross ruby
_TARGET_PLATFORM="$(ruby -r \ _TARGET_PLATFORM="$(ruby -r \

View file

@ -16,7 +16,7 @@ do_build() {
} }
do_check() { do_check() {
if [ -z "$make_cmd" ] && [ -z "$make_check_target" ]; then if [ -z "$make_cmd" ] && [ -z "$make_check_target" ]; then
if make -q check 2>/dev/null; then if make -q check 2>/dev/null; then
: :
else else

View file

@ -18,7 +18,7 @@ do_build() {
} }
do_check() { do_check() {
if [ -z "$make_cmd" ] && [ -z "$make_check_target" ]; then if [ -z "$make_cmd" ] && [ -z "$make_check_target" ]; then
if make -q check 2>/dev/null; then if make -q check 2>/dev/null; then
: :
else else

View file

@ -40,7 +40,7 @@ do_build() {
# default behavior. # default behavior.
go_mod_mode= go_mod_mode=
fi fi
go install -p "$XBPS_MAKEJOBS" -mod="${go_mod_mode}" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package} go install -p "$XBPS_MAKEJOBS" -mod="${go_mod_mode}" -modcacherw -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
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 get -p "$XBPS_MAKEJOBS" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}

View file

@ -9,24 +9,27 @@ do_build() {
} }
do_check() { do_check() {
local testjobs if ! python3 -c 'import pytest' >/dev/null 2>&1; then
if python3 -c 'import pytest' >/dev/null 2>&1; then msg_warn "Testing of python3-pep517 templates requires pytest\n"
if python3 -c 'import xdist' >/dev/null 2>&1; then
testjobs="-n $XBPS_MAKEJOBS"
fi
${make_check_pre} python3 -m pytest ${testjobs} ${make_check_args} ${make_check_target}
else
msg_warn "Unable to determine tests for PEP517 Python templates\n"
return 0 return 0
fi fi
local testjobs
if python3 -c 'import xdist' >/dev/null 2>&1; then
testjobs="-n $XBPS_MAKEJOBS"
fi
local testdir="${wrksrc}/tmp/$(date +%s)"
python3 -m installer --destdir "${testdir}" \
${make_install_args} ${make_install_target:-dist/*.whl}
PATH="${testdir}/usr/bin:${PATH}" PYTHONPATH="${testdir}/${py3_sitelib}" \
${make_check_pre} pytest3 ${testjobs} ${make_check_args} ${make_check_target}
} }
do_install() { do_install() {
if [ -z "${make_install_target}" ]; then : ${make_install_args:=--no-compile-bytecode}
# Default wheel name normalizes hyphens to underscores : ${make_install_target:="dist/*.whl"}
local wheelbase="${pkgname#python3-}"
make_install_target="dist/${wheelbase//-/_}-${version}-*-*-*.whl"
fi
python3 -m installer --destdir ${DESTDIR} \ python3 -m installer --destdir ${DESTDIR} \
${make_install_args} ${make_install_target} ${make_install_args} ${make_install_target}

View file

@ -4,13 +4,18 @@
do_configure() { do_configure() {
local qmake local qmake
local qmake_args local qmake_args
local qt
if [ -x "/usr/lib/qt5/bin/qmake" ]; then if [ -x "/usr/lib/qt5/bin/qmake" ]; then
qmake="/usr/lib/qt5/bin/qmake" qmake="/usr/lib/qt5/bin/qmake"
qt="qt5"
elif [ -x "/usr/lib/qt6/bin/qmake" ]; then
qmake="/usr/lib/qt6/bin/qmake"
qt="qt6"
fi fi
if [ -z "${qmake}" ]; then 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
if [ "$CROSS_BUILD" ] && [ "$qmake" == "/usr/lib/qt5/bin/qmake" ]; then if [ "$CROSS_BUILD" ]; then
case $XBPS_TARGET_MACHINE in case $XBPS_TARGET_MACHINE in
i686*) _qt_arch=i386;; i686*) _qt_arch=i386;;
x86_64*) _qt_arch=x86_64;; x86_64*) _qt_arch=x86_64;;
@ -26,13 +31,13 @@ MAKEFILE_GENERATOR = UNIX
CONFIG += incremental no_qt_rpath CONFIG += incremental no_qt_rpath
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(/usr/lib/qt5/mkspecs/common/linux.conf) include(/usr/lib/${qt}/mkspecs/common/linux.conf)
include(/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf) include(/usr/lib/${qt}/mkspecs/common/gcc-base-unix.conf)
include(/usr/lib/qt5/mkspecs/common/g++-unix.conf) include(/usr/lib/${qt}/mkspecs/common/g++-unix.conf)
QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qconfig.pri QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/qconfig.pri
QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qmodule.pri QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/qmodule.pri
QMAKEMODULES = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/modules QMAKEMODULES = ${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/modules
QMAKE_CC = ${CC} QMAKE_CC = ${CC}
QMAKE_CXX = ${CXX} QMAKE_CXX = ${CXX}
QMAKE_LINK = ${CXX} QMAKE_LINK = ${CXX}
@ -49,7 +54,7 @@ QMAKE_CXXFLAGS = ${CXXFLAGS}
QMAKE_LFLAGS = ${LDFLAGS} QMAKE_LFLAGS = ${LDFLAGS}
load(qt_config) load(qt_config)
_EOF _EOF
echo "#include \"${XBPS_CROSS_BASE}/usr/lib/qt5/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\"" > "${wrksrc}/.target-spec/linux-g++/qplatformdefs.h"
mkdir -p "${wrksrc}/.host-spec/linux-g++" mkdir -p "${wrksrc}/.host-spec/linux-g++"
cat > "${wrksrc}/.host-spec/linux-g++/qmake.conf" <<_EOF cat > "${wrksrc}/.host-spec/linux-g++/qmake.conf" <<_EOF
@ -57,12 +62,12 @@ MAKEFILE_GENERATOR = UNIX
CONFIG += incremental no_qt_rpath CONFIG += incremental no_qt_rpath
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(/usr/lib/qt5/mkspecs/common/linux.conf) include(/usr/lib/${qt}/mkspecs/common/linux.conf)
include(/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf) include(/usr/lib/${qt}/mkspecs/common/gcc-base-unix.conf)
include(/usr/lib/qt5/mkspecs/common/g++-unix.conf) include(/usr/lib/${qt}/mkspecs/common/g++-unix.conf)
QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qconfig.pri QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/qconfig.pri
QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qmodule.pri QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/${qt}/mkspecs/qmodule.pri
QMAKE_CC = ${CC_host} QMAKE_CC = ${CC_host}
QMAKE_CXX = ${CXX_host} QMAKE_CXX = ${CXX_host}
QMAKE_LINK = ${CXX_host} QMAKE_LINK = ${CXX_host}
@ -79,29 +84,30 @@ QMAKE_CXXFLAGS = ${CXXFLAGS_host}
QMAKE_LFLAGS = ${LDFLAGS_host} QMAKE_LFLAGS = ${LDFLAGS_host}
load(qt_config) load(qt_config)
_EOF _EOF
echo '#include "/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h"' > "${wrksrc}/.host-spec/linux-g++/qplatformdefs.h" echo '#include "/usr/lib/${qt}/mkspecs/linux-g++/qplatformdefs.h"' > "${wrksrc}/.host-spec/linux-g++/qplatformdefs.h"
cat > "${wrksrc}/qt.conf" <<_EOF cat > "${wrksrc}/qt.conf" <<_EOF
[Paths] [Paths]
Sysroot=${XBPS_CROSS_BASE} Sysroot=${XBPS_CROSS_BASE}
Prefix=/usr Prefix=/usr
ArchData=${XBPS_CROSS_BASE}/usr/lib/qt5 ArchData=${XBPS_CROSS_BASE}/usr/lib/${qt}
Data=${XBPS_CROSS_BASE}/usr/share/qt5 Data=${XBPS_CROSS_BASE}/usr/share/${qt}
Documentation=${XBPS_CROSS_BASE}/usr/share/doc/qt5 Documentation=${XBPS_CROSS_BASE}/usr/share/doc/${qt}
Headers=${XBPS_CROSS_BASE}/usr/include/qt5 Headers=${XBPS_CROSS_BASE}/usr/include/${qt}
Libraries=${XBPS_CROSS_BASE}/usr/lib Libraries=${XBPS_CROSS_BASE}/usr/lib
LibraryExecutables=/usr/lib/qt5/libexec LibraryExecutables=/usr/lib/${qt}/libexec
Binaries=/usr/lib/qt5/bin Binaries=/usr/lib/${qt}/bin
Tests=${XBPS_CROSS_BASE}/usr/tests Tests=${XBPS_CROSS_BASE}/usr/tests
Plugins=/usr/lib/qt5/plugins Plugins=/usr/lib/${qt}/plugins
Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/imports Imports=${XBPS_CROSS_BASE}/usr/lib/${qt}/imports
Qml2Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/qml Qml2Imports=${XBPS_CROSS_BASE}/usr/lib/${qt}/qml
Translations=${XBPS_CROSS_BASE}/usr/share/qt5/translations Translations=${XBPS_CROSS_BASE}/usr/share/${qt}/translations
Settings=${XBPS_CROSS_BASE}/etc/xdg Settings=${XBPS_CROSS_BASE}/etc/xdg
Examples=${XBPS_CROSS_BASE}/usr/share/qt5/examples Examples=${XBPS_CROSS_BASE}/usr/share/${qt}/examples
HostPrefix=/usr HostPrefix=/usr
HostData=/usr/lib/qt5 HostData=/usr/lib/${qt}
HostBinaries=/usr/lib/qt5/bin HostBinaries=/usr/lib/${qt}/bin
HostLibraries=/usr/lib HostLibraries=/usr/lib
HostLibraryExecutables=/usr/lib/${qt}/libexec
Spec=${wrksrc}/.host-spec/linux-g++ Spec=${wrksrc}/.host-spec/linux-g++
TargetSpec=${wrksrc}/.target-spec/linux-g++ TargetSpec=${wrksrc}/.target-spec/linux-g++
_EOF _EOF

View file

@ -7,7 +7,7 @@
# build_style=slashpackage # build_style=slashpackage
# build_wrksrc=${pkgname}-${version} # build_wrksrc=${pkgname}-${version}
# distfiles=<download link> # distfiles=<download link>
# #
# example (daemontools) # example (daemontools)
# #
# Template file for 'daemontools' # Template file for 'daemontools'

View file

@ -53,6 +53,7 @@ _void_cross_build_binutils() {
--sbindir=/usr/bin \ --sbindir=/usr/bin \
--libdir=/usr/lib \ --libdir=/usr/lib \
--libexecdir=/usr/lib \ --libexecdir=/usr/lib \
--sysconfdir=/etc \
--target=${tgt} \ --target=${tgt} \
--with-sysroot=/usr/${tgt} \ --with-sysroot=/usr/${tgt} \
--disable-nls \ --disable-nls \
@ -60,7 +61,9 @@ _void_cross_build_binutils() {
--disable-multilib \ --disable-multilib \
--disable-werror \ --disable-werror \
--disable-gold \ --disable-gold \
--disable-gprofng \
--enable-relro \ --enable-relro \
--enable-new-dtags \
--enable-plugins \ --enable-plugins \
--enable-64-bit-bfd \ --enable-64-bit-bfd \
--enable-deterministic-archives \ --enable-deterministic-archives \
@ -132,6 +135,7 @@ _void_cross_build_bootstrap_gcc() {
--disable-libssp \ --disable-libssp \
--disable-libitm \ --disable-libitm \
--disable-libatomic \ --disable-libatomic \
--disable-gcov \
--disable-threads \ --disable-threads \
--disable-sjlj-exceptions \ --disable-sjlj-exceptions \
--enable-languages=c \ --enable-languages=c \
@ -315,6 +319,14 @@ _void_cross_build_musl() {
make ${makejobs} make ${makejobs}
make DESTDIR=${wrksrc}/build_root/usr/${tgt} install make DESTDIR=${wrksrc}/build_root/usr/${tgt} install
CFLAGS="-pipe -fPIC ${cross_musl_cflags}" \
CPPFLAGS="${cross_musl_cflags}" LDFLAGS="${cross_musl_ldflags}" \
${tgt}-gcc -pipe -fPIC ${cross_musl_cflags} ${cross_musl_ldflags} -fpie \
-c ${XBPS_SRCPKGDIR}/musl/files/__stack_chk_fail_local.c \
-o __stack_chk_fail_local.o
${tgt}-ar r libssp_nonshared.a __stack_chk_fail_local.o
cp libssp_nonshared.a ${wrksrc}/build_root/usr/${tgt}/usr/lib
touch ${wrksrc}/.musl_build_done touch ${wrksrc}/.musl_build_done
} }
@ -381,6 +393,7 @@ _void_cross_build_gcc() {
extra_args+=" --disable-gnu-unique-object" extra_args+=" --disable-gnu-unique-object"
extra_args+=" libat_cv_have_ifunc=no" extra_args+=" libat_cv_have_ifunc=no"
else else
extra_args+=" --enable-clocale=gnu"
extra_args+=" --enable-gnu-unique-object" extra_args+=" --enable-gnu-unique-object"
fi fi
@ -412,6 +425,7 @@ _void_cross_build_gcc() {
--disable-libvtv \ --disable-libvtv \
--disable-libsanitizer \ --disable-libsanitizer \
--disable-libstdcxx-pch \ --disable-libstdcxx-pch \
--disable-libssp \
--enable-shared \ --enable-shared \
--enable-threads=posix \ --enable-threads=posix \
--enable-__cxa_atexit \ --enable-__cxa_atexit \
@ -420,7 +434,6 @@ _void_cross_build_gcc() {
--enable-lto \ --enable-lto \
--enable-default-pie \ --enable-default-pie \
--enable-default-ssp \ --enable-default-ssp \
--enable-libssp \
--with-gnu-ld \ --with-gnu-ld \
--with-gnu-as \ --with-gnu-as \
--with-linker-hash-style=gnu \ --with-linker-hash-style=gnu \
@ -460,6 +473,14 @@ do_build() {
local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver local binutils_ver linux_ver gcc_ver libc_ver libucontext_ver
local tgt=${sourcepkg/cross-} local tgt=${sourcepkg/cross-}
export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
# Disable explicit -fno-PIE, gcc/binutils/libc will figure this out itself.
export CFLAGS="${CFLAGS//-fno-PIE/}"
export CXXFLAGS="${CXXFLAGS//-fno-PIE/}"
export LDFLAGS="${LDFLAGS//-no-pie/}"
_void_cross_test_ver binutils _void_cross_test_ver binutils
_void_cross_test_ver linux _void_cross_test_ver linux
_void_cross_test_ver gcc _void_cross_test_ver gcc
@ -587,6 +608,8 @@ do_install() {
for f in ${DESTDIR}/${sysroot}/usr/lib/ld-musl-*.so.*; do for f in ${DESTDIR}/${sysroot}/usr/lib/ld-musl-*.so.*; do
ln -sf libc.so ${f} ln -sf libc.so ${f}
done done
cp libssp_nonshared.a ${DESTDIR}/${sysroot}/usr/lib/
else else
# Install glibc # Install glibc
cd ${wrksrc}/glibc_build cd ${wrksrc}/glibc_build
@ -625,6 +648,9 @@ do_install() {
# then remove it because it conflicts with libquadmath package # then remove it because it conflicts with libquadmath package
rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.* rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.*
# Remove libdep linker plugin because it conflicts with system binutils
rm -f ${DESTDIR}/usr/lib/bfd-plugins/libdep*
# Remove leftover symlinks # Remove leftover symlinks
rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE} rm -f ${DESTDIR}/usr/lib${XBPS_TARGET_WORDSIZE}
rm -f ${DESTDIR}/lib* rm -f ${DESTDIR}/lib*

View file

@ -12,7 +12,7 @@
# into /.xbps_chroot_init # into /.xbps_chroot_init
# #
# The supported way to make use of thie chroot-style is to create # The supported way to make use of thie chroot-style is to create
# a root filesystem that has base-chroot and git installed and # a root filesystem that has base-chroot and git installed and
# have it inside a container engine like Docker. # have it inside a container engine like Docker.
# #
# Docker example: # Docker example:
@ -21,7 +21,7 @@
# -R http://mirrors.servercentral.com/voidlinux/current \ # -R http://mirrors.servercentral.com/voidlinux/current \
# -S base-chroot # -S base-chroot
# $ tar -pC /tmp/image -c . | sudo docker import - voidlinux/masterdir # $ tar -pC /tmp/image -c . | sudo docker import - voidlinux/masterdir
# $ rm -rf /tmp/image # $ rm -rf /tmp/image
# # docker run --rm -it \ # # docker run --rm -it \
# -e XBPS_CHROOT_CMD=ethereal \ # -e XBPS_CHROOT_CMD=ethereal \
# -e XBPS_ALLOW_CHROOT_BREAKOUT=yes \ # -e XBPS_ALLOW_CHROOT_BREAKOUT=yes \

View file

@ -5,6 +5,9 @@ build_wrksrc="${pkgname#R-cran-}"
# default to cran # default to cran
if [ -z "$distfiles" ]; then if [ -z "$distfiles" ]; then
distfiles="https://cran.r-project.org/src/contrib/${pkgname#R-cran-}_${version//r/-}.tar.gz distfiles=" https://cran.r-project.org/src/contrib/Archive/${pkgname#R-cran-}/${pkgname#R-cran-}_${version//r/-}.tar.gz"
https://cran.r-project.org/src/contrib/Archive/${pkgname#R-cran-}/${pkgname#R-cran-}_${version//r/-}.tar.gz" case " $XBPS_DISTFILES_MIRROR " in
*" https://cran.r-project.org/src/contrib "*) ;;
*) XBPS_DISTFILES_MIRROR+=" https://cran.r-project.org/src/contrib" ;;
esac
fi fi

View file

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

View file

@ -37,7 +37,7 @@ export CGO_CFLAGS="$CFLAGS"
export CGO_CPPFLAGS="$CPPFLAGS" export CGO_CPPFLAGS="$CPPFLAGS"
export CGO_CXXFLAGS="$CXXFLAGS" export CGO_CXXFLAGS="$CXXFLAGS"
export CGO_LDFLAGS="$LDFLAGS" export CGO_LDFLAGS="$LDFLAGS"
export CGO_ENABLED=1 export CGO_ENABLED="${CGO_ENABLED:-1}"
export GO111MODULE=auto export GO111MODULE=auto
case "$XBPS_TARGET_MACHINE" in case "$XBPS_TARGET_MACHINE" in
*-musl) export GOCACHE="${XBPS_HOSTDIR}/gocache-muslc" ;; *-musl) export GOCACHE="${XBPS_HOSTDIR}/gocache-muslc" ;;

View file

@ -81,10 +81,10 @@ libIDL_cv_long_long_format=ll
## ac_cv_alignof_CORBA_short=2 ## ac_cv_alignof_CORBA_short=2
## ac_cv_alignof_CORBA_struct=1 ## ac_cv_alignof_CORBA_struct=1
## ac_cv_alignof_CORBA_wchar=2 ## ac_cv_alignof_CORBA_wchar=2
## ##
## lf_cv_sane_realloc=yes ## lf_cv_sane_realloc=yes
as_cv_unaligned_access=${as_cv_unaligned_access=no} as_cv_unaligned_access=${as_cv_unaligned_access=no}
## ##
## #unfs3 ## #unfs3
## nfsd_cv_broken_setfsuid=${nfsd_cv_broken_setfsuid=0} ## nfsd_cv_broken_setfsuid=${nfsd_cv_broken_setfsuid=0}
## nfsd_cv_func_statfs=${nfsd_cv_func_statfs=statfs2_bsize} ## nfsd_cv_func_statfs=${nfsd_cv_func_statfs=statfs2_bsize}

View file

@ -99,7 +99,7 @@ acx_working_snprintf=${acx_working_snprintf=yes}
# libidl # libidl
libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll} libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll}
# libnet # libnet
ac_libnet_have_packet_socket=${ac_libnet_have_packet_socket=yes} ac_libnet_have_packet_socket=${ac_libnet_have_packet_socket=yes}
# libpcap # libpcap

View file

@ -11,7 +11,6 @@ ac_cv_func_getgrgid_r=${ac_cv_func_getgrgid_r=yes}
ac_cv_func_getpwuid_r=${ac_cv_func_getpwuid_r=yes} ac_cv_func_getpwuid_r=${ac_cv_func_getpwuid_r=yes}
ac_cv_func_posix_getpwuid_r=${ac_cv_func_posix_getpwuid_r=yes} ac_cv_func_posix_getpwuid_r=${ac_cv_func_posix_getpwuid_r=yes}
ac_cv_func_posix_getgrgid_r=${ac_cv_func_posix_getgrgid_r=yes} ac_cv_func_posix_getgrgid_r=${ac_cv_func_posix_getgrgid_r=yes}
ac_cv_type_uid_t={ac_cv_type_uid_t=yes}
ac_cv_func_getaddrinfo=${ac_cv_func_getaddrinfo=yes} ac_cv_func_getaddrinfo=${ac_cv_func_getaddrinfo=yes}
ac_cv_func_strdup=yes ac_cv_func_strdup=yes
ac_cv_func_strtod=yes ac_cv_func_strtod=yes
@ -170,3 +169,7 @@ ac_cv_strftime_extensions=yes
# time # time
ac_cv_func_wait3=yes ac_cv_func_wait3=yes
# Y2038
gl_cv_type_time_t_y2038=${gl_cv_type_time_t_y2038=no}
ac_cv_type_time_t_bits_macro=${ac_cv_type_time_t_bits_macro=no}

View file

@ -120,7 +120,7 @@ lftp_cv_va_val_copy=${lftp_cv_va_val_copy=yes}
# libidl # libidl
libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll} libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll}
# libnet # libnet
ac_cv_lbl_unaligned_fail=${ac_cv_lbl_unaligned_fail=no} ac_cv_lbl_unaligned_fail=${ac_cv_lbl_unaligned_fail=no}
ac_libnet_have_packet_socket=${ac_libnet_have_packet_socket=yes} ac_libnet_have_packet_socket=${ac_libnet_have_packet_socket=yes}

View file

@ -1,16 +1,16 @@
local _wrksrc="$wrksrc${build_wrksrc:+/$build_wrksrc}" local _wrksrc="$wrksrc${build_wrksrc:+/$build_wrksrc}"
case "$build_style" in case "$build_style" in
cmake) cmake)
CFLAGS="${CFLAGS} -fdebug-prefix-map=$_wrksrc/${cmake_builddir:-build}=." CFLAGS="${CFLAGS} -ffile-prefix-map=$_wrksrc/${cmake_builddir:-build}=."
CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$_wrksrc/${cmake_builddir:-build}=." CXXFLAGS="${CXXFLAGS} -ffile-prefix-map=$_wrksrc/${cmake_builddir:-build}=."
;; ;;
meson) meson)
CFLAGS="${CFLAGS} -fdebug-prefix-map=$_wrksrc/${meson_builddir:-build}=." CFLAGS="${CFLAGS} -ffile-prefix-map=$_wrksrc/${meson_builddir:-build}=."
CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$_wrksrc/${meson_builddir:-build}=." CXXFLAGS="${CXXFLAGS} -ffile-prefix-map=$_wrksrc/${meson_builddir:-build}=."
;; ;;
*) *)
CFLAGS="${CFLAGS} -fdebug-prefix-map=$_wrksrc=." CFLAGS="${CFLAGS} -ffile-prefix-map=$_wrksrc=."
CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$_wrksrc=." CXXFLAGS="${CXXFLAGS} -ffile-prefix-map=$_wrksrc=."
esac esac
unset _wrksrc unset _wrksrc

View file

@ -19,11 +19,12 @@ done
_vsv() { _vsv() {
local service="$1" local service="$1"
local facility="${2:-daemon}"
local LN_OPTS="-s" local LN_OPTS="-s"
local svdir="${PKGDESTDIR}/etc/sv/${service}" local svdir="${PKGDESTDIR}/etc/sv/${service}"
if [ $# -lt 1 ]; then if [ $# -lt 1 ] || [ $# -gt 2 ]; then
msg_red "$pkgver: vsv: 1 argument expected: <service>\n" msg_red "$pkgver: vsv: up to 2 arguments expected: <service> [<log facility>]\n"
return 1 return 1
fi fi
@ -34,17 +35,25 @@ _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"
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 ]; then if [ -d $svdir/log ] || [ -L $svdir/log ]; then
ln ${LN_OPTS} /run/runit/supervise.${service}-log $svdir/log/supervise msg_warn "$pkgver: vsv: overriding default log service\n"
if [ -e $svdir/log/run ] && [ ! -L $svdir/log/run ]; then else
chmod 755 ${PKGDESTDIR}/etc/sv/${service}/log/run mkdir $svdir/log
fi cat <<-EOF > $svdir/log/run
#!/bin/sh
exec vlogger -t $service -p $facility
EOF
fi
ln ${LN_OPTS} /run/runit/supervise.${service}-log $svdir/log/supervise
if [ -e $svdir/log/run ] && [ ! -L $svdir/log/run ]; then
chmod 755 ${PKGDESTDIR}/etc/sv/${service}/log/run
fi fi
} }
@ -85,9 +94,9 @@ _vman() {
suffix=${target##*.} suffix=${target##*.}
fi fi
if [[ $target =~ (.*)\.([a-z][a-z](_[A-Z][A-Z])?)\.(.*) ]] if [[ $target =~ (.*)\.([a-z][a-z](_[A-Z][A-Z])?(\.[^.]+)?)\.(.*) ]]
then then
name=${BASH_REMATCH[1]}.${BASH_REMATCH[4]} name=${BASH_REMATCH[1]}.${BASH_REMATCH[5]}
mandir=${BASH_REMATCH[2]}/man${suffix:0:1} mandir=${BASH_REMATCH[2]}/man${suffix:0:1}
else else
name=$target name=$target

View file

@ -1,14 +1,14 @@
# #
# Common variables that can be used by xbps-src. # Common variables that can be used by xbps-src.
# #
# SITE used for ditfiles mirrors. For use in $distfiles. # SITE used for distfiles mirrors. For use in $distfiles.
set -a set -a
SOURCEFORGE_SITE="https://downloads.sourceforge.net/sourceforge" SOURCEFORGE_SITE="https://downloads.sourceforge.net/sourceforge"
NONGNU_SITE="https://download.savannah.nongnu.org/releases" NONGNU_SITE="https://download.savannah.nongnu.org/releases"
UBUNTU_SITE="http://archive.ubuntu.com/ubuntu/pool" UBUNTU_SITE="http://archive.ubuntu.com/ubuntu/pool"
XORG_SITE="https://www.x.org/releases/individual" XORG_SITE="https://www.x.org/releases/individual"
DEBIAN_SITE="http://ftp.debian.org/debian/pool" DEBIAN_SITE="https://ftp.debian.org/debian/pool"
GNOME_SITE="https://download.gnome.org/sources" GNOME_SITE="https://download.gnome.org/sources"
KERNEL_SITE="https://www.kernel.org/pub/linux" KERNEL_SITE="https://www.kernel.org/pub/linux"
CPAN_SITE="https://www.cpan.org/modules/by-module" CPAN_SITE="https://www.cpan.org/modules/by-module"

View file

@ -36,6 +36,6 @@ replace_interpreter() {
sed -i -e "1s|^#![[:space:]]*${orsb}|#!${trpath}|" $file sed -i -e "1s|^#![[:space:]]*${orsb}|#!${trpath}|" $file
msg_normal "Transformed $lang script: ${file##$wrksrc}.\n" msg_normal "Transformed $lang script: ${file##$wrksrc}.\n"
else else
msg_warn "Ignoring unexistent $lang script: ${file##$wrksrc}.\n" msg_warn "Ignoring nonexistent $lang script: ${file##$wrksrc}.\n"
fi fi
} }

View file

@ -1,6 +1,39 @@
# This shell snippet unsets all variables/functions that can be used in # This shell snippet unsets all variables/functions that can be used in
# the package template (excluding subpackages). # the package template (excluding subpackages).
# Exported variables
for var in $(awk 'BEGIN{for (i in ENVIRON) {print i}}' </dev/null); do
# Those variables in chroot.sh will be kept
case "$var" in
XBPS_* | IN_CHROOT | CHROOT_READY | SOURCE_DATE_EPOCH)
# xbps-src specific
;;
SOURCEFORGE_SITE | NONGNU_SITE | XORG_SITE | DEBIAN_SITE | GNOME_SITE)
;;
KERNEL_SITE | CPAN_SITE | PYPI_SITE | MOZILLA_SITE | GNU_SITE)
;;
FREEDESKTOP_SITE | KDE_SITE | VIDEOLAN_SITE | UBUNTU_SITE)
;;
_ | PWD | SHLVL | USER | PATH | SHELL | HOME | LC_COLLATE | LANG | TERM | PS1)
# known variables for shell
;;
DISTCC_HOSTS | DISTCC_DIR)
;;
CCACHE_DIR | CCACHE_COMPRESS)
;;
HTTP_PROXY | HTTPS_PROXY | SOCKS_PROXY | NO_PROXY | HTTP_PROXY_AUTH)
;;
FTP_PROXY | FTP_RETRIES)
;;
http_proxy | https_proxy | ftp_proxy | all_proxy | no_proxy)
;;
*)
unset -v "$var"
;;
esac
done
unset -v var
## VARIABLES ## VARIABLES
unset -v pkgname version revision short_desc homepage license maintainer unset -v pkgname version revision short_desc homepage license maintainer
unset -v archs distfiles checksum build_style build_helper nocross broken unset -v archs distfiles checksum build_style build_helper nocross broken
@ -20,6 +53,7 @@ unset -v nopie build_options build_options_default bootstrap repository reverts
unset -v CFLAGS CXXFLAGS FFLAGS CPPFLAGS LDFLAGS LD_LIBRARY_PATH unset -v CFLAGS CXXFLAGS FFLAGS CPPFLAGS LDFLAGS LD_LIBRARY_PATH
unset -v CC CXX CPP GCC LD AR AS RANLIB NM OBJDUMP OBJCOPY STRIP READELF PKG_CONFIG unset -v CC CXX CPP GCC LD AR AS RANLIB NM OBJDUMP OBJCOPY STRIP READELF PKG_CONFIG
unset -v CMAKE_GENERATOR unset -v CMAKE_GENERATOR
unset -v scons_use_destdir
# build-helper python3 # build-helper python3
unset -v PYPREFIX LDSHARED PYTHON_CONFIG PYTHONPATH _PYTHON_SYSCONFIGDATA_NAME unset -v PYPREFIX LDSHARED PYTHON_CONFIG PYTHONPATH _PYTHON_SYSCONFIGDATA_NAME

View file

@ -3,7 +3,7 @@
hook() { hook() {
local srcdir="$XBPS_SRCDISTDIR/$pkgname-$version" local srcdir="$XBPS_SRCDISTDIR/$pkgname-$version"
local f j curfile found extractdir innerdir num_dirs local f j curfile found extractdir innerdir innerfile num_dirs
local TAR_CMD local TAR_CMD
if [ -z "$distfiles" -a -z "$checksum" ]; then if [ -z "$distfiles" -a -z "$checksum" ]; then
@ -56,12 +56,16 @@ hook() {
*.tbz) cursufx="tbz";; *.tbz) cursufx="tbz";;
*.tar.gz) cursufx="tgz";; *.tar.gz) cursufx="tgz";;
*.tgz) cursufx="tgz";; *.tgz) cursufx="tgz";;
*.tar.zst) cursufx="tzst";;
*.tzst) cursufx="tzst";;
*.gz) cursufx="gz";; *.gz) cursufx="gz";;
*.xz) cursufx="xz";; *.xz) cursufx="xz";;
*.bz2) cursufx="bz2";; *.bz2) cursufx="bz2";;
*.zst) cursufx="zst";;
*.tar) cursufx="tar";; *.tar) cursufx="tar";;
*.zip) cursufx="zip";; *.zip) cursufx="zip";;
*.rpm) cursufx="rpm";; *.rpm) cursufx="rpm";;
*.deb) cursufx="deb";;
*.patch) cursufx="txt";; *.patch) cursufx="txt";;
*.diff) cursufx="txt";; *.diff) cursufx="txt";;
*.txt) cursufx="txt";; *.txt) cursufx="txt";;
@ -73,25 +77,28 @@ hook() {
esac esac
case ${cursufx} in case ${cursufx} in
tar|txz|tbz|tlz|tgz|crate) tar|txz|tbz|tlz|tgz|tzst|crate)
$TAR_CMD -x --no-same-permissions --no-same-owner -f $srcdir/$curfile -C "$extractdir" $TAR_CMD -x --no-same-permissions --no-same-owner -f $srcdir/$curfile -C "$extractdir"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n" msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
fi fi
;; ;;
gz|bz2|xz) gz|bz2|xz|zst)
cp -f $srcdir/$curfile "$extractdir" cp -f $srcdir/$curfile "$extractdir"
cd "$extractdir" cd "$extractdir"
case ${cursufx} in case ${cursufx} in
gz) gz)
gunzip -f $curfile gunzip -f $curfile
;; ;;
bz2) bz2)
bunzip2 -f $curfile bunzip2 -f $curfile
;; ;;
*) xz)
unxz -f $curfile unxz -f $curfile
;; ;;
zst)
unzstd $curfile
;;
esac esac
;; ;;
zip) zip)
@ -110,14 +117,23 @@ hook() {
fi fi
;; ;;
rpm) rpm)
if command -v rpmextract &>/dev/null; then if ! command -v bsdtar &>/dev/null; then
cd "$extractdir" msg_error "$pkgver: cannot find bsdtar for extraction.\n"
rpmextract $srcdir/$curfile 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 if [ $? -ne 0 ]; then
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n" msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
fi fi
else else
msg_error "$pkgver: cannot find rpmextract for extraction.\n" msg_error "$pkgver: cannot find bsdtar for extraction.\n"
fi fi
;; ;;
txt) txt)
@ -153,13 +169,14 @@ hook() {
esac esac
done done
cd "$extractdir"
# find "$extractdir" -mindepth 1 -maxdepth 1 -printf '1\n' | wc -l # find "$extractdir" -mindepth 1 -maxdepth 1 -printf '1\n' | wc -l
# However, it requires GNU's find # However, it requires GNU's find
num_dirs=0 num_dirs=0
for f in "$extractdir"/* "$extractdir"/.*; do for f in * .*; do
if [ -e "$f" ] || [ -L "$f" ]; then if [ -e "$f" ] || [ -L "$f" ]; then
case "$f" in case "$f" in
*/. | */..) ;; . | ..) ;;
*) *)
innerdir="$f" innerdir="$f"
num_dirs=$(( num_dirs + 1 )) num_dirs=$(( num_dirs + 1 ))
@ -167,16 +184,35 @@ hook() {
esac esac
fi fi
done done
# Special case for num_dirs = 2, and it contains metadata
if [ "$num_dirs" != 2 ] || [ "$create_wrksrc" ]; then
:
elif grep -q 'xmlns="http://pear[.]php[.]net/dtd/package' package.xml 2>/dev/null
then
# PHP modules' metadata
rm -f package.xml
for f in */; do innerdir="$f"; done
num_dirs=1
else
for f in *; do
# AppleDouble encoded Macintosh file
if [ -e "$f" ] && [ -e "._$f" ]; then
rm -f "._$f"
num_dirs=1
innerdir="$f"
break
fi
done
fi
rm -rf "$wrksrc" rm -rf "$wrksrc"
innerdir="$extractdir/$innerdir"
cd "$XBPS_BUILDDIR"
if [ "$num_dirs" = 1 ] && [ -d "$innerdir" ] && [ -z "$create_wrksrc" ]; then if [ "$num_dirs" = 1 ] && [ -d "$innerdir" ] && [ -z "$create_wrksrc" ]; then
# rename the subdirectory (top-level of distfiles) to $wrksrc # rename the subdirectory (top-level of distfiles) to $wrksrc
mv "$innerdir" "$wrksrc" && mv "$innerdir" "$wrksrc" &&
rmdir "$extractdir" rmdir "$extractdir"
elif [ "$num_dirs" -gt 1 ] || [ -n "$create_wrksrc" ]; then
# rename the tmpdir to wrksrc
mv "$extractdir" "$wrksrc"
else else
mkdir -p "$wrksrc" mv "$extractdir" "$wrksrc"
fi || fi ||
msg_error "$pkgver: failed to move sources to $wrksrc\n" msg_error "$pkgver: failed to move sources to $wrksrc\n"
} }

View file

@ -54,14 +54,7 @@ contents_cksum() {
fi fi
;; ;;
rpm) rpm)
if command -v rpmextract &>/dev/null; then msg_error "$pkgver: contents checksum not support for rpm.\n"
cksum=$($XBPS_DIGEST_CMD <(rpm2cpio "$curfile" | $TAR_CMD -x -f -))
if [ $? -ne 0 ]; then
msg_error "$pkgver: extracting $curfile to pipe.\n"
fi
else
msg_error "$pkgver: cannot find rpmextract for extraction.\n"
fi
;; ;;
txt) txt)
cksum=$($XBPS_DIGEST_CMD "$curfile") cksum=$($XBPS_DIGEST_CMD "$curfile")

View file

@ -4,7 +4,7 @@ registerpkg() {
local repo="$1" pkg="$2" arch="$3" local repo="$1" pkg="$2" arch="$3"
if [ ! -f ${repo}/${pkg} ]; then if [ ! -f ${repo}/${pkg} ]; then
msg_error "Unexistent binary package ${repo}/${pkg}!\n" msg_error "Nonexistent binary package ${repo}/${pkg}!\n"
fi fi
printf "%s:%s:%s\n" "${arch}" "${repo}" "${pkg}" >> "${XBPS_STATEDIR}/.${sourcepkg}_register_pkg" printf "%s:%s:%s\n" "${arch}" "${repo}" "${pkg}" >> "${XBPS_STATEDIR}/.${sourcepkg}_register_pkg"

View file

@ -207,6 +207,8 @@ hook() {
generic_wrapper sdl-config generic_wrapper sdl-config
generic_wrapper sdl2-config generic_wrapper sdl2-config
generic_wrapper gpgme-config generic_wrapper gpgme-config
generic_wrapper gphoto2-config
generic_wrapper gphoto2-port-config
generic_wrapper imlib2-config generic_wrapper imlib2-config
generic_wrapper libmikmod-config generic_wrapper libmikmod-config
generic_wrapper pcre-config generic_wrapper pcre-config

View file

@ -46,7 +46,7 @@ store_pkgdestdir_rundeps() {
} }
hook() { hook() {
local depsftmp f lf j mapshlibs sorequires _curdep elfmagic local depsftmp f lf j mapshlibs sorequires _curdep elfmagic broken_shlibs verify_deps
# Disable trap on ERR, xbps-uhelper cmd might return error... but not something # 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
@ -63,6 +63,10 @@ hook() {
depsftmp=$(mktemp) || exit 1 depsftmp=$(mktemp) || exit 1
find ${PKGDESTDIR} -type f -perm -u+w > $depsftmp 2>/dev/null find ${PKGDESTDIR} -type f -perm -u+w > $depsftmp 2>/dev/null
for f in ${shlib_requires}; do
verify_deps+=" ${f}"
done
exec 3<&0 # save stdin exec 3<&0 # save stdin
exec < $depsftmp exec < $depsftmp
while read f; do while read f; do
@ -100,7 +104,7 @@ hook() {
soname=$(find ${PKGDESTDIR} -name "$f") soname=$(find ${PKGDESTDIR} -name "$f")
if [ -z "$soname" ]; then if [ -z "$soname" ]; then
msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n" msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
broken=1 broken_shlibs=1
else else
echo " SONAME: $f <-> $pkgname (ignored)" echo " SONAME: $f <-> $pkgname (ignored)"
fi fi
@ -129,7 +133,7 @@ hook() {
_rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null) _rdepver=$($XBPS_UHELPER_CMD getpkgversion "${_rdep}" 2>/dev/null)
if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then if [ -z "${_pkgname}" -o -z "${_rdepver}" ]; then
msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n" msg_red_nochroot " SONAME: $f <-> UNKNOWN PKG PLEASE FIX!\n"
broken=1 broken_shlibs=1
continue continue
fi fi
# Check if pkg is a subpkg of sourcepkg; if true, ignore version # Check if pkg is a subpkg of sourcepkg; if true, ignore version
@ -155,15 +159,12 @@ hook() {
# #
# If pkg uses any unknown SONAME error out. # If pkg uses any unknown SONAME error out.
# #
if [ -n "$broken" -a -z "$allow_unknown_shlibs" ]; then if [ -n "$broken_shlibs" -a -z "$allow_unknown_shlibs" ]; then
msg_error "$pkgver: cannot guess required shlibs, aborting!\n" msg_error "$pkgver: cannot guess required shlibs, aborting!\n"
fi fi
store_pkgdestdir_rundeps store_pkgdestdir_rundeps
for f in ${shlib_requires}; do
sorequires+="${f} "
done
if [ -n "${sorequires}" ]; then if [ -n "${sorequires}" ]; then
echo "${sorequires}" | xargs -n1 | sort | xargs > ${PKGDESTDIR}/shlib-requires echo "${sorequires}" | xargs -n1 | sort | xargs > ${PKGDESTDIR}/shlib-requires
fi fi

View file

@ -29,6 +29,15 @@ hook() {
fi fi
done done
if [ -d ${PKGDESTDIR}/usr/lib/libexec ]; then
# Add exception for kconfig,
# other packages hard-coded path to its files
if [ "${pkgname}" != kconfig ]; then
msg_red "${pkgver}: /usr/lib/libexec directory is not allowed!\n"
error=1
fi
fi
for f in "$PKGDESTDIR"/*; do for f in "$PKGDESTDIR"/*; do
f="${f##*/}" f="${f##*/}"
case "$f" in case "$f" in
@ -128,6 +137,11 @@ hook() {
error=1 error=1
fi fi
if [ -e ${PKGDESTDIR}/usr/share/glib-2.0/schemas/gschemas.compiled ]; then
msg_red "${pkgver}: /usr/share/glib-2.0/schemas/gschemas.compiled is forbidden. Delete it.\n"
error=1
fi
# Forbid files would be generated by mimedb trigger # Forbid files would be generated by mimedb trigger
for f in XMLnamespaces aliases generic-icons globs globs2 icons \ for f in XMLnamespaces aliases generic-icons globs globs2 icons \
magic mime.cache subclasses treemagic types version ; do magic mime.cache subclasses treemagic types version ; do

View file

@ -32,9 +32,20 @@ do
awk -vC="$cmt" ' awk -vC="$cmt" '
# skip header # skip header
/^$/ && !msg { msg = 1; next } /^$/ && !msg { msg = 1; next }
/^author .*noreply/ && !msg {
print "::error title=Commit Lint::" C ": authored by noreply email";
ret=1;
}
/^author .*(localhost|localdomain|[(]none[)])/ && !msg {
print "::error title=Commit Lint::" C ": authored by localhost email";
ret=1;
}
!msg { next } !msg { next }
# 3: long-line-is-banned-except-footnote-like-this-for-url # 3: long-line-is-banned-except-footnote-like-this-for-url
(NF > 2) && (length > 80) { print "::error title=Commit Lint::" C ": long line: " $0; exit 1 } (NF > 2) && (length > 80) {
print "::error title=Commit Lint::" C ": long line: " $0
ret = 1
}
!subject { !subject {
if (length > 50) { print "::warning title=Commit Lint::" C ": subject is a bit long" } if (length > 50) { print "::warning title=Commit Lint::" C ": subject is a bit long" }
if (!($0 ~ ":" || $0 ~ "^Take over maintainership " || $0 ~ "^Orphan ")) { print "::error title=Commit Lint::" C ": subject does not follow CONTRIBUTING.md guildelines"; exit 1 } if (!($0 ~ ":" || $0 ~ "^Take over maintainership " || $0 ~ "^Orphan ")) { print "::error title=Commit Lint::" C ": subject does not follow CONTRIBUTING.md guildelines"; exit 1 }
@ -45,7 +56,11 @@ do
subject = 1; next subject = 1; next
} }
/^$/ { body = 1; next } /^$/ { body = 1; next }
!body { print "::error title=Commit Lint::" C ": second line must be blank"; exit 1 } !body {
print "::error title=Commit Lint::" C ": second line must be blank"
ret = 1
}
END { exit ret }
' || status=1 ' || status=1
done done
exit $status exit $status

View file

@ -25,7 +25,7 @@ else
fi fi
declare -A newly_built conflicts_cache providers_cache pairs owners declare -A newly_built conflicts_cache providers_cache pairs owners
repositories=("--repository=${binpkgs}" "--repository=${binpkgs}/nonfree") repositories=("--repository=${binpkgs}/bootstrap" "--repository=${binpkgs}" "--repository=${binpkgs}/nonfree")
rv=0 rv=0
template_exists() { template_exists() {

View file

@ -87,7 +87,7 @@ def find_cycles(depmap, xbpsdir):
# Any of the dependencies here contributes to a cycle # Any of the dependencies here contributes to a cycle
p = min(deps) p = min(deps)
if len(deps) > 1: if len(deps) > 1:
print('Mulitpath: {} -> {}, choosing first'.format(p, deps)) print('Multipath: {} -> {}, choosing first'.format(p, deps))
if cycles: if cycles:
print('Cycle: ' + ' -> '.join(cycles) + '\n') print('Cycle: ' + ' -> '.join(cycles) + '\n')

File diff suppressed because it is too large Load diff

View file

@ -10,9 +10,10 @@ case "$tip" in
*) tip="${tip%% *}" ;; *) tip="${tip%% *}" ;;
esac esac
base="$(git merge-base FETCH_HEAD "$tip")" || { base="$(git merge-base origin/HEAD "$tip")"
echo "Your branches is based on too old copy."
echo "Please rebase to newest copy." [ $(git rev-list --count "$tip" "^$base") -lt 200 ] || {
echo "::error title=Branch out of date::Your branch is too out of date. Please rebase on upstream and force-push."
exit 1 exit 1
} }

View file

@ -6,20 +6,33 @@ export XBPS_TARGET_ARCH="$2" XBPS_DISTDIR=/hostrepo
if [ "$1" != "$XBPS_TARGET_ARCH" ]; then if [ "$1" != "$XBPS_TARGET_ARCH" ]; then
triplet="$(/hostrepo/xbps-src -a "$XBPS_TARGET_ARCH" show-var XBPS_CROSS_TRIPLET)" triplet="$(/hostrepo/xbps-src -a "$XBPS_TARGET_ARCH" show-var XBPS_CROSS_TRIPLET)"
ROOTDIR="-r /usr/$triplet" CONFDIR="-C /usr/$triplet/etc/xbps.d"
else
CONFDIR="-C /etc/xbps.d"
fi fi
ADDREPO="--repository=$HOME/hostdir/binpkgs --repository=$HOME/hostdir/binpkgs/nonfree" mkdir /check-install
mkdir -p /check-install/var/db/xbps/keys
cp /var/db/xbps/keys/* /check-install/var/db/xbps/keys/
ADDREPO="--repository=$HOME/hostdir/binpkgs/bootstrap
--repository=$HOME/hostdir/binpkgs
--repository=$HOME/hostdir/binpkgs/nonfree"
ROOTDIR="-r /check-install"
xbps-install $ROOTDIR $ADDREPO $CONFDIR -S
while read -r pkg; do while read -r pkg; do
for subpkg in $(xsubpkg $pkg); do for subpkg in $(xsubpkg $pkg); do
/bin/echo -e "\x1b[32mTrying to install dependants of $subpkg:\x1b[0m" /bin/echo -e "\x1b[32mTrying to install dependants of $subpkg:\x1b[0m"
for dep in $(xbps-query $ADDREPO -RX "$subpkg"); do for dep in $(xbps-query $ADDREPO -RX "$subpkg"); do
xbps-install \ xbps-install \
$ROOTDIR $ADDREPO \ $ROOTDIR $ADDREPO $CONFDIR \
-Sny \ -ny \
"$subpkg" "$(xbps-uhelper getpkgname "$dep")" "$subpkg" "$(xbps-uhelper getpkgname "$dep")"
if [ $? -eq 8 ]; then ret="$?"
if [ "$ret" -eq 8 ] || [ "$ret" -eq 11 ]; then
/bin/echo -e "\x1b[31mFailed to install '$subpkg' and '$dep'\x1b[0m" /bin/echo -e "\x1b[31mFailed to install '$subpkg' and '$dep'\x1b[0m"
exit 1 exit 1
fi fi

View file

@ -185,6 +185,7 @@ FLTK-exception
FSFAP FSFAP
FSFUL FSFUL
FSFULLR FSFULLR
FSFULLRWD
FTL FTL
Fair Fair
Fawkes-Runtime-exception Fawkes-Runtime-exception
@ -251,6 +252,7 @@ JSON
Jam Jam
JasPer-2.0 JasPer-2.0
KiCad-libraries-exception KiCad-libraries-exception
Knuth-CTAN
LAL-1.2 LAL-1.2
LAL-1.3 LAL-1.3
LGPL-2.0-only LGPL-2.0-only
@ -479,6 +481,7 @@ Zimbra-1.4
Zlib Zlib
blessing blessing
bzip2-1.0.6 bzip2-1.0.6
checkmk
copyleft-next-0.3.0 copyleft-next-0.3.0
copyleft-next-0.3.1 copyleft-next-0.3.1
curl curl
@ -527,6 +530,7 @@ iMatix
libpng-2.0 libpng-2.0
libselinux-1.0 libselinux-1.0
libtiff libtiff
libutil-David-Nugent
mif-exception mif-exception
mpi-permissive mpi-permissive
mpich2 mpich2
@ -535,6 +539,7 @@ openvpn-openssl-exception
psfrag psfrag
psutils psutils
u-boot-exception-2.0 u-boot-exception-2.0
x11vnc-openssl-exception
xinetd xinetd
xpp xpp
zlib-acknowledgement zlib-acknowledgement

View file

@ -7,7 +7,8 @@ export XBPS_TARGET_ARCH="$2" XBPS_DISTDIR=/hostrepo
while read -r pkg; do while read -r pkg; do
for subpkg in $(xsubpkg $pkg); do for subpkg in $(xsubpkg $pkg); do
/bin/echo -e "\x1b[32mFiles of $subpkg:\x1b[0m" /bin/echo -e "\x1b[32mFiles of $subpkg:\x1b[0m"
xbps-query --repository=$HOME/hostdir/binpkgs \ xbps-query --repository=$HOME/hostdir/binpkgs/bootstrap \
--repository=$HOME/hostdir/binpkgs \
--repository=$HOME/hostdir/binpkgs/nonfree \ --repository=$HOME/hostdir/binpkgs/nonfree \
-i -f "$subpkg" || -i -f "$subpkg" ||
/bin/echo -e "\x1b[33m $subpkg wasn't found\x1b[0m" /bin/echo -e "\x1b[33m $subpkg wasn't found\x1b[0m"

View file

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

View file

@ -2,14 +2,15 @@
# #
# xpkgdiff.sh # xpkgdiff.sh
export XBPS_DISTDIR=/hostrepo XBPS_HOSTDIR="$HOME/hostdir" export XBPS_TARGET_ARCH="$2" XBPS_DISTDIR=/hostrepo XBPS_HOSTDIR="$HOME/hostdir"
export DIFF='diff --unified=0 --report-identical-files --suppress-common-lines export DIFF='diff --unified=0 --report-identical-files --suppress-common-lines
--color=always --label REPO --label BUILT' --color=always --label REPO --label BUILT'
ARGS="-a $2 -R https://repo-ci.voidlinux.org/current" ARGS="-a $2 -R https://repo-ci.voidlinux.org/current"
while read -r pkg; do while read -r pkg; do
for subpkg in $(xsubpkg $pkg); do for subpkg in $(xsubpkg $pkg); do
if xbps-query --repository=$HOME/hostdir/binpkgs \ if xbps-query --repository=$HOME/hostdir/binpkgs/bootstrap \
--repository=$HOME/hostdir/binpkgs \
--repository=$HOME/hostdir/binpkgs/nonfree \ --repository=$HOME/hostdir/binpkgs/nonfree \
-i "$subpkg" >&/dev/null; then -i "$subpkg" >&/dev/null; then
/bin/echo -e "\x1b[34mFile Diff of $subpkg:\x1b[0m" /bin/echo -e "\x1b[34mFile Diff of $subpkg:\x1b[0m"

View file

@ -138,7 +138,12 @@ install_pkg_deps() {
[ -z "$pkgname" ] && return 2 [ -z "$pkgname" ] && return 2
[ -z "$XBPS_CHECK_PKGS" ] && unset checkdepends [ -z "$XBPS_CHECK_PKGS" ] && unset checkdepends
[[ $build_style ]] && style=" [$build_style]"
if [[ $build_style ]] || [[ $build_helper ]]; then
style=" with"
fi
[[ $build_style ]] && style+=" [$build_style]"
for s in $build_helper; do for s in $build_helper; do
style+=" [$s]" style+=" [$s]"

View file

@ -73,7 +73,7 @@ bulk_build() {
return $? return $?
;; ;;
local) local)
bulk_sortdeps $(xbps-checkvers -f '%n' -i -R "${XBPS_REPOSITORY}" -R "${XBPS_REPOSITORY}/nonfree" -D "$XBPS_DISTDIR") bulk_sortdeps $(xbps-checkvers -f '%n' -i -R "${XBPS_REPOSITORY}/bootstrap" -R "${XBPS_REPOSITORY}" -R "${XBPS_REPOSITORY}/nonfree" -D "$XBPS_DISTDIR")
return $? return $?
;; ;;
esac esac
@ -122,6 +122,6 @@ bulk_update() {
if [ -n "$pkgs" -a "$bulk_update_cmd" == installed ]; then if [ -n "$pkgs" -a "$bulk_update_cmd" == installed ]; then
echo echo
msg_normal "xbps-src: updating your system, confirm to proceed...\n" msg_normal "xbps-src: updating your system, confirm to proceed...\n"
${XBPS_SUCMD} "xbps-install --repository=$XBPS_REPOSITORY --repository=$XBPS_REPOSITORY/nonfree -u ${pkgs//[$'\n']/ }" || return 1 ${XBPS_SUCMD} "xbps-install --repository=$XBPS_REPOSITORY/bootstrap --repository=$XBPS_REPOSITORY --repository=$XBPS_REPOSITORY/nonfree -u ${pkgs//[$'\n']/ }" || return 1
fi fi
} }

View file

@ -89,7 +89,7 @@ PATH=/void-packages:/usr/bin
exec env -i -- SHELL=/bin/sh PATH="\$PATH" DISTCC_HOSTS="\$XBPS_DISTCC_HOSTS" DISTCC_DIR="/host/distcc" \ exec env -i -- SHELL=/bin/sh PATH="\$PATH" DISTCC_HOSTS="\$XBPS_DISTCC_HOSTS" DISTCC_DIR="/host/distcc" \
${XBPS_ARCH+XBPS_ARCH=$XBPS_ARCH} ${XBPS_CHECK_PKGS+XBPS_CHECK_PKGS=$XBPS_CHECK_PKGS} \ ${XBPS_ARCH+XBPS_ARCH=$XBPS_ARCH} ${XBPS_CHECK_PKGS+XBPS_CHECK_PKGS=$XBPS_CHECK_PKGS} \
CCACHE_DIR="/host/ccache" IN_CHROOT=1 LC_COLLATE=C LANG=en_US.UTF-8 TERM=linux HOME="/tmp" \ CCACHE_DIR="/host/ccache" IN_CHROOT=1 LC_COLLATE=C LANG=en_US.UTF-8 TERM=linux HOME="/tmp" \
PS1="[\u@$XBPS_MASTERDIR \W]$ " /bin/bash +h PS1="[\u@$XBPS_MASTERDIR \W]$ " /bin/bash +h "\$@"
_EOF _EOF
chmod 755 $XBPS_MASTERDIR/bin/xbps-shell chmod 755 $XBPS_MASTERDIR/bin/xbps-shell
@ -165,6 +165,11 @@ chroot_handler() {
else else
env -i -- PATH="/usr/bin:$PATH" SHELL=/bin/sh \ env -i -- PATH="/usr/bin:$PATH" SHELL=/bin/sh \
HOME=/tmp IN_CHROOT=1 LC_COLLATE=C LANG=en_US.UTF-8 \ HOME=/tmp IN_CHROOT=1 LC_COLLATE=C LANG=en_US.UTF-8 \
${http_proxy:+http_proxy="${http_proxy}"} \
${https_proxy:+https_proxy="${https_proxy}"} \
${ftp_proxy:+ftp_proxy="${ftp_proxy}"} \
${all_proxy:+all_proxy="${all_proxy}"} \
${no_proxy:+no_proxy="${no_proxy}"} \
${HTTP_PROXY:+HTTP_PROXY="${HTTP_PROXY}"} \ ${HTTP_PROXY:+HTTP_PROXY="${HTTP_PROXY}"} \
${HTTPS_PROXY:+HTTPS_PROXY="${HTTPS_PROXY}"} \ ${HTTPS_PROXY:+HTTPS_PROXY="${HTTPS_PROXY}"} \
${FTP_PROXY:+FTP_PROXY="${FTP_PROXY}"} \ ${FTP_PROXY:+FTP_PROXY="${FTP_PROXY}"} \
@ -209,16 +214,18 @@ chroot_sync_repodata() {
# Update xbps alternative repository if set. # Update xbps alternative repository if set.
mkdir -p $confdir mkdir -p $confdir
if [ -n "$XBPS_ALT_REPOSITORY" ]; then if [ -n "$XBPS_ALT_REPOSITORY" ]; then
( \ cat <<- ! > $confdir/00-repository-alt-local.conf
echo "repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}"; \ repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/bootstrap
echo "repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/nonfree"; \ repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}
echo "repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/debug"; \ repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/nonfree
) > $confdir/00-repository-alt-local.conf repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/debug
!
if [ "$XBPS_MACHINE" = "x86_64" ]; then if [ "$XBPS_MACHINE" = "x86_64" ]; then
( \ cat <<- ! >> $confdir/00-repository-alt-local.conf
echo "repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/multilib"; \ repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/multilib/bootstrap
echo "repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/multilib/nonfree"; \ repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/multilib
) >> $confdir/00-repository-alt-local.conf repository=$hostdir/binpkgs/${XBPS_ALT_REPOSITORY}/multilib/nonfree
!
fi fi
else else
rm -f $confdir/00-repository-alt-local.conf rm -f $confdir/00-repository-alt-local.conf

View file

@ -415,7 +415,7 @@ setup_pkg() {
done done
if [ ! -f ${XBPS_SRCPKGDIR}/${basepkg}/template ]; then if [ ! -f ${XBPS_SRCPKGDIR}/${basepkg}/template ]; then
msg_error "xbps-src: unexistent file: ${XBPS_SRCPKGDIR}/${basepkg}/template\n" msg_error "xbps-src: nonexistent file: ${XBPS_SRCPKGDIR}/${basepkg}/template\n"
fi fi
if [ -n "$cross" ]; then if [ -n "$cross" ]; then
export CROSS_BUILD="$cross" export CROSS_BUILD="$cross"
@ -477,12 +477,17 @@ setup_pkg() {
fi fi
fi fi
for x in ${hostmakedepends} ${makedepends} ${checkdepends}; do
if [[ $x = *[\<\>]* || $x =~ -[^-_]*[0-9][^-_]*_[0-9_]+$ ]]; then
msg_error "$pkgver: specifying version in build dependency '$x' is invalid, template version is used always\n"
fi
done
FILESDIR=$XBPS_SRCPKGDIR/$sourcepkg/files FILESDIR=$XBPS_SRCPKGDIR/$sourcepkg/files
PATCHESDIR=$XBPS_SRCPKGDIR/$sourcepkg/patches PATCHESDIR=$XBPS_SRCPKGDIR/$sourcepkg/patches
DESTDIR=$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/${sourcepkg}-${version} DESTDIR=$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/${sourcepkg}-${version}
PKGDESTDIR=$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/${pkg}-${version} PKGDESTDIR=$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/${pkg}-${version}
: ${XBPS_MAKEJOBS:=1}
export XBPS_ORIG_MAKEJOBS=${XBPS_ORIG_MAKEJOBS:=$XBPS_MAKEJOBS} export XBPS_ORIG_MAKEJOBS=${XBPS_ORIG_MAKEJOBS:=$XBPS_MAKEJOBS}
if [ -n "$disable_parallel_build" ]; then if [ -n "$disable_parallel_build" ]; then
XBPS_MAKEJOBS=1 XBPS_MAKEJOBS=1

View file

@ -22,7 +22,7 @@ consistency_convert_pkgname () {
;; ;;
esac esac
case "$dep" in case "$dep" in
*\<*|*\>*|*=*) *\<*|*\>*|*=*)
printf "%s %s %s\n" "$dep" "$origname" "$deplabel" printf "%s %s %s\n" "$dep" "$origname" "$deplabel"
continue continue
;; ;;

View file

@ -105,7 +105,7 @@ remove_pkg_statedir() {
remove_pkg() { remove_pkg() {
local cross="$1" _destdir f local cross="$1" _destdir f
[ -z $pkgname ] && msg_error "unexistent package, aborting.\n" [ -z $pkgname ] && msg_error "nonexistent package, aborting.\n"
if [ -n "$cross" ]; then if [ -n "$cross" ]; then
_destdir="$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET" _destdir="$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET"

View file

@ -1,49 +1,27 @@
# vim: set ts=4 sw=4 et: # vim: set ts=4 sw=4 et:
show_pkg() { show_pkg() {
local i= show_pkg_var "pkgname" "$pkgname"
show_pkg_var "version" "$version"
echo "pkgname: $pkgname" show_pkg_var "revision" "$revision"
echo "version: $version" show_pkg_var "distfiles" "$distfiles" 1
echo "revision: $revision" show_pkg_var "checksum" "$checksum" 1
for i in ${distfiles}; do show_pkg_var "archs" "$archs" 1
[ -n "$i" ] && echo "distfiles: $i" show_pkg_var "maintainer" "${maintainer}"
done show_pkg_var "Upstream URL" "$homepage"
for i in ${checksum}; do show_pkg_var "License(s)" "${license//,/ }" 1
[ -n "$i" ] && echo "checksum: $i" show_pkg_var "Changelog" "$changelog"
done show_pkg_var "build_style" "$build_style"
for i in ${archs}; do show_pkg_var "build_helper" "$build_helper" 1
[ -n "$i" ] && echo "archs: $i" show_pkg_var "configure_args" "$configure_args" 1
done show_pkg_var "short_desc" "$short_desc"
echo "maintainer: $maintainer" show_pkg_var "subpackages" "$subpackages" 1
[ -n "$homepage" ] && echo "Upstream URL: $homepage"
[ -n "$license" ] && echo "License(s): $license"
[ -n "$changelog" ] && echo "Changelog: $changelog"
[ -n "$build_style" ] && echo "build_style: $build_style"
for i in $build_helper; do
[ -n "$i" ] && echo "build_helper: $i"
done
for i in ${configure_args}; do
[ -n "$i" ] && echo "configure_args: $i"
done
echo "short_desc: $short_desc"
for i in ${subpackages}; do
[ -n "$i" ] && echo "subpackages: $i"
done
set -f set -f
for i in ${conf_files}; do show_pkg_var "conf_files" "$conf_files" 1
[ -n "$i" ] && echo "conf_files: $i"
done
set +f set +f
for i in ${replaces}; do show_pkg_var "replaces" "$replaces" 1
[ -n "$i" ] && echo "replaces: $i" show_pkg_var "provides" "$provides" 1
done show_pkg_var "conflicts" "$conflicts" 1
for i in ${provides}; do
[ -n "$i" ] && echo "provides: $i"
done
for i in ${conflicts}; do
[ -n "$i" ] && echo "conflicts: $i"
done
local OIFS="$IFS" local OIFS="$IFS"
IFS=',' IFS=','
for var in $1; do for var in $1; do
@ -51,11 +29,9 @@ show_pkg() {
if [ ${var} != ${var/'*'} ] if [ ${var} != ${var/'*'} ]
then then
var="${var/'*'}" var="${var/'*'}"
[ -n "${!var}" ] && echo "$var: ${!var//$'\n'/' '}" show_pkg_var "$var" "${!var//$'\n'/' '}"
else else
for val in ${!var}; do show_pkg_var "$var" "${!var}" 1
[ -n "$val" ] && echo "$var: $val"
done
fi fi
done done
IFS="$OIFS" IFS="$OIFS"
@ -63,6 +39,28 @@ show_pkg() {
return 0 return 0
} }
show_pkg_var() {
local _sep i=
local _label="$1"
local _value="$2"
local _always_split="$3"
if [ -n "$_value" ] && [ -n "$_label" ]; then
# on short labels, use more padding so everything lines up
if [ "${#_label}" -lt 7 ]; then
_sep=" "
else
_sep=" "
fi
if [ -n "$_always_split" ] || [[ "$_value" =~ $'\n' ]]; then
for i in ${_value}; do
[ -n "$i" ] && echo "${_label}:${_sep}${i}"
done
else
echo "${_label}:${_sep}${_value}"
fi
fi
}
show_pkg_deps() { show_pkg_deps() {
[ -f "${PKGDESTDIR}/rdeps" ] && cat ${PKGDESTDIR}/rdeps [ -f "${PKGDESTDIR}/rdeps" ] && cat ${PKGDESTDIR}/rdeps
} }

View file

@ -13,6 +13,11 @@ update_check() {
if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
echo "using $XBPS_TARGET_PKG/update overrides" 1>&2 echo "using $XBPS_TARGET_PKG/update overrides" 1>&2
fi fi
elif [ -z "$distfiles" ]; then
if [ "$XBPS_UPDATE_CHECK_VERBOSE" ]; then
echo "NO DISTFILES found for $original_pkgname" 1>&2
fi
return 0
fi fi
if ! type curl >/dev/null 2>&1; then if ! type curl >/dev/null 2>&1; then
@ -66,6 +71,7 @@ update_check() {
*crates.io*|\ *crates.io*|\
*codeberg.org*|\ *codeberg.org*|\
*hg.sr.ht*|\ *hg.sr.ht*|\
*software.sil.org*|\
*git.sr.ht*) *git.sr.ht*)
continue continue
;; ;;
@ -111,7 +117,7 @@ update_check() {
pkgurlname="$(printf %s "$url" | cut -d/ -f5)" pkgurlname="$(printf %s "$url" | cut -d/ -f5)"
url="https://sourceforge.net/projects/$pkgurlname/rss?limit=200";; url="https://sourceforge.net/projects/$pkgurlname/rss?limit=200";;
*code.google.com*|*googlecode*) *code.google.com*|*googlecode*)
url="http://code.google.com/p/$pkgname/downloads/list";; url="https://code.google.com/p/$pkgname/downloads/list";;
*launchpad.net*) *launchpad.net*)
pkgurlname="$(printf %s "$url" | cut -d/ -f4)" pkgurlname="$(printf %s "$url" | cut -d/ -f4)"
url="https://launchpad.net/$pkgurlname/+download";; url="https://launchpad.net/$pkgurlname/+download";;
@ -124,13 +130,13 @@ update_check() {
*github.com*) *github.com*)
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)" pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
url="https://github.com/$pkgurlname/tags" url="https://github.com/$pkgurlname/tags"
rx='/archive/refs/tags/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar\.gz")';; rx='/archive/refs/tags/(v?|\Q'"$pkgname"'\E[-_])?\K[\d.]+(?=\.tar\.gz")';;
*//gitlab.*|*code.videolan.org*) *//gitlab.*|*code.videolan.org*)
case "$url" in case "$url" in
*/-/*) pkgurlname="$(printf %s "$url" | sed -e 's%/-/.*%%g; s%/$%%')";; */-/*) pkgurlname="$(printf %s "$url" | sed -e 's%/-/.*%%g; s%/$%%')";;
*) 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)"
@ -162,10 +168,22 @@ update_check() {
rx='/archive/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar\.gz")';; rx='/archive/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar\.gz")';;
*git.sr.ht*) *git.sr.ht*)
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)" pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
url="https://git.sr.ht/$pkgurlname/refs" url="https://git.sr.ht/$pkgurlname/refs/rss.xml"
rx='/archive/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar\.gz")';; rx='<guid>\Q'"${url%/*}"'\E/(v-?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=</guid>)' ;;
*pkgs.fedoraproject.org*) *pkgs.fedoraproject.org*)
url="https://pkgs.fedoraproject.org/repo/pkgs/$pkgname" ;; url="https://pkgs.fedoraproject.org/repo/pkgs/$pkgname" ;;
*software.sil.org/downloads/*)
pkgurlname=$(printf '%s\n' "$url" | cut -d/ -f6)
url="https://software.sil.org/$pkgurlname/download/"
pkgname="${pkgname#font-}"
pkgname="${pkgname#sil-}"
_pkgname="${pkgname//-/}"
rx="($_pkgname|${_pkgname}SIL)[_-]\K[0-9.]+(?=\.tar|\.zip)" ;;
*software.sil.org/*)
pkgname="${pkgname#font-}"
pkgname="${pkgname#sil-}"
_pkgname="${pkgname//-/}"
rx="($_pkgname|${_pkgname}SIL)[_-]\K[0-9.]+(?=\.tar|\.zip)" ;;
esac esac
fi fi

View file

@ -64,7 +64,8 @@ XBPS_SUCMD="sudo /bin/sh -c"
# [OPTIONAL] # [OPTIONAL]
# Number of parallel jobs to execute when building packages that # Number of parallel jobs to execute when building packages that
# use make(1) or alike commands. # use make(1) or alike commands. Defaults to the result of nproc(1).
# If nproc(1) is not available, defaults to 1.
# #
#XBPS_MAKEJOBS=4 #XBPS_MAKEJOBS=4
@ -158,3 +159,9 @@ XBPS_SUCMD="sudo /bin/sh -c"
# When unset, newly build package overwrites the older one. # When unset, newly build package overwrites the older one.
# #
#XBPS_PRESERVE_PKGS=yes #XBPS_PRESERVE_PKGS=yes
# [OPTIONAL]
# Show more detailed output in ./xbps-src update-check. Useful for debugging.
# This can also be set or exported as a regular environment variable.
#
#XBPS_UPDATE_CHECK_VERBOSE=yes

View file

@ -28,6 +28,7 @@ nodejs-runtime nodejs
ntp-daemon chrony ntp-daemon chrony
phonon-backend phonon-backend-gstreamer phonon-backend phonon-backend-gstreamer
phonon-qt5-backend phonon-qt5-backend-gstreamer phonon-qt5-backend phonon-qt5-backend-gstreamer
pipewire-session-manager pipewire-session-manager-bootstrap
rkt-stage1 rkt-stage1-coreos rkt-stage1 rkt-stage1-coreos
smtp-server opensmtpd smtp-server opensmtpd
tex texlive tex texlive

View file

@ -1,4 +1,5 @@
# DON'T EDIT THIS FILE # DON'T EDIT THIS FILE
# x86_64/glibc local repositories # x86_64/glibc local repositories
repository=/host/binpkgs/multilib/bootstrap
repository=/host/binpkgs/multilib repository=/host/binpkgs/multilib
repository=/host/binpkgs/multilib/nonfree repository=/host/binpkgs/multilib/nonfree

View file

@ -1,5 +1,6 @@
# DON'T EDIT THIS FILE # DON'T EDIT THIS FILE
# Local repositories # Local repositories
repository=/host/binpkgs/bootstrap
repository=/host/binpkgs repository=/host/binpkgs
repository=/host/binpkgs/nonfree repository=/host/binpkgs/nonfree
repository=/host/binpkgs/debug repository=/host/binpkgs/debug

View file

@ -1,4 +1,5 @@
# aarch64 voidlinux remote repositories # aarch64 voidlinux remote repositories
repository=https://mirrors.servercentral.com/voidlinux/current/aarch64 repository=https://repo-default.voidlinux.org/current/aarch64/bootstrap
repository=https://mirrors.servercentral.com/voidlinux/current/aarch64/nonfree repository=https://repo-default.voidlinux.org/current/aarch64
repository=https://mirrors.servercentral.com/voidlinux/current/aarch64/debug repository=https://repo-default.voidlinux.org/current/aarch64/nonfree
repository=https://repo-default.voidlinux.org/current/aarch64/debug

View file

@ -1,4 +1,5 @@
# aarch64 voidlinux remote repositories # aarch64 voidlinux remote repositories
repository=https://mirrors.servercentral.com/voidlinux/current/aarch64 repository=https://repo-default.voidlinux.org/current/aarch64/bootstrap
repository=https://mirrors.servercentral.com/voidlinux/current/aarch64/nonfree repository=https://repo-default.voidlinux.org/current/aarch64
repository=https://mirrors.servercentral.com/voidlinux/current/aarch64/debug repository=https://repo-default.voidlinux.org/current/aarch64/nonfree
repository=https://repo-default.voidlinux.org/current/aarch64/debug

View file

@ -1,7 +1,8 @@
# voidlinux remote repositories (musl) # voidlinux remote repositories (musl)
repository=https://mirrors.servercentral.com/voidlinux/current/musl repository=https://repo-default.voidlinux.org/current/musl/bootstrap
repository=https://mirrors.servercentral.com/voidlinux/current/musl/nonfree repository=https://repo-default.voidlinux.org/current/musl
repository=https://mirrors.servercentral.com/voidlinux/current/musl/debug repository=https://repo-default.voidlinux.org/current/musl/nonfree
repository=https://repo-default.voidlinux.org/current/musl/debug
# Cereus Linux remote repositories (musl) # Cereus Linux remote repositories (musl)
repository=https://sourceforge.net/projects/cereus-linux/files/repos/cereus-core/x86_64-musl repository=https://sourceforge.net/projects/cereus-linux/files/repos/cereus-core/x86_64-musl

View file

@ -1,3 +1,4 @@
# voidlinux remote repositories (x86_64/glibc) # voidlinux remote repositories (x86_64/glibc)
repository=https://mirrors.servercentral.com/voidlinux/current/multilib repository=https://repo-default.voidlinux.org/current/multilib/bootstrap
repository=https://mirrors.servercentral.com/voidlinux/current/multilib/nonfree repository=https://repo-default.voidlinux.org/current/multilib
repository=https://repo-default.voidlinux.org/current/multilib/nonfree

View file

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

View file

@ -290,6 +290,11 @@ check_native_arch() {
else else
export XBPS_ARCH=$(xbps-uhelper arch) export XBPS_ARCH=$(xbps-uhelper arch)
fi fi
elif [ "$XBPS_TARGET" = 'binary-bootstrap' ] && [ "$XBPS_TARGET_PKG" ]; then
# ^ special case for binary-bootstrap for e.g:
# x86_64 -> x86_64-musl
# x86_64 -> i686
export XBPS_ARCH=$XBPS_TARGET_PKG
else else
LDD=$(ldd --version 2>&1|head -1) LDD=$(ldd --version 2>&1|head -1)
if [[ $LDD == *musl* ]]; then if [[ $LDD == *musl* ]]; then
@ -375,7 +380,6 @@ eval set -- $(getopt "$XBPS_OPTSTRING" "$@");
# Options are saved as XBPS_ARG_FOO instead of XBPS_FOO for now; this is # Options are saved as XBPS_ARG_FOO instead of XBPS_FOO for now; this is
# because configuration files may override those and we want arguments to # because configuration files may override those and we want arguments to
# take precedence over configuration files # take precedence over configuration files
while getopts "$XBPS_OPTSTRING" opt; do while getopts "$XBPS_OPTSTRING" opt; do
case $opt in case $opt in
1) XBPS_ARG_BUILD_ONLY_ONE_PKG=yes; XBPS_OPTIONS+=" -1";; 1) XBPS_ARG_BUILD_ONLY_ONE_PKG=yes; XBPS_OPTIONS+=" -1";;
@ -490,6 +494,13 @@ fi
[ -n "$XBPS_ARG_CHECK_PKGS" ] && XBPS_CHECK_PKGS="$XBPS_ARG_CHECK_PKGS" [ -n "$XBPS_ARG_CHECK_PKGS" ] && XBPS_CHECK_PKGS="$XBPS_ARG_CHECK_PKGS"
[ -n "$XBPS_ARG_MAKEJOBS" ] && XBPS_MAKEJOBS="$XBPS_ARG_MAKEJOBS" [ -n "$XBPS_ARG_MAKEJOBS" ] && XBPS_MAKEJOBS="$XBPS_ARG_MAKEJOBS"
# Default to nproc for XBPS_MAKEJOBS if not set and nproc is available
if command -v nproc >/dev/null ; then
: ${XBPS_MAKEJOBS:=$(nproc)}
else
: ${XBPS_MAKEJOBS:=1}
fi
export XBPS_BUILD_ONLY_ONE_PKG XBPS_SKIP_REMOTEREPOS XBPS_BUILD_FORCEMODE \ export XBPS_BUILD_ONLY_ONE_PKG XBPS_SKIP_REMOTEREPOS XBPS_BUILD_FORCEMODE \
XBPS_INFORMATIVE_RUN XBPS_TEMP_MASTERDIR XBPS_BINPKG_EXISTS \ XBPS_INFORMATIVE_RUN XBPS_TEMP_MASTERDIR XBPS_BINPKG_EXISTS \
XBPS_USE_GIT_REVS XBPS_CHECK_PKGS XBPS_DEBUG_PKGS XBPS_SKIP_DEPS \ XBPS_USE_GIT_REVS XBPS_CHECK_PKGS XBPS_DEBUG_PKGS XBPS_SKIP_DEPS \