```sh git grep -l '^patch_args=-Np0' "srcpkgs/$1*/template" | while read template; do for p in ${template%/template}/patches/*; do sed -i ' \,^[+-][+-][+-] /dev/null,b /^[*-]\+ [0-9]\+\(,[0-9]\+\)\? [*-]\+$/b s,^[*][*][*] ,&a/, /^--- /{ s,\(^--- \)\(./\)*,\1a/, s,[.-][Oo][Rr][Ii][Gg]\([ /]\),\1, s/[.-][Oo][Rr][Ii][Gg]$// s/[.]patched[.]\([^.]\)/.\1/ h } /^+++ -/{ g s/^--- a/+++ b/ b } s,\(^+++ \)\(./\)*,\1b/, ' "$p" done sed -i '/^patch_args=/d' $template done ```
128 lines
3.1 KiB
Bash
128 lines
3.1 KiB
Bash
# Template file for 'busybox'
|
|
pkgname=busybox
|
|
version=1.32.1
|
|
revision=3
|
|
hostmakedepends="perl"
|
|
checkdepends="tar which zip"
|
|
short_desc="Swiss Army Knife of Embedded Linux"
|
|
maintainer="Cameron Nemo <cnemo@tutanota.com>"
|
|
license="GPL-2.0-only"
|
|
homepage="https://www.busybox.net"
|
|
distfiles="${homepage}/downloads/busybox-${version}.tar.bz2"
|
|
checksum=9d57c4bd33974140fd4111260468af22856f12f5b5ef7c70c8d9b75c712a0dee
|
|
|
|
_alternatives_core="
|
|
ash:ash:/usr/bin/busybox
|
|
awk:awk:/usr/bin/busybox
|
|
hostname:hostname:/usr/bin/busybox
|
|
sh:sh:/usr/bin/busybox
|
|
vi:vi:/usr/bin/busybox
|
|
logger:logger:/usr/bin/busybox"
|
|
|
|
_alternatives="
|
|
${_alternatives_core}
|
|
ntpd:ntpd:/usr/bin/busybox
|
|
ntpd:ntpd:/etc/sv/busybox-ntpd"
|
|
|
|
alternatives="${_alternatives}"
|
|
register_shell="/usr/bin/ash"
|
|
|
|
_patch_config() {
|
|
local t="$1"
|
|
shift
|
|
while [ "$1" ]; do
|
|
local p="$1"
|
|
shift
|
|
echo "Applying $p..."
|
|
patch "${t}/.config" <"${FILESDIR}/dotconfig.d/${p}.patch"
|
|
done
|
|
}
|
|
|
|
do_configure() {
|
|
mkdir -p src
|
|
mv * src || true
|
|
|
|
local t
|
|
for t in busybox busybox-static busybox-core busybox-huge; do
|
|
mkdir -p $t
|
|
cp -f ${FILESDIR}/dotconfig ${t}/.config
|
|
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
*-musl) vsed -i -e /CONFIG_FEATURE_VI_REGEX_SEARCH/s/y/n/ \
|
|
${t}/.config;;
|
|
esac
|
|
|
|
if [ "$CROSS_BUILD" ]; then
|
|
vsed -i -e \
|
|
"s,\(CONFIG_CROSS_COMPILER_PREFIX\).*,\1=\"${XBPS_CROSS_TRIPLET}-\",g" \
|
|
${t}/.config
|
|
fi
|
|
done
|
|
|
|
_patch_config busybox udhcpc ntpd
|
|
_patch_config busybox-static udhcpc ntpd static
|
|
_patch_config busybox-huge udhcpc ntpd httpd mdev sysklogd huge
|
|
|
|
for t in busybox-core busybox busybox-static busybox-huge; do
|
|
make -C "${t}" KBUILD_SRC="${wrksrc}/src" -f "${wrksrc}/src/Makefile" oldconfig
|
|
make -C "${t}" KBUILD_SRC="${wrksrc}/src" -f "${wrksrc}/src/Makefile" prepare "${makejobs}"
|
|
done
|
|
|
|
if [ "$SOURCE_DATE_EPOCH" ]; then
|
|
# rewrite date with the one from the date wrapper.
|
|
d=$(date +"%F %T %Z")
|
|
sed -i "s/\(#define AUTOCONF_TIMESTAMP\).*/\1 \"$d\"/" */include/autoconf.h
|
|
fi
|
|
}
|
|
|
|
do_build() {
|
|
for t in busybox-core busybox busybox-static busybox-huge; do
|
|
make -C "${t}" SKIP_STRIP=y "${makejobs}"
|
|
done
|
|
}
|
|
|
|
do_check() {
|
|
for t in busybox-core busybox busybox-static busybox-huge; do
|
|
make -C "${t}" "${makejobs}" \
|
|
SKIP_KNOWN_BUGS=yes SKIP_INTERNET_TESTS=yes \
|
|
check
|
|
done
|
|
}
|
|
|
|
do_install() {
|
|
vbin busybox/busybox_unstripped busybox
|
|
vman busybox/docs/busybox.1
|
|
vsv busybox-ntpd
|
|
}
|
|
|
|
busybox-core_package() {
|
|
short_desc+=" (essential applets)"
|
|
conflicts="busybox>=0 busybox-huge>=0"
|
|
alternatives="${_alternatives_core}"
|
|
register_shell="/usr/bin/ash"
|
|
pkg_install() {
|
|
vbin busybox-core/busybox_unstripped busybox
|
|
vman busybox-core/docs/busybox.1
|
|
}
|
|
}
|
|
|
|
busybox-static_package() {
|
|
short_desc+=" (statically linked)"
|
|
pkg_install() {
|
|
vbin busybox-static/busybox busybox.static
|
|
}
|
|
}
|
|
|
|
busybox-huge_package() {
|
|
short_desc+=" (extra applets)"
|
|
conflicts="busybox>=0 busybox-core>=0"
|
|
alternatives="${_alternatives}"
|
|
register_shell="/usr/bin/ash"
|
|
pkg_install() {
|
|
vbin busybox-huge/busybox_unstripped busybox
|
|
vman busybox-huge/docs/busybox.1
|
|
vsv busybox-ntpd
|
|
vsv busybox-syslogd
|
|
vsv busybox-klogd
|
|
}
|
|
}
|