Package mingw32-openssl: Specfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 | # For the curious: # 0.9.5a soversion = 0 # 0.9.6 soversion = 1 # 0.9.6a soversion = 2 # 0.9.6c soversion = 3 # 0.9.7a soversion = 4 # 0.9.7ef soversion = 5 # 0.9.8ab soversion = 6 # 0.9.8g soversion = 7 # 0.9.8jk + EAP-FAST soversion = 8 # 1.0.0 soversion = 10 %global soversion 10 %global beta beta3 # Enable the tests. # These only work some of the time, but fail randomly at other times # (although I have had them complete a few times, so I don't think # there is any actual problem with the binaries). %global run_tests 0 # Number of threads to spawn when testing some threading fixes. %global thread_test_threads %{?threads:%threads}%{!?threads:1} Name: mingw32-openssl Version: 1.0.0 Release: alt0.3 Summary: MinGW port of the OpenSSL toolkit License: OpenSSL Group: System/Libraries Url: http://www.openssl.org/ # Use the hobble-openssl script to create the source file. Packager: Boris Savelev <boris@altlinux.org> Source: openssl-%version-%beta-usa.tar.bz2 Source1: hobble-openssl Source2: Makefile.certificate Source6: make-dummy-cert Source8: openssl-thread-test.c Source9: opensslconf-new.h Source10: opensslconf-new-warning.h # Patches from Fedora native package. # Build changes Patch: openssl-1.0.0-beta3-redhat.patch Patch1: openssl-1.0.0-beta3-defaults.patch Patch2: openssl-1.0.0-beta3-krb5.patch Patch3: openssl-1.0.0-beta3-soversion.patch Patch4: openssl-1.0.0-beta3-enginesdir.patch Patch5: openssl-0.9.8a-no-rpath.patch Patch6: openssl-0.9.8b-test-use-localhost.patch # Bug fixes Patch21: openssl-0.9.8b-aliasing-bug.patch Patch23: openssl-1.0.0-beta3-default-paths.patch # Functionality changes Patch32: openssl-0.9.8g-ia64.patch Patch33: openssl-0.9.8j-ca-dir.patch Patch34: openssl-0.9.6-x509.patch Patch35: openssl-0.9.8j-version-add-engines.patch Patch38: openssl-1.0.0-beta3-cipher-change.patch # Disabled this because it uses getaddrinfo which is lacking on Windows. #Patch39: openssl-1.0.0-beta3-ipv6-apps.patch Patch40: openssl-1.0.0-beta3-fips.patch Patch41: openssl-1.0.0-beta3-fipscheck.patch Patch43: openssl-1.0.0-beta3-fipsmode.patch Patch44: openssl-1.0.0-beta3-fipsrng.patch Patch45: openssl-0.9.8j-env-nozlib.patch Patch47: openssl-0.9.8j-readme-warning.patch Patch48: openssl-0.9.8j-bad-mime.patch Patch49: openssl-0.9.8k-algo-doc.patch Patch50: openssl-1.0.0-beta3-curl.patch Patch51: openssl-1.0.0-beta3-const.patch # Backported fixes including security fixes Patch60: openssl-1.0.0-beta3-namingstr.patch Patch61: openssl-1.0.0-beta3-namingblk.patch # MinGW-specific patches. # Use MINGW32_CFLAGS (set below) in Configure script Patch100: mingw32-openssl-1.0.0-beta3-configure.patch # Rename *eay32.dll to lib*.dll Patch101: mingw32-openssl-1.0.0-beta3-libversion.patch # Fix engines/ install target after lib rename Patch102: mingw32-openssl-1.0.0-beta3-sfx.patch # Ugly patch to fix a compilation error (the linker can't find # some symbols mentioned in an autogenerated .def file) Patch105: mingw32-openssl-1.0.0-beta3-linker-fix.patch BuildArch: noarch BuildRequires: rpm-build-mingw32 BuildRequires: mingw32-gcc BuildRequires: mingw32-binutils BuildRequires: mingw32-zlib BuildRequires: mingw32-pthreads BuildRequires: mingw32-dlfcn BuildRequires: mktemp #BuildRequires: krb5-devel BuildRequires: perl-devel perl-WWW-Curl BuildRequires: sed BuildRequires: %_bindir/cmp BuildRequires: %_bindir/rename # XXX Not really sure about this one. The build script uses # %_bindir/makedepend which comes from imake. BuildRequires: imake %if %run_tests # Required both to build, and to run the tests. # XXX This needs to be fixed - cross-compilation should not # require running executables. BuildRequires: wine # Required to run the tests. BuildRequires: xorg-x11-server-Xvfb %endif #Requires: ca-certificates >= 2008-5 Requires: pkgconfig %description 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 static Summary: Static version of the MinGW port of the OpenSSL toolkit Group: System/Libraries Requires: %name = %version-%release %description static Static version of the MinGW port of the OpenSSL toolkit. %prep %setup -q -n openssl-%version-%beta %SOURCE1 > /dev/null %patch0 -p1 -b .redhat %patch1 -p1 -b .defaults # Fix link line for libssl (bug #111154). %patch2 -p1 -b .krb5 %patch3 -p1 -b .soversion %patch4 -p1 -b .enginesdir %patch5 -p1 -b .no-rpath %patch6 -p1 -b .use-localhost %patch21 -p1 -b .aliasing-bug %patch23 -p1 -b .default-paths %patch32 -p1 -b .ia64 #patch33 is applied after make test %patch34 -p1 -b .x509 %patch35 -p1 -b .version-add-engines %patch38 -p1 -b .cipher-change #%patch39 -p1 -b .ipv6-apps %patch40 -p1 -b .fips %patch41 -p1 -b .fipscheck %patch43 -p1 -b .fipsmode %patch44 -p1 -b .fipsrng %patch45 -p1 -b .env-nozlib %patch47 -p1 -b .warning %patch48 -p1 -b .bad-mime %patch49 -p1 -b .algo-doc %patch50 -p1 -b .curl %patch51 -p1 -b .const %patch60 -p1 -b .namingstr %patch61 -p1 -b .namingblk %patch100 -p1 -b .mingw-configure %patch101 -p1 -b .mingw-libversion %patch102 -p1 -b .mingw-sfx %patch105 -p0 -b .mingw-linker-fix # Modify the various perl scripts to reference perl in the right location. perl util/perlpath.pl `dirname %__perl` # Generate a table with the compile settings for my perusal. touch Makefile make TABLE PERL=%__perl %build # NB: 'no-hw' is vital. MinGW cannot build the hardware drivers # and if you don't have this you'll get an obscure link error. export MINGW32_CFLAGS="%_mingw32_cflags"; \ ./Configure \ --prefix=%_mingw32_prefix \ --openssldir=%_mingw32_sysconfdir/pki/tls \ zlib enable-camellia enable-seed enable-tlsext enable-rfc3779 \ enable-cms enable-md2 no-idea no-mdc2 no-rc5 no-ec no-ecdh no-ecdsa \ no-hw shared --cross-compile-prefix=%_mingw32_target- \ --enginesdir=%_mingw32_libdir/openssl/engines \ mingw # --with-krb5-flavor=MIT # -I%_mingw32_prefix/kerberos/include -L%_mingw32_prefix/kerberos/%_lib make depend make all build-shared # Generate hashes for the included certs. make rehash build-shared %if %run_tests #---------------------------------------------------------------------- # Run some tests. I don't know why this isn't in a %-check section # but this is how it is in the native RPM. # This is a bit of a hack, but the test scripts look for 'openssl' # by name. pushd apps ln -s openssl.exe openssl popd # This is useful for diagnosing Wine problems. WINEDEBUG=+loaddll export WINEDEBUG # Make sure we can find the installed DLLs. WINEDLLPATH=%_mingw32_bindir export WINEDLLPATH # The tests run Wine and require an X server (but don't really use # it). Therefore we create a virtual framebuffer for the duration of # the tests. # XXX There is no good way to choose a random, unused display. # XXX Setting depth to 24 bits avoids bug 458219. unset DISPLAY display=:21 Xvfb $display -screen 0 1024x768x24 -ac -noreset & xpid=$! trap "kill -TERM $xpid ||:" EXIT sleep 3 DISPLAY=$display export DISPLAY make LDCMD=%_mingw32_cc -C test apps tests # Disable this thread test, because we don't have pthread on Windows. %_mingw32_cc -o openssl-thread-test \ -I./include \ %-{_mingw32_cflags} \ %-{SOURCE8} \ -L. \ -lssl -lcrypto \ -lpthread -lz -ldl ## `krb5-config --cflags` ## `krb5-config --libs` # ./openssl-thread-test --threads %thread_test_threads #---------------------------------------------------------------------- %endif # Patch33 must be patched after tests otherwise they will fail patch -p1 -b -z .ca-dir < %PATCH33 # Add generation of HMAC checksum of the final stripped library #%define __spec_install_post \ # %{?__debug_package:%__debug_install_post} \ # arch_install_post \ # %__os_install_post \ # fips/fips_standalone_sha1 %buildroot%_lib/libcrypto.so.%version >%buildroot%_lib/.libcrypto.so.%version.hmac \ # ln -sf .libcrypto.so.%version.hmac %buildroot%_lib/.libcrypto.so.%soversion.hmac \ #%nil if ! iconv -f UTF-8 -t ASCII//TRANSLIT CHANGES >/dev/null 2>&1 ; then iconv -f ISO-8859-1 -t UTF-8 -o CHANGES.utf8 CHANGES && \ mv -f CHANGES.utf8 CHANGES fi %install mkdir -p %buildroot%_mingw32_libdir mkdir -p %buildroot%_mingw32_libdir/openssl mkdir -p %buildroot%_mingw32_bindir mkdir -p %buildroot%_mingw32_includedir mkdir -p %buildroot%_mingw32_mandir make INSTALL_PREFIX=%buildroot install build-shared # Install the file applink.c (#499934) install -m644 ms/applink.c %buildroot%_mingw32_includedir/openssl/applink.c # I have no idea why it installs the manpages in /etc, but # we remove them anyway. rm -r %buildroot%_mingw32_sysconfdir/pki/tls/man # Set permissions on lib*.dll.a so that strip works. chmod 0755 %buildroot%_mingw32_libdir/libcrypto.dll.a chmod 0755 %buildroot%_mingw32_libdir/libssl.dll.a # Install a makefile for generating keys and self-signed certs, and a script # for generating them on the fly. mkdir -p %buildroot%_mingw32_sysconfdir/pki/tls/certs install -m644 %SOURCE2 %buildroot%_mingw32_sysconfdir/pki/tls/certs/Makefile install -m755 %SOURCE6 %buildroot%_mingw32_sysconfdir/pki/tls/certs/make-dummy-cert # Pick a CA script. pushd %buildroot%_mingw32_sysconfdir/pki/tls/misc mv CA.sh CA popd mkdir -m700 %buildroot%_mingw32_sysconfdir/pki/CA mkdir -m700 %buildroot%_mingw32_sysconfdir/pki/CA/private subst "s|/usr/local/bin/perl|%_bindir/perl|g" \ %buildroot%_mingw32_sysconfdir/pki/tls/misc/CA.pl \ %buildroot%_mingw32_bindir/c_rehash %files %doc LICENSE %_mingw32_bindir/openssl.exe %_mingw32_bindir/c_rehash %_mingw32_bindir/libcrypto-%soversion.dll %_mingw32_bindir/libssl-%soversion.dll #{_mingw32_bindir}/.libcrypto*.hmac %_mingw32_libdir/libcrypto.dll.a %_mingw32_libdir/libssl.dll.a %_mingw32_libdir/engines %_mingw32_libdir/pkgconfig/*.pc %_mingw32_includedir/openssl %config(noreplace) %_mingw32_sysconfdir/pki %files static %_mingw32_libdir/libcrypto.a %_mingw32_libdir/libssl.a %changelog * Sun Sep 20 2009 Boris Savelev <boris@altlinux.org> 1.0.0-alt0.3 - initial build for Sisyphus * Sun Aug 30 2009 Kalev Lember <kalev@smartlink.ee> - 1.0.0-0.3.beta3 - Simplified the lib renaming patch * Sun Aug 30 2009 Erik van Pienbroek <epienbro@fedoraproject.org> - 1.0.0-0.2.beta3 - Fixed invalid RPM Provides * Fri Aug 28 2009 Erik van Pienbroek <epienbro@fedoraproject.org> - 1.0.0-0.1.beta3 - Update to version 1.0.0 beta 3 - Use %%global instead of %%define - Automatically generate debuginfo subpackage - Merged various changes from the native Fedora package (up to 1.0.0-0.5.beta3) - Don't use the %%{_mingw32_make} macro anymore as it's ugly and causes side-effects - Added missing BuildRequires mingw32-dlfcn (Kalev Lember) - Reworked patches to rename *eay32.dll to lib*.dll (Kalev Lember) - Patch Configure script to use %%{_mingw32_cflags} (Kalev Lember) * Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.8j-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Sat May 9 2009 Erik van Pienbroek <epienbro@fedoraproject.org> - 0.9.8j-6 - Add the file include/openssl/applink.c to the package (BZ #499934) * Tue Apr 14 2009 Erik van Pienbroek <epienbro@fedoraproject.org> - 0.9.8j-5 - Fixed %%defattr line - Added -static subpackage * Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.8j-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Fri Feb 20 2009 Richard W.M. Jones <rjones@redhat.com> - 0.9.8j-3 - Rebuild for mingw32-gcc 4.4 * Mon Feb 2 2009 Levente Farkas <lfarkas@lfarkas.org> - 0.9.8j-2 - Various build fixes. * Wed Jan 28 2009 Levente Farkas <lfarkas@lfarkas.org> - 0.9.8j-1 - update to new upstream version. * Mon Dec 29 2008 Levente Farkas <lfarkas@lfarkas.org> - 0.9.8g-2 - minor cleanup. * Tue Sep 30 2008 Richard W.M. Jones <rjones@redhat.com> - 0.9.8g-1 - Initial RPM release. |