]>
Commit | Line | Data |
---|---|---|
1 | ############################################################################### | |
2 | # IPFire.org - An Open Source Firewall Solution # | |
3 | # Copyright (C) - IPFire Development Team <info@ipfire.org> # | |
4 | ############################################################################### | |
5 | ||
6 | name = cracklib | |
7 | version = 2.9.2 | |
8 | release = 1 | |
9 | ||
10 | groups = Security/Password | |
11 | url = http://sourceforge.net/projects/cracklib/ | |
12 | license = GPLv2 | |
13 | summary = A password-checking library. | |
14 | ||
15 | description | |
16 | CrackLib tests passwords to determine whether they match certain \ | |
17 | security-oriented characteristics, with the purpose of stopping users \ | |
18 | from choosing passwords that are easy to guess. CrackLib performs \ | |
19 | several tests on passwords: it tries to generate words from a username \ | |
20 | and gecos entry and checks those words against the password; it checks \ | |
21 | for simplistic patterns in passwords; and it checks for the password \ | |
22 | in a dictionary. | |
23 | end | |
24 | ||
25 | source_dl = http://prdownloads.sourceforge.net/cracklib/ | |
26 | sources += cracklib-words-20080507.gz | |
27 | ||
28 | build | |
29 | requires | |
30 | python-devel | |
31 | end | |
32 | ||
33 | dictdir = %{datadir}/cracklib | |
34 | dictpath = %{dictdir}/pw_dict | |
35 | ||
36 | configure_options += \ | |
37 | --with-default-dict=%{dictpath} \ | |
38 | --with-python \ | |
39 | --disable-static | |
40 | ||
41 | # Only extract the source tarball. | |
42 | prepare | |
43 | cd %{DIR_SRC} && %{MACRO_EXTRACT} %{DIR_DL}/%{thisapp}.tar.gz | |
44 | cd %{DIR_APP} | |
45 | ||
46 | cp lib/packer.h lib/packer.h.in | |
47 | chmod +x util/cracklib-format | |
48 | ||
49 | mkdir cracklib-dicts | |
50 | cp -vf %{DIR_DL}/cracklib-words-20080507.gz cracklib-dicts | |
51 | ||
52 | # Create distribution dict. | |
53 | echo -ne "%{DISTRO_NAME}\n%{DISTRO_SNAME}\n" >> \ | |
54 | cracklib-dicts/cracklib-distro-words | |
55 | gzip -9 cracklib-dicts/cracklib-distro-words | |
56 | end | |
57 | ||
58 | install_cmds | |
59 | # Install python bindings | |
60 | make install DESTDIR=%{BUILDROOT} INSTALL="install -c -p" -C python | |
61 | ||
62 | mkdir -pv %{BUILDROOT}{%{dictdir},%{dictpath}} | |
63 | util/cracklib-format cracklib-dicts/* | \ | |
64 | util/cracklib-packer %{BUILDROOT}%{dictpath} | |
65 | util/cracklib-format %{BUILDROOT}%{dictdir}/cracklib-small | \ | |
66 | util/cracklib-packer %{BUILDROOT}%{dictdir}/cracklib-small | |
67 | rm -f %{BUILDROOT}%{dictdir}/cracklib-small | |
68 | ||
69 | sed -e "s@/usr/lib/cracklib_dict@%{dictpath}@g" lib/crack.h \ | |
70 | > %{BUILDROOT}%{includedir}/crack.h | |
71 | ||
72 | ln -svf cracklib-format %{BUILDROOT}%{sbindir}/mkdict | |
73 | ln -svf cracklib-packer %{BUILDROOT}%{sbindir}/packer | |
74 | ||
75 | toprelpath=.. | |
76 | touch %{BUILDROOT}/top | |
77 | while ! test -f %{BUILDROOT}%{libdir}/${toprelpath}/top; do | |
78 | toprelpath=../${toprelpath} | |
79 | done | |
80 | rm -f %{BUILDROOT}/top | |
81 | ||
82 | if [ "%{dictpath}" != "%{libdir}/cracklib_dict" ]; then | |
83 | ln -svf ${toprelpath}%{dictpath}.hwm %{BUILDROOT}%{libdir}/cracklib_dict.hwm | |
84 | ln -svf ${toprelpath}%{dictpath}.pwd %{BUILDROOT}%{libdir}/cracklib_dict.pwd | |
85 | ln -svf ${toprelpath}%{dictpath}.pwi %{BUILDROOT}%{libdir}/cracklib_dict.pwi | |
86 | fi | |
87 | end | |
88 | end | |
89 | ||
90 | packages | |
91 | package %{name} | |
92 | requires = %{name}-dicts | |
93 | end | |
94 | ||
95 | package %{name}-devel | |
96 | template DEVEL | |
97 | end | |
98 | ||
99 | # We build an extra package with the dictionaries. | |
100 | package %{name}-dicts | |
101 | summary = Dictionaries for %{thisapp}. | |
102 | description = %{summary} | |
103 | ||
104 | files | |
105 | %{dictdir} | |
106 | %{dictpath} | |
107 | end | |
108 | end | |
109 | ||
110 | # We build an extra python package with the bindings for it. | |
111 | package python-cracklib | |
112 | summary = Python bindings for %{thisapp}. | |
113 | description = %{summary} | |
114 | ||
115 | files | |
116 | /usr/lib/python* | |
117 | %{libdir}/python* | |
118 | end | |
119 | end | |
120 | ||
121 | package %{name}-debuginfo | |
122 | template DEBUGINFO | |
123 | end | |
124 | end |