Bug 428566 - Review Request: gnome-build - GNOME build framework
Review Request: gnome-build - GNOME build framework
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Mamoru TASAKA
Fedora Extras Quality Assurance
:
Depends On: 430559
Blocks:
  Show dependency treegraph
 
Reported: 2008-01-13 09:12 EST by Debarshi Ray
Modified: 2008-02-02 17:06 EST (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-02-02 17:06:01 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
mtasaka: fedora‑review+
kevin: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Debarshi Ray 2008-01-13 09:12:41 EST
Spec URL: http://rishi.fedorapeople.org/gnome-build.spec
SRPM URL: http://rishi.fedorapeople.org/gnome-build-0.2.0-1.fc8.src.rpm


Description:

GNOME build framework provides the project management components of the
development environment. This includes management of source-code resources,
generation of makefiles, and build management.
Comment 1 Debarshi Ray 2008-01-13 09:15:49 EST
Koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=345255

I inherited this package from Paul F. Johnson, and need help with some of the
Perl specific portions of this package. My knowledge of Perl is very
rudimentary, so any help in this regard will be appreciated.

I find that the Spec file
(http://cvs.fedoraproject.org/viewcvs/rpms/gnome-build/devel/gnome-build.spec?view=markup)
contains:

Provides:       perl(GBF::Make)

[...]

cat << \EOF > %{name}-prov
#!/bin/sh
%{__perl_provides} $* |\
 sed -e '/perl(Make)/d' \
     -e '/perl(Make::Target)/d' \
     -e '/perl(Make::Rule::Vars)/d' \
     -e '/perl(Make::Rule)/d'
EOF

%define __perl_provides %{_builddir}/%{name}-%{version}/%{name}-prov
chmod +x %{__perl_provides}

cat << \EOF > %{name}-req
#!/bin/sh
%{__perl_requires} $* |\
 sed -e '/perl(Make)/d' \
     -e '/perl(Make::Target)/d' \
     -e '/perl(Make::Rule::Vars)/d' \
     -e '/perl(Make::Rule)/d'
EOF

%define __perl_requires %{_builddir}/%{name}-%{version}/%{name}-req
chmod +x %{__perl_requires}

However, in the %files section does not put anything in
/usr/lib/perl5. So what is the use of these lines?

There are some rpmlint grumblings due to this portion, which I will fix in due
course.
Comment 3 Mamoru TASAKA 2008-01-21 12:18:08 EST
(In reply to comment #1)
 
> I find that the Spec file
> contains:
> 
> Provides:       perl(GBF::Make)
> 
> [...]
> 
> cat << \EOF > %{name}-prov
> #!/bin/sh
> %{__perl_provides} $* |\
>  sed -e '/perl(Make)/d' \
>      -e '/perl(Make::Target)/d' \
>      -e '/perl(Make::Rule::Vars)/d' \
>      -e '/perl(Make::Rule)/d'
> EOF
> 
> %define __perl_provides %{_builddir}/%{name}-%{version}/%{name}-prov
> chmod +x %{__perl_provides}
> 
> cat << \EOF > %{name}-req
> #!/bin/sh
> %{__perl_requires} $* |\
>  sed -e '/perl(Make)/d' \
>      -e '/perl(Make::Target)/d' \
>      -e '/perl(Make::Rule::Vars)/d' \
>      -e '/perl(Make::Rule)/d'
> EOF
> 
> %define __perl_requires %{_builddir}/%{name}-%{version}/%{name}-req
> chmod +x %{__perl_requires}
> 
> However, in the %files section does not put anything in
> /usr/lib/perl5. So what is the use of these lines?


Well, actually
---------------------------------------------------------------------------------
[tasaka1@localhost ~]$ `rpm --eval %__perl_provides` /usr/share/gnome-build/GBF/*.pm
perl(GBF::AmFiles)
perl(GBF::General)
perl(Make) = 1.00
perl(Make::Rule)
perl(Make::Rule::Vars)
perl(Make::Target)
----------------------------------------------------------------------------------

and perl(MakeXXXX) is unwilling. Also:
----------------------------------------------------------------------------------
[tasaka1@localhost ~]$ `rpm --eval %__perl_requires` /usr/bin/gbf-mkfile-parse 
perl(GBF::General)
perl(GBF::Make)
perl(strict)
----------------------------------------------------------------------------------
This contains 'perl(GBF::Make)'.

I will review this later. By the way I would appreciate it if you
would review my review request (bug 429443)
Comment 4 Mamoru TASAKA 2008-01-21 12:55:40 EST
For 0.2.0-2:

* pkgconfig .pc file <-> -devel package Requires
  - %_libdir/pkgconfig/%name-1.0.pc contains:
-----------------------------------------------------------
    10  Requires:  libgnome-2.0 gtk+-2.0 libxml-2.0 gdl-1.0 gdl-gnome-1.0
-----------------------------------------------------------
     This means that %name-devel package should have
     "Requires: libgnome-devel, libxml2-devel, libgdl-devel" as well
     as "Requires: gtk2-devel".

     However, are these Requires actually needed? (gtk2-devel is really
     needed as header files in gnome-build-devel actually requires header
     files in gtk2-devel). Please either
     - add more Requires to gnome-build-devel
     - or fix pkgconfig file.

* Timestamps
  - To keep timestamps on installed files, I usually recommend to use:
-----------------------------------------------------------
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
-----------------------------------------------------------
    This usually works for recent autotool-based Makefiles.
Comment 5 Debarshi Ray 2008-01-23 23:04:52 EST
(In reply to comment #4)

> * pkgconfig .pc file <-> -devel package Requires
>   - %_libdir/pkgconfig/%name-1.0.pc contains:
>
> [...]
>
>      However, are these Requires actually needed? (gtk2-devel is really
>      needed as header files in gnome-build-devel actually requires header
>      files in gtk2-devel).

It turns out that the libgdl-devel package (maintained by me) also suffers from
the same problem. I have contacted upstream (gnome-build and libgdl have
overlapping upstream) about this and just want to hear what they have to say.

> * Timestamps
>   - To keep timestamps on installed files, I usually recommend to use:

Fixed.

Will post the Spec/SRPM soon.
Comment 7 Debarshi Ray 2008-01-24 17:54:25 EST
Now that I see it, I am not sure if having

BuildRequires:	libtool
[...]
make LIBTOOL=%{_bindir}/libtool 

is a good idea or not? Are we not better off sticking to the one generated by
the configure script? I can not find anything about this on
http://fedoraproject.org/wiki/Packaging/Guidelines
Comment 8 Mamoru TASAKA 2008-01-25 10:17:28 EST
Okay.

(In reply to comment #7)
> make LIBTOOL=%{_bindir}/libtool 

You are not the first person who are using this :)

-------------------------------------------------------------------
   This package (gnome-build) is APPROVED by me
-------------------------------------------------------------------
Comment 9 Debarshi Ray 2008-01-25 12:48:28 EST
> (In reply to comment #7)
> > make LIBTOOL=%{_bindir}/libtool 
> 
> You are not the first person who are using this :)

Actually I do not want to use it if there is no visible problem in the default
libtool, and most of my existing packages don't need to use this external
libtool package. So if the packaging guidelines allow, I will want to remove
this mechanism.

The only reason why it is there is because the previous maintainer had used it.
(I have dropped him a mail regarding this.)
Comment 10 Debarshi Ray 2008-01-25 12:52:50 EST
New Package CVS Request
=======================
Package Name: gnome-build
Short Description: GNOME build framework
Owners: rishi
Branches: F-7 F-8
InitialCC: 
Cvsextras Commits: yes

It is possible that the necessary changes are already there in PackageDB and/or
CVS since I inherited this from Paul F. Johnson.
Comment 11 Kevin Fenzi 2008-01-25 14:53:10 EST
Yeah, everything looks ok on the cvs/packagedb side from what I can see. 
Feel free to reset the fedora-cvs flag if you need anything further. 
Comment 12 Debarshi Ray 2008-02-02 14:28:39 EST
It fails to build in devel:
http://koji.fedoraproject.org/koji/taskinfo?taskID=391037

F-7 and F-8 build successfully:
http://koji.fedoraproject.org/koji/taskinfo?taskID=391014
http://koji.fedoraproject.org/koji/taskinfo?taskID=390968

It is strange since the failure seems to be related to code in regex.h which
comes from glibc-header, and it builds fine on my local machine (rpmbuild -ba
gnome-build.spec) with the latest gcc-4.3 and glibc packages from Rawhide.

Any ideas?
Comment 13 Debarshi Ray 2008-02-02 17:05:26 EST
Defining _GNU_SOURCE fixed it:

%build
%if 0%{?fc9}
  export CPPFLAGS="-D_GNU_SOURCE"
%endif

%configure --disable-static

Note You need to log in before you can comment on or make changes to this bug.