summaryrefslogtreecommitdiffstats
path: root/coolwsd.spec.in
diff options
context:
space:
mode:
authorAndras Timar <andras.timar@collabora.com>2021-11-18 13:08:14 +0100
committerAndras Timar <andras.timar@collabora.com>2021-11-18 14:14:11 +0100
commitf07ff8c7e0754babe9819163fb0edeacac326caf (patch)
tree2e24c52eb95edf971399e33580d26b691528b211 /coolwsd.spec.in
parentNotebookbarBuilder.js: Set role of Menubar. (diff)
downloadonline-f07ff8c7e0754babe9819163fb0edeacac326caf.tar.gz
online-f07ff8c7e0754babe9819163fb0edeacac326caf.zip
rename: remaining lool->cool changes
Signed-off-by: Andras Timar <andras.timar@collabora.com> Change-Id: Ib7d4e804bebe52dead8d53b0e0bbaed0f08bf3d0
Diffstat (limited to 'coolwsd.spec.in')
-rw-r--r--coolwsd.spec.in222
1 files changed, 222 insertions, 0 deletions
diff --git a/coolwsd.spec.in b/coolwsd.spec.in
new file mode 100644
index 0000000000..d1eadacd6c
--- /dev/null
+++ b/coolwsd.spec.in
@@ -0,0 +1,222 @@
+# spec file for package coolwsd
+#
+# Copyright (c) 2015 Collabora
+#
+# This file is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+%if 0%{?name_suffix:1}
+Name: coolwsd%{name_suffix}
+%else
+Name: coolwsd
+%endif
+Version: @PACKAGE_VERSION@
+Release: 1%{?dist}
+Vendor: %{vendor}
+Summary: Collabora Online WebSocket Daemon
+License: EULA
+Source0: coolwsd-@PACKAGE_VERSION@.tar.gz
+BuildRequires: libcap-devel libpng-devel pam-devel gcc-c++ cppunit-devel pam-devel fontconfig make
+
+# Red Hat and CentOS
+%if 0%{?rhel} == 7
+BuildRequires: libpcap kernel-headers python36-polib python36-lxml
+%endif
+
+%if 0%{?rhel} == 8
+BuildRequires: libpcap kernel-headers python3-polib python3-lxml
+%endif
+
+# openSUSE Leap 15.x, SLES12, SLES15
+%if 0%{?suse_version}
+BuildRequires: libcap-progs linux-glibc-devel systemd-rpm-macros python3-polib python3-lxml
+%endif
+
+Requires: collaboraoffice collaboraoffice-ure collaboraofficebasis-core collaboraofficebasis-writer collaboraofficebasis-impress collaboraofficebasis-graphicfilter collaboraofficebasis-en-US collaboraofficebasis-calc collaboraofficebasis-ooofonts collaboraofficebasis-images collaboraofficebasis-draw collaboraofficebasis-extension-pdf-import collaboraofficebasis-ooolinguistic collaboraofficebasis-math
+Requires(post): coreutils grep sed cpio
+%if 0%{?rhel}
+# coolwsd dependencies
+Requires: systemd expat keyutils-libs krb5-libs libattr libcap libcom_err libgcc libpng libselinux openssh-clients openssl-libs pcre xz-libs zlib
+# Collabora Office dependencies (unfortunately Collabora Office RPM packages do not have real dependencies)
+Requires: expat fontconfig freetype libuuid bzip2-libs
+%endif
+
+%if 0%{?suse_version}
+# coolwsd dependencies
+Requires(post): libcap-progs
+Requires: systemd libopenssl1_0_0 libpcre1 libz1 libcap2 libpng12-0 %{fillup_prereq}
+# Collabora Office dependencies (unfortunately Collabora Office RPM packages do not have real dependencies)
+# cd /opt/collaboraoffice/program ; for i in soffice.bin *.so ;do ldd $i | grep '=>' | sed -e "s/^.*=> //" -e "s/ [(].*$//"; done | sort | uniq | xargs rpm -qf --qf="%{NAME}\n" | sort | uniq | grep -v collaboraoffice
+Requires: fontconfig libbz2-1 libexpat1 libfreetype6 libpng16-16 libuuid1 openssh
+%endif
+
+Provides: loolwsd
+Obsoletes: loolwsd
+
+%description
+
+%if 0%{?suse_version}
+%debug_package
+%endif
+%prep
+%setup -n coolwsd-@PACKAGE_VERSION@
+
+%build
+%configure \
+ --enable-silent-rules \
+ --with-lokit-path=bundled/include \
+ --with-lo-path=/opt/collaboraoffice \
+ --disable-setcap \
+%if 0%{?config_options:1}
+ %{config_options}
+%endif
+
+env BUILDING_FROM_RPMBUILD=yes make %{?_smp_mflags}
+
+%check
+#env BUILDING_FROM_RPMBUILD=yes make check
+
+%install
+env BUILDING_FROM_RPMBUILD=yes make install DESTDIR=%{buildroot}
+install -d -m 755 %{buildroot}/var/adm/fillup-templates
+%if 0%{?rhel}
+install -D -m 444 coolwsd.service %{buildroot}%{_unitdir}/coolwsd.service
+# systemd in RHEL 7 does not understand these options
+%if 0%{?rhel} <= 7
+sed -i "/^ReadWritePaths/d;/^ProtectControlGroups/d;/^ProtectSystem/d" %{buildroot}%{_unitdir}/coolwsd.service
+%endif
+install -D -m 644 sysconfig.coolwsd %{buildroot}/etc/sysconfig/coolwsd
+install -d -m 755 %{buildroot}/etc/httpd/conf
+install -D -m 755 etc/apache2/coolwsd.conf %{buildroot}/etc/httpd/conf
+rm %{buildroot}/etc/apache2/conf-available/coolwsd.conf
+%endif
+%if 0%{?suse_version}
+install -D -m 444 coolwsd.service %{buildroot}%{_unitdir}/coolwsd.service
+install -D -m 644 sysconfig.coolwsd %{buildroot}/var/adm/fillup-templates
+%endif
+mkdir -p %{buildroot}/etc/pam.d
+echo "auth required pam_unix.so" > %{buildroot}/etc/pam.d/coolwsd
+echo "account required pam_unix.so" >> %{buildroot}/etc/pam.d/coolwsd
+
+%files
+%defattr(-,root,root,-)
+/usr/bin/coolwsd
+/usr/bin/coolwsd-systemplate-setup
+/usr/bin/coolwsd-generate-proof-key
+/usr/bin/coolforkit
+/usr/bin/coolconvert
+/usr/bin/coolconfig
+/usr/bin/coolconfig
+/usr/bin/coolmount
+/usr/share/coolwsd/discovery.xml
+/usr/share/coolwsd/favicon.ico
+/usr/share/coolwsd/browser
+/usr/share/doc/coolwsd/README
+/usr/share/doc/coolwsd/README.vars
+/usr/share/doc/coolwsd/metrics.txt
+/usr/share/doc/coolwsd/protocol.txt
+/usr/share/doc/coolwsd/reference.md
+/usr/share/man/man1/coolwsd.1.gz
+/usr/share/man/man1/coolforkit.1.gz
+/usr/share/man/man1/coolconvert.1.gz
+/usr/share/man/man1/coolconfig.1.gz
+/usr/share/man/man1/coolwsd-systemplate-setup.1.gz
+/usr/share/man/man1/coolwsd-generate-proof-key.1.gz
+/usr/share/man/man1/coolmount.1.gz
+%{_unitdir}/coolwsd.service
+%if 0%{?rhel}
+%config(noreplace) /etc/sysconfig/coolwsd
+%endif
+%if 0%{?suse_version}
+/var/adm/fillup-templates/sysconfig.coolwsd
+%endif
+
+%config(noreplace) /etc/pam.d/coolwsd
+%config(noreplace) %attr(640, cool, root) /etc/coolwsd/coolwsd.xml
+%config /etc/coolwsd/coolkitconfig.xcu
+%config(noreplace) /etc/nginx/snippets/coolwsd.conf
+%if 0%{?suse_version} > 0
+%config(noreplace) /etc/apache2/conf-available/coolwsd.conf
+%endif
+%if 0%{?rhel} > 0
+%config(noreplace) /etc/httpd/conf/coolwsd.conf
+%endif
+
+%doc README.md
+
+%pre
+%if 0%{?suse_version}
+%service_add_pre coolwsd.service
+%endif
+
+getent group cool >/dev/null || groupadd -r cool
+getent passwd cool >/dev/null || useradd -g cool -r cool -d /opt/cool -s /bin/bash
+
+# for filename in `find /opt/cool/systemplate -type f`;do stripped=$(echo -ne $filename | sed -e "s|/opt/cool/systemplate||");rpm -qf --qf="%{NAME}\n" $stripped;done | grep -v devel | grep -v 32bit | grep -v -- -fonts | sort | uniq
+%triggerin -- expat fontconfig freetype freetype2 glibc glibc-locale kernel keyutils-libs krb5 krb5-libs libbz2-1 libcap libcap-ng libcap2 libexpat1 libfreetype6 libgcc libgcc_s1 libgcrypt libiscsi libpng libpng12 libpng12-0 libpng15-15 libpng16-16 libstdc++ libstdc++6 libuuid libuuid1 libz1 lsb nss-mdns nss-softokn-freebl pcre sssd sssd-client systemd-libs timezone tzdata zlib
+
+echo -ne "Triggered update of coolwsd systemplate..."
+
+%if 0%{?rhel} >= 7 || 0%{?suse_version} >= 1300
+systemctl is-active -q coolwsd && COOLWSD_IS_ACTIVE=1 || COOLWSD_IS_ACTIVE=0
+if [ $COOLWSD_IS_ACTIVE == "1" ]; then systemctl stop coolwsd; fi
+%endif
+
+# Figure out where LO is installed, let's hope it is not a mount point
+# Create a directory for coolwsd on the same file system
+loroot=/opt/collaboraoffice
+coolparent=`cd ${loroot} && cd .. && /bin/pwd`
+
+rm -rf ${coolparent}/cool
+mkdir -p ${coolparent}/cool/child-roots
+chown cool:cool ${coolparent}/cool
+chown cool:cool ${coolparent}/cool/child-roots
+
+fc-cache ${loroot}/share/fonts/truetype
+coolwsd-systemplate-setup ${coolparent}/cool/systemplate ${loroot} >/dev/null 2>&1
+coolwsd-generate-proof-key >/dev/null 2>&1
+
+%if 0%{?rhel} || 0%{?suse_version}
+if [ $COOLWSD_IS_ACTIVE == "1" ]; then systemctl start coolwsd; fi
+%endif
+
+echo " Done."
+
+%post
+setcap cap_fowner,cap_chown,cap_mknod,cap_sys_chroot=ep /usr/bin/coolforkit
+setcap cap_sys_admin=ep /usr/bin/coolmount
+
+%if 0%{?rhel} >= 7
+%systemd_post coolwsd.service
+%else
+%if 0%{?suse_version}
+%service_add_post coolwsd.service
+%{fillup_only -n coolwsd}
+%endif
+%endif
+
+
+%preun
+%if 0%{?rhel} >= 7
+%systemd_preun coolwsd.service
+%else
+%if 0%{?suse_version}
+%service_del_preun coolwsd.service
+%endif
+%endif
+
+%postun
+%if 0%{?rhel} >= 7
+%systemd_postun coolwsd.service
+%else
+%if 0%{?suse_version}
+%service_del_postun coolwsd.service
+%endif
+%endif
+
+%changelog
+* Mon Aug 03 2015 Mihai Varga
+- added the cronjob
+* Tue May 19 2015 Tor Lillqvist
+- Initial RPM release