diff options
Diffstat (limited to 'baserock/strata/core')
34 files changed, 421 insertions, 0 deletions
diff --git a/baserock/strata/core/acl.morph b/baserock/strata/core/acl.morph new file mode 100644 index 00000000..23f08c1f --- /dev/null +++ b/baserock/strata/core/acl.morph @@ -0,0 +1,6 @@ +name: acl +kind: chunk +build-commands: +- make +install-commands: +- make DESTDIR="$DESTDIR" install-lib install-dev diff --git a/baserock/strata/core/attr.morph b/baserock/strata/core/attr.morph new file mode 100644 index 00000000..d0bf6976 --- /dev/null +++ b/baserock/strata/core/attr.morph @@ -0,0 +1,19 @@ +name: attr +kind: chunk +build-system: autotools +pre-configure-commands: +- make configure +configure-commands: +- | + ./configure --prefix="$PREFIX" \ + --exec-prefix="$PREFIX" \ + --sbindir="$PREFIX"/sbin \ + --bindir="$PREFIX"/bin \ + --libdir="$PREFIX"/lib \ + --libexecdir="$PREFIX"/lib \ + --enable-lib64=yes \ + --includedir="$PREFIX"/include \ + --mandir="$PREFIX"/share/man \ + --datadir="$PREFIX"/share +install-commands: +- make DESTDIR="$DESTDIR" install-lib install-dev diff --git a/baserock/strata/core/autoconf-tarball.morph b/baserock/strata/core/autoconf-tarball.morph new file mode 100644 index 00000000..fbdc5768 --- /dev/null +++ b/baserock/strata/core/autoconf-tarball.morph @@ -0,0 +1,5 @@ +name: autoconf-tarball +kind: chunk +build-system: autotools +configure-commands: +- ./configure --prefix="$PREFIX" diff --git a/baserock/strata/core/autoconf.morph b/baserock/strata/core/autoconf.morph new file mode 100644 index 00000000..63b95ba8 --- /dev/null +++ b/baserock/strata/core/autoconf.morph @@ -0,0 +1,5 @@ +name: autoconf +kind: chunk +build-system: autotools +pre-configure-commands: +- echo "2.69" > .tarball-version diff --git a/baserock/strata/core/automake.morph b/baserock/strata/core/automake.morph new file mode 100644 index 00000000..282535d6 --- /dev/null +++ b/baserock/strata/core/automake.morph @@ -0,0 +1,8 @@ +name: automake +kind: chunk +build-system: autotools +configure-commands: +- ./bootstrap.sh +- ./configure --prefix="$PREFIX" +build-commands: +- unset DESTDIR; make diff --git a/baserock/strata/core/bash.morph b/baserock/strata/core/bash.morph new file mode 100644 index 00000000..5d0b8f03 --- /dev/null +++ b/baserock/strata/core/bash.morph @@ -0,0 +1,37 @@ +name: bash +kind: chunk +build-system: autotools +configure-commands: +- | + export CFLAGS="${CFLAGS} -DSYS_BASHRC='\"/etc/bash.bashrc\"'"; + ./configure --prefix="$PREFIX" \ + --bindir=/bin \ + --without-bash-malloc \ + --with-installed-readline \ + --enable-readline +post-install-commands: +- | + cat <<'EOF' >> bash.bashrc + # + # /etc/bash.bashrc + # + + # If not running interactively, don't do anything + [[ $- != *i* ]] && return + + # Configure prompt for different terminals + case ${TERM} in + xterm*|rxvt*|Eterm|aterm|kterm|gnome*) + PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"' + + ;; + screen) + PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"' + ;; + esac + + # Enable bash completion if present + [ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion + EOF +- mkdir -p "$DESTDIR"/etc +- install -m 644 bash.bashrc "$DESTDIR"/etc/bash.bashrc diff --git a/baserock/strata/core/bison.morph b/baserock/strata/core/bison.morph new file mode 100644 index 00000000..f122ca3f --- /dev/null +++ b/baserock/strata/core/bison.morph @@ -0,0 +1,5 @@ +name: bison +kind: chunk +build-system: autotools +pre-configure-commands: +- sh bootstrap --skip-po --no-git --gnulib-srcdir=gnulib diff --git a/baserock/strata/core/bzip2.morph b/baserock/strata/core/bzip2.morph new file mode 100644 index 00000000..f4bdb794 --- /dev/null +++ b/baserock/strata/core/bzip2.morph @@ -0,0 +1,10 @@ +name: bzip2 +kind: chunk +configure-commands: +- sed -i -rf bzip2.morph-makefix.sed Makefile +build-commands: +- make -f Makefile-libbz2_so +- make +install-commands: +- make DESTDIR="$DESTDIR" PREFIX="$PREFIX" install +- install libbz2.so* "$DESTDIR$PREFIX/lib" diff --git a/baserock/strata/core/ca-certificates.morph b/baserock/strata/core/ca-certificates.morph new file mode 100644 index 00000000..5bdb18ea --- /dev/null +++ b/baserock/strata/core/ca-certificates.morph @@ -0,0 +1,23 @@ +name: ca-certificates +kind: chunk +build-system: manual +build-commands: +- make +install-commands: +- mkdir -p "$DESTDIR"/usr/share/ca-certificates +- mkdir -p "$DESTDIR"/usr/sbin +- make DESTDIR="$DESTDIR" install +- mkdir "$DESTDIR"/etc +- | + cd "$DESTDIR"/usr/share/ca-certificates + find * -type f > "$DESTDIR"/etc/ca-certificates.conf +- | + export CERTSCONF="$DESTDIR/etc/ca-certificates.conf" + export CERTSDIR="$DESTDIR/usr/share/ca-certificates" + export ETCCERTSDIR="$DESTDIR/etc/ssl/certs" + mkdir -p "$ETCCERTSDIR" + ./sbin/update-ca-certificates +system-integration: + ca-certificates-misc: + 00-update-ca-certs: + - update-ca-certificates diff --git a/baserock/strata/core/cmake.morph b/baserock/strata/core/cmake.morph new file mode 100644 index 00000000..1d310ef4 --- /dev/null +++ b/baserock/strata/core/cmake.morph @@ -0,0 +1,8 @@ +name: cmake +kind: chunk +configure-commands: +- ./bootstrap --prefix="$PREFIX" --docdir=/share/doc/cmake --mandir=/share/man +build-commands: +- make +install-commands: +- make DESTDIR="$DESTDIR" install diff --git a/baserock/strata/core/cpython.morph b/baserock/strata/core/cpython.morph new file mode 100644 index 00000000..e2f59278 --- /dev/null +++ b/baserock/strata/core/cpython.morph @@ -0,0 +1,12 @@ +name: cpython +kind: chunk +build-system: autotools +configure-commands: +- | + ./configure --prefix="$PREFIX" \ + --enable-shared \ + --with-ensurepip=upgrade \ + --with-system-expat \ + --with-system-ffi +post-install-commands: +- test -x "$DESTDIR"/"$PREFIX"/bin/python2 || ln -s python2.7 "$DESTDIR"/"$PREFIX"/bin/python2 diff --git a/baserock/strata/core/curl.morph b/baserock/strata/core/curl.morph new file mode 100644 index 00000000..e245688c --- /dev/null +++ b/baserock/strata/core/curl.morph @@ -0,0 +1,9 @@ +name: curl +kind: chunk +configure-commands: +- ./buildconf +- ./configure --disable-manual --prefix="$PREFIX" +build-commands: +- make +install-commands: +- make DESTDIR="$DESTDIR" install diff --git a/baserock/strata/core/e2fsprogs.morph b/baserock/strata/core/e2fsprogs.morph new file mode 100644 index 00000000..55ac486c --- /dev/null +++ b/baserock/strata/core/e2fsprogs.morph @@ -0,0 +1,22 @@ +name: e2fsprogs +kind: chunk +build-system: autotools +configure-commands: +# Configure with the usual paths for binaries and config +# but also disable whatever we can that is already provided by util-linux +# Disabling e2fsprofs' libblkid does not work, but we don't have to +# install it. +- | + ./configure --prefix="$PREFIX" --sysconfdir=/etc \ + --disable-libuuid --disable-uuidd --disable-libblkid +install-commands: +# e2fsprogs also includes tools that are provided by util-linux, so we +# need to selectively exclude them. Removing them directly from DESTDIR +# causes problems, so we need to remove them beforehand. +- | + td="$(mktemp -d)" + make DESTDIR="$td" install + make DESTDIR="$td" install-libs + find "$td" \( -name blkid -o -name findfs -o \) -delete + find "$td" \( -name blkid.8 -o -name findfs.8 \) -delete + mv "$td"/* "$DESTDIR" diff --git a/baserock/strata/core/flex.morph b/baserock/strata/core/flex.morph new file mode 100644 index 00000000..615bf79e --- /dev/null +++ b/baserock/strata/core/flex.morph @@ -0,0 +1,14 @@ +name: flex +kind: chunk +pre-configure-commands: +- autoreconf -ivf +configure-commands: +- ./configure --prefix="$PREFIX" +build-commands: +- make dist_doc_DATA= +install-commands: +- make dist_doc_DATA= DESTDIR="$DESTDIR" install +- ln -s libfl.a "$DESTDIR$PREFIX/lib/libl.a" +- echo "#!$PREFIX/bin/sh" >"$DESTDIR$PREFIX/bin/lex" +- echo 'exec '"$PREFIX"'/bin/flex -l "$@"' >>"$DESTDIR$PREFIX/bin/lex" +- chmod 755 "$DESTDIR$PREFIX/bin/lex" diff --git a/baserock/strata/core/gdbm.morph b/baserock/strata/core/gdbm.morph new file mode 100644 index 00000000..6bec33e0 --- /dev/null +++ b/baserock/strata/core/gdbm.morph @@ -0,0 +1,8 @@ +name: gdbm +kind: chunk +configure-commands: +- ./configure --prefix="$PREFIX" --enable-libgdbm-compat --disable-nls +build-commands: +- make MANS= INFO_DEPS= +install-commands: +- make MANS= INFO_DEPS= DESTDIR="$DESTDIR" install diff --git a/baserock/strata/core/gettext-tarball.morph b/baserock/strata/core/gettext-tarball.morph new file mode 100644 index 00000000..4983b484 --- /dev/null +++ b/baserock/strata/core/gettext-tarball.morph @@ -0,0 +1,5 @@ +name: gettext-tarball +kind: chunk +build-system: autotools +configure-commands: +- ./configure --prefix="$PREFIX" diff --git a/baserock/strata/core/git.morph b/baserock/strata/core/git.morph new file mode 100644 index 00000000..765f4a5c --- /dev/null +++ b/baserock/strata/core/git.morph @@ -0,0 +1,7 @@ +name: git +kind: chunk +build-system: autotools +pre-configure-commands: +- make configure +build-commands: +- make all diff --git a/baserock/strata/core/gperf.morph b/baserock/strata/core/gperf.morph new file mode 100644 index 00000000..e4f598c5 --- /dev/null +++ b/baserock/strata/core/gperf.morph @@ -0,0 +1,3 @@ +name: gperf +kind: chunk +build-system: autotools diff --git a/baserock/strata/core/libcap2.morph b/baserock/strata/core/libcap2.morph new file mode 100644 index 00000000..3e4f205e --- /dev/null +++ b/baserock/strata/core/libcap2.morph @@ -0,0 +1,6 @@ +name: libcap2 +kind: chunk +build-commands: +- make prefix="$PREFIX" +install-commands: +- make prefix="$PREFIX" DESTDIR="$DESTDIR" RAISE_SETFCAP=no install lib=lib diff --git a/baserock/strata/core/libexpat.morph b/baserock/strata/core/libexpat.morph new file mode 100644 index 00000000..05285c0d --- /dev/null +++ b/baserock/strata/core/libexpat.morph @@ -0,0 +1,6 @@ +name: libexpat +kind: chunk +build-system: autotools +pre-configure-commands: +- ./buildconf.sh +- automake --add-missing --copy || true diff --git a/baserock/strata/core/libffi.morph b/baserock/strata/core/libffi.morph new file mode 100644 index 00000000..174477af --- /dev/null +++ b/baserock/strata/core/libffi.morph @@ -0,0 +1,8 @@ +name: libffi +kind: chunk +build-system: autotools +install-commands: +- make DESTDIR="$DESTDIR"/ install +- mkdir -p "$DESTDIR"/usr/include +- cp "$TARGET"/include/ffi.h "$DESTDIR"/usr/include/ +- cp "$TARGET"/include/ffitarget.h "$DESTDIR"/usr/include/ diff --git a/baserock/strata/core/libtool-tarball.morph b/baserock/strata/core/libtool-tarball.morph new file mode 100644 index 00000000..65a3edbc --- /dev/null +++ b/baserock/strata/core/libtool-tarball.morph @@ -0,0 +1,5 @@ +name: libtool-tarball +kind: chunk +build-system: autotools +configure-commands: +- ./configure --prefix="$PREFIX" diff --git a/baserock/strata/core/libtool.morph b/baserock/strata/core/libtool.morph new file mode 100644 index 00000000..04263ac9 --- /dev/null +++ b/baserock/strata/core/libtool.morph @@ -0,0 +1,5 @@ +name: libtool +kind: chunk +build-system: autotools +pre-configure-commands: +- ./bootstrap diff --git a/baserock/strata/core/linux-pam.morph b/baserock/strata/core/linux-pam.morph new file mode 100644 index 00000000..71ad98e9 --- /dev/null +++ b/baserock/strata/core/linux-pam.morph @@ -0,0 +1,9 @@ +name: linux-pam +kind: chunk +build-system: autotools +pre-configure-commands: +- autoreconf -ivf +configure-commands: +# libdir has to be specified or it'll go into lib64. It has to be /lib because +# systemd installs its pam library into /lib/security. +- ./configure --prefix="$PREFIX" --libdir="/lib" diff --git a/baserock/strata/core/mini-utils.morph b/baserock/strata/core/mini-utils.morph new file mode 100644 index 00000000..a3d1109e --- /dev/null +++ b/baserock/strata/core/mini-utils.morph @@ -0,0 +1,7 @@ +name: mini-utils +kind: chunk +build-system: manual +build-commands: +- make +install-commands: +- make PREFIX="$PREFIX" DESTDIR="$DESTDIR" install diff --git a/baserock/strata/core/ncurses.morph b/baserock/strata/core/ncurses.morph new file mode 100644 index 00000000..42acb481 --- /dev/null +++ b/baserock/strata/core/ncurses.morph @@ -0,0 +1,45 @@ +name: ncurses +kind: chunk +configure-commands: +- LDCONFIG=true ./configure --with-shared --without-debug --enable-widec +build-commands: +- make +install-commands: +- make DESTDIR="$DESTDIR" install +post-install-commands: +- | + # lfs recommends some alterations for software that looks for + # libcurses instead of libncurses + # it's more convenient to have this in a separate file than the + # morph as less strings have to be escaped and comments are possible + + # some software expects to find libcurses in /lib + mkdir -p "$DESTDIR/lib" + mv "$DESTDIR"/"$PREFIX"/lib/libncursesw.so.5* "$DESTDIR"/lib + ln -sf ../../lib/libncursesw.so.5 "$DESTDIR"/"$PREFIX"/lib/libncursesw.so + + # some linker tricks for libraries that look for non-wide character + # versions of ncurses + for lib in ncurses form panel menu; do + # remove non-wide shared object + rm -f "$DESTDIR/${PREFIX}/lib/lib${lib}.so" + # use a linker script to find the wide character variant + echo "INPUT(-l${lib}w)" >"$DESTDIR/${PREFIX}/lib/lib${lib}.so" + # symlink the non-shared library + ln -sf "lib${lib}w.a" "$DESTDIR/${PREFIX}/lib/lib${lib}.a" + done + ln -sf libncurses++w.a "$DESTDIR/${PREFIX}/lib/libncurses++.a" + + # redirect software that looks for libcurses + rm -f "$DESTDIR/${PREFIX}/lib/libcursesw.so" + echo "INPUT(-lncursesw)" >"$DESTDIR/${PREFIX}/lib/libcursesw.so" + ln -sf libncurses.so "$DESTDIR/${PREFIX}/lib/libcurses.so" + ln -sf libncursesw.a "$DESTDIR/${PREFIX}/lib/libcursesw.a" + ln -sf libncurses.a "$DESTDIR/${PREFIX}/lib/libcurses.a" + + # install documentation + mkdir -p "$DESTDIR/${PREFIX}/share/doc/ncurses" + cp -R doc/* "$DESTDIR/${PREFIX}/share/doc/ncurses" + + # remove 'clear' and 'reset' executables, busybox provides them + rm -f "$DESTDIR/${PREFIX}/bin/clear" "$DESTDIR/${PREFIX}/bin/reset" diff --git a/baserock/strata/core/openssl-new.morph b/baserock/strata/core/openssl-new.morph new file mode 100644 index 00000000..2ed14ff2 --- /dev/null +++ b/baserock/strata/core/openssl-new.morph @@ -0,0 +1,15 @@ +name: openssl-new +kind: chunk +max-jobs: 1 +configure-commands: +- sed -i -e 's,^LIBNAMES=\\(.*\\) padlock \\(.*\\),LIBNAMES=\\1 \\2,g' engines/Makefile +- | + if [ "$(uname -m)" = "ppc64" ]; then + sh ./Configure linux-ppc64 --openssldir=/etc/ssl --prefix="${PREFIX-/usr}" --libdir=lib shared + else + ./config --openssldir=/etc/ssl --prefix="${PREFIX-/usr}" --libdir=lib shared + fi +build-commands: +- make +install-commands: +- make INSTALL_PREFIX="$DESTDIR" install_sw diff --git a/baserock/strata/core/patch.morph b/baserock/strata/core/patch.morph new file mode 100644 index 00000000..b7f146ef --- /dev/null +++ b/baserock/strata/core/patch.morph @@ -0,0 +1,5 @@ +name: patch +kind: chunk +build-system: autotools +pre-configure-commands: +- ./bootstrap --skip-po diff --git a/baserock/strata/core/perl.morph b/baserock/strata/core/perl.morph new file mode 100644 index 00000000..ce086aa7 --- /dev/null +++ b/baserock/strata/core/perl.morph @@ -0,0 +1,16 @@ +name: perl +kind: chunk +max-jobs: 1 +configure-commands: +- sh Configure -des -Dprefix="$PREFIX" -Darchlib="$PREFIX/lib/perl" -Dprivlib="$PREFIX/share/perl" + -Dbin="$PREFIX/bin" -Dscriptdir="$PREFIX/bin" -Dman1dir="$PREFIX/share/man/man1" + -Dman3dir="$PREFIX/share/man/man3" -Dsiteprefix="$PREFIX" -Dsitearch="$PREFIX/lib/perl" + -Dsitelib="$PREFIX/share/perl" -Dsitebin="$PREFIX/bin" -Dsitescript="$PREFIX/bin" + -Dsiteman1dir="$PREFIX/share/man/man1" -Dsiteman3dir="$PREFIX/share/man/man3" -Dvendorprefix="$PREFIX" + -Dvendorarch="$PREFIX/lib/perl" -Dvendorlib="$PREFIX/share/perl" -Dvendorbin="$PREFIX/bin" + -Dvendorscript="$PREFIX/bin" -Dvendorman1dir="$PREFIX/share/man/man1" -Dvendorman3dir="$PREFIX/share/man/man3" + -Dpager="$PREFIX/bin/less -isR" -Duseshrplib +build-commands: +- make +install-commands: +- make DESTDIR="$DESTDIR" install diff --git a/baserock/strata/core/pkg-config.morph b/baserock/strata/core/pkg-config.morph new file mode 100644 index 00000000..ed35a2ac --- /dev/null +++ b/baserock/strata/core/pkg-config.morph @@ -0,0 +1,5 @@ +name: pkg-config +kind: chunk +build-system: autotools +configure-commands: +- ./autogen.sh --prefix="$PREFIX" --with-internal-glib diff --git a/baserock/strata/core/readline.morph b/baserock/strata/core/readline.morph new file mode 100644 index 00000000..08c9586c --- /dev/null +++ b/baserock/strata/core/readline.morph @@ -0,0 +1,8 @@ +name: readline +kind: chunk +build-system: autotools +pre-configure-commands: +- cp /usr/share/automake*/config.guess support +- cp /usr/share/automake*/config.sub support +build-commands: +- make SHLIB_LIBS=-lncurses diff --git a/baserock/strata/core/shadow.morph b/baserock/strata/core/shadow.morph new file mode 100644 index 00000000..cdb1ff75 --- /dev/null +++ b/baserock/strata/core/shadow.morph @@ -0,0 +1,55 @@ +name: shadow +kind: chunk +build-system: autotools +pre-configure-commands: +- autoreconf -vfi +configure-commands: +# Installing to /bin so that they overwrite busybox login. +- | + ./configure --with-selinux=no \ + --sysconfdir=/etc \ + --with-libpam=yes \ + --prefix="$PREFIX" \ + --bindir=/bin +post-install-commands: +# Disable things handled by pam instead +- | + for OPTION in FAIL_DELAY \ + FAILLOG_ENAB \ + LASTLOG_ENAB \ + MAIL_CHECK_ENAB \ + OBSCURE_CHECKS_ENAB \ + PORTTIME_CHECKS_ENAB \ + QUOTAS_ENAB \ + CONSOLE MOTD_FILE \ + FTMP_FILE \ + NOLOGINS_FILE \ + ENV_HZ \ + PASS_MIN_LEN \ + SU_WHEEL_ONLY \ + CRACKLIB_DICTPATH \ + PASS_CHANGE_TRIES \ + PASS_ALWAYS_WARN \ + CHFN_AUTH \ + ENVIRON_FILE + do + sed -i -e "s/^${OPTION}.*/# & #This option is handled by PAM instead./" \ + "$DESTDIR/etc/login.defs" + done +# ENCRYPT_METHOD is handled specially with PAM, it will use the default as +# provided in login.defs, but it may be overridden in the pam.d config. +# We do not currently override this though, and it's better to guard oursleves +# against accidentally reducing password security by forgetting to include the +# algorithm as an argument to the PAM module, so ENCRYPT_METHOD is configured +# here, rather than in PAM. +- | + if grep -q '[\s#]ENCRYPT_METHOD' "$DESTDIR/etc/login.defs"; then + sed -i -e '/^[\s#]*ENCRYPT_METHOD /s/.*/ENCRYPT_METHOD SHA512/g' "$DESTDIR/etc/login.defs" + else + echo 'ENCRYPT_METHOD SHA512' >>"$DESTDIR/etc/login.defs" + fi + +# The default pam.d config files have pam_selinux.so as a requirement, even +# when shadow is configured '--with-selinux=no'. We change this default config +# to make this requirement optional. +- sed -i -e 's/\(.*\)required\(.*pam_selinux.so.*\)/\1optional\2/' "$DESTDIR"/etc/pam.d/* diff --git a/baserock/strata/core/texinfo-tarball.morph b/baserock/strata/core/texinfo-tarball.morph new file mode 100644 index 00000000..5f784ba2 --- /dev/null +++ b/baserock/strata/core/texinfo-tarball.morph @@ -0,0 +1,9 @@ +name: texinfo-tarball +kind: chunk +configure-commands: +- ./configure --prefix="$PREFIX" +build-commands: +- make +install-commands: +- make DESTDIR="$DESTDIR" install +- make DESTDIR="$DESTDIR" TEXMF="$PREFIX/share/texmf" install-tex diff --git a/baserock/strata/core/util-linux.morph b/baserock/strata/core/util-linux.morph new file mode 100644 index 00000000..1ec7f8e2 --- /dev/null +++ b/baserock/strata/core/util-linux.morph @@ -0,0 +1,11 @@ +name: util-linux +kind: chunk +build-system: autotools +pre-configure-commands: +- ./autogen.sh +configure-commands: +# Installing to /bin so that they overwrite busybox login. +- | + ./configure --prefix="$PREFIX" \ + --disable-use-tty-group \ + --bindir=/bin |