Wed, 21 Sep 2011 13:51:49 +0200
Update version and integrate setuid logic from upstream package vendor.
1 ##
2 ## gnupg.spec -- OpenPKG RPM Package Specification
3 ## Copyright (c) 2000-2010 OpenPKG Foundation e.V. <http://openpkg.net/>
4 ##
5 ## Permission to use, copy, modify, and distribute this software for
6 ## any purpose with or without fee is hereby granted, provided that
7 ## the above copyright notice and this permission notice appear in all
8 ## copies.
9 ##
10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
21 ## SUCH DAMAGE.
22 ##
24 # package information
25 Name: gnupg
26 Summary: GNU Privacy Guard
27 URL: http://www.gnupg.org/
28 Vendor: Werner Koch
29 Packager: OpenPKG Foundation e.V.
30 Distribution: OpenPKG Community
31 Class: PLUS
32 Group: PGP
33 License: GPL
34 Version: 2.0.17
35 Release: 20110914
37 # package options
38 %option with_curl yes
39 %option with_ldap no
40 %option with_idea no
41 %option with_setuid no
43 # list of sources
44 Source0: ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-%{version}.tar.bz2
45 Patch0: gnupg.patch
47 # build information
48 Prefix: %{l_prefix}
49 BuildRoot: %{l_buildroot}
50 BuildPreReq: OpenPKG, openpkg >= 20060823, make
51 PreReq: OpenPKG, openpkg >= 20060823, pinentry
52 BuildPreReq: gcrypt >= 1.2.3, libksba >= 1.0.2, libassuan >= 2.0.0, gpg-error >= 1.4
53 PreReq: gcrypt >= 1.2.3, libksba >= 1.0.2, libassuan >= 2.0.0, gpg-error >= 1.4
54 BuildPreReq: zlib, bzip2, readline, pth, libiconv
55 PreReq: zlib, bzip2, readline, pth, libiconv
56 %if "%{with_curl}" == "yes"
57 BuildPreReq: curl, openssl
58 PreReq: curl, openssl
59 %endif
60 %if "%{with_ldap}" == "yes"
61 BuildPreReq: openldap, openssl
62 PreReq: openldap, openssl
63 %endif
64 %if "%{with_idea}" == "yes"
65 BuildPreReq: gcrypt::with_idea
66 PreReq: gcrypt::with_idea
67 %endif
68 AutoReq: no
69 AutoReqProv: no
71 %description
72 GnuPG (GNU Privacy Guard) is a GNU utility for encrypting data and
73 creating digital signatures. GnuPG has advanced key management
74 capabilities and is compliant with the proposed OpenPGP Internet
75 standard described in RFC2440. Since GnuPG doesn't use any patented
76 algorithm, it is not compatible with any version of PGP2 (PGP2.x
77 uses only IDEA, patented worldwide).
79 %track
80 prog gnupg = {
81 version = %{version}
82 url = ftp://ftp.gnupg.org/gcrypt/gnupg/
83 regex = gnupg-(2\.__VER__)\.tar\.(gz|bz2)
84 }
86 %prep
87 %setup -q -n gnupg-%{version}
88 %patch -p0
89 chmod a+rx scripts/install-sh
90 %{l_shtool} subst \
91 -e 's;PRINTABLE_OS_NAME;"%{l_openpkg_release}";g' \
92 g10/armor.c
94 %build
95 # configure program
96 export LIBS=""
97 case "%{l_platform -t}" in
98 *-sunos* ) LIBS="$LIBS -lsocket -lnsl" ;;
99 esac
100 echo "int main(int argc, char *argv[]) { return 0; }" >dummy.c
101 for lib in termcap termlib curses ncurses; do
102 rc=0; %{l_cc} -o dummy dummy.c -l$lib >/dev/null 2>&1 || rc=1
103 if [ $rc -eq 0 ]; then LIBS="$LIBS -l$lib"; break; fi
104 done
105 %if "%{with_curl}" == "yes" || "%{with_ldap}" == "yes"
106 LIBS="$LIBS -lssl -lcrypto"
107 %endif
108 %if "%{with_curl}" == "yes"
109 LIBS="$LIBS -lz"
110 %endif
111 LIBS="$LIBS -liconv"
112 export CC="%{l_cc}"
113 export CFLAGS="%{l_cflags -O}"
114 export CPPFLAGS="%{l_cppflags}"
115 %if "%{with_idea}" == "yes"
116 export CPPFLAGS="-DUSE_IDEA $CPPFLAGS"
117 %endif
118 export LDFLAGS="%{l_ldflags}"
119 ./configure \
120 --prefix=%{l_prefix} \
121 --libexecdir=%{l_prefix}/libexec/gnupg \
122 --mandir=%{l_prefix}/man \
123 --infodir=%{l_prefix}/info \
124 --with-zlib=%{l_prefix} \
125 --with-bzip2=%{l_prefix} \
126 --with-readline=%{l_prefix} \
127 --with-libiconv-prefix=%{l_prefix} \
128 --with-gpg-error-prefix=%{l_prefix} \
129 --with-libgcrypt-prefix=%{l_prefix} \
130 --with-libassuan-prefix=%{l_prefix} \
131 --with-ksba-prefix=%{l_prefix} \
132 --with-pth-prefix=%{l_prefix} \
133 --with-agent-pgm=%{l_prefix}/bin/gpg-agent \
134 --with-pinentry-pgm=%{l_prefix}/bin/pinentry \
135 --with-dirmngr-pgm=%{l_prefix}/bin/dirmngr \
136 %if "%{with_curl}" == "yes"
137 --with-libcurl=%{l_prefix} \
138 %else
139 --without-libcurl \
140 %endif
141 --without-libintl-prefix \
142 --disable-nls \
143 --disable-scdaemon \
144 --enable-generic \
145 --enable-finger \
146 --enable-hkp \
147 %if "%{with_ldap}" == "yes"
148 --enable-ldap \
149 %else
150 --disable-ldap \
151 %endif
152 %if "%{with_curl}" == "yes"
153 --with-libcurl=%{l_prefix} \
154 %else
155 --without-libcurl \
156 %endif
157 --enable-exec \
158 --enable-keyserver-helpers \
159 --with-mailprog="%{l_prefix}/sbin/sendmail" \
160 --disable-mailto
162 # build program
163 %{l_make} %{l_mflags}
165 %install
166 # install program
167 rm -rf $RPM_BUILD_ROOT
168 %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
170 # MSvB: facilitate PATH order of independent
171 # MSvB: GnuPG v1 and GnuPG v2 installations.
172 # # provide unversioned names
173 # ln $RPM_BUILD_ROOT%{l_prefix}/bin/gpg2 \
174 # $RPM_BUILD_ROOT%{l_prefix}/bin/gpg
175 # ln $RPM_BUILD_ROOT%{l_prefix}/bin/gpgv2 \
176 # $RPM_BUILD_ROOT%{l_prefix}/bin/gpgv
177 # ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/gpg2.1 \
178 # $RPM_BUILD_ROOT%{l_prefix}/man/man1/gpg.1
179 # ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/gpgv2.1 \
180 # $RPM_BUILD_ROOT%{l_prefix}/man/man1/gpgv.1
182 # strip down and post-adjust installation files
183 strip $RPM_BUILD_ROOT%{l_prefix}/bin/* 2>/dev/null || true
184 strip $RPM_BUILD_ROOT%{l_prefix}/libexec/gnupg/* 2>/dev/null || true
185 rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir
186 rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/scdaemon.1
187 mv $RPM_BUILD_ROOT%{l_prefix}/bin/gpgsm-gencert.sh \
188 $RPM_BUILD_ROOT%{l_prefix}/bin/gpgsm-gencert
189 mv $RPM_BUILD_ROOT%{l_prefix}/man/man1/gpgsm-gencert.sh.1 \
190 $RPM_BUILD_ROOT%{l_prefix}/man/man1/gpgsm-gencert.1
192 # determine installation files
193 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
194 %{l_files_std} \
195 %if "%{with_setuid}" == "yes"
196 '%attr(4755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/gpg2'
197 # '%attr(4755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/gpg2' \
198 # '%attr(4755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/gpg'
199 %else
200 '%attr(0755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/gpg2'
201 # '%attr(0755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/gpg' \
202 # '%attr(0755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/gpg2'
203 %endif
205 %files -f files
207 %clean
208 rm -rf $RPM_BUILD_ROOT