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.

     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

mercurial