summaryrefslogtreecommitdiff
path: root/openssl/openssl.spec
blob: 59334c925178bbd6bcbd922e6787cbd4082f5877 (plain)
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
##
##  openssl.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2010 OpenPKG Foundation e.V. <http://openpkg.net/>
##
##  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_openssl 1.0.0a
%define       V_zlib    1.2.5

#   package information
Name:         openssl
Summary:      Cryptography and SSL/TLS Toolkit
URL:          http://www.openssl.org/
Vendor:       The OpenSSL Project
Packager:     OpenPKG Foundation e.V.
Distribution: OpenPKG Community
Class:        CORE
Group:        SSL
License:      BSD-style
Version:      %{V_openssl}
Release:      20100624

#   package options
%option       with_zlib     no
%option       with_idea     no
%option       with_threads  no
%option       with_pic      no

#   list of sources
Source0:      ftp://ftp.openssl.org/source/openssl-%{V_openssl}.tar.gz
Source1:      http://www.zlib.net/zlib-%{V_zlib}.tar.gz
Patch0:       openssl.patch

#   build information
Prefix:       %{l_prefix}
BuildRoot:    %{l_buildroot}
BuildPreReq:  OpenPKG, openpkg >= 20060823, perl, make, gcc
PreReq:       OpenPKG, openpkg >= 20060823, perl
%if "%{with_zlib}" == "yes"
BuildPreReq:  zlib
PreReq:       zlib
%endif
AutoReq:      no
AutoReqProv:  no

%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.

%prep
    %setup -q
%if "%{with_zlib}" == "yes"
    %setup -q -D -T -a 1
%endif
    %patch -p0
    %{l_shtool} subst \
        -e 's;-march=pentium;;g' \
        -e 's;-m486;-march=i486;g' \
        Configure
    %{l_shtool} subst \
        -e 's;BN_LLONG *;;' \
        Configure
    %{l_shtool} subst \
        -e 's;test "$OSTYPE" = msdosdjgpp;true;' \
        util/point.sh
    %{l_shtool} subst \
        -e 's;^\(#define DEVRANDOM_EGD\);\1 "%{l_prefix}/var/prngd/prngd.socket",;' \
        e_os.h
    %{l_shtool} subst \
        -e 's;^\(my $openssl\)\;;\1 = "%{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/zlib.so",;' \
        crypto/comp/c_zlib.c
%endif

%build
%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
    %{l_prefix}/bin/perl util/perlpath.pl %{l_prefix}/bin/perl
    options="no-shared no-dso"
%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
%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_threads}" == "yes"
    options="$options threads"
%else
    options="$options no-threads"
%endif
    PERL=%{l_prefix}/bin/perl \
    ./config \
        --prefix=%{l_prefix} \
        --openssldir=%{l_prefix}/etc/openssl \
        --libdir=lib \
        $options
    %{l_make} %{l_mflags}

%install
    rm -rf $RPM_BUILD_ROOT
    %{l_make} %{l_mflags} install INSTALL_PREFIX=$RPM_BUILD_ROOT
    strip $RPM_BUILD_ROOT%{l_prefix}/bin/openssl >/dev/null 2>&1 || true
    ( cd $RPM_BUILD_ROOT%{l_prefix}
      rmdir lib/engines
      rm -rf etc/openssl/private
      rm -rf etc/openssl/certs
      rm -rf etc/openssl/misc
      rm -rf etc/openssl/lib
      mv etc/openssl/man man
      mv bin/c_rehash bin/openssl-crehash
      cd man
      for dir in man[1-9]; do
          for file in `cd $dir; echo *`; do
              mv $dir/$file $dir/openssl_$file
          done
      done
    ) || exit $?
%if "%{with_zlib}" == "yes"
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/libexec/openssl
    %{l_shtool} install -c -m 644 \
        zlib-%{V_zlib}/libz.so \
        $RPM_BUILD_ROOT%{l_prefix}/libexec/openssl/zlib.so
%endif
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
        %{l_files_std} \
        '%config %{l_prefix}/etc/openssl/openssl.cnf'

%files -f files

%clean
    rm -rf $RPM_BUILD_ROOT