galeb

Једноставна статичка дистрибуција заснована на musl-у
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување b0a8f9dbaed1c15d43d98a31465f2fe1b563a717
родитељ 909d252853ab7c7b3e98ef5371894d3c2ea0c34b
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Tue, 12 Jul 2022 12:53:11 +0200

Chroot up to gzip

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
M02-prep-chroot.sh | 4+++-
M03-chroot.sh | 386++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------
Mlib/fun.sh | 5+++--
Apat-11.2.1/mandoc-galeb/test-recvmsg.patch | 10++++++++++
измењених датотека: 4, додавања: 330(+), брисања: 75(-)

diff --git a/02-prep-chroot.sh b/02-prep-chroot.sh @@ -97,8 +97,10 @@ if [ -e ${GR}/etc/profile ]; then else msg info "Generating %s" "${GR}/etc/profile" cat <<! >${GR}/etc/profile +LC_ALL= +LANG=C.UTF-8 PATH=/${TLD}/bin:/bin:/sbin:/sucks/bin:/sucks/sbin:/plan9/bin -export PATH +export LC_ALL LANG PATH # A more familiar ls lc() diff --git a/03-chroot.sh b/03-chroot.sh @@ -115,8 +115,8 @@ else run_configure . --prefix=/${TLD} run_make run_make install + remove_dir ${G_SRC}/${pkg} ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -233,7 +233,7 @@ fi end_substep msg info "Cleaning up environment" -PATH=/local/bin:/bin:/sucks/bin:/tools/bin:/plan9/bin +PATH=/local/bin:/bin:/sucks/bin:/${TLD}/bin:/plan9/bin export PATH unset CC CXX AR AS RANLIB LD STRIP @@ -248,7 +248,7 @@ fi msg info "Adjusting specs" SPECFILE=$(realpath $(dirname $(gcc -print-libgcc-file-name)))/specs export SPECFILE -gcc -dumpspecs | sed -e 's,/tools,,g' \ +gcc -dumpspecs | sed -e 's,/'${TLD}',,g' \ -e '/\*startfile_prefix_spec:/{n;s,.*,/local/lib/ /lib/ '\ '/sucks/lib/ ,}' \ -e '/\*cpp:/{n;s,$, -I /local/include -I /include '\ @@ -291,7 +291,6 @@ mkpk_install() remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -321,7 +320,6 @@ mkpk_install() } ! mkpk ${pkg} - remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 remove_dir ${G_SRC}/${pkg} @@ -353,15 +351,14 @@ mkpk_install() --disable-static \\ --docdir=/sucks/share/doc/readline-8.1 \\ CFLAGS='-O3 -march=native -mtune=native -pipe' - make ${JN} SHLIB_LIBS='-L/tools/lib -lncursesw' - make SHLIB_LIBS='-L/tools/lib -lncursesw' DESTDIR=/build install + make ${JN} SHLIB_LIBS='-L/'${TLD}'/lib -lncursesw' + make SHLIB_LIBS='-L/'${TLD}'/lib -lncursesw' DESTDIR=/build install } ! mkpk ${pkg} remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -396,7 +393,6 @@ mkpk_install() remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -441,9 +437,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -516,7 +512,7 @@ else if [ ! -e config.mk.orig ]; then cp config.mk config.mk.orig - /tools/bin/sed -i -e 's,/usr/local\(/plan9\),\1,g' \ + /${TLD}/bin/sed -i -e 's,/usr/local\(/plan9\),\1,g' \ -e 's,^CFLAGS\s\++= ,&-static --static -fcommon ,g' \ -e 's,^LDFLAGS\s\++= ,&-static --static -fcommon ,g' \ -e 's,^OBJTYPE\s\+= 386,#&,g' \ @@ -525,7 +521,7 @@ else fi if [ ! -e std.mk.orig ]; then cp std.mk std.mk.orig - /tools/bin/sed -i -e 's,^#\(\s\+@strip.*\),\1,' std.mk + /${TLD}/bin/sed -i -e 's,^#\(\s\+@strip.*\),\1,' std.mk fi cat <<! >MKPK mkpk_name() @@ -562,7 +558,7 @@ checked-for-s.patch \ done msg info "Cleaning empty man pages" - /tools/bin/find . -name '[a-z]*\.[0-9]*' -empty -exec rm -f {} \; + /${TLD}/bin/find . -name '[a-z]*\.[0-9]*' -empty -exec rm -f {} \; cat <<! >MKPK mkpk_name() @@ -614,9 +610,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -786,14 +782,14 @@ else extract_pkg ${G_SRC} ${pkg} ${pkg}.tar.xz ( cd_or_fail ${G_SRC}/${pkg} - /tools/bin/sed -i \ + /${TLD}/bin/sed -i \ -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD SHA512@' \ -e 's@/var/spool/mail@/var/mail@' etc/login.defs # The limit has been lowered in musl, and it remained the same # in shadow 4.9 # - *Not* fixed in 4.11.1, so this is still needed. - /tools/bin/sed -i \ + /${TLD}/bin/sed -i \ -e 's/^\(#define SHA_ROUNDS_MAX 9999999\)99/\1/' \ libmisc/salt.c @@ -832,7 +828,7 @@ end_substep msg info "Setting up /etc/default/useradd" useradd -D --gid 999 -/tools/bin/sed -i \ +/${TLD}/bin/sed -i \ -e 's/yes/no/' \ -e 's,/bin/bash,/bin/mksh,' \ /etc/default/useradd @@ -880,7 +876,7 @@ mkpk_install() export CFLAGS CXXFLAGS DESTDIR if false; then - SED=/tools/bin/sed libat_cv_have_ifunc=no \\ + SED=/${TLD}/bin/sed libat_cv_have_ifunc=no \\ ./configure \\ --prefix=/sucks \\ --build=${GR_TRI} \\ @@ -951,9 +947,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -967,7 +963,7 @@ LD=ld STRIP=strip export CC CXX AR AS RANLIB LD STRIP -PATH=/bin:/sucks/bin:/tools/bin +PATH=/bin:/sucks/bin:/${TLD}/bin export PATH for lib in gcc_s.so gcc_s.so.1 stdc++.a stdc++.so stdc++.so.6 @@ -1006,18 +1002,19 @@ mkpk_install() --docdir=/share/doc/${pkg} \\ --sharedir=/share \\ --config-musl \\ - --sysincludepaths=/include:/sucks/include \\ + --sysincludepaths=/local/include:/include:/sucks/include \\ --crtprefix=/lib \\ - --libpaths=/lib:/sucks/lib + --libpaths=/local/lib:/lib:/sucks/lib + make clean make ${JN} make install-strip } ! mkpk ${pkg} + #remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - #remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1071,9 +1068,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1111,9 +1108,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1152,9 +1149,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1191,9 +1188,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1230,9 +1227,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1263,9 +1260,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1306,9 +1303,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1335,9 +1332,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1371,9 +1368,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1407,9 +1404,9 @@ mkpk_install() } ! mkpk ${pkg} - #unpack_pkg ${pkg} / + remove_dir ${G_SRC}/${pkg} + unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1442,9 +1439,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1480,9 +1477,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1518,9 +1515,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1556,9 +1553,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1604,9 +1601,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1676,9 +1673,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1709,9 +1706,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1750,9 +1747,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1786,9 +1783,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1822,9 +1819,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1858,9 +1855,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1897,9 +1894,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1936,9 +1933,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -1975,9 +1972,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2020,9 +2017,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2067,9 +2064,9 @@ LDFLAGS=-static --static -fcommon } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2100,9 +2097,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2147,7 +2144,6 @@ mkpk_install() remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2193,9 +2189,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2236,9 +2232,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2280,9 +2276,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2349,9 +2345,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2385,9 +2381,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2418,9 +2414,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2483,9 +2479,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2565,9 +2561,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2601,9 +2597,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2642,9 +2638,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2686,9 +2682,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2734,9 +2730,9 @@ mkpk_install() } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / ) || exit 1 - remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2745,6 +2741,14 @@ if [ -x /bin/locale ]; then msg info "%s exists, skipping %s" /bin/locale ${pkg} elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then unpack_pkg ${pkg} / + msg warn "Note: If this is the first time you are running this" + msg warn "installation script, at this point you should recom-" + msg warn "pile all packages with i18n built thus far, to make " + msg warn "use of the newly-built locale support. If having lo-" + msg warn "cale support in packages built thus far is not im-" + msg warn "portant to you, ignore this. " + msg query "Press Enter" + read -r enter else ( cd_or_fail ${G_SRC}/${pkg} @@ -2762,15 +2766,25 @@ mkpk_install() DESTDIR=/build export CFLAGS LDFLAGS DESTDIR - cmake --install-prefix / -B../build . || exit 1 - make -C ../build ${JN} || exit 1 - make -C ../build install + mkdir /cmake-build + cd /cmake-build + cmake --install-prefix / ../${pkg} || exit 1 + make -C /cmake-build ${JN} || exit 1 + make -C /cmake-build install } ! mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} unpack_pkg ${pkg} / + msg warn "Note: If this is the first time you are running this" + msg warn "installation script, at this point you should recom-" + msg warn "pile all packages with i18n built thus far, to make " + msg warn "use of the newly-built locale support. If having lo-" + msg warn "cale support in packages built thus far is not im-" + msg warn "portant to you, ignore this. " + msg query "Press Enter" + read -r enter ) || exit 1 - #remove_dir ${G_SRC}/${pkg} fi end_substep @@ -2779,12 +2793,19 @@ if [ -x /bin/mandoc ]; then msg info "%s exists, skipping %s" /bin/mandoc ${pkg} elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then unpack_pkg ${pkg} / + msg warn "You need to run \`makewhatis [dir]\` for every direc-" + msg warn "tory in MANPATH_*: " + msg warn "/share/man:/X11R6/man:/sucks/share/man:/plan9/share/man" else extract_pkg ${G_SRC} mdocml-1.14.1 mdocml-1.14.1.tar.gz extract_pkg ${G_SRC} ${pkg} ${pkg}.tar.gz ( cd_or_fail ${G_SRC}/${pkg} + # mandoc passes NULL to recvmsg, which it shouldn't + apply_patch final-system -Np0 -i \ + ${G_PAT}/mandoc-galeb/test-recvmsg.patch + cat <<! >MKPK mkpk_name() { @@ -2799,8 +2820,8 @@ mkpk_install() export CFLAGS LDFLAGS DESTDIR cat <<@ >configure.local -MANPATH_DEFAULT=/share/man:/X11R6/man:/sucks/share/man -MANPATH_BASE=/share/man:/X11R6/man:/sucks/share/man +MANPATH_DEFAULT=/share/man:/X11R6/man:/sucks/share/man:/plan9/share/man +MANPATH_BASE=/share/man:/X11R6/man:/sucks/share/man:/plan9/share/man OSNAME='Galeb 2.0' PREFIX=/ SBINDIR=/bin @@ -2815,14 +2836,235 @@ BUILD_CATMAN=1 ./configure || exit 1 make ${JN} || exit 1 + make install +} +! + mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} + unpack_pkg ${pkg} / + msg warn "You need to run \`makewhatis [dir]\` for every direc-" + msg warn "tory in MANPATH_*: " + msg warn "/share/man:/X11R6/man:/sucks/share/man:/plan9/share/man" + ) || exit 1 +fi +end_substep + +begin_substep gzip-1.12 +if [ -e /bin/gzip ]; then + msg info "%s exists, skipping %s" /bin/gzip ${pkg} +elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then + unpack_pkg ${pkg} / +else + extract_pkg ${G_SRC} ${pkg} ${pkg}.tar.xz + ( + cd_or_fail ${G_SRC}/${pkg} + + cat <<! >MKPK +mkpk_name() +{ + printf "%s" "${pkg}" +} + +mkpk_install() +{ + CFLAGS='-O3 -march=native -mtune=native -pipe -static --static -fcommon' + CXXFLAGS=\${CFLAGS} + LDFLAGS='-static --static -fcommon' + DESTDIR=/build + export CFLAGS CXXFLAGS LDFLAGS DESTDIR + + DEFS=NO_ASM gl_cv_func_fflush_stdin=yes \\ + ./configure --prefix=/ + + make ${JN} || exit 1 make install-strip } ! mkpk ${pkg} - #unpack_pkg ${pkg} / + remove_dir ${G_SRC}/${pkg} + unpack_pkg ${pkg} / ) || exit 1 - #remove_dir ${G_SRC}/${pkg} fi end_substep +begin_substep mksh-20220709 +if [ -e /bin/mksh ] && [ ! -L /bin/mksh ]; then + msg info "%s exists, skipping %s" /bin/mksh ${pkg} +elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then + unpack_pkg ${pkg} / +else + ( + cd_or_fail ${G_SRC}/${pkg} + + cat <<! >MKPK +mkpk_name() +{ + printf "%s" "${pkg}" +} + +mkpk_install() +{ + CFLAGS='-O3 -march=native -mtune=native -pipe -static --static -fcommon' + LDSTATIC='-static --static -fcommon' + TARGET_OS=Linux + DESTDIR=/build + export CFLAGS LDSTATIC TARGET_OS DESTDIR + + cp() { /${TLD}/bin/cp \$*; } + mkdir() { /${TLD}/bin/mkdir \$*; } + mv() { /${TLD}/bin/mv \$*; } + + mkdir -v build-mksh + cd build-mksh + sh ../Build.sh || exit 1 + + mkdir -pvv /build/bin + mkdir -pv /build/share/doc/${pkg}/examples + ln -s ${pkg} /build/share/doc/mksh + mkdir -pv /build/share/man/man1 + + install -c -s -o root -g root -m 555 mksh /build/bin/mksh + install -c -o root -g root -m 444 ../dot.mkshrc \\ + /build/share/doc/mksh/examples/ + install -c -o root -g root -m 444 FAQ.htm \\ + /build/share/doc/mksh/ + install -c -o root -g root -m 444 ../lksh.1 ../mksh.1 \\ + /build/share/man/man1/ + + cd .. + CPPFLAGS=-DMKSH_BINSHPOSIX + export CPPFLAGS + mkdir -v build-lksh + cd build-lksh + sh ../Build.sh -L || exit 1 + + install -c -s -o root -g root -m 555 lksh /build/bin/lksh + ln -sf lksh /build/bin/sh +} +! + mkpk ${pkg} + #remove_dir ${G_SRC}/${pkg} + unpack_pkg ${pkg} / + ) || exit 1 +fi +end_substep + +begin_substep sbase-20220709 +if [ -e /bin/ls ] && [ ! -L /bin/ls ]; then + msg info "%s exists, skipping %s" /bin/ls ${pkg} +elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then + unpack_pkg ${pkg} / +else + ( + cd_or_fail ${G_SRC}/${pkg} + + cat <<! >MKPK +mkpk_name() +{ + printf "%s" "${pkg}" +} + +mkpk_install() +{ + AR=ar + CC=tcc + export AR CC + + if [ ! -e config.mk.orig ]; then + cp config.mk config.mk.orig + /${TLD}/bin/sed -i -e "s,/usr/local,,g;s, \\<cc\\>, "\\ +"\${CC},g" \\ + -e "s, \\<ar\\>, ${AR},g" \\ + -e "s,^CFLAGS\\s\\+= ,&-static -fcommon ,g" \\ + -e "s,^LDFLAGS\\s\\+= ,&-static -fcommon ,g" config.mk + fi + + make ${JN} || exit 1 + make DESTDIR=/build install +} +! + mkpk ${pkg} + #remove_dir ${G_SRC}/${pkg} + unpack_pkg ${pkg} / + ) || exit 1 +fi +end_substep + +begin_substep ubase-20220709 +if [ -x /bin/id ]; then + msg info "%s exists, skipping %s" /bin/id ${pkg} +elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then + unpack_pkg ${pkg} / +else + ( + cd_or_fail ${G_SRC}/${pkg} + + cat <<! >MKPK +mkpk_name() +{ + printf "%s" "${pkg}" +} + +mkpk_install() +{ + AR=ar + CC=tcc + export AR CC + + if [ ! -e mknod.c.orig ]; then + cp mknod.c mknod.c.orig + /${TLD}/bin/sed -i -z "s,<sys/types.h>\\n,&#include "\\ +"<sys/sysmacros.h>\\n," mknod.c + fi + if [ ! -e util.h.orig ]; then + cp util.h util.h.orig + /${TLD}/bin/sed -i -z "s,\\"arg.h\\"\\n,&#include "\\ +"<sys/sysmacros.h>\\n," util.h + fi + if [ ! -e config.mk.orig ]; then + cp config.mk config.mk.orig + /${TLD}/bin/sed -i -e "s,/usr/local,,g;s, \\<cc\\>, "\\ +"\${CC},g" \\ + -e "s, \\<ar\\>, ${AR},g" \\ + -e "s,^CFLAGS\\s\\+= ,&-static -fcommon ,g" \\ + -e "s,^LDFLAGS\\s\\+= ,&-static -fcommon ,g" \\ + -e "s,^LDLIBS\\s\\+= ,&-lc ,g" config.mk + fi + + make ${JN} || exit 1 + make DESTDIR=/build install + + mkdir -p /build/var/run + :>/build/var/run/utmp + chown root:utmp /build/var/run/utmp + chmod 664 /build/var/run/utmp +} +! + mkpk ${pkg} + #remove_dir ${G_SRC}/${pkg} + unpack_pkg ${pkg} / + ) || exit 1 +fi +end_substep + + +msg info "Regenerating /etc/profile" +cat <<! >/etc/profile +LC_ALL= +LANG=C.UTF-8 +PATH=/local/bin:/bin:/sucks/bin:/plan9/bin:/${TLD}/bin +export LC_ALL LANG PATH + +# A more familiar ls +lc() +{ + /bin/ls \$* | cols +} + +[ -e /etc/mkshrc ] && . /etc/mkshrc +! + +#msg info "Executing /bin/mksh -l +h" +#/bin/mksh -l +h + end_step diff --git a/lib/fun.sh b/lib/fun.sh @@ -244,7 +244,7 @@ git_clone() link_if_ne() { eval dest=\$$# - if [ -L "${dest}" ]; then + if [ -e "${dest}" ]; then #msg info "Symlink %s exists" "${dest}" return fi @@ -346,7 +346,8 @@ mkpk() if [ ${fail} -eq 0 ]; then msg info "mkpk packing..." cd ../build - tar -c $(find . \( -type b -o -type c -o -type f -o -type l \) \ + tar -c $(/${TLD}/bin/find . \( -type b -o -type c -o \ + -type f -o -type l \) \ -cnewer ../timestamp | sort | uniq) | \ xz -9 > ${G_SPKG}/$(mkpk_name).tar.xz && \ cd ${G_SPKG} && \ diff --git a/pat-11.2.1/mandoc-galeb/test-recvmsg.patch b/pat-11.2.1/mandoc-galeb/test-recvmsg.patch @@ -0,0 +1,10 @@ +--- test-recvmsg.c.orig 2022-07-12 10:05:29.206306683 +0200 ++++ test-recvmsg.c 2022-07-12 10:05:54.116403025 +0200 +@@ -4,5 +4,6 @@ + int + main(void) + { +- return recvmsg(-1, NULL, 0) != -1; ++ struct msghdr mh; ++ return recvmsg(-1, &mh, 0) != -1; + }