Bug 202224 - Review Request: libtirpc
Summary: Review Request: libtirpc
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: David Cantrell
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: FC-ACCEPT
TreeView+ depends on / blocked
 
Reported: 2006-08-11 17:18 UTC by Steve Dickson
Modified: 2013-01-10 01:30 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2006-08-17 15:57:56 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Steve Dickson 2006-08-11 17:18:43 UTC
Spec URL: http://people.redhat.com/steved/tirpc/lib/libtirpc.spec
SRPM URL: http://people.redhat.com/steved/tirpc/lib/libtirpc-0.1.7-2.fc6.src.rpm
Description:  This package contains SunLib's implementation of 
transport-independent RPC (TI-RPC) documentation.  This library forms a piece of 
the base of Open Network Computing (ONC), and is derived directly from the
Solaris 2.3 source.

This package also support RPC over IPv6 which will be needed for
all the RPC applications to support IPv6

Comment 2 Bill Nottingham 2006-08-11 17:58:07 UTC
What's going to use it initially?

Comment 3 Steve Dickson 2006-08-11 18:49:13 UTC
rpcbind which will replace portmapper. I'm currently working on the
rpcbind rpm now, but I need the libtirpc lib in place to move forward.

Once these two rpms are in place, I can start moving forward on porting 
all the RPC applications (yp*,nfs*, etc) to the new library resulting 
in making them IPv6 aware... 

Comment 7 Bill Nottingham 2006-08-12 00:52:08 UTC
OK, I suppose. Would have really liked to have had this for feature freeze. :)

Comment 8 Steve Dickson 2006-08-14 16:08:02 UTC
Updated Spec and SRPM. Found a problem with last release.

Spec URL: http://people.redhat.com/steved/tirpc/lib/0.1.7-3/libtirpc.spec
SRPM URL: 
http://people.redhat.com/steved/tirpc/lib/0.1.7-3/libtirpc-0.1.7-3.fc6.src.rpm

WRT Bill's Comment #7, I totally agree... sooner whould have been better...
So now if you would like be to wait until early FC7 for this code, just let 
me know... 

Comment 9 Jesse Keating 2006-08-14 19:43:57 UTC
NEEDSWORK:
- Use %{name}-%{version} in URL field as to not have to update it every time the
version changes.
- Remove Requires(postun) and (pre) on ldconfig, as %post -p picks that up
automagically
- Replace %makeinstall with make install DESTDIR=%{buildroot}.  %makeinstall has
been known to break packages in bad ways and its use is highly discouraged.
- Don't package static libraries unless there is a VERY good reason to do so.
- Don't list gssapi requirement specifically, rpm will figure that out on its
own when building the package.

Comment 10 Steve Dickson 2006-08-15 11:30:36 UTC
> - Use %{name}-%{version} in URL field as to not have to update it every time the
>   version changes.
Done.

> - Remove Requires(postun) and (pre) on ldconfig, as %post -p picks that up
>   automagically
Done.

> - Replace %makeinstall with make install DESTDIR=%{buildroot}.  %makeinstall 
>   has been known to break packages in bad ways and its use is highly 
>   discouraged.
Done. This good to know... I thought %makeinstall was the approved way... I
guess I'll need to make this change other packages as well...

> - Don't package static libraries unless there is a VERY good reason to do so.
So we no longer support static libraries in devel packages? I don't think 
that is a very good idea.. Being that this is a relatively small library
and the RPC code is pretty legacy code... I really don't think excluding the
static library is a good idea...

> - Don't list gssapi requirement specifically, rpm will figure that out on its
>   own when building the package.
So your saying to removed the "Requires:  libgssapi" from the spec file?
How will rpm know that this library needes libgssapi? I must be missing
something... 

Spec file and RPM updated with first three requests... 



Comment 11 Ulrich Drepper 2006-08-15 13:55:55 UTC
> I really don't think excluding the static library is a good idea...

There really is no good reason to ship a static archive.  You're not doing
anybody a favor.  People might inadvertendly link against it and then security
or bug updates don't apply.  Of you want to debug a system and use a specially
annotated DSO which would not be picked up.

Archives should be distributed only for _very_ good reasons.  Small and "pretty
legacy" code is none of them.

Comment 12 Jesse Keating 2006-08-15 14:41:59 UTC
I agree w/ Ulrich.

As to the rpm requirement, When building a package, RPM will ldd the libraries
to see what other libraries it is linked against and uses that to populate the
Requires list.  I tested your package myself by removing the explicit Requires:
line, and the rpm that was produced DID have a requirement on the gssapi
library.  This is the preferred method of determining deps.

Comment 13 Steve Dickson 2006-08-15 20:57:56 UTC
Just curious.... what is an valid reason to include a static library?

Comment 15 Jesse Keating 2006-08-15 21:31:24 UTC
I personally can't think of any off the top of my head.  Others have come up
with reasons, I think maybe some stuff used in a boot environment where you
don't want shared libs perhaps.

Comment 17 Jason Tibbitts 2006-08-15 21:43:47 UTC
Bah, mid-air collision.  But I'll submit this anyway.

There are precious few reasons:

The thing just won't build a .so.

It needs to be linked against something used at boot time or in rescue or single
user mode.

That's about all I can think of.  I've seen that argument for things like
numerical libraries where folks want to link and then run on a different system
without having to install any additional libraries, but I don't recall whether
that argument was persuasive.

Just realised I'm talking about Extras here and this is a Core review, so
perhaps the criteria are different.

Comment 18 Steve Dickson 2006-08-15 21:55:09 UTC
> - Don't package static libraries unless there is a VERY good reason to do so.
Done.

> - Don't list gssapi requirement specifically, rpm will figure that out on its
>   own when building the package.
Done.

Spec file and srpm have been updated.

Comment 19 Jesse Keating 2006-08-15 23:24:01 UTC
Whoops, just noticed that buildroot isn't quite right.  You have:
%{_tmppath}/%{name}-%{version}-root-%(%{__id_u} -n)
but the guidelines prefer:
%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

By using make install DESTDIR=%{buildroot} you no longer have to use
--prefix=%{buildroot} as files install in the right place.

%{_sysconfdir}/netconfig should probably be marked as a config file, perhaps
even config(noreplace).  'netconfig' is a pretty generic term, does anything
else use it or are you claiming that namespace?  (:

Comment 20 Jesse Keating 2006-08-15 23:27:49 UTC
Proposed patch to fix things up:

Also changes my example removal of static libs to use your preferred
%{buildroot} rather than $RPM_BUILD_ROOT, for consistency sake.

--- ./libtirpc.spec.jk  2006-08-15 18:03:45.000000000 -0400
+++ ./libtirpc.spec     2006-08-15 18:36:58.000000000 -0400
@@ -51,7 +51,7 @@
 
 %build
 autoreconf -fisv
-%configure --enable-gss --prefix=%{buildroot}
+%configure --enable-gss
 make all
 
 %install
@@ -59,7 +59,7 @@
 mkdir -p %{buildroot}/etc
 make install DESTDIR=%{buildroot}
 # Don't package .a or .la files
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.{a,la}
+rm -f %{buildroot}%{_libdir}/*.{a,la}
 
 %post  -p /sbin/ldconfig
 
@@ -72,7 +72,7 @@
 %defattr(-,root,root)
 %doc AUTHORS ChangeLog NEWS README
 %{_libdir}/libtirpc.so.*
-%{_sysconfdir}/netconfig
+%config(noreplace) %{_sysconfdir}/netconfig
 
 %files devel
 %defattr(0644,root,root,755)

Comment 21 Steve Dickson 2006-08-16 00:00:26 UTC
Made the following changes and updated the spec file and srpm.

diff -r1.6 libtirpc.spec
9c9
< BuildRoot:      %{_tmppath}/%{name}-%{version}-root-%(%{__id_u} -n)
---
> BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
54c54
< %configure --enable-gss --prefix=%{buildroot}
---
> %configure --enable-gss
62c62
< rm -f $RPM_BUILD_ROOT%{_libdir}/*.{a,la}
---
> rm -f %{buildroot}%{_libdir}/*.{a,la}
75c75
< %{_sysconfdir}/netconfig
---
> %config(noreplace)%{_sysconfdir}/netconfig


Comment 22 Jesse Keating 2006-08-16 00:04:32 UTC
Ok, approved.  I'm supposing that this will be a dep of other things, so it
doesn't need to be explicitly listed in comps, correct?

Please close when you've built.

Comment 23 Steve Dickson 2006-08-17 15:57:56 UTC
Build task:

http://brewweb.devel.redhat.com/brew/taskinfo?taskID=160309


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