From a7db8b7c72ec107790724df1f04cc717e1c8dd2e Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Mon, 9 Dec 2013 10:49:41 +0100 Subject: [PATCH] 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 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@