work for both X11R6 and X11R7

This commit is contained in:
christos 2012-01-08 02:32:00 +00:00
parent 56ed22796c
commit ecad436e9c
6 changed files with 70 additions and 52 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: msg.mi.de,v 1.58 2012/01/07 18:54:30 christos Exp $ */
/* $NetBSD: msg.mi.de,v 1.59 2012/01/08 02:32:00 christos Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@ -677,18 +677,18 @@ Aktualisierung wird abgebrochen.
}
message X_oldexists
{Der alte X Server /usr/X11R7/bin/X kann nicht als /usr/X11R7/bin/X.old
{Der alte X Server %s/bin/X kann nicht als %s/bin/X.old
gesichert werden, da eine Datei mit diesem Namen bereits existiert.
Bitte korrigieren Sie dies, bevor Sie fortfahren.
Eine Möglichkeit ist es, im Extras-Menü eine Shell zu starten,
wodurch Sie /usr/X11R7/bin/X.old überprüfen können. Gehört diese Datei zu
wodurch Sie %s/bin/X.old überprüfen können. Gehört diese Datei zu
einer früheren Aktualisierung, so können Sie diese mit rm -f
/usr/X11R7/bin/x.old löschen und danach die Aktualisierung neu starten.
Gehört die Datei /usr/X11R7/bin/X.old aber zu einer aktuellen,
abgebrochenen Aktualisierung, so können Sie die Datei /usr/X11R7/bin/X mit
mv /usr/X11R7/bin/X.old /usr/X11R7/bin/X wieder herstellen und die
unvollständige Aktualisierung fortsetzen.
%s/bin/x.old löschen und danach die Aktualisierung neu starten.
Gehört die Datei %s/bin/X.old aber zu einer aktuellen,
abgebrochenen Aktualisierung, so können Sie die Datei %s/bin/X mit
mv %s/bin/X.old %s/bin/X wieder herstellen und die
unvollständige Aktualisierung fortsetzen. %0s%0s%0s
Aktualisierung wird abgebrochen.}

View File

@ -1,4 +1,4 @@
/* $NetBSD: msg.mi.en,v 1.166 2012/01/07 18:54:30 christos Exp $ */
/* $NetBSD: msg.mi.en,v 1.167 2012/01/08 02:32:00 christos Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@ -649,16 +649,16 @@ message badetcfstab
}
message X_oldexists
{I cannot save /usr/X11R7/bin/X as /usr/X11R7/bin/X.old, because the
target disk already has an /usr/X11R7/bin/X.old. Please fix this before
{I cannot save %s/bin/X as %s/bin/X.old, because the
target disk already has an %s/bin/X.old. Please fix this before
continuing.
One way is to start a shell from the Utilities menu, examine the
target /usr/X11R7/bin/X and /usr/X11R7/bin/X.old. If
/usr/X11R7/bin/X.old is from a completed upgrade, you can rm -f
/usr/X11R7/bin/X.old and restart. Or if /usr/X11R7/bin/X.old is from
a recent, incomplete upgrade, you can rm -f /usr/X11R7/bin/X and mv
/usr/X11R7/bin/X.old to /usr/X11R7/bin/X.
target %s/bin/X and %s/bin/X.old. If
%s/bin/X.old is from a completed upgrade, you can rm -f
%s/bin/X.old and restart. Or if %s/bin/X.old is from
a recent, incomplete upgrade, you can rm -f %s/bin/X and mv
%s/bin/X.old to %s/bin/X
Aborting upgrade.}

View File

@ -1,4 +1,4 @@
/* $NetBSD: msg.mi.es,v 1.36 2012/01/07 18:54:30 christos Exp $ */
/* $NetBSD: msg.mi.es,v 1.37 2012/01/08 02:32:00 christos Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@ -669,16 +669,16 @@ Interrumpiendo la actualizaci
}
message X_oldexists
{No se puede guardar /usr/X11R7/bin/X como /usr/X11R7/bin/X.old, porque el
disco objetivo ya tiene un /usr/X11R7/bin/X.old. Por favor, arregle esto
{No se puede guardar %s/bin/X como %s/bin/X.old, porque el
disco objetivo ya tiene un %s/bin/X.old. Por favor, arregle esto
antes de continuar.
Una manera es iniciando una shell desde el menú Utilidades, y examinar
el objetivo /usr/X11R7/bin/X y /usr/X11R7/bin/X.old. Si
/usr/X11R7/bin/X.old es de una actualización completada, puede rm -f
/usr/X11R7/bin/X.old y reiniciar. O si /usr/X11R7/bin/X.old es de
una actualizacion reciente e incompleta, puede rm -f /usr/X11R7/bin/X
y mv /usr/X11R7/bin/X.old a /usr/X11R7/bin/X.
el objetivo %s/bin/X y %s/bin/X.old. Si
%s/bin/X.old es de una actualización completada, puede rm -f
%s/bin/X.old y reiniciar. O si %s/bin/X.old es de
una actualizacion reciente e incompleta, puede rm -f %s/bin/X
y mv %s/bin/X.old a %s/bin/X.
Interrumpiendo la actualización.}

View File

@ -1,4 +1,4 @@
/* $NetBSD: msg.mi.fr,v 1.116 2012/01/07 18:54:31 christos Exp $ */
/* $NetBSD: msg.mi.fr,v 1.117 2012/01/08 02:32:00 christos Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@ -703,16 +703,16 @@ Ceci est une erreur majeure : nous ne pouvons continuer.
message X_oldexists
{
Impossible de sauvegarder /usr/X11R7/bin/X : le disque contient déjà
un fichier /usr/X11R7/bin/X.old et nous devons renommer l'actuel fichier
Impossible de sauvegarder %s/bin/X : le disque contient déjà
un fichier %s/bin/X.old et nous devons renommer l'actuel fichier
avec ce nom. Veuillez supprimer ou renommer le fichier X.old avant de
recommencer.
Vous pouvez démarrer un shell depuis le menu "Utilitaires" afin
de faire cette modification.
Ce fichier provient probablement d'une ancienne mise à jour et
il est possible de le supprimer. S'il provient d'une mise à jour
incomplète, vous pouvez effacer /usr/X11R7/bin/X et renommer
/usr/X11R7/bin/X.old en /usr/X11R7/bin/X.
incomplète, vous pouvez effacer %s/bin/X et renommer
%s/bin/X.old en %s/bin/X.%0s%0s%0s%0s%0s%0s
Arrêt de la mise à jour.
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: msg.mi.pl,v 1.75 2012/01/07 18:54:31 christos Exp $ */
/* $NetBSD: msg.mi.pl,v 1.76 2012/01/08 02:32:00 christos Exp $ */
/* Based on english version: */
/* NetBSD: msg.mi.pl,v 1.36 2004/04/17 18:55:35 atatat Exp */
@ -648,15 +648,15 @@ message badetcfstab
}
message X_oldexists
{Nie moge zapisac /usr/X11R7/bin/X jako /usr/X11R7/bin/X.old, poniewaz
na docelowym dysku jest juz /usr/X11R7/bin/X.old. Napraw to przed kontynuacja.
{Nie moge zapisac %s/bin/X jako %s/bin/X.old, poniewaz
na docelowym dysku jest juz %s/bin/X.old. Napraw to przed kontynuacja.
Jedyny sposob to uruchomic powloke z menu Narzedziowego i sprawdzic
docelowe /usr/X11R7/bin/X oraz /usr/X11R7/bin/X.old. Jesli
/usr/X11R7/bin/X.old pochodzi z zakonczonej aktualizacji, mozesz usunac
/usr/X11R7/bin/X.old i zrobic restart. Albo jesli /usr/X11R7/bin/X.old
docelowe %s/bin/X oraz %s/bin/X.old. Jesli
%s/bin/X.old pochodzi z zakonczonej aktualizacji, mozesz usunac
%s/bin/X.old i zrobic restart. Albo jesli %s/bin/X.old
pochodzi z aktualnej niekompletnej aktualizacji, mozesz usunac
/usr/X11R7/bin/X i przeniesc /usr/X11R7/bin/X.old na /usr/X11R7/bin/X.
%s/bin/X i przeniesc %s/bin/X.old na %s/bin/X.
Przerywamy aktualizacje.}

View File

@ -1,4 +1,4 @@
/* $NetBSD: upgrade.c,v 1.52 2012/01/07 18:54:31 christos Exp $ */
/* $NetBSD: upgrade.c,v 1.53 2012/01/08 02:32:00 christos Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@ -34,6 +34,7 @@
/* upgrade.c -- upgrade an installation. */
#include <sys/param.h>
#include <stdio.h>
#include <curses.h>
#include <errno.h>
@ -44,8 +45,8 @@
/*
* local prototypes
*/
static int save_X(void);
static int merge_X(void);
static int save_X(const char *);
static int merge_X(const char *);
/*
* Do the system upgrade.
@ -76,7 +77,9 @@ do_upgrade(void)
/*
* Save X symlink, ...
*/
if (save_X())
if (save_X("/usr/X11R6"))
return;
if (save_X("/usr/X11R7"))
return;
#ifdef AOUT2ELF
@ -100,7 +103,8 @@ do_upgrade(void)
if (!md_post_extract() == 0)
return;
merge_X();
merge_X("/usr/X11R6");
merge_X("/usr/X11R7");
sanity_check();
}
@ -109,23 +113,31 @@ do_upgrade(void)
* Save X symlink to X.old so it can be recovered later
*/
static int
save_X(void)
save_X(const char *xroot)
{
char newx[MAXPATHLEN], oldx[MAXPATHLEN];
strlcpy(newx, xroot, sizeof(newx));
strlcat(newx, "/bin/X", sizeof(newx));
strlcpy(oldx, newx, sizeof(oldx));
strlcat(oldx, ".old", sizeof(oldx));
/* Only care for X if it's a symlink */
if (target_symlink_exists_p("/usr/X11R7/bin/X")) {
if (target_symlink_exists_p("/usr/X11R7/bin/X.old")) {
msg_display(MSG_X_oldexists);
if (target_symlink_exists_p(newx)) {
if (target_symlink_exists_p(oldx)) {
msg_display(MSG_X_oldexists, xroot, xroot, xroot,
xroot, xroot, xroot, xroot, xroot, xroot, xroot,
xroot);
process_menu(MENU_ok, NULL);
return EEXIST;
}
#ifdef DEBUG
printf("saving /usr/X11R7/bin/X as .../X.old ...");
printf("saving %s as %s ...", newx, oldx);
#endif
/* Move target .../X to .../X.old. Abort on error. */
mv_within_target_or_die("/usr/X11R7/bin/X",
"/usr/X11R7/bin/X.old");
mv_within_target_or_die(newx, oldx);
}
return 0;
@ -136,13 +148,19 @@ save_X(void)
* sets has completed.
*/
static int
merge_X(void)
merge_X(const char *xroot)
{
if (target_symlink_exists_p("/usr/X11R7/bin/X.old")) {
char newx[MAXPATHLEN], oldx[MAXPATHLEN];
strlcpy(newx, xroot, sizeof(newx));
strlcat(newx, "/bin/X", sizeof(newx));
strlcpy(oldx, newx, sizeof(oldx));
strlcat(oldx, ".old", sizeof(oldx));
if (target_symlink_exists_p(oldx)) {
/* Only move back X if it's a symlink - we don't want
* to restore old binaries */
mv_within_target_or_die("/usr/X11R7/bin/X.old",
"/usr/X11R7/bin/X");
mv_within_target_or_die(oldx, newx);
}
return 0;