154 lines
5.0 KiB
Diff
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
|
||
|
|