summaryrefslogtreecommitdiffstats
path: root/packages/fedora
diff options
context:
space:
mode:
Diffstat (limited to 'packages/fedora')
-rw-r--r--packages/fedora81
1 files changed, 81 insertions, 0 deletions
diff --git a/packages/fedora b/packages/fedora
new file mode 100644
index 0000000..cf50a2a
--- /dev/null
+++ b/packages/fedora
@@ -0,0 +1,81 @@
+#!/bin/bash
+#-- make sure we know how to handle the distro
+# Each file needs to define a function called get_source that will
+# be passed the working directory and a package name, and that must
+# return the full absolute path to the source tree.
+#
+# A similar remove_source function must also be defined (same parameters)
+# that just removes everything created in the working directory for this
+# package.
+#
+
+get_source() {
+ pwd=$(pwd)
+ workdir="$1"
+ pkg="$2"
+
+ #-- set up the proper environment
+ cd "$workdir"
+ [ ! -d $pkg ] && mkdir $pkg
+ cd $pkg
+ [ ! -d rpmbuild ] && mkdir rpmbuild
+ for ii in BUILD SOURCES SPECS SRPMS
+ do
+ [ ! -d rpmbuild/$ii ] && mkdir rpmbuild/$ii
+ done
+ rpmhome="$workdir/$pkg"
+
+ #-- fetch the bits from fedpkg
+ if [ -d $pkg ]
+ then
+ res=$(cd $pkg; fedpkg pull >/dev/null 2>&1)
+ else
+ res=$(fedpkg clone -a $pkg >/dev/null 2>&1)
+ fi
+ if [ ! -d $pkg ]
+ then
+ echo ""
+ cd $pwd
+ exit 1
+ fi
+
+ #-- get the srpm made
+ cd $pkg
+ res=$(fedpkg srpm >/dev/null 2>&1)
+ fname=$(ls -1 *.src.rpm | head -1)
+ if [ -z "$fname" ]
+ then
+ echo ""
+ cd $pwd
+ exit 1
+ fi
+
+ #-- unpack the srpm
+ srpm=$(ls -1 | grep .src.rpm | head -1)
+ res=$(HOME=$rpmhome rpm -i $srpm >/dev/null 2>&1)
+
+ #-- unpack the source and apply the patches
+ cd $rpmhome/rpmbuild/SPECS
+ res=$(HOME=$rpmhome rpmbuild --nodeps -bp ${pkg}.spec >/dev/null 2>&1)
+
+ #-- all done. as you were. and report the path.
+ path=$(ls $rpmhome/rpmbuild/BUILD | grep $pkg | head -1)
+ if [ ! -z $path ]
+ then
+ echo $rpmhome/rpmbuild/BUILD/$path
+ else
+ echo ""
+ fi
+ cd $pwd
+}
+
+remove_source () {
+ pwd=$(pwd)
+ workdir="$1"
+ pkg="$2"
+
+ cd "$workdir"
+ rm -rf $pkg >/dev/null 2>&1
+
+ cd $pwd
+}