# https://fedoraproject.org/wiki/Packaging:Haskell %bcond_with tests %bcond_without static %global binname cabal Name: cabal-install # part of haskell-platform Version: 1.18.1.0 Release: 1%{?dist} Summary: Command-line interface for Cabal and Hackage License: BSD URL: http://hackage.haskell.org/package/%{name} Source0: http://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz Source1: cabal-install.sh Patch0: cabal-install-quieter-selfupgrade.patch Patch1: cabal-install-no-network-uri.patch BuildRequires: ghc-Cabal-devel BuildRequires: ghc-rpm-macros # Begin cabal-rpm deps: BuildRequires: ghc-HTTP-devel BuildRequires: ghc-array-devel BuildRequires: ghc-bytestring-devel BuildRequires: ghc-containers-devel BuildRequires: ghc-directory-devel BuildRequires: ghc-filepath-devel BuildRequires: ghc-mtl-devel BuildRequires: ghc-network-devel BuildRequires: ghc-pretty-devel BuildRequires: ghc-process-devel BuildRequires: ghc-random-devel BuildRequires: ghc-stm-devel BuildRequires: ghc-time-devel BuildRequires: ghc-unix-devel BuildRequires: ghc-zlib-devel %if %{with tests} BuildRequires: ghc-HUnit-devel BuildRequires: ghc-QuickCheck-devel BuildRequires: ghc-test-framework-devel BuildRequires: ghc-test-framework-hunit-devel BuildRequires: ghc-test-framework-quickcheck2-devel %endif # End cabal-rpm deps Requires: ghc-compiler # for /etc/bash_completion.d/ Requires: filesystem # for /etc/profile.d/ Requires: setup Obsoletes: cabal-dev < 0.9.2-5 %if %{with static} Requires: %{name}-common = %{version}-%{release} Requires(post): %{_sbindir}/update-alternatives Requires(postun): %{_sbindir}/update-alternatives %endif %description The 'cabal' command-line program simplifies the process of managing Haskell software by automating the fetching, configuration, compilation and installation of Haskell libraries and programs from Hackage. %if %{with static} %package common Summary: Common files for %{name} %description common This provides the common files for %{name}. %package static Summary: Static Haskell build Requires: %{name}-common = %{version}-%{release} Requires(post): %{_sbindir}/update-alternatives Requires(postun): %{_sbindir}/update-alternatives %description static This provides a build with Haskell libraries statically linked. %endif %prep %setup -q %patch0 -p1 -b .orig %patch1 -p1 -b .orig cabal-tweak-flag network-uri False %build %if %{with static} %define ghc_without_dynamic 1 %ghc_bin_build mv dist/build/%{binname}/%{binname}{,.static} %undefine ghc_without_dynamic %endif %ghc_bin_build %install %ghc_bin_install %if %{with static} mv %{buildroot}%{_bindir}/%{binname}{,.dynamic} install dist/build/%{binname}/%{binname}.static %{buildroot}%{_bindir} touch %{buildroot}%{_bindir}/%{binname} rm %{buildroot}%{_pkgdocdir}/LICENSE %endif mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d cp -p bash-completion/cabal $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d install -pm 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d %check %if %{with tests} %cabal test %endif %if %{with static} # avoid rpm ghost keeping pre-alternatives binary around %pre if [ $1 -gt 1 ] ; then if [ -f %{_bindir}/%{binname} -a ! -L %{_bindir}/%{binname} ]; then rm %{_bindir}/%{binname} fi fi %post %{_sbindir}/update-alternatives --install %{_bindir}/%{binname} \ %{name} %{_bindir}/%{binname}.dynamic 70 %postun if [ $1 -eq 0 ] ; then %{_sbindir}/update-alternatives --remove %{name} %{_bindir}/%{binname}.dynamic fi # avoid rpm ghost keeping pre-alternatives binary around %pre static if [ $1 -gt 1 ] ; then if [ -f %{_bindir}/%{binname} -a ! -L %{_bindir}/%{binname} ]; then rm %{_bindir}/%{binname} fi fi %post static %{_sbindir}/update-alternatives --install %{_bindir}/%{binname} \ %{name} %{_bindir}/%{binname}.static 30 %postun static if [ $1 -eq 0 ] ; then %{_sbindir}/update-alternatives --remove %{name} %{_bindir}/%{binname}.static fi %endif %files %if %{with static} %ghost %{_bindir}/%{binname} %{_bindir}/%{binname}.dynamic %else %doc LICENSE README %{_bindir}/cabal %config(noreplace) %{_sysconfdir}/bash_completion.d/cabal %config(noreplace) %{_sysconfdir}/profile.d/cabal-install.sh %endif %if %{with static} %files common %doc LICENSE README %config(noreplace) %{_sysconfdir}/bash_completion.d/cabal %config(noreplace) %{_sysconfdir}/profile.d/cabal-install.sh %files static %ghost %{_bindir}/%{binname} %{_bindir}/%{binname}.static %endif %changelog * Wed May 13 2015 Jens Petersen - 1.18.1.0-1 - security version update for upload command * Thu Apr 2 2015 Jens Petersen - 1.18.0.8-1 - update to 1.18.0.8 * Thu Aug 7 2014 Jens Petersen - 1.18.0.5-1 - update to 1.18.0.5 - obsolete cabal-dev - add static and common subpackages * Tue Jul 8 2014 Jens Petersen - 1.16.0.2-35 - f21 rebuild * Fri Apr 18 2014 Jens Petersen - 1.16.0.2-34 - bump release over haskell-platform * Thu Apr 17 2014 Jens Petersen - 1.16.0.2-32 - mark bash_completion.d and profile.d files as config (#1069062) - require filesystem and setup to own the sysconfig dirs (#1069062) * Mon Feb 24 2014 Jens Petersen - 1.16.0.2-31 - update to 1.16.0.2 - split out of haskell-platform (#1069062) - only show cabal-install upgrade notice for verbose * Tue May 8 2012 Jens Petersen - 0.14.0-1 - update to 0.14.0 release * Tue Mar 20 2012 Jens Petersen - 0.13.3-0.1 - update to latest darcs * Thu Jan 12 2012 Fedora Release Engineering - 0.10.2-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Wed Dec 28 2011 Jens Petersen - 0.10.2-6 - rebuild for haskell-platform-2011.4.0.0 * Fri Dec 16 2011 Jens Petersen - 0.10.2-5 - bring back requires ghc-compiler (Stanislav Ochotnicky, #760461) * Thu Oct 20 2011 Marcela Mašláňová - 0.10.2-4.2 - rebuild with new gmp without compat lib * Mon Oct 10 2011 Peter Schiffer - 0.10.2-4.1 - rebuild with new gmp * Tue Jun 21 2011 Jens Petersen - 0.10.2-4 - ghc_arches replaces ghc_excluded_archs * Mon Jun 20 2011 Jens Petersen - 0.10.2-3 - BR ghc-Cabal-devel and use ghc_excluded_archs - drop ghc requires to allow local ghc * Wed May 25 2011 Jens Petersen - 0.10.2-2 - add ppc64 * Fri Mar 11 2011 Jens Petersen - 0.10.2-1 - update to 0.10.2 * Thu Mar 10 2011 Fabio M. Di Nitto - 0.9.6-0.2 - Enable build on sparcv9 * Tue Feb 15 2011 Jens Petersen - 0.9.6-0.1 - update to 0.9.6 pre snapshot * Tue Feb 15 2011 Jens Petersen - 0.9.5-0.5 - rebuild for haskell-platform-2011.1 updates * Tue Feb 08 2011 Fedora Release Engineering - 0.9.5-0.4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Sun Jan 23 2011 Jens Petersen - 0.9.5-0.3 - update to cabal2spec-0.22.4 - BR ghc-devel * Sun Dec 5 2010 Jens Petersen - 0.9.5-0.2 - rebuild with HTTP-4000.1.1 * Thu Nov 25 2010 Jens Petersen - 0.9.5-0.1 - update to current 0.9.5 snapshot * Fri Jul 16 2010 Jens Petersen - 0.8.2-1 - update to 0.8.2 for haskell-platform-2010.2.0.0 * Sun Jun 27 2010 Jens Petersen - 0.8.0-5 - sync cabal2spec-0.22.1 * Wed May 19 2010 Jens Petersen - 0.8.0-4 - append ~/.cabal/bin to PATH (if dir exists) with new /etc/profile.d/cabal-install.sh (#509699) * Tue Apr 27 2010 Jens Petersen - 0.8.0-3 - rebuild against ghc-6.12.2 * Tue Mar 23 2010 Jens Petersen - 0.8.0-2 - rebuild against HTTP-4000.0.9 for haskell-platform-2010.1.0.0 * Mon Jan 11 2010 Jens Petersen - 0.8.0-1 - update to 0.8.0 for ghc-6.12.1 - add dynamic bcond - drop redundant buildroot and its install cleaning * Wed Sep 16 2009 Jens Petersen - 0.6.2-6 - really rebuild * Fri Jul 24 2009 Fedora Release Engineering - 0.6.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Sun May 17 2009 Jens Petersen - 0.6.2-4 - buildrequires ghc-rpm-macros (cabal-0.16) * Sun Apr 26 2009 Jens Petersen - 0.6.2-3 - rebuild against ghc-6.10.2 * Fri Feb 27 2009 Jens Petersen - 0.6.2-2 - update for cabal2spec-0.11: - use global - fix source url - add ix86 and alpha archs * Mon Feb 23 2009 Jens Petersen - 0.6.2-1 - update to 0.6.2 release * Mon Feb 9 2009 Jens Petersen - 0.6.0-3 - fix source url * Wed Jan 7 2009 Jens Petersen - 0.6.0-2 - add bash completion file - update cabal build macro * Tue Nov 11 2008 Jens Petersen - 0.6.0-1 - initial package for Fedora