Skip to content

Commit ce549e2

Browse files
committed
Avoid all GPL dependencies to prevent licensing issues!
1 parent e2539a2 commit ce549e2

File tree

3 files changed

+60
-83
lines changed

3 files changed

+60
-83
lines changed

Modules/Setup

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,15 +201,15 @@ _crypt _cryptmodule.c -l:libcrypt.a
201201
_bz2 _bz2module.c -l:libbz2.a
202202
_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c -ldl -l:libffi.a -DHAVE_FFI_PREP_CIF_VAR -DHAVE_FFI_PREP_CLOSURE_LOC -DHAVE_FFI_CLOSURE_ALLOC
203203
# The _dbm module supports NDBM, GDBM with compat module, and Berkeley DB.
204-
_dbm _dbmmodule.c -l:libgdbm_compat.a -DUSE_GDBM_COMPAT
205-
_gdbm _gdbmmodule.c -l:libgdbm.a
204+
#_dbm _dbmmodule.c -l:libgdbm_compat.a -DUSE_GDBM_COMPAT
205+
#_gdbm _gdbmmodule.c -l:libgdbm.a
206206
_lzma _lzmamodule.c -l:liblzma.a
207207
_uuid _uuidmodule.c -l:libuuid.a
208208
zlib zlibmodule.c -l:libz.a
209209

210210
# The readline module also supports libeditline (-leditline).
211211
# Some systems may require -ltermcap or -ltermlib.
212-
readline readline.c -l:libreadline.a
212+
#readline readline.c -l:libeditline.a -DWITH_EDITLINE
213213

214214
# OpenSSL bindings
215215
#_ssl _ssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) $(OPENSSL_LIBS)

build.sh

Lines changed: 56 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,6 @@ export "PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig"
3535
mkdir -p dep-build
3636
cd dep-build
3737

38-
if [ ! -d readline-8.2 ]; then
39-
curl https://ftp.gnu.org/gnu/readline/readline-8.2.tar.gz -o readline.tar.gz
40-
tar -xf readline.tar.gz
41-
cd readline-8.2
42-
./configure --prefix=${PREFIX} --disable-shared
43-
make -j$(nproc --all)
44-
make install
45-
cd ..
46-
fi
47-
4838
if [ ! -d ncurses-6.4 ]; then
4939
curl https://ftp.gnu.org/gnu/ncurses/ncurses-6.4.tar.gz -o ncurses.tar.gz
5040
tar -xf ncurses.tar.gz
@@ -55,6 +45,16 @@ make install
5545
cd ..
5646
fi
5747

48+
if [ ! -d editline-1.17.1 ]; then
49+
curl -L https://github.com/troglobit/editline/releases/download/1.17.1/editline-1.17.1.tar.gz -o editline.tar.gz
50+
tar -xf editline.tar.gz
51+
cd editline-1.17.1
52+
./configure --prefix=${PREFIX} --disable-shared
53+
make -j$(nproc --all)
54+
make install
55+
cd ..
56+
fi
57+
5858
if [ ! -d sqlite-autoconf-3440000 ]; then
5959
curl https://sqlite.org/2023/sqlite-autoconf-3440000.tar.gz -o sqlite.tar.gz
6060
tar -xf sqlite.tar.gz
@@ -75,18 +75,6 @@ make install
7575
cd ..
7676
fi
7777

78-
if [ ! -d gdbm-1.23 ]; then
79-
curl https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz -o gdbm.tar.gz
80-
tar -xf gdbm.tar.gz
81-
cd gdbm-1.23
82-
./configure --prefix=${PREFIX} --disable-shared --enable-libgdbm-compat
83-
make -j$(nproc --all)
84-
make install
85-
mkdir -p ${PREFIX}/include/gdbm
86-
cp ./compat/dbm.h ./compat/ndbm.h ${PREFIX}/include/gdbm
87-
cd ..
88-
fi
89-
9078
if [ ! -d bzip2-1.0.8 ]; then
9179
curl https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz -o bzip2.tar.gz
9280
tar -xf bzip2.tar.gz
@@ -137,26 +125,6 @@ make install
137125
cd ..
138126
fi
139127

140-
if [ ! -d libiconv-1.17 ]; then
141-
curl https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz -o iconv.tar.gz
142-
tar -xf iconv.tar.gz
143-
cd libiconv-1.17
144-
./configure --prefix=${PREFIX} --disable-shared
145-
make -j$(nproc --all)
146-
make install
147-
cd ..
148-
fi
149-
150-
if [ ! -d gettext-0.22.3 ]; then
151-
curl https://ftp.gnu.org/pub/gnu/gettext/gettext-0.22.3.tar.gz -o gettext.tar.gz
152-
tar -xf gettext.tar.gz
153-
cd gettext-0.22.3
154-
./configure --prefix=${PREFIX} --disable-shared
155-
make -j$(nproc --all)
156-
make install
157-
cd ..
158-
fi
159-
160128
if [ ! -d libxcrypt-4.4.36 ]; then
161129
curl -L https://github.com/besser82/libxcrypt/releases/download/v4.4.36/libxcrypt-4.4.36.tar.xz -o libxcrypt.tar.xz
162130
tar -xf libxcrypt.tar.xz
@@ -167,15 +135,6 @@ make install
167135
cd ..
168136
fi
169137

170-
if [ ! -d bzip2-bzip2-1.0.8 ]; then
171-
curl https://gitlab.com/bzip2/bzip2/-/archive/bzip2-1.0.8/bzip2-bzip2-1.0.8.tar.gz -o bzip2.tar.gz
172-
tar -xf bzip2.tar.gz
173-
cd bzip2-bzip2-1.0.8
174-
make -j$(nproc --all)
175-
make install PREFIX=${PREFIX}
176-
cd ..
177-
fi
178-
179138
if [ ! -d libffi-3.4.4 ]; then
180139
curl -L https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz -o libffi.tar.gz
181140
tar -xf libffi.tar.gz
@@ -206,24 +165,14 @@ make install
206165
cd ..
207166
fi
208167

209-
if [ ! -d tcl8.6.13 ]; then
210-
curl -L http://downloads.sourceforge.net/project/tcl/Tcl/8.6.13/tcl8.6.13-src.tar.gz -o tcl.tar.gz
211-
tar -xf tcl.tar.gz
212-
cd tcl8.6.13/unix
213-
./configure --prefix=${PREFIX} --enable-shared=no --enable-threads
214-
make -j$(nproc --all)
215-
make install
216-
cd ../..
217-
fi
218-
219-
if [ ! -d tk8.6.13 ]; then
220-
curl -L http://downloads.sourceforge.net/project/tcl/Tcl/8.6.13/tk8.6.13-src.tar.gz -o tk.tar.gz
221-
tar -xf tk.tar.gz
222-
cd tk8.6.13/unix
223-
./configure --prefix=${PREFIX} --enable-shared=no --enable-threads --with-tcl=${PREFIX}/lib
168+
if [ ! -d editline-1.17.1 ]; then
169+
curl -L https://github.com/troglobit/editline/releases/download/1.17.1/editline-1.17.1.tar.gz -o editline.tar.gz
170+
tar -xf editline.tar.gz
171+
cd editline-1.17.1
172+
./configure --prefix=${PREFIX} --disable-shared
224173
make -j$(nproc --all)
225174
make install
226-
cd ../..
175+
cd ..
227176
fi
228177

229178
if [ ! -d xtrans-1.5.0 ]; then
@@ -256,6 +205,16 @@ make install
256205
cd ..
257206
fi
258207

208+
if [ ! -d freetype-2.13.2 ]; then
209+
curl -L https://download.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.gz -o freetype.tar.gz
210+
tar -xf freetype.tar.gz
211+
cd freetype-2.13.2
212+
./configure --prefix=${PREFIX} --disable-shared --with-brotli=no
213+
make -j$(nproc --all)
214+
make install
215+
cd ..
216+
fi
217+
259218
if [ ! -d libXft-2.3.8 ]; then
260219
curl -L https://xorg.freedesktop.org/releases/individual/lib/libXft-2.3.8.tar.gz -o libXft.tar.gz
261220
tar -xf libXft.tar.gz
@@ -336,14 +295,24 @@ make install
336295
cd ..
337296
fi
338297

339-
if [ ! -d freetype-2.13.2 ]; then
340-
curl -L https://download.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.gz -o freetype.tar.gz
341-
tar -xf freetype.tar.gz
342-
cd freetype-2.13.2
343-
./configure --prefix=${PREFIX} --disable-shared --with-brotli=no
298+
if [ ! -d tcl8.6.13 ]; then
299+
curl -L http://downloads.sourceforge.net/project/tcl/Tcl/8.6.13/tcl8.6.13-src.tar.gz -o tcl.tar.gz
300+
tar -xf tcl.tar.gz
301+
cd tcl8.6.13/unix
302+
./configure --prefix=${PREFIX} --enable-shared=no --enable-threads
344303
make -j$(nproc --all)
345304
make install
346-
cd ..
305+
cd ../..
306+
fi
307+
308+
if [ ! -d tk8.6.13 ]; then
309+
curl -L http://downloads.sourceforge.net/project/tcl/Tcl/8.6.13/tk8.6.13-src.tar.gz -o tk.tar.gz
310+
tar -xf tk.tar.gz
311+
cd tk8.6.13/unix
312+
./configure --prefix=${PREFIX} --enable-shared=no --enable-threads --with-tcl=${PREFIX}/lib
313+
make -j$(nproc --all) "X11_LIB_SWITCHES=-l:libX11.a -l:libxcb.a -l:libXss.a -l:libfontconfig.a -l:libXft.a -l:libXext.a -l:libXrandr.a -l:libXau.a -l:libXrender.a -l:libXdmcp.a -l:libfreetype.a -l:libexpat.a -l:libpng.a -l:libharfbuzz.a -l:libX11.a -l:libxcb.a -l:libbz2.a"
314+
make install
315+
cd ../..
347316
fi
348317

349318
if [ ! -d expat-2.5.0 ]; then
@@ -356,6 +325,16 @@ make install
356325
cd ..
357326
fi
358327

328+
if [ ! -d mpdecimal-4.0.0 ]; then
329+
curl -L https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-4.0.0.tar.gz -o mpdecimal.tar.gz
330+
tar -xf mpdecimal.tar.gz
331+
cd mpdecimal-4.0.0
332+
./configure --prefix=${PREFIX} --disable-shared
333+
make -j$(nproc --all)
334+
make install
335+
cd ..
336+
fi
337+
359338
if [ ! -d libb2-0.98.1 ]; then
360339
curl -L https://github.com/BLAKE2/libb2/releases/download/v0.98.1/libb2-0.98.1.tar.gz -o libb2.tar.gz
361340
tar -xf libb2.tar.gz
@@ -400,7 +379,8 @@ fi
400379

401380
# The UCS4 has best compatibility with wheels on PyPI it seems.
402381
./configure "--prefix=$target" --disable-shared --enable-ipv6 --enable-unicode=ucs4 \
403-
--enable-optimizations --with-lto --with-computed-gotos --with-fpectl \
382+
--enable-optimizations --with-lto --with-computed-gotos --with-fpectl --without-readline \
383+
--with-system-expat --with-system-libmpdec
404384
CC="$CC" \
405385
CXX="$CXX" \
406386
CFLAGS="-g $CFLAGS" \
@@ -428,22 +408,19 @@ $ELEVATE mv "$target/lib/python${long_version}/pip.py" "$target/lib/python${long
428408
$ELEVATE mkdir -p "$target/dependency_libs"
429409
$ELEVATE cp -r "$(pwd)/../Nuitka-Python-Deps" "$target/dependency_libs/base"
430410
$ELEVATE ln -s base "$target/dependency_libs/bzip2"
411+
$ELEVATE ln -s base "$target/dependency_libs/editline"
431412
$ELEVATE ln -s base "$target/dependency_libs/expat"
432413
$ELEVATE ln -s base "$target/dependency_libs/fontconfig"
433-
$ELEVATE ln -s base "$target/dependency_libs/freetype"
434-
$ELEVATE ln -s base "$target/dependency_libs/gdbm"
435-
$ELEVATE ln -s base "$target/dependency_libs/gettext"
436414
$ELEVATE ln -s base "$target/dependency_libs/harfbuzz"
437415
$ELEVATE ln -s base "$target/dependency_libs/b2"
438416
$ELEVATE ln -s base "$target/dependency_libs/ffi"
439-
$ELEVATE ln -s base "$target/dependency_libs/iconv"
417+
$ELEVATE ln -s base "$target/dependency_libs/mpdecimal"
440418
$ELEVATE ln -s base "$target/dependency_libs/png"
441419
$ELEVATE ln -s base "$target/dependency_libs/X11"
442420
$ELEVATE ln -s base "$target/dependency_libs/xcb"
443421
$ELEVATE ln -s base "$target/dependency_libs/xcrypt"
444422
$ELEVATE ln -s base "$target/dependency_libs/ncurses"
445423
$ELEVATE ln -s base "$target/dependency_libs/openssl"
446-
$ELEVATE ln -s base "$target/dependency_libs/readline"
447424
$ELEVATE ln -s base "$target/dependency_libs/sqlite"
448425
$ELEVATE ln -s base "$target/dependency_libs/tcltk"
449426
$ELEVATE ln -s base "$target/dependency_libs/uuid"

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1351,7 +1351,7 @@ def detect_modules(self):
13511351
self.detect_crypt()
13521352
self.detect_openssl_hashlib()
13531353
self.detect_hash_builtins()
1354-
self.detect_dbm_gdbm()
1354+
#self.detect_dbm_gdbm()
13551355
self.detect_sqlite()
13561356
self.detect_platform_specific_exts()
13571357
self.detect_nis()

0 commit comments

Comments
 (0)