Bug 51193
Summary: | RFE: %_netsharedpath mechanism is naive, needs redesign | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Enrico Scholz <rh-bugzilla> |
Component: | rpm | Assignee: | Jeff Johnson <jbj> |
Status: | CLOSED WONTFIX | QA Contact: | David Lawrence <dkl> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | aleksey |
Target Milestone: | --- | Keywords: | FutureFeature |
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Enhancement | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2004-12-07 23:59:51 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 50670, 51188, 52742, 52743, 59494, 61147, 71665, 71676, 73321, 91751, 91752, 132846, 132847, 142103 |
Description
Enrico Scholz
2001-08-08 12:24:17 UTC
Agreed %_netsharedpath is pretty feeble and complicated mechanism. Rather than adding yet more complicated macro glop to do the right thing, I suggest an alternative approach 1) Classify all files, in this case, mark a file as an "info" file. 2) Associate actions with each class, in this case, the install action is %{__install_info} 3) Parameterize the actions with per-install-system configuration, in this case the (default) parameter is %{_infodir}/my-doc 4) Enrich the transaction state machine to automagically perform actions for each file in a class. 5) Make the transaction state machine sensitive to transaction context like %_netsharedpath The end result would essentially factor most of the operations now done in %post et al scriptlets out of packages, and into the installer (i.e. rpm) context without the cumbersome artifacts like "rpm --eval" to reacquire the transaction context. How would a package fit into this scheme whose files can not be classified or are used only by this package? An example is anonftp: | $ rpm -q --scripts anonftp | ... | preuninstall scriptlet (through /bin/sh): | if [ $1 = 0 ]; then | rm -f /var/ftp/lib/* /var/ftp/bin/* | fi or XFree86 | $ rpm -q --scripts XFree86 | ... | postinstall scriptlet (through /bin/sh): | { | for dir in lbxproxy proxymngr rstart xserver ; do | [ ! -L /usr/X11R6/lib/X11/$dir -a ! -d /usr/X11R6/lib/X11/$dir ] && \ | ln -snf ../../../../etc/X11/$dir /usr/X11R6/lib/X11/$dir || : [see bug #51188 and bug #50670] What is with packages which are executing special installation-programs in their scriptlets (e.g. glibc, see bug #50667). Yes, there will always be execeptions. I'm talking about regularizing the 20 or so common actions that constitute the majority of %post et al scriptlets. The existing mechanism will remain. I'm gonna use this bug as a collection point for redesigning netsharedpath functionality. *** Bug 4330 has been marked as a duplicate of this bug. *** *** Bug 3229 has been marked as a duplicate of this bug. *** One of these days.... I'm going to redo all the X rpm scripts from scratch. A lot of crap in there probably can go. OK, there's a bug pile on here and no suggestions for better replacement for %_netsharedpath. So my intent -- asking for suggestions for better ideas -- is not being served anymore. AFAIAC, %_netsharedpath is the best known mechanism, and better solutions are at odds with my "stable rpm" prime directive. Hence WONTFIX. hehe, it's a clever trick to change the initial summary/request of | Add functionality to test if path is in %_netsharedpath into | RFE: %_netsharedpath mechanism is naive, needs redesign and wait 3 years till everybody forgets this change. So, it is easier to say WONTFIX... But my mailarchive never forgets... And to clearify things... I never said that %_netsharedpath is naive -- it is doing exactly this, for what it was designed (ok... not exactly... there are other 3 year old bugs about misclassification of parent-directories... but this is another issue and when we let pass other 3 years, we can close this with WONTFIX also). I just wanted a simple resp. standardized method to test in %scriptlets whether a path is covered by %_netsharedpath. |