rpms/ghc/devel cabal2spec,1.3,1.4 ghc.spec,1.62,1.63

Jens Petersen petersen at fedoraproject.org
Fri Nov 28 02:48:20 UTC 2008


Author: petersen

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

Modified Files:
	cabal2spec ghc.spec 
Log Message:
- make cabal2spec work on .cabal files too, and
  read and check name and version from .cabal




Index: cabal2spec
===================================================================
RCS file: /cvs/extras/rpms/ghc/devel/cabal2spec,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- cabal2spec	25 Nov 2008 15:40:11 -0000	1.3
+++ cabal2spec	28 Nov 2008 02:47:49 -0000	1.4
@@ -2,29 +2,47 @@
 
 set -e
 
-[ $# -ne 1 -o ! -r "$1" ] && echo "Usage: $0 hackage-version.tar.gz" && exit 1
+[ $# -ne 1 -o ! -r "$1" ] && echo "Usage: $(basename $0) [hackage.tar.gz|hackage.cabal]" && exit 1
 
-HACKAGE=$1
+FILE=$1
 
-INPUT=$(basename $HACKAGE .tar.gz)
+case $FILE in
+    *.tar.gz)
+	TARNAME_VER=$(basename $FILE .tar.gz)
+	TARVERSION=$(echo $TARNAME_VER | sed -e "s/.*-//")
+	TARNAME=$(echo $TARNAME_VER | sed -e "s/-$TARVERSION//")
+	WORKDIR=$(mktemp -d)
+	tar zxf $FILE -C $WORKDIR "*.cabal" 
+	CABAL="$WORKDIR/*/*.cabal" ;;
+    *.cabal)
+	CABAL=$FILE ;;
+esac
+
+NAME=$(grep -i ^name: $CABAL | sed -e "s/[Nn]ame:[ \t]*//")
+if [ -n "$TARNAME" -a "$TARNAME" != "$NAME" ]; then
+  echo "Warning: tarball name ($TARNAME) and cabal name ($NAME) differ!"
+fi
 
-VERSION=$(echo $INPUT | sed -e "s/.*-//")
-NAME=$(echo $INPUT | sed -e "s/-$VERSION//")
+VERSION=$(grep -i ^version: $CABAL | sed -e "s/[Vv]ersion:[ \t]*//")
+if [ -n "$TARVERSION" -a "$TARVERSION" != "$VERSION" ]; then
+  echo "Warning: tarball version ($TARVERSION) and cabal version ($VERSION) differ!"
+fi
 
-TMPDIR=$(mktemp -d)
-CURRENT_DIR=$PWD
-cd $TMPDIR
-tar zxf $HACKAGE "*.cabal"
+CABALFILENAME=$(basename $CABAL .cabal)
+if [ "$CABALFILENAME" != "$NAME" ]; then
+  echo "Warning: .cabal filename ($CABALFILENAME) and cabal Name field ($NAME) differ!"
+fi
 
-if grep -qi exposed-modules: */*.cabal; then
+
+if grep -qi exposed-modules: $CABAL; then
   HAS_LIB=yes
 fi
 
-if grep -qi executable */*.cabal; then
+if grep -qi executable $CABAL; then
   HAS_BIN=yes
 fi
-cd -
-rm -rf $TMPDIR
+
+[ -d "$WORKDIR" ] && rm -r $WORKDIR
 
 if [ "$HAS_LIB" -a ! "$HAS_BIN" ]; then
   PREFIX=ghc-
@@ -36,7 +54,7 @@
 
 cp /usr/share/ghc/cabal-${HAS_BIN:+bin}${HAS_LIB:+lib}-template.spec.in $SPECFILE
 
-echo "created $SPECFILE (${HAS_BIN:+bin}${HAS_LIB:+lib})"
+echo "created $SPECFILE (${HAS_BIN:+bin}${HAS_LIB:+lib}) for $NAME-$VERSION"
 
 DATE=$(env LANG=C date +"%a %b %e %Y")
 


Index: ghc.spec
===================================================================
RCS file: /cvs/extras/rpms/ghc/devel/ghc.spec,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- ghc.spec	25 Nov 2008 09:15:17 -0000	1.62
+++ ghc.spec	28 Nov 2008 02:47:49 -0000	1.63
@@ -229,6 +229,10 @@
 %endif
 
 %changelog
+* Fri Nov 28 2008 Jens Petersen <petersen at redhat.com>
+- make cabal2spec work on .cabal files too, and
+  read and check name and version from .cabal
+
 * Tue Nov 25 2008 Jens Petersen <petersen at redhat.com> - 6.10.1-5
 - add cabal2spec and template files for easy cabal hackage packaging
 - simplify script macros: make ghc_preinst_script and ghc_postun_script no-ops




More information about the fedora-extras-commits mailing list