diff --git a/unison240.spec b/unison240.spec index dbd07e2..dffefd0 100644 --- a/unison240.spec +++ b/unison240.spec @@ -1,5 +1,5 @@ -%global _use_internal_dependency_generator 0 +%global _use_internal_dependency_generator 1 %global __find_requires /usr/lib/rpm/ocaml-find-requires.sh %global __find_provides /usr/lib/rpm/ocaml-find-provides.sh @@ -28,7 +28,7 @@ Name: unison%{ver_compat_name} Version: %{ver_compat}%{ver_noncompat} -Release: 3%{?dist} +Release: 4%{?dist} Summary: Multi-master File synchronization tool @@ -42,24 +42,17 @@ Source2: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/unison-%{ #Add documentation, already fixed in trunk (upstream) Patch1: %{name}-missing-documentation.patch -ExcludeArch: sparc64 s390 s390x +# can't make this noarch (rpmbuild fails about unpackaged debug files) +# BuildArch: noarch +ExcludeArch: sparc64 s390 s390x BuildRequires: ocaml -BuildRequires: ocaml-lablgtk-devel -BuildRequires: desktop-file-utils -# for lablgtk -BuildRequires: gtk2-devel + +Requires: %{name}-ui = %{version}-%{release} Requires(posttrans): %{_sbindir}/alternatives Requires(postun): %{_sbindir}/alternatives -# Enforce the switch from unison to unisonN.NN -Obsoletes: unison < 2.27.57-3 -# Let users just install "unison" if they want -%if 0%{?provide_unison} -Provides: unison = %{version}-%{release} -%endif - %description Unison is a multi-master file-synchronization tool. It allows two replicas of a collection of files and directories to be stored on @@ -72,6 +65,41 @@ will never be upgraded to a different major version. Other packages exist if you require a different major version. +%package gtk + +Summary: Multi-master File synchronization tool - gtk interface + +BuildRequires: ocaml-lablgtk-devel +BuildRequires: gtk2-devel +BuildRequires: desktop-file-utils + +Requires: %name = %{version}-%{release} + +Provides: %{name}-ui = %{version}-%{release} + +# Enforce the switch from unison to unisonN.NN +Obsoletes: unison < 2.27.57-3 +# Let users just install "unison" if they want +%if 0%{?provide_unison} +Provides: unison = %{version}-%{release} +%endif + +%description gtk +This package provides the graphical version of unison with gtk2 interface. + + +%package text + +Summary: Multi-master File synchronization tool - text interface + +Requires: %name = %{version}-%{release} + +Provides: %{name}-ui = %{version}-%{release} + +%description text +This package provides the textual version of unison without graphical interface. + + %prep %setup -q -n unison-%{version} @@ -80,7 +108,7 @@ exist if you require a different major version. cat > %{name}.desktop < breaks the build. unset MAKEFLAGS +# we compile 2 versions: gtk2 ui and text ui make NATIVE=true UISTYLE=gtk2 THREADS=true +mv unison unison-gtk + +make NATIVE=true UISTYLE=text THREADS=true +mv unison unison-text %install mkdir -p %{buildroot}%{_bindir} -cp -a unison %{buildroot}%{_bindir}/unison-%{ver_compat} + +cp -a unison-gtk %{buildroot}%{_bindir}/unison-gtk-%{ver_compat} +# symlink for compatibility +ln -s %{_bindir}/unison-gtk-%{ver_compat} %{buildroot}%{_bindir}/unison-%{ver_compat} + +cp -a unison-text %{buildroot}%{_bindir}/unison-text-%{ver_compat} + mkdir -p %{buildroot}%{_datadir}/pixmaps cp -a %{SOURCE1} %{buildroot}%{_datadir}/pixmaps/%{name}.png desktop-file-install --dir %{buildroot}%{_datadir}/applications \ %{name}.desktop -%posttrans + +%posttrans gtk alternatives \ --install \ %{_bindir}/unison \ @@ -118,23 +158,50 @@ alternatives \ %{_bindir}/unison-%{ver_compat} \ %{ver_priority} - -%postun +%postun gtk if [ $1 -eq 0 ]; then alternatives --remove unison \ %{_bindir}/unison-%{ver_compat} fi -exit 0 + + +%posttrans text +alternatives \ + --install \ + %{_bindir}/unison \ + unison \ + %{_bindir}/unison-text-%{ver_compat} \ + %{ver_priority} + + +%postun text +if [ $1 -eq 0 ]; then + alternatives --remove unison \ + %{_bindir}/unison-text-%{ver_compat} +fi %files %doc COPYING NEWS README unison-manual.html + + +%files gtk +%{_bindir}/unison-gtk-%{ver_compat} %{_bindir}/unison-%{ver_compat} %{_datadir}/applications/%{name}.desktop %{_datadir}/pixmaps/%{name}.png +%files text +%{_bindir}/unison-text-%{ver_compat} + + %changelog +* Mon Sep 09 2013 Gregor Tätzner - 2.40.102-4 +- ship 2 versions of unison: text only and gtk2 user interface +- move binaries into subpackages +- enable dependency generator + * Fri Feb 15 2013 Fedora Release Engineering - 2.40.102-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild