diff --git a/packages/libnss/build.sh b/packages/libnss/build.sh new file mode 100644 index 000000000..bc7908660 --- /dev/null +++ b/packages/libnss/build.sh @@ -0,0 +1,79 @@ +TERMUX_PKG_HOMEPAGE=https://firefox-source-docs.mozilla.org/security/nss/ +TERMUX_PKG_DESCRIPTION="Network Security Services (NSS)" +TERMUX_PKG_LICENSE="MPL-2.0" +TERMUX_PKG_LICENSE_FILE="nss/COPYING" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=3.75 +TERMUX_PKG_SRCURL=https://archive.mozilla.org/pub/security/nss/releases/NSS_${TERMUX_PKG_VERSION//./_}_RTM/src/nss-${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=fd571507827284644f4dd522a032acda2286835f6683ed22a1c2d3878cc58582 +TERMUX_PKG_DEPENDS="libnspr, libsqlite, zlib" +TERMUX_PKG_BUILD_IN_SRC=true +TERMUX_PKG_EXTRA_MAKE_ARGS=" +CC_IS_CLANG=1 +CROSS_COMPILE=1 +NSPR_INCLUDE_DIR=$TERMUX_PREFIX/include/nspr +NSS_DISABLE_GTESTS=1 +NSS_ENABLE_WERROR=0 +NSS_SEED_ONLY_DEV_URANDOM=1 +NSS_USE_SYSTEM_SQLITE=1 +OS_TEST=$TERMUX_ARCH +" +TERMUX_MAKE_PROCESSES=1 +TERMUX_PKG_HOSTBUILD=true + +_LIBNSS_SIGN_LIBS="libfreebl3.so libnssdbm3.so libsoftokn3.so" + +termux_step_host_build() { + mkdir -p nsinstall + cd nsinstall + for f in nsinstall.c pathsub.c; do + gcc -c $TERMUX_PKG_SRCDIR/nss/coreconf/nsinstall/$f + done + gcc nsinstall.o pathsub.o -o nsinstall +} + +termux_step_pre_configure() { + CPPFLAGS+=" -DANDROID" + LDFLAGS+=" -llog" + + TERMUX_PKG_EXTRA_MAKE_ARGS+=" NSINSTALL=$TERMUX_PKG_HOSTBUILD_DIR/nsinstall/nsinstall" + if [ $TERMUX_ARCH_BITS -eq 64 ]; then + TERMUX_PKG_EXTRA_MAKE_ARGS+=" USE_64=1" + fi +} + +termux_step_make() { + cd nss + make -j $TERMUX_MAKE_PROCESSES \ + CCC="$CXX" \ + XCFLAGS="$CFLAGS $CPPFLAGS" \ + CPPFLAGS="$CPPFLAGS" \ + ${TERMUX_PKG_EXTRA_MAKE_ARGS} +} + +termux_step_make_install() { + cd dist + install -Dm600 -t $TERMUX_PREFIX/include/nss public/nss/* + install -Dm600 -t $TERMUX_PREFIX/include/nss/private private/nss/* + install -Dm600 -t $TERMUX_PREFIX/include/dbm public/dbm/* + install -Dm600 -t $TERMUX_PREFIX/include/dbm/private private/dbm/* + pushd *.OBJ + install -Dm700 -t $TERMUX_PREFIX/bin bin/* + install -Dm600 -t $TERMUX_PREFIX/lib lib/* + for f in $_LIBNSS_SIGN_LIBS; do + if [ ! -e lib/$f ]; then + echo "ERROR: \"lib/$f\" not found." + exit 1 + fi + done + popd +} + +termux_step_create_debscripts() { + echo "#!$TERMUX_PREFIX/bin/sh" > postinst + for f in $_LIBNSS_SIGN_LIBS; do + echo "$TERMUX_PREFIX/bin/shlibsign -i $TERMUX_PREFIX/lib/$f" >> postinst + done + echo "exit 0" >> postinst + chmod 0755 postinst +} diff --git a/packages/libnss/coreconf-Linux.mk.patch b/packages/libnss/coreconf-Linux.mk.patch new file mode 100644 index 000000000..2dcbcf548 --- /dev/null +++ b/packages/libnss/coreconf-Linux.mk.patch @@ -0,0 +1,11 @@ +--- a/nss/coreconf/Linux.mk ++++ b/nss/coreconf/Linux.mk +@@ -132,7 +132,7 @@ + endif + + ifeq ($(USE_PTHREADS),1) +-OS_PTHREAD = -lpthread ++OS_PTHREAD = + endif + + OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) $(ARCHFLAG) -pipe -ffunction-sections -fdata-sections -DHAVE_STRERROR diff --git a/packages/libnss/coreconf-rules.mk.patch b/packages/libnss/coreconf-rules.mk.patch new file mode 100644 index 000000000..eb4333a9e --- /dev/null +++ b/packages/libnss/coreconf-rules.mk.patch @@ -0,0 +1,11 @@ +--- a/nss/coreconf/rules.mk ++++ b/nss/coreconf/rules.mk +@@ -223,7 +223,7 @@ + endif # MSVC with manifest tool + endif + else +- $(MKSHLIB) -o $@ $(OBJS) $(SUB_SHLOBJS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) ++ $(MKSHLIB) -o $@ $(OBJS) $(SUB_SHLOBJS) $(LDFLAGS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) + chmod +x $@ + endif + endif diff --git a/packages/libnss/nss-utils.subpackage.sh b/packages/libnss/nss-utils.subpackage.sh new file mode 100644 index 000000000..371983165 --- /dev/null +++ b/packages/libnss/nss-utils.subpackage.sh @@ -0,0 +1,63 @@ +TERMUX_SUBPKG_INCLUDE=" +bin/addbuiltin +bin/atob +bin/baddbdir +bin/bltest +bin/btoa +bin/certutil +bin/chktest +bin/cmsutil +bin/conflict +bin/crlutil +bin/crmftest +bin/dbtest +bin/derdump +bin/dertimetest +bin/digest +bin/ecperf +bin/encodeinttest +bin/fbectest +bin/fipstest +bin/httpserv +bin/listsuites +bin/lowhashtest +bin/makepqg +bin/mangle +bin/modutil +bin/multinit +bin/nonspr10 +bin/nss-policy-check +bin/ocspclnt +bin/ocspresp +bin/oidcalc +bin/p7content +bin/p7env +bin/p7sign +bin/p7verify +bin/pk11ectest +bin/pk11gcmtest +bin/pk11importtest +bin/pk11mode +bin/pk12util +bin/pk1sign +bin/pkix-errcodes +bin/pp +bin/pwdecrypt +bin/remtest +bin/rsaperf +bin/rsapoptst +bin/sdbthreadtst +bin/sdrtest +bin/secmodtest +bin/selfserv +bin/signtool +bin/signver +bin/ssltap +bin/strsclnt +bin/symkeyutil +bin/tstclnt +bin/validation +bin/vfychain +bin/vfyserv +" +TERMUX_SUBPKG_DESCRIPTION="Tools for NSS"