Bug 90220

Summary: emulators/linux_base-8 Makefile typo cause install error
Product: Ports & Packages Reporter: SANETO Takanori <sanewo>
Component: Individual Port(s)Assignee: freebsd-emulation (Nobody) <emulation>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description SANETO Takanori 2005-12-10 23:00:23 UTC
              Due to typo in Makefile, emulators/linux_base-8 installation fails with following message:

mv: /compat/linux/etcnsswitch.conf.dist: No such file or directory

Fix: 

Following patch should fix this:

--- Makefile    4 Dec 2005 13:12:08 -0000       1.112
+++ Makefile    10 Dec 2005 22:16:45 -0000
@@ -145,7 +145,7 @@
                ${ECHO} $$R; \
                ${RPM} -U ${RPMFLAGS} ${RPMDIR}/$$R; \
        done
-       @${MV} ${PREFIX}/etcnsswitch.conf.dist ${PREFIX}/etc/nsswitch.conf.dist
+       @${MV} ${PREFIX}/etc/nsswitch.conf.dist ${PREFIX}/etc/nsswitch.conf.dist
        @test -f ${PREFIX}/etc/nsswitch.conf || cp ${PREFIX}/etc/nsswitch.conf.dist \
                ${PREFIX}/etc/nsswitch.conf
        @${FIND} ${PREFIX}/bin ${PREFIX}/sbin/ ${PREFIX}/usr/bin \
How-To-Repeat:               cd /usr/ports/emulators/linux_base-8; make install
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2005-12-10 23:03:19 UTC
Responsible Changed
From-To: freebsd-ports-bugs->freebsd-emulation

Over to maintainer
Comment 2 Alexander Leidinger 2005-12-11 16:28:36 UTC
Hi,

I can't reproduce this. Here it works just fine. The
etcnsswitch.conf.dist file is created (have a look at the "FIXME"
comment in the makefile) and moved to the right directory.

Can you please do a "portupgrade -f linux_base-8" and report back if
the error persists?

Which version of the rpm port are you using?

Bye,
Alexander.

-- 
                  Weird enough for government work.

http://www.Leidinger.net                       Alexander @ Leidinger.net
  GPG fingerprint = C518 BC70 E67F 143F BE91  3365 79E2 9C60 B006 3FE7
Comment 3 SANETO Takanori 2005-12-11 23:33:01 UTC
Hi,
My rpm port was rpm-4.0.4_3 (archivers/rpm4).
With rpm-3.0.6_10, it worked just fine (no installation error, at least).

I now realize that my patch was meaningless.
(I thought it moves from WRKDIR to PREFIX, but...)

Sorry for confusion.

Alexander Leidinger wrote:
> Hi,
> 
> I can't reproduce this. Here it works just fine. The
> etcnsswitch.conf.dist file is created (have a look at the "FIXME"
> comment in the makefile) and moved to the right directory.
> 
> Can you please do a "portupgrade -f linux_base-8" and report back if
> the error persists?
> 
> Which version of the rpm port are you using?
> 
> Bye,
> Alexander.
>
Comment 4 Alexander Leidinger 2005-12-12 09:47:20 UTC
SANETO Takanori <sanewo@ba2.so-net.ne.jp> wrote:

> Hi,
> My rpm port was rpm-4.0.4_3 (archivers/rpm4).
> With rpm-3.0.6_10, it worked just fine (no installation error, at least).
>
> I now realize that my patch was meaningless.
> (I thought it moves from WRKDIR to PREFIX, but...)

Your patch: yes.
Your bogreport: not at all.

I try to get time this week to fix the issue for rpm-4.

Bye,
Alexander.

-- 
http://www.Leidinger.net  Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org     netchild @ FreeBSD.org  : PGP ID = 72077137
It pays to be obvious, especially if you have a reputation for subtlety.
Comment 5 Ulrich Spoerlein 2005-12-13 19:57:00 UTC
>  I try to get time this week to fix the issue for rpm-4.

Since I made the mess, attached is a patch that fixes it for both rpm3
and rpm4. Just did a install/deinstall with both rpms, I hope this
really fixes it.

Ulrich Spoerlein

Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/emulators/linux_base-8/Makefile,v
retrieving revision 1.112
diff -u -p -r1.112 Makefile
--- Makefile	4 Dec 2005 13:12:08 -0000	1.112
+++ Makefile	13 Dec 2005 19:55:08 -0000
@@ -125,8 +125,8 @@ FALLBACK_ELF_MIB=	kern.fallback_elf_bran
 LINUX_ELF=		3
 PREVIOUS_ELF!=		/sbin/sysctl -n ${FALLBACK_ELF_MIB}
 
-# FIXME. This will result in a file at /compat/linux/etcnsswitch.conf.dist (sic!)
-RPMFLAGS+=	--relocate /etc/nsswitch.conf=/etc/nsswitch.conf.dist --badreloc
+# FIXME: The double-// can go away, once we deprecate rpm-3
+RPMFLAGS+=	--relocate /etc/nsswitch.conf=/etc//nsswitch.conf.dist --badreloc
 
 do-install:
 #
@@ -145,7 +145,6 @@ do-install:
 		${ECHO} $$R; \
 		${RPM} -U ${RPMFLAGS} ${RPMDIR}/$$R; \
 	done
-	@${MV} ${PREFIX}/etcnsswitch.conf.dist ${PREFIX}/etc/nsswitch.conf.dist
 	@test -f ${PREFIX}/etc/nsswitch.conf || cp ${PREFIX}/etc/nsswitch.conf.dist \
 		${PREFIX}/etc/nsswitch.conf
 	@${FIND} ${PREFIX}/bin ${PREFIX}/sbin/ ${PREFIX}/usr/bin \
Comment 6 SANETO Takanori 2005-12-17 09:16:08 UTC
It worked fine with me, except that when rpm4 is used, pkg-plist does
not match actual files installed.

From pkg-plist,

var/lib/rpm/conflictsindex.rpm
var/lib/rpm/fileindex.rpm
var/lib/rpm/groupindex.rpm
var/lib/rpm/nameindex.rpm
var/lib/rpm/packages.rpm
var/lib/rpm/providesindex.rpm
var/lib/rpm/requiredby.rpm
var/lib/rpm/triggerindex.rpm



Ulrich Spoerlein wrote:
>>  I try to get time this week to fix the issue for rpm-4.
> 
> Since I made the mess, attached is a patch that fixes it for both rpm3
> and rpm4. Just did a install/deinstall with both rpms, I hope this
> really fixes it.
> 
> Ulrich Spoerlein
> 
> Index: Makefile
> ===================================================================
> RCS file: /home/ncvs/ports/emulators/linux_base-8/Makefile,v
> retrieving revision 1.112
> diff -u -p -r1.112 Makefile
> --- Makefile	4 Dec 2005 13:12:08 -0000	1.112
> +++ Makefile	13 Dec 2005 19:55:08 -0000
> @@ -125,8 +125,8 @@ FALLBACK_ELF_MIB=	kern.fallback_elf_bran
>  LINUX_ELF=		3
>  PREVIOUS_ELF!=		/sbin/sysctl -n ${FALLBACK_ELF_MIB}
>  
> -# FIXME. This will result in a file at /compat/linux/etcnsswitch.conf.dist (sic!)
> -RPMFLAGS+=	--relocate /etc/nsswitch.conf=/etc/nsswitch.conf.dist --badreloc
> +# FIXME: The double-// can go away, once we deprecate rpm-3
> +RPMFLAGS+=	--relocate /etc/nsswitch.conf=/etc//nsswitch.conf.dist --badreloc
>  
>  do-install:
>  #
> @@ -145,7 +145,6 @@ do-install:
>  		${ECHO} $$R; \
>  		${RPM} -U ${RPMFLAGS} ${RPMDIR}/$$R; \
>  	done
> -	@${MV} ${PREFIX}/etcnsswitch.conf.dist ${PREFIX}/etc/nsswitch.conf.dist
>  	@test -f ${PREFIX}/etc/nsswitch.conf || cp ${PREFIX}/etc/nsswitch.conf.dist \
>  		${PREFIX}/etc/nsswitch.conf
>  	@${FIND} ${PREFIX}/bin ${PREFIX}/sbin/ ${PREFIX}/usr/bin \
Comment 7 SANETO Takanori 2005-12-17 09:20:16 UTC
Oops, I've sent unfinished mail.

In /compat/linux/var/lib/rpm, I see followings:

% ls -l /compat/linux/var/lib/rpm
total 2268
-rw-r--r--  1 root  wheel   348160 Dec 15 23:45 Basenames
-rw-r--r--  1 root  wheel    12288 Dec 15 23:45 Conflictname
-rw-r--r--  1 root  wheel    94208 Dec 15 23:45 Dirnames
-rw-r--r--  1 root  wheel   643072 Dec 15 23:45 Filemd5s
-rw-r--r--  1 root  wheel    12288 Dec 15 23:45 Group
-rw-r--r--  1 root  wheel     8192 Dec 15 23:45 Installtid
-rw-r--r--  1 root  wheel    12288 Dec 15 23:45 Name
-rw-r--r--  1 root  wheel  1327104 Dec 15 23:45 Packages
-rw-r--r--  1 root  wheel    24576 Dec 15 23:45 Providename
-rw-r--r--  1 root  wheel    12288 Dec 15 23:45 Provideversion
-rw-r--r--  1 root  wheel    12288 Dec 15 23:45 Requirename
-rw-r--r--  1 root  wheel    12288 Dec 15 23:45 Requireversion
-rw-r--r--  1 root  wheel    12288 Dec 15 23:45 Sigmd5
-rw-r--r--  1 root  wheel    12288 Dec 15 23:45 Triggername

The contents of pkg-plist should be tailored for each rpm version, I think.

Regards,

SANETO Takanori wrote:
> It worked fine with me, except that when rpm4 is used, pkg-plist does
> not match actual files installed.
> 
>>From pkg-plist,
> 
> var/lib/rpm/conflictsindex.rpm
> var/lib/rpm/fileindex.rpm
> var/lib/rpm/groupindex.rpm
> var/lib/rpm/nameindex.rpm
> var/lib/rpm/packages.rpm
> var/lib/rpm/providesindex.rpm
> var/lib/rpm/requiredby.rpm
> var/lib/rpm/triggerindex.rpm
> 
> 
> 
> Ulrich Spoerlein wrote:
>>>  I try to get time this week to fix the issue for rpm-4.
>> Since I made the mess, attached is a patch that fixes it for both rpm3
>> and rpm4. Just did a install/deinstall with both rpms, I hope this
>> really fixes it.
>>
>> Ulrich Spoerlein
>>
>> Index: Makefile
>> ===================================================================
>> RCS file: /home/ncvs/ports/emulators/linux_base-8/Makefile,v
>> retrieving revision 1.112
>> diff -u -p -r1.112 Makefile
>> --- Makefile	4 Dec 2005 13:12:08 -0000	1.112
>> +++ Makefile	13 Dec 2005 19:55:08 -0000
>> @@ -125,8 +125,8 @@ FALLBACK_ELF_MIB=	kern.fallback_elf_bran
>>  LINUX_ELF=		3
>>  PREVIOUS_ELF!=		/sbin/sysctl -n ${FALLBACK_ELF_MIB}
>>  
>> -# FIXME. This will result in a file at /compat/linux/etcnsswitch.conf.dist (sic!)
>> -RPMFLAGS+=	--relocate /etc/nsswitch.conf=/etc/nsswitch.conf.dist --badreloc
>> +# FIXME: The double-// can go away, once we deprecate rpm-3
>> +RPMFLAGS+=	--relocate /etc/nsswitch.conf=/etc//nsswitch.conf.dist --badreloc
>>  
>>  do-install:
>>  #
>> @@ -145,7 +145,6 @@ do-install:
>>  		${ECHO} $$R; \
>>  		${RPM} -U ${RPMFLAGS} ${RPMDIR}/$$R; \
>>  	done
>> -	@${MV} ${PREFIX}/etcnsswitch.conf.dist ${PREFIX}/etc/nsswitch.conf.dist
>>  	@test -f ${PREFIX}/etc/nsswitch.conf || cp ${PREFIX}/etc/nsswitch.conf.dist \
>>  		${PREFIX}/etc/nsswitch.conf
>>  	@${FIND} ${PREFIX}/bin ${PREFIX}/sbin/ ${PREFIX}/usr/bin \
>
Comment 8 Pav Lucistnik freebsd_committer freebsd_triage 2005-12-26 02:49:09 UTC
State Changed
From-To: open->closed

I committed the double-slash patch. 

As for changing plist for rpm3/rpm4, that would be a bit tricky, because today 
Ports framework have no idea of actual version of a dependencies... hmm.