Review: perl-DBD-SQLite (was: Re: Looking for a sponsor)

Michael Peters funkyres at gmail.com
Tue Apr 12 20:48:11 UTC 2005


On Apr 5, 2005 3:29 PM, Michael Schwendt <bugs.michael at gmx.net> wrote:
> On Sun, 20 Mar 2005 13:28:45 -0800, Michael Peters wrote:
> 
> > I'm still looking for a sponsor.
> > I think slimserver needs to go into livna - but there are some perl
> > modules that it needs that will need to be available in extras.
> >
> > At this point I've packaged three of them (only tested in fc4t1)
> 
> > In future I will also be needing perl-DBD-SQLite (I have a spec file
> > for it but I have not tested the package with slimserver yet)
> 
> > I'm willing to maintain these perl modules so I can get slimserver
> > into livna - so a sponsor would be appreciated. Feedback on the perl
> > package spec files would also be appreciated.
> 
> I've had a look at your perl-DBD-SQLite package and found the following:
> 
>  * Try to stay very close to the Fedora spectemplate for Perl packages
>    as found in the fedora-rpmdevtools package in /usr/share/fedora/.
>    Basically it's the result of what we've come up at fedora.us during
>    Perl package QA and always finding the same packaging problems in
>    Perl packages. As attached patch demonstrates, you should be able
>    to take over the template for your package and also avoid things like
>    overriding RPM's internal dependency generator or compressing manual
>    pages yourself. The spec template also ensures that installed files
>    (in particular DSOs) are writable and can be stripped automatically.
> 
>  * Missing directories: avoid creating file lists for the %files section.
>    Often you need extra "find" expressions for missing %dir entries.
>    Instead, include files via %perl_vendorarch or %perl_vendorlib which
>    are the arch-specific/arch-independent root directories for Perl
>    modules. Missing directories can be created with insufficient file
>    access permissions depending on umask.
> 
>  * Missing perl :MODULE_COMPAT dependency, because it installs into
>    Perl vendor locations. Fedora spec template has an example.
> 
>  * Avoid appearance of buildroot paths in the %build section. Buildroot
>    should never get the chance to make it into compiled files. Specify
>    buildroot paths in the %install section only.
> 
>  * /usr = %_prefix
> 
>  * Package builds without $RPM_OPT_FLAGS and hence creates a useless
>    debuginfo package. "make OPTIMIZEFLAGS=$RPM_OPT_FLAGS" from Fedora
>    spectemplate fixes that, too.
> 
>  * Move "make test" into the %check spec file section, so it could be
>    disabled at build-time. Example in patch below.
> 
>  * Avoid setting the "Packager" line in the spec file, since you don't
>    want your name appear in broken binary packages built by somebody
>    else. Define the packager in your rpmrc.
> 
> --- perl-DBD-SQLite.spec.old    2005-03-22 04:30:40.000000000 +0100
> +++ perl-DBD-SQLite.spec        2005-04-06 00:15:01.000000000 +0200
> @@ -1,19 +1,16 @@
> -%define _use_internal_dependency_generator 0
> -
>  %define real_name DBD-SQLite
> -%define name perl-%{real_name}
> 
>  Summary: Self Contained RDBMS in a DBI Driver
> -Name: %{name}
> +Name: perl-%{real_name}
>  Version: 1.08
> -Release: 0.0.yjl.0.testing.2
> +Release: 1
>  License: GPL or Artistic
>  Group: System Environment/Libraries
> -Source: ftp://ftp.cpan.org/pub/CPAN/modules/by-module/DBD/%{real_name}-%{version}.tar.gz
> +Source0: ftp://ftp.cpan.org/pub/CPAN/modules/by-module/DBD/%{real_name}-%{version}.tar.gz
>  Url: http://search.cpan.org/~msergeant/DBD-SQLite-%{version}/
> -Packager: Michael A. Peters <mpeters at mac.com>
>  BuildRoot: %{_tmppath}/%{name}-buildroot/
>  BuildRequires: perl-DBI
> +Requires:  perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
> 
>  %description
>  SQLite is a public domain RDBMS database engine that you can find at
> @@ -28,32 +25,28 @@
>  %setup -q -n %{real_name}-%{version}
> 
>  %build
> -CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL PREFIX=$RPM_BUILD_ROOT/usr INSTALLDIRS=vendor < /dev/null
> -make
> +CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL PREFIX=%{_prefix} INSTALLDIRS=vendor < /dev/null
> +make %{?_smp_mflags} OPTIMIZE="$RPM_OPT_FLAGS"
> +
> +%check || :
>  make test
> 
>  %install
>  rm -rf $RPM_BUILD_ROOT
> -make install
> -
> -[ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress
> -
> -find $RPM_BUILD_ROOT \( -name perllocal.pod -o -name .packlist \) -exec rm -v {} \;
> -
> -find $RPM_BUILD_ROOT/usr -type f -print |
> -        sed "s@^$RPM_BUILD_ROOT@@g" |
> -        grep -v perllocal.pod |
> -        grep -v "\.packlist" > %{name}-%{version}-filelist
> -if [ "$(cat %{name}-%{version}-filelist)X" = "X" ] ; then
> -    echo "ERROR: EMPTY FILE LIST"
> -    exit -1
> -fi
> +make pure_install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT
> +find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
> +find $RPM_BUILD_ROOT -type f -name '*.bs' -a -size 0 -exec rm -f {} ';'
> +find $RPM_BUILD_ROOT -type d -depth -exec rmdir {} 2>/dev/null ';'
> +chmod -R u+w $RPM_BUILD_ROOT/*
> 
>  %clean
>  rm -rf $RPM_BUILD_ROOT
> 
> -%files -f %{name}-%{version}-filelist
> -
> +%files
> +%defattr(-,root,root,-)
> +%{perl_vendorarch}/DBD/
> +%{perl_vendorarch}/auto/DBD/
> +%{_mandir}/man3/*
> 
>  %changelog
>  * Sun Mar 13 2005 Michael A. Peters <mpeters at mac.com>
> 
> --
> fedora-extras-list mailing list
> fedora-extras-list at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-extras-list
> 

Thank you - I will fix it.

-- 
http://mpeters.us/




More information about the fedora-extras-list mailing list