Debian Bug report logs - #42559
update-alternatives does not handle cross-device move of links

Package: dpkg; Maintainer for dpkg is Dpkg Developers <debian-dpkg@lists.debian.org>; Source for dpkg is src:dpkg (PTS, buildd, popcon).

Reported by: wrmcd@wilmcd.com

Date: Fri, 6 Aug 1999 12:18:01 UTC

Severity: grave

Merged with 42592, 42799, 43835, 44445, 45671, 45933

Done: Anthony Towns <ajt@master.debian.org>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Debian GCC maintainers <gcc@packages.debian.org>:
Bug#42559; Package libstdc++2.10-dev. (full text, mbox, link).


Acknowledgement sent to wrmcd@wilmcd.com:
New bug report received and forwarded. Copy sent to Debian GCC maintainers <gcc@packages.debian.org>. (full text, mbox, link).


Message #5 received at submit@bugs.debian.org (full text, mbox, reply):

From: "William R. McDonough" <wrmcd@wilmcd.com>
To: Debian GCC maintainers <gcc@packages.debian.org>, submit@bugs.debian.org
Subject: dependancies of g++ & libstdc++2.10-dev
Date: Fri, 06 Aug 1999 08:02:22 -0400
Package: g++
Version: 1:2.95-2

Package:  libstdc++2.10-dev
Version:  1:2.95-2

-----
apt-get fails on a (dist-upgrade) due to dependancies.

Setting up libstdc++2.10 (2.95-2) ...

dpkg: dependency problems prevent configuration of g++:
 g++ depends on gcc (>= 1:2.95); however:
  Package gcc is not configured yet.
 g++ depends on gcc (<< 1:2.96); however:
  Package gcc is not configured yet.
dpkg: error processing g++ (--configure):
 dependency problems - leaving unconfigured


Even using (dpkg --configure) on either of those packages causes
dependancies.

[root@janitor: /disk2/home/wrmcd]$ dpkg --configure libstdc++2.10-dev
dpkg: dependency problems prevent configuration of libstdc++2.10-dev:
 libstdc++2.10-dev depends on g++ (>= 2.91.58); however:
  Package g++ is not configured yet.
dpkg: error processing libstdc++2.10-dev (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 libstdc++2.10-dev


[root@janitor: /disk2/home/wrmcd]$ dpkg --configure g++
dpkg: dependency problems prevent configuration of g++:
 g++ depends on gcc (>= 1:2.95); however:
  Package gcc is not configured yet.
 g++ depends on gcc (<< 1:2.96); however:
  Package gcc is not configured yet.
 g++ depends on libstdc++2.10-dev (>= 1:2.95); however:
  Package libstdc++2.10-dev is not configured yet.
dpkg: error processing g++ (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 g++




Information forwarded to debian-bugs-dist@lists.debian.org, Debian GCC maintainers <gcc@packages.debian.org>:
Bug#42559; Package libstdc++2.10-dev. (full text, mbox, link).


Acknowledgement sent to "J.H.M. Dassen (Ray)" <jdassen@wi.LeidenUniv.nl>:
Extra info received and forwarded to list. Copy sent to Debian GCC maintainers <gcc@packages.debian.org>. (full text, mbox, link).


Message #10 received at submit@bugs.debian.org (full text, mbox, reply):

From: "J.H.M. Dassen (Ray)" <jdassen@wi.LeidenUniv.nl>
To: wrmcd@wilmcd.com, 42559@bugs.debian.org
Cc: Debian GCC maintainers <gcc@packages.debian.org>, submit@bugs.debian.org
Subject: Re: Bug#42559: dependancies of g++ & libstdc++2.10-dev
Date: Fri, 6 Aug 1999 14:23:59 +0200
On Fri, Aug 06, 1999 at 08:02:22 -0400, William R. McDonough wrote:
> Even using (dpkg --configure) on either of those packages causes
> dependancies.

What happens if you do
	dpkg --configure gcc
	dpkg --configure g++ libstdc++2.10-dev
?

Ray
-- 
PATRIOTISM  A great British writer once said that if he had to choose 
between betraying his country and betraying a friend he hoped he would
have the decency to betray his country.                                      
- The Hipcrime Vocab by Chad C. Mulligan 


Information forwarded to debian-bugs-dist@lists.debian.org, Debian GCC maintainers <gcc@packages.debian.org>:
Bug#42559; Package libstdc++2.10-dev. (full text, mbox, link).


Acknowledgement sent to "William R. McDonough" <bmcdonou@baynetworks.com>:
Extra info received and forwarded to list. Copy sent to Debian GCC maintainers <gcc@packages.debian.org>. (full text, mbox, link).


Message #15 received at submit@bugs.debian.org (full text, mbox, reply):

From: "William R. McDonough" <bmcdonou@baynetworks.com>
To: "J.H.M. Dassen (Ray)" <jdassen@wi.LeidenUniv.nl>,wrmcd@wilmcd.com, 42559@bugs.debian.org
Cc: Debian GCC maintainers <gcc@packages.debian.org>,submit@bugs.debian.org
Subject: Re: Bug#42559: dependancies of g++ & libstdc++2.10-dev
Date: Fri, 06 Aug 1999 08:26:32 -0400
ok here is the root of the problems.

[root@janitor: /disk2/home/wrmcd]$ dpkg --configure gcc
Setting up gcc (2.95-2) ...
Checking available versions of cc, updating links in /etc/alternatives ...
(You may modify the symlinks there yourself if desired - see `man ln'.)
Renaming cc.1.gz slave link from /usr/man/man1/cc.1.gz to
/usr/share/man/man1/cc.1.gz.
update-alternatives: unable to rename /usr/man/man1/cc.1.gz to
/usr/share/man/man1/cc.1.gz: Invalid cross-device link
dpkg: error processing gcc (--configure):
 subprocess post-installation script returned error exit status 2
Errors were encountered while processing:
 gcc

-------
I gave up fighting with the symlinks
I did an (apt-get remove gcc)

apt-get install gcc
apt-get install g++
apt-get install libstdc++2.10
apt-get install libtool






At 02:23 PM 8/6/99 +0200, J.H.M. Dassen (Ray) wrote:
>On Fri, Aug 06, 1999 at 08:02:22 -0400, William R. McDonough wrote:
>> Even using (dpkg --configure) on either of those packages causes
>> dependancies.
>
>What happens if you do
>	dpkg --configure gcc
>	dpkg --configure g++ libstdc++2.10-dev
>?
>
>Ray
>-- 
>PATRIOTISM  A great British writer once said that if he had to choose 
>between betraying his country and betraying a friend he hoped he would
>have the decency to betray his country.                                      
>- The Hipcrime Vocab by Chad C. Mulligan 
>
>


Information forwarded to debian-bugs-dist@lists.debian.org, Debian GCC maintainers <gcc@packages.debian.org>:
Bug#42559; Package libstdc++2.10-dev. (full text, mbox, link).


Acknowledgement sent to "J.H.M. Dassen (Ray)" <jdassen@wi.LeidenUniv.nl>:
Extra info received and forwarded to list. Copy sent to Debian GCC maintainers <gcc@packages.debian.org>. (full text, mbox, link).


Information forwarded to debian-bugs-dist@lists.debian.org, Debian GCC maintainers <gcc@packages.debian.org>:
Bug#42559; Package libstdc++2.10-dev. (full text, mbox, link).


Acknowledgement sent to "William R. McDonough" <bmcdonou@baynetworks.com>:
Extra info received and forwarded to list. Copy sent to Debian GCC maintainers <gcc@packages.debian.org>. (full text, mbox, link).


Changed bug title. Request was from "J.H.M. Dassen (Ray)" <jdassen@wi.LeidenUniv.nl> to control@bugs.debian.org. (full text, mbox, link).


Bug reassigned from package `libstdc++2.10-dev' to `dpkg'. Request was from "J.H.M. Dassen (Ray)" <jdassen@wi.LeidenUniv.nl> to control@bugs.debian.org. (full text, mbox, link).


Severity set to `grave'. Request was from "J.H.M. Dassen (Ray)" <jdassen@wi.LeidenUniv.nl> to control@bugs.debian.org. (full text, mbox, link).


Merged 42559 42592 42799 43835. Request was from "J.H.M. Dassen (Ray)" <jdassen@wi.LeidenUniv.nl> to control@bugs.debian.org. (full text, mbox, link).


Merged 42559 42592 42799 43835 44445. Request was from "J.H.M. Dassen (Ray)" <jdassen@wi.LeidenUniv.nl> to control@bugs.debian.org. (full text, mbox, link).


Merged 42559 42592 42799 43835 44445 45671. Request was from "J.H.M. Dassen (Ray)" <jdassen@wi.LeidenUniv.nl> to control@bugs.debian.org. (full text, mbox, link).


Information forwarded to debian-bugs-dist@lists.debian.org, Ian Jackson and others <dpkg-maint@chiark.greenend.org.uk>:
Bug#42559; Package dpkg. (full text, mbox, link).


Acknowledgement sent to Craig Small <csmall@scooter.eye-net.com.au>:
Extra info received and forwarded to list. Copy sent to Ian Jackson and others <dpkg-maint@chiark.greenend.org.uk>. (full text, mbox, link).


Message #42 received at 42559@bugs.debian.org (full text, mbox, reply):

From: Craig Small <csmall@scooter.eye-net.com.au>
To: bap@cs.unm.edu, 45933@bugs.debian.org
Cc: 42559@bugs.debian.org
Subject: Re: Bug#45933: cross-device mobility
Date: Sat, 25 Sep 1999 14:08:41 +1000 (EST)
Barak Pearlmutter said:
> Maybe this is really update-alternatives' fault, or should be dealt
> with by policy; if so please reassign.

It is update-alternatives' fault and I will reassign it to the
dpkg package, where u-a comes from.  This bug has already been
reported (Bug #42559 and the six of so merged ones).

  - Craig

-- 
Craig Small VK2XLZ, PGP: AD 8D D8 63 6E BF C3 C7  47 41 B1 A2 1F 46 EC 90
Eye-Net Consulting http://www.eye-net.com.au/     <csmall@eye-net.com.au>
MIEEE <csmall@ieee.org>              Debian developer <csmall@debian.org>


Information forwarded to debian-bugs-dist@lists.debian.org, Ian Jackson and others <dpkg-maint@chiark.greenend.org.uk>:
Bug#42559; Package dpkg. (full text, mbox, link).


Acknowledgement sent to Adam Heath <doogie@debian.org>:
Extra info received and forwarded to list. Copy sent to Ian Jackson and others <dpkg-maint@chiark.greenend.org.uk>. (full text, mbox, link).


Message #47 received at 42559@bugs.debian.org (full text, mbox, reply):

From: Adam Heath <doogie@debian.org>
To: 42559@bugs.debian.org
Cc: 42559-submitter@bugs.debian.org, 42592-submitter@bugs.debian.org, 42799-submitter@bugs.debian.org, 43835-submitter@bugs.debian.org, 44445-submitter@bugs.debian.org, 45671-submitter@bugs.debian.org
Subject: [PATCH] fix cross-device rename
Date: Fri, 24 Sep 1999 23:29:40 -0500 (CDT)
========
--- update-alternatives.orig	Fri Sep 24 23:17:23 1999
+++ update-alternatives	Fri Sep 24 23:17:09 1999
@@ -231,7 +231,7 @@
 if ($mode eq 'install') {
     if ($link ne $alink && $link ne '') {
         &pr("Renaming $name link from $link to $alink.");
-        rename($link,$alink) || $! == &ENOENT ||
+        rename_mv($link,$alink) || $! == &ENOENT ||
             &quit("unable to rename $link to $alink: $!");
     }
     $link= $alink;
@@ -252,7 +252,7 @@
             &quit("slave link name $newslavelink duplicated");
         if ($newslavelink ne $oldslavelink && $oldslavelink ne '') {
             &pr("Renaming $sname slave link from $oldslavelink to $newslavelink.");
-            rename($oldslavelink,$newslavelink) || $! == &ENOENT ||
+            rename_mv($oldslavelink,$newslavelink) || $! == &ENOENT ||
                 &quit("unable to rename $oldslavelink to $newslavelink: $!");
         }
         $slavelinks[$j]= $newslavelink;
@@ -308,7 +308,7 @@
 } else {
     if ($state eq 'expected-inprogress') {
         &pr("Recovering from previous failed update of $name ...");
-        rename("$altdir/$name.dpkg-tmp","$altdir/$name") ||
+        rename_mv("$altdir/$name.dpkg-tmp","$altdir/$name") ||
             &quit("unable to rename $altdir/$name.dpkg-tmp to $altdir/$name: $!");
         $state= 'expected';
     }
@@ -365,7 +365,7 @@
                 &quit("unable to ensure $link.dpkg-tmp nonexistent: $!");
             symlink("$altdir/$name","$link.dpkg-tmp") ||
                 &quit("unable to make $link.dpkg-tmp a symlink to $altdir/$name: $!");
-            rename("$link.dpkg-tmp",$link) ||
+            rename_mv("$link.dpkg-tmp",$link) ||
                 &quit("unable to install $link.dpkg-tmp as $link: $!");
         }
         if (defined($linkname= readlink("$altdir/$name")) && $linkname eq $best) {
@@ -379,11 +379,11 @@
     }
 }
 
-rename("$admindir/$name.dpkg-new","$admindir/$name") ||
+rename_mv("$admindir/$name.dpkg-new","$admindir/$name") ||
     &quit("unable to rename $admindir/$name.dpkg-new to $admindir/$name: $!");
 
 if ($manual eq 'auto') {
-    rename("$altdir/$name.dpkg-tmp","$altdir/$name") ||
+    rename_mv("$altdir/$name.dpkg-tmp","$altdir/$name") ||
         &quit("unable to install $altdir/$name.dpkg-tmp as $altdir/$name");
     for ($j=0; $j<=$#slavenames; $j++) {
         $sname= $slavenames[$j];
@@ -396,7 +396,7 @@
                 &quit("unable to ensure $slink.dpkg-tmp nonexistent: $!");
             symlink("$altdir/$sname","$slink.dpkg-tmp") ||
                 &quit("unable to make $slink.dpkg-tmp a symlink to $altdir/$sname: $!");
-            rename("$slink.dpkg-tmp",$slink) ||
+            rename_mv("$slink.dpkg-tmp",$slink) ||
                 &quit("unable to install $slink.dpkg-tmp as $slink: $!");
         }
         $spath= $slavepath{$bestnum,$j};
@@ -414,7 +414,7 @@
             }
             symlink("$spath","$altdir/$sname.dpkg-tmp") ||
                 &quit("unable to make $altdir/$sname.dpkg-tmp a symlink to $spath: $!");
-            rename("$altdir/$sname.dpkg-tmp","$altdir/$sname") ||
+            rename_mv("$altdir/$sname.dpkg-tmp","$altdir/$sname") ||
                 &quit("unable to install $altdir/$sname.dpkg-tmp as $altdir/$sname: $!");
         }
     }
@@ -434,5 +434,7 @@
 sub badfmt {
     &quit("internal error: $admindir/$name corrupt: $_[0]");
 }
-
+sub rename_mv {
+	return (rename($_[0], $_[1]) || (system(("mv", $_[0], $_[1])) == 0));
+}
 exit(0);
========

----BEGIN GEEK CODE BLOCK----
Version: 3.12
GCS d- s: a-- c+++ UL++++ P+ L++++ !E W+ M o+ K- W--- !O M- !V PS--
PE++ Y+ PGP++ t* 5++ X+ tv b+ D++ G e h*! !r z?
-----END GEEK CODE BLOCK-----
----BEGIN PGP INFO----
Adam Heath <doogie@debian.org>        Finger Print | KeyID
67 01 42 93 CA 37 FB 1E    63 C9 80 1D 08 CF 84 0A | DE656B05 PGP
AD46 C888 F587 F8A3 A6DA  3261 8A2C 7DC2 8BD4 A489 | 716280FA GPG
-----END PGP INFO-----



Message sent on to wrmcd@wilmcd.com:
Bug#42559. (full text, mbox, link).


Merged 42559 42592 42799 43835 44445 45671 45933. Request was from Craig Small <csmall@scooter.eye-net.com.au> to control@bugs.debian.org. (full text, mbox, link).


Information forwarded to debian-bugs-dist@lists.debian.org, Ian Jackson and others <dpkg-maint@chiark.greenend.org.uk>:
Bug#42559; Package dpkg. (full text, mbox, link).


Acknowledgement sent to "Thomas Gebhardt" <gebhardt@HRZ.Uni-Marburg.DE>:
Extra info received and forwarded to list. Copy sent to Ian Jackson and others <dpkg-maint@chiark.greenend.org.uk>. (full text, mbox, link).


Message #57 received at 42559@bugs.debian.org (full text, mbox, reply):

From: "Thomas Gebhardt" <gebhardt@HRZ.Uni-Marburg.DE>
To: 42559@bugs.debian.org
Subject: Re: Bug#44445: [PATCH] fix cross-device rename
Date: Wed, 29 Sep 1999 11:01:21 +0200
Hi,

the patch works fine for me!

Regards, Thomas




Bug reassigned from package `dpkg' to `dpkg-iwj'. Request was from Wichert Akkerman <wichert@cs.leidenuniv.nl> to control@bugs.debian.org. (full text, mbox, link).


Bug reassigned from package `dpkg-iwj' to `dpkg'. Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Bug closed, ack sent to submitter - they'd better know why ! Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Bug reassigned from package `dpkg' to `dpkg'. Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Bug reassigned from package `dpkg' to `dpkg'. Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Bug reassigned from package `dpkg' to `dpkg'. Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Bug reassigned from package `dpkg' to `dpkg'. Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Bug reassigned from package `dpkg' to `dpkg'. Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Bug reassigned from package `dpkg' to `dpkg'. Request was from Anthony Towns <ajt@master.debian.org> to control@bugs.debian.org. (full text, mbox, link).


Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Wed May 1 09:30:12 2024; Machine Name: buxtehude

Debian Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.