Skip to content

Commit 5ffe069

Browse files
author
Paul Yang
authored
Merge pull request #3 from dongbeiouba/master
减少二进制发布版本的依赖,直接基于静态库
2 parents 60c69f8 + d4b7c81 commit 5ffe069

File tree

1 file changed

+258
-9
lines changed

1 file changed

+258
-9
lines changed

.github/workflows/release.yml

Lines changed: 258 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,159 @@ jobs:
5555
wget "https://github.com/Tongsuo-Project/Tongsuo/archive/refs/tags/${TONGSUO_VERSION}.tar.gz"
5656
tar zxf "${TONGSUO_VERSION}.tar.gz"
5757
pushd "Tongsuo-${TONGSUO_VERSION}"
58-
./config --prefix=${RUNNER_TEMP}/tongsuo no-shared enable-ntls --release
58+
./config --prefix=${RUNNER_TEMP}/tongsuo no-shared no-dso no-threads enable-ntls --release
5959
make -s -j4
6060
make install_sw
6161
popd
62+
- name: build libgpg-error
63+
run: |
64+
wget -nc https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.45.tar.gz
65+
tar xzf libgpg-error-1.45.tar.gz
66+
pushd libgpg-error-1.45
67+
./configure \
68+
--disable-shared \
69+
--prefix="${RUNNER_TEMP}/libgpg-error" \
70+
--enable-static \
71+
--disable-doc
72+
make -s -j4
73+
make install
74+
- name: build libexpat
75+
run: |
76+
wget -nc https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.gz
77+
tar xzf expat-2.4.8.tar.gz
78+
pushd expat-2.4.8
79+
./configure \
80+
--disable-shared \
81+
--prefix="${RUNNER_TEMP}/libexpat" \
82+
--enable-static \
83+
--without-docbook \
84+
--without-tests \
85+
--with-libgpg-error-prefix="${RUNNER_TEMP}/libgpg-error"
86+
make -s -j4
87+
make install
88+
popd
89+
- name: build libmetalink
90+
run: |
91+
wget -nc https://github.com/metalink-dev/libmetalink/releases/download/release-0.1.3/libmetalink-0.1.3.tar.gz
92+
tar xzf libmetalink-0.1.3.tar.gz
93+
pushd libmetalink-0.1.3
94+
EXPAT_CFLAGS="-I${RUNNER_TEMP}/libexpat/include" \
95+
EXPAT_LIBS="-L${RUNNER_TEMP}/libexpat/lib -lexpat" \
96+
./configure \
97+
--disable-shared \
98+
--prefix="${RUNNER_TEMP}/libmetalink" \
99+
--enable-static \
100+
--with-libgpg-error-prefix="${RUNNER_TEMP}/libgpg-error" \
101+
--with-libexpat
102+
make -s -j4
103+
make install
104+
popd
105+
- name: build libunistring
106+
run: |
107+
wget -nc https://ftp.gnu.org/gnu/libunistring/libunistring-1.1.tar.gz
108+
tar zxf libunistring-1.1.tar.gz
109+
pushd libunistring-1.1
110+
./configure \
111+
--prefix=${RUNNER_TEMP}/libunistring \
112+
--disable-shared
113+
make -s -j4
114+
make install
115+
popd
116+
- name: build libpcre2
117+
run: |
118+
wget -nc https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.gz
119+
tar xzf pcre2-10.40.tar.gz
120+
pushd pcre2-10.40
121+
./configure \
122+
--disable-shared \
123+
--prefix=${RUNNER_TEMP}/libpcre2 \
124+
--enable-static
125+
make -s -j4
126+
make install
127+
popd
128+
- name: build libiconv
129+
run: |
130+
wget -nc https://ftp.gnu.org/gnu/libiconv/libiconv-1.17.tar.gz
131+
tar xzf libiconv-1.17.tar.gz
132+
pushd libiconv-1.17
133+
./configure \
134+
--disable-shared \
135+
--prefix=${RUNNER_TEMP}/libiconv \
136+
--enable-static
137+
make -s -j4
138+
make install
139+
popd
140+
- name: build gettext (libintl)
141+
if: ${{ matrix.builder == 'macos-latest' }}
142+
run: |
143+
wget -nc https://ftp.gnu.org/pub/gnu/gettext/gettext-0.21.1.tar.gz
144+
tar xzf gettext-0.21.1.tar.gz
145+
pushd gettext-0.21.1
146+
./configure \
147+
--disable-shared \
148+
--prefix=${RUNNER_TEMP}/gettext \
149+
--enable-static \
150+
--disable-java \
151+
--disable-c++
152+
make -s -j4
153+
make install
154+
popd
62155
- uses: actions/checkout@v3
63156
with:
64157
path: wget
65-
- name: build wget
158+
- name: build wget (ubuntu)
159+
if: ${{ matrix.builder == 'ubuntu-latest' }}
66160
working-directory: ./wget
67161
run: |
68162
./bootstrap --skip-po --no-bootstrap-sync
69163
autoreconf -fi
70-
./configure --prefix=${RUNNER_TEMP}/wget --with-ssl=openssl --with-libssl-prefix=${RUNNER_TEMP}/tongsuo --disable-ntlm
164+
CFLAGS="-DPCRE2_STATIC=1 -I${RUNNER_TEMP}/libunistring/include -I${RUNNER_TEMP}/libiconv/include" \
165+
LDFLAGS="-L${RUNNER_TEMP}/libunistring/lib -lunistring -L${RUNNER_TEMP}/libiconv/lib -liconv" \
166+
PCRE2_CFLAGS="-I${RUNNER_TEMP}/libpcre2/include" \
167+
PCRE2_LIBS="-L${RUNNER_TEMP}/libpcre2/lib -lpcre2-8" \
168+
METALINK_CFLAGS="-I${RUNNER_TEMP}/libmetalink/include" \
169+
METALINK_LIBS="-L${RUNNER_TEMP}/libmetalink/lib -lmetalink -L${RUNNER_TEMP}/libexpat/lib -lexpat" \
170+
./configure \
171+
--prefix=${RUNNER_TEMP}/wget \
172+
--with-ssl=openssl \
173+
--with-libssl-prefix=${RUNNER_TEMP}/tongsuo \
174+
--without-zlib \
175+
--without-libiconv-prefix \
176+
--disable-iri \
177+
--disable-ntlm \
178+
--disable-pcre \
179+
--without-libpsl \
180+
--without-libuuid \
181+
--without-libintl-prefix \
182+
--with-included-libunistring
183+
make -s -j4
184+
make install
185+
find ${RUNNER_TEMP}/wget -type f -name wget
186+
- name: build wget (macos)
187+
if: ${{ matrix.builder == 'macos-latest' }}
188+
working-directory: ./wget
189+
run: |
190+
./bootstrap --skip-po --no-bootstrap-sync
191+
autoreconf -fi
192+
CFLAGS="-DPCRE2_STATIC=1 -I${RUNNER_TEMP}/libunistring/include -I${RUNNER_TEMP}/libiconv/include" \
193+
LDFLAGS="-L${RUNNER_TEMP}/libunistring/lib -lunistring -L${RUNNER_TEMP}/libiconv/lib -liconv ${RUNNER_TEMP}/gettext/lib/libintl.a" \
194+
PCRE2_CFLAGS="-I${RUNNER_TEMP}/libpcre2/include" \
195+
PCRE2_LIBS="-L${RUNNER_TEMP}/libpcre2/lib -lpcre2-8" \
196+
METALINK_CFLAGS="-I${RUNNER_TEMP}/libmetalink/include" \
197+
METALINK_LIBS="-L${RUNNER_TEMP}/libmetalink/lib -lmetalink -L${RUNNER_TEMP}/libexpat/lib -lexpat" \
198+
./configure \
199+
--prefix=${RUNNER_TEMP}/wget \
200+
--with-ssl=openssl \
201+
--with-libssl-prefix=${RUNNER_TEMP}/tongsuo \
202+
--without-zlib \
203+
--without-libiconv-prefix \
204+
--disable-iri \
205+
--disable-ntlm \
206+
--disable-pcre \
207+
--without-libpsl \
208+
--without-libuuid \
209+
--without-libintl-prefix \
210+
--with-included-libunistring
71211
make -s -j4
72212
make install
73213
find ${RUNNER_TEMP}/wget -type f -name wget
@@ -80,6 +220,11 @@ jobs:
80220
asset_path: ${{ runner.temp }}/wget/bin/wget
81221
asset_name: wget-${{ runner.os }}
82222
asset_content_type: application/octet-stream
223+
- name: debug
224+
if: ${{ failure() }}
225+
working-directory: ./wget
226+
run: |
227+
cat config.log
83228
build_windows:
84229
runs-on: windows-latest
85230
needs: [new_release]
@@ -90,42 +235,146 @@ jobs:
90235
- name: install dependencies
91236
shell: msys2 {0}
92237
run: |
93-
pacman -S --noconfirm base-devel msys2-runtime-devel mingw-w64-x86_64-toolchain autoconf automake git gperf pkg-config autoconf-archive gcc
238+
pacman -S --noconfirm base-devel msys2-runtime-devel mingw-w64-x86_64-toolchain autoconf automake git gperf pkg-config autoconf-archive gcc gettext
94239
ls -l ${RUNNER_TEMP}
95240
find ${RUNNER_TEMP} -type d -name openssl
96241
rm -rf ${RUNNER_TEMP}/msys64/mingw64/include/openssl
97242
ls -l ${RUNNER_TEMP}/msys64/mingw64/include/
243+
- name: Set env
244+
shell: msys2 {0}
245+
run: echo "RUN_TEMP=$(cd ${RUNNER_TEMP} && pwd)" >> $GITHUB_ENV
98246
- name: build Tongsuo
99247
shell: msys2 {0}
100248
run: |
101249
wget "https://github.com/Tongsuo-Project/Tongsuo/archive/refs/tags/${TONGSUO_VERSION}.tar.gz"
102250
tar zxf "${TONGSUO_VERSION}.tar.gz"
103251
pushd "Tongsuo-${TONGSUO_VERSION}"
104-
./Configure mingw64 enable-ntls no-shared --release --prefix=${RUNNER_TEMP}/tongsuo
252+
./Configure mingw64 enable-ntls no-shared no-dso no-threads --release --prefix=${RUN_TEMP}/tongsuo
105253
make depend
106254
make -s -j4
107255
make install_sw
108256
popd
257+
- name: build libexpat
258+
shell: msys2 {0}
259+
run: |
260+
wget -nc https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.gz
261+
tar xzf expat-2.4.8.tar.gz
262+
pushd expat-2.4.8
263+
./configure \
264+
--host=mingw32 \
265+
--disable-shared \
266+
--prefix=${runner_temp}/libexpat \
267+
--enable-static \
268+
--without-docbook \
269+
--without-tests \
270+
--with-libgpg-error-prefix=${RUN_TEMP}/libexpat
271+
make -s -j4
272+
make install
273+
popd
274+
- name: build libmetalink
275+
shell: msys2 {0}
276+
run: |
277+
wget -nc https://github.com/metalink-dev/libmetalink/releases/download/release-0.1.3/libmetalink-0.1.3.tar.gz
278+
tar xzf libmetalink-0.1.3.tar.gz
279+
pushd libmetalink-0.1.3
280+
EXPAT_CFLAGS="-I${RUN_TEMP}/libexpat/include" \
281+
EXPAT_LIBS="-L${RUN_TEMP}/libexpat/lib -lexpat" \
282+
./configure \
283+
--host=mingw32 \
284+
--disable-shared \
285+
--prefix="${RUN_TEMP}/libmetalink" \
286+
--enable-static \
287+
--with-libgpg-error-prefix="${RUN_TEMP}/libmetalink" \
288+
--with-libexpat
289+
make -s -j4
290+
make install
291+
popd
292+
- name: build libunistring
293+
shell: msys2 {0}
294+
run: |
295+
wget -nc https://ftp.gnu.org/gnu/libunistring/libunistring-1.1.tar.gz
296+
tar zxf libunistring-1.1.tar.gz
297+
pushd libunistring-1.1
298+
./configure \
299+
--host=mingw32 \
300+
--prefix=${RUN_TEMP}/libunistring \
301+
--disable-shared
302+
make -s -j4
303+
make install
304+
popd
305+
- name: build libpcre2
306+
shell: msys2 {0}
307+
run: |
308+
wget -nc https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.gz
309+
tar xzf pcre2-10.40.tar.gz
310+
pushd pcre2-10.40
311+
./configure \
312+
--host=mingw32 \
313+
--disable-shared \
314+
--prefix=${RUN_TEMP}/libpcre2 \
315+
--enable-static
316+
make -s -j4
317+
make install
318+
popd
319+
- name: build libiconv
320+
shell: msys2 {0}
321+
run: |
322+
wget -nc https://ftp.gnu.org/gnu/libiconv/libiconv-1.17.tar.gz
323+
tar xzf libiconv-1.17.tar.gz
324+
pushd libiconv-1.17
325+
./configure \
326+
--host=mingw32 \
327+
--disable-shared \
328+
--prefix=${RUN_TEMP}/libiconv \
329+
--enable-static
330+
make -s -j4
331+
make install
332+
popd
109333
- uses: actions/checkout@v3
110334
with:
111335
path: wget
112336
- name: build wget
113337
shell: msys2 {0}
114338
working-directory: ./wget
115339
run: |
116-
runner_temp=`cd ${RUNNER_TEMP} && pwd`
117340
./bootstrap --skip-po --no-bootstrap-sync
118341
autoreconf -fi
119-
CFLAGS="-D_WIN32_WINNT=0x0601" LIBS="-lbcrypt -lcrypt32" ./configure --prefix=${runner_temp}/wget --host=mingw32 --with-ssl=openssl --with-libssl-prefix=${runner_temp}/tongsuo --disable-ntlm
342+
CFLAGS="-D_WIN32_WINNT=0x0601 -DPCRE2_STATIC=1 -I${RUN_TEMP}/libunistring/include -I${RUN_TEMP}/libiconv/include" \
343+
LDFLAGS="-L${RUN_TEMP}/libunistring/lib -lunistring -L${RUN_TEMP}/libiconv/lib -liconv -static -static-libgcc" \
344+
PCRE2_CFLAGS="-I${RUN_TEMP}/libpcre2/include" \
345+
PCRE2_LIBS="-L${RUN_TEMP}/libpcre2/lib -lpcre2-8" \
346+
METALINK_CFLAGS="-I${RUN_TEMP}/libmetalink/include" \
347+
METALINK_LIBS="-L${RUN_TEMP}/libmetalink/lib -lmetalink -L${RUN_TEMP}/libexpat/lib -lexpat" \
348+
LIBS="-lbcrypt -lcrypt32" \
349+
./configure \
350+
--prefix=${RUN_TEMP}/wget \
351+
--host=mingw32 \
352+
--with-ssl=openssl \
353+
--with-libssl-prefix=${RUN_TEMP}/tongsuo \
354+
--without-zlib \
355+
--without-libiconv-prefix \
356+
--disable-iri \
357+
--disable-ntlm \
358+
--disable-pcre \
359+
--without-libpsl \
360+
--without-libuuid \
361+
--without-libintl-prefix \
362+
--with-included-libunistring
120363
make -s -j4
121364
make install
122-
find ${RUNNER_TEMP}/wget -type f -name wget.exe
365+
find ${RUN_TEMP}/wget -type f -name wget.exe
123366
- name: upload artifact
124367
uses: actions/upload-release-asset@v1
125368
env:
126369
GITHUB_TOKEN: ${{ github.token }}
127370
with:
128371
upload_url: ${{ needs.new_release.outputs.upload_url }}
129-
asset_path: ${{ runner.temp }}/wget/bin/wget.exe
372+
asset_path: ${{ runner.temp }}\wget\bin\wget.exe
130373
asset_name: wget-${{ runner.os }}.exe
131374
asset_content_type: application/octet-stream
375+
- name: debug
376+
if: ${{ failure() }}
377+
shell: msys2 {0}
378+
working-directory: ./wget
379+
run: |
380+
cat config.log

0 commit comments

Comments
 (0)