New autospec template ocaml-libs for OCaml libraries.
Signed-off-by: Davide Madrisan <davide.madrisan@gmail.com>
This commit is contained in:
parent
b4e680004a
commit
5e8e99ecdc
20
ChangeLog
20
ChangeLog
@ -1,4 +1,4 @@
|
|||||||
Changes in version 1.16.4
|
Changes in version 1.16.4
|
||||||
Sat Jul 13 2013 Madrisan <davide.madrisan(a)gmail.com>
|
Sat Jul 13 2013 Madrisan <davide.madrisan(a)gmail.com>
|
||||||
|
|
||||||
+ bugfix
|
+ bugfix
|
||||||
@ -17,6 +17,24 @@ Sat Jul 13 2013 Madrisan <davide.madrisan(a)gmail.com>
|
|||||||
* conf/02-specfile-rpm-groups.conf - Davide Madrisan:
|
* conf/02-specfile-rpm-groups.conf - Davide Madrisan:
|
||||||
Add specific rpm groups for OCaml libraries and development packages.
|
Add specific rpm groups for OCaml libraries and development packages.
|
||||||
|
|
||||||
|
+ improvement
|
||||||
|
* templates/ocaml-libs, templates/Makefile - Davide Madrisan:
|
||||||
|
New autospec template for OCaml libraries.
|
||||||
|
|
||||||
|
* plugins/spec-create - Davide Madrisan:
|
||||||
|
Add support for the new template ocaml-libs.
|
||||||
|
|
||||||
|
* conf/02-specfile-rpm-macros-ocaml.conf - Davide Madrisan:
|
||||||
|
New configuration file for the OCaml (library) modules.
|
||||||
|
|
||||||
|
+ update
|
||||||
|
|
||||||
|
* po/it/pck-update.po - Davide Madrisan:
|
||||||
|
Update the italian translation strings.
|
||||||
|
|
||||||
|
* italian manpage - Davide Madrisan:
|
||||||
|
Document the new template ocaml-libs.
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
Changes in version 1.16.3
|
Changes in version 1.16.3
|
||||||
|
5
conf/02-specfile-rpm-macros-ocaml.conf
Normal file
5
conf/02-specfile-rpm-macros-ocaml.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
## Macros for OCaml packages --------------------------------------------------
|
||||||
|
|
||||||
|
# Force a name structure for OCaml packages
|
||||||
|
# Set to "" if you don't want to fix a structure
|
||||||
|
ocaml_module_name_structure="^ocaml-"
|
@ -24,7 +24,7 @@
|
|||||||
\fBlibtest.lib\fR - libreria con le funzioni del framework di test.
|
\fBlibtest.lib\fR - libreria con le funzioni del framework di test.
|
||||||
|
|
||||||
.SH VERSIONE
|
.SH VERSIONE
|
||||||
Questo documento e' aggiornato alla versione 1.16.3 di
|
Questo documento e' aggiornato alla versione 1.16.4 di
|
||||||
.B @package@.
|
.B @package@.
|
||||||
|
|
||||||
.SH DESCRIZIONE
|
.SH DESCRIZIONE
|
||||||
@ -204,6 +204,8 @@ categoria dello specfile da generare:
|
|||||||
.br
|
.br
|
||||||
\fIlibrary\fR : specfile per librerie
|
\fIlibrary\fR : specfile per librerie
|
||||||
.br
|
.br
|
||||||
|
\fIocaml-libs\fR : specfile per librerie OCaml
|
||||||
|
.br
|
||||||
\fIperl\fR : specfile per singoli moduli perl
|
\fIperl\fR : specfile per singoli moduli perl
|
||||||
.br
|
.br
|
||||||
\fIpython\fR : specfile per moduli python
|
\fIpython\fR : specfile per moduli python
|
||||||
|
@ -82,7 +82,7 @@ or FITNESS FOR A PARTICULAR PURPOSE."
|
|||||||
function version() {
|
function version() {
|
||||||
echo "\
|
echo "\
|
||||||
${me[0]} ${me[1]}
|
${me[0]} ${me[1]}
|
||||||
Copyright (C) 2004-2012 Davide Madrisan <davide.madrisan@gmail.com>"
|
Copyright (C) 2004-2013 Davide Madrisan <davide.madrisan@gmail.com>"
|
||||||
}
|
}
|
||||||
|
|
||||||
# $1: optional exit code (default is '1')
|
# $1: optional exit code (default is '1')
|
||||||
@ -106,6 +106,7 @@ function usage() {
|
|||||||
kde3 : "$"specfile for kde3 packages""
|
kde3 : "$"specfile for kde3 packages""
|
||||||
kde4 : "$"specfile for kde4 packages""
|
kde4 : "$"specfile for kde4 packages""
|
||||||
library : "$"specfile for common library packages""
|
library : "$"specfile for common library packages""
|
||||||
|
ocaml-libs : "$"specfile for OCaml library packages""
|
||||||
perl : "$"specfile for single-package perl modules""
|
perl : "$"specfile for single-package perl modules""
|
||||||
python : "$"specfile for python modules""
|
python : "$"specfile for python modules""
|
||||||
standard-daemon : "$"standard specfile for system/network services""
|
standard-daemon : "$"standard specfile for system/network services""
|
||||||
@ -404,6 +405,10 @@ $FUNCNAME: buildrequires_buildtool = \"$buildrequires_buildtool\""
|
|||||||
|
|
||||||
[ -r "$templatefile" ] || notify.error $"file not found"": $templatefile"
|
[ -r "$templatefile" ] || notify.error $"file not found"": $templatefile"
|
||||||
|
|
||||||
|
local pck_name_tail="<FIXME>"
|
||||||
|
case "$pck_name" in *-*) pck_name_tail="${pck_name#*-}" ;; esac
|
||||||
|
notify.debug "$FUNCNAME: pck_name_tail = \"$pck_name_tail\""
|
||||||
|
|
||||||
local currvar line if_value if_level=0
|
local currvar line if_value if_level=0
|
||||||
# FIXME: at most two nested @if statements are supported
|
# FIXME: at most two nested @if statements are supported
|
||||||
if_value[0]='N/A'; if_value[1]='1'; if_value[2]='1';
|
if_value[0]='N/A'; if_value[1]='1'; if_value[2]='1';
|
||||||
@ -454,6 +459,7 @@ s,@packager_fullname@,${packager_fullname:-?packager_fullname?},
|
|||||||
s,@packager_email@,${packager_email:-?packager_email?},
|
s,@packager_email@,${packager_email:-?packager_email?},
|
||||||
s,@rpm_default_buildroot@,${rpm_default_buildroot:-?rpm_default_buildroot?},
|
s,@rpm_default_buildroot@,${rpm_default_buildroot:-?rpm_default_buildroot?},
|
||||||
s,@pck_name@,$pck_name,
|
s,@pck_name@,$pck_name,
|
||||||
|
s,@pck_name_tail@,$pck_name_tail,
|
||||||
s,@pck_version@,$pck_version,
|
s,@pck_version@,$pck_version,
|
||||||
s,@spec_first_release@,${spec_first_release:-1},
|
s,@spec_first_release@,${spec_first_release:-1},
|
||||||
s,@spec_run_ldconfig@,$spec_run_ldconfig,
|
s,@spec_run_ldconfig@,$spec_run_ldconfig,
|
||||||
@ -591,6 +597,11 @@ ${proxy:+--proxy $proxy} ${proxy_user:+--proxy-user $proxy_user} \
|
|||||||
[[ "$pck_name" =~ $library_name_structure ]] || notify.error $"\
|
[[ "$pck_name" =~ $library_name_structure ]] || notify.error $"\
|
||||||
libraries must have this name structure (use \`-n'):"" \
|
libraries must have this name structure (use \`-n'):"" \
|
||||||
\`$library_name_structure'"
|
\`$library_name_structure'"
|
||||||
|
;;
|
||||||
|
ocaml-libs)
|
||||||
|
[[ "$pck_name" =~ $ocaml_module_name_structure ]] || notify.error $"\
|
||||||
|
ocaml modules must have this name structure (use \`-n'):"" \
|
||||||
|
\`$ocaml_module_name_structure'"
|
||||||
;;
|
;;
|
||||||
perl)
|
perl)
|
||||||
[[ "$pck_name" =~ $perl_module_name_structure ]] || notify.error $"\
|
[[ "$pck_name" =~ $perl_module_name_structure ]] || notify.error $"\
|
||||||
@ -701,7 +712,8 @@ looks like a python module (use \`-t python' if this is true)" ;;
|
|||||||
# 2. set 'spec_summary'
|
# 2. set 'spec_summary'
|
||||||
local spec_summary="$spec_default_summary"
|
local spec_summary="$spec_default_summary"
|
||||||
local perl_pckname_from_makefile=""
|
local perl_pckname_from_makefile=""
|
||||||
case "$spec_type" in perl)
|
case "$spec_type" in
|
||||||
|
perl)
|
||||||
if [ -e $tmpdir/$pck_rootdir/Makefile.PL ]; then
|
if [ -e $tmpdir/$pck_rootdir/Makefile.PL ]; then
|
||||||
# look for the variable `NAME' in Makefile.PL inside the
|
# look for the variable `NAME' in Makefile.PL inside the
|
||||||
# 'WriteMakefile(' ... ')' block
|
# 'WriteMakefile(' ... ')' block
|
||||||
@ -717,6 +729,26 @@ looks like a python module (use \`-t python' if this is true)" ;;
|
|||||||
fi
|
fi
|
||||||
[ -n "$perl_pckname_from_makefile" ] &&
|
[ -n "$perl_pckname_from_makefile" ] &&
|
||||||
spec_summary="$perl_pckname_from_makefile - ..."
|
spec_summary="$perl_pckname_from_makefile - ..."
|
||||||
|
;;
|
||||||
|
ocaml-libs)
|
||||||
|
local metafile
|
||||||
|
metafile=$(find $tmpdir/$pck_rootdir/ -type f -name "META" 2>/dev/null)
|
||||||
|
[ "$metafile" ] || metafile="$(\
|
||||||
|
find $tmpdir/$pck_rootdir/ -type f -name "META.in" 2>/dev/null)"
|
||||||
|
if [ "$metafile" ]; then
|
||||||
|
#notify.debug "$FUNCNAME: OCaml META file found"
|
||||||
|
while read line; do
|
||||||
|
if [[ "$line" =~ ^description[\ \t]*=[\ \t]*\".*\"$ ]]; then
|
||||||
|
spec_summary="... $(\
|
||||||
|
echo "$line" | sed "s|.*=[\ \t]*\"\(.*\)\"|\1|") ..." # vim highlight need a "
|
||||||
|
notify.debug "$FUNCNAME: spec_summary = \"$spec_summary\""
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
#if [[ "$line" =~ ^description[\ \t]*=[\ \t]*$ ]]; then
|
||||||
|
# ... FIXME
|
||||||
|
done < $metafile
|
||||||
|
fi
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# 3. set 'spec_license'
|
# 3. set 'spec_license'
|
||||||
|
@ -1,3 +1,21 @@
|
|||||||
|
# Italian translation.
|
||||||
|
# Copyright (C) 2004-2013 Davide Madrisan
|
||||||
|
# This file is distributed under the same license as the autospec package.
|
||||||
|
# Davide Madrisan <davide.madrisan@gmail.com>, 2004-2013.
|
||||||
|
#
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
msgstr "Project-Id-Version: autospec 1.16.4\n"
|
||||||
|
"Report-Msgid-Bugs-To: davide.madrisan@gmail.com\n"
|
||||||
|
"POT-Creation-Date: 2013-07-13 19:30+0100\n"
|
||||||
|
"PO-Revision-Date: 2013-07-13 19:30+0100\n"
|
||||||
|
"Last-Translator: Davide Madrisan <davide.madrisan@gmail.com>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: Italian \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
msgid "this script requires bash version 2 or better"
|
msgid "this script requires bash version 2 or better"
|
||||||
msgstr "questo script richiede bash versione 2 o superiore"
|
msgstr "questo script richiede bash versione 2 o superiore"
|
||||||
|
|
||||||
@ -817,6 +835,9 @@ msgstr "specfile per pacchetti kde4"
|
|||||||
msgid "specfile for common library packages"
|
msgid "specfile for common library packages"
|
||||||
msgstr "specfile per librerie"
|
msgstr "specfile per librerie"
|
||||||
|
|
||||||
|
msgid "specfile for OCaml library packages"
|
||||||
|
msgstr "specfile per pacchetti librerie OCaml"
|
||||||
|
|
||||||
msgid "specfile for single-package perl modules"
|
msgid "specfile for single-package perl modules"
|
||||||
msgstr "specfile per singoli moduli perl"
|
msgstr "specfile per singoli moduli perl"
|
||||||
|
|
||||||
@ -886,6 +907,9 @@ msgstr "modo"
|
|||||||
msgid "libraries must have this name structure (use \\`-n'):"
|
msgid "libraries must have this name structure (use \\`-n'):"
|
||||||
msgstr "i nomi delle librerie devono avere questa struttura (usare \\`-n'):"
|
msgstr "i nomi delle librerie devono avere questa struttura (usare \\`-n'):"
|
||||||
|
|
||||||
|
msgid "ocaml modules must have this name structure (use \\`-n'):"
|
||||||
|
msgstr "i nomi dei moduli ocaml devono avere questa struttura (usare \\`-n'):"
|
||||||
|
|
||||||
msgid "perl modules must have this name structure (use \\`-n'):"
|
msgid "perl modules must have this name structure (use \\`-n'):"
|
||||||
msgstr "i nomi dei moduli perl devono avere questa struttura (usare \\`-n'):"
|
msgstr "i nomi dei moduli perl devono avere questa struttura (usare \\`-n'):"
|
||||||
|
|
||||||
@ -923,23 +947,6 @@ msgstr "manca almeno una direttiva \\`%defattr'"
|
|||||||
msgid "use rpm macros if possible:"
|
msgid "use rpm macros if possible:"
|
||||||
msgstr "utilizzare le macro rpm quando possibile:"
|
msgstr "utilizzare le macro rpm quando possibile:"
|
||||||
|
|
||||||
# Italian translation.
|
|
||||||
# Copyright (C) 2004-2012 Davide Madrisan
|
|
||||||
# This file is distributed under the same license as the autospec package.
|
|
||||||
# Davide Madrisan <davide.madrisan@gmail.com>, 2004-2012.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr "Project-Id-Version: autospec 1.16.0\n"
|
|
||||||
"Report-Msgid-Bugs-To: davide.madrisan@gmail.com\n"
|
|
||||||
"POT-Creation-Date: 2012-11-23 22:50+0100\n"
|
|
||||||
"PO-Revision-Date: 2012-11-19 23:37+0100\n"
|
|
||||||
"Last-Translator: Davide Madrisan <davide.madrisan@gmail.com>\n"
|
|
||||||
"Language-Team: \n"
|
|
||||||
"Language: Italian \n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
msgid "localization files must be packaged via \\`%find_lang'"
|
msgid "localization files must be packaged via \\`%find_lang'"
|
||||||
msgstr "trovati file di localizzazione non gestiti da \\`%find_lang'"
|
msgstr "trovati file di localizzazione non gestiti da \\`%find_lang'"
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Makefile for autospec
|
# Makefile for autospec
|
||||||
# Copyright (C) 2008,2011 by Davide Madrisan <davide.madrisan@gmail.com>
|
# Copyright (C) 2008,2011,2013 by Davide Madrisan <davide.madrisan@gmail.com>
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify it under
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
# the terms of version 2 of the GNU General Public License as published by the
|
# the terms of version 2 of the GNU General Public License as published by the
|
||||||
@ -18,7 +18,7 @@ srcdir = ..
|
|||||||
|
|
||||||
include $(srcdir)/Makefile.env
|
include $(srcdir)/Makefile.env
|
||||||
|
|
||||||
pck_templates := gnome kde3 kde4 library perl python standard standard-daemon web
|
pck_templates := gnome kde3 kde4 library ocaml-libs perl python standard standard-daemon web
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
|
||||||
|
102
templates/ocaml-libs
Normal file
102
templates/ocaml-libs
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
## this macro only works for packages with name matching the regexp "ocaml-.*"
|
||||||
|
%define ocamlpck @pck_name_tail@
|
||||||
|
|
||||||
|
Name: @pck_name@
|
||||||
|
Version: @pck_version@
|
||||||
|
Release: @spec_first_release@@DISTRO_rpm@
|
||||||
|
Summary: ...
|
||||||
|
Group: System/Libraries/OCaml
|
||||||
|
Vendor: @VENDOR@
|
||||||
|
Distribution: @DISTRO@
|
||||||
|
Packager: @packager_fullname@ <@packager_email@>
|
||||||
|
URL: ...
|
||||||
|
Source: ...
|
||||||
|
License: ...
|
||||||
|
## AUTOBUILDREQ-BEGIN
|
||||||
|
## note: run 'autospec -u -a6 @pck_name@' to get the list of build requirements.
|
||||||
|
## AUTOBUILDREQ-END
|
||||||
|
BuildRequires: ocaml
|
||||||
|
BuildRequires: ocaml-camlp4-devel
|
||||||
|
BuildRequires: ocaml-findlib
|
||||||
|
## remove the following build requirement if this package is compiled
|
||||||
|
## by using the OCaml native-code compiler (ocamlopt)
|
||||||
|
Requires: ocaml-runtime
|
||||||
|
BuildRoot: @rpm_default_buildroot@
|
||||||
|
|
||||||
|
%description
|
||||||
|
...
|
||||||
|
|
||||||
|
@if:pck_devel
|
||||||
|
## remove the following two blocks if there's no devel files
|
||||||
|
%package devel
|
||||||
|
Group: Development/Libraries/OCaml
|
||||||
|
Summary: Development files for %{name}
|
||||||
|
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
This package contains libraries and signature files for developing applications that use %{name}.
|
||||||
|
@fi:pck_devel
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
|
||||||
|
%build
|
||||||
|
## remove the unsupported options (no real standard exists...)
|
||||||
|
./configure \\
|
||||||
|
\ --prefix %{_prefix} \\
|
||||||
|
\ --localstatedir %{_localstatedir} \\
|
||||||
|
\ --sharedstatedir %{_sharedstatedir} \\
|
||||||
|
\ --sysconfdir %{_sysconfdir} \\
|
||||||
|
\ --enable-tests \\
|
||||||
|
\ --enable-docs \\
|
||||||
|
\ --enable-examples \\
|
||||||
|
\ --disable-ldconf
|
||||||
|
## extra arguments that sometimes can be passed to './configure'
|
||||||
|
## -host %{_host}
|
||||||
|
## -cc "gcc ${RPM_OPT_FLAGS/-fomit-frame-pointer/}"
|
||||||
|
## --destdir %{buildroot}
|
||||||
|
|
||||||
|
%make all
|
||||||
|
%make opt
|
||||||
|
|
||||||
|
%install
|
||||||
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||||
|
export OCAMLFIND_DESTDIR=%{buildroot}$(ocamlfind printconf destdir)
|
||||||
|
export DLLDIR=$OCAMLFIND_DESTDIR/stublibs
|
||||||
|
|
||||||
|
install -d $OCAMLFIND_DESTDIR/%{ocamlpck}
|
||||||
|
install -d $OCAMLFIND_DESTDIR/stublibs
|
||||||
|
|
||||||
|
make install
|
||||||
|
|
||||||
|
%clean
|
||||||
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root)
|
||||||
|
## note: this list is just an example; modify as required
|
||||||
|
# %dir %{_libdir}/ocaml/%{ocamlpck}
|
||||||
|
# %{_libdir}/ocaml/%{ocamlpck}/META
|
||||||
|
# %{_libdir}/ocaml/%{ocamlpck}/*.cma
|
||||||
|
# %{_libdir}/ocaml/%{ocamlpck}/*.cmi
|
||||||
|
# %{_libdir}/ocaml/%{ocamlpck}/*.cmxs
|
||||||
|
# %{_libdir}/ocaml/stublibs/*.so*
|
||||||
|
# %doc COPYING
|
||||||
|
|
||||||
|
@if:pck_devel
|
||||||
|
## remove this block if there are no devel files
|
||||||
|
## note: this list is just an example; modify as required
|
||||||
|
%files devel
|
||||||
|
%defattr(-,root,root)
|
||||||
|
# %{_libdir}/ocaml/%{ocamlpck}/*.a
|
||||||
|
# %{_libdir}/ocaml/%{ocamlpck}/*.cmx
|
||||||
|
# %{_libdir}/ocaml/%{ocamlpck}/*.cmxa
|
||||||
|
# %{_libdir}/ocaml/%{ocamlpck}/*.mli
|
||||||
|
# %doc CHANGES README
|
||||||
|
# %doc doc/html/
|
||||||
|
# %doc examples/
|
||||||
|
@fi:pck_devel
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* @spec_changelog_date@ @packager_fullname@ <@packager_email@> @pck_version@-@spec_first_release@@DISTRO_rpm@
|
||||||
|
- @spec_changelog_comment@
|
Loading…
Reference in New Issue
Block a user