maintainer: Build Fedora package in copr.
[goals.git] / Goalfile.in
index ec423f1..361dd07 100644 (file)
@@ -176,10 +176,10 @@ goal install = {
     # exec_prefix die die die
     bindir="@prefix@/bin"
     datadir="@prefix@/share"
-    mkdir -p %DESTDIR/"$bindir"
-    mkdir -p %DESTDIR/"$datadir/goals"
-    install src/goals %DESTDIR/"$bindir" -m 0755
-    install %stdlibfiles %DESTDIR/"$datadir"/goals -m 644
+    mkdir -p %DESTDIR"$bindir"
+    mkdir -p %DESTDIR"$datadir/goals"
+    install src/goals %DESTDIR"$bindir" -m 0755
+    install %stdlibfiles %DESTDIR"$datadir"/goals -m 644
 }
 
 #----------------------------------------------------------------------
@@ -223,6 +223,7 @@ let distfiles = [
     "configure",
     "configure.ac",
     wildcard ("docs/*.pod"),
+    "goals.spec.in",
     "install-sh",
     "m4/ocaml.m4",
     "run.in",
@@ -241,7 +242,7 @@ let distfiles = [
 
 let tarfile = "@PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz"
 
-goal dist = {
+goal dist = "%tarfile" : {
     d="@PACKAGE_NAME@-@PACKAGE_VERSION@"
     o=%tarfile
     rm -rf "$d"
@@ -257,3 +258,72 @@ goal dist = {
     mv "$o-t" "$o"
     rm -rf "$d"
 }
+
+goal distcheck = : dist {
+    d="@PACKAGE_NAME@-@PACKAGE_VERSION@"
+    tar zxf %tarfile
+    pushd "$d"
+    ./configure
+    make
+    make check
+    popd
+    rm -rf "$d"
+    print_green "PASS: distcheck"
+}
+
+#----------------------------------------------------------------------
+# Maintainer rules.
+
+# Check no files are missing from distfiles above by unpacking the
+# distribution tarball and comparing it to git.
+goal maintainer-check-extra-dist = : dist @{
+    tar ztf %tarfile | sort |
+        sed 's,^@PACKAGE_NAME@-@PACKAGE_VERSION@/,,' > tarfiles
+    git ls-files | sort > gitfiles
+    comm -13 tarfiles gitfiles > comm.out
+    cat comm.out
+    [ ! -s comm.out ]
+    rm tarfiles gitfiles comm.out
+    print_green "PASS: distfiles"
+}
+
+# XXX This should also do a Fedora build.
+goal maintainer-release = : dist,
+                            maintainer-check-extra-dist,
+                            distcheck,
+                            maintainer-upload,
+                            maintainer-srpm,
+                            maintainer-fedora-copr
+
+let websitedir = "%HOME/d/websites/people.redhat.com/goals"
+
+# XXX Should actually use the *url tactic here.
+goal maintainer-upload = : distcheck {
+    [ -d %websitedir ]
+    cp %tarfile %websitedir/files
+    cp README %websitedir/README
+    cp man/goals.1.txt man/Goalfile.5.txt %websitedir
+    cd %websitedir
+    git add files/%tarfile README goals.1.txt Goalfile.5.txt
+    git commit -m "@PACKAGE_NAME@ @PACKAGE_VERSION@"
+    cd ..
+    ./.rsync
+}
+
+pure function get-fedora-dist () returning string = @{
+    rpm --eval '%%dist'
+}
+let fedora-dist = get-fedora-dist ()
+let srpm = "goals-@PACKAGE_VERSION@%fedora-dist.src.rpm"
+
+goal maintainer-srpm =
+"%srpm" : tarfile, "goals.spec" {
+    rpmbuild -bs \
+        --define "%%_sourcedir $PWD" \
+        --define "%%_srcrpmdir $PWD" \
+        goals.spec
+}
+
+goal maintainer-fedora-copr = : maintainer-upload, srpm {
+    copr build rjones/goals %srpm
+}
\ No newline at end of file