From 30a991b901b7f38cf1d910f76bf7cfd235832c9b Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Tue, 25 Jul 2023 16:23:27 +0200 Subject: [PATCH] [docker] Updated Dockerfile for alpine-static --- docker/alpine-static/Dockerfile | 71 ++++++++++++++++++----- docker/alpine-static/libCSS-restrict.diff | 19 ++++++ docker/alpine-static/mes_static.sh | 13 +++-- docker/alpine-static/mes_static_js.sh | 2 + 4 files changed, 88 insertions(+), 17 deletions(-) create mode 100644 docker/alpine-static/libCSS-restrict.diff diff --git a/docker/alpine-static/Dockerfile b/docker/alpine-static/Dockerfile index 45a3f842..e6be89a1 100644 --- a/docker/alpine-static/Dockerfile +++ b/docker/alpine-static/Dockerfile @@ -8,7 +8,7 @@ FROM alpine:edge # prepare system -RUN apk update && apk add git meson gcc g++ cmake pkgconfig +RUN apk update && apk add git meson gcc g++ cmake pkgconfig make patch wget RUN cd /etc/apk && echo https://dl-cdn.alpinelinux.org/alpine/edge/testing >> repositories # install @@ -18,6 +18,8 @@ RUN apk add \ brotli-static \ bzip2-dev \ bzip2-static \ + curl-dev \ + curl-static \ expat-dev \ expat-static \ libevent-dev \ @@ -30,8 +32,9 @@ RUN apk add \ luajit-dev \ ncurses-dev \ ncurses-static \ - openssl1.1-compat-dev \ - openssl1.1-compat-libs-static \ + openssl-dev \ + openssl-libs-static \ + perl \ quickjs-dev \ sqlite-dev \ sqlite-static \ @@ -42,19 +45,59 @@ RUN apk add \ zlib-dev \ zlib-static \ zstd-dev \ + zstd-static \ xz-dev \ - xz-static + xz-static \ + make \ + nghttp2-dev \ + nghttp2-static \ + c-ares-dev \ + c-ares-static -# [*] libxml++5 -RUN apk add mm-common libtool upx xz +## [*] netsurf libs +# get netsurf source +RUN cd /root; \ +wget http://download.netsurf-browser.org/libs/releases/buildsystem-1.9.tar.gz; \ +tar -xf buildsystem-1.9.tar.gz; \ +make -C buildsystem-1.9 install PREFIX=/usr/local +##rm -rf buildsystem-1.9 -# libxml++5 cd -RUN mkdir /root/tmp; cd /root/tmp; \ -wget https://github.com/libxmlplusplus/libxmlplusplus/releases/download/5.0.2/libxml++-5.0.2.tar.xz; \ -tar -xf libxml++-5.0.2.tar.xz; -ADD build_xmlplusplus.sh /root/tmp/libxml++-5.0.2/build_xmlplusplus.sh -RUN cd /root/tmp/libxml++-5.0.2; \ -./build_xmlplusplus.sh +# +RUN cd /root; \ +export CFLAGS="-Wno-error"; \ +wget http://download.netsurf-browser.org/libs/releases/libparserutils-0.2.4-src.tar.gz; \ +tar -xf libparserutils-0.2.4-src.tar.gz; \ +make -C libparserutils-0.2.4 install -j1 Q= PREFIX=/usr/local LIBDIR=lib COMPONENT_TYPE=lib-static +##rm -rf libparserutils-0.2.4 + +RUN cd /root; \ +export CFLAGS="-Wno-error"; \ +wget http://download.netsurf-browser.org/libs/releases/libwapcaplet-0.4.3-src.tar.gz; \ +tar -xf libwapcaplet-0.4.3-src.tar.gz; \ +make -C libwapcaplet-0.4.3 install -j1 Q= PREFIX=/usr/local LIBDIR=lib COMPONENT_TYPE=lib-static +##rm -rf libwapcaplet-0.4.3 + +RUN cd /root; \ +export CFLAGS="-Wno-error"; \ +wget http://download.netsurf-browser.org/libs/releases/libhubbub-0.3.7-src.tar.gz; \ +tar -xf libhubbub-0.3.7-src.tar.gz; \ +make -C libhubbub-0.3.7 install -j1 Q= PREFIX=/usr/local LIBDIR=lib COMPONENT_TYPE=lib-static +##rm -rf libhubbub-0.3.7 + +RUN cd /root; \ +wget http://download.netsurf-browser.org/libs/releases/libcss-0.9.1-src.tar.gz; tar -xf libcss-0.9.1-src.tar.gz +ADD libCSS-restrict.patch /root/libCSS-restrict.patch +RUN cd /root/libcss-0.9.1; patch -p1 < /root/libCSS-restrict.diff; cd .. ;\ +export CFLAGS="-Wno-error"; \ +make -C libcss-0.9.1 install -j1 Q= PREFIX=/usr/local LIBDIR=lib COMPONENT_TYPE=lib-static +##rm -rf libcss-0.9.1 + +RUN cd /root; \ +export CFLAGS="-Wno-error"; \ +wget http://download.netsurf-browser.org/libs/releases/libdom-0.4.1-src.tar.gz; \ +tar -xf libdom-0.4.1-src.tar.gz; \ +make -C libdom-0.4.1 install -j1 Q= PREFIX=/usr/local LIBDIR=lib COMPONENT_TYPE=lib-static +##rm -rf libdom-0.4.1 ## [*] elinks sources # get elinks source @@ -62,6 +105,8 @@ RUN cd /root; git clone https://github.com/rkd77/elinks ## [*] Compilation # +RUN apk add upx bsd-compat-headers + ADD mes_static.sh /root/elinks/mes_static.sh RUN cd /root/elinks; \ ./mes_static.sh; diff --git a/docker/alpine-static/libCSS-restrict.diff b/docker/alpine-static/libCSS-restrict.diff new file mode 100644 index 00000000..69e9497b --- /dev/null +++ b/docker/alpine-static/libCSS-restrict.diff @@ -0,0 +1,19 @@ +--- libcss-0.8.0/include/libcss/computed.h.orig 2018-08-22 15:27:44.000000000 +0200 ++++ libcss-0.8.0/include/libcss/computed.h 2018-12-29 19:02:55.633399014 +0100 +@@ -79,13 +79,13 @@ + css_error css_computed_style_destroy(css_computed_style *style); + + css_error css_computed_style_compose( +- const css_computed_style *restrict parent, +- const css_computed_style *restrict child, ++ const css_computed_style *__restrict parent, ++ const css_computed_style *__restrict child, + css_error (*compute_font_size)(void *pw, + const struct css_hint *parent, + struct css_hint *size), + void *pw, +- css_computed_style **restrict result); ++ css_computed_style **__restrict result); + + /****************************************************************************** + * Property accessors below here * diff --git a/docker/alpine-static/mes_static.sh b/docker/alpine-static/mes_static.sh index deaa903f..3c25f189 100755 --- a/docker/alpine-static/mes_static.sh +++ b/docker/alpine-static/mes_static.sh @@ -2,8 +2,11 @@ rm -rf /root/tmp/builddir -CFLAGS="-O2 -static -no-pie" \ -CXXFLAGS="-O2 -static -no-pie" \ +LIBRARY_PATH="/usr/local/lib" \ +PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" \ +LDFLAGS="-L/usr/local/lib" \ +CFLAGS="-O2 -I/usr/local/include -static -no-pie" \ +CXXFLAGS="-O2 -I/usr/local/include -static -no-pie" \ meson /root/tmp/builddir \ -D88-colors=true \ -D256-colors=true \ @@ -26,6 +29,8 @@ meson /root/tmp/builddir \ -Dguile=false \ -Didn=true \ -Dipv6=true \ +-Dlibcss=true \ +-Dlibcurl=true \ -Dlibev=false \ -Dlibevent=true \ -Dluapkg='luajit' \ @@ -55,6 +60,6 @@ meson /root/tmp/builddir \ meson compile -C /root/tmp/builddir -strip /root/tmp/builddir/src/elinks +#strip /root/tmp/builddir/src/elinks -upx /root/tmp/builddir/src/elinks +#upx /root/tmp/builddir/src/elinks diff --git a/docker/alpine-static/mes_static_js.sh b/docker/alpine-static/mes_static_js.sh index 75f90d3c..ae495fe8 100755 --- a/docker/alpine-static/mes_static_js.sh +++ b/docker/alpine-static/mes_static_js.sh @@ -26,6 +26,8 @@ meson /root/tmp/builddir_js \ -Dguile=false \ -Didn=true \ -Dipv6=true \ +-Dlibcss=true \ +-Dlibcurl=true \ -Dlibev=false \ -Dlibevent=true \ -Dluapkg='luajit' \