specfile, request for comments

Mike A. Harris mharris at www.linux.org.uk
Thu May 26 15:13:04 UTC 2005


Rakotomandimby (R12y) Mihamina wrote:
> Hi,
> 
> Attached you will find a specfile about the ocaml-cryptokit package.
> I'm not very clever on specfile :-), so may be you would have some
> comments... It was initially from PLD 
> 
> http://ftp.nest.pld-linux.org/test/SRPMS/ocaml-cryptokit-1.2-1.src.rpm 
> 
> My doubts are about:
> 
> - the calling of "make" ( the CFLAGS...)
> - the %{_docdir} was %{_examplesdir} but I had to change it because it
> seems not to begin with a "/", so it fails because of that.
> 
> 
> 
> ------------------------------------------------------------------------
> 
> # $Revision: 1.6 $, $Date: 2003/07/25 09:02:05 $
> Summary:	Cryptographic toolkit for OCaml
> Summary(pl):	Biblioteka kryptograficzna dla OCamla
> Name:		ocaml-cryptokit
> Version:	1.3
> Release:	fc3.1

I would avoid using a release name with a letter like that.  Use
something safer like:  1.fc3.1

> License:	LGPL w/ linking exceptions
> Group:		Libraries
> Vendor:		Xavier Leroy <Xavier.Leroy at inria.fr>

"Vendor" should *NEVER* be put in a spec file.  It should be put
in per user .rpmmacros rpm config file, or system wide on the build
system that is being used for package generation.  Ditto for
"Distribution:" and "Packager"

> URL:		http://pauillac.inria.fr/~xleroy/software.html
> Source0:	cryptokit-%{version}.tar.gz
> # Source0-md5:	0249135953f10c1515e88985b45ee4c9
> BuildRequires:	zlib-devel
> BuildRequires:	ocaml >= 3.08
> BuildRoot:	%{_tmppath}/%{name}-%{version}-root
> 
> %description
> The Cryptokit library for Objective Caml provides a variety of
> cryptographic primitives that can be used to implement cryptographic
> protocols in security-sensitive applications. The primitives provided
> include: symmetric-key cryptography: AES, DES, Triple-DES, ARCfour, in
> ECB, CBC, CFB and OFB modes; public-key cryptography: RSA; hash
> functions and MACs: SHA-1, MD5, and MACs based on AES and DES; random
> number generation; encodings and compression: base 64, hexadecimal,
> Zlib compression.
> This package contains files needed to run bytecode executables using
> this library.
> 
> %package devel
> Summary:	Cryptographic toolkit for OCaml - development part
> Group:		Development/Libraries
> Requires:	%{name} = %{version}-%{release}
> %requires_eq	ocaml
> 
> %description devel
> The Cryptokit library for Objective Caml provides a variety of
> cryptographic primitives that can be used to implement cryptographic
> protocols in security-sensitive applications. The primitives provided
> include: symmetric-key cryptography: AES, DES, Triple-DES, ARCfour, in
> ECB, CBC, CFB and OFB modes; public-key cryptography: RSA; hash
> functions and MACs: SHA-1, MD5, and MACs based on AES and DES; random
> number generation; encodings and compression: base 64, hexadecimal,
> Zlib compression.
> This package contains files needed to develop OCaml programs using
> this library.
> 
> %prep
> %setup -q -n cryptokit-%{version}
> 
> %build
> make CFLAGS=" -fPIC" all allopt

Should be:

make CFLAGS="$RPM_OPT_FLAGS -fPIC" all allopt

Should -fPIC be there for all architectures?  Sounds wrong to me.


> install -d $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
> cp -r *test.ml $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}

This should probably be done instead using %doc in %files section.

> %files
> %defattr(644,root,root,755)
> %dir %{_libdir}/ocaml/cryptokit
> %attr(755,root,root) %{_libdir}/ocaml/cryptokit/*

In general, it's cleaner to use "install -m755" to install files mode
755 than to override it in %files.

> %{_libdir}/ocaml/*
> 
> %files devel
> %defattr(644,root,root,755)
> %doc LICENSE README doc
> %{_libdir}/ocaml/cryptokit/*.cm[ixa]*
> %{_libdir}/ocaml/cryptokit/*.a
> %{_docdir}/%{name}-%{version}

This _docdir line is unnecessary.




More information about the fedora-devel-list mailing list