seafile/seafile.spec

245 lines
8.4 KiB
RPMSpec
Raw Permalink Normal View History

%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 <silvan.calarco@mambasoft.it>
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 <silvan.calarco@mambasoft.it> 3.1.4-5mamba
- move seaf-daemon to seafile and add requirements to work as client installed alone
* Wed Aug 27 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 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 <silvan.calarco@mambasoft.it> 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 <silvan.calarco@mambasoft.it> 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 <silvan.calarco@mambasoft.it> 3.1.4-1mamba
- package created using the webbuild interface