Hi,

here's a patch to install perl-modules correctly, tested with
perl-core/Test-Harness and perl-core/PodParser.

Initial problem was:

* checking 18 files for package collisions
existing file /tools/haubi/gentoo/usr/lib/perl5/5.8.8/i386-linux/perllocal.pod 
is not owned by this package
* spent 0.000946998596191 seconds checking for file collisions
* This package is blocked because it wants to overwrite 
* files belonging to other packages (see messages above).
* If you have no clue what this is all about report it
* as a bug for this package on http://bugs.gentoo.org

package perl-core/PodParser-1.34 NOT merged

It turned out that this perllocal.pod indeed was owned by previously
installed perl-core/Test-Harness, because of broken perl-module.eclass's
pod-handling functions.

So what I think of collision-protect: It works as expected, but the
ebuilds/eclasses are incorrect for prefix.

/haubi/
-- 
Michael Haubenwallner                    SALOMON Automation GmbH
Forschung & Entwicklung                  A-8114 Friesach bei Graz
mailto:[EMAIL PROTECTED]  http://www.salomon.at
No HTML/MIME please, see http://expita.com/nomime.html
Index: eclass/perl-module.eclass
===================================================================
--- eclass/perl-module.eclass	(revision 1663)
+++ eclass/perl-module.eclass	(working copy)
@@ -108,7 +108,7 @@
 		einfo "Using ExtUtils::MakeMaker"
 		#perl Makefile.PL ${myconf} \
 		perl Makefile.PL ${myconf} INSTALLMAN3DIR='none'\
-		PREFIX=/usr INSTALLDIRS=vendor DESTDIR=${D}
+		PREFIX=${EPREFIX}/usr INSTALLDIRS=vendor DESTDIR=${EDEST}
 	fi
 }
 
@@ -224,7 +224,7 @@
 		fi
 	fi
 
-	if [ -f /usr/bin/perl ]
+	if [ -f ${EPREFIX}/usr/bin/perl ]
 	then
 		POD_DIR="/usr/share/perl/gentoo-pods/${version}"
 	fi
@@ -234,51 +234,51 @@
 	perlinfo
 	dodir ${POD_DIR}
 
-	if [ -f ${D}${ARCH_LIB}/perllocal.pod ];
+	if [ -f ${EDEST}${ARCH_LIB}/perllocal.pod ];
 	then
 		touch ${D}/${POD_DIR}/${P}.pod
 		sed -e "s:${D}::g" \
-			${D}${ARCH_LIB}/perllocal.pod >> ${D}/${POD_DIR}/${P}.pod
+			${EDEST}${ARCH_LIB}/perllocal.pod >> ${D}/${POD_DIR}/${P}.pod
 		touch ${D}/${POD_DIR}/${P}.pod.arch
 		cat ${D}/${POD_DIR}/${P}.pod >>${D}/${POD_DIR}/${P}.pod.arch
-		rm -f ${D}/${ARCH_LIB}/perllocal.pod
+		rm -f ${EDEST}/${ARCH_LIB}/perllocal.pod
 	fi
 
-	if [ -f ${D}${SITE_LIB}/perllocal.pod ];
+	if [ -f ${EDEST}${SITE_LIB}/perllocal.pod ];
 	then
 		touch ${D}/${POD_DIR}/${P}.pod
 		sed -e "s:${D}::g" \
-			${D}${SITE_LIB}/perllocal.pod >> ${D}/${POD_DIR}/${P}.pod
+			${EDEST}${SITE_LIB}/perllocal.pod >> ${D}/${POD_DIR}/${P}.pod
 		touch ${D}/${POD_DIR}/${P}.pod.site
 		cat ${D}/${POD_DIR}/${P}.pod >>${D}/${POD_DIR}/${P}.pod.site
-		rm -f ${D}/${SITE_LIB}/perllocal.pod
+		rm -f ${EDEST}/${SITE_LIB}/perllocal.pod
 	fi
 
-	if [ -f ${D}${VENDOR_LIB}/perllocal.pod ];
+	if [ -f ${EDEST}${VENDOR_LIB}/perllocal.pod ];
 	then
 		touch ${D}/${POD_DIR}/${P}.pod
 		sed -e "s:${D}::g" \
-			${D}${VENDOR_LIB}/perllocal.pod >> ${D}/${POD_DIR}/${P}.pod
+			${EDEST}${VENDOR_LIB}/perllocal.pod >> ${D}/${POD_DIR}/${P}.pod
 		touch ${D}/${POD_DIR}/${P}.pod.vendor
 		cat ${D}/${POD_DIR}/${P}.pod >>${D}/${POD_DIR}/${P}.pod.vendor
-		rm -f ${D}/${VENDOR_LIB}/perllocal.pod
+		rm -f ${EDEST}/${VENDOR_LIB}/perllocal.pod
 	fi
 }
 
 updatepod() {
 	perlinfo
 
-	if [ -d "${POD_DIR}" ]
+	if [ -d "${EPREFIX}${POD_DIR}" ]
 	then
-		for FILE in `find ${POD_DIR} -type f -name "*.pod.arch"`; do
+		for FILE in `find ${EPREFIX}${POD_DIR} -type f -name "*.pod.arch"`; do
 		   cat ${FILE} >> ${ARCH_LIB}/perllocal.pod
 		   rm -f ${FILE}
 		done
-		for FILE in `find ${POD_DIR} -type f -name "*.pod.site"`; do
+		for FILE in `find ${EPREFIX}${POD_DIR} -type f -name "*.pod.site"`; do
 		   cat ${FILE} >> ${SITE_LIB}/perllocal.pod
 		   rm -f ${FILE}
 		done
-		for FILE in `find ${POD_DIR} -type f -name "*.pod.vendor"`; do
+		for FILE in `find ${EPREFIX}${POD_DIR} -type f -name "*.pod.vendor"`; do
 		   cat ${FILE} >> ${VENDOR_LIB}/perllocal.pod
 		   rm -f ${FILE}
 		done

Reply via email to