%global commit 7528432af721a664accab07cbf830a8f5ff678d5 Name: fusiondirectory Version: 1.4 Release: 1 Summary: Web Based LDAP Administration Program License: GPL-2.0-or-later URL: https://www.fusiondirectory.org Buildarch: noarch Source0: https://gitlab.fusiondirectory.org/fusiondirectory/fd/-/archive/%{name}-%{version}/%{name}-%{version}.tar.bz2 Source1: %{name}.te Source2: %{name}.fc Requires: fusiondirectory-tools Requires(pre): httpd Requires: php-common >= 5.4 Requires: php-gd >= 5.4 Requires: php-imap >= 5.4 Requires: php-ldap >= 5.4 Requires: php-mbstring >= 5.4 Requires: php-openssl >= 5.4 Requires: php-pdo >= 5.4 Requires: php-xml >= 5.4 Requires: php-pear-CAS Requires: php-pecl-imagick Requires: php-Smarty ### Not available in Fedora/EPEL # https://github.com/smarty-gettext/smarty-gettext Requires: php-smarty-gettext # http://www.prototypejs.org/ # https://src.fedoraproject.org/rpms/prototype/c/a1a5b7e80d6497ecb1ed9272671bd8d78576e6be.patch Requires: js-prototype # http://script.aculo.us/ # https://src.fedoraproject.org/rpms/scriptaculous/c/f6c3472dbcb7e372b2237fd3e3de1e5f60676ca2.patch Requires: js-scriptaculous # FIXME: tsorter.ts # https://github.com/terrilldent/tsorter # FIXME: pwdStrength.js # FIXME: pulldown.js # Not available in EL7, you need to install fusiondirectory-selinux manually # This ensures that the *-selinux package and all its dependencies are not pulled # into containers and other systems that do not use SELinux %{!?el7:Requires: (%{name}-selinux = %{version}-%{release} if selinux-policy-%{selinuxtype})} %description FusionDirectory is a combination of system-administrator and end-user web interface, designed to handle LDAP based setups. Provided is access to posix, shadow, samba, proxy, fax, and Kerberos accounts. It is able to manage the Postfix/Cyrus server combination and can write user adapted sieve scripts. %package schema Summary: Schema definitions for the %{name} package Requires: openldap-clients %description schema Contains the schema definition files for the %{name} admin package. %package selinux Summary: FusionDirectory SELinux policy BuildArch: noarch Requires: selinux-policy-targeted Requires(post): selinux-policy-targeted BuildRequires: selinux-policy-devel %{?selinux_requires} %description selinux Custom SELinux policy module for FusionDirectory %prep %autosetup -n fd-fusiondirectory-%{version}-%{commit} # Fix Smarty path sed -i \ -e 's!/usr/share/php/smarty3/Smarty.class.php!/usr/share/php/Smarty/Smarty.class.php!' \ include/variables.inc %build mkdir selinux install -p -m 0644 %{SOURCE1} selinux/ install -p -m 0644 %{SOURCE2} selinux/ make -f %{_datadir}/selinux/devel/Makefile %{name}.pp bzip2 -9 %{name}.pp %install # Create dirs install -d -m 0755 \ %{buildroot}%{_sysconfdir}/fusiondirectory/ \ %{buildroot}%{_sysconfdir}/openldap/schema/fusiondirectory/ \ %{buildroot}%{_localstatedir}/cache/fusiondirectory/ \ %{buildroot}%{_datadir}/fusiondirectory/ \ %{buildroot}%{_datadir}/php/Smarty/plugins/ # Create spool and cache directories install -d -m 0770 \ %{buildroot}%{_localstatedir}/spool/%{name}/ \ %{buildroot}%{_localstatedir}/cache/%{name}/{template,tmp,fai}/ # Install FD assets for i in html ihtml include locale plugins setup; do cp -a $i %{buildroot}%{_datadir}/%{name}/ done # Install FD conf template install -p -m 0644 contrib/%{name}.conf \ %{buildroot}/%{_localstatedir}/cache/%{name}/template/fusiondirectory.conf # Install FD schemas cp -a contrib/openldap/* %{buildroot}%{_sysconfdir}/openldap/schema/%{name}/ # Install smarty plugins install -p -m 0644 \ contrib/smarty/plugins/block.render.php \ contrib/smarty/plugins/function.filePath.php \ contrib/smarty/plugins/function.iconPath.php \ contrib/smarty/plugins/function.msgPool.php \ %{buildroot}%{_datadir}/php/Smarty/plugins/ # Install JSs ln -s /usr/share/javascript/prototype/prototype.js \ %{buildroot}%{_datadir}/%{name}/html/include/prototype.js ln -s /usr/share/javascript/scriptaculous/scriptaculous.js \ %{buildroot}%{_datadir}/%{name}/html/include/scriptaculous.js # FIXME: table-sorter # Install *httpd configuration mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d/ install -pm 0644 contrib/apache/%{name}-apache.conf \ %{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}.conf mkdir -p %{buildroot}%{_sysconfdir}/lighttpd/conf.d/ install -pm 0644 contrib/lighttpd/%{name}-lighttpd.conf \ %{buildroot}%{_sysconfdir}/lighttpd/conf.d/%{name}.conf # Install SELinux policy install -D -m 0644 %{name}.pp.bz2 \ %{buildroot}%{_datadir}/selinux/packages/targeted/%{name}.pp.bz2 %post %{_sbindir}/%{name}-configuration-manager --update-cache --update-locales if [ $1 -gt 1 ]; then fusiondirectory-migration-manager --migrate-users --migrate-interfaces --remove-supann-root fi %postun if [ $1 -eq 0 ] ; then [ -d /var/cache/fusiondirectory ] && rm -rf /var/cache/fusiondirectory [ -d /var/spool/fusiondirectory ] && rm -rf /var/spool/fusiondirectory # Clean up FD schemas from ldap ? fi %pre selinux %selinux_relabel_pre -s targeted %post selinux %selinux_modules_install -s targeted %{_datadir}/selinux/packages/targeted/%{name}.pp.bz2 %postun selinux if [ $1 -eq 0 ]; then %selinux_modules_uninstall -s targeted %{name} fi %posttrans selinux %selinux_relabel_post -s targeted %files %license LICENSE %doc AUTHORS.md CODE_OF_CONDUCT.md CONTRIBUTING.md Changelog.md README.md %doc SECURITY.md UPGRADE.md %doc contrib/docs/fusiondirectory-oid.pdf %doc contrib/images/* %config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf %config(noreplace) %{_sysconfdir}/lighttpd/conf.d/%{name}.conf %{_datadir}/%{name}/ %{_datadir}/php/Smarty/plugins/block.render.php %{_datadir}/php/Smarty/plugins/function.msgPool.php %{_datadir}/php/Smarty/plugins/function.filePath.php %{_datadir}/php/Smarty/plugins/function.iconPath.php %dir %{_sysconfdir}/%{name}/ # %%ghost ? #%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf %defattr (640,root,apache,770) %dir %{_localstatedir}/cache/%{name}/ %dir %{_localstatedir}/cache/%{name}/template/ %{_localstatedir}/cache/%{name}/template/fusiondirectory.conf %dir %{_localstatedir}/cache/%{name}/tmp/ %dir %{_localstatedir}/cache/%{name}/fai/ %dir %{_localstatedir}/spool/%{name}/ %files schema %license LICENSE %doc AUTHORS.md Changelog %dir %{_sysconfdir}/openldap/schema/%{name}/ %{_sysconfdir}/openldap/schema/%{name}/core-fd-conf.schema %{_sysconfdir}/openldap/schema/%{name}/core-fd.schema %{_sysconfdir}/openldap/schema/%{name}/ldapns.schema %{_sysconfdir}/openldap/schema/%{name}/template-fd.schema %files selinux %{_datadir}/selinux/packages/targeted/%{name}.pp.* %ghost %{_sharedstatedir}/selinux/targeted/active/modules/200/%{name} %changelog * Tue Sep 26 2023 Xavier Bachelot - 1.4-1 - Initial specfile