pkgsrc-Bugs archive

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

pkg/26603: mk-files overwrites files while installing (patch included)



>Number:         26603
>Category:       pkg
>Synopsis:       mk-files overwrites files while installing (patch included)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Aug 09 11:09:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Roland Illig
>Release:        
>Organization:
>Environment:
System: Linux wwid 2.4.22-1-k7 #5 Sat Oct 4 14:11:12 EST 2003 i686 GNU/Linux
Architecture: i686

        
>Description:
when installing, mk-files may overwrite some existing files in
${PREFIX}/share/mk, but does not include them in the PLIST. The files
should not be overwritten.

>How-To-Repeat:
cd $pkgsrc/devel/mk-files && bmake package

>Fix:

NB: The old installation created some symlinks, which my patched one
does not do. So be careful applying this patch.

--- Makefile    21 Feb 2004 00:15:44 -0000      1.17
+++ Makefile    9 Aug 2004 10:37:38 -0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.17 2004/02/21 00:15:44 sjg Exp $
+# $NetBSD: Makefile,v 1.16 2004/02/02 06:40:11 sjg Exp $
 #
 
 DISTNAME=      mk-20040214
@@ -18,20 +18,24 @@
 .include "../../mk/bsd.prefs.mk"
 
 PLIST_SRC=${WRKDIR}/.PLIST_SRC
+PLIST_BASENAMES=${WRKDIR}/.PLIST_BASENAMES
 
-do-install:
-       ${WRKSRC}/install-mk ${PREFIX}/share/mk
+do-install: ${PLIST_BASENAMES}
+       for f in `cat ${PLIST_BASENAMES}`; do \
+         ${INSTALL_DATA} ${WRKSRC}/$$f ${PREFIX}/share/mk/$$f; \
+       done
 
 .include "../../mk/bsd.pkg.mk"
 
-# The logic below mimics what install-mk does.
-# Ie. it won't install a sys.mk if a standard BSD one exists
-# same goes for the bsd.*.mk files (it makes the symlinks to *.mk)
-${WRKSRC}/FILES:       extract
-${WRKDIR}/.PLIST_SRC:  ${WRKSRC}/FILES
-       @( ${GREP} '^[a-z].*\.mk' $> ; \
-       [ -f /usr/share/mk/sys.mk ] || ${ECHO} sys.mk; \
-       [ -f /usr/share/mk/bsd.prog.mk ] || \
-       for f in dep doc init lib man nls obj own prog subdir; do \
-               ${ECHO} bsd.$$f.mk; \
-       done ) | ${SED} 's,^,share/mk/,' > $@
+${PLIST_SRC}:          ${PLIST_BASENAMES}
+       ${SED} 's,^,share/mk/,' $> > $@
+
+${PLIST_BASENAMES}:    ${WRKSRC}/FILES
+       @{ \
+         ${GREP} '^[a-z].*\.mk' $> ; \
+         ${TEST} -f /usr/share/mk/sys.mk -o -f ${PREFIX}/share/mk/sys.mk || 
${ECHO} sys.mk; \
+         ${TEST} -f /usr/share/mk/bsd.prog.mk -o -f 
${PREFIX}/share/mk/bsd.prog.mk || \
+         for f in dep doc init lib man nls obj own prog subdir; do \
+           ${ECHO} bsd.$$f.mk; \
+         done; \
+       } > $@
>Release-Note:
>Audit-Trail:
>Unformatted:



Home | Main Index | Thread Index | Old Index