cracklib/cracklib.spec

Mon, 01 Apr 2013 19:50:38 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 01 Apr 2013 19:50:38 +0200
changeset 765
5be956b2db74
parent 572
97e49dc59b23
permissions
-rw-r--r--

Complete packaging along with specification and runcommand improvements.

     1 ##
     2 ##  cracklib.spec -- OpenPKG RPM Package Specification
     3 ##  Copyright (c) 2000-2012 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:         cracklib
    26 Summary:      Filter Guessable Passwords
    27 URL:          http://cracklib.sourceforge.net/
    28 Vendor:       Alec Muffett et al.
    29 Packager:     OpenPKG Foundation e.V.
    30 Distribution: OpenPKG Community
    31 Class:        PLUS
    32 Group:        Security
    33 License:      Artistic
    34 Version:      2.8.19
    35 Release:      20120800
    37 #   list of sources
    38 Source0:      http://switch.dl.sourceforge.net/cracklib/cracklib-%{version}.tar.gz
    39 Source1:      http://switch.dl.sourceforge.net/cracklib/cracklib-words.gz
    40 Source2:      ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/computer/common-passwords.txt.gz
    41 Source3:      ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/computer/Jargon.gz
    42 Source4:      http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/share/dict/web2
    43 Source5:      http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/share/dict/web2a
    44 Source6:      http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/share/dict/propernames
    45 Source7:      Makefile
    47 #   build information
    48 BuildPreReq:  OpenPKG, openpkg >= 20100101, make
    49 PreReq:       OpenPKG, openpkg >= 20100101, make
    51 %description
    52     CrackLib is a library which may be used in a "passwd"-like program.
    53     The idea is simple: try to prevent users from choosing passwords
    54     that could be guessed by "Crack" by filtering them out, at source.
    56 %track
    57     prog cracklib = {
    58         version   = %{version}
    59         url       = http://sourceforge.net/projects/cracklib/files/
    60         regex     = cracklib-(__VER__)\.tar\.gz
    61     }
    63 %prep
    64     %setup -q
    66 %build
    67     #   configure library
    68     CC="%{l_cc}" \
    69     CFLAGS="%{l_cflags -O}" \
    70     CPPFLAGS="%{l_cppflags} -D_POSIX_PTHREAD_SEMANTICS" \
    71     ./configure \
    72         --prefix=%{l_prefix} \
    73         --with-default-dict=%{l_prefix}/lib/cracklib/pw_dict \
    74         --without-python \
    75         --disable-shared \
    76         --disable-nls
    78     #   build library
    79     %{l_make} %{l_mflags -O}
    81 %install
    82     #   install library
    83     %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
    85     #   strip down installation files
    86     rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/create-cracklib-dict
    87     rm -f $RPM_BUILD_ROOT%{l_prefix}/share/cracklib/cracklib.magic
    89     #   install dictionaries
    90     mv  $RPM_BUILD_ROOT%{l_prefix}/share/cracklib/cracklib-small \
    91         $RPM_BUILD_ROOT%{l_prefix}/share/cracklib/cracklib-small.txt
    92     %{l_gzip} -d -c %{SOURCE cracklib-words.gz} \
    93         >$RPM_BUILD_ROOT%{l_prefix}/share/cracklib/cracklib-large.txt
    94     %{l_gzip} -d -c %{SOURCE common-passwords.txt.gz} \
    95         >$RPM_BUILD_ROOT%{l_prefix}/share/cracklib/common-passwords.txt
    96     %{l_gzip} -d -c %{SOURCE Jargon.gz} \
    97         >$RPM_BUILD_ROOT%{l_prefix}/share/cracklib/jargon-words.txt
    98     cp %{SOURCE web2} \
    99         $RPM_BUILD_ROOT%{l_prefix}/share/cracklib/freebsd-web2.txt
   100     cp %{SOURCE web2a} \
   101         $RPM_BUILD_ROOT%{l_prefix}/share/cracklib/freebsd-web2a.txt
   102     cp %{SOURCE propernames} \
   103         $RPM_BUILD_ROOT%{l_prefix}/share/cracklib/freebsd-propernames.txt
   105     #   install dictionary generation stuff
   106     %{l_shtool} install -c -m 644 %{l_value -s -a} \
   107         %{SOURCE Makefile} $RPM_BUILD_ROOT%{l_prefix}/share/cracklib/
   108     %{l_shtool} mkdir -f -p -m 755 \
   109         $RPM_BUILD_ROOT%{l_prefix}/lib/cracklib
   111     #   determine installation files
   112     %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
   114 %files -f files
   116 %clean
   118 %post
   119     #   (re)generate runtime password dictionary
   120     ( echo "(Re)Generating runtime password dictionary"
   121     ) | %{l_rpmtool} msg -b -t warn
   122     ( cd $RPM_INSTALL_PREFIX/share/cracklib && \
   123       $RPM_INSTALL_PREFIX/bin/make
   124     ) >/dev/null 2>&1
   126 %preun
   127     if [ $1 -eq 0 ]; then
   128         rm -f $RPM_INSTALL_PREFIX/share/cracklib/* >/dev/null 2>&1 || true
   129     fi

mercurial