summaryrefslogtreecommitdiff
path: root/baserock/strata/core
diff options
context:
space:
mode:
Diffstat (limited to 'baserock/strata/core')
-rw-r--r--baserock/strata/core/acl.morph6
-rw-r--r--baserock/strata/core/attr.morph19
-rw-r--r--baserock/strata/core/autoconf-tarball.morph5
-rw-r--r--baserock/strata/core/autoconf.morph5
-rw-r--r--baserock/strata/core/automake.morph8
-rw-r--r--baserock/strata/core/bash.morph37
-rw-r--r--baserock/strata/core/bison.morph5
-rw-r--r--baserock/strata/core/bzip2.morph10
-rw-r--r--baserock/strata/core/ca-certificates.morph23
-rw-r--r--baserock/strata/core/cmake.morph8
-rw-r--r--baserock/strata/core/cpython.morph12
-rw-r--r--baserock/strata/core/curl.morph9
-rw-r--r--baserock/strata/core/e2fsprogs.morph22
-rw-r--r--baserock/strata/core/flex.morph14
-rw-r--r--baserock/strata/core/gdbm.morph8
-rw-r--r--baserock/strata/core/gettext-tarball.morph5
-rw-r--r--baserock/strata/core/git.morph7
-rw-r--r--baserock/strata/core/gperf.morph3
-rw-r--r--baserock/strata/core/libcap2.morph6
-rw-r--r--baserock/strata/core/libexpat.morph6
-rw-r--r--baserock/strata/core/libffi.morph8
-rw-r--r--baserock/strata/core/libtool-tarball.morph5
-rw-r--r--baserock/strata/core/libtool.morph5
-rw-r--r--baserock/strata/core/linux-pam.morph9
-rw-r--r--baserock/strata/core/mini-utils.morph7
-rw-r--r--baserock/strata/core/ncurses.morph45
-rw-r--r--baserock/strata/core/openssl-new.morph15
-rw-r--r--baserock/strata/core/patch.morph5
-rw-r--r--baserock/strata/core/perl.morph16
-rw-r--r--baserock/strata/core/pkg-config.morph5
-rw-r--r--baserock/strata/core/readline.morph8
-rw-r--r--baserock/strata/core/shadow.morph55
-rw-r--r--baserock/strata/core/texinfo-tarball.morph9
-rw-r--r--baserock/strata/core/util-linux.morph11
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