aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2019-09-30 23:35:07 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2019-09-30 23:35:07 -0400
commit031bc1627fdc38d1c178707c86dd267224b94693 (patch)
tree9e44e7bfd24da233e0b950892f48932bdde37618 /scripts
downloadspm-031bc1627fdc38d1c178707c86dd267224b94693.tar.gz
Initial commit
Diffstat (limited to 'scripts')
-rw-r--r--scripts/autoconf/build.sh25
-rw-r--r--scripts/automake/build.sh25
-rw-r--r--scripts/base/build.sh68
-rw-r--r--scripts/bison/build.sh24
-rw-r--r--scripts/build.order26
-rw-r--r--scripts/bzip2/build.sh38
-rw-r--r--scripts/curl/build.sh26
-rw-r--r--scripts/diffutils/build.sh23
-rw-r--r--scripts/findutils/build.sh25
-rw-r--r--scripts/gdbm/build.sh23
-rw-r--r--scripts/grep/build.sh23
-rw-r--r--scripts/gzip/build.sh25
-rw-r--r--scripts/libffi/build.sh23
-rw-r--r--scripts/libuuid/build.sh29
-rw-r--r--scripts/m4/build.sh24
-rw-r--r--scripts/m4/m4-1.4.18-glibc-change-work-around.patch115
-rw-r--r--scripts/ncurses/build.sh32
-rw-r--r--scripts/openssl/build.sh41
-rw-r--r--scripts/pcre/build.sh34
-rw-r--r--scripts/python-pip/build.sh19
-rw-r--r--scripts/python-setuptools/build.sh17
-rw-r--r--scripts/python/build.sh60
-rw-r--r--scripts/readline/build.sh23
-rw-r--r--scripts/sed/build.sh23
-rw-r--r--scripts/sqlite/build.sh24
-rw-r--r--scripts/tar/build.sh25
-rw-r--r--scripts/tcl/build.sh30
-rw-r--r--scripts/tk/build.sh30
-rw-r--r--scripts/xz/build.sh28
-rw-r--r--scripts/zlib/build.sh25
30 files changed, 953 insertions, 0 deletions
diff --git a/scripts/autoconf/build.sh b/scripts/autoconf/build.sh
new file mode 100644
index 0000000..09c4f72
--- /dev/null
+++ b/scripts/autoconf/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+name=autoconf
+version=2.69
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+depends=(
+ "m4-1.4.18-0.tar.gz"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=$prefix
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/automake/build.sh b/scripts/automake/build.sh
new file mode 100644
index 0000000..9fe23b7
--- /dev/null
+++ b/scripts/automake/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+name=automake
+version=1.16
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+depends=(
+ "autoconf-2.69-0.tar.gz"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=$prefix
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/base/build.sh b/scripts/base/build.sh
new file mode 100644
index 0000000..02306da
--- /dev/null
+++ b/scripts/base/build.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+name=base
+version=1.0.0
+revision=0
+sources=()
+depends=(
+ # development tools
+ "autoconf"
+ "automake"
+ "m4"
+ # file manipulation
+ "diffutils"
+ "findutils"
+ "grep"
+ "sed"
+ # archivers
+ "tar"
+ # compression
+ "bzip2"
+ "gzip"
+ "xz"
+ "zlib"
+ # terminal
+ "ncurses"
+ "readline"
+ # web
+ "curl"
+)
+
+function prepare() {
+ :
+}
+
+function build() {
+ :
+}
+
+function package() {
+ dest="${destdir}/${prefix}"
+ schema=(
+ bin
+ etc
+ lib
+ libexec
+ 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
+ ln -sf lib lib64
+ popd
+
+}
diff --git a/scripts/bison/build.sh b/scripts/bison/build.sh
new file mode 100644
index 0000000..115374e
--- /dev/null
+++ b/scripts/bison/build.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+name=bison
+version=3.4.2
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+depends=(
+ "m4"
+)
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=$prefix
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/build.order b/scripts/build.order
new file mode 100644
index 0000000..3b101e0
--- /dev/null
+++ b/scripts/build.order
@@ -0,0 +1,26 @@
+m4
+autoconf
+automake
+grep
+sed
+bzip2
+xz
+zlib
+gzip
+tar
+pcre
+diffutils
+findutils
+bison
+gdbm
+libffi
+ncurses
+readline
+openssl
+curl
+sqlite
+tcl
+tk
+python
+python-setuptools
+python-pip
diff --git a/scripts/bzip2/build.sh b/scripts/bzip2/build.sh
new file mode 100644
index 0000000..6ee43c3
--- /dev/null
+++ b/scripts/bzip2/build.sh
@@ -0,0 +1,38 @@
+#!/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() {
+ mkdir -p "$destdir"
+ install -dm755 "$destdir"/{bin,lib,include,share/man/man1}
+ install -m755 bzip2-shared "$destdir"/bin/bzip2
+ install -m755 bzip2recover bzdiff bzgrep bzmore "$destdir"/bin
+ ln -sf bzip2 "$destdir"/bin/bunzip2
+ ln -sf bzip2 "$destdir"/bin/bzcat
+ cp -a libbz2.so* "$destdir"/lib
+ ln -s libbz2.so.${version} "$destdir"/lib/libbz2.so
+ ln -s libbz2.so.${version} "$destdir"/lib/libbz2.so.1
+ install -m644 bzlib.h "$destdir"/include
+ install -m644 bzip2.1 "$destdir"/share/man/man1
+ ln -sf bzip2.1 "$destdir"/share/man/man1/bunzip2.1
+ ln -sf bzip2.1 "$destdir"/share/man/man1/bzcat.1
+ ln -sf bzip2.1 "$destdir"/share/man/man1/bzip2recover.1
+}
+
+
diff --git a/scripts/curl/build.sh b/scripts/curl/build.sh
new file mode 100644
index 0000000..91ef02f
--- /dev/null
+++ b/scripts/curl/build.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+name=curl
+version=7.66.0
+revision=0
+sources=(
+ "https://curl.haxx.se/download/${name}-${version}.tar.xz"
+)
+depends=(
+ "libffi-3.2.1-0.tar.gz"
+ "openssl-1.1.1d-0.tar.gz"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=$prefix
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/diffutils/build.sh b/scripts/diffutils/build.sh
new file mode 100644
index 0000000..de85ab9
--- /dev/null
+++ b/scripts/diffutils/build.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+name=diffutils
+version=3.7
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.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="${destdir}"
+}
diff --git a/scripts/findutils/build.sh b/scripts/findutils/build.sh
new file mode 100644
index 0000000..5429b88
--- /dev/null
+++ b/scripts/findutils/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+name=findutils
+version=4.7.0
+revision=0
+sources=(
+ "https://ftp.gnu.org/gnu/${name}/${name}-${version}.tar.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="${destdir}"
+}
+
+
diff --git a/scripts/gdbm/build.sh b/scripts/gdbm/build.sh
new file mode 100644
index 0000000..30f65e4
--- /dev/null
+++ b/scripts/gdbm/build.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+name=gdbm
+version=1.18.1
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.gz"
+)
+depends=()
+
+
+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="${destdir}"
+}
diff --git a/scripts/grep/build.sh b/scripts/grep/build.sh
new file mode 100644
index 0000000..7d396d9
--- /dev/null
+++ b/scripts/grep/build.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+name=grep
+version=3.3
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.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="${destdir}"
+}
diff --git a/scripts/gzip/build.sh b/scripts/gzip/build.sh
new file mode 100644
index 0000000..686ac5f
--- /dev/null
+++ b/scripts/gzip/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+name=gzip
+version=1.10
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+depends=(
+ "grep-3.3-0.tar.gz"
+ "sed-4.7-0.tar.gz"
+)
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=$prefix
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/libffi/build.sh b/scripts/libffi/build.sh
new file mode 100644
index 0000000..7ac8bfa
--- /dev/null
+++ b/scripts/libffi/build.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+name=libffi
+version=3.2.1
+revision=0
+sources=(
+ ftp://sourceware.org/pub/libffi/${name}-${version}.tar.gz
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=$prefix --enable-pax_emutramp
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/libuuid/build.sh b/scripts/libuuid/build.sh
new file mode 100644
index 0000000..dea7aaf
--- /dev/null
+++ b/scripts/libuuid/build.sh
@@ -0,0 +1,29 @@
+#!/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"
+)
+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="${destdir}"
+ rm -r "${destdir}/${prefix}/sbin"
+}
diff --git a/scripts/m4/build.sh b/scripts/m4/build.sh
new file mode 100644
index 0000000..c5a5388
--- /dev/null
+++ b/scripts/m4/build.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+name=m4
+version=1.4.18
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+depends=(
+)
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+ patch -p1 -i ${build_script_root}/"m4-1.4.18-glibc-change-work-around.patch"
+}
+
+function build() {
+ ./configure --prefix=$prefix
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/m4/m4-1.4.18-glibc-change-work-around.patch b/scripts/m4/m4-1.4.18-glibc-change-work-around.patch
new file mode 100644
index 0000000..582ae9b
--- /dev/null
+++ b/scripts/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/scripts/ncurses/build.sh b/scripts/ncurses/build.sh
new file mode 100644
index 0000000..e4b6a55
--- /dev/null
+++ b/scripts/ncurses/build.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+name=ncurses
+version=6.1
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.gz"
+)
+depends=()
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=$prefix \
+ --with-shared \
+ --with-normal \
+ --without-debug \
+ --without-ada \
+ --enable-widec \
+ --enable-pc-files \
+ --with-cxx-bindings \
+ --with-cxx-shared \
+ --with-manpage-format=normal
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/openssl/build.sh b/scripts/openssl/build.sh
new file mode 100644
index 0000000..a996f1e
--- /dev/null
+++ b/scripts/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-1.2.11-0.tar.gz"
+)
+
+
+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="${destdir}" \
+ MANDIR=${prefix}/share/man \
+ MANSUFFIX=ssl \
+ install
+}
diff --git a/scripts/pcre/build.sh b/scripts/pcre/build.sh
new file mode 100644
index 0000000..92f2a37
--- /dev/null
+++ b/scripts/pcre/build.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+name=pcre
+version=8.43
+revision=0
+sources=(
+ "https://ftp.pcre.org/pub/${name}/${name}-${version}.tar.gz"
+)
+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-readline
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/python-pip/build.sh b/scripts/python-pip/build.sh
new file mode 100644
index 0000000..e2ba34c
--- /dev/null
+++ b/scripts/python-pip/build.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+name=python-pip
+version=19.2.3
+revision=0
+sources=(https://github.com/pypa/${name/python-/}/archive/${version}.tar.gz)
+depends=(
+ 'python-3'
+ 'python-setuptools'
+)
+
+function prepare() {
+ tar xf ${version}.tar.gz
+ cd ${name/python-/}-${version}
+}
+
+function package() {
+ python setup.py install --root="${destdir}" --prefix="${prefix}"
+ #find ${destdir} -type f | xargs sed -i -e "s|${build_runtime}|${prefix}|g"
+}
diff --git a/scripts/python-setuptools/build.sh b/scripts/python-setuptools/build.sh
new file mode 100644
index 0000000..cc903a7
--- /dev/null
+++ b/scripts/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-3')
+
+function prepare() {
+ tar xf v${version}.tar.gz
+ cd ${name/python-/}-${version}
+}
+
+function package() {
+ python bootstrap.py
+ python setup.py install --root="${destdir}" --prefix="${prefix}"
+ #find ${destdir} -type f | xargs -I'{}' sed -i -e "s|${build_runtime}|${prefix}|g" '{}'
+}
diff --git a/scripts/python/build.sh b/scripts/python/build.sh
new file mode 100644
index 0000000..7bc3b37
--- /dev/null
+++ b/scripts/python/build.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+name=python
+version=3.7.4
+_basever=${version%.*}
+revision=0
+sources=(
+ "https://www.python.org/ftp/python/${version}/Python-${version}.tar.xz"
+)
+depends=(
+ "tar-1.32-0.tar.gz"
+ "openssl-1.1.1d-0.tar.gz"
+ "libffi-3.2.1-0.tar.gz"
+ "grep-3.3-0.tar.gz"
+ "sed-4.7-0.tar.gz"
+ "sqlite-3.29.0-0.tar.gz"
+ "zlib-1.2.11-0.tar.gz"
+ "tcl-8.6.9-0.tar.gz"
+ "tk-8.6.9-0.tar.gz"
+)
+
+
+function prepare() {
+ tar xf Python-${version}.tar.xz
+ cd Python-${version}
+}
+
+function build() {
+
+ zlib="zlib zlibmodule.c ${CFLAGS} ${LDFLAGS} -lz"
+ echo "${zlib/=/ } >> Modules/Setup"
+
+ ./configure \
+ --prefix="${prefix}" \
+ --enable-ipv6 \
+ --enable-loadable-sqlite-extensions \
+ --enable-shared \
+ --with-computed-gotos \
+ --with-lto \
+ --with-dbmliborder=gdbm:ndbm \
+ --with-pymalloc \
+ --with-system-expat \
+ --with-system-ffi \
+ --without-ensurepip
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+ echo "Removing __pycache__ directories..."
+ find "${destdir}" -name "__pycache__" | xargs rm -rf
+
+ ln -s python3 "${destdir}/${prefix}"/bin/python
+ ln -s python3-config "${destdir}/${prefix}"/bin/python-config
+ ln -s idle3 "${destdir}/${prefix}"/bin/idle
+ ln -s pydoc3 "${destdir}/${prefix}"/bin/pydoc
+ ln -s python${_basever}.1 "${destdir}/${prefix}"/share/man/man1/python.1
+ chmod 755 "${destdir}/${prefix}"/lib/libpython${_basever}m.so
+}
+
+
diff --git a/scripts/readline/build.sh b/scripts/readline/build.sh
new file mode 100644
index 0000000..45db38e
--- /dev/null
+++ b/scripts/readline/build.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+name=readline
+version=8.0
+revision=0
+sources=(
+ "http://mirror.rit.edu/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} SHLIB_LIBS=-lncurses
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/sed/build.sh b/scripts/sed/build.sh
new file mode 100644
index 0000000..5042713
--- /dev/null
+++ b/scripts/sed/build.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+name=sed
+version=4.7
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.xz"
+)
+depends=("grep-3.3-0.tar.gz")
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.xz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=$prefix
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
diff --git a/scripts/sqlite/build.sh b/scripts/sqlite/build.sh
new file mode 100644
index 0000000..3683f0f
--- /dev/null
+++ b/scripts/sqlite/build.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+name=sqlite
+version=3.29.0
+_v=3290000
+revision=0
+sources=(
+ "https://sqlite.org/2019/${name}-autoconf-${_v}.tar.gz"
+)
+depends=()
+
+
+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="${destdir}"
+}
diff --git a/scripts/tar/build.sh b/scripts/tar/build.sh
new file mode 100644
index 0000000..12cd3e6
--- /dev/null
+++ b/scripts/tar/build.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+name=tar
+version=1.32
+revision=0
+sources=(
+ "http://mirror.rit.edu/gnu/${name}/${name}-${version}.tar.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="${destdir}"
+}
+
+
diff --git a/scripts/tcl/build.sh b/scripts/tcl/build.sh
new file mode 100644
index 0000000..6fa40c2
--- /dev/null
+++ b/scripts/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"
+)
+depends=(
+ "bzip2-1.0.8-0.tar.gz"
+ "grep-3.3-0.tar.gz"
+ "sed-4.7-0.tar.gz"
+ "pcre-8.43-0.tar.gz"
+ "zlib-1.2.11-0.tar.gz"
+)
+
+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="${destdir}"
+ chmod 755 "${destdir}/${prefix}"/lib/*.so
+}
diff --git a/scripts/tk/build.sh b/scripts/tk/build.sh
new file mode 100644
index 0000000..9515c27
--- /dev/null
+++ b/scripts/tk/build.sh
@@ -0,0 +1,30 @@
+#!/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"
+)
+depends=(
+ "grep-3.3-0.tar.gz"
+ "sed-4.7-0.tar.gz"
+ "zlib-1.2.11-0.tar.gz"
+ "tcl-${version}-0.tar.gz"
+)
+
+function prepare() {
+ tar xf ${name}${version_full}-src.tar.gz
+ cd ${name}${version}
+}
+
+function build() {
+ cd unix
+ ./configure --prefix=$prefix
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+ chmod 755 "${destdir}/${prefix}"/lib/*.so
+}
diff --git a/scripts/xz/build.sh b/scripts/xz/build.sh
new file mode 100644
index 0000000..ea31bdc
--- /dev/null
+++ b/scripts/xz/build.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+name=xz
+version=5.2.4
+revision=0
+sources=(
+ "https://tukaani.org/xz/${name}-${version}.tar.gz"
+)
+depends=(
+ "sed-4.7-0.tar.gz"
+ "grep-3.3-0.tar.gz"
+)
+
+
+function prepare() {
+ tar xf ${name}-${version}.tar.gz
+ cd ${name}-${version}
+}
+
+function build() {
+ ./configure --prefix=$prefix
+ make -j${maxjobs}
+}
+
+function package() {
+ make install DESTDIR="${destdir}"
+}
+
+
diff --git a/scripts/zlib/build.sh b/scripts/zlib/build.sh
new file mode 100644
index 0000000..fd46e1f
--- /dev/null
+++ b/scripts/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="${destdir}"
+}
+
+