Skip to content

Commit 3aaf4f2

Browse files
committed
update versions in build action 3
1 parent 870e708 commit 3aaf4f2

1 file changed

Lines changed: 63 additions & 10 deletions

File tree

.github/workflows/build-wavpack.yml

Lines changed: 63 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ jobs:
88
name: Build WavPack for glibc ${{ matrix.glibc_version }}
99
runs-on: ubuntu-latest
1010
strategy:
11+
fail-fast: false
12+
max-parallel: 4
1113
matrix:
12-
glibc_version: ['2.31', '2.32', '2.33', '2.34', '2.35', '2.36', '2.37', '2.38', '2.39', '2.40', '2.41']
13-
wavpack_version: ['5.7.0', '5.8.0']
14+
glibc_version: ['2.31', '2.33', '2.35', '2.36', '2.37', '2.39'] # Common versions from Ubuntu LTS releases
15+
wavpack_version: ['5.7.0'] # Stick to stable version for now
1416

1517
steps:
1618
- uses: actions/checkout@v4
@@ -35,30 +37,81 @@ jobs:
3537
automake \
3638
libtool \
3739
gcc-multilib \
40+
gawk \
41+
bison \
42+
python3 \
43+
gettext \
44+
texinfo \
45+
pkg-config \
46+
file \
47+
patchelf \
48+
&& ln -s /usr/bin/python3 /usr/bin/python \
3849
&& rm -rf /var/lib/apt/lists/*
3950
51+
# Create a dedicated user for building
52+
RUN useradd -m builder
53+
USER builder
54+
WORKDIR /home/builder
55+
4056
# Download and build glibc
41-
RUN wget https://ftp.gnu.org/gnu/glibc/glibc-${GLIBC_VERSION}.tar.bz2 \
57+
RUN set -x \
58+
&& echo "Building glibc version ${GLIBC_VERSION}" \
59+
&& wget https://ftp.gnu.org/gnu/glibc/glibc-${GLIBC_VERSION}.tar.bz2 \
60+
&& echo "Extracting glibc source..." \
4261
&& tar xjf glibc-${GLIBC_VERSION}.tar.bz2 \
4362
&& mkdir glibc-build \
4463
&& cd glibc-build \
45-
&& ../glibc-${GLIBC_VERSION}/configure --prefix=/usr \
46-
&& make -j$(nproc) \
47-
&& make install
64+
&& echo "Configuring glibc..." \
65+
&& ../glibc-${GLIBC_VERSION}/configure \
66+
--prefix=/home/builder/glibc-install \
67+
--disable-werror \
68+
--enable-add-ons \
69+
--with-headers=/usr/include \
70+
--without-selinux \
71+
> ../configure.log 2>&1 || (cat ../configure.log && false) \
72+
&& echo "Building glibc..." \
73+
&& make -j$(nproc) > ../make.log 2>&1 || (cat ../make.log && false) \
74+
&& echo "Installing glibc..." \
75+
&& make install > ../install.log 2>&1 || (cat ../install.log && false) \
76+
&& echo "glibc build completed successfully"
77+
78+
# Verify glibc installation
79+
RUN /home/builder/glibc-install/lib/libc.so.6 --version
80+
81+
USER root
82+
83+
ENV PATH=/home/builder/glibc-install/bin:$PATH \
84+
LD_LIBRARY_PATH=/home/builder/glibc-install/lib:$LD_LIBRARY_PATH \
85+
CFLAGS="-I/home/builder/glibc-install/include" \
86+
LDFLAGS="-L/home/builder/glibc-install/lib"
4887
4988
# Now build WavPack
5089
ARG WAVPACK_VERSION
90+
USER builder
5191
RUN wget https://github.com/dbry/WavPack/releases/download/${WAVPACK_VERSION}/wavpack-${WAVPACK_VERSION}.tar.bz2 \
5292
&& tar xjf wavpack-${WAVPACK_VERSION}.tar.bz2 \
5393
&& cd wavpack-${WAVPACK_VERSION} \
54-
&& ./configure --enable-shared --prefix=/usr/local \
94+
&& ./configure --enable-shared --prefix=/home/builder/wavpack-install \
95+
--with-libtool-sysroot=/home/builder/glibc-install \
5596
&& make \
5697
&& make install
5798
58-
# Create output directory
99+
USER root
100+
101+
# Create output directory with the built libraries
59102
RUN mkdir -p /output/linux-x86_64-glibc${GLIBC_VERSION} \
60-
&& cp /usr/local/lib/libwavpack.so* /output/linux-x86_64-glibc${GLIBC_VERSION}/ \
61-
&& cp /usr/local/lib/libwavpack.so /output/linux-x86_64-glibc${GLIBC_VERSION}/libwavpack.so.1
103+
&& cp /home/builder/wavpack-install/lib/libwavpack.so* /output/linux-x86_64-glibc${GLIBC_VERSION}/ \
104+
&& cp /home/builder/wavpack-install/lib/libwavpack.so /output/linux-x86_64-glibc${GLIBC_VERSION}/libwavpack.so.1 \
105+
&& patchelf --set-rpath '$ORIGIN' /output/linux-x86_64-glibc${GLIBC_VERSION}/*.so* \
106+
&& echo "Built libraries:" \
107+
&& ls -l /output/linux-x86_64-glibc${GLIBC_VERSION}/ \
108+
&& ldd /output/linux-x86_64-glibc${GLIBC_VERSION}/libwavpack.so
109+
110+
# Clean up build files to reduce image size
111+
RUN rm -rf \
112+
/home/builder/glibc-* \
113+
/home/builder/wavpack-* \
114+
/var/lib/apt/lists/*
62115
EOF
63116
64117
- name: Build Docker image and extract libraries

0 commit comments

Comments
 (0)