# # Copyright (C) 2019 Lucian Cristian # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=nss PKG_VERSION:=3.93 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:= \ https://download.cdn.mozilla.net/pub/security/$(PKG_NAME)/releases/NSS_$(subst .,_,$(PKG_VERSION))_RTM/src \ https://archive.mozilla.org/pub/security/$(PKG_NAME)/releases/NSS_$(subst .,_,$(PKG_VERSION))_RTM/src PKG_HASH:=15f54bb72048eb105f8c0e936a04b899e74c3db9a19bbc1e00acee2af9476a8a PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com> PKG_LICENSE:=MPL-2.0 PKG_LICENSE_FILES:=nss/COPYING PKG_CPE_ID:=cpe:/a:mozilla:network_security_services PKG_BUILD_PARALLEL:=0 include $(INCLUDE_DIR)/package.mk define Package/libnss SECTION:=libs SUBMENU:=SSL CATEGORY:=Libraries TITLE:=Mozilla's SSL and TLS implementation URL:=https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS DEPENDS:=+libpthread +libsqlite3 +nspr endef define Package/nss-utils SECTION:=utils CATEGORY:=Utilities TITLE:=Utilities for Mozilla's SSL and TLS implementation URL:=https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS DEPENDS:=+libnss endef define Package/libnss/description Network Security Services (NSS) is a set of libraries designed to support cross-platform development of security-enabled client and server applications. Applications built with NSS can support SSL v2 and v3, TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 v3 certificates, and other security standards. endef CONFIGURE_PATH = ./nss MAKE_PATH = ./nss LBITS = $(shell $(TARGET_CC) -dM -E - </dev/null | grep -q "__LP64__" && echo 64 || echo 32) ifeq ($(LBITS),64) export USE_64=1 endif ifeq ($(CONFIG_CPU_TYPE),"xscale") TARGET_CFLAGS+= -mfloat-abi=softfp endif ifneq ($(findstring arm,$(CONFIG_ARCH)),) ifeq ($(findstring neon,$(CONFIG_CPU_TYPE)),) export NSS_DISABLE_ARM32_NEON endif endif export NATIVE_CC=$(HOSTCC) export NATIVE_FLAGS=$(HOST_CFLAGS) export NSS_ENABLE_WERROR=0 MAKE_FLAGS += \ CROSS_COMPILE=1 \ BUILD_OPT=1 \ NSDISTMODE=copy \ NSS_DISABLE_GTESTS=1 \ NSS_USE_SYSTEM_SQLITE=1 \ OS_ARCH=Linux \ OS_TEST=$(ARCH) \ fpic="$(FPIC)" \ NSPR_INCLUDE_DIR=$(STAGING_DIR)/usr/include/nspr \ SEED_ONLY_DEV_URANDOM=1 \ NS_USE_GCC=1 \ FREEBL_NO_DEPEND=1 \ NSS_PKIX_NO_LDAP=1 \ ALLOW_OPT_CODE_SIZE=1 \ OPT_CODE_SIZE=1 \ OS_REL_CFLAGS="$(TARGET_CFLAGS)" #native compile nsinstall define Build/Configure USE_NATIVE=1 OS_REL_CFLAGS="$(HOST_CFLAGS)" LDFLAGS="$(HOST_LDFLAGS)" \ CC="$(HOSTCC)" CPU_ARCH="$(HOST_ARCH)" \ $(MAKE) -C $(PKG_BUILD_DIR)/nss/coreconf/nsinstall endef define Build/Compile $(call Build/Compile/Default,nss_build_all) endef define Package/libnss/conffiles /etc/pki/nssdb endef define Build/InstallDev $(INSTALL_DIR) \ $(2)/bin \ $(1)/usr/bin \ $(1)/usr/include/nss \ $(1)/usr/lib \ $(1)/usr/lib/pkgconfig $(CP) $(PKG_BUILD_DIR)/dist/private/nss/*.h \ $(1)/usr/include/nss/ $(CP) $(PKG_BUILD_DIR)/dist/public/nss/*.h \ $(1)/usr/include/nss/ $(CP) $(PKG_BUILD_DIR)/dist/build_dir/lib/*.so \ $(1)/usr/lib/ $(CP) $(PKG_BUILD_DIR)/nss/config/*.pc \ $(1)/usr/lib/pkgconfig/ $(CP) $(PKG_BUILD_DIR)/nss/config/nss-config \ $(1)/usr/bin/ $(SED) 's,^\(prefix\)=.*,\1=$(STAGING_DIR)/usr,g' \ $(1)/usr/bin/nss-config $(LN) ../../usr/bin/nss-config \ $(2)/bin/ endef define Package/nss-utils/install $(INSTALL_DIR) \ $(1)/usr/bin $(CP) $(PKG_BUILD_DIR)/dist/build_dir/bin/certutil $(1)/usr/bin $(CP) $(PKG_BUILD_DIR)/dist/build_dir/bin/pk12util $(1)/usr/bin endef #for now pack only libreswan needed libs define Package/libnss/install $(INSTALL_DIR) \ $(1)/usr/lib \ $(1)/etc/pki/nssdb \ $(1)/etc/ipsec.d $(CP) $(PKG_BUILD_DIR)/dist/build_dir/lib/libfreebl3.so $(1)/usr/lib/ $(CP) $(PKG_BUILD_DIR)/dist/build_dir/lib/libnss3.so $(1)/usr/lib/ $(CP) $(PKG_BUILD_DIR)/dist/build_dir/lib/libnssckbi.so $(1)/usr/lib/ $(CP) $(PKG_BUILD_DIR)/dist/build_dir/lib/libnssutil3.so $(1)/usr/lib/ $(CP) $(PKG_BUILD_DIR)/dist/build_dir/lib/libsmime3.so $(1)/usr/lib/ $(CP) $(PKG_BUILD_DIR)/dist/build_dir/lib/libsoftokn3.so $(1)/usr/lib/ $(CP) $(PKG_BUILD_DIR)/dist/build_dir/lib/libssl3.so $(1)/usr/lib/ # Provide databases with a blank certificate $(CP) ./files/blank-cert9.db $(1)/etc/pki/nssdb/cert9.db $(CP) ./files/blank-key4.db $(1)/etc/pki/nssdb/key4.db $(CP) ./files/system-pkcs11.txt $(1)/etc/pki/nssdb/pkcs11.txt ln -s /etc/pki/nssdb/cert9.db $(1)/etc/ipsec.d/cert9.db ln -s /etc/pki/nssdb/key4.db $(1)/etc/ipsec.d/key4.db ln -s /etc/pki/nssdb/pkcs11.txt $(1)/etc/ipsec.d/pkcs11.txt endef $(eval $(call BuildPackage,nss-utils)) $(eval $(call BuildPackage,libnss))