summaryrefslogtreecommitdiff
path: root/etc/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'etc/tasks')
-rwxr-xr-xetc/tasks/001-openssl.sh73
-rwxr-xr-xetc/tasks/001-packages.sh (renamed from etc/tasks/004-packages.sh)12
-rwxr-xr-xetc/tasks/002-python-packages.sh (renamed from etc/tasks/003-python-packages.sh)17
-rwxr-xr-xetc/tasks/002-python.sh133
-rwxr-xr-xetc/tasks/999-clean.sh3
5 files changed, 16 insertions, 222 deletions
diff --git a/etc/tasks/001-openssl.sh b/etc/tasks/001-openssl.sh
deleted file mode 100755
index 1f99fe8..0000000
--- a/etc/tasks/001-openssl.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/bash
-set -e
-set -x
-
-name="openssl"
-version="1.1.0j"
-
-tarball="${name}-${version}.tar.gz"
-dest="${tarball%%.tar.gz}"
-url="https://www.openssl.org/source/${tarball}"
-prefix="${TOOLCHAIN}"
-
-
-function pre()
-{
- curl -LO "${url}"
- tar xf "${tarball}"
-}
-
-
-function get_system_cacert() {
- local paths=(
- /etc/ssl/cert.pem
- /etc/ssl/cacert.pem
- /etc/ssl/certs/cacert.pem
- /etc/ssl/certs/ca-bundle.crt
- )
- for bundle in "${paths[@]}"
- do
- if [[ -f ${bundle} ]]; then
- echo "${bundle}"
- break
- fi
- done
-}
-
-
-function build()
-{
- pre
- pushd "${dest}"
- export PATH="${prefix}/bin:${PATH}"
- export LDFLAGS="-Wl,-rpath=${prefix}/lib"
- export KERNEL_BITS=64
- target="linux-x86_64"
-
- ./Configure \
- --prefix="${prefix}" \
- --openssldir="ssl" \
- --libdir="lib" \
- ${LDFLAGS} \
- ${target} \
- enable-ec_nistp_64_gcc_128 \
- zlib-dynamic \
- shared \
- no-ssl3-method
- make
- make install MANDIR="${prefix}/share/man" MANSUFFIX=ssl
- popd
- post
-}
-
-function post()
-{
- bundle=$(get_system_cacert)
- install -D -m644 "${bundle}" "${prefix}/ssl/cert.pem"
- rm -rf "${dest}"
- rm -rf "${tarball}"
- echo "All done."
-}
-
-# Main
-build
diff --git a/etc/tasks/004-packages.sh b/etc/tasks/001-packages.sh
index f7d0cad..5d20ee7 100755
--- a/etc/tasks/004-packages.sh
+++ b/etc/tasks/001-packages.sh
@@ -1,17 +1,10 @@
#!/bin/bash
-set -e
set -x
-prefix="${TOOLCHAIN}"
sysconfdir="${TOOLCHAIN_BUILD}/etc"
reqdir=${sysconfdir}/pkgs
blddir=builds
-export PATH="${prefix}/bin:${PATH}"
-export CFLAGS="-I${prefix}/include"
-export LDFLAGS="-L${prefix}/lib -Wl,-rpath=${prefix}/lib"
-export PREFIX="${prefix}"
-
function pre()
{
if [[ ! -d ${reqdir} ]]; then
@@ -30,6 +23,11 @@ function build()
do
chmod +x "${req}"
"${req}"
+ retval=$?
+ if [[ ${retval} != 0 ]]; then
+ echo "BUILD FAILED: ${req}"
+ exit ${retval}
+ fi
done
post
}
diff --git a/etc/tasks/003-python-packages.sh b/etc/tasks/002-python-packages.sh
index cb248ff..bcd0b6f 100755
--- a/etc/tasks/003-python-packages.sh
+++ b/etc/tasks/002-python-packages.sh
@@ -1,15 +1,9 @@
#!/bin/bash
set -x
-# Uses GLOBAL environment variable: PYTHON_VERSION defined by `docker build` argument
-prefix="${TOOLCHAIN}"
sysconfdir="${TOOLCHAIN_BUILD}/etc"
reqdir=${sysconfdir}/pip
-export PATH="${prefix}/bin:${PATH}"
-export CFLAGS="-I${prefix}/include"
-export LDFLAGS="-L${prefix}/lib -Wl,-rpath=${prefix}/lib"
-
function pre()
{
if [[ ! -d ${reqdir} ]]; then
@@ -24,7 +18,12 @@ function build()
# Iterate over pip requirement files
for req in ${reqdir}/*
do
- pip install --upgrade --progress-bar=off -v -r "${req}"
+ pip install --upgrade --progress-bar=off -r "${req}"
+ retval=$?
+ if [[ ${retval} != 0 ]]; then
+ echo "BUILD FAILED: ${req}"
+ exit ${retval}
+ fi
done
post
}
@@ -32,8 +31,8 @@ function build()
function post()
{
rm -rf ~/.cache/pip
- [[ -d src ]] && rm -rf src
- [[ -f gmon.out ]] && rm -rf gmon.out
+ [[ -d src ]] && rm -rf src || true
+ [[ -f gmon.out ]] && rm -rf gmon.out || true
}
build
diff --git a/etc/tasks/002-python.sh b/etc/tasks/002-python.sh
deleted file mode 100755
index d7db12f..0000000
--- a/etc/tasks/002-python.sh
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/bin/bash
-set -e
-set -x
-
-python_version="${PYTHON_VERSION}"
-python_basever="${python_version%.*}"
-
-if [[ ! ${python_version} || ! ${python_basever} ]]; then
- echo "Need a python version..."
- exit 1
-fi
-
-python_base_url="https://www.python.org/ftp/python"
-python_tarball="Python-${python_version}.tgz"
-python_source="${python_tarball%%.tgz}"
-python_url="${python_base_url}/${python_version}/${python_tarball}"
-prefix="${TOOLCHAIN}"
-
-dep_table=(
- "bzlib.h libbz2.so"
- "expat.h libexpat.so"
- "ffi.h libffi.so"
- "gdbm.h libgdbm.so"
- "lzma.h liblzma.so"
- "ncurses.h libncurses.so"
- "nislib.h libnsl.so"
- "readline.h libreadline.so"
- "ssl.h libssl.so"
- "sqlite3.h libsqlite3.so"
- "tcl.h libtcl.so"
- "tk.h libtk.so"
- "zlib.h libz.so"
-)
-
-
-function depcheck()
-{
- dep_count=0
- dep_total="${#dep_table[@]}"
-
- set +x
- for _record in "${dep_table[@]}"
- do
- unset record
- read -ra record <<< $_record
-
- header=$(find /usr/include /usr/lib{,64} -regex ".*\/${record[0]}" 2>/dev/null | head -n 1 || true)
- if [[ -n $header ]]; then
- dep_count=$((dep_count+1))
- else
- echo "Missing header: ${record[0]}"
- fi
- lib=$(find /usr/lib{,64} -regex ".*\/${record[1]}" 2>/dev/null | head -n 1 || true)
- if [[ -n "$lib" ]]; then
- dep_count=$((dep_count+1))
- else
- echo "Missing library: ${record[1]}"
- fi
- done
- set -x
-
- if [[ ${dep_count} != $(( (dep_total * 2) )) ]]; then
- echo 'Missing dependencies...'
- exit 1
- fi
-}
-
-
-function pre()
-{
- depcheck
-
- if [[ ! -f ${python_tarball} ]]; then
- curl -LO "${python_url}"
- fi
-
- if [[ -d ${python_source} ]]; then
- rm -rf "${python_source}"
- fi
-
- tar xf "${python_tarball}"
-}
-
-
-function build()
-{
- pre
- export CFLAGS="-I${prefix}/include"
- export LDFLAGS="-L${prefix}/lib -Wl,-rpath=${prefix}/lib"
- pushd "${python_source}"
- #--enable-optimizations \
- ./configure \
- --prefix="${prefix}" \
- --enable-ipv6 \
- --enable-loadable-sqlite-extensions \
- --enable-profiling \
- --enable-shared \
- --with-dbmliborder=gdbm:ndbm \
- --with-pymalloc \
- --with-system-expat
- make -j4
- make install
- popd
- post
-}
-
-
-function post()
-{
- export PATH=$prefix/bin:$PATH
- ln -sf python3 "${prefix}"/bin/python
- ln -sf python3-config "${prefix}"/bin/python-config
- ln -sf idle3 "${prefix}"/bin/idle
- ln -sf pydoc3 "${prefix}"/bin/pydoc
- ln -sf pip3 "${prefix}"/bin/pip
- ln -sf python${python_basever}.1 "${prefix}"/share/man/man1/python.1
-
- echo '---'
- python --version
- python -c "import sys; from pprint import pprint; pprint(sys.path)"
- echo '---'
- ldd $(which python)
- echo '---'
-
- rm -rf $HOME/.config/pip
- rm -rf "${python_tarball}"
- rm -rf "${python_source}"
- echo "All done."
-}
-
-
-# Main
-build
diff --git a/etc/tasks/999-clean.sh b/etc/tasks/999-clean.sh
index 44f5d16..e4e8d13 100755
--- a/etc/tasks/999-clean.sh
+++ b/etc/tasks/999-clean.sh
@@ -11,6 +11,9 @@ sudo rm -rf "${HOME}"/*
sudo rm -rf /tmp/*
sudo rm -rf /var/cache/yum
+# Ensure new shared libraries ingested
+sudo ldconfig
+
for logfile in /var/log/*
do
[[ -f ${logfile} ]] && sudo truncate --size=0 "${logfile}"