]> git.pld-linux.org Git - packages/freeipa.git/blame - freeipa.spec
- new, from fedora spec
[packages/freeipa.git] / freeipa.spec
CommitLineData
f9afa200
ER
1# TODO
2# - build deps:
3# /usr/share/selinux/devel/Makefile is needed by freeipa-2.1.0-0.1.src
4# 389-ds-base-devel >= 1.2.9 is needed by freeipa-2.1.0-0.1.src
5# authconfig is needed by freeipa-2.1.0-0.1.src
6# krb5-devel is needed by freeipa-2.1.0-0.1.src
7# krb5-workstation is needed by freeipa-2.1.0-0.1.src
8# libipa_hbac-python is needed by freeipa-2.1.0-0.1.src
9# policycoreutils >= %{POLICYCOREUTILSVER} is needed by freeipa-2.1.0-0.1.src
10# pylint is needed by freeipa-2.1.0-0.1.src
11# python-kerberos is needed by freeipa-2.1.0-0.1.src
12# python-krbV is needed by freeipa-2.1.0-0.1.src
13# python-ldap is needed by freeipa-2.1.0-0.1.src
14# python-netaddr >= 0.7.5-3 is needed by freeipa-2.1.0-0.1.src
15# python-nss is needed by freeipa-2.1.0-0.1.src
16# python-rhsm is needed by freeipa-2.1.0-0.1.src
17
18Summary: The Identity, Policy and Audit system
19Name: freeipa
20Version: 2.1.0
21Release: 0.1
22License: GPL v3+
23Group: Base
24URL: http://www.freeipa.org/
25Source0: http://www.freeipa.org/downloads/src/%{name}-%{version}.tar.gz
26# Source0-md5: 2272a05e8d09a009a999e4fef25588a6
27BuildRequires: /usr/share/selinux/devel/Makefile
28BuildRequires: 389-ds-base-devel >= 1.2.9
29BuildRequires: authconfig
30BuildRequires: autoconf
31BuildRequires: automake
32BuildRequires: curl-devel >= 7.21.3-9
33BuildRequires: gettext
34BuildRequires: krb5-devel
35BuildRequires: krb5-workstation
36BuildRequires: libipa_hbac-python
37BuildRequires: libtool
38BuildRequires: libuuid-devel
39BuildRequires: m4
40BuildRequires: nspr-devel
41BuildRequires: nss-devel
42BuildRequires: openldap-devel
43BuildRequires: openssl-devel
44BuildRequires: policycoreutils >= %{POLICYCOREUTILSVER}
45BuildRequires: popt-devel
46BuildRequires: pylint
47BuildRequires: python-devel
48BuildRequires: python-kerberos
49BuildRequires: python-krbV
50BuildRequires: python-ldap
51BuildRequires: python-netaddr >= 0.7.5-3
52BuildRequires: python-nss
53BuildRequires: python-pyOpenSSL
54BuildRequires: python-rhsm
55BuildRequires: python-setuptools
56BuildRequires: svrcore-devel
57BuildRequires: xmlrpc-c-devel >= 1.25.4
58BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59
60%define httpd_conf /etc/httpd/conf.d
61%define plugin_dir %{_libdir}/dirsrv/plugins
62%define POLICYCOREUTILSVER 1.33.12-1
63%define gettext_domain ipa
64
65%description
66IPA is an integrated solution to provide centrally managed Identity
67(machine, user, virtual machines, groups, authentication credentials),
68Policy (configuration settings, access control information) and Audit
69(events, logs, analysis thereof).
70
71%package server
72Summary: The IPA authentication server
73Group: Base
74Requires: %{name}-admintools = %{version}-%{release}
75Requires: %{name}-client = %{version}-%{release}
76Requires: %{name}-python = %{version}-%{release}
77Requires(post): %{name}-server-selinux = %{version}-%{release}
78Requires(pre): 389-ds-base >= 1.2.9.6-1
79Requires: acl
80Requires: apache-mod_wsgi
81Requires: cyrus-sasl-gssapi%{?_isa}
82Requires: httpd
83Requires: krb5-pkinit-openssl
84Requires: krb5-server
85Requires: krb5-server-ldap
86Requires: mod_auth_kerb
87Requires: mod_nss >= 1.0.8-10
88Requires: nss
89Requires: nss-tools
90Requires: ntp
91Requires: openldap-clients
92Requires: python-krbV
93Requires: python-ldap
94Requires: python-pyasn1 >= 0.0.9a
95Requires: selinux-policy >= 3.9.16-18
96Requires(post): selinux-policy-base
97Requires: dogtag-pki-ca-theme
98Requires: dogtag-pki-common-theme
99Requires: pki-ca >= 9.0.11
100Requires: pki-silent >= 9.0.11
101Requires: slapi-nis >= 0.21
102Requires(preun): python initscripts chkconfig
103Requires(postun): python initscripts chkconfig
104Obsoletes: ipa-server >= 1.0
105
106%description server
107IPA is an integrated solution to provide centrally managed Identity
108(machine, user, virtual machines, groups, authentication credentials),
109Policy (configuration settings, access control information) and Audit
110(events, logs, analysis thereof). If you are installing an IPA server
111you need to install this package (in other words, most people should
112NOT install this package).
113
114
115%package server-selinux
116Summary: SELinux rules for freeipa-server daemons
117Group: Base
118Requires: %{name}-server = %{version}-%{release}
119Requires(pre): policycoreutils >= %{POLICYCOREUTILSVER}
120Obsoletes: ipa-server-selinux >= 1.0
121
122%description server-selinux
123IPA is an integrated solution to provide centrally managed Identity
124(machine, user, virtual machines, groups, authentication credentials),
125Policy (configuration settings, access control information) and Audit
126(events, logs, analysis thereof). This package provides SELinux rules
127for the daemons included in freeipa-server
128
129%package client
130Summary: IPA authentication for use on clients
131Group: Base
132Requires: %{name}-python = %{version}-%{release}
133Requires: authconfig
134Requires: bind-utils
135Requires: certmonger >= 0.26
136Requires: cyrus-sasl-gssapi%{?_isa}
137Requires: krb5-workstation
138Requires: libcurl >= 7.21.3-9
139Requires: nss-tools
140Requires: ntp
141Requires: pam_krb5
142Requires: python-ldap
143Requires: sssd >= 1.5.1
144Requires: wget
145Requires: xmlrpc-c >= 1.25.4
146Obsoletes: ipa-client >= 1.0
147
148%description client
149IPA is an integrated solution to provide centrally managed Identity
150(machine, user, virtual machines, groups, authentication credentials),
151Policy (configuration settings, access control information) and Audit
152(events, logs, analysis thereof). If your network uses IPA for
153authentication, this package should be installed on every client
154machine.
155
156%package admintools
157Summary: IPA administrative tools
158Group: Base
159Requires: %{name}-client = %{version}-%{release}
160Requires: %{name}-python = %{version}-%{release}
161Requires: python-krbV
162Requires: python-ldap
163Obsoletes: ipa-admintools >= 1.0
164
165%description admintools
166IPA is an integrated solution to provide centrally managed Identity
167(machine, user, virtual machines, groups, authentication credentials),
168Policy (configuration settings, access control information) and Audit
169(events, logs, analysis thereof). This package provides command-line
170tools for IPA administrators.
171
172%package python
173Summary: Python libraries used by IPA
174Group: Libraries
175Requires: python-kerberos >= 1.1-3
176Requires: authconfig
177Requires: gnupg
178Requires: iproute2
179Requires: libipa_hbac-python
180Requires: python-lxml
181Requires: python-netaddr >= 0.7.5-3
182Requires: python-nss >= 0.11
183Requires: python-pyOpenSSL
184Obsoletes: ipa-python >= 1.0
185
186%description python
187IPA is an integrated solution to provide centrally managed Identity
188(machine, user, virtual machines, groups, authentication credentials),
189Policy (configuration settings, access control information) and Audit
190(events, logs, analysis thereof). If you are using IPA you need to
191install this package.
192
193%prep
194%setup -q
195
196%build
197export CFLAGS="$CFLAGS %{optflags}"
198export CPPFLAGS="$CPPFLAGS %{optflags}"
199%{__make} version-update
200
201cd ipa-client
202../autogen.sh \
203 --prefix=%{_usr} \
204 --sysconfdir=%{_sysconfdir} \
205 --localstatedir=%{_localstatedir} \
206 --libdir=%{_libdir} \
207 --mandir=%{_mandir}
208
209cd ../daemons
210../autogen.sh \
211 --prefix=%{_usr} \
212 --sysconfdir=%{_sysconfdir} \
213 --localstatedir=%{_localstatedir} \
214 --libdir=%{_libdir} \
215 --mandir=%{_mandir} \
216 --with-openldap
217
218cd ../install
219../autogen.sh \
220 --prefix=%{_usr} \
221 --sysconfdir=%{_sysconfdir} \
222 --localstatedir=%{_localstatedir} \
223 --libdir=%{_libdir} \
224 --mandir=%{_mandir}
225
226cd ..
227
228%{__make} all IPA_VERSION_IS_GIT_SNAPSHOT=no
229
230cd selinux
231# This isn't multi-process make capable yet
232%{__make} all -j1
233
234%install
235rm -rf $RPM_BUILD_ROOT
236%{__make} install \
237 DESTDIR=$RPM_BUILD_ROOT
238
239%{__make} -C selinux install \
240 DESTDIR=$RPM_BUILD_ROOT
241
242%find_lang %{gettext_domain}
243
244# Remove .la files from libtool - we don't want to package
245# these files
246rm $RPM_BUILD_ROOT/%{plugin_dir}/libipa_pwd_extop.la
247rm $RPM_BUILD_ROOT/%{plugin_dir}/libipa_enrollment_extop.la
248rm $RPM_BUILD_ROOT/%{plugin_dir}/libipa_winsync.la
249rm $RPM_BUILD_ROOT/%{plugin_dir}/libipa_repl_version.la
250rm $RPM_BUILD_ROOT/%{plugin_dir}/libipa_uuid.la
251rm $RPM_BUILD_ROOT/%{plugin_dir}/libipa_modrdn.la
252rm $RPM_BUILD_ROOT/%{plugin_dir}/libipa_lockout.la
253
254# Some user-modifiable HTML files are provided. Move these to %{_sysconfdir}
255# and link back.
256install -d $RPM_BUILD_ROOT/%{_sysconfdir}/ipa/html
257install -d $RPM_BUILD_ROOT/%{_localstatedir}/cache/ipa/sysrestore
258mkdir $RPM_BUILD_ROOT%{_usr}/share/ipa/html/
259ln -s ../../../..%{_sysconfdir}/ipa/html/ssbrowser.html \
260 $RPM_BUILD_ROOT%{_usr}/share/ipa/html/ssbrowser.html
261ln -s ../../../..%{_sysconfdir}/ipa/html/unauthorized.html \
262 $RPM_BUILD_ROOT%{_usr}/share/ipa/html/unauthorized.html
263ln -s ../../../..%{_sysconfdir}/ipa/html/browserconfig.html \
264 $RPM_BUILD_ROOT%{_usr}/share/ipa/html/browserconfig.html
265ln -s ../../../..%{_sysconfdir}/ipa/html/hbac-deny-remove.html \
266 $RPM_BUILD_ROOT%{_usr}/share/ipa/html/hbac-deny-remove.html
267ln -s ../../../..%{_sysconfdir}/ipa/html/ipa_error.css \
268 $RPM_BUILD_ROOT%{_usr}/share/ipa/html/ipa_error.css
269
270# So we can own our Apache configuration
271install -d $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d
272touch $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/ipa.conf
273touch $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/ipa-rewrite.conf
274install ipa.init $RPM_BUILD_ROOT%{_initrddir}/ipa
275
276install -d $RPM_BUILD_ROOT%{_sysconfdir}/ipa
277touch $RPM_BUILD_ROOT%{_sysconfdir}/ipa/default.conf
278install -p -d $RPM_BUILD_ROOT/%{_localstatedir}/lib/ipa-client/sysrestore
279
280install -d $RPM_BUILD_ROOT/etc/bash_completion.d
281install -pm 644 contrib/completion/ipa.bash_completion $RPM_BUILD_ROOT/etc/bash_completion.d/ipa
282install -d $RPM_BUILD_ROOT/etc/cron.d
283install -pm 644 ipa-compliance.cron $RPM_BUILD_ROOT/etc/cron.d/ipa-compliance
284
285%clean
286rm -rf $RPM_BUILD_ROOT
287
288%post server
289if [ $1 = 1 ]; then
290 /sbin/chkconfig --add ipa
291 /sbin/chkconfig --add ipa_kpasswd
292fi
293if [ $1 -gt 1 ]; then
294 %{_sbindir}/ipa-upgradeconfig || :
295 %{_sbindir}/ipa-ldap-updater --upgrade >/dev/null 2>&1 || :
296fi
297
298%preun server
299if [ $1 = 0 ]; then
300 /sbin/chkconfig --del ipa
301 /sbin/chkconfig --del ipa_kpasswd
302 %service ipa stop
303fi
304
305%postun server
306if [ "$1" -ge "1" ]; then
307 %service ipa restart
308fi
309
310%pre server-selinux
311# Save the content state so we can restore it when/if this package is removed
312if [ -s /etc/selinux/config ]; then
313 . %{_sysconfdir}/selinux/config
314 FILE_CONTEXT=%{_sysconfdir}/selinux/targeted/contexts/files/file_contexts
315 if [ "${SELINUXTYPE}" == targeted -a -f ${FILE_CONTEXT} ]; then \
316 cp -f ${FILE_CONTEXT} ${FILE_CONTEXT}.%{name}
317 fi
318fi
319
320%post server-selinux
321# Insert our provide SELinux policy
322semodule -s targeted -i %{_datadir}/selinux/targeted/ipa_kpasswd.pp %{_datadir}/selinux/targeted/ipa_httpd.pp %{_datadir}/selinux/targeted/ipa_dogtag.pp
323. %{_sysconfdir}/selinux/config
324FILE_CONTEXT=%{_sysconfdir}/selinux/targeted/contexts/files/file_contexts
325selinuxenabled
326if [ $? == 0 -a "${SELINUXTYPE}" == targeted -a -f ${FILE_CONTEXT}.%{name} ]; then
327 fixfiles -C ${FILE_CONTEXT}.%{name} restore
328 rm -f ${FILE_CONTEXT}.%{name}
329fi
330
331%preun server-selinux
332# On the last uninstallation prepare to restore state
333if [ $1 = 0 ]; then
334 if [ -s %{_sysconfdir}/selinux/config ]; then
335 . %{_sysconfdir}/selinux/config
336 FILE_CONTEXT=%{_sysconfdir}/selinux/targeted/contexts/files/file_contexts
337 if [ "${SELINUXTYPE}" == targeted -a -f ${FILE_CONTEXT} ]; then \
338 cp -f ${FILE_CONTEXT} ${FILE_CONTEXT}.%{name}
339 fi
340 fi
341fi
342
343%postun server-selinux
344# On the last uninstallation remove our SELinux policy and restore the state
345if [ $1 = 0 ]; then
346 semodule -s targeted -r ipa_kpasswd ipa_httpd ipa_dogtag
347 . %{_sysconfdir}/selinux/config
348 FILE_CONTEXT=%{_sysconfdir}/selinux/targeted/contexts/files/file_contexts
349 selinuxenabled
350 if [ $? == 0 -a "${SELINUXTYPE}" == targeted -a -f ${FILE_CONTEXT}.%{name} ]; then
351 fixfiles -C ${FILE_CONTEXT}.%{name} restore
352 rm -f ${FILE_CONTEXT}.%{name}
353 fi
354fi
355
356%files server
357%defattr(644,root,root,755)
358%doc COPYING README Contributors.txt
359%attr(755,root,root) %{_sbindir}/ipa-ca-install
360%attr(755,root,root) %{_sbindir}/ipa-dns-install
361%attr(755,root,root) %{_sbindir}/ipa-server-install
362%attr(755,root,root) %{_sbindir}/ipa-replica-conncheck
363%attr(755,root,root) %{_sbindir}/ipa-replica-install
364%attr(755,root,root) %{_sbindir}/ipa-replica-prepare
365%attr(755,root,root) %{_sbindir}/ipa-replica-manage
366%attr(755,root,root) %{_sbindir}/ipa-csreplica-manage
367%attr(755,root,root) %{_sbindir}/ipa-server-certinstall
368%attr(755,root,root) %{_sbindir}/ipa-ldap-updater
369%attr(755,root,root) %{_sbindir}/ipa-compat-manage
370%attr(755,root,root) %{_sbindir}/ipa-nis-manage
371%attr(755,root,root) %{_sbindir}/ipa-host-net-manage
372%attr(755,root,root) %{_sbindir}/ipa_kpasswd
373%attr(755,root,root) %{_sbindir}/ipactl
374%attr(755,root,root) %{_sbindir}/ipa-upgradeconfig
375%attr(755,root,root) %{_sbindir}/ipa-compliance
376/etc/cron.d/ipa-compliance
377%attr(755,root,root) %{_initrddir}/ipa
378%attr(755,root,root) %{_initrddir}/ipa_kpasswd
379%dir %{py_sitescriptdir}/ipaserver
380%{py_sitescriptdir}/ipaserver/*
381%dir %{_usr}/share/ipa
382%{_usr}/share/ipa/wsgi.py*
383%{_usr}/share/ipa/*.ldif
384%{_usr}/share/ipa/*.uldif
385%{_usr}/share/ipa/*.template
386%dir %{_usr}/share/ipa/html
387%{_usr}/share/ipa/html/ssbrowser.html
388%{_usr}/share/ipa/html/browserconfig.html
389%{_usr}/share/ipa/html/unauthorized.html
390%{_usr}/share/ipa/html/hbac-deny-remove.html
391%{_usr}/share/ipa/html/ipa_error.css
392%dir %{_usr}/share/ipa/migration
393%{_usr}/share/ipa/migration/error.html
394%{_usr}/share/ipa/migration/index.html
395%{_usr}/share/ipa/migration/invalid.html
396%{_usr}/share/ipa/migration/ipa_migration.css
397%{_usr}/share/ipa/migration/migration.py*
398%dir %{_usr}/share/ipa/ui
399%{_usr}/share/ipa/ui/index.html
400%{_usr}/share/ipa/ui/*.png
401%{_usr}/share/ipa/ui/*.gif
402%{_usr}/share/ipa/ui/*.ico
403%{_usr}/share/ipa/ui/*.css
404%{_usr}/share/ipa/ui/*.js
405%{_usr}/share/ipa/ui/*.eot
406%{_usr}/share/ipa/ui/*.svg
407%{_usr}/share/ipa/ui/*.ttf
408%{_usr}/share/ipa/ui/*.woff
409%dir %{_sysconfdir}/ipa
410%dir %{_sysconfdir}/ipa/html
411%config(noreplace) %{_sysconfdir}/ipa/html/ssbrowser.html
412%config(noreplace) %{_sysconfdir}/ipa/html/ipa_error.css
413%config(noreplace) %{_sysconfdir}/ipa/html/unauthorized.html
414%config(noreplace) %{_sysconfdir}/ipa/html/browserconfig.html
415%config(noreplace) %{_sysconfdir}/ipa/html/hbac-deny-remove.html
416%ghost %attr(644,root,apache) %config(noreplace) %{_sysconfdir}/httpd/conf.d/ipa-rewrite.conf
417%ghost %attr(644,root,apache) %config(noreplace) %{_sysconfdir}/httpd/conf.d/ipa.conf
418%{_usr}/share/ipa/ipa.conf
419%{_usr}/share/ipa/ipa-rewrite.conf
420%dir %{_usr}/share/ipa/updates/
421%{_usr}/share/ipa/updates/*
422%attr(755,root,root) %{plugin_dir}/libipa_pwd_extop.so
423%attr(755,root,root) %{plugin_dir}/libipa_enrollment_extop.so
424%attr(755,root,root) %{plugin_dir}/libipa_winsync.so
425%attr(755,root,root) %{plugin_dir}/libipa_repl_version.so
426%attr(755,root,root) %{plugin_dir}/libipa_uuid.so
427%attr(755,root,root) %{plugin_dir}/libipa_modrdn.so
428%attr(755,root,root) %{plugin_dir}/libipa_lockout.so
429%dir %{_localstatedir}/lib/ipa
430%attr(700,root,root) %dir %{_localstatedir}/lib/ipa/sysrestore
431%dir %{_localstatedir}/cache/ipa
432%attr(700,apache,apache) %dir %{_localstatedir}/cache/ipa/sessions
433%attr(700,root,root) %dir %{_localstatedir}/cache/ipa/kpasswd
434%{_mandir}/man1/ipa-replica-conncheck.1*
435%{_mandir}/man1/ipa-replica-install.1*
436%{_mandir}/man1/ipa-replica-manage.1*
437%{_mandir}/man1/ipa-csreplica-manage.1*
438%{_mandir}/man1/ipa-replica-prepare.1*
439%{_mandir}/man1/ipa-server-certinstall.1*
440%{_mandir}/man1/ipa-server-install.1*
441%{_mandir}/man1/ipa-dns-install.1*
442%{_mandir}/man1/ipa-ca-install.1*
443%{_mandir}/man1/ipa-compat-manage.1*
444%{_mandir}/man1/ipa-nis-manage.1*
445%{_mandir}/man1/ipa-host-net-manage.1*
446%{_mandir}/man1/ipa-ldap-updater.1*
447%{_mandir}/man8/ipa_kpasswd.8*
448%{_mandir}/man8/ipactl.8*
449%{_mandir}/man1/ipa-compliance.1*
450
451%files server-selinux
452%defattr(644,root,root,755)
453%doc COPYING README Contributors.txt
454%{_usr}/share/selinux/targeted/ipa_kpasswd.pp
455%{_usr}/share/selinux/targeted/ipa_httpd.pp
456%{_usr}/share/selinux/targeted/ipa_dogtag.pp
457
458%files client
459%defattr(644,root,root,755)
460%doc COPYING README Contributors.txt
461%attr(755,root,root) %{_sbindir}/ipa-client-install
462%attr(755,root,root) %{_sbindir}/ipa-getkeytab
463%attr(755,root,root) %{_sbindir}/ipa-rmkeytab
464%attr(755,root,root) %{_sbindir}/ipa-join
465%dir %{_usr}/share/ipa
466%dir %{_usr}/share/ipa/ipaclient
467%dir %{_localstatedir}/lib/ipa-client
468%dir %{_localstatedir}/lib/ipa-client/sysrestore
469%{_usr}/share/ipa/ipaclient/ipa.cfg
470%{_usr}/share/ipa/ipaclient/ipa.js
471%dir %{py_sitescriptdir}/ipaclient
472%{py_sitescriptdir}/ipaclient/*.py*
473%{_mandir}/man1/ipa-getkeytab.1*
474%{_mandir}/man1/ipa-rmkeytab.1*
475%{_mandir}/man1/ipa-client-install.1*
476%{_mandir}/man1/ipa-join.1*
477%{_mandir}/man5/default.conf.5*
478
479%files admintools
480%defattr(644,root,root,755)
481%doc COPYING README Contributors.txt
482%config %{_sysconfdir}/bash_completion.d
483%attr(755,root,root) %{_bindir}/ipa
484%{_mandir}/man1/ipa.1*
485
486%files python -f %{gettext_domain}.lang
487%defattr(644,root,root,755)
488%doc COPYING README Contributors.txt
489%ghost %attr(644,root,apache) %config(noreplace) %{_sysconfdir}/ipa/default.conf
490%dir %{py_sitescriptdir}/ipapython
491%{py_sitescriptdir}/ipapython/*.py*
492%dir %{py_sitescriptdir}/ipalib
493%{py_sitescriptdir}/ipalib/*
494%{py_sitedir}/default_encoding_utf8.so
495%{py_sitescriptdir}/ipapython-*.egg-info
496%{py_sitescriptdir}/freeipa-*.egg-info
497%{py_sitedir}/python_default_encoding-*.egg-info
This page took 0.118727 seconds and 4 git commands to generate.