autospec/0001-templates-ghc-new-template-for-ghc-modules.patch

154 lines
5.0 KiB
Diff

From a7db8b7c72ec107790724df1f04cc717e1c8dd2e Mon Sep 17 00:00:00 2001
From: Silvan Calarco <silvan.calarco@mambasoft.it>
Date: Mon, 9 Dec 2013 10:49:41 +0100
Subject: [PATCH 1/3] templates/ghc: new template for ghc modules
---
conf/02-specfile-rpm-macros-ghc.conf | 5 +++
plugins/spec-create.in | 6 +++
templates/Makefile | 2 +-
templates/ghc | 82 ++++++++++++++++++++++++++++++++++++
4 files changed, 94 insertions(+), 1 deletion(-)
create mode 100644 conf/02-specfile-rpm-macros-ghc.conf
create mode 100644 templates/ghc
diff --git a/conf/02-specfile-rpm-macros-ghc.conf b/conf/02-specfile-rpm-macros-ghc.conf
new file mode 100644
index 0000000..94ca18a
--- /dev/null
+++ b/conf/02-specfile-rpm-macros-ghc.conf
@@ -0,0 +1,5 @@
+## Macros for ghc packages --------------------------------------------------
+
+# Force a name structure for ghc packages
+# Set to "" if you don't want to fix a structure
+ocaml_module_name_structure="^ghc-"
diff --git a/plugins/spec-create.in b/plugins/spec-create.in
index ebf7c35..818cfe7 100644
--- a/plugins/spec-create.in
+++ b/plugins/spec-create.in
@@ -103,6 +103,7 @@ function usage() {
-v, --pck-version "$"Version of the package (default: taken from <source-archive> name)""
-t, --type "$"Typology of the specfile to be created""
standard : "$"standard specfile (default)""
+ ghc : "$"specfile for ghc packages""
gnome : "$"specfile for gnome packages""
kde3 : "$"specfile for kde3 packages""
kde4 : "$"specfile for kde4 packages""
@@ -605,6 +606,11 @@ ${proxy:+--proxy $proxy} ${proxy_user:+--proxy-user $proxy_user} \
* "$"mode"": ${NOTE}$spec_type${NORM}"
case "$spec_type" in
+ ghc)
+ [[ "$pck_name" =~ $ghc_module_name_structure ]] || notify.error $"\
+ghc modules must have this name structure (use \`-n'):"" \
+\`$ghc_module_name_structure'"
+ ;;
library)
[[ "$pck_name" =~ $library_name_structure ]] || notify.error $"\
libraries must have this name structure (use \`-n'):"" \
diff --git a/templates/Makefile b/templates/Makefile
index 4c9ede6..d134aee 100644
--- a/templates/Makefile
+++ b/templates/Makefile
@@ -18,7 +18,7 @@ srcdir = ..
include $(srcdir)/Makefile.env
-pck_templates := gnome kde3 kde4 library ocaml-libs perl python standard standard-daemon web
+pck_templates := ghc gnome kde3 kde4 library ocaml-libs perl python standard standard-daemon web
all:
diff --git a/templates/ghc b/templates/ghc
new file mode 100644
index 0000000..90b74fd
--- /dev/null
+++ b/templates/ghc
@@ -0,0 +1,82 @@
+%define ghc_ver %(ghc --version | sed "s|.*version ||")
+%define pkgname %(echo %name | sed "s|^ghc-||")
+Name: @pck_name@
+Version: @pck_version@
+Release: @spec_first_release@@DISTRO_rpm@
+Summary: ...
+Group: Development/Libraries
+Vendor: @VENDOR@
+Distribution: @DISTRO@
+Packager: @packager_fullname@ <@packager_email@>
+URL: http://hackage.haskell.org/package/%{pkgname}
+Source: ...
+License: BSD
+## AUTOBUILDREQ-BEGIN
+## AUTOBUILDREQ-END
+@if:buildrequires_buildtool
+BuildRequires: @build_tool@
+@fi:buildrequires_buildtool
+@if:infopages
+Requires(post): %{__install_info}
+Requires(preun): %{__install_info}
+@fi:infopages
+BuildRequires: ghc
+BuildRequires: hscolour
+Requires: ghc = %{ghc_ver}
+BuildRoot: @rpm_default_buildroot@
+
+%description
+...
+
+## Remove the following block if there is no binary tool provided
+#%package -n %{pkgname}
+#Group: Applications/Development
+#Summary: ...
+#
+#%description -n %{pkgname}
+#...
+
+%prep
+%setup -q -n %{pkgname}-%{version}
+
+%build
+runghc Setup.hs configure \\
+ --prefix=%{_prefix} --libdir=%{_libdir}
+
+runghc Setup.hs build
+runghc Setup.hs haddock --html-location=URL --hyperlink-source
+
+%install
+[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
+runghc Setup.hs copy --destdir=%{buildroot}
+runghc Setup.hs register \\
+ --gen-pkg-config="%{buildroot}%{_libdir}/ghc-%{ghc_ver}/%{pkgname}-%{version}/%{pkgname}-%{version}.conf"
+
+%clean
+[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
+
+%post
+ghc-pkg register %{_libdir}/ghc-%{ghc_ver}/%{pkgname}-%{version}/%{pkgname}-%{version}.conf &>/dev/null || true
+:
+
+%preun
+ghc-pkg unregister %{pkgname}-%{version} &>/dev/null || true
+:
+
+%files
+%defattr(-,root,root)
+%dir %{_libdir}/ghc-%{ghc_ver}/%{pkgname}-%{version}
+%{_libdir}/ghc-%{ghc_ver}/%{pkgname}-%{version}/*
+%dir %{_docdir}/%{pkgname}-%{version}
+%{_docdir}/doc/%{pkgname}-%{version}/LICENSE
+%dir %{_docdir}/%{pkgname}-%{version}/html
+%{_docdir}/%{pkgname}-%{version}/html/*
+
+## Remove the following block if there is no binary tool provided
+#%files -n %{pkgname}
+#%defattr(-,root,root)
+#%{_bindir}/%{pkgname}
+
+%changelog
+* @spec_changelog_date@ @packager_fullname@ <@packager_email@> @pck_version@-@spec_first_release@@DISTRO_rpm@
+- @spec_changelog_comment@
--
1.9.3