From 85fff8caa104bb32c8173d161ac0ba4b80da43b5 Mon Sep 17 00:00:00 2001 From: Jonathan Schleifer Date: Apr 02 2024 13:35:35 +0000 Subject: Build UCRT64 package --- diff --git a/mingw-openssl.spec b/mingw-openssl.spec index 38c70ef..a718e6a 100644 --- a/mingw-openssl.spec +++ b/mingw-openssl.spec @@ -1,3 +1,4 @@ +%global mingw_build_ucrt64 1 %{?mingw_package_header} # For the curious: @@ -15,7 +16,7 @@ Name: mingw-openssl Version: 3.1.4 -Release: 4%{?dist} +Release: 5%{?dist} Summary: MinGW port of the OpenSSL toolkit License: OpenSSL @@ -178,6 +179,12 @@ BuildRequires: mingw64-binutils BuildRequires: mingw64-gcc BuildRequires: mingw64-zlib +BuildRequires: ucrt64-filesystem >= 95 +BuildRequires: ucrt64-dlfcn +BuildRequires: ucrt64-binutils +BuildRequires: ucrt64-gcc +BuildRequires: ucrt64-zlib + %if %{run_tests} # Required both to build, and to run the tests. @@ -241,6 +248,27 @@ Requires: mingw64-openssl = %{version}-%{release} %description -n mingw64-openssl-static Static version of the MinGW port of the OpenSSL toolkit. +# UCRT64 +%package -n ucrt64-openssl +Summary: MinGW port of the OpenSSL toolkit +#Requires: ca-certificates >= 2008-5 +Requires: pkgconfig + +%description -n ucrt64-openssl +The OpenSSL toolkit provides support for secure communications between +machines. OpenSSL includes a certificate management tool and shared +libraries which provide various cryptographic algorithms and +protocols. + +This package contains Windows (MinGW) libraries and development tools. + +%package -n ucrt64-openssl-static +Summary: Static version of the MinGW port of the OpenSSL toolkit +Requires: ucrt64-openssl = %{version}-%{release} + +%description -n ucrt64-openssl-static +Static version of the MinGW port of the OpenSSL toolkit. + %{?mingw_debug_package} @@ -258,6 +286,8 @@ mv * ../build_win32 mv ../build_win32 . mkdir build_win64 cp -Rp build_win32/* build_win64 +mkdir build_ucrt64 +cp -Rp build_win32/* build_ucrt64 %build @@ -320,6 +350,37 @@ done popd +############################################################################### +# UCRT64 +############################################################################### +pushd build_ucrt64 + +PERL=%{__perl} \ +CFLAGS="%{ucrt64_cflags}" \ +LDFLAGS="%{ucrt64_ldflags}" \ +./Configure \ + --prefix=%{ucrt64_prefix} \ + --libdir=%{ucrt64_libdir} \ + --openssldir=%{ucrt64_sysconfdir}/pki/tls \ + zlib enable-camellia enable-seed enable-rfc3779 \ + enable-cms enable-md2 enable-rc5 enable-ktls enable-fips \ + no-mdc2 no-ec2m no-sm2 no-sm4 \ + --cross-compile-prefix=%{ucrt64_target}- \ + shared mingw64 \ + -Dsecure_getenv=getenv + +# Do not run this in a production package the FIPS symbols must be patched-in +#util/mkdef.pl crypto update + +make -s %{?_smp_mflags} all + +# Clean up the .pc files +for i in libcrypto.pc libssl.pc openssl.pc ; do + sed -i '/^Libs.private:/{s/-L[^ ]* //;s/-Wl[^ ]* //}' $i +done + +popd + %if %{run_tests} %check @@ -382,15 +443,22 @@ mkdir -p %{buildroot}%{mingw64_bindir} mkdir -p %{buildroot}%{mingw64_includedir} mkdir -p %{buildroot}%{mingw64_mandir} +mkdir -p %{buildroot}%{ucrt64_libdir}/openssl +mkdir -p %{buildroot}%{ucrt64_bindir} +mkdir -p %{buildroot}%{ucrt64_includedir} +mkdir -p %{buildroot}%{ucrt64_mandir} + %mingw_make_install DESTDIR=%{buildroot} install # Install the file applink.c (#499934) install -m644 build_win32/ms/applink.c %{buildroot}%{mingw32_includedir}/openssl/applink.c install -m644 build_win64/ms/applink.c %{buildroot}%{mingw64_includedir}/openssl/applink.c +install -m644 build_ucrt64/ms/applink.c %{buildroot}%{ucrt64_includedir}/openssl/applink.c # Remove the man pages rm -rf %{buildroot}%{mingw32_mandir} rm -rf %{buildroot}%{mingw64_mandir} +rm -rf %{buildroot}%{ucrt64_mandir} # Install a makefile for generating keys and self-signed certs, and a script # for generating them on the fly. @@ -404,12 +472,20 @@ install -m644 %{SOURCE2} %{buildroot}%{mingw64_sysconfdir}/pki/tls/certs/Makefil install -m755 %{SOURCE6} %{buildroot}%{mingw64_bindir}/make-dummy-cert install -m755 %{SOURCE7} %{buildroot}%{mingw64_bindir}/renew-dummy-cert +mkdir -p %{buildroot}%{ucrt64_sysconfdir}/pki/tls/certs +install -m644 %{SOURCE2} %{buildroot}%{ucrt64_sysconfdir}/pki/tls/certs/Makefile +install -m755 %{SOURCE6} %{buildroot}%{ucrt64_bindir}/make-dummy-cert +install -m755 %{SOURCE7} %{buildroot}%{ucrt64_bindir}/renew-dummy-cert + mkdir -m700 %{buildroot}%{mingw32_sysconfdir}/pki/CA mkdir -m700 %{buildroot}%{mingw32_sysconfdir}/pki/CA/private mkdir -m700 %{buildroot}%{mingw64_sysconfdir}/pki/CA mkdir -m700 %{buildroot}%{mingw64_sysconfdir}/pki/CA/private +mkdir -m700 %{buildroot}%{ucrt64_sysconfdir}/pki/CA +mkdir -m700 %{buildroot}%{ucrt64_sysconfdir}/pki/CA/private + # Win32 %files -n mingw32-openssl @@ -453,8 +529,32 @@ mkdir -m700 %{buildroot}%{mingw64_sysconfdir}/pki/CA/private %{mingw64_libdir}/libcrypto.a %{mingw64_libdir}/libssl.a +# UCRT64 +%files -n ucrt64-openssl +%doc build_win64/LICENSE.txt +%{ucrt64_bindir}/c_rehash +%{ucrt64_bindir}/libcrypto-%{soversion}-x64.dll +%{ucrt64_bindir}/libssl-%{soversion}-x64.dll +%{ucrt64_bindir}/make-dummy-cert +%{ucrt64_bindir}/openssl.exe +%{ucrt64_bindir}/renew-dummy-cert +%{ucrt64_libdir}/engines-%{soversion} +%{ucrt64_libdir}/ossl-modules/ +%{ucrt64_libdir}/pkgconfig/*.pc +%{ucrt64_libdir}/libcrypto.dll.a +%{ucrt64_libdir}/libssl.dll.a +%{ucrt64_includedir}/openssl/ +%config(noreplace) %{ucrt64_sysconfdir}/pki + +%files -n ucrt64-openssl-static +%{ucrt64_libdir}/libcrypto.a +%{ucrt64_libdir}/libssl.a + %changelog +* Tue Apr 02 2024 Jonathan Schleifer - 3.1.4-4 +- Build UCRT64 package + * Thu Jan 25 2024 Fedora Release Engineering - 3.1.4-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild