rpms/ghc/devel cabal-bin-template.spec.in, NONE, 1.1 cabal-binlib-template.spec.in, NONE, 1.1 cabal-lib-template.spec.in, NONE, 1.1 cabal2spec, 1.1, 1.2 ghc.spec, 1.61, 1.62 cabal-lib-template.spec, 1.2, NONE

Jens Petersen petersen at fedoraproject.org
Tue Nov 25 09:15:49 UTC 2008


Author: petersen

Update of /cvs/extras/rpms/ghc/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv29101

Modified Files:
	cabal2spec ghc.spec 
Added Files:
	cabal-bin-template.spec.in cabal-binlib-template.spec.in 
	cabal-lib-template.spec.in 
Removed Files:
	cabal-lib-template.spec 
Log Message:
- add support for bin and binlib packages to cabal2spec script
  and only grep .cabal files for exposed-module/executable
  - output bin and/or lib status too




--- NEW FILE cabal-bin-template.spec.in ---
# ghc does not emit debug information
%define debug_package %{nil}

Name:           @PACKAGE@
Version:        @VERSION@
Release:        1%{?dist}
Summary:        *FIXME*

Group:          *FIXME*
License:        BSD?
URL:            http://hackage.haskell.org/cgi-bin/hackage-scripts/package/%{name}
Source0:        http://hackage.haskell.org/packages/archive/%{name}/%{version}/%{name}-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
ExclusiveArch:  i386 x86_64 ppc

BuildRequires:  ghc

%description
*FIXME*


%prep
%setup -q


%build
%cabal_configure
%cabal_build


%install
rm -rf $RPM_BUILD_ROOT
%cabal_install


%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/%{name}


%changelog
* @DATE@ @PACKAGER@ <@EMAIL@> - @VERSION at -1
- initial packaging for Fedora created by cabal2spec


--- NEW FILE cabal-binlib-template.spec.in ---
%define ghc_version @GHC_VERSION@

%define pkg_libdir %{_libdir}/ghc-%{ghc_version}/%{name}-%{version}
%define pkg_docdir %{_docdir}/ghc/libraries/%{name}

%define build_prof 1
%define build_doc 1

# ghc does not emit debug information
%define debug_package %{nil}

Name:           @PACKAGE@
Version:        @VERSION@
Release:        1%{?dist}
Summary:        *FIXME*

Group:          *FIXME*
License:        BSD?
URL:            http://hackage.haskell.org/cgi-bin/hackage-scripts/package/%{name}
Source0:        http://hackage.haskell.org/packages/archive/%{name}/%{version}/%{name}-%{version}.tar.gz
Provides:       %{name}-devel = %{version}-%{release}
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# ghc has only been bootstrapped on the following archs:
ExclusiveArch:  i386 x86_64 ppc
BuildRequires:  ghc = %{ghc_version}
%if %{build_prof}
BuildRequires:  ghc-prof = %{ghc_version}
%endif

%description
*FIXME*


%package -n ghc-%{name}
Summary:        Haskell %{name} library *FIXME*
Group:          Development/Libraries
Provides:       ghc-%{name}-devel = %{version}-%{release}
Requires:       ghc = %{ghc_version}
Requires(post): ghc = %{ghc_version}
Requires(preun): ghc = %{ghc_version}
Requires(postun): ghc = %{ghc_version}

%description -n ghc-%{name}
Haskell %{name} library for ghc-%{ghc_version}. *FIXME*


%if %{build_prof}
%package prof
Summary: Profiling libraries for ghc-%{name}
Group: Development/Libraries
Requires: ghc-prof = %{ghc_version}

%description prof
This package contains profiling libraries for ghc %{ghc_version}.
%endif


%prep
%setup -q -n %{name}-%{version}


%build
%cabal_configure --ghc \
%if %{build_prof}
  -p
%else
%{nil}
%endif
%cabal_build
%if %{build_doc}
%cabal_haddock
%endif
%ghc_gen_scripts


%install
rm -rf $RPM_BUILD_ROOT
%cabal_install
%ghc_install_scripts
%ghc_gen_filelists %{name}


%clean
rm -rf $RPM_BUILD_ROOT


%post 
%ghc_postinst_script
%if %{build_doc}
%ghc_reindex_haddock
%endif


%preun 
%ghc_preun_script


%postun
if [ "$1" -eq 0 ] ; then
%if %{build_doc}
  %ghc_reindex_haddock
%endif
fi


%files -f %{name}.files
%defattr(-,root,root,-)
%doc LICENSE
%if %{build_doc}
%{pkg_docdir}
%endif


%if %{build_prof}
%files prof -f %{name}-prof.files
%defattr(-,root,root,-)
%endif


%changelog
* @DATE@ @PACKAGER@ <@EMAIL@> - @VERSION at -1
- initial packaging for Fedora created by cabal2spec


--- NEW FILE cabal-lib-template.spec.in ---
%define pkg_name @PACKAGE@
%define ghc_version @GHC_VERSION@

%define pkg_libdir %{_libdir}/ghc-%{ghc_version}/%{pkg_name}-%{version}
%define pkg_docdir %{_docdir}/ghc/libraries/%{pkg_name}

%define build_prof 1
%define build_doc 1

# ghc does not emit debug information
%define debug_package %{nil}

Name:           ghc-%{pkg_name}
Version:        @VERSION@
Release:        1%{?dist}
Summary:        Haskell %{pkg_name} library *FIXME*

Group:          Development/Libraries
License:        BSD?
URL:            http://hackage.haskell.org/cgi-bin/hackage-scripts/package/%{pkg_name}
Source0:        http://hackage.haskell.org/packages/archive/%{pkg_name}/%{version}/%{pkg_name}-%{version}.tar.gz
Provides:       %{name}-devel = %{version}-%{release}
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# ghc has only been bootstrapped on the following archs:
ExclusiveArch:  i386 x86_64 ppc
BuildRequires:  ghc = %{ghc_version}
%if %{build_prof}
BuildRequires:  ghc-prof = %{ghc_version}
%endif
Requires:       ghc = %{ghc_version}
Requires(post): ghc = %{ghc_version}
Requires(preun): ghc = %{ghc_version}
Requires(postun): ghc = %{ghc_version}

%description
Haskell %{pkg_name} library for ghc-%{ghc_version}. *FIXME*


%if %{build_prof}
%package prof
Summary: Profiling libraries for %{name}
Group: Development/Libraries
Requires: ghc-prof = %{ghc_version}

%description prof
This package contains profiling libraries for ghc %{ghc_version}.
%endif


%prep
%setup -q -n %{pkg_name}-%{version}


%build
%cabal_configure --ghc \
%if %{build_prof}
  -p
%else
%{nil}
%endif
%cabal_build
%if %{build_doc}
%cabal_haddock
%endif
%ghc_gen_scripts


%install
rm -rf $RPM_BUILD_ROOT
%cabal_install
%ghc_install_scripts
%ghc_gen_filelists %{name}


%clean
rm -rf $RPM_BUILD_ROOT


%post 
%ghc_postinst_script
%if %{build_doc}
%ghc_reindex_haddock
%endif


%preun 
%ghc_preun_script


%postun
if [ "$1" -eq 0 ] ; then
%if %{build_doc}
  %ghc_reindex_haddock
%endif
fi


%files -f %{name}.files
%defattr(-,root,root,-)
%doc LICENSE
%if %{build_doc}
%{pkg_docdir}
%endif


%if %{build_prof}
%files prof -f %{name}-prof.files
%defattr(-,root,root,-)
%endif


%changelog
* @DATE@ @PACKAGER@ <@EMAIL@> - @VERSION at -1
- initial packaging for Fedora created by cabal2spec


Index: cabal2spec
===================================================================
RCS file: /cvs/extras/rpms/ghc/devel/cabal2spec,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cabal2spec	25 Nov 2008 02:52:10 -0000	1.1
+++ cabal2spec	25 Nov 2008 09:15:17 -0000	1.2
@@ -1,23 +1,43 @@
 #!/bin/sh
 
-[ $# -ne 1 ] && echo "Usage: $0 lib-ver[.tar.gz]" && exit 1
+set -e
 
-INPUT=$1
+[ $# -ne 1 -o ! -r $1 ] && echo "Usage: $0 hackage-version.tar.gz" && exit 1
 
-case $INPUT in
-    */*) INPUT=$(basename $INPUT) ;;
-esac
+HACKAGE=$1
 
-INPUT=$(echo $INPUT | sed -e "s/.tar.gz//")
-
-VERSION=$(echo $INPUT | sed -e "s/[A-Za-z-]*-//")
+INPUT=$(basename $HACKAGE .tar.gz)
 
+VERSION=$(echo $INPUT | sed -e "s/.*-//")
 NAME=$(echo $INPUT | sed -e "s/-$VERSION//")
 
-[ -r ghc-$NAME.spec ] && echo "ghc-$NAME.spec already exists!" && exit 1
+TMPDIR=$(mktemp -d)
+CURRENT_DIR=$PWD
+cd $TMPDIR
+tar zxf $HACKAGE "*.cabal"
+
+if grep -qi exposed-modules: */*.cabal; then
+  HAS_LIB=yes
+fi
+
+if grep -qi executable */*.cabal; then
+  HAS_BIN=yes
+fi
+cd -
+rm -rf $TMPDIR
+
+if [ "$HAS_LIB" -a ! "$HAS_BIN" ]; then
+  PREFIX=ghc-
+fi
+
+SPECFILE=$PREFIX$NAME.spec
+
+[ -r $SPECFILE ] && echo "$SPECFILE already exists!" && exit 1
+
+cp /usr/share/ghc/cabal-${HAS_BIN:+bin}${HAS_LIB:+lib}-template.spec.in $SPECFILE
 
-cp /usr/share/ghc/cabal-lib-template.spec ghc-$NAME.spec
+echo "created $SPECFILE (${HAS_BIN:+bin}${HAS_LIB:+lib})"
 
-echo "created ghc-$NAME.spec"
+DATE=$(env LANG=C date +"%a %b %e %Y")
 
-sed -i -e "s/@PACKAGE@/$NAME/" -e "s/@GHC_VERSION@/$(ghc --numeric-version)/" -e "s/@VERSION@/$VERSION/" -e "s/@DATE@/`date +\"%a %b %e %Y\"`/" ghc-$NAME.spec
+sed -i -e "s/@PACKAGE@/$NAME/" -e "s/@GHC_VERSION@/$(ghc --numeric-version)/" -e "s/@VERSION@/$VERSION/" -e "s/@DATE@/$DATE/" $SPECFILE


Index: ghc.spec
===================================================================
RCS file: /cvs/extras/rpms/ghc/devel/ghc.spec,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- ghc.spec	25 Nov 2008 02:52:10 -0000	1.61
+++ ghc.spec	25 Nov 2008 09:15:17 -0000	1.62
@@ -25,8 +25,10 @@
 Source0:	http://www.haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.bz2
 Source1:	http://www.haskell.org/ghc/dist/%{version}/ghc-%{version}-src-extralibs.tar.bz2
 Source2:	ghc-rpm-macros.ghc
-Source3:	cabal-lib-template.spec
-Source4:	cabal2spec
+Source3:	cabal2spec
+Source4:	cabal-bin-template.spec.in
+Source5:	cabal-lib-template.spec.in
+Source6:	cabal-binlib-template.spec.in
 URL:		http://haskell.org/ghc/
 Requires:	gcc, gmp-devel, libedit-devel
 Requires(post): policycoreutils
@@ -130,11 +132,11 @@
 cp -p %{SOURCE2} ${RPM_BUILD_ROOT}/%{_sysconfdir}/rpm/macros.ghc
 
 # spec templating
-# cabal-lib-template.spec
-mkdir -p ${RPM_BUILD_ROOT}/%{_datadir}/ghc
-cp -p %{SOURCE3} ${RPM_BUILD_ROOT}/%{_datadir}/ghc/
 # cabal2spec
-install -m 0755 -p %{SOURCE4} ${RPM_BUILD_ROOT}/%{_bindir}
+install -m 0755 -p %{SOURCE3} ${RPM_BUILD_ROOT}/%{_bindir}
+# templates for bin, lib and binlib cabal hackages
+mkdir -p ${RPM_BUILD_ROOT}/%{_datadir}/ghc
+cp -p %{SOURCE4} %{SOURCE5} %{SOURCE6} ${RPM_BUILD_ROOT}/%{_datadir}/ghc/
 
 SRC_TOP=$PWD
 rm -f rpm-*-filelist rpm-*.files
@@ -228,7 +230,7 @@
 
 %changelog
 * Tue Nov 25 2008 Jens Petersen <petersen at redhat.com> - 6.10.1-5
-- add cabal2spec and cabal-lib-template.spec for easy Cabal library packaging
+- add cabal2spec and template files for easy cabal hackage packaging
 - simplify script macros: make ghc_preinst_script and ghc_postun_script no-ops
   and ghc_preun_script only unregister for uninstall
 


--- cabal-lib-template.spec DELETED ---




More information about the scm-commits mailing list