pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/27149: use install on non-installed packages when targeting "replace"



>Number:         27149
>Category:       pkg
>Synopsis:       bmake replace fails on non-installed packages.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Oct 05 14:13:01 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        Linux 2.6.8.1
>Organization:
        
>Environment:
        
        
System: Linux bare 2.6.8.1 #5 Wed Sep 29 12:02:32 VET 2004 i686 GNU/Linux
Architecture: i686
Machine: i686
>Description:
        bmake replace on non-installed package, sometimes is useful to alias
        replace->install when you'r mantaining software, By this way you don't 
have
        to check if a pkg is installed or not. bmake update can cause a lot of 
problems
        because it deinstalls a lot of packages (inverse deps)
        
>How-To-Repeat:
        defining UPDATE_TARGET=replace on mk.conf and applying this patch you 
can
        upgrade/install software just typiing "bmake update" without fear of 
loss
        half system
        
>Fix:
--- mk/bsd.pkg.mk.orig     2004-10-05 03:03:41.000000000 -0400
+++ mk/bsd.pkg.mk  2004-10-05 03:25:31.000000000 -0400
@@ -3257,11 +3257,16 @@
 
 .PHONY: do-su-replace
 do-su-replace:
-       @${ECHO_MSG} "${_PKGSRC_IN}> Replacing ${PKGNAME}"
+       @found="`${PKG_INFO} -e \"${PKGNAME}\" || ${TRUE}`"; \
+       case "$$found" in  \
+       "") realtarget="real-su-install"; action="install"; ${_SU_TARGET} ;; \
+       *) \
+       ${ECHO_MSG} "${_PKGSRC_IN}> Replacing ${PKGNAME}" \
        ${_PKG_SILENT}${_PKG_DEBUG}                                     \
        realtarget="real-su-replace";                                   \
        action="replace";                                               \
-       ${_SU_TARGET}
+       ${_SU_TARGET} ;\
+       esac
 
 .PHONY: do-su-undo-replace
 do-su-undo-replace:

        
>Release-Note:
>Audit-Trail:
>Unformatted:
        
        



Home | Main Index | Thread Index | Old Index