Blame SPECS/mingw-nss.spec

Packit 301979
%{?mingw_package_header}
Packit 301979
%define _pkg_name nss
Packit 301979
Packit 301979
Name:		mingw-%{_pkg_name}
Packit 301979
Version:	3.20
Packit 301979
Release:	2%{?dist}
Packit 301979
Summary:	MinGW build of Network Security Services
Packit 301979
Packit 301979
License:	MPLv1.1 or GPLv2+ or LGPLv2+
Packit 301979
URL:		http://www.mozilla.org/projects/security/pki/nss/
Packit 301979
Source0:	https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_20_RTM/src/nss-3.20.tar.gz
Packit 301979
Packit 301979
Source1:        nss.pc.in
Packit 301979
Source2:        nss-config.in
Packit 301979
Source3:        blank-cert8.db
Packit 301979
Source4:        blank-key3.db
Packit 301979
Source5:        blank-secmod.db
Packit 301979
Packit 301979
Patch00:         nss-build.patch
Packit 301979
Patch01:         nss-3.18.1-headers.patch
Packit 301979
Packit 301979
BuildArch:	noarch
Packit 301979
ExclusiveArch: %{ix86} x86_64 %{arm}
Packit 301979
Packit 301979
BuildRequires:	mingw32-filesystem >= 95
Packit 301979
BuildRequires:	mingw64-filesystem >= 95
Packit 301979
BuildRequires:	mingw32-gcc mingw64-gcc
Packit 301979
BuildRequires:	mingw32-binutils mingw64-binutils
Packit 301979
BuildRequires:	mingw32-nspr mingw64-nspr
Packit 301979
BuildRequires:	mingw32-sqlite mingw64-sqlite
Packit 301979
BuildRequires:	mingw32-zlib mingw64-zlib
Packit 301979
BuildRequires:	mingw32-pkg-config mingw64-pkg-config
Packit 301979
BuildRequires:	perl-interpreter
Packit 301979
Packit 301979
%description
Packit 301979
Network Security Services (NSS) is a set of libraries designed to
Packit 301979
support cross-platform development of security-enabled client and
Packit 301979
server applications. Applications built with NSS can support SSL v2
Packit 301979
and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509
Packit 301979
v3 certificates, and other security standards.
Packit 301979
Packit 301979
%package -n mingw32-%{_pkg_name}
Packit 301979
Summary:	%{summary}
Packit 301979
Packit 301979
%description -n mingw32-%{_pkg_name}
Packit 301979
Network Security Services (NSS) is a set of libraries designed to
Packit 301979
support cross-platform development of security-enabled client and
Packit 301979
server applications. Applications built with NSS can support SSL v2
Packit 301979
and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509
Packit 301979
v3 certificates, and other security standards.
Packit 301979
Packit 301979
%package -n mingw64-%{_pkg_name}
Packit 301979
Summary:	%{summary}
Packit 301979
Packit 301979
%description -n mingw64-%{_pkg_name}
Packit 301979
Network Security Services (NSS) is a set of libraries designed to
Packit 301979
support cross-platform development of security-enabled client and
Packit 301979
server applications. Applications built with NSS can support SSL v2
Packit 301979
and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509
Packit 301979
v3 certificates, and other security standards.
Packit 301979
Packit 301979
%{?mingw_debug_package}
Packit 301979
Packit 301979
%prep
Packit 301979
%setup -q -n %{_pkg_name}-%{version}
Packit 301979
Packit 301979
%patch00 -p1
Packit 301979
%patch01 -p1
Packit 301979
Packit 301979
# Because this is a poorly-built library
Packit 301979
pushd nss
Packit 301979
Packit 301979
mkdir -p ../build_win32
Packit 301979
cp -R * ../build_win32
Packit 301979
Packit 301979
mkdir -p ../build_win64
Packit 301979
cp -R * ../build_win64
Packit 301979
Packit 301979
%build
Packit 301979
# Building for Win32
Packit 301979
pushd build_win32
Packit 301979
Packit 301979
BUILD_OPT=1
Packit 301979
export BUILD_OPT
Packit 301979
Packit 301979
export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
Packit 301979
export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
Packit 301979
Packit 301979
%{mingw32_env}
Packit 301979
NSPR_INCLUDE_DIR=`%{mingw32_target}-pkg-config --cflags-only-I nspr | sed 's/-I//'`
Packit 301979
NSPR_LIB_DIR=`%{mingw32_target}-pkg-config --libs-only-L nspr | sed 's/-L//'`
Packit 301979
Packit 301979
export NSPR_INCLUDE_DIR
Packit 301979
export NSPR_LIB_DIR
Packit 301979
Packit 301979
(cd coreconf/nsinstall && gcc -o nsinstall nsinstall.c pathsub.c)
Packit 301979
Packit 301979
%{mingw32_make} OS_TARGET=WINNT OS_RELEASE=5.0 XP_WIN=1 \
Packit 301979
	NSINSTALL=$(pwd)/coreconf/nsinstall/nsinstall NS_USE_GCC=1 \
Packit 301979
	NSS_USE_SYSTEM_SQLITE=1 USE_SYSTEM_ZLIB=1 ZLIB_LIBS=%{mingw32_libdir}/libz.dll.a \
Packit 301979
	CC=%{mingw32_cc} RC=%{mingw32_windres} RANLIB=%{mingw32_ranlib}
Packit 301979
Packit 301979
popd
Packit 301979
Packit 301979
# Building for Win64
Packit 301979
pushd build_win64
Packit 301979
Packit 301979
BUILD_OPT=1
Packit 301979
export BUILD_OPT
Packit 301979
Packit 301979
export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
Packit 301979
export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
Packit 301979
Packit 301979
Packit 301979
%{mingw64_env}
Packit 301979
NSPR_INCLUDE_DIR=`%{mingw64_target}-pkg-config --cflags-only-I nspr | sed 's/-I//'`
Packit 301979
NSPR_LIB_DIR=`%{mingw64_target}-pkg-config --libs-only-L nspr | sed 's/-L//'`
Packit 301979
Packit 301979
export NSPR_INCLUDE_DIR
Packit 301979
export NSPR_LIB_DIR
Packit 301979
Packit 301979
(cd coreconf/nsinstall && gcc -o nsinstall nsinstall.c pathsub.c)
Packit 301979
Packit 301979
%{mingw64_make} OS_TARGET=WINNT OS_RELEASE=5.0 XP_WIN=1 \
Packit 301979
	NSINSTALL=$(pwd)/coreconf/nsinstall/nsinstall NS_USE_GCC=1 USE_64=1 \
Packit 301979
	NSS_USE_SYSTEM_SQLITE=1 USE_SYSTEM_ZLIB=1 ZLIB_LIBS=%{mingw64_libdir}/libz.dll.a \
Packit 301979
	CC=%{mingw64_cc} RC=%{mingw64_windres} RANLIB=%{mingw64_ranlib}
Packit 301979
Packit 301979
popd
Packit 301979
Packit 301979
%install
Packit 301979
export PKG_CONFIG_PATH=%{mingw64_libdir}/pkgconfig
Packit 301979
Packit 301979
mkdir -p %{buildroot}%{mingw32_libdir}/pkgconfig
Packit 301979
mkdir -p %{buildroot}%{mingw64_libdir}/pkgconfig
Packit 301979
Packit 301979
# Manually create the .pc file
Packit 301979
cat %{SOURCE1} | sed -e "s,%%libdir%%,%{mingw64_libdir},g" \
Packit 301979
			-e "s,%%prefix%%,%{mingw64_prefix},g" \
Packit 301979
			-e "s,%%exec_prefix%%,%{mingw64_prefix},g" \
Packit 301979
			-e "s,%%includedir%%,%{mingw64_includedir}/nss3,g" \
Packit 301979
			-e "s,%%NSPR_VERSION%%,4\.9\.4,g" \
Packit 301979
			-e "s,%%NSS_VERSION%%,%{version},g" > \
Packit 301979
			%{buildroot}%{mingw64_libdir}/pkgconfig/nss.pc
Packit 301979
cat %{SOURCE1} | sed -e "s,%%libdir%%,%{mingw32_libdir},g" \
Packit 301979
			-e "s,%%prefix%%,%{mingw32_prefix},g" \
Packit 301979
			-e "s,%%exec_prefix%%,%{mingw32_prefix},g" \
Packit 301979
			-e "s,%%includedir%%,%{mingw32_includedir}/nss3,g" \
Packit 301979
			-e "s,%%NSPR_VERSION%%,4\.9\.4,g" \
Packit 301979
			-e "s,%%NSS_VERSION%%,%{version},g" > \
Packit 301979
			%{buildroot}%{mingw32_libdir}/pkgconfig/nss.pc
Packit 301979
Packit 301979
NSS_VMAJOR=`cat nss/lib/nss/nss.h \
Packit 301979
	| grep "#define.*NSS_VMAJOR" \
Packit 301979
	| awk '{print $3}'`
Packit 301979
NSS_VMINOR=`cat nss/lib/nss/nss.h \
Packit 301979
	| grep "#define.*NSS_VMINOR" \
Packit 301979
	| awk '{print $3}'`
Packit 301979
NSS_VPATCH=`cat nss/lib/nss/nss.h \
Packit 301979
	| grep "#define.*NSS_VPATCH" \
Packit 301979
	| awk '{print $3}'`
Packit 301979
Packit 301979
Packit 301979
export NSS_VMAJOR
Packit 301979
export NSS_VMINOR
Packit 301979
export NSS_VPATCH
Packit 301979
Packit 301979
mkdir -p %{buildroot}%{mingw32_bindir}
Packit 301979
mkdir -p %{buildroot}%{mingw64_bindir}
Packit 301979
Packit 301979
cat %{SOURCE2} | sed -e "s,@libdir@,%{mingw64_libdir},g" \
Packit 301979
			-e "s,@prefix@,%{mingw64_prefix},g" \
Packit 301979
			-e "s,@exec_prefix@,%{mingw64_prefix},g" \
Packit 301979
			-e "s,@includedir@,%{mingw64_includedir}/nss3,g" \
Packit 301979
			-e "s,@MOD_MAJOR_VERSION@,$NSS_VMAJOR,g" \
Packit 301979
			-e "s,@MOD_MINOR_VERSION@,$NSS_VMINOR,g" \
Packit 301979
			-e "s,@MOD_PATCH_VERSION@,$NSS_VPATCH,g" \
Packit 301979
			> $RPM_BUILD_ROOT%{mingw64_bindir}/nss-config
Packit 301979
Packit 301979
cat %{SOURCE2} | sed -e "s,@libdir@,%{mingw32_libdir},g" \
Packit 301979
			-e "s,@prefix@,%{mingw32_prefix},g" \
Packit 301979
			-e "s,@exec_prefix@,%{mingw32_prefix},g" \
Packit 301979
			-e "s,@includedir@,%{mingw32_includedir}/nss3,g" \
Packit 301979
			-e "s,@MOD_MAJOR_VERSION@,$NSS_VMAJOR,g" \
Packit 301979
			-e "s,@MOD_MINOR_VERSION@,$NSS_VMINOR,g" \
Packit 301979
			-e "s,@MOD_PATCH_VERSION@,$NSS_VPATCH,g" \
Packit 301979
			> %{buildroot}%{mingw32_bindir}/nss-config
Packit 301979
Packit 301979
chmod 755 %{buildroot}%{mingw64_bindir}/nss-config
Packit 301979
chmod 755 %{buildroot}%{mingw32_bindir}/nss-config
Packit 301979
Packit 301979
# There is no 'make install' target, so we do it all manually
Packit 301979
mkdir -p %{buildroot}%{mingw64_includedir}/nss3
Packit 301979
mkdir -p %{buildroot}%{mingw64_bindir}
Packit 301979
mkdir -p %{buildroot}%{mingw64_libdir}/nss
Packit 301979
Packit 301979
mkdir -p %{buildroot}%{mingw32_includedir}/nss3
Packit 301979
mkdir -p %{buildroot}%{mingw32_bindir}
Packit 301979
mkdir -p %{buildroot}%{mingw32_libdir}/nss
Packit 301979
Packit 301979
for file in softokn nss nssutil \
Packit 301979
		ssl smime nssdbm
Packit 301979
do
Packit 301979
	install -m 755 dist/*x86_64*.OBJ/lib/${file}3.dll %{buildroot}%{mingw64_bindir}/
Packit 301979
	install -m 644 dist/*x86_64*.OBJ/lib/lib${file}3.a %{buildroot}%{mingw64_libdir}/lib${file}3.dll.a
Packit 301979
Packit 301979
	install -m 755 dist/*i686*.OBJ/lib/${file}3.dll %{buildroot}%{mingw32_bindir}
Packit 301979
	install -m 644 dist/*i686*.OBJ/lib/lib${file}3.a %{buildroot}%{mingw32_libdir}/lib${file}3.dll.a
Packit 301979
done
Packit 301979
Packit 301979
install -m 755 dist/*x86_64*.OBJ/lib/nssckbi.dll %{buildroot}%{mingw64_bindir}/
Packit 301979
install -m 755 dist/*x86_64*.OBJ/lib/freebl3.dll %{buildroot}%{mingw64_bindir}/
Packit 301979
Packit 301979
install -m 755 dist/*i686*.OBJ/lib/nssckbi.dll %{buildroot}%{mingw32_bindir}/
Packit 301979
install -m 755 dist/*i686*.OBJ/lib/freebl3.dll %{buildroot}%{mingw32_bindir}/
Packit 301979
Packit 301979
# Install the empty NSS db files
Packit 301979
mkdir -p %{buildroot}%{mingw64_sysconfdir}/pki/nssdb
Packit 301979
mkdir -p %{buildroot}%{mingw32_sysconfdir}/pki/nssdb
Packit 301979
Packit 301979
install -m 644 %{SOURCE3} %{buildroot}%{mingw64_sysconfdir}/pki/nssdb/cert8.db
Packit 301979
install -m 644 %{SOURCE4} %{buildroot}%{mingw64_sysconfdir}/pki/nssdb/key3.db
Packit 301979
install -m 644 %{SOURCE5} %{buildroot}%{mingw64_sysconfdir}/pki/nssdb/secmod.db
Packit 301979
Packit 301979
install -m 644 %{SOURCE3} %{buildroot}%{mingw32_sysconfdir}/pki/nssdb/cert8.db
Packit 301979
install -m 644 %{SOURCE4} %{buildroot}%{mingw32_sysconfdir}/pki/nssdb/key3.db
Packit 301979
install -m 644 %{SOURCE5} %{buildroot}%{mingw32_sysconfdir}/pki/nssdb/secmod.db
Packit 301979
Packit 301979
# And more development files
Packit 301979
for file in libcrmf.a libnssb.a libnssckfw.a
Packit 301979
do
Packit 301979
	install -m 644 dist/*x86_64*.OBJ/lib/${file} %{buildroot}%{mingw64_libdir}
Packit 301979
	install -m 644 dist/*i686*.OBJ/lib/${file} %{buildroot}%{mingw32_libdir}
Packit 301979
done
Packit 301979
Packit 301979
# The executable binaries
Packit 301979
for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap
Packit 301979
do
Packit 301979
	install -m 755 dist/*x86_64*.OBJ/bin/${file}.exe %{buildroot}%{mingw64_bindir}
Packit 301979
	install -m 755 dist/*i686*.OBJ/bin/${file}.exe %{buildroot}%{mingw32_bindir}
Packit 301979
done
Packit 301979
Packit 301979
# And more, unsupported(?), binaries
Packit 301979
for file in atob btoa derdump ocspclnt pp selfserv shlibsign strsclnt symkeyutil \
Packit 301979
 tstclnt vfyserv vfychain
Packit 301979
do
Packit 301979
  install -m 755 dist/*x86_64*.OBJ/bin/${file}.exe %{buildroot}%{mingw64_libdir}/nss
Packit 301979
  install -m 755 dist/*i686*.OBJ/bin/${file}.exe %{buildroot}%{mingw32_libdir}/nss
Packit 301979
done
Packit 301979
Packit 301979
for file in dist/public/nss/*.h
Packit 301979
do
Packit 301979
	install -m 644 ${file} %{buildroot}%{mingw32_includedir}/nss3
Packit 301979
done
Packit 301979
for file in dist/public/nss/*.h
Packit 301979
do
Packit 301979
	install -m 644 ${file} %{buildroot}%{mingw64_includedir}/nss3
Packit 301979
done
Packit 301979
Packit 301979
%files -n mingw32-%{_pkg_name}
Packit 301979
%doc nss/COPYING
Packit 301979
%{mingw32_bindir}/*.dll
Packit 301979
%{mingw32_bindir}/*.exe
Packit 301979
%{mingw32_bindir}/nss-config
Packit 301979
%{mingw32_libdir}/*.a
Packit 301979
%{mingw32_libdir}/pkgconfig/nss.pc
Packit 301979
%{mingw32_libdir}/nss/
Packit 301979
%{mingw32_includedir}/nss3
Packit 301979
%{mingw32_sysconfdir}/pki/nssdb/*.db
Packit 301979
Packit 301979
%files -n mingw64-%{_pkg_name}
Packit 301979
%doc nss/COPYING
Packit 301979
%{mingw64_bindir}/*.dll
Packit 301979
%{mingw64_bindir}/*.exe
Packit 301979
%{mingw64_bindir}/nss-config
Packit 301979
%{mingw64_libdir}/*.a
Packit 301979
%{mingw64_libdir}/pkgconfig/nss.pc
Packit 301979
%{mingw64_libdir}/nss/
Packit 301979
%{mingw64_includedir}/nss3
Packit 301979
%{mingw64_sysconfdir}/pki/nssdb/*.db
Packit 301979
Packit 301979
%changelog
Packit 301979
* Fri Aug 17 2018 Victor Toso <victortoso@redhat.com> - 3.20-2
Packit 301979
- ExclusiveArch: i686, x86_64
Packit 301979
- Related: rhbz#1615874
Packit 301979
Packit 301979
* Wed Oct 07 2015 Fabiano FidĂȘncio <fidencio@redhat.com> - 3.20-1
Packit 301979
- Update to 3.20
Packit 301979
Packit 301979
* Mon Jun 01 2015 Fabiano FidĂȘncio <fidencio@redhat.com> - 3.18.1-1
Packit 301979
- Update to 3.18.1
Packit 301979
Packit 301979
* Tue Dec 11 2012 Greg Hellings <greg.hellings@gmail.com> - 3.14-1
Packit 301979
- Initial build