diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-10-20 12:50:34 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-10-24 22:58:59 +0200 |
| commit | f001951e3aec75bf750fda476c0ba4ce443029c3 (patch) | |
| tree | 3f498ed5b6772043675f1abb5eea084c19fe464d | |
| parent | 505c7012cb160690afdcf5e50a98970ad346cb1e (diff) | |
WIP prosodyprosody
| -rw-r--r-- | ICU/73.2/Dockerfile | 18 | ||||
| -rw-r--r-- | Lua/5.4.6/Dockerfile | 1 | ||||
| -rw-r--r-- | LuaExpat/1.5.0/Dockerfile | 26 | ||||
| -rw-r--r-- | LuaSec/1.3.2/0001-src-Makefile-Generate-static-library.patch | 25 | ||||
| -rw-r--r-- | LuaSec/1.3.2/Dockerfile | 25 | ||||
| -rw-r--r-- | LuaSocket/3.1.0/0001-src-makefile-Replace-.so-with-.a.patch | 133 | ||||
| -rw-r--r-- | LuaSocket/3.1.0/Dockerfile | 29 | ||||
| -rw-r--r-- | Prosody/0.12.4/0001-GNUmakefile-Replace-.so-with-.a.patch | 89 | ||||
| -rw-r--r-- | Prosody/0.12.4/Dockerfile | 64 | ||||
| -rw-r--r-- | expat/2.5.0/Dockerfile | 16 | ||||
| -rw-r--r-- | luafilesystem/1.8.0/0001-Makefile-Replace-.so-with-.a.patch | 40 | ||||
| -rw-r--r-- | luafilesystem/1.8.0/Dockerfile | 21 | ||||
| -rw-r--r-- | luastatic/master/Dockerfile | 16 |
13 files changed, 502 insertions, 1 deletions
diff --git a/ICU/73.2/Dockerfile b/ICU/73.2/Dockerfile new file mode 100644 index 0000000..1cf0714 --- /dev/null +++ b/ICU/73.2/Dockerfile @@ -0,0 +1,18 @@ +FROM alpine +RUN apk update && apk add \ + make \ + gcc \ + g++ \ + musl-dev \ + wget +RUN wget https://github.com/unicode-org/icu/releases/download/release-73-2/icu4c-73_2-src.tgz +RUN tar -xf icu4c-73_2-src.tgz +WORKDIR /icu/source +ARG PREFIX=/opt/spm/libicu-73.2 +RUN ./configure \ + --prefix=$PREFIX \ + --enable-static \ + --disable-shared \ + CFLAGS='-ffunction-sections -fdata-sections -Os' +RUN make -j$(nproc --all) +RUN make install diff --git a/Lua/5.4.6/Dockerfile b/Lua/5.4.6/Dockerfile index 108af74..23e0151 100644 --- a/Lua/5.4.6/Dockerfile +++ b/Lua/5.4.6/Dockerfile @@ -1,6 +1,5 @@ FROM alpine RUN apk update && apk add \ - git \ make \ gcc \ musl-dev \ diff --git a/LuaExpat/1.5.0/Dockerfile b/LuaExpat/1.5.0/Dockerfile new file mode 100644 index 0000000..90d254b --- /dev/null +++ b/LuaExpat/1.5.0/Dockerfile @@ -0,0 +1,26 @@ +FROM alpine +RUN apk update && apk add \ + make \ + gcc \ + musl-dev \ + wget +COPY --from=lua:5.4.6 /opt/spm/lua-5.4.6/ /usr/local/ +COPY --from=libexpat:2.5.0 /opt/spm/libexpat-2.5.0/ /usr/local/ +RUN wget https://github.com/lunarmodules/luaexpat/archive/refs/tags/1.5.0.tar.gz +RUN tar -xf 1.5.0.tar.gz +WORKDIR /luaexpat-1.5.0 +ARG PREFIX=/opt/spm/luaexpat-1.5.0/ +RUN make -j$(nproc --all) \ + LUA_V=5.4 \ + LUA_LDIR=/usr/local/lib \ + LUA_CDIR=/usr/local/lib \ + LUA_INC=-I/usr/local/include \ + EXPAT_INC=-I/usr/local/include \ + COMMON_LDFLAGS="-L/usr/local/lib -llua" \ + COMMON_CFLAGS="-Os -ffunction-sections -fdata-sections -c" \ + LIBNAME=lxp.a +RUN make install \ + DESTDIR=$PREFIX \ + LUA_CDIR=lib \ + LUA_LDIR=lib \ + LIBNAME=lxp.a diff --git a/LuaSec/1.3.2/0001-src-Makefile-Generate-static-library.patch b/LuaSec/1.3.2/0001-src-Makefile-Generate-static-library.patch new file mode 100644 index 0000000..3720d27 --- /dev/null +++ b/LuaSec/1.3.2/0001-src-Makefile-Generate-static-library.patch @@ -0,0 +1,25 @@ +From 321059576dbcbb33ff31a8845fa1ecdd58e1876c Mon Sep 17 00:00:00 2001 +From: Xavier Del Campo Romero <xavi.dcr@tutanota.com> +Date: Tue, 24 Oct 2023 22:19:27 +0200 +Subject: [PATCH] src/Makefile: Generate static library + +--- + src/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Makefile b/src/Makefile +index 9b06a03..19fa52a 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -52,7 +52,7 @@ luasocket: + @cd luasocket && $(MAKE) + + $(CMOD): $(EXTRA) $(OBJS) +- $(CCLD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) ++ $(AR) $(ARFLAGS) $(OBJS) $@ + + clean: + cd luasocket && $(MAKE) clean +-- +2.34.1 + diff --git a/LuaSec/1.3.2/Dockerfile b/LuaSec/1.3.2/Dockerfile new file mode 100644 index 0000000..c088d71 --- /dev/null +++ b/LuaSec/1.3.2/Dockerfile @@ -0,0 +1,25 @@ +FROM alpine +RUN apk update && apk add \ + make \ + gcc \ + git \ + musl-dev \ + wget +COPY --from=lua:5.4.6 /opt/spm/lua-5.4.6/ /usr/local/ +COPY --from=luasocket:3.1.0 /opt/spm/luasocket-3.1.0/ /usr/local/ +COPY --from=libopenssl:3.1.1-minimal /opt/spm/openssl-3.1.1/ /usr/local/ +RUN wget https://github.com/brunoos/luasec/archive/refs/tags/v1.3.2.tar.gz +RUN tar -xf v1.3.2.tar.gz +WORKDIR /luasec-1.3.2 +RUN mkdir patches +COPY 0001-src-Makefile-Generate-static-library.patch patches/ +RUN git apply patches/0001-src-Makefile-Generate-static-library.patch +ARG PREFIX=/opt/spm/luasec-1.3.2 +RUN make \ + linux \ + CMOD=libluassl.a \ + LNX_CFLAGS="-I/usr/local/include -DWITH_LUASOCKET \ + -ffunction-sections -fdata-sections -Os" \ + LNX_LDFLAGS= + +# TODO: install diff --git a/LuaSocket/3.1.0/0001-src-makefile-Replace-.so-with-.a.patch b/LuaSocket/3.1.0/0001-src-makefile-Replace-.so-with-.a.patch new file mode 100644 index 0000000..4120604 --- /dev/null +++ b/LuaSocket/3.1.0/0001-src-makefile-Replace-.so-with-.a.patch @@ -0,0 +1,133 @@ +From 744c5c50cfb4e782985f746c5821de6d05b9ece0 Mon Sep 17 00:00:00 2001 +From: Xavier Del Campo Romero <xavi.dcr@tutanota.com> +Date: Tue, 24 Oct 2023 21:39:44 +0200 +Subject: [PATCH] src/makefile: Replace .so with .a + +--- + src/makefile | 60 ++++++++++++++++++++++++++++++++++++++++------------ + 1 file changed, 46 insertions(+), 14 deletions(-) + +diff --git a/src/makefile b/src/makefile +index 06f4d19..53d984b 100755 +--- a/src/makefile ++++ b/src/makefile +@@ -132,6 +132,7 @@ INSTALL_TOP=$(DESTDIR)$(prefix) + + INSTALL_TOP_LDIR=$(INSTALL_TOP)/$(LDIR) + INSTALL_TOP_CDIR=$(INSTALL_TOP)/$(CDIR) ++INSTALL_TOP_INCDIR=$(INSTALL_TOP)/$(INCDIR) + + INSTALL_SOCKET_LDIR=$(INSTALL_TOP_LDIR)/socket + INSTALL_SOCKET_CDIR=$(INSTALL_TOP_CDIR)/socket +@@ -170,6 +171,7 @@ SOCKET_macosx=usocket.o + #------ + # Compiler and linker settings + # for Linux ++A_linux=a + SO_linux=so + O_linux=o + CC_linux=gcc +@@ -270,13 +272,19 @@ SOCKET_win64=wsocket.obj + #------ + # Output file names + # ++# Packaging notes: library names were taken from Ubuntu APT. ++A=$(A_$(PLAT)) + SO=$(SO_$(PLAT)) + O=$(O_$(PLAT)) + SOCKET_V=3.0.0 + MIME_V=1.0.3 ++SOCKET_A=libluasocket.a + SOCKET_SO=socket-$(SOCKET_V).$(SO) ++MIME_A=libluamime.$(A) + MIME_SO=mime-$(MIME_V).$(SO) ++UNIX_A=libluaunix.$(A) + UNIX_SO=unix.$(SO) ++SERIAL_A=libluasocket-serial.$(A) + SERIAL_SO=serial.$(SO) + SOCKET=$(SOCKET_$(PLAT)) + +@@ -360,6 +368,28 @@ TO_TOP_LDIR= \ + socket.lua \ + mime.lua + ++TO_TOP_INCDIR = \ ++ auxiliar.h \ ++ buffer.h \ ++ compat.h \ ++ except.h \ ++ inet.h \ ++ io.h \ ++ luasocket.h \ ++ mime.h \ ++ options.h \ ++ pierror.h \ ++ select.h \ ++ socket.h \ ++ tcp.h \ ++ timeout.h \ ++ udp.h \ ++ unixdgram.h \ ++ unix.h \ ++ unixstream.h \ ++ usocket.h \ ++ wsocket.h ++ + #------ + # Targets + # +@@ -393,35 +423,37 @@ none: + @echo "where PLATFORM is one of these:" + @echo " $(PLATS)" + +-all: $(SOCKET_SO) $(MIME_SO) ++all: $(SOCKET_A) $(MIME_A) + +-$(SOCKET_SO): $(SOCKET_OBJS) +- $(LD) $(SOCKET_OBJS) $(LDFLAGS)$@ ++$(SOCKET_A): $(SOCKET_OBJS) ++ $(AR) $(ARFLAGS) $@ $(SOCKET_OBJS) + +-$(MIME_SO): $(MIME_OBJS) +- $(LD) $(MIME_OBJS) $(LDFLAGS)$@ ++$(MIME_A): $(MIME_OBJS) ++ $(AR) $(ARFLAGS) $@ $(MIME_OBJS) + +-all-unix: all $(UNIX_SO) $(SERIAL_SO) ++all-unix: all $(UNIX_A) $(SERIAL_A) + +-$(UNIX_SO): $(UNIX_OBJS) +- $(LD) $(UNIX_OBJS) $(LDFLAGS)$@ ++$(UNIX_A): $(UNIX_OBJS) ++ $(AR) $(ARFLAGS) $@ $(UNIX_OBJS) + +-$(SERIAL_SO): $(SERIAL_OBJS) +- $(LD) $(SERIAL_OBJS) $(LDFLAGS)$@ ++$(SERIAL_A): $(SERIAL_OBJS) ++ $(AR) $(ARFLAGS) $@ $(SERIAL_OBJS) + + install: ++ $(INSTALL_DIR) $(INSTALL_TOP_INCDIR) ++ $(INSTALL_DATA) $(TO_TOP_INCDIR) $(INSTALL_TOP_INCDIR) + $(INSTALL_DIR) $(INSTALL_TOP_LDIR) + $(INSTALL_DATA) $(TO_TOP_LDIR) $(INSTALL_TOP_LDIR) + $(INSTALL_DIR) $(INSTALL_SOCKET_LDIR) + $(INSTALL_DATA) $(TO_SOCKET_LDIR) $(INSTALL_SOCKET_LDIR) + $(INSTALL_DIR) $(INSTALL_SOCKET_CDIR) +- $(INSTALL_EXEC) $(SOCKET_SO) $(INSTALL_SOCKET_CDIR)/core.$(SO) ++ $(INSTALL_EXEC) $(SOCKET_A) $(INSTALL_SOCKET_CDIR)/ + $(INSTALL_DIR) $(INSTALL_MIME_CDIR) +- $(INSTALL_EXEC) $(MIME_SO) $(INSTALL_MIME_CDIR)/core.$(SO) ++ $(INSTALL_EXEC) $(MIME_A) $(INSTALL_MIME_CDIR)/ + + install-unix: install +- $(INSTALL_EXEC) $(UNIX_SO) $(INSTALL_SOCKET_CDIR)/$(UNIX_SO) +- $(INSTALL_EXEC) $(SERIAL_SO) $(INSTALL_SOCKET_CDIR)/$(SERIAL_SO) ++ $(INSTALL_EXEC) $(UNIX_A) $(INSTALL_SOCKET_CDIR)/ ++ $(INSTALL_EXEC) $(SERIAL_A) $(INSTALL_SOCKET_CDIR)/ + + local: + $(MAKE) install INSTALL_TOP_CDIR=.. INSTALL_TOP_LDIR=.. +-- +2.34.1 + diff --git a/LuaSocket/3.1.0/Dockerfile b/LuaSocket/3.1.0/Dockerfile new file mode 100644 index 0000000..1be6721 --- /dev/null +++ b/LuaSocket/3.1.0/Dockerfile @@ -0,0 +1,29 @@ +FROM alpine +RUN apk update && apk add \ + make \ + gcc \ + git \ + musl-dev \ + wget +COPY --from=lua:5.4.6 /opt/spm/lua-5.4.6/ /usr/local/ +RUN wget https://github.com/lunarmodules/luasocket/archive/refs/tags/v3.1.0.tar.gz +RUN tar -xf v3.1.0.tar.gz +WORKDIR /luasocket-3.1.0 +RUN mkdir patches +COPY 0001-src-makefile-Replace-.so-with-.a.patch patches/ +RUN git apply patches/0001-src-makefile-Replace-.so-with-.a.patch +ARG PREFIX=/opt/spm/luasocket-3.1.0 +RUN make -j$(nproc --all) \ + LUAINC_linux=/usr/local/include \ + MYCFLAGS="-ffunction-sections -fdata-sections -Os" \ + LUAV=5.4 \ + LDFLAGS_linux= +RUN make install \ + LUAV=5.4 \ + INSTALL_MIME_CDIR=$PREFIX/lib \ + INSTALL_MIME_LDIR=$PREFIX/lib/mime \ + INSTALL_SOCKET_CDIR=$PREFIX/lib/ \ + INSTALL_SOCKET_LDIR=$PREFIX/lib/socket \ + INSTALL_TOP_LDIR=$PREFIX/lib \ + INSTALL_TOP_CDIR=$PREFIX/lib \ + INSTALL_TOP_INCDIR=$PREFIX/include/luasocket diff --git a/Prosody/0.12.4/0001-GNUmakefile-Replace-.so-with-.a.patch b/Prosody/0.12.4/0001-GNUmakefile-Replace-.so-with-.a.patch new file mode 100644 index 0000000..9dd0896 --- /dev/null +++ b/Prosody/0.12.4/0001-GNUmakefile-Replace-.so-with-.a.patch @@ -0,0 +1,89 @@ +From b4e232dbad5d48048d391e78c749623f800cecdf Mon Sep 17 00:00:00 2001 +From: Xavier Del Campo Romero <xavi.dcr@tutanota.com> +Date: Tue, 24 Oct 2023 13:17:25 +0200 +Subject: [PATCH] GNUmakefile: Replace .so with .a + +--- + GNUmakefile | 6 +++--- + util-src/GNUmakefile | 22 +++++++++++----------- + 2 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/GNUmakefile b/GNUmakefile +index e9ec78c4e..3b37382ff 100644 +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -56,12 +56,12 @@ install-net: + $(INSTALL_DATA) net/resolvers/*.lua $(SOURCE)/net/resolvers + $(INSTALL_DATA) net/websocket/*.lua $(SOURCE)/net/websocket + +-install-util: util/encodings.so util/encodings.so util/pposix.so util/signal.so util/struct.so ++install-util: util/encodings.a util/encodings.a util/pposix.a util/signal.a util/struct.a + $(MKDIR) $(SOURCE) + $(MKDIR) $(SOURCE)/util + $(INSTALL_DATA) util/*.lua $(SOURCE)/util + $(MAKE) install -C util-src +- $(INSTALL_DATA) util/*.so $(SOURCE)/util ++ $(INSTALL_DATA) util/*.a $(SOURCE)/util + $(MKDIR) $(SOURCE)/util/sasl + $(INSTALL_DATA) util/sasl/*.lua $(SOURCE)/util/sasl + $(MKDIR) $(SOURCE)/util/human +@@ -137,7 +137,7 @@ vpath %.tl teal-src/ + + teal: util/jsonschema.lua util/datamapper.lua util/jsonpointer.lua + +-util/%.so: ++util/%.a: + $(MAKE) install -C util-src + + %.install: % +diff --git a/util-src/GNUmakefile b/util-src/GNUmakefile +index 810f39f7e..dfb793658 100644 +--- a/util-src/GNUmakefile ++++ b/util-src/GNUmakefile +@@ -6,16 +6,16 @@ CFLAGS+=-I$(LUA_INCDIR) + INSTALL_DATA=install -m644 + TARGET?=../util/ + +-ALL=encodings.so hashes.so net.so pposix.so signal.so table.so \ +- ringbuffer.so time.so poll.so compat.so strbitop.so \ +- struct.so ++ALL=encodings.a hashes.a net.a pposix.a signal.a table.a \ ++ ringbuffer.a time.a poll.a compat.a strbitop.a \ ++ struct.a + + ifdef RANDOM +-ALL+=crand.so ++ALL+=crand.a + endif + + .PHONY: all install clean +-.SUFFIXES: .c .o .so ++.SUFFIXES: .c .o .a + + all: $(ALL) + +@@ -23,15 +23,15 @@ install: $(ALL) + $(INSTALL_DATA) $? $(TARGET) + + clean: +- rm -f $(ALL) $(patsubst %.so,%.o,$(ALL)) ++ rm -f $(ALL) $(patsubst %.a,%.o,$(ALL)) + + encodings.o: CFLAGS+=$(IDNA_FLAGS) +-encodings.so: LDLIBS+=$(IDNA_LIBS) ++encodings.a: LDLIBS+=$(IDNA_LIBS) + +-hashes.so: LDLIBS+=$(OPENSSL_LIBS) ++hashes.a: LDLIBS+=$(OPENSSL_LIBS) + + crand.o: CFLAGS+=-DWITH_$(RANDOM) +-crand.so: LDLIBS+=$(RANDOM_LIBS) ++crand.a: LDLIBS+=$(RANDOM_LIBS) + +-%.so: %.o +- $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) ++%.a: %.o ++ $(AR) $(ARFLAGS) $@ $< +-- +2.34.1 + diff --git a/Prosody/0.12.4/Dockerfile b/Prosody/0.12.4/Dockerfile new file mode 100644 index 0000000..9739684 --- /dev/null +++ b/Prosody/0.12.4/Dockerfile @@ -0,0 +1,64 @@ +FROM alpine +RUN apk update && apk add \ + make \ + gcc \ + g++ \ + git \ + musl-dev \ + linux-headers \ + wget +# Pull dependencies. +COPY --from=lua:5.4.6 /opt/spm/lua-5.4.6/ /usr/local/ +COPY --from=libopenssl:3.1.1-minimal /opt/spm/openssl-3.1.1/ /usr/local/ +COPY --from=libicu:73.2 /opt/spm/libicu-73.2/ /usr/local/ +COPY --from=luastatic /opt/spm/luastatic-master/luastatic /usr/local/bin/ +COPY --from=libexpat:2.5.0 /opt/spm/libexpat-2.5.0/ /usr/local/ +COPY --from=luaexpat:1.5.0 /opt/spm/luaexpat-1.5.0/ /usr/local/ +COPY --from=luafilesystem:1.8.0 /opt/spm/luafilesystem-1.8.0/ /usr/local/ +COPY --from=luasocket:3.1.0 /opt/spm/luasocket-3.1.0/ /usr/local/ +# Download application. +RUN wget https://prosody.im/downloads/source/prosody-0.12.4.tar.gz +RUN tar -xf prosody-0.12.4.tar.gz +WORKDIR /prosody-0.12.4 +# Prosody uses some CLI tools from OpenSSL, and those require access +# to /opt/spm/openssl-3.1.1. +RUN mkdir -p /opt/spm +RUN ln -s /usr/local /opt/spm/openssl-3.1.1 +# Prosody shall be installed into a temporary prefix that will be later +# consumed by luastatic to generate the final, statically built executable. +ARG TMP_PREFIX=/tmp/prosody-0.12.4 +# Prepare patches. +RUN mkdir patches +COPY 0001-GNUmakefile-Replace-.so-with-.a.patch patches/ +RUN git apply patches/0001-GNUmakefile-Replace-.so-with-.a.patch +# Build application. +RUN ./configure \ + --prefix=$TMP_PREFIX \ + --add-cflags='-ffunction-sections -fdata-sections -Os' +RUN make -j$(nproc --all) +RUN make install +# Build application statically. +ARG PREFIX=/opt/spm/prosody-0.12.4/bin +WORKDIR $PREFIX +RUN CC=c++ luastatic \ + $TMP_PREFIX/bin/prosody \ + $(find $TMP_PREFIX/lib -iname '*.lua') \ + $(find $TMP_PREFIX/lib -iname '*.a') \ + $(find /usr/local/lib/lxp -iname '*.lua') \ + $(find /usr/local/lib/socket -iname '*.lua') \ + /usr/local/lib/mime.lua \ + /usr/local/lib/socket.lua \ + /usr/local/lib/lxp.a \ + /usr/local/lib/libexpat.a \ + /usr/local/lib/liblfs.a \ + /usr/local/lib/libluamime.a \ + /usr/local/lib/libluasocket.a \ + /usr/local/lib/liblua.a \ + /usr/local/lib/libicuuc.a \ + /usr/local/lib/libicui18n.a \ + /usr/local/lib/libicudata.a \ + /usr/local/lib64/libcrypto.a \ + -I/usr/local/include/ \ + -static \ + -Wl,--gc-sections +RUN strip prosody diff --git a/expat/2.5.0/Dockerfile b/expat/2.5.0/Dockerfile new file mode 100644 index 0000000..5ae4495 --- /dev/null +++ b/expat/2.5.0/Dockerfile @@ -0,0 +1,16 @@ +FROM alpine +RUN apk update && apk add \ + make \ + gcc \ + musl-dev \ + wget +RUN wget https://github.com/libexpat/libexpat/releases/download/R_2_5_0/expat-2.5.0.tar.gz +RUN tar -xf expat-2.5.0.tar.gz +WORKDIR /expat-2.5.0 +ARG PREFIX=/opt/spm/libexpat-2.5.0 +RUN ./configure \ + --disable-shared \ + --prefix=$PREFIX \ + CFLAGS='-ffunction-sections -fdata-sections -Os' +RUN make -j$(nproc --all) +RUN make install diff --git a/luafilesystem/1.8.0/0001-Makefile-Replace-.so-with-.a.patch b/luafilesystem/1.8.0/0001-Makefile-Replace-.so-with-.a.patch new file mode 100644 index 0000000..addf538 --- /dev/null +++ b/luafilesystem/1.8.0/0001-Makefile-Replace-.so-with-.a.patch @@ -0,0 +1,40 @@ +From ff291767f7a52ccedfde41e544fcf3b7c5fe2a45 Mon Sep 17 00:00:00 2001 +From: Xavier Del Campo Romero <xavi.dcr@tutanota.com> +Date: Tue, 24 Oct 2023 16:04:03 +0200 +Subject: [PATCH] Makefile: Replace .so with .a + +--- + Makefile | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/Makefile b/Makefile +index a7312a4..e22c2c9 100644 +--- a/Makefile ++++ b/Makefile +@@ -9,17 +9,17 @@ include $(CONFIG) + SRCS= src/$T.c + OBJS= src/$T.o + +-lib: src/lfs.so ++LIB=src/liblfs.a + +-src/lfs.so: $(OBJS) +- MACOSX_DEPLOYMENT_TARGET=$(MACOSX_DEPLOYMENT_TARGET); export MACOSX_DEPLOYMENT_TARGET; $(CC) $(LIB_OPTION) -o src/lfs.so $(OBJS) ++$(LIB): $(OBJS) ++ $(AR) $(ARFLAGS) $@ $(OBJS) + +-test: lib ++test: $(LIB) + LUA_CPATH=./src/?.so lua tests/test.lua + +-install: ++install: $(LIB) + mkdir -p $(DESTDIR)$(LUA_LIBDIR) +- cp src/lfs.so $(DESTDIR)$(LUA_LIBDIR) ++ cp $< $(DESTDIR)$(LUA_LIBDIR) + + clean: + rm -f src/lfs.so $(OBJS) +-- +2.34.1 + diff --git a/luafilesystem/1.8.0/Dockerfile b/luafilesystem/1.8.0/Dockerfile new file mode 100644 index 0000000..bfbc115 --- /dev/null +++ b/luafilesystem/1.8.0/Dockerfile @@ -0,0 +1,21 @@ +FROM alpine +RUN apk update && apk add \ + make \ + gcc \ + git \ + musl-dev \ + wget +COPY --from=lua:5.4.6 /opt/spm/lua-5.4.6/ /usr/local/ +RUN wget https://github.com/lunarmodules/luafilesystem/archive/refs/tags/v1_8_0.tar.gz +RUN tar -xf v1_8_0.tar.gz +WORKDIR /luafilesystem-1_8_0 +RUN mkdir patches +COPY 0001-Makefile-Replace-.so-with-.a.patch patches/ +RUN git apply patches/0001-Makefile-Replace-.so-with-.a.patch +ARG PREFIX=/opt/spm/luafilesystem-1.8.0 +RUN make \ + CFLAGS="-Os -ffunction-sections -fdata-sections -pedantic \ + -I/usr/local/include" \ + LUA_VERSION=5.4 \ + LIB_OPTION= +RUN make install LUA_LIBDIR=$PREFIX/lib/ diff --git a/luastatic/master/Dockerfile b/luastatic/master/Dockerfile new file mode 100644 index 0000000..ad04502 --- /dev/null +++ b/luastatic/master/Dockerfile @@ -0,0 +1,16 @@ +FROM alpine +RUN apk update && apk add \ + git \ + make \ + gcc \ + musl-dev +RUN git clone --depth 1 --recursive https://github.com/ers35/luastatic \ + /opt/spm/luastatic-master +WORKDIR /opt/spm/luastatic-master +COPY --from=lua:5.4.6 /opt/spm/lua-5.4.6/ /usr/local/ +RUN make -j$(nproc --all) \ + LUA=lua \ + LIBLUA_A=/usr/local/lib/liblua.a \ + LUA_INCLUDE=/usr/local/include \ + CFLAGS=-static +RUN strip luastatic |
