RPM Community Forums

Mailing List Message of <rpm-devel>

Re: [CVS] RPM: rpm/ CHANGES rpm/lib/ depends.c

From: Jeff Johnson <n3npq@mac.com>
Date: Thu 17 Jul 2008 - 17:47:03 CEST
Message-id: <92E66AA1-2FD5-4CF8-BA4E-E531264ABCBD@mac.com>
Lemme attempt to provide some context to this reversion ..


First of all, the issue of parentdir deps was discussed here:

     https://lists.dulug.duke.edu/pipermail/rpm-devel/2006-March/ 
000942.html

My reading of that thread sees unanimous "+1", although Frank Cusack
was arguably neutral after discussion.

Several vendor maintainers (and @rpm5.org members) participated
in that discussion.

The issue of ordering with dependencies is quite mysterious to most.
 From a forward looking POV, I don't see any solution to unreliable
added dependencies from packagers otgher than to use some
additional information from file pathg hierarchies, which is at least
quite clearly "reliable" in the sense that there is no question of
what the parent directory is any any path like
     /usr/bin/rpm

There's already enough FUD and confusion around regarding
how to solve *.rpm ordering issues.

E.g. here are 2 examples of the dependency ordering confusion
that I've seen in the last 2 weeks:

1) the package flaws described here:

	https://bugzilla.redhat.com/show_bug.cgi?id=223642

2) the apparently authoritative suggestions here:

	https://lists.dulug.duke.edu/pipermail/rpm-maint/2008-July/001063.html

No matter what anyone thinks,

     PreReq: != Requires(pre)

and fiddling with rpm dependencies to solve ordering problems is
way harder than it looks.

Hint: get rid of dependency loops first.

So for the following reasons, expressed to Per on IRC, I'm very much  
against
distributing RPM with a means to disable parendir (and file linkto)  
dependencies:

1) the discussion in 3/2006 was in favor of adding parentdir deps.

2) more reliable (and transparently objective) hints for ordering  
packages is
increasingly needed. I can't even begin to attempt to use parentdir deps
for ordering unless they are routinely enabled (just like I can't  
write a depsolver
if ntweork transport is "opt-in", the usage cases will be vanishingly  
small, too
small to even attempt an implementation imho).

But I'm perfectly willing to be reversed, either with code to do  
whatever under
     #define RPM_VENDOR_FOO
or by achieving consensus (hehe, in rpm? never gonna happen ... ;-)  
about
whether perentdir and file linktos should be "opt-in" or "opt-out".

(aside) But I'm unwilling to see "1st patch wins!" without additional  
discussion, way
too much of my life has been wasted with this issue already, I first  
suggested
parentdir deps for RHL 7.1 in like 2000, and I'd like to make  
progress this decade,
rather than next decade, on the issue. Life is short ...

No problems at all with Per at all, he's just wussy ;-)

The issue or parentdir dependencies needs to be discussed first ..

73 de Jeff




	
On Jul 17, 2008, at 10:37 AM, Per Øyvind Karlsen wrote:

>   RPM Package Manager, CVS Repository
>   http://rpm5.org/cvs/
>    
> ______________________________________________________________________ 
> ______
>
>   Server: rpm5.org                         Name:   Per Øyvind Karlsen
>   Root:   /v/rpm/cvs                       Email:  pkarlsen@rpm5.org
>   Module: rpm                              Date:   17-Jul-2008  
> 16:37:45
>   Branch: HEAD                             Handle: 2008071714374500
>
>   Modified files:
>     rpm                     CHANGES
>     rpm/lib                 depends.c
>
>   Log:
>     wuss out optional dirname & symlink deps and rather look into  
> it some
>     time later..
>
>   Summary:
>     Revision    Changes     Path
>     1.2492      +0  -2      rpm/CHANGES
>     1.406       +0  -8      rpm/lib/depends.c
>    
> ______________________________________________________________________ 
> ______
>
>   patch -p0 <<'@@ .'
>   Index: rpm/CHANGES
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.2491 -r1.2492 CHANGES
>   --- rpm/CHANGES	17 Jul 2008 13:57:42 -0000	1.2491
>   +++ rpm/CHANGES	17 Jul 2008 14:37:45 -0000	1.2492
>   @@ -1,7 +1,5 @@
>
>    5.1.0 -> 5.2a0:
>   -    - proyvind: add %{_check_symlink_deps} & % 
> {_check_dirname_deps} to optionally enable/disable
>   -      directory & symlink dependencies.
>        - proyvind: disable filetriggers for src.rpms.
>        - jbj: band-aid test for tag->tagno != NULL for now. better  
> needs doing.
>        - jbj: fix: --changelog segfault from rpmpopt.in typo.
>   @@ .
>   patch -p0 <<'@@ .'
>   Index: rpm/lib/depends.c
>    
> ====================================================================== 
> ======
>   $ cvs diff -u -r1.405 -r1.406 depends.c
>   --- rpm/lib/depends.c	17 Jul 2008 13:57:42 -0000	1.405
>   +++ rpm/lib/depends.c	17 Jul 2008 14:37:45 -0000	1.406
>   @@ -1462,8 +1462,6 @@
>        int terminate = 2;		/* XXX terminate if rc >= terminate */
>        int rc;
>        int ourrc = 0;
>   -    int dirname_deps;
>   -    int symlink_deps;
>
>        requires = rpmdsInit(requires);
>        if (requires != NULL)
>   @@ -1539,8 +1537,6 @@
>    	}
>        }
>
>   -    dirname_deps = rpmExpandNumeric("%{?_check_dirname_deps}%{?! 
> _check_dirname_deps:1}");
>   -    if (dirname_deps) {
>        dirnames = rpmdsInit(dirnames);
>        if (dirnames != NULL)
>        while (ourrc < terminate && rpmdsNext(dirnames) >= 0) {
>   @@ -1581,10 +1577,7 @@
>    	    /*@switchbreak@*/ break;
>    	}
>        }
>   -    }
>
>   -    symlink_deps = rpmExpandNumeric("%{?_check_symlink_deps}%{?! 
> _check_symlink_deps:1}");
>   -    if (symlink_deps) {
>        linktos = rpmdsInit(linktos);
>        if (linktos != NULL)
>        while (ourrc < terminate && rpmdsNext(linktos) >= 0) {
>   @@ -1602,7 +1595,6 @@
>    	dscolor = rpmdsColor(linktos);
>    	if (tscolor && dscolor && !(tscolor & dscolor))
>    	    continue;
>   -    }
>
>    	rc = unsatisfiedDepend(ts, linktos, adding);
>
>   @@ .
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> CVS Sources Repository                                rpm-cvs@rpm5.org
Received on Thu Jul 17 17:49:52 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.