mirror of
https://github.com/rkd77/elinks.git
synced 2025-01-03 14:57:44 -05:00
[docker] Test version for DJGPP
This commit is contained in:
parent
d64c5c01ce
commit
a5c6641403
92
docker/djgpp/Dockerfile
Normal file
92
docker/djgpp/Dockerfile
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#
|
||||||
|
# [ djgpp ] elinks docker development environment v0.1c
|
||||||
|
#
|
||||||
|
|
||||||
|
# [*] base system
|
||||||
|
|
||||||
|
# get latest fedora
|
||||||
|
FROM fedora:latest
|
||||||
|
|
||||||
|
# prepare system
|
||||||
|
RUN dnf -y update && dnf -y install bash wget \
|
||||||
|
rsync vim screen git make automake meson unzip cmake patch
|
||||||
|
|
||||||
|
RUN cd /root; wget http://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-12.1.0/djcross-gcc-12.1.0-1ap.x86_64.rpm ; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-12.1.0/djcross-gcc-c++-12.1.0-1ap.x86_64.rpm ; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-12.1.0/djcross-gcc-tools-12.1.0-1ap.x86_64.rpm ; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/rpms/djcross-binutils-2.34-1ap.x86_64.rpm ; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/rpms/djcrx-2.05-5.x86_64.rpm ; \
|
||||||
|
rpm -Uhv *.rpm
|
||||||
|
|
||||||
|
# djgpp libraries
|
||||||
|
|
||||||
|
RUN cd /root; mkdir zip; cd zip; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/current/v2tk/expat20br2.zip; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/current/v2tk/wat3211b.zip; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/current/v2tk/xml2914b.zip; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/current/v2tk/zlb1212b.zip; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/current/v2apps/xz-525a.zip; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/current/v2apps/bz2-108a.zip; \
|
||||||
|
wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/repositories/1.3/apps/sqlite.zip; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/current/v2gnu/licv116b.zip; \
|
||||||
|
wget http://ftp.delorie.com/pub/djgpp/current/v2gnu/lidn138b.zip; \
|
||||||
|
|
||||||
|
RUN cd /root/zip; \
|
||||||
|
mkdir tmp; unzip expat20br2.zip -d tmp; cp -a tmp/include /usr/local/; cp -a tmp/lib /usr/local; rm -rf tmp; \
|
||||||
|
mkdir tmp; unzip wat3211b.zip -d tmp; mv -f tmp/net/watt/inc tmp/net/watt/include; cp -a tmp/net/watt/include /usr/local/; cp -a tmp/net/watt/lib /usr/local; rm -rf tmp; \
|
||||||
|
mkdir tmp; unzip xml2914b.zip -d tmp; cp -a tmp/include /usr/local/; cp -a tmp/lib /usr/local/; rm -rf tmp; \
|
||||||
|
mkdir tmp; unzip zlb1212b.zip -d tmp; cp -a tmp/include /usr/local/; cp -a tmp/lib /usr/local/; rm -rf tmp; \
|
||||||
|
mkdir tmp; unzip xz-525a.zip -d tmp; cp -a tmp/include /usr/local/; cp -a tmp/lib /usr/local/; rm -rf tmp; \
|
||||||
|
mkdir tmp; unzip bz2-108a.zip -d tmp; cp -a tmp/include /usr/local/; cp -a tmp/lib /usr/local/; rm -rf tmp; \
|
||||||
|
mkdir tmp; unzip sqlite.zip -d tmp; mkdir tmp/tmp2; unzip tmp/SOURCE/SQLITE/SOURCES.ZIP -d tmp/tmp2; cp -a tmp/tmp2/examples/sqlite3.h /usr/local/include/; cp -a tmp/tmp2/examples/libsqlite3.a /usr/local/lib/; \
|
||||||
|
cp -a tmp/tmp2/sqlite3.pc /usr/local/lib/pkgconfig/; rm -rf tmp; \
|
||||||
|
mkdir tmp; unzip licv116b.zip -d tmp; cp -a tmp/include /usr/local/; cp -a tmp/lib /usr/local/; rm -rf tmp; \
|
||||||
|
mkdir tmp; unzip lidn138b.zip -d tmp; cp -a tmp/include /usr/local/; cp -a tmp/lib /usr/local/; rm -rf tmp; \
|
||||||
|
sed -i -e 's|/dev/env/DJDIR|/usr/local|' /usr/local/lib/pkgconfig/*.pc
|
||||||
|
|
||||||
|
# openssl
|
||||||
|
RUN dnf -y install perl-FindBin; mkdir /root/tmp; cd /root/tmp; \
|
||||||
|
wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz; \
|
||||||
|
tar -xf openssl-1.1.1q.tar.gz; \
|
||||||
|
cd openssl-1.1.1q; \
|
||||||
|
CFLAGS="-I/usr/local/include -DWATT32_NO_OLDIES -DSHUT_RD=0 -L/usr/local/lib -fcommon" \
|
||||||
|
./Configure no-threads \
|
||||||
|
no-tests \
|
||||||
|
-static \
|
||||||
|
DJGPP \
|
||||||
|
--prefix=/usr/local \
|
||||||
|
--cross-compile-prefix=i586-pc-msdosdjgpp- && \
|
||||||
|
make depend && \
|
||||||
|
make -j6 && \
|
||||||
|
make install_runtime_libs && \
|
||||||
|
make install_dev ; \
|
||||||
|
rm -rf /root/tmp
|
||||||
|
|
||||||
|
# brotli
|
||||||
|
ADD cc.py /usr/local/bin/cc.py
|
||||||
|
ADD brotli.diff /root/brotli.diff
|
||||||
|
RUN mkdir /root/tmp; cd /root/tmp; \
|
||||||
|
wget https://github.com/google/brotli/archive/refs/tags/v1.0.9.tar.gz; \
|
||||||
|
tar -xf v1.0.9.tar.gz; \
|
||||||
|
cd brotli-1.0.9; \
|
||||||
|
patch -p1 < /root/brotli.diff; \
|
||||||
|
mkdir build; \
|
||||||
|
cd build; \
|
||||||
|
CC=cc.py cmake \
|
||||||
|
-DBUILD_SHARED_LIBS:BOOL=OFF \
|
||||||
|
-DBUILD_STATIC_LIBS:BOOL=ON \
|
||||||
|
-DCMAKE_AR=/usr/bin/i586-pc-msdosdjgpp-ar \
|
||||||
|
.. ; \
|
||||||
|
make -j6 VERBOSE=1; \
|
||||||
|
make install; \
|
||||||
|
rm -rf /root/tmp
|
||||||
|
|
||||||
|
|
||||||
|
# [*] elinks sources
|
||||||
|
|
||||||
|
# get elinks source
|
||||||
|
RUN dnf -y install pkgconf-pkg-config gettext
|
||||||
|
RUN cd /root; git clone https://github.com/rkd77/elinks
|
||||||
|
ADD mes_djgpp.sh /root/elinks/mes_djgpp.sh
|
||||||
|
RUN cd /root/elinks; \
|
||||||
|
./mes_djgpp.sh;
|
129
docker/djgpp/brotli.diff
Normal file
129
docker/djgpp/brotli.diff
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
diff -Nru brotli-1.0.9.orig/CMakeLists.txt brotli-1.0.9/CMakeLists.txt
|
||||||
|
--- brotli-1.0.9.orig/CMakeLists.txt 2020-08-27 14:12:55.000000000 +0000
|
||||||
|
+++ brotli-1.0.9/CMakeLists.txt 2022-07-10 17:05:29.565513161 +0000
|
||||||
|
@@ -137,7 +137,7 @@
|
||||||
|
set(BROTLI_LIBRARIES ${BROTLI_LIBRARIES_CORE} ${LIBM_LIBRARY})
|
||||||
|
mark_as_advanced(BROTLI_LIBRARIES)
|
||||||
|
|
||||||
|
-set(BROTLI_LIBRARIES_CORE_STATIC brotlienc-static brotlidec-static brotlicommon-static)
|
||||||
|
+set(BROTLI_LIBRARIES_CORE_STATIC brotlienc brotlidec brotlicommon)
|
||||||
|
set(BROTLI_LIBRARIES_STATIC ${BROTLI_LIBRARIES_CORE_STATIC} ${LIBM_LIBRARY})
|
||||||
|
mark_as_advanced(BROTLI_LIBRARIES_STATIC)
|
||||||
|
|
||||||
|
@@ -160,19 +160,21 @@
|
||||||
|
transform_sources_list("scripts/sources.lst" "${CMAKE_CURRENT_BINARY_DIR}/sources.lst.cmake")
|
||||||
|
include("${CMAKE_CURRENT_BINARY_DIR}/sources.lst.cmake")
|
||||||
|
|
||||||
|
-if(BROTLI_EMSCRIPTEN)
|
||||||
|
- set(BROTLI_SHARED_LIBS "")
|
||||||
|
-else()
|
||||||
|
- set(BROTLI_SHARED_LIBS brotlicommon brotlidec brotlienc)
|
||||||
|
- add_library(brotlicommon SHARED ${BROTLI_COMMON_C})
|
||||||
|
- add_library(brotlidec SHARED ${BROTLI_DEC_C})
|
||||||
|
- add_library(brotlienc SHARED ${BROTLI_ENC_C})
|
||||||
|
-endif()
|
||||||
|
-
|
||||||
|
-set(BROTLI_STATIC_LIBS brotlicommon-static brotlidec-static brotlienc-static)
|
||||||
|
-add_library(brotlicommon-static STATIC ${BROTLI_COMMON_C})
|
||||||
|
-add_library(brotlidec-static STATIC ${BROTLI_DEC_C})
|
||||||
|
-add_library(brotlienc-static STATIC ${BROTLI_ENC_C})
|
||||||
|
+#if(1
|
||||||
|
+# set(BROTLI_SHARED_LIBS "")
|
||||||
|
+#else()
|
||||||
|
+# set(BROTLI_SHARED_LIBS brotlicommon brotlidec brotlienc)
|
||||||
|
+# add_library(brotlicommon SHARED ${BROTLI_COMMON_C})
|
||||||
|
+# add_library(brotlidec SHARED ${BROTLI_DEC_C})
|
||||||
|
+# add_library(brotlienc SHARED ${BROTLI_ENC_C})
|
||||||
|
+#endif()
|
||||||
|
+
|
||||||
|
+set(BROTLI_SHARED_LIBS "")
|
||||||
|
+
|
||||||
|
+set(BROTLI_STATIC_LIBS brotlicommon brotlidec brotlienc)
|
||||||
|
+add_library(brotlicommon STATIC ${BROTLI_COMMON_C})
|
||||||
|
+add_library(brotlidec STATIC ${BROTLI_DEC_C})
|
||||||
|
+add_library(brotlienc STATIC ${BROTLI_ENC_C})
|
||||||
|
|
||||||
|
# Older CMake versions does not understand INCLUDE_DIRECTORIES property.
|
||||||
|
include_directories(${BROTLI_INCLUDE_DIRS})
|
||||||
|
@@ -195,13 +197,13 @@
|
||||||
|
set_property(TARGET ${lib} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${BROTLI_INCLUDE_DIRS}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
-if(NOT BROTLI_EMSCRIPTEN)
|
||||||
|
+#if(NOT BROTLI_EMSCRIPTEN)
|
||||||
|
+#target_link_libraries(brotlidec brotlicommon)
|
||||||
|
+#target_link_libraries(brotlienc brotlicommon)
|
||||||
|
+#endif()
|
||||||
|
+
|
||||||
|
target_link_libraries(brotlidec brotlicommon)
|
||||||
|
target_link_libraries(brotlienc brotlicommon)
|
||||||
|
-endif()
|
||||||
|
-
|
||||||
|
-target_link_libraries(brotlidec-static brotlicommon-static)
|
||||||
|
-target_link_libraries(brotlienc-static brotlicommon-static)
|
||||||
|
|
||||||
|
# For projects stuck on older versions of CMake, this will set the
|
||||||
|
# BROTLI_INCLUDE_DIRS and BROTLI_LIBRARIES variables so they still
|
||||||
|
@@ -226,12 +228,12 @@
|
||||||
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
|
)
|
||||||
|
|
||||||
|
- install(
|
||||||
|
- TARGETS ${BROTLI_LIBRARIES_CORE}
|
||||||
|
- ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
|
- )
|
||||||
|
+# install(
|
||||||
|
+# TARGETS ${BROTLI_LIBRARIES_CORE}
|
||||||
|
+# ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
+# LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
+# RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
|
+# )
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS ${BROTLI_LIBRARIES_CORE_STATIC}
|
||||||
|
diff -Nru brotli-1.0.9.orig/c/common/platform.h brotli-1.0.9/c/common/platform.h
|
||||||
|
--- brotli-1.0.9.orig/c/common/platform.h 2020-08-27 14:12:55.000000000 +0000
|
||||||
|
+++ brotli-1.0.9/c/common/platform.h 2022-07-10 15:34:19.368776746 +0000
|
||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
#include <brotli/types.h>
|
||||||
|
|
||||||
|
#if defined(OS_LINUX) || defined(OS_CYGWIN) || defined(__EMSCRIPTEN__)
|
||||||
|
-#include <endian.h>
|
||||||
|
+//#include <endian.h>
|
||||||
|
#elif defined(OS_FREEBSD)
|
||||||
|
#include <machine/endian.h>
|
||||||
|
#elif defined(OS_MACOSX)
|
||||||
|
diff -Nru brotli-1.0.9.orig/scripts/libbrotlicommon.pc.in brotli-1.0.9/scripts/libbrotlicommon.pc.in
|
||||||
|
--- brotli-1.0.9.orig/scripts/libbrotlicommon.pc.in 2020-08-27 14:12:55.000000000 +0000
|
||||||
|
+++ brotli-1.0.9/scripts/libbrotlicommon.pc.in 2022-07-10 17:05:51.845405730 +0000
|
||||||
|
@@ -7,5 +7,5 @@
|
||||||
|
URL: https://github.com/google/brotli
|
||||||
|
Description: Brotli common dictionary library
|
||||||
|
Version: @PACKAGE_VERSION@
|
||||||
|
-Libs: -L${libdir} -R${libdir} -lbrotlicommon
|
||||||
|
+Libs: -L${libdir} -lbrotlicommon
|
||||||
|
Cflags: -I${includedir}
|
||||||
|
diff -Nru brotli-1.0.9.orig/scripts/libbrotlidec.pc.in brotli-1.0.9/scripts/libbrotlidec.pc.in
|
||||||
|
--- brotli-1.0.9.orig/scripts/libbrotlidec.pc.in 2020-08-27 14:12:55.000000000 +0000
|
||||||
|
+++ brotli-1.0.9/scripts/libbrotlidec.pc.in 2022-07-10 17:06:06.013337085 +0000
|
||||||
|
@@ -7,6 +7,6 @@
|
||||||
|
URL: https://github.com/google/brotli
|
||||||
|
Description: Brotli decoder library
|
||||||
|
Version: @PACKAGE_VERSION@
|
||||||
|
-Libs: -L${libdir} -R${libdir} -lbrotlidec
|
||||||
|
+Libs: -L${libdir} -lbrotlidec
|
||||||
|
Requires.private: libbrotlicommon >= 1.0.2
|
||||||
|
Cflags: -I${includedir}
|
||||||
|
diff -Nru brotli-1.0.9.orig/scripts/libbrotlienc.pc.in brotli-1.0.9/scripts/libbrotlienc.pc.in
|
||||||
|
--- brotli-1.0.9.orig/scripts/libbrotlienc.pc.in 2020-08-27 14:12:55.000000000 +0000
|
||||||
|
+++ brotli-1.0.9/scripts/libbrotlienc.pc.in 2022-07-10 17:06:19.025273824 +0000
|
||||||
|
@@ -7,6 +7,6 @@
|
||||||
|
URL: https://github.com/google/brotli
|
||||||
|
Description: Brotli encoder library
|
||||||
|
Version: @PACKAGE_VERSION@
|
||||||
|
-Libs: -L${libdir} -R${libdir} -lbrotlienc
|
||||||
|
+Libs: -L${libdir} -lbrotlienc
|
||||||
|
Requires.private: libbrotlicommon >= 1.0.2
|
||||||
|
Cflags: -I${includedir}
|
2
docker/djgpp/build.sh
Executable file
2
docker/djgpp/build.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
sudo docker build -t "elinks-djgpp-dev:latest" .
|
12
docker/djgpp/cc.py
Executable file
12
docker/djgpp/cc.py
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
args = ['/usr/bin/i586-pc-msdosdjgpp-gcc']
|
||||||
|
for i in sys.argv[1:]:
|
||||||
|
if i == '-rdynamic':
|
||||||
|
continue
|
||||||
|
args.append(i)
|
||||||
|
sys.exit(subprocess.call(args))
|
3
docker/djgpp/cleanup.sh
Executable file
3
docker/djgpp/cleanup.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
sudo docker container stop elinks-djgpp-dev
|
||||||
|
sudo docker container rm elinks-djgpp-dev
|
60
docker/djgpp/mes_djgpp.sh
Executable file
60
docker/djgpp/mes_djgpp.sh
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
rm -rf /tmp/builddir
|
||||||
|
|
||||||
|
LIBRARY_PATH="/usr/local/lib" \
|
||||||
|
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" \
|
||||||
|
C_INCLUDE_PATH="/usr/local/include" \
|
||||||
|
CFLAGS="-O2 -I/usr/local/include -DWATT32_NO_NAMESPACE" \
|
||||||
|
LDFLAGS="-L/usr/local/lib" \
|
||||||
|
meson /tmp/builddir --cross-file cross/linux-djgpp.txt \
|
||||||
|
-D88-colors=false \
|
||||||
|
-D256-colors=false \
|
||||||
|
-Dbacktrace=false \
|
||||||
|
-Dbittorrent=false \
|
||||||
|
-Dbrotli=true \
|
||||||
|
-Dbzlib=false \
|
||||||
|
-Dcgi=false \
|
||||||
|
-Dcss=false \
|
||||||
|
-Dcombining=false \
|
||||||
|
-Ddgi=true \
|
||||||
|
-Dfastmem=true \
|
||||||
|
-Dfsp=false \
|
||||||
|
-Dgemini=true \
|
||||||
|
-Dgettext=false \
|
||||||
|
-Dgnutls=false \
|
||||||
|
-Dgopher=true \
|
||||||
|
-Dgpm=false \
|
||||||
|
-Dguile=false \
|
||||||
|
-Didn=true \
|
||||||
|
-Dipv6=true \
|
||||||
|
-Dlibev=false \
|
||||||
|
-Dlibevent=false \
|
||||||
|
-Dlzma=true \
|
||||||
|
-Dmailcap=false \
|
||||||
|
-Dmouse=true \
|
||||||
|
-Dnls=true \
|
||||||
|
-Dnntp=true \
|
||||||
|
-Dopenssl=true \
|
||||||
|
-Dperl=false \
|
||||||
|
-Dprefix=$HOME \
|
||||||
|
-Dpython=false \
|
||||||
|
-Dquickjs=false \
|
||||||
|
-Druby=false \
|
||||||
|
-Dsm-scripting=false \
|
||||||
|
-Dspidermonkey=false \
|
||||||
|
-Dstatic=true \
|
||||||
|
-Dterminfo=false \
|
||||||
|
-Dtre=false \
|
||||||
|
-Dtrue-color=false \
|
||||||
|
-Dutf-8=false \
|
||||||
|
-Dwithdebug=false \
|
||||||
|
-Dx=false \
|
||||||
|
-Dxbel=false \
|
||||||
|
-Dzlib=true \
|
||||||
|
-Dzstd=false
|
||||||
|
|
||||||
|
meson compile -C /tmp/builddir
|
||||||
|
|
||||||
|
cd /tmp/builddir
|
||||||
|
ninja install
|
6
docker/djgpp/run.sh
Executable file
6
docker/djgpp/run.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
sudo docker run -it \
|
||||||
|
--name=elinks-djgpp-dev \
|
||||||
|
-v /tmp:/tmp/host \
|
||||||
|
elinks-djgpp-dev:latest \
|
||||||
|
/bin/bash
|
3
docker/djgpp/shell.sh
Executable file
3
docker/djgpp/shell.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
sudo docker start elinks-djgpp-dev
|
||||||
|
sudo docker exec -it elinks-djgpp-dev bash
|
Loading…
Reference in New Issue
Block a user