]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/blob - openssl/openssl.nm
memtest86+: Only build on x86 architectures.
[people/amarx/ipfire-3.x.git] / openssl / openssl.nm
1 ###############################################################################
2 # IPFire.org - An Open Source Firewall Solution #
3 # Copyright (C) - IPFire Development Team <info@ipfire.org> #
4 ###############################################################################
5
6 name = openssl
7 version = 1.0.0f
8 release = 1
9
10 maintainer = Michael Tremer <michael.tremer@ipfire.org>
11 groups = System/Libraries
12 url = http://www.openssl.org/
13 license = OpenSSL
14 summary = A general purpose cryptography library with TLS implementation.
15
16 description
17 The OpenSSL toolkit provides support for secure communications between
18 machines. OpenSSL includes a certificate management tool and shared
19 libraries which provide various cryptographic algorithms and protocols.
20 end
21
22 source_dl = http://openssl.org/source/
23
24 build
25 requires
26 bc
27 gnutls-devel
28 perl
29 util-linux
30 zlib-devel
31 end
32
33 prepare_cmds
34 find crypto/ -name Makefile -exec \
35 sed 's/^ASFLAGS=/&-Wa,--noexecstack /' -i {} \;
36
37 # # Modify the various perl scripts to reference perl in the right location.
38 perl util/perlpath.pl /usr/bin
39
40 # Generate a table with the compile settings for my perusal.
41 touch Makefile
42 make TABLE PERL=/usr/bin/perl
43 end
44
45 if "%{DISTRO_ARCH}" == "i686"
46 # 386 implies no-sse2
47 ssl_arch = linux-elf no-asm 386
48 end
49
50 if "%{DISTRO_ARCH}" == "armv5tel"
51 ssl_arch = linux-generic32
52 end
53
54 build
55 ./Configure \
56 --prefix=/usr \
57 --openssldir=/etc/pki/tls \
58 --enginesdir=/usr/lib/openssl/engines \
59 shared \
60 zlib-dynamic \
61 enable-camellia \
62 enable-md2 \
63 enable-seed \
64 enable-tlsext \
65 enable-rfc3779 \
66 no-idea \
67 no-mdc2 \
68 no-rc5 \
69 no-ec no-ecdh no-ecdsa \
70 -DSSL_FORBID_ENULL \
71 %{ssl_arch}
72
73 # Build.
74 make depend all build-shared RPM_OPT_FLAGS="%{CFLAGS}" #%{PARALLELISMFLAGS}
75
76 # Generate hashes for the included certs.
77 make rehash build-shared
78 end
79
80 test
81 make test
82 end
83
84 install
85 make install build-shared INSTALL_PREFIX=%{BUILDROOT}
86
87 mkdir -pv %{BUILDROOT}/lib
88 mv -vf %{BUILDROOT}/usr/lib/lib{crypto,ssl}.so.* %{BUILDROOT}/lib
89 ln -svf ../../lib/libcrypto.so.10 %{BUILDROOT}/usr/lib/libcrypto.so
90 ln -svf ../../lib/libssl.so.10 %{BUILDROOT}/usr/lib/libssl.so
91
92 # Install manpages do right place
93 mkdir -pv %{BUILDROOT}/usr/share
94 mv -v %{BUILDROOT}/etc/pki/tls/man %{BUILDROOT}/usr/share/
95
96 mkdir -pv %{BUILDROOT}/usr/lib/openssl
97 mv -v %{BUILDROOT}/usr/lib/engines %{BUILDROOT}/usr/lib/openssl
98
99 mkdir -pv %{BUILDROOT}/etc/pki/CA/private
100 chmod -v 700 -R %{BUILDROOT}/etc/pki/CA
101
102 mkdir -pv %{BUILDROOT}/etc/pki/tls
103 install -m 0644 %{DIR_SOURCE}/openssl.cnf %{BUILDROOT}/etc/pki/tls
104 cp -v -r certs %{BUILDROOT}/etc/pki/tls
105
106 # Rename man pages so that they don't conflict with other system man pages.
107 pushd ${BUILDROOT}/usr/share/man
108 for manpage in man*/*; do
109 if [ -L ${manpage} ]; then
110 TARGET=`ls -l ${manpage} | awk '{ print $NF }'`
111 ln -snf ${TARGET}ssl ${manpage}ssl
112 rm -f ${manpage}
113 else
114 mv ${manpage} ${manpage}ssl
115 fi
116 done
117
118 mv -v %{BUILDROOT}/usr/share/man/man1/{,ssl}passwd.1
119 mv -v %{BUILDROOT}/usr/share/man/man1/{,ssl}rand.1
120 popd
121 end
122 end
123
124 packages
125 package %{name}
126
127 package %{name}-devel
128 template DEVEL
129 end
130
131 package %{name}-debuginfo
132 template DEBUGINFO
133 end
134 end