On Mar 9, 2011, at 11:53 AM, Per Øyvind Karlsen wrote:

> 2011/3/9 Jeff Johnson <n3...@mac.com>:
>> Nice! And timely!
> But this behaviour is wrong!
> 

From an implementation POV, I agree: wrong.

But there are several other issues with %exclude
that are likely b0rken (have been hysterically, I've forgot,
it has been like 5 years ...) including:

1) RPMTAG_ARCHIVESIZE value is incorrect.
        The summation of stat(2) st_size ended up double counting
        paths mentioned in %exclude

2) symlinks might not be correct.
        There's something about symlinks (and follow/nofollow) behavior
        that's goofy with %exclude and RPMTAG_ARCHIVESIZE summation.

Meanwhile all that was checked in was a toy reproducer for an issue,
not anything else.

> Why would one add additional functionality to a long existence
> %exclude attribute
> to do the same as what already can be done by using 'rm -rf'?
> 

Not suggesting that. But the path of least resistance _MIGHT_ be
to retrofit rpm-4.6.1 behavior (as being de facto what is expected)
in order to get a scheduled/planned transition to "correct" whatever
that might mean.

> And what if one intended to only exclude the file from being archived
> with that specific package, but not from every one (ie. still desired to
> do unpackaged file check on it)
> 
> And what's the sanity behind using %exclude skip file from unpackaged
> files check
> for specific packages?
> "Yes, for the packages 'foo' and 'bar', 'foo' is the package that wants to 
> skip
> the unpackaged file check the most!"
> 
> It makes no sense, if %exclude were actually intended for that
> purpose, it would've
> made a *lot* more sense to not require for it to be used on per-package basis!
> 
> 
> %exclude only gets included in the list of packaged files because it's being
> passed as a file with a special attribute to *not* archive in that specific
> package. The unpackaged files check didn't know anything about these 
> attributes
> and treats files as files..
> 
> Here's one previous reference to the topic being discussed earlier as well:
> http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2007-July/019221.html
> 
> Pleeeaaseee don't make me having to try explain the logics and cause of the
> specific bug that's not really in our rpm version even to begin with. gaaah!
> 

I agree with most of what you said.

(aside)
Hysterically, I got yelled at in 1998 because RPM did not have
an "everything but ..." functionality (aka %exclude).

Because of who yelled, I slipped %exclude into RPM as soon as it appeared in 
PLD.
This was rather late in some RHL release cycle of yore, so there was no time
to fix what was wrong then, or until much later like rpm-4.4.2 because of
other higher priority work like multilib and SElinux and --rollback.

So the hysterical facts are that %exclude has never really been "correct",
and the mixture of behaviors has likely poisoned the usage well (That also
happened with RPMTAG_VERIFYSCRIPT in rpm2.x, where a typo caused the
tag to not work correctly and noone noticed for 1-2 years. YOu can
still see the effects of the brain fart today, where almost no *.spec
files and *.rpm actually have %verify scripts.)

Make sense? I do agree that the behavior in 4.6.1 is less "correct",
but that's never stopped the RFE's for "compatibility" from happening.
And sadly, "compatibility" will never ever be achievable.

73 de Jeff
> --
> Regards,
> Per Øyvind
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> Developer Communication List                        rpm-devel@rpm5.org

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to