gnupg/gnupg.spec

Wed, 21 Sep 2011 13:51:49 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 21 Sep 2011 13:51:49 +0200
changeset 373
b8e8f9dbbfd3
parent 303
2bd9bf3f6f03
child 462
63f79f03cb7f
permissions
-rw-r--r--

Update version and integrate setuid logic from upstream package vendor.

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

mercurial