%define seafile_groupid 65435 %define seafile_userid 65435 Name: seafile Version: 3.1.4 Release: 5mamba Summary: A next-generation open source cloud storage system with advanced support for file syncing Group: Applications/Web Vendor: openmamba Distribution: openmamba Packager: Silvan Calarco URL: http://seafile.com/ ## GITSOURCE https://github.com/haiwen/seafile.git v3.1.4 Source: https://github.com/haiwen/seafile.git/v%{version}/seafile-%{version}.tar.bz2 Source1: seafile-seafile.service Source2: seafile-seahub.service Source3: seafile-client.service License: GPL ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel BuildRequires: libccnet-devel BuildRequires: libevent-devel BuildRequires: libffi-devel BuildRequires: libglib-devel BuildRequires: libjansson-devel BuildRequires: libopenssl-devel BuildRequires: libpython-devel BuildRequires: libsearpc-devel BuildRequires: libselinux-devel BuildRequires: libsqlite-devel BuildRequires: libuuid-devel BuildRequires: libz-devel ## AUTOBUILDREQ-END BuildRequires: libzdb-devel BuildRequires: libevhtp-devel Requires: ccnet Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} Requires: python-ccnet Requires: python-%{name} = %{?epoch:%epoch:}%{version}-%{release} BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Seafile is a next-generation open source cloud storage system with advanced support for file syncing, privacy protection and teamwork. Collections of files are called libraries, and each library can be synced separately. A library can be encrypted with a user chosen password. This password is not stored on the server, so even the server admin cannot view a file's contents. Seafile allows users to create groups with file syncing, wiki, and discussion to enable easy collaboration around documents within a team. %package server Group: System/Servers Summary: Server package for %{name} Requires: python-%{name} = %{?epoch:%epoch:}%{version}-%{release} Requires: ccnet Requires: seahub %description server Seafile is a next-generation open source cloud storage system with advanced support for file syncing, privacy protection and teamwork. Collections of files are called libraries, and each library can be synced separately. A library can be encrypted with a user chosen password. This password is not stored on the server, so even the server admin cannot view a file's contents. Seafile allows users to create groups with file syncing, wiki, and discussion to enable easy collaboration around documents within a team. This is the server package. %package -n lib%{name} Group: System/Libraries Summary: Shared libraries for %{name} %description -n lib%{name} This package contains shared libraries for %{name}. %package -n lib%{name}-devel Group: Development/Libraries Summary: Development files for %{name} Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} Requires: pkg-config %description -n lib%{name}-devel This package contains libraries and header files for developing applications that use %{name}. %package -n python-%{name} Group: System/Libraries Summary: Python bindings to %{name} Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} Requires: python-ccnet Requires: python-setuptools Requires: python-simplejson Requires: python-Pillow Requires: python-MySQL %description -n python-%{name} This package contains python bindings to %{name}. %debug_package %prep %setup -q #-D -T %build #:<< ___EOF ./autogen.sh %configure \ --enable-server \ --enable-client \ --enable-fuse \ --enable-python \ --enable-console %make -j1 %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %makeinstall install -d -m0755 %{buildroot}%{_datadir}/seafile/seafile-server cp scripts/{check_init_admin.py,reset-admin.sh,seaf-fuse.sh,seaf-gc.sh,seafile.sh,\ seahub.sh,setup-seafile-mysql.sh,setup-seafile-mysql.py,reset-admin.sh,seaf-fuse.sh,\ setup-seafile.sh} \ %{buildroot}%{_datadir}/seafile/seafile-server install -d -m0755 %{buildroot}%{_datadir}/seafile/seafile-server/seafile/bin install -d -m0755 %{buildroot}%{_datadir}/seafile/seafile-server/seafile/%{_lib} for f in fileserver seaf-fuse seaf-server seafile-controller seafserv-tool \ seaf-fsck seaf-migrate seaf-server-init seafserv-gc; do mv %{buildroot}%{_bindir}/$f %{buildroot}%{_datadir}/seafile/seafile-server/seafile/bin/ ln -s %{_datadir}/seafile/seafile-server/seafile/bin/$f %{buildroot}%{_bindir}/$f done for f in ccnet-init ccnet-server; do ln -s %{_bindir}/$f %{buildroot}%{_datadir}/seafile/seafile-server/seafile/bin/$f done install -d -m0755 %{buildroot}%{_datadir}/seafile/seafile-server/runtime cp scripts/seahub.conf %{buildroot}%{_datadir}/seafile/seafile-server/runtime/ cp -a scripts/upgrade %{buildroot}%{_datadir}/seafile/seafile-server/ rm -rf %{buildroot}%{_datadir}/seafile/seafile-server/upgrade/win32 install -D -m0644 %{SOURCE1} %{buildroot}%{_unitdir}/seafile.service install -D -m0644 %{SOURCE2} %{buildroot}%{_unitdir}/seahub.service install -D -m0644 %{SOURCE3} %{buildroot}%{_unitdir}/seafile-client.service %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %pre if [ $1 -ge 1 ]; then /usr/sbin/groupadd seafile -g %{seafile_groupid} 2>/dev/null /usr/sbin/useradd -u %{seafile_userid} -c 'Seafile user' -d %{_datadir}/seafile/seafile-server -g seafile \ -s /bin/false seafile 2>/dev/null fi : %post if [ $1 -ge 1 ]; then systemctl -q daemon-reload fi : %preun if [ $1 -eq 0 ]; then systemctl -q daemon-reload /usr/sbin/userdel seafile 2>/dev/null /usr/sbin/groupdel seafile 2>/dev/null fi : %post -n lib%{name} -p /sbin/ldconfig %postun -n lib%{name} -p /sbin/ldconfig %files %defattr(-,root,root) %{_bindir}/seaf-cli %{_bindir}/seaf-daemon %{_bindir}/seafile %{_unitdir}/seafile-client.service %{_mandir}/man1/ccnet.1* %{_mandir}/man1/seaf-cli.1* %{_mandir}/man1/seafile-applet.1* %files server %defattr(-,root,root) %{_bindir}/fileserver %{_bindir}/seaf-fsck %{_bindir}/seaf-fuse %{_bindir}/seaf-migrate %{_bindir}/seaf-server %{_bindir}/seaf-server-init %{_bindir}/seafile-admin %{_bindir}/seafile-controller %{_bindir}/seafserv-gc %{_bindir}/seafserv-tool %attr(-,seafile,seafile) %dir %{_datadir}/seafile %dir %{_datadir}/seafile/seafile-server %{_datadir}/seafile/seafile-server/*.sh %{_datadir}/seafile/seafile-server/*.py %attr(-,seafile,seafile) %dir %{_datadir}/seafile/seafile-server/runtime %{_datadir}/seafile/seafile-server/runtime/seahub.conf %dir %{_datadir}/seafile/seafile-server/seafile %dir %{_datadir}/seafile/seafile-server/seafile/bin %{_datadir}/seafile/seafile-server/seafile/bin/* %dir %{_datadir}/seafile/seafile-server/seafile/%{_lib} #%{_datadir}/seafile/seafile-server/* %dir %{_datadir}/seafile/seafile-server/upgrade %{_datadir}/seafile/seafile-server/upgrade/* %{_unitdir}/seafile.service %{_unitdir}/seahub.service %{_mandir}/man1/seaf-daemon.1* %files -n lib%{name} %defattr(-,root,root) %{_libdir}/libseafile.so.* %files -n lib%{name}-devel %defattr(-,root,root) %dir %{_includedir}/seafile %{_includedir}/seafile/*.h %{_libdir}/libseafile.a %{_libdir}/libseafile.la %{_libdir}/libseafile.so %{_libdir}/pkgconfig/libseafile.pc %doc README.markdown %files -n python-%{name} %defattr(-,root,root) %dir %{python_sitearch}/seafile %{python_sitearch}/seafile/*.py* %dir %{python_sitearch}/seaserv %{python_sitearch}/seaserv/*.py* %changelog * Wed Aug 27 2014 Silvan Calarco 3.1.4-5mamba - move seaf-daemon to seafile and add requirements to work as client installed alone * Wed Aug 27 2014 Silvan Calarco 3.1.4-4mamba - move server bin files from %{_bindir} to seafile-server/seafile/bin dir for seafile-controller to work - fix permissions of %{_datadir}/seafile/seafile-server/runtime for seahub.sh to work - seahub.service: set working directory * Sat Aug 09 2014 Silvan Calarco 3.1.4-3mamba - rebuild with --enable-server and other options - organize %{datadir}/seafile and add requirements to make server basically work * Sat Aug 09 2014 Silvan Calarco 3.1.4-2mamba - added systemd service, install scripts and create seafile user and group - added seafile-server package * Tue Aug 05 2014 Silvan Calarco 3.1.4-1mamba - package created using the webbuild interface