Skip to content

Commit 5539bf2

Browse files
committed
Refactor build scripts and add new dependencies
- Removed obsolete build scripts: build_uuid.sh, build_xz.sh, build_zlib.sh, install_pip.sh, interpreter-patcher.sh, packing-initializer, pip-wrapper, python-wrapper. - Added new build scripts for dependencies: build_bzip2.sh, build_expat.sh, build_ffi.sh, build_gdbm.sh, build_gettext.sh, build_lzma.sh, build_musl.sh, build_ncurses.sh, build_openssl.sh, build_python.sh, build_readline.sh, build_sqlite3.sh, build_tcl.sh, build_xz.sh, build_zlib.sh, install_pip.sh. - Introduced a patch for ncurses to fix underlinking issues. - Updated the interpreter patching logic to handle architecture-specific musl interpreter paths. - Enhanced the packing-initializer and pip-wrapper scripts for better renaming and environment setup.
1 parent 35bdeab commit 5539bf2

140 files changed

Lines changed: 315 additions & 2557 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs: {
2323
},
2424
{
2525
"name": "Build docker image",
26-
"run": "docker build -t release-${{ github.ref_name }}:${{ matrix.version }}-${{ matrix.architecture }} ./${{ matrix.version }}/${{ matrix.architecture }}/",
26+
"run": "docker build -f ./${{ matrix.version }}/${{ matrix.architecture }}/Dockerfile -t release-${{ github.ref_name }}:${{ matrix.version }}-${{ matrix.architecture }} .",
2727
},
2828
{
2929
"name": "Save docker image as tar file",

.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ build:
1717
before_script:
1818
- (sudo apt-get update -y && sudo apt-get install -y gzip) || true
1919
script:
20-
- docker build -t release-${PACKAGE_NAME}:${version}-${architecture} ./${version}/${architecture}/ 1>${version}-${architecture}.log 2>&1
20+
- docker build -f ./${version}/${architecture}/Dockerfile -t release-${PACKAGE_NAME}:${version}-${architecture} . 1>${version}-${architecture}.log 2>&1
2121
- docker save release-${PACKAGE_NAME}:${version}-${architecture} > release-${version}-${architecture}.tar
2222
- bash ci/packing_release_tar.sh release-${version}-${architecture}.tar
2323
- gzip -9 build/release-${version}-${architecture}.tar

3.10/x86/Dockerfile

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
FROM i386/alpine:3.18.3 as base_builder
1+
ARG TARGETPLATFORM=linux/386
2+
FROM --platform=${TARGETPLATFORM} alpine:3.18.3 AS base_builder
23

34
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
45
LANG=C.UTF-8 \
@@ -12,99 +13,101 @@ RUN set -eux && apk add --no-cache ca-certificates tzdata && \
1213
bison flex gawk patch
1314

1415
# # =========== musl ===========
15-
FROM i386/debian:bookworm as musl_builder
16+
FROM --platform=${TARGETPLATFORM} debian:bookworm AS musl_builder
1617
ARG DEBIAN_FRONTEND=noninteractive
17-
ENV TZ=Asia/Taipei
18+
ENV TZ=Asia/Taipei \
19+
IS_32BIT=1
1820

1921
RUN apt-get update -y && apt-get upgrade -y && \
2022
apt-get install -y build-essential wget git file tar xz-utils dpkg-dev libnsl-dev libtirpc-dev uuid-dev patch
2123

2224
WORKDIR /src
23-
COPY ["./deplib/build_musl.sh", "./deplib/config.mak", "."]
25+
COPY ["common/build/deplib/build_musl.sh", "3.10/x86/deplib/config.mak", "."]
2426
RUN set -eux && ./build_musl.sh
2527

2628
# =========== libz ===========
27-
FROM base_builder as libz_builder
28-
COPY ["./deplib/build_zlib.sh", "."]
29+
FROM base_builder AS libz_builder
30+
COPY ["common/build/deplib/build_zlib.sh", "."]
2931
RUN set -eux && ./build_zlib.sh
3032

3133
# =========== ffi ===========
32-
FROM libz_builder as ffi_builder
33-
COPY ["./deplib/build_ffi.sh", "."]
34+
FROM libz_builder AS ffi_builder
35+
COPY ["common/build/deplib/build_ffi.sh", "."]
3436
RUN set -eux && ./build_ffi.sh
3537

3638
# =========== expat ===========
37-
FROM ffi_builder as expat_builder
38-
COPY ["./deplib/build_expat.sh", "."]
39+
FROM ffi_builder AS expat_builder
40+
COPY ["common/build/deplib/build_expat.sh", "."]
3941
RUN set -eux && ./build_expat.sh
4042

4143
# =========== gdbm ===========
42-
FROM expat_builder as gdbm_builder
43-
COPY ["./deplib/build_gdbm.sh", "."]
44+
FROM expat_builder AS gdbm_builder
45+
COPY ["common/build/deplib/build_gdbm.sh", "."]
4446
RUN set -eux && ./build_gdbm.sh
4547

4648
# =========== lzma ===========
47-
FROM gdbm_builder as lzma_builder
48-
COPY ["./deplib/build_lzma.sh", "."]
49+
FROM gdbm_builder AS lzma_builder
50+
COPY ["common/build/deplib/build_lzma.sh", "."]
4951
RUN set -eux && ./build_lzma.sh
5052

5153
# =========== gettext ===========
52-
FROM lzma_builder as gettext_builder
53-
COPY ["./deplib/build_gettext.sh", "."]
54+
FROM lzma_builder AS gettext_builder
55+
COPY ["common/build/deplib/build_gettext.sh", "."]
5456
RUN set -eux && ./build_gettext.sh
5557

5658
# =========== ncurses ===========
57-
FROM gettext_builder as ncurses_builder
58-
COPY ["./deplib/build_ncurses.sh", "."]
59+
FROM gettext_builder AS ncurses_builder
60+
COPY ["common/build/deplib/build_ncurses.sh", "."]
5961
RUN set -eux && ./build_ncurses.sh
6062

6163
# =========== openssl ===========
62-
FROM ncurses_builder as openssl_builder
63-
COPY ["./deplib/build_openssl.sh", "."]
64+
FROM ncurses_builder AS openssl_builder
65+
COPY ["common/build/deplib/build_openssl.sh", "."]
6466
RUN set -eux && ./build_openssl.sh
6567

6668
# =========== readline ===========
67-
FROM openssl_builder as readline_builder
68-
COPY ["./deplib/build_readline.sh", "./deplib/patch/fix-ncurses-underlinking.patch", "."]
69+
FROM openssl_builder AS readline_builder
70+
COPY ["common/build/deplib/build_readline.sh", "common/patches/common/ncurses/fix-ncurses-underlinking.patch", "."]
6971
RUN set -eux && ./build_readline.sh
7072

7173
# =========== tcl ===========
72-
FROM readline_builder as tcl_builder
73-
COPY ["./deplib/build_tcl.sh", "."]
74+
FROM readline_builder AS tcl_builder
75+
COPY ["common/build/deplib/build_tcl.sh", "."]
7476
RUN set -eux && ./build_tcl.sh
7577

7678
# =========== xz ===========
77-
FROM tcl_builder as xz_builder
78-
COPY ["./deplib/build_xz.sh", "."]
79+
FROM tcl_builder AS xz_builder
80+
COPY ["common/build/deplib/build_xz.sh", "."]
7981
RUN set -eux && ./build_xz.sh
8082

8183
# =========== bzip2 ===========
82-
FROM xz_builder as bzip2_builder
83-
COPY ["./deplib/build_bzip2.sh", "."]
84+
FROM xz_builder AS bzip2_builder
85+
COPY ["common/build/deplib/build_bzip2.sh", "."]
8486
RUN set -eux && ./build_bzip2.sh
8587

8688
# =========== sqlite3 ===========
87-
FROM bzip2_builder as sqlite3_builder
88-
COPY ["./deplib/build_sqlite3.sh", "."]
89+
FROM bzip2_builder AS sqlite3_builder
90+
COPY ["common/build/deplib/build_sqlite3.sh", "."]
8991
RUN set -eux && ./build_sqlite3.sh
9092

9193
# =========== Python ===========
92-
FROM sqlite3_builder as python_builder
94+
FROM sqlite3_builder AS python_builder
9395

94-
COPY ["./deplib/build_python.sh", "./deplib/install_pip.sh", "."]
96+
COPY ["common/build/deplib/build_python.sh", "common/build/deplib/install_pip.sh", "."]
9597
RUN set -eux && ./build_python.sh && ./install_pip.sh
9698

9799
# =========== patch_stage ===========
98-
FROM i386/debian:latest as patch_stage
100+
FROM --platform=${TARGETPLATFORM} debian:latest AS patch_stage
99101
ARG DEBIAN_FRONTEND=noninteractive
100-
ENV TZ=Asia/Taipei
102+
ENV TZ=Asia/Taipei \
103+
IS_32BIT=1
101104

102105
RUN apt-get update -y && apt-get install -y patchelf file
103106

104107
COPY --from=python_builder /opt/shared_libraries /opt/shared_libraries
105108
COPY --from=python_builder /opt/python /opt/python
106109

107-
COPY ["./packing-initializer", "./python-wrapper", "./pip-wrapper","."]
110+
COPY ["common/build/wrappers/packing-initializer", "common/build/wrappers/python-wrapper", "common/build/wrappers/pip-wrapper", "."]
108111
RUN ./packing-initializer && rm -rf packing-initializer && \
109112
mv python-wrapper /opt/python/bin/python3 && \
110113
mv pip-wrapper /opt/python/bin/pip3 && \
@@ -114,12 +117,12 @@ RUN ./packing-initializer && rm -rf packing-initializer && \
114117

115118
# Patch the generated python and related dynamic libraries
116119
COPY --from=musl_builder /opt/musl /opt/musl
117-
COPY ["./interpreter-patcher.sh", "."]
118-
RUN set -eux && ./interpreter-patcher.sh
120+
COPY ["common/build/wrappers/interpreter-patcher.sh", "."]
121+
RUN set -eux && ./interpreter-patcher.sh
119122

120123
# =========== final ===========
121-
FROM i386/debian:latest as final
124+
FROM --platform=${TARGETPLATFORM} debian:latest AS final
122125
ARG DEBIAN_FRONTEND=noninteractive
123126
ENV TZ=Asia/Taipei
124127

125-
COPY --from=patch_stage /opt/python /opt/python
128+
COPY --from=patch_stage /opt/python /opt/python

3.10/x86/deplib/build_gettext.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

3.10/x86/deplib/build_openssl.sh

Lines changed: 0 additions & 18 deletions
This file was deleted.

3.10/x86/deplib/build_zlib.sh

Lines changed: 0 additions & 13 deletions
This file was deleted.

3.10/x86/python-wrapper

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)