185 lines
6.5 KiB
Bash
Executable File
185 lines
6.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Build Freon Linux software from source.
|
|
# Version: 0.6.0
|
|
# (C) Chris Dorman, 2018-2020 GPLv3+
|
|
|
|
corecount="25"
|
|
|
|
#### Variables ###
|
|
# mirrors
|
|
mpfrmirror="https://ftp.gnu.org/gnu/mpfr"
|
|
mpcmirror="https://ftp.gnu.org/gnu/mpc"
|
|
gmpmirror="https://ftp.gnu.org/gnu/gmp"
|
|
binutilsmirror="https://ftp.gnu.org/gnu/binutils"
|
|
gccmirror="http://ftp.gnu.org/gnu/gcc/gcc-9.2.0"
|
|
nanomirror="https://www.nano-editor.org/dist/v3"
|
|
chttpdmirror="https://github.com/Pentium44/chttpd.git"
|
|
ftpmirror="https://github.com/Harlonxl/minFTPD.git"
|
|
harfbuzzmirror="http://deb.debian.org/debian/pool/main/h/harfbuzz"
|
|
ncursesmirror="https://ftp.gnu.org/pub/gnu/ncurses"
|
|
bashmirror="https://ftp.gnu.org/gnu/bash"
|
|
zlibmirror="https://zlib.net"
|
|
termcapmirror="https://ftp.gnu.org/gnu/termcap"
|
|
htopmirror="https://github.com/htop-dev/htop/archive"
|
|
islmirror="http://isl.gforge.inria.fr"
|
|
irciimirror="http://ircii.warped.com"
|
|
opensslmirror="https://www.openssl.org/source"
|
|
xlibmirror="https://www.x.org/archive/individual/lib"
|
|
xcbmirror="https://www.x.org/archive/individual/xcb"
|
|
libbsdmirror="https://libbsd.freedesktop.org/releases"
|
|
bz2mirror="https://sourceware.org/pub/bzip2"
|
|
freetypemirror="https://download.savannah.gnu.org/releases/freetype"
|
|
png16mirror="https://download.sourceforge.net/libpng"
|
|
stracemirror="https://gitlab.com/strace/strace.git"
|
|
elfutilsmirror="git://sourceware.org/git/elfutils.git"
|
|
gtk2mirror="https://download.gnome.org/sources/gtk+/2.24"
|
|
netsurfmirror="http://download.netsurf-browser.org/netsurf/releases/source-full"
|
|
xfemirror="https://netactuate.dl.sourceforge.net/project/xfe/xfe/1.43.2"
|
|
pangomirror="https://download.gnome.org/sources/pango/1.42"
|
|
fontconfigmirror="https://www.freedesktop.org/software/fontconfig/release"
|
|
hexchatmirror="https://dl.hexchat.net/hexchat"
|
|
pcmanfmmirror="https://downloads.sourceforge.net/pcmanfm"
|
|
idnmirror="https://ftp.gnu.org/gnu/libidn"
|
|
lynxmirror="https://invisible-mirror.net/archives/lynx/tarballs"
|
|
expatmirror="https://github.com/libexpat/libexpat/releases/download/R_2_2_7"
|
|
utillinuxmirror="https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.33"
|
|
foxmirror="ftp://ftp.fox-toolkit.org/pub"
|
|
glib2mirror="https://download.gnome.org/sources/glib/2.56"
|
|
cairomirror="https://www.cairographics.org/releases"
|
|
gdkpixbufmirror="http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.36"
|
|
atkmirror="http://ftp.gnome.org/pub/gnome/sources/atk/2.26"
|
|
gobjectintromirror="http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.54"
|
|
selinuxmirror="http://deb.debian.org/debian/pool/main/libs/libselinux"
|
|
ffimirror="https://sourceware.org/ftp/libffi"
|
|
pcremirror="https://downloads.sourceforge.net/pcre"
|
|
fmmirror="https://downloads.sourceforge.net/pcmanfm"
|
|
menucachemirror="https://downloads.sourceforge.net/lxde"
|
|
notifymirror="http://ftp.gnome.org/pub/gnome/sources/libnotify/0.7"
|
|
fribidimirror="https://github.com/fribidi/fribidi/releases/download/v1.0.1"
|
|
saircdmirror="https://github.com/rg3/saircd"
|
|
sqlitemirror="https://www.sqlite.org/2020"
|
|
|
|
# filenames
|
|
gcc="gcc-9.2.0.tar.xz"
|
|
nano="nano-3.1.tar.xz"
|
|
ncurses="ncurses-6.1.tar.gz"
|
|
bash="bash-5.0.tar.gz"
|
|
zlib="zlib-1.2.11.tar.xz"
|
|
termcap="termcap-1.3.1.tar.gz"
|
|
htop="htop-2.2.0.tar.gz"
|
|
binutils="binutils-2.31.1.tar.xz"
|
|
gmp="gmp-6.1.2.tar.xz"
|
|
mpfr="mpfr-4.0.2.tar.xz"
|
|
mpc="mpc-1.1.0.tar.gz"
|
|
isl="isl-0.19.tar.xz"
|
|
ircii="ircii-20190117.tar.gz"
|
|
openssl="openssl-1.1.1h.tar.gz"
|
|
libbsd="libbsd-0.9.1.tar.xz"
|
|
bz2="bzip2-1.0.8.tar.gz"
|
|
freetype="freetype-2.10.4.tar.xz"
|
|
png16="libpng-1.6.37.tar.xz"
|
|
gtk2="gtk+-2.24.32.tar.xz"
|
|
netsurf="netsurf-all-3.10.tar.gz"
|
|
xcb="libxcb-1.13.tar.gz"
|
|
xcbutil="xcb-util-0.4.0.tar.gz"
|
|
xcbproto="xcb-proto-1.13.tar.gz"
|
|
xfe="xfe-1.43.2.tar.gz"
|
|
pango="pango-1.42.4.tar.xz"
|
|
fontconfig="fontconfig-2.13.1.tar.bz2"
|
|
hexchat="hexchat-2.12.4.tar.xz"
|
|
pcmanfm="pcmanfm-1.3.1.tar.xz"
|
|
lynx="lynx2.8.9rel.1.tar.gz"
|
|
idn="libidn-1.36.tar.gz"
|
|
expat="expat-2.2.7.tar.xz"
|
|
utillinux="util-linux-2.33.2.tar.xz"
|
|
fox="fox-1.6.57.tar.gz"
|
|
glib2="glib-2.56.4.tar.xz"
|
|
gobjectintro="gobject-introspection-1.54.1.tar.xz"
|
|
gdkpixbuf="gdk-pixbuf-2.36.11.tar.xz"
|
|
cairo="cairo-1.14.12.tar.xz"
|
|
pixman="pixman-0.34.0.tar.gz"
|
|
atk="atk-2.26.1.tar.xz"
|
|
pcre="pcre-8.43.tar.bz2"
|
|
selinux="libselinux_2.8.orig.tar.gz"
|
|
fm="libfm-1.2.5.tar.xz"
|
|
ffi="libffi-3.2.1.tar.gz"
|
|
menucache="menu-cache-1.1.0.tar.xz"
|
|
notify="libnotify-0.7.6.tar.xz"
|
|
fribidi="fribidi-1.0.1.tar.bz2"
|
|
harfbuzz="harfbuzz_2.3.1.orig.tar.bz2"
|
|
sqlite="sqlite-autoconf-3340000.tar.gz"
|
|
|
|
# work directories
|
|
tmpdir="`pwd`/pkgsrc"
|
|
softwaredir="`pwd`/src/rootfs"
|
|
freondir="/freon"
|
|
systemdir="`pwd`/system"
|
|
pkgbuilddir="`pwd`/pkgbuild"
|
|
|
|
# source directories
|
|
gccsrcdir=${gcc//.tar.xz}
|
|
nanosrcdir=${nano//.tar.xz}
|
|
ncursessrcdir=${ncurses//.tar.gz}
|
|
bashsrcdir=${bash//.tar.gz}
|
|
zlibsrcdir=${zlib//.tar.xz}
|
|
termcapsrcdir=${termcap//.tar.gz}
|
|
htopsrcdir=${htop//.tar.gz}
|
|
mpcsrcdir=${mpc//.tar.gz}
|
|
mpfrsrcdir=${mpfr//.tar.xz}
|
|
binutilssrcdir=${binutils//.tar.xz}
|
|
gmpsrcdir=${gmp//.tar.xz}
|
|
islsrcdir=${isl//.tar.xz}
|
|
irciisrcdir=${ircii//.tar.gz}
|
|
opensslsrcdir=${openssl//.tar.gz}
|
|
libbsdsrcdir=${libbsd//.tar.xz}
|
|
bz2srcdir=${bz2//.tar.gz}
|
|
freetypesrcdir=${freetype//.tar.xz}
|
|
png16srcdir=${png16//.tar.xz}
|
|
fontmiscsrcdir=${fontmisc//.tar.bz2}
|
|
font75dpisrcdir=${font75dpi//.tar.bz2}
|
|
font100dpisrcdir=${font100dpi//.tar.bz2}
|
|
gtk2srcdir=${gtk2//.tar.xz}
|
|
netsurfsrcdir=${netsurf//.tar.gz}
|
|
xfesrcdir=${xfe//.tar.gz}
|
|
pangosrcdir=${pango//.tar.xz}
|
|
fontconfigsrcdir=${fontconfig//.tar.bz2}
|
|
hexchatsrcdir=${hexchat//.tar.xz}
|
|
pcmanfmsrcdir=${pcmanfm//.tar.xz}
|
|
lynxsrcdir=${lynx//.tar.gz}
|
|
idnsrcdir=${idn//.tar.gz}
|
|
xcbsrcdir=${xcb//.tar.gz}
|
|
xcbutilsrcdir=${xcbutil//.tar.gz}
|
|
xcbprotosrcdir=${xcbproto//.tar.gz}
|
|
expatsrcdir=${expat//.tar.xz}
|
|
utillinuxsrcdir=${utillinux//.tar.xz}
|
|
foxsrcdir=${fox//.tar.gz}
|
|
glib2srcdir=${glib2//.tar.xz}
|
|
gdkpixbufsrcdir=${gdkpixbuf//.tar.xz}
|
|
cairosrcdir=${cairo//.tar.xz}
|
|
pixmansrcdir=${pixman//.tar.gz}
|
|
atksrcdir=${atk//.tar.xz}
|
|
gobjectintrosrcdir=${gobjectintro//.tar.xz}
|
|
ffisrcdir=${ffi//.tar.gz}
|
|
pcresrcdir=${pcre//.tar.bz2}
|
|
selinuxsrcdir=${selinux//.orig.tar.gz}
|
|
fmsrcdir=${fm//.tar.xz}
|
|
menucachesrcdir=${menucache//.tar.xz}
|
|
notifysrcdir=${notify//.tar.xz}
|
|
fribidisrcdir=${fribidi//.tar.bz2}
|
|
harfbuzzsrcdir=${harfbuzz//.tar.bz2}
|
|
sqlitesrcdir=${sqlite//.tar.gz}
|
|
|
|
if [ ! -d "$tmpdir" ]; then
|
|
echo "Warning: package source directory not found, creating."
|
|
mkdir $tmpdir > /dev/null 2>&1
|
|
fi
|
|
|
|
case $1 in
|
|
all ) echo "Building all!"
|
|
ncurses; nano; chttpd; gmp; mpfr; binutils; mpc; gcc; bash; isl; termcap; ircii; openssl; dvtm;;
|
|
packages ) echo "Building useful essentials..."
|
|
ncurses; nano; bash; termcap;;
|
|
* ) echo "Building $1..."
|
|
. $pkgbuilddir/$1.build;;
|
|
esac
|