This is more of a discussion about how openpkg tools find dependencies
and thus rebuilds and/or installs rpms.  It appears that if something is
listed as a BuildPreReq or as a PreReq, then it will want to rebuild
and/or install the rpm.  There is a subtle problem with this, I think.
I'm thinking that openpkg tools should only rebuild the rpms if it is
listed under BuildPreReq and not worry about the PreReq.  It should, of
course, worry about the PreReq when checking to see if that rpm is
installed or not, but that's it.  BuildPreReq would ideally be used to
state what other libraries or software needs to exist during (re)build
of a given package.  PreReq would list the various software that needs
to be installed during install time in order for the software to even
function properly.  These two things can be different and ultimately,
probably should be different in most cases.  Now, don't get me wrong.  I
realize this would require some serious accountability and attention to
detail.  I'm just curious if it would be possible to modify openpkg
tools so that it only rebuilds and installs dependent rpms if it in the
BuildPreReq but not in the PreReq.

Let me explain the dilemma so that it is (hopefully) understood.  I will
use an example using the latest sendmail security fix.  When the fix is
released, obviously, sendmail needs to be rebuilt and deployed.  In
addition to rebuilding sendmail, openpkg tools sees various other rpms
as also needing to be rebuilt then reinstalled due to static library
linking.  For our environment, this includes: dk-milter; imapd; inn;
mailman; majordomo; mapson; mimedefang; nagios; nail; nn; pine; pks;
qpoper; pb4sd; and, shiela.  Now this isn't that many really, but how
many of these actually need to be rebuilt and reinstalled?  I don't
think any of them need to be rebuilt actually.  I'm pretty sure none of
these dependent rpms are build with statically linked sendmail
libraries.  So, why is this a problem?  Of these rpms six of them are
used as part of critical (i.e. high availability) services.  When these
are reinstalled there is a subtle, yet noticeable by many, blip in the
radar.  There may even be in some rare instances a complete failure of
the service because it doesn't restart properly or something of that
nature.  Obviously, in any critical service environment, this presents a
problem.

Now, as for the solution, I can foresee a couple things to do.  One is
that some standards need to be written on how to write spec files.
Within this standard document for writing spec files it should be
indicated that BuildPreReq and PreReq have the two different
aforementioned definitions for very specific reasons.  This, of course,
is only one piece.  The other piece is going to be that we have to go
through all of the current spec files and evaluate if the various
BuildPreReq and PreReq values are defined in the manner we decide.  (By
"we" I mean the OpenPKG foundation and by "decide" I mean that I am not
stating how it should be done only possible ways it could be done and
thus a decision needs to be made.)  In addition, the openpkg-tools will
need some reworking.  How much I don't know.  Maybe it's just a small
tweak or maybe it's a major undertaking.  That will have to be figured
out (unless it's already known) then the time to do it will have to be
determined.  That's the tough part...time.  Time is our nemesis!  We
should've never made that up.  ;-)  In any case, what say you all?
Thoughts/ideas? 

-- 
David M. Fetter - Portland State University - UNIX Systems Administrator
"Reality is merely an illusion, albeit a very persistent one." ~Einstein

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to