...
 
Commits (3)
...@@ -44,5 +44,16 @@ Now the actual build. We build as an unpriviledged user: `su build; cd /scripts/ ...@@ -44,5 +44,16 @@ Now the actual build. We build as an unpriviledged user: `su build; cd /scripts/
Et voila, the binary for release is `${chhroot_dir}/install/bin/pEp-mini-json-adapter`. Et voila, the binary for release is `${chhroot_dir}/install/bin/pEp-mini-json-adapter`.
Installer
---------
This can be done in the same chroot, but bootstrapping a new one is cleaner.
- `alpine-installdeps-gui.sh`
- `su build`
- `./deps-cairo-static.sh`
- `./deps-pango-static.sh`
- `./tools-wxwidgets.sh`
- `./pEp-tblinux-installer.sh`
- `./deps-python2-static.sh`
...@@ -7,18 +7,41 @@ autoconf ...@@ -7,18 +7,41 @@ autoconf
automake automake
boost1.75-dev boost1.75-dev
boost1.75-static boost1.75-static
brotli-static
bzip2-static
capnproto-dev capnproto-dev
cargo cargo
clang-dev clang-dev
expat-dev
expat-static
fontconfig-static
freetype-static
fribidi-static
gettext-static
glib-static
gnu-libiconv gnu-libiconv
gnu-libiconv-dev gnu-libiconv-dev
gtest graphite2-static
gtest-dev harfbuzz-static
libjpeg-turbo-dev
libjpeg-turbo-static
libpng-dev
libpng-static
libtool libtool
libx11-dev
libx11-static
libxau-dev
libxcb
libxcb-dev
libxcb-static
mercurial mercurial
meson
nettle-dev nettle-dev
nettle-static nettle-static
openssl-dev openssl-dev
openssl-libs-static
pango-dev
pixman-static
py3-cffi py3-cffi
py3-lxml py3-lxml
py3-pytest py3-pytest
...@@ -27,9 +50,11 @@ python3-dev ...@@ -27,9 +50,11 @@ python3-dev
sqlite sqlite
sqlite-dev sqlite-dev
sqlite-static sqlite-static
sudo tiff
tiff-dev
util-linux util-linux
util-linux-dev util-linux-dev
xz
zlib zlib
zlib-dev zlib-dev
zlib-static zlib-static
......
...@@ -12,6 +12,8 @@ cargo ...@@ -12,6 +12,8 @@ cargo
clang-dev clang-dev
gnu-libiconv gnu-libiconv
gnu-libiconv-dev gnu-libiconv-dev
gtest
gtest-dev
libtool libtool
mercurial mercurial
nettle-dev nettle-dev
...@@ -25,28 +27,12 @@ python3-dev ...@@ -25,28 +27,12 @@ python3-dev
sqlite sqlite
sqlite-dev sqlite-dev
sqlite-static sqlite-static
sudo
util-linux util-linux
util-linux-dev util-linux-dev
zlib zlib
zlib-dev zlib-dev
zlib-static zlib-static
libpng-dev
libpng-static
libjpeg-dev
libjpeg-static
libjpeg-turbo-dev
libjpeg-turbo-static
tiff
tiff-dev
expat-dev
expat-static
libx11-dev
libx11-static
libxau-dev
libxcb
libxcb-dev
libxcb-static
xz
EOF EOF
apk fix apk fix
......
. settings.sh
cd /build/
wget https://cairographics.org/releases/cairo-$CAIRO_VERSION.tar.xz
tar -xf cairo-$CAIRO_VERSION.tar.xz
cd cairo-$CAIRO_VERSION/
./configure --enable-static --disable-xlib-xrender --disable-xcb-shm --prefix=${INSTPREFIX}
make -j8
make install
. settings.sh
cd /build/
wget https://download.gnome.org/sources/pango/${PANGO_VERSION%.*}/pango-$PANGO_VERSION.tar.xz
tar -xf pango-$PANGO_VERSION.tar.xz; cd pango-$PANGO_VERSION/
meson --prefix=${INSTPREFIX} -Db_staticpic=true -Db_pie=true --wrap-mode=nodownload --auto-features=auto --buildtype=plain -Dintrospection=disabled -Dgtk_doc=false -Ddefault_library=both build
meson compile -j8 -C build
meson install --no-rebuild -C build
. settings.sh
cd /build/
wget https://www.python.org/ftp/python/$PYTHON2_VERSION/Python-$PYTHON2_VERSION.tar.xz
tar -xf Python-$PYTHON2_VERSION.tar.xz
cd Python-$PYTHON2_VERSION
./configure --prefix=/install/ LDFLAGS="-static" --disable-shared --enable-unicode=ucs4
cat <<'EOF' >> Modules/Setup
array arraymodule.c # array objects
math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
_struct _struct.c # binary structure packing/unpacking
time timemodule.c # -lm # time operations and variables
operator operator.c # operator.add() and similar goodies
_random _randommodule.c # Random number generator
_collections _collectionsmodule.c # Container types
_heapq _heapqmodule.c # Heapq type
itertools itertoolsmodule.c # Functions creating iterators for efficient looping
strop stropmodule.c # String manipulations
_functools _functoolsmodule.c # Tools for working with functions and callable objects
_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
_io -I$(srcdir)/Modules/_io _io/bufferedio.c _io/bytesio.c _io/fileio.c _io/iobase.c _io/_iomodule.c _io/stringio.c _io/textio.c
fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
select selectmodule.c # select(2); not on ancient System V
_socket socketmodule.c # timemodule.c
_ssl _ssl.c \
-DUSE_SSL \
-lssl -lcrypto
_md5 md5module.c md5.c
_sha shamodule.c
_sha256 sha256module.c
_sha512 sha512module.c
binascii binascii.c
cStringIO cStringIO.c
cPickle cPickle.c
EOF
make LDFLAGS="-static" CFLAGS=-fPIC LINKFORSHARED=" "
make install
. settings.sh
cd /build/
git clone https://gitea.pep.foundation/claudio/pEpLinuxSetupForThunderbird.git
cd pEpLinuxSetupForThunderbird
git checkout $LINUXINSTALLER_VERSION
git submodule init
git submodule update
cd src/
PATH=/install/bin/:$PATH make STATIC=yes
...@@ -28,3 +28,7 @@ JSONADAPTER_VERSION=Release_2.1.0-RC17 ...@@ -28,3 +28,7 @@ JSONADAPTER_VERSION=Release_2.1.0-RC17
CAIRO_VERSION=1.16.0 CAIRO_VERSION=1.16.0
PANGO_VERSION=1.48.1 PANGO_VERSION=1.48.1
WXWIDGETS_VERSION=master WXWIDGETS_VERSION=master
PYTHON2_VERSION=2.7.18
# The installer itself.
LINUXINSTALLER_VERSION=master
. settings.sh
cd /build/
git clone https://github.com/wxWidgets/wxWidgets.git
cd wxWidgets
git checkout $WXWIDGETS_VERSION
git submodule update --init 3rdparty/catch
patch -p1 < /scripts/patches/wxWidgets-x11-cairo.patch
patch -p1 < /scripts/patches/wxWidgets-x11-fonts.patch
./configure --with-x11 --disable-shared --prefix=/install/ --disable-xlocale --with-libtiff=no
sed -i 's/wxUSE_ALL_THEMES 1/wxUSE_ALL_THEMES 0/g' ./lib/wx/include/x11univ-unicode-static-3.1/wx/setup.h
sed -i 's/wxUSE_THEME_WIN32.*/wxUSE_THEME_WIN32 1/g' ./lib/wx/include/x11univ-unicode-static-3.1/wx/setup.h
make clean
make -j8
# Add this experimentally determined list of additional libs (due to static linking) into wx-config.
sed -i 's/ldlibs_core="[^"]*/\0 -lXrender -lgio-2.0 -lffi -lpcre -lgraphite2 -lfribidi -luuid -lbrotlidec-static -lbrotlicommon-static -lbz2 -lpixman-1 -lxcb -lXau -lXdmcp -lXext -lX11/g' ./lib/wx/config/x11univ-unicode-static-3.1
make install