Add PIE linker flags
[platform/upstream/krb5.git] / packaging / krb5.spec
1 #
2 # spec file for package krb5
3 #
4 # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
5 #
6 # All modifications and additions to the file contributed by third parties
7 # remain the property of their copyright owners, unless otherwise agreed
8 # upon. The license for this file, and modifications and additions to the
9 # file, is the same license as for the pristine package itself (unless the
10 # license for the pristine package is not an Open Source License, in which
11 # case the license is the MIT License). An "Open Source License" is a
12 # license that conforms to the Open Source Definition (Version 1.9)
13 # published by the Open Source Initiative.
14
15 # Please submit bugfixes or comments via http://bugs.opensuse.org/
16 #
17
18
19 %define build_mini 0
20 %define srcRoot krb5-1.15.1
21 %define krb5docdir  %{_defaultdocdir}/krb5
22
23 Name:           krb5
24 Url:            http://web.mit.edu/kerberos/www/
25 BuildRequires:  autoconf
26 BuildRequires:  bison
27 BuildRequires:  keyutils
28 BuildRequires:  keyutils-devel
29 BuildRequires:  libcom_err-devel
30 BuildRequires:  ncurses-devel
31 Version:        1.15.1
32 Release:        0
33 Summary:        MIT Kerberos5 Implementation--Libraries
34 License:        MIT
35 Group:          Productivity/Networking/Security
36 Source0:         krb5-%{version}.tar.bz2
37 Source1:        baselibs.conf
38 Source2:        krb5-rpmlintrc
39 Source1001:     krb5.manifest
40
41 %description
42 Kerberos V5 is a trusted-third-party network authentication system,
43 which can improve your network's security by eliminating the insecure
44 practice of clear text passwords.
45
46
47 %package devel
48 Summary:        MIT Kerberos5 - Include Files and Libraries
49 Group:          Development/Libraries/C and C++
50 Requires:         %{name} = %{version}
51 Requires:       keyutils-devel
52 Requires:       libcom_err-devel
53
54 %description devel
55 Kerberos V5 is a trusted-third-party network authentication system,
56 which can improve your network's security by eliminating the insecure
57 practice of cleartext passwords. This package includes Libraries and
58 Include Files for Development
59
60 %prep
61 %setup -q -n %{srcRoot}
62 cp %{SOURCE1001} .
63
64 %build
65 # needs to be re-generated
66 rm -f src/lib/krb5/krb/deltat.c
67 cd src
68 %{?asan:LDFLAGS+=" -ldl -pthread "}
69 CFLAGS="$RPM_OPT_FLAGS -I/usr/include/et -fno-strict-aliasing -D_GNU_SOURCE -fPIC -fgnu89-inline -Wl,-pie " \
70 ./configure \
71         --host=%{_host} --build=%{_build} \
72         --prefix=/usr/lib/mit \
73         --sysconfdir=%{_sysconfdir} \
74         --mandir=%{_mandir} \
75         --infodir=%{_infodir} \
76         --libexecdir=/usr/lib/mit/sbin \
77         --libdir=%{_libdir} \
78         --includedir=%{_includedir} \
79         --localstatedir=%{_localstatedir}/lib/kerberos \
80         --enable-shared \
81         --disable-static \
82         --enable-kdc-replay-cache \
83         --enable-dns-for-realm \
84         --disable-rpath \
85         --disable-pkinit \
86         --without-pam \
87         --with-system-et \
88         --with-system-ss
89 make %{?jobs:-j%jobs}
90
91 %install
92 cd src
93 make DESTDIR=%{buildroot} install
94 cd ..
95 # Munge the krb5-config script to remove rpaths and CFLAGS.
96 sed "s|^CC_LINK=.*|CC_LINK='\$(CC) \$(PROG_LIBPATH)'|g" src/build-tools/krb5-config > $RPM_BUILD_ROOT/usr/lib/mit/bin/krb5-config
97 # install autoconf macro
98 mkdir -p %{buildroot}/%{_datadir}/aclocal
99 install -m 644 src/util/ac_check_krb5.m4 %{buildroot}%{_datadir}/aclocal/
100 # install sample config files
101 # I'll probably do something about this later on
102 mkdir -p %{buildroot}%{_sysconfdir} %{buildroot}%{_localstatedir}/lib/kerberos/krb5kdc
103 mkdir -p %{buildroot}%{_sysconfdir}
104 mkdir -p %{buildroot}/etc/profile.d/
105 mkdir -p %{buildroot}/var/log/krb5
106 mkdir -p %{buildroot}/etc/sysconfig/SuSEfirewall2.d/services/
107 # create plugin directories
108 mkdir -p %{buildroot}/%{_libdir}/krb5/plugins/kdb
109 mkdir -p %{buildroot}/%{_libdir}/krb5/plugins/preauth
110 mkdir -p %{buildroot}/%{_libdir}/krb5/plugins/libkrb5
111 # all libs must have permissions 0755
112 for lib in `find %{buildroot}/%{_libdir}/ -type f -name "*.so*"`
113 do
114   chmod 0755 ${lib}
115 done
116 # and binaries too
117 chmod 0755 %{buildroot}/usr/lib/mit/bin/ksu
118 find . -type f -name '*.ps' -exec gzip -9 {} \;
119 # create rc* links
120 # create links for kinit and klist, because of the java ones
121 #ln -sf ../../usr/lib/mit/bin/kinit   %{buildroot}/usr/bin/kinit
122 #ln -sf ../../usr/lib/mit/bin/klist   %{buildroot}/usr/bin/klist
123
124
125 mkdir -p %{buildroot}/usr/bin
126 ln -sf ../../usr/lib/mit/bin/krb5-config %{buildroot}/usr/bin/krb5-config
127 # install doc
128 install -d -m 755 %{buildroot}/%{krb5docdir}
129 install -m 644 %{_builddir}/%{srcRoot}/README %{buildroot}/%{krb5docdir}/README
130 # cleanup
131 rm -f  %{buildroot}/usr/share/man/man1/tmac.doc*
132 rm -f  /usr/share/man/man1/tmac.doc*
133 rm -rf %{buildroot}/usr/lib/mit/share/examples
134 rm -rf %{buildroot}/usr/lib/mit/share/locale
135 #####################################################
136 # krb5(-mini) pre/post/postun
137 #####################################################
138
139 %post -p /sbin/ldconfig
140
141 %postun
142 /sbin/ldconfig
143
144
145 ########################################################
146 # files sections
147 ########################################################
148
149 %files devel
150 %manifest %{name}.manifest
151 %defattr(-,root,root)
152 /usr/bin/krb5-config
153 %dir /usr/lib/mit
154 %dir /usr/lib/mit/bin
155 %dir /usr/lib/mit/sbin
156 %dir /usr/lib/mit/share
157 %dir %{_datadir}/aclocal
158 %{_libdir}/libgssrpc.so
159 %{_libdir}/libk5crypto.so
160 %{_libdir}/libkadm5clnt_mit.so
161 %{_libdir}/libkadm5clnt.so
162 %{_libdir}/libkadm5srv_mit.so
163 %{_libdir}/libkadm5srv.so
164 %{_libdir}/libkrad.so
165 %{_libdir}/libkdb5.so
166 %{_libdir}/libkrb5.so
167 %{_libdir}/libkrb5support.so
168 %{_libdir}/libverto.so
169 %{_includedir}/*
170 /usr/lib/mit/bin/krb5-config
171 /usr/lib/mit/sbin/krb5-send-pr
172 %{_mandir}/man1/krb5-config.1*
173 %{_datadir}/aclocal/ac_check_krb5.m4
174 %{_libdir}/pkgconfig/*
175
176 %files
177 %manifest %{name}.manifest
178 %defattr(-,root,root)
179 %dir %{krb5docdir}
180 # add directories
181 %dir %{_libdir}/krb5
182 %dir %{_libdir}/krb5/plugins
183 %dir %{_libdir}/krb5/plugins/kdb
184 %dir %{_libdir}/krb5/plugins/preauth
185 %dir %{_libdir}/krb5/plugins/libkrb5
186 %dir %{_libdir}/krb5/plugins/tls
187 %dir %{_localstatedir}/lib/kerberos/
188 %dir %{_localstatedir}/lib/kerberos/krb5kdc
189 %attr(0700,root,root) %dir /var/log/krb5
190 %dir /usr/lib/mit
191 %dir /usr/lib/mit/sbin
192 %dir /usr/lib/mit/bin
193 %doc %{krb5docdir}/README
194 %{_libdir}/libgssapi_krb5.*
195 %{_libdir}/libgssrpc.so.*
196 %{_libdir}/libk5crypto.so.*
197 %{_libdir}/libkadm5clnt_mit.so.*
198 %{_libdir}/libkadm5srv_mit.so.*
199 %{_libdir}/libkrad.so.*
200 %{_libdir}/libkdb5.so.*
201 %{_libdir}/libkrb5.so.*
202 %{_libdir}/libkrb5support.so.*
203 %{_libdir}/libverto.so.*
204 %{_libdir}/krb5/plugins/kdb/*
205 %{_libdir}/krb5/plugins/preauth/*
206 %{_libdir}/krb5/plugins/tls/*
207 /usr/lib/mit/sbin/kadmin.local
208 /usr/lib/mit/sbin/kadmind
209 /usr/lib/mit/sbin/kpropd
210 /usr/lib/mit/sbin/kproplog
211 /usr/lib/mit/sbin/kprop
212 /usr/lib/mit/sbin/kdb5_util
213 /usr/lib/mit/sbin/krb5kdc
214 /usr/lib/mit/sbin/uuserver
215 /usr/lib/mit/sbin/sserver
216 /usr/lib/mit/sbin/gss-server
217 /usr/lib/mit/sbin/sim_server
218 /usr/lib/mit/bin/k5srvutil
219 /usr/lib/mit/bin/kvno
220 /usr/lib/mit/bin/kinit
221 /usr/lib/mit/bin/kdestroy
222 /usr/lib/mit/bin/kpasswd
223 /usr/lib/mit/bin/klist
224 /usr/lib/mit/bin/kadmin
225 /usr/lib/mit/bin/ktutil
226 /usr/lib/mit/bin/kswitch
227 %attr(0755,root,root) /usr/lib/mit/bin/ksu
228 /usr/lib/mit/bin/uuclient
229 /usr/lib/mit/bin/sclient
230 /usr/lib/mit/bin/gss-client
231 /usr/lib/mit/bin/sim_client
232 %{_mandir}/man1/kvno.1*
233 %{_mandir}/man1/kinit.1*
234 %{_mandir}/man1/kdestroy.1*
235 %{_mandir}/man1/kpasswd.1*
236 %{_mandir}/man1/klist.1*
237 %{_mandir}/man1/ksu.1*
238 %{_mandir}/man1/sclient.1*
239 %{_mandir}/man1/kadmin.1*
240 %{_mandir}/man1/ktutil.1*
241 %{_mandir}/man1/k5srvutil.1*
242 %{_mandir}/man1/kswitch.1*
243 %{_mandir}/man1/krb5-config.1*
244 %{_mandir}/man5/*
245 %{_mandir}/man5/.k5login.5.gz
246 %{_mandir}/man5/.k5identity.5*
247 %{_mandir}/man8/*