## ## openssl-threads.spec -- OpenPKG RPM Package Specification ## Copyright (c) 2000-2022 OpenPKG Project ## ## Permission to use, copy, modify, and distribute this software for ## any purpose with or without fee is hereby granted, provided that ## the above copyright notice and this permission notice appear in all ## copies. ## ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ## SUCH DAMAGE. ## # package version %define V_opkg 1.1.1m %define V_openssl 1.1.1m %define V_zlib 1.2.11 # package information Name: openssl-threads Summary: Cryptography and SSL/TLS Toolkit (V1.1, Threads Variant) URL: http://www.openssl.org/ Vendor: The OpenSSL Project Packager: OpenPKG Project Distribution: OpenPKG Community Class: CORE Group: SSL License: BSD-style Version: %{V_opkg} Release: 20211215 # package options %option with_zlib no %option with_idea no %option with_pic no %option with_ssl3 no # list of sources Source0: https://www.openssl.org/source/openssl-%{V_openssl}.tar.gz Source1: http://www.zlib.net/zlib-%{V_zlib}.tar.gz Patch0: openssl-threads.patch # build information BuildPreReq: OpenPKG, openpkg >= 20160101, perl, make, gcc PreReq: OpenPKG, openpkg >= 20160101, perl %if "%{with_zlib}" == "yes" BuildPreReq: zlib PreReq: zlib %endif %description The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols with full-strength cryptography world-wide. The project is managed by a worldwide community of volunteers that use the Internet to communicate, plan, and develop the OpenSSL tookit and its related documentation. %track prog openssl-threads:openssl = { version = %{V_openssl} url = https://www.openssl.org/source/ regex = openssl-(1\.1\.\d+[a-z]?)\.tar\.gz } prog openssl-threads:zlib = { version = %{V_zlib} url = http://www.zlib.net/ regex = zlib-(__VER__)\.tar\.gz } %prep %setup -q -n openssl-%{version} %if "%{with_zlib}" == "yes" %setup -q -n openssl-%{version} -D -T -a 1 %endif %patch -p0 %build %{l_shtool} subst \ -e 's;BN_LLONG *;;' \ Configure %{l_shtool} subst \ -e 's;^\(# *define *DEVRANDOM_EGD\);\1 "%{l_prefix}/var/prngd/prngd.socket",;' \ e_os.h %{l_shtool} subst \ -e 's;"openssl";"%{l_prefix}/bin/openssl";' \ tools/c_rehash.in %if "%{with_zlib}" == "yes" %{l_shtool} subst \ -e "s;\\(-DZLIB_SHARED\\);-I`pwd`/zlib-%{V_zlib} \\1;" \ Configure %{l_shtool} subst \ -e 's;, "z",;, "%{l_prefix}/lib/openssl-threads/zlib.so",;' \ crypto/comp/c_zlib.c %endif %if "%{with_zlib}" == "yes" ( cd zlib-%{V_zlib} CC="%{l_cc}" \ CFLAGS="%{l_cflags -O}" \ ./configure \ --prefix=%{l_prefix} \ --shared %{l_make} %{l_mflags -O} ) || exit $? %endif options="no-shared no-dso no-unit-test" %if "%{with_pic}" == "yes" options="$options -fPIC" case "%{l_platform -t}" in amd64-* ) options="$options no-asm" ;; sparc64-freebsd* ) options="$options no-asm" ;; esac %else case "%{l_platform -t}" in amd64-* ) options="$options -fPIC no-asm" ;; ia64-* ) options="$options -fPIC" ;; sparc64-freebsd* ) options="$options -fPIC no-asm" ;; esac %endif options="$options no-weak-ssl-ciphers" %if "%{with_zlib}" == "yes" options="$options zlib-dynamic" %else options="$options no-zlib" %endif %if "%{with_idea}" != "yes" options="$options no-idea" %endif %if "%{with_ssl3}" != "yes" options="$options no-ssl3" %endif options="$options threads" case "%{l_platform -t}" in amd64-* ) options="$options enable-ec_nistp_64_gcc_128" ;; esac PERL=%{l_prefix}/bin/perl \ ./config \ --prefix=%{l_prefix} \ --openssldir=%{l_prefix}/etc/openssl \ --libdir=lib \ $options %{l_make} %{l_mflags -O} %install %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT strip $RPM_BUILD_ROOT%{l_prefix}/bin/openssl >/dev/null 2>&1 || true ( cd $RPM_BUILD_ROOT%{l_prefix} rm -rf lib/openssl rm -rf etc/openssl rm -f bin/c_rehash rm -f bin/openssl mkdir include/openssl-threads mv include/openssl include/openssl-threads/ mkdir lib/openssl-threads mv lib/libcrypto.a lib/openssl-threads/ mv lib/libssl.a lib/openssl-threads/ rm -rf lib/pkgconfig rm -rf man ) || exit $? %if "%{with_zlib}" == "yes" %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/libexec/openssl-threads %{l_shtool} install -c -m 644 \ zlib-%{V_zlib}/libz.so \ $RPM_BUILD_ROOT%{l_prefix}/libexec/openssl-threads/zlib.so %endif %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %files -f files %clean