summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoconf/build.sh27
-rw-r--r--automake/build.sh25
-rw-r--r--base/build.sh75
-rw-r--r--binutils/build.sh43
-rw-r--r--bison/build.sh25
-rw-r--r--bzip2/build.sh37
-rw-r--r--cfitsio/0001-destdir.patch18
-rw-r--r--cfitsio/build.sh26
-rw-r--r--cmake/build.sh25
-rw-r--r--curl/build.sh32
-rw-r--r--diffutils/build.sh29
-rw-r--r--e2fsprogs/build.sh39
-rw-r--r--findutils/build.sh31
-rw-r--r--gcc/build.sh75
-rw-r--r--gdbm/build.sh29
-rw-r--r--gettext/build.sh23
-rw-r--r--git/build.sh48
-rw-r--r--glib/build.sh34
-rw-r--r--grep/build.sh28
-rw-r--r--gzip/build.sh23
-rw-r--r--hstcal/build.sh31
-rw-r--r--icu/0001-disable-tests.patch57
-rw-r--r--icu/build.sh30
-rw-r--r--libexpat/build.sh32
-rw-r--r--libffi/build.sh33
-rw-r--r--libtool/build.sh23
-rw-r--r--libuuid/build.sh34
-rw-r--r--libxml2/build.sh30
-rw-r--r--m4/build.sh28
-rw-r--r--m4/m4-1.4.18-glibc-change-work-around.patch115
-rw-r--r--ncurses/build.sh60
-rw-r--r--openssl/build.sh41
-rw-r--r--patch/build.sh24
-rw-r--r--patchelf/build.sh30
-rw-r--r--pcre/build.sh40
-rw-r--r--pkg-config/build.sh28
-rw-r--r--python-pip/build.sh20
-rw-r--r--python-setuptools/build.sh17
-rw-r--r--python/build.sh69
-rw-r--r--readline/build.sh30
-rw-r--r--reloc/build.sh27
-rw-r--r--sed/build.sh28
-rw-r--r--sqlite/build.sh33
-rw-r--r--tar/build.sh35
-rw-r--r--tcl/build.sh30
-rw-r--r--tk/build.sh31
-rw-r--r--unzip/build.sh40
-rw-r--r--xz/build.sh25
-rw-r--r--zlib/build.sh25
49 files changed, 1738 insertions, 0 deletions
diff --git a/autoconf/build.sh b/autoconf/build.sh
new file mode 100644
index 0000000..2bf7620
--- /dev/null
+++ b/autoconf/build.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+name=autoconf
+version=2.69
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+depends=(
+ "m4"
+ "xz"
+)
+build_depends=("${depends[@]}")
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/automake/build.sh b/automake/build.sh
new file mode 100644
index 0000000..7fdc575
--- /dev/null
+++ b/automake/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+name=automake
+version=1.16.1
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+depends=(
+ "autoconf"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/base/build.sh b/base/build.sh
new file mode 100644
index 0000000..a911a19
--- /dev/null
+++ b/base/build.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+name=base
+version=1.0.0
+revision=0
+sources=()
+depends=(
+ # development tools
+ #"autoconf"
+ #"automake"
+ "binutils"
+ "gcc"
+ #"m4"
+ # file manipulation
+ #"diffutils"
+ #"findutils"
+ #"grep"
+ #"sed"
+ #"patch"
+ "patchelf"
+ # archivers
+ #"tar"
+ # compression
+ #"bzip2"
+ #"gzip"
+ #"xz"
+ #"zlib"
+ # terminal
+ #"ncurses"
+ #"readline"
+ # web
+ #"curl"
+)
+
+function prepare() {
+ :
+}
+
+function build() {
+ :
+}
+
+function package() {
+ dest="${_pkgdir}/${_prefix}"
+ schema=(
+ bin
+ etc
+ lib
+ libexec
+ opt
+ sbin
+ tmp
+ var/cache
+ var/db
+ var/empty
+ var/games
+ var/local
+ var/log
+ var/lock
+ var/lib
+ var/opt
+ var/run
+ var/tmp
+ )
+ mkdir -p "${dest}"
+ pushd "${dest}"
+ for d in "${schema[@]}"; do
+ mkdir -p "${d}"
+ chmod 0755 "${d}"
+ done
+ chmod 1777 tmp
+ chmod 1777 var/tmp
+ ln -sf lib lib64
+ popd
+
+}
diff --git a/binutils/build.sh b/binutils/build.sh
new file mode 100644
index 0000000..24e2185
--- /dev/null
+++ b/binutils/build.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+disable_base=1
+name=binutils
+version=2.31.1
+revision=0
+sources=(
+ "https://ftp.gnu.org/gnu/${name}/${name}-${version}.tar.gz"
+)
+depends=("gcc")
+
+src=${name}-${version}
+blddir=${src}_build
+
+
+function prepare() {
+ set -x
+ tar xf ${name}-${version}.tar.gz
+ mkdir -p ${blddir}
+ cd "${blddir}"
+}
+
+function build() {
+ ../${src}/configure \
+ --prefix=${_prefix} \
+ --libdir=${_prefix}/lib \
+ --with-lib-path=${_prefix}/lib:${build_runtime}/lib:/lib64:/usr/lib64:/usr/local/lib64 \
+ --target=x86_64-pc-linux-gnu \
+ --enable-shared \
+ --enable-lto \
+ --enable-ld=default \
+ --enable-plugins \
+ --enable-threads \
+ --disable-static \
+ --disable-multilib \
+ --with-system-zlib \
+ --with-sysroot=/ \
+ --with-tune=generic
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install-strip DESTDIR="${_pkgdir}"
+}
diff --git a/bison/build.sh b/bison/build.sh
new file mode 100644
index 0000000..d898128
--- /dev/null
+++ b/bison/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+name=bison
+version=3.4.2
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+build_depends=(
+ "m4"
+ "xz"
+)
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/bzip2/build.sh b/bzip2/build.sh
new file mode 100644
index 0000000..ab59efd
--- /dev/null
+++ b/bzip2/build.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+name=bzip2
+version=1.0.8
+revision=0
+sources=(
+ https://sourceware.org/pub/bzip2/${name}-${version}.tar.gz
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ make -f Makefile-libbz2_so CC="gcc $CFLAGS $LDFLAGS"
+ make bzip2 bzip2recover CC="gcc $CFLAGS $LDFLAGS"
+}
+
+function package() {
+ install -dm755 "${_pkgdir}/${_prefix}"/{bin,lib,include,share/man/man1}
+ install -m755 bzip2-shared "${_pkgdir}/${_prefix}"/bin/bzip2
+ install -m755 bzip2recover bzdiff bzgrep bzmore "${_pkgdir}/${_prefix}"/bin
+ ln -sf bzip2 "${_pkgdir}/${_prefix}"/bin/bunzip2
+ ln -sf bzip2 "${_pkgdir}/${_prefix}"/bin/bzcat
+ cp -a libbz2.so* "${_pkgdir}/${_prefix}"/lib
+ ln -s libbz2.so.${version} "${_pkgdir}/${_prefix}"/lib/libbz2.so
+ ln -s libbz2.so.${version} "${_pkgdir}/${_prefix}"/lib/libbz2.so.1
+ install -m644 bzlib.h "${_pkgdir}/${_prefix}"/include
+ install -m644 bzip2.1 "${_pkgdir}/${_prefix}"/share/man/man1
+ ln -sf bzip2.1 "${_pkgdir}/${_prefix}"/share/man/man1/bunzip2.1
+ ln -sf bzip2.1 "${_pkgdir}/${_prefix}"/share/man/man1/bzcat.1
+ ln -sf bzip2.1 "${_pkgdir}/${_prefix}"/share/man/man1/bzip2recover.1
+}
+
+
diff --git a/cfitsio/0001-destdir.patch b/cfitsio/0001-destdir.patch
new file mode 100644
index 0000000..6962552
--- /dev/null
+++ b/cfitsio/0001-destdir.patch
@@ -0,0 +1,18 @@
+--- Makefile.in.orig 2020-02-14 00:23:53.478030719 -0500
++++ Makefile.in 2020-02-14 00:24:47.868286258 -0500
+@@ -25,11 +25,11 @@ CFITSIO_MAJOR = @CFITSIO_MAJOR@
+ CFITSIO_MINOR = @CFITSIO_MINOR@
+ CFITSIO_SONAME = @CFITSIO_SONAME@
+
+-prefix = @prefix@
++prefix = ${DESTDIR}@prefix@
+ exec_prefix = @exec_prefix@
+-CFITSIO_BIN = ${DESTDIR}@bindir@
+-CFITSIO_LIB = ${DESTDIR}@libdir@
+-CFITSIO_INCLUDE = ${DESTDIR}@includedir@
++CFITSIO_BIN = @bindir@
++CFITSIO_LIB = @libdir@
++CFITSIO_INCLUDE = @includedir@
+ INSTALL_DIRS = @INSTALL_ROOT@ ${CFITSIO_INCLUDE} ${CFITSIO_LIB} ${CFITSIO_LIB}/pkgconfig
+
+
diff --git a/cfitsio/build.sh b/cfitsio/build.sh
new file mode 100644
index 0000000..0fbccc4
--- /dev/null
+++ b/cfitsio/build.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+name=cfitsio
+version=3.47
+revision=0
+sources=(
+ "http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/${name}-${version}.tar.gz"
+)
+depends=("curl")
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+ patch -p0 -i ../0001-destdir.patch
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+
diff --git a/cmake/build.sh b/cmake/build.sh
new file mode 100644
index 0000000..1159b5a
--- /dev/null
+++ b/cmake/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+name=cmake
+version=3.15.5
+revision=0
+sources=(
+ "https://github.com/Kitware/CMake/releases/download/v${version}/${name}-${version}.tar.gz"
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./bootstrap --prefix="${_prefix}"
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+
diff --git a/curl/build.sh b/curl/build.sh
new file mode 100644
index 0000000..a6b4562
--- /dev/null
+++ b/curl/build.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+name=curl
+version=7.66.0
+revision=0
+sources=(
+ "https://curl.haxx.se/download/${name}-${version}.tar.xz"
+)
+build_depends=(
+ "tar"
+ "xz"
+ "autoconf"
+ "automake"
+)
+depends=(
+ "libffi>=3.2.1"
+ "openssl==1.1.1d"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/diffutils/build.sh b/diffutils/build.sh
new file mode 100644
index 0000000..fc8a562
--- /dev/null
+++ b/diffutils/build.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+name=diffutils
+version=3.7
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "xz"
+)
+depends=(
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/e2fsprogs/build.sh b/e2fsprogs/build.sh
new file mode 100644
index 0000000..1e008ed
--- /dev/null
+++ b/e2fsprogs/build.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+name=e2fsprogs
+version=1.45.4
+revision=0
+sources=(
+ "https://mirrors.edge.kernel.org/pub/linux/kernel/people/tytso/${name}/v${version}/${name}-${version}.tar.gz"
+)
+depends=(
+ "autoconf"
+ "automake"
+ "libtool"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure \
+ --prefix=${_prefix} \
+ --enable-relative-symlinks \
+ --enable-elf-shlibs \
+ --enable-libuuid \
+ --enable-libblkid
+ make -j${_maxjobs}
+}
+
+function package() {
+ pushd lib/uuid &>/dev/null
+ make install DESTDIR="${_pkgdir}"
+ popd
+ pushd lib/blkid &>/dev/null
+ make install DESTDIR="${_pkgdir}"
+ popd
+}
+
+
diff --git a/findutils/build.sh b/findutils/build.sh
new file mode 100644
index 0000000..2865dd5
--- /dev/null
+++ b/findutils/build.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+name=findutils
+version=4.7.0
+revision=0
+sources=(
+ "https://ftp.gnu.org/gnu/${name}/${name}-${version}.tar.xz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "xz"
+)
+depends=(
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+
diff --git a/gcc/build.sh b/gcc/build.sh
new file mode 100644
index 0000000..ea461ca
--- /dev/null
+++ b/gcc/build.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+disable_base=1
+name=gcc
+version=8.2.0
+version_cloog=0.18.4
+revision=0
+sources=(
+ "http://mirrors.concertpass.com/${name}/releases/${name}-${version}/${name}-${version}.tar.gz"
+ "http://www.bastoul.net/cloog/pages/download/count.php3?url=./cloog-${version_cloog}.tar.gz"
+)
+depends=()
+
+src=${name}-${version}
+blddir=${src}_build
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ tar xf cloog-${version_cloog}.tar.gz -C ${src}
+ pushd ${src}
+ ln -s cloog-${version_cloog} cloog
+ sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+ ./contrib/download_prerequisites
+ popd
+ mkdir -p ${blddir}
+ cd "${blddir}"
+}
+
+function build() {
+ ../${src}/configure \
+ --prefix=${_prefix} \
+ --libdir=${_prefix}/lib \
+ --disable-bootstrap \
+ --disable-multilib \
+ --disable-werror \
+ --disable-libunwind-exceptions \
+ --disable-libstdcxx-pch \
+ --disable-libssp \
+ --with-system-zlib \
+ --with-isl \
+ --with-linker-hash-style=gnu \
+ --with-tune=generic \
+ --enable-languages=c,c++,fortran,lto,go \
+ --enable-shared \
+ --enable-threads=posix \
+ --enable-libmpx \
+ --enable-__cxa_atexit \
+ --enable-clocale=gnu \
+ --enable-gnu-unique-object \
+ --enable-linker-build-id \
+ --enable-lto \
+ --enable-plugin \
+ --enable-install-libiberty \
+ --enable-gnu-indirect-function \
+ --enable-default-pie \
+ --enable-default-ssp \
+ --enable-cet=auto \
+ --enable-checking=release
+ make -j${_maxjobs}
+}
+
+function package() {
+ mkdir -p ${_pkgdir}${_prefix}/lib
+ (cd ${_pkgdir}${_prefix} && ln -s lib lib64)
+
+ make install-strip DESTDIR="${_pkgdir}"
+
+ pushd "${_pkgdir}${_prefix}"/bin
+ # support generic calls
+ ln -sf gcc cc
+ popd
+
+ # Binutils build cannot use this static archive
+ rm -f "${_pkgdir}${_prefix}/lib/libiberty.a"
+}
diff --git a/gdbm/build.sh b/gdbm/build.sh
new file mode 100644
index 0000000..1f584b3
--- /dev/null
+++ b/gdbm/build.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+name=gdbm
+version=1.18.1
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.gz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+)
+depends=(
+ "readline"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix} --enable-libgdbm-compat
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/gettext/build.sh b/gettext/build.sh
new file mode 100644
index 0000000..5d0192e
--- /dev/null
+++ b/gettext/build.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+name=gettext
+version=0.20.1
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.gz"
+)
+build_depends=()
+depends=()
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/git/build.sh b/git/build.sh
new file mode 100644
index 0000000..e056352
--- /dev/null
+++ b/git/build.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+name=git
+version=2.24.0
+revision=0
+sources=(
+ "https://github.com/${name}/${name}/archive/v${version}.tar.gz"
+)
+build_depends=(
+ "autoconf"
+ "automake"
+ "curl"
+ "gettext"
+ "libtool"
+ "openssl"
+ "pcre"
+ "tk"
+ "zlib"
+)
+depends=(
+ "curl"
+ "openssl"
+ "pcre"
+ "tk"
+ "zlib"
+)
+
+
+function prepare() {
+ tar xf v${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ export LDFLAGS="${LDFLAGS} -Wl,-rpath=${_prefix}/lib"
+ make configure
+ ./configure --prefix=${_prefix} \
+ --libdir=${_prefix}/lib \
+ --with-curl \
+ --with-expat \
+ --with-tcltk
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+
diff --git a/glib/build.sh b/glib/build.sh
new file mode 100644
index 0000000..0fd9075
--- /dev/null
+++ b/glib/build.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+name=glib
+version=2.63.1
+revision=0
+sources=(
+ "https://download.gnome.org/sources/${name}/2.63/${name}-${version}.tar.xz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "gettext"
+ "xz"
+)
+depends=(
+ "cmake"
+ "gettext"
+ "python-pip"
+)
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ pip install meson
+ meson --prefix="${_prefix}" _build
+ ninja -C _build
+ make -j${_maxjobs}
+}
+
+function package() {
+ DESTDIR="${destroot}" ninja -C _build install
+}
diff --git a/grep/build.sh b/grep/build.sh
new file mode 100644
index 0000000..6dad69f
--- /dev/null
+++ b/grep/build.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+name=grep
+version=3.3
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "xz"
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/gzip/build.sh b/gzip/build.sh
new file mode 100644
index 0000000..ce30691
--- /dev/null
+++ b/gzip/build.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+name=gzip
+version=1.10
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.gz"
+)
+build_depends=()
+depends=()
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/hstcal/build.sh b/hstcal/build.sh
new file mode 100644
index 0000000..a93a216
--- /dev/null
+++ b/hstcal/build.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+name=hstcal
+version=2.3.1
+revision=0
+sources=()
+build_depends=(
+ "git"
+ "python"
+)
+depends=(
+ "cfitsio"
+)
+
+
+function prepare() {
+ git clone https://github.com/spacetelescope/${name}
+ cd ${name}
+ git checkout ${version}
+ curl -L https://waf.io/waf-2.0.18 >../waf
+ chmod +x ../waf
+}
+
+function build() {
+ ../waf configure --prefix=${_prefix}
+}
+
+function package() {
+ ../waf install --destdir="${_pkgdir}"
+}
+
+
diff --git a/icu/0001-disable-tests.patch b/icu/0001-disable-tests.patch
new file mode 100644
index 0000000..e39989e
--- /dev/null
+++ b/icu/0001-disable-tests.patch
@@ -0,0 +1,57 @@
+--- configure.ac.orig 2019-10-21 17:47:38.842427296 +0000
++++ configure.ac 2019-10-21 17:49:33.787593270 +0000
+@@ -199,10 +199,6 @@ fi
+ #AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
+ #AC_CHECK_PROG(STRIP, strip, strip, true)
+
+-# TODO(ICU-20301): Remove fallback to Python 2.
+-AC_CHECK_PROGS(PYTHON, python3 "py -3" python "py")
+-AC_SUBST(PYTHON)
+-
+ # Check for the platform make
+ AC_PATH_PROGS(U_MAKE, gmake gnumake, make)
+ AC_SUBST(U_MAKE)
+@@ -1412,40 +1408,9 @@ AC_CONFIG_FILES([icudefs.mk \
+ samples/cal/Makefile samples/layout/Makefile])
+ AC_OUTPUT
+
+-if test -z "$PYTHON";
+-then
+- echo "" > data/rules.mk
+- echo "" > test/testdata/rules.mk
+-else
+- if test -f "$srcdir/data/locales/root.txt";
+- then
+- echo "Spawning Python to generate data/rules.mk..."
+- PYTHONPATH="$srcdir/python" \
+- $PYTHON -m icutools.databuilder \
+- --mode gnumake \
+- --seqmode parallel \
+- --src_dir "$srcdir/data" \
+- --filter_file "$ICU_DATA_FILTER_FILE" \
+- $ICU_DATA_BUILDTOOL_OPTS \
+- > data/rules.mk
+- if test "$?" != "0"; then
+- AC_MSG_ERROR(Python failed to run; see above error.)
+- fi
+- else
+- echo "Not rebuilding data/rules.mk, assuming prebuilt data in data/in"
+- touch data/rules.mk
+- fi
+- echo "Spawning Python to generate test/testdata/rules.mk..."
+- PYTHONPATH="$srcdir/python" \
+- $PYTHON -m icutools.databuilder \
+- --mode gnumake \
+- --seqmode parallel \
+- --src_dir "$srcdir/test/testdata" \
+- > test/testdata/rules.mk
+- if test "$?" != "0"; then
+- AC_MSG_ERROR(Python failed to run; see above error.)
+- fi
+-fi
++# Disable tests
++echo "" > data/rules.mk
++echo "" > test/testdata/rules.mk
+
+ echo
+ echo "ICU for C/C++ $VERSION is ready to be built."
diff --git a/icu/build.sh b/icu/build.sh
new file mode 100644
index 0000000..cc6013d
--- /dev/null
+++ b/icu/build.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+name=icu
+version=65.1
+revision=0
+sources=(
+ "https://github.com/unicode-org/${name}/releases/download/release-${version//./-}/${name}4c-${version//./_}-src.tgz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "patch"
+ "python"
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}4c-${version//./_}-src.tgz
+ cd ${name}/source
+ #patch -p0 -i "${build_script_root}/0001-disable-tests.patch"
+}
+
+function build() {
+ ./runConfigureICU Linux --prefix="${_prefix}"
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/libexpat/build.sh b/libexpat/build.sh
new file mode 100644
index 0000000..d545ada
--- /dev/null
+++ b/libexpat/build.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+name=libexpat
+version=2.2.9
+revision=0
+sources=(
+ "https://github.com/${name}/${name}/archive/R_${version//./_}.tar.gz"
+)
+build_depends=(
+ "autoconf"
+ "automake"
+ "libtool"
+)
+depends=()
+
+
+function prepare() {
+ tar xf R_${version//./_}.tar.gz
+ cd ${name}-R_${version//./_}/expat
+}
+
+function build() {
+ ./buildconf.sh
+ ./configure --prefix="${_prefix}" \
+ --libdir="${_prefix}/lib"
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+
diff --git a/libffi/build.sh b/libffi/build.sh
new file mode 100644
index 0000000..cf1598f
--- /dev/null
+++ b/libffi/build.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+name=libffi
+version=3.2.1
+revision=0
+sources=(
+ ftp://sourceware.org/pub/libffi/${name}-${version}.tar.gz
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "libtool"
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure \
+ --prefix=${_prefix} \
+ --libdir=${_prefix}/lib \
+ --enable-pax_emutramp
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+ mv "${_pkgdir}/${_prefix}/lib64"/* "${_pkgdir}/${_prefix}/lib"
+ rm -rf "${_pkgdir}/${_prefix}/lib64"
+}
diff --git a/libtool/build.sh b/libtool/build.sh
new file mode 100644
index 0000000..a3c4c63
--- /dev/null
+++ b/libtool/build.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+name=libtool
+version=2.4.6
+revision=0
+sources=(
+ "http://ftp.gnu.org/gnu/${name}/${name}-${version}.tar.gz"
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix="${_prefix}"
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/libuuid/build.sh b/libuuid/build.sh
new file mode 100644
index 0000000..0cf7e78
--- /dev/null
+++ b/libuuid/build.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+name=libuuid
+version=2.34
+revision=0
+sources=(
+ "https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.34/util-linux-2.34.tar.xz"
+ "https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${version}/util-linux-${version}.tar.xz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "xz"
+)
+depends=()
+
+
+function prepare() {
+ tar xf util-linux-${version}.tar.xz
+ cd util-linux-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix} \
+ --disable-all-programs \
+ --enable-libuuid \
+ --without-systemd \
+ --without-btrf
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+ rm -r "${_pkgdir}/${_prefix}/sbin"
+}
diff --git a/libxml2/build.sh b/libxml2/build.sh
new file mode 100644
index 0000000..8bd6ca6
--- /dev/null
+++ b/libxml2/build.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+name=libxml2
+version=2.9.9
+revision=0
+sources=(
+ "https://github.com/GNOME/${name}/archive/v${version}.tar.gz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "libtool"
+)
+depends=(
+ "icu"
+)
+
+function prepare() {
+ tar xf v${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ sh autogen.sh
+ ./configure --prefix="${_prefix}"
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/m4/build.sh b/m4/build.sh
new file mode 100644
index 0000000..6b5992c
--- /dev/null
+++ b/m4/build.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+name=m4
+version=1.4.18
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+build_depends=(
+ "xz"
+)
+depends=(
+ "patch"
+)
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+ patch -p1 -i "../m4-1.4.18-glibc-change-work-around.patch"
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/m4/m4-1.4.18-glibc-change-work-around.patch b/m4/m4-1.4.18-glibc-change-work-around.patch
new file mode 100644
index 0000000..582ae9b
--- /dev/null
+++ b/m4/m4-1.4.18-glibc-change-work-around.patch
@@ -0,0 +1,115 @@
+diff -up m4-1.4.18/lib/fflush.c.orig m4-1.4.18/lib/fflush.c
+--- m4-1.4.18/lib/fflush.c.orig 2018-05-02 12:35:59.536851666 +0200
++++ m4-1.4.18/lib/fflush.c 2018-05-02 12:37:02.768958606 +0200
+@@ -33,7 +33,7 @@
+ #undef fflush
+
+
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+
+ /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
+ static void
+@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
+
+ #endif
+
+-#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
++#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
+
+ # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
+ if (stream == NULL || ! freading (stream))
+ return fflush (stream);
+
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+
+ clear_ungetc_buffer_preserving_position (stream);
+
+diff -up m4-1.4.18/lib/fpending.c.orig m4-1.4.18/lib/fpending.c
+--- m4-1.4.18/lib/fpending.c.orig 2018-05-02 12:35:32.305806774 +0200
++++ m4-1.4.18/lib/fpending.c 2018-05-02 12:35:44.944827347 +0200
+@@ -32,7 +32,7 @@ __fpending (FILE *fp)
+ /* Most systems provide FILE as a struct and the necessary bitmask in
+ <stdio.h>, because they need it for implementing getc() and putc() as
+ fast macros. */
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ return fp->_IO_write_ptr - fp->_IO_write_base;
+ #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+diff -up m4-1.4.18/lib/fpurge.c.orig m4-1.4.18/lib/fpurge.c
+--- m4-1.4.18/lib/fpurge.c.orig 2018-05-02 12:38:13.586078669 +0200
++++ m4-1.4.18/lib/fpurge.c 2018-05-02 12:38:38.785121867 +0200
+@@ -62,7 +62,7 @@ fpurge (FILE *fp)
+ /* Most systems provide FILE as a struct and the necessary bitmask in
+ <stdio.h>, because they need it for implementing getc() and putc() as
+ fast macros. */
+-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ fp->_IO_read_end = fp->_IO_read_ptr;
+ fp->_IO_write_ptr = fp->_IO_write_base;
+ /* Avoid memory leak when there is an active ungetc buffer. */
+diff -up m4-1.4.18/lib/freadahead.c.orig m4-1.4.18/lib/freadahead.c
+--- m4-1.4.18/lib/freadahead.c.orig 2016-12-31 14:54:41.000000000 +0100
++++ m4-1.4.18/lib/freadahead.c 2018-05-02 11:43:19.570336724 +0200
+@@ -25,7 +25,7 @@
+ size_t
+ freadahead (FILE *fp)
+ {
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ if (fp->_IO_write_ptr > fp->_IO_write_base)
+ return 0;
+ return (fp->_IO_read_end - fp->_IO_read_ptr)
+diff -up m4-1.4.18/lib/freading.c.orig m4-1.4.18/lib/freading.c
+--- m4-1.4.18/lib/freading.c.orig 2018-05-02 12:37:33.970011368 +0200
++++ m4-1.4.18/lib/freading.c 2018-05-02 12:37:59.393054359 +0200
+@@ -31,7 +31,7 @@ freading (FILE *fp)
+ /* Most systems provide FILE as a struct and the necessary bitmask in
+ <stdio.h>, because they need it for implementing getc() and putc() as
+ fast macros. */
+-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ return ((fp->_flags & _IO_NO_WRITES) != 0
+ || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
+ && fp->_IO_read_base != NULL));
+diff -up m4-1.4.18/lib/fseeko.c.orig m4-1.4.18/lib/fseeko.c
+--- m4-1.4.18/lib/fseeko.c.orig 2018-05-02 11:44:17.947460233 +0200
++++ m4-1.4.18/lib/fseeko.c 2018-05-02 12:39:49.537216897 +0200
+@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int when
+ #endif
+
+ /* These tests are based on fpurge.c. */
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ if (fp->_IO_read_end == fp->_IO_read_ptr
+ && fp->_IO_write_ptr == fp->_IO_write_base
+ && fp->_IO_save_base == NULL)
+@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int when
+ return -1;
+ }
+
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ fp->_flags &= ~_IO_EOF_SEEN;
+ fp->_offset = pos;
+ #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
+diff -up m4-1.4.18/lib/stdio-impl.h.orig m4-1.4.18/lib/stdio-impl.h
+--- m4-1.4.18/lib/stdio-impl.h.orig 2016-12-31 14:54:42.000000000 +0100
++++ m4-1.4.18/lib/stdio-impl.h 2018-05-02 11:43:19.570336724 +0200
+@@ -18,6 +18,12 @@
+ the same implementation of stdio extension API, except that some fields
+ have different naming conventions, or their access requires some casts. */
+
++/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
++ problem by defining it ourselves. FIXME: Do not rely on glibc
++ internals. */
++#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
++# define _IO_IN_BACKUP 0x100
++#endif
+
+ /* BSD stdio derived implementations. */
+
diff --git a/ncurses/build.sh b/ncurses/build.sh
new file mode 100644
index 0000000..d96717f
--- /dev/null
+++ b/ncurses/build.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+name=ncurses
+version=6.1
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.gz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix} \
+ --without-static \
+ --with-shared \
+ --with-normal \
+ --without-debug \
+ --without-ada \
+ --enable-widec \
+ --enable-pc-files \
+ --with-cxx-bindings \
+ --with-cxx-shared \
+ --with-manpage-format=normal \
+ --with-pkg-config-libdir="${_prefix}/lib/pkgconfig"
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+
+ # Arch linux maintainers have the right idea here...
+
+ # fool packages looking to link to non-wide-character ncurses libraries
+ for lib in ncurses ncurses++ form panel menu; do
+ echo "INPUT(-l${lib}w)" > "${_pkgdir}/${_prefix}/lib/lib${lib}.so"
+ ln -s ${lib}w.pc "${_pkgdir}/${_prefix}/lib/pkgconfig/${lib}.pc"
+ done
+
+ for lib in tic tinfo; do
+ echo "INPUT(libncursesw.so.${version:0:1})" > "${_pkgdir}/${_prefix}/lib/lib${lib}.so"
+ ln -s libncursesw.so.${version:0:1} "${_pkgdir}/${_prefix}/lib/lib${lib}.so.${version:0:1}"
+ ln -s ncursesw.pc "${_pkgdir}${_prefix}/lib/pkgconfig/${lib}.pc"
+ done
+
+ # some packages look for -lcurses during build
+ echo 'INPUT(-lncursesw)' > "${_pkgdir}${_prefix}/lib/libcursesw.so"
+ ln -s libncurses.so "${_pkgdir}/${_prefix}/lib/libcurses.so"
+
+ # some packages include from ncurses/
+ ln -s ncursesw "${_pkgdir}/${_prefix}/include/ncurses"
+
+}
diff --git a/openssl/build.sh b/openssl/build.sh
new file mode 100644
index 0000000..d96a98c
--- /dev/null
+++ b/openssl/build.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+name=openssl
+version=1.1.1d
+revision=0
+sources=(
+ "https://www.openssl.org/source/${name}-${version}.tar.gz"
+)
+depends=(
+ "zlib"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ export KERNEL_BITS=64
+ export TARGET=linux-x86_64
+ #mkdir -p ${build_runtime}/lib
+ ./Configure \
+ --prefix="${_prefix}" \
+ --openssldir="${_prefix}/etc/ssl" \
+ shared \
+ threads \
+ zlib-dynamic \
+ no-ssl3-method \
+ ${TARGET}
+
+ #mkdir -p ${_prefix}/{bin,lib,share}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make \
+ DESTDIR="${_pkgdir}" \
+ MANDIR=${_prefix}/share/man \
+ MANSUFFIX=ssl \
+ install
+}
diff --git a/patch/build.sh b/patch/build.sh
new file mode 100644
index 0000000..87359ee
--- /dev/null
+++ b/patch/build.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+name=patch
+version=2.7.6
+revision=0
+sources=(
+ "https://ftp.gnu.org/gnu/${name}/${name}-${version}.tar.gz"
+)
+depends=()
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix="${_prefix}"
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+
diff --git a/patchelf/build.sh b/patchelf/build.sh
new file mode 100644
index 0000000..994b599
--- /dev/null
+++ b/patchelf/build.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+disable_base=1
+name=patchelf
+version=0.10
+revision=0
+sources=("https://github.com/NixOS/${name}/archive/${version}.tar.gz")
+build_depends=(
+ "autoconf"
+ "automake"
+ "gcc"
+ "binutils"
+)
+depends=()
+
+function prepare() {
+ tar xf ${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./bootstrap.sh
+ ./configure --prefix="${_prefix}"
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+
diff --git a/pcre/build.sh b/pcre/build.sh
new file mode 100644
index 0000000..6c1784a
--- /dev/null
+++ b/pcre/build.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+name=pcre
+version=8.43
+revision=0
+sources=(
+ "https://ftp.pcre.org/pub/${name}/${name}-${version}.tar.gz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "readline"
+ "zlib"
+)
+depends=(
+ "bzip2"
+ "readline"
+ "zlib"
+)
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure \
+ --prefix=${_prefix} \
+ --enable-unicode-properties \
+ --enable-pcre16 \
+ --enable-pcre32 \
+ --enable-jit \
+ --enable-pcregrep-libz \
+ --enable-pcregrep-libbz2 \
+ --enable-pcretest-libreadline
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/pkg-config/build.sh b/pkg-config/build.sh
new file mode 100644
index 0000000..9c9c969
--- /dev/null
+++ b/pkg-config/build.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+name=pkg-config
+version=0.29.2
+revision=0
+sources=(
+ "https://pkg-config.freedesktop.org/releases/${name}-${version}.tar.gz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+)
+depends=()
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix="${_prefix}"
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+
diff --git a/python-pip/build.sh b/python-pip/build.sh
new file mode 100644
index 0000000..8a80b21
--- /dev/null
+++ b/python-pip/build.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+name=python-pip
+version=19.2.3
+revision=0
+sources=(https://github.com/pypa/${name/python-/}/archive/${version}.tar.gz)
+depends=(
+ 'git'
+ 'python'
+ 'python-setuptools'
+)
+
+function prepare() {
+ tar xf ${version}.tar.gz
+ cd ${name/python-/}-${version}
+}
+
+function package() {
+ python setup.py install --root="${_pkgdir}" --prefix="${_prefix}"
+ #find ${_pkgdir} -type f | xargs sed -i -e "s|${build_runtime}|${_prefix}|g"
+}
diff --git a/python-setuptools/build.sh b/python-setuptools/build.sh
new file mode 100644
index 0000000..fbe44ad
--- /dev/null
+++ b/python-setuptools/build.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+name=python-setuptools
+version=41.2.0
+revision=0
+sources=(https://github.com/pypa/setuptools/archive/v${version}.tar.gz)
+depends=('python')
+
+function prepare() {
+ tar xf v${version}.tar.gz
+ cd ${name/python-/}-${version}
+}
+
+function package() {
+ python bootstrap.py
+ python setup.py install --root="${_pkgdir}" --prefix="${_prefix}"
+ #find ${_pkgdir} -type f | xargs -I'{}' sed -i -e "s|${build_runtime}|${_prefix}|g" '{}'
+}
diff --git a/python/build.sh b/python/build.sh
new file mode 100644
index 0000000..990fcb4
--- /dev/null
+++ b/python/build.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+name=python
+version=3.7.5
+_basever=${version%.*}
+revision=0
+sources=(
+ "https://www.python.org/ftp/python/${version}/Python-${version}.tar.xz"
+)
+build_depends=(
+ "sed"
+ "grep"
+ "automake"
+ "autoconf"
+ "xz"
+)
+depends=(
+ "bzip2"
+ "e2fsprogs"
+ "gdbm"
+ "gzip"
+ "libexpat"
+ "libffi"
+ "ncurses"
+ "openssl==1.1.1d"
+ "tar"
+ "readline"
+ "sqlite"
+ "tk"
+ "zlib"
+)
+
+
+function prepare() {
+ tar xf Python-${version}.tar.xz
+ cd Python-${version}
+}
+
+function build() {
+ #zlib="zlib zlibmodule.c ${CFLAGS} ${LDFLAGS} -lz"
+ #echo "${zlib/=/ }" >> Modules/Setup
+
+ export CFLAGS="${CFLAGS} -I${build_runtime}/include/ncursesw"
+ ./configure \
+ --prefix="${_prefix}" \
+ --enable-ipv6 \
+ --enable-loadable-sqlite-extensions \
+ --enable-shared \
+ --with-computed-gotos \
+ --with-dbmliborder=gdbm:ndbm \
+ --with-pymalloc \
+ --with-system-expat \
+ --without-ensurepip
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+ echo "Removing __pycache__ directories..."
+ find "${_pkgdir}" -name "__pycache__" | xargs rm -rf
+
+ ln -s python3 "${_pkgdir}/${_prefix}"/bin/python
+ ln -s python3-config "${_pkgdir}/${_prefix}"/bin/python-config
+ ln -s idle3 "${_pkgdir}/${_prefix}"/bin/idle
+ ln -s pydoc3 "${_pkgdir}/${_prefix}"/bin/pydoc
+ ln -s python${_basever}.1 "${_pkgdir}/${_prefix}"/share/man/man1/python.1
+ chmod 755 "${_pkgdir}/${_prefix}"/lib/libpython${_basever}m.so
+}
+
+
diff --git a/readline/build.sh b/readline/build.sh
new file mode 100644
index 0000000..a96eaa1
--- /dev/null
+++ b/readline/build.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+name=readline
+version=8.0
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.gz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "ncurses"
+)
+depends=(
+ "ncurses"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs} SHLIB_LIBS=-lncurses
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/reloc/build.sh b/reloc/build.sh
new file mode 100644
index 0000000..d990600
--- /dev/null
+++ b/reloc/build.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+name=reloc
+version=1.0.0
+revision=0
+sources=(
+ "https://github.com/jhunkeler/${name}/archive/${version}.tar.gz"
+)
+build_depends=(
+ "cmake"
+)
+depends=()
+
+function prepare() {
+ tar xf ${version}.tar.gz
+ cd ${name}-${version}
+ mkdir -p build
+ cd build
+}
+
+function build() {
+ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${_prefix}"
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/sed/build.sh b/sed/build.sh
new file mode 100644
index 0000000..f2a6df4
--- /dev/null
+++ b/sed/build.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+name=sed
+version=4.7
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+build_depends=(
+ "xz"
+)
+depends=(
+ "grep"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/sqlite/build.sh b/sqlite/build.sh
new file mode 100644
index 0000000..45b6973
--- /dev/null
+++ b/sqlite/build.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+name=sqlite
+version=3.29.0
+_v=3290000
+revision=0
+sources=(
+ "https://sqlite.org/2019/${name}-autoconf-${_v}.tar.gz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+ "readline"
+ "zlib"
+)
+depends=(
+ "readline"
+ "zlib"
+)
+
+
+function prepare() {
+ tar xf ${name}-autoconf-${_v}.tar.gz
+ cd ${name}-autoconf-${_v}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
diff --git a/tar/build.sh b/tar/build.sh
new file mode 100644
index 0000000..90b5c34
--- /dev/null
+++ b/tar/build.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+name=tar
+version=1.32
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.gz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+)
+depends=(
+ "bzip2"
+ "gzip"
+ "xz"
+ "zlib"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ export FORCE_UNSAFE_CONFIGURE=1
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+
diff --git a/tcl/build.sh b/tcl/build.sh
new file mode 100644
index 0000000..429f87b
--- /dev/null
+++ b/tcl/build.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+name=tcl
+version=8.6.9
+revision=0
+sources=(
+ "https://prdownloads.sourceforge.net/${name}/${name}${version}-src.tar.gz"
+)
+build_depends=(
+ "automake"
+ "autoconf"
+)
+depends=(
+ "pcre"
+)
+
+function prepare() {
+ tar xf ${name}${version}-src.tar.gz
+ cd ${name}${version}
+}
+
+function build() {
+ cd unix
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+ chmod 755 "${_pkgdir}/${_prefix}"/lib/*.so
+}
diff --git a/tk/build.sh b/tk/build.sh
new file mode 100644
index 0000000..11f9b20
--- /dev/null
+++ b/tk/build.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+name=tk
+version=8.6.9
+version_full="${version}.1"
+revision=0
+sources=(
+ "https://prdownloads.sourceforge.net/tcl/${name}${version_full}-src.tar.gz"
+)
+build_depends=(
+ "tar"
+ "automake"
+)
+depends=(
+ "tcl==${version}"
+)
+
+function prepare() {
+ tar xf ${name}${version_full}-src.tar.gz
+ cd ${name}${version}
+}
+
+function build() {
+ cd unix
+ ./configure --prefix=${_prefix} --with-tcl=${build_runtime}/lib
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+ chmod 755 "${_pkgdir}/${_prefix}"/lib/*.so
+}
diff --git a/unzip/build.sh b/unzip/build.sh
new file mode 100644
index 0000000..6d6fd4f
--- /dev/null
+++ b/unzip/build.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+name=unzip
+version=6.0
+revision=0
+sources=(
+ "https://downloads.sourceforge.net/infozip/${name}${version//./}.tar.gz"
+)
+build_depends=(
+ "bzip2"
+)
+depends=(
+ "bzip2"
+)
+
+
+function prepare() {
+ tar xf ${name}${version//./}.tar.gz
+ cd ${name}${version//./}
+}
+
+function build() {
+
+ # DEFINES, make, and install args from Debian
+ DEFINES='-DACORN_FTYPE_NFS -DWILD_STOP_AT_DIR -DLARGE_FILE_SUPPORT \
+ -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DNO_LCHMOD \
+ -DDATE_FORMAT=DF_YMD -DUSE_BZIP2 -DNOMEMCPY -DNO_WORKING_ISPRINT'
+
+ make -f unix/Makefile prefix="${_pkgdir}${_prefix}" \
+ D_USE_BZ2=-DUSE_BZIP2 \
+ L_BZ2=-lbz2 \
+ LF2="$LDFLAGS" \
+ CF="$CFLAGS $CPPFLAGS -I. $DEFINES" \
+ unzips
+}
+
+function package() {
+ make -f unix/Makefile \
+ install \
+ prefix="${_pkgdir}${_prefix}"
+}
diff --git a/xz/build.sh b/xz/build.sh
new file mode 100644
index 0000000..e625ffc
--- /dev/null
+++ b/xz/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+name=xz
+version=5.2.4
+revision=0
+sources=(
+ "https://tukaani.org/xz/${name}-${version}.tar.gz"
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+
diff --git a/zlib/build.sh b/zlib/build.sh
new file mode 100644
index 0000000..cd354cc
--- /dev/null
+++ b/zlib/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+name=zlib
+version=1.2.11
+revision=0
+sources=(
+ "http://zlib.net/${name}-${version}.tar.gz"
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=${_prefix}
+ make -j${_maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${_pkgdir}"
+}
+
+