Make sysmerge(8) --wait the default.
This commit is contained in:
parent
f6f5bedf59
commit
0dd7bc6f57
3 changed files with 25 additions and 7 deletions
8
Makefile
8
Makefile
|
@ -94,10 +94,18 @@ sysmerge: sysroot
|
|||
sysmerge-full: sysroot
|
||||
sysmerge --full "$(SYSROOT)"
|
||||
|
||||
.PHONY: sysmerge-full-now
|
||||
sysmerge-full-now: sysroot
|
||||
sysmerge --full --now "$(SYSROOT)"
|
||||
|
||||
.PHONY: sysmerge-full-wait
|
||||
sysmerge-full-wait: sysroot
|
||||
sysmerge --full --wait "$(SYSROOT)"
|
||||
|
||||
.PHONY: sysmerge-now
|
||||
sysmerge-now: sysroot
|
||||
sysmerge --now "$(SYSROOT)"
|
||||
|
||||
.PHONY: sysmerge-wait
|
||||
sysmerge-wait: sysroot
|
||||
sysmerge --wait "$(SYSROOT)"
|
||||
|
|
|
@ -1103,7 +1103,7 @@ int main(void)
|
|||
execute((const char*[]) { "chroot", "-d", ".", "update-grub", NULL },
|
||||
"_eqQ");
|
||||
}
|
||||
else if ( access_or_die("/etc/default/grub.d/10_sortix", F_OK) == 0 )
|
||||
else if ( access_or_die("etc/default/grub.d/10_sortix", F_OK) == 0 )
|
||||
{
|
||||
// Help dual booters by making /etc/default/grub.d/10_sortix.cache.
|
||||
printf(" - Creating bootloader fragment...\n");
|
||||
|
|
|
@ -125,7 +125,8 @@ int main(int argc, char* argv[])
|
|||
bool ports = false;
|
||||
bool system = false;
|
||||
const char* target = "/";
|
||||
bool wait = false;
|
||||
bool wait = true;
|
||||
bool wait_default = true;
|
||||
|
||||
enum longopt
|
||||
{
|
||||
|
@ -142,13 +143,14 @@ int main(int argc, char* argv[])
|
|||
{"hook-finalize", no_argument, NULL, OPT_HOOK_FINALIZE},
|
||||
{"hook-prepare", no_argument, NULL, OPT_HOOK_PREPARE},
|
||||
{"is-reboot-needed", no_argument, NULL, OPT_IS_REBOOT_NEEDED},
|
||||
{"now", no_argument, NULL, 'n'},
|
||||
{"ports", no_argument, NULL, 'p'},
|
||||
{"system", no_argument, NULL, 's'},
|
||||
{"target", required_argument, NULL, 't'},
|
||||
{"wait", no_argument, NULL, 'w'},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
const char* opts = "cfpst:w";
|
||||
const char* opts = "cfnpst:w";
|
||||
int opt;
|
||||
while ( (opt = getopt_long(argc, argv, opts, longopts, NULL)) != -1 )
|
||||
{
|
||||
|
@ -160,14 +162,15 @@ int main(int argc, char* argv[])
|
|||
case OPT_HOOK_FINALIZE: hook_finalize = true; break;
|
||||
case OPT_HOOK_PREPARE: hook_prepare = true; break;
|
||||
case OPT_IS_REBOOT_NEEDED: is_reboot_needed = true; break;
|
||||
case 'n': wait = false; wait_default = false; break;
|
||||
case 'p': ports = true; break;
|
||||
case 's': system = true; break;
|
||||
case 't': target = optarg; break;
|
||||
case 'w': wait = true; break;
|
||||
case 'w': wait = true; wait_default = false; break;
|
||||
default: return 2;
|
||||
}
|
||||
}
|
||||
if ( 1 < booting + cancel + hook_finalize + hook_prepare + wait +
|
||||
if ( 1 < booting + cancel + hook_finalize + hook_prepare + !wait +
|
||||
is_reboot_needed )
|
||||
errx(2, "Mutually incompatible options were passed");
|
||||
|
||||
|
@ -214,6 +217,9 @@ int main(int argc, char* argv[])
|
|||
|
||||
bool has_system = !access_join_or_die(target, "tix/manifest/system", F_OK);
|
||||
|
||||
if ( wait_default )
|
||||
wait = has_system && !access_join_or_die(target, "etc/fstab", F_OK);
|
||||
|
||||
if ( !has_system )
|
||||
system = false;
|
||||
|
||||
|
@ -322,6 +328,7 @@ int main(int argc, char* argv[])
|
|||
my_prepare = true;
|
||||
run_finalize = true;
|
||||
my_finalize = true;
|
||||
wait = false;
|
||||
}
|
||||
else if ( hook_prepare )
|
||||
{
|
||||
|
@ -331,6 +338,7 @@ int main(int argc, char* argv[])
|
|||
my_prepare = true;
|
||||
run_finalize = false;
|
||||
my_finalize = false;
|
||||
wait = false;
|
||||
}
|
||||
else if ( hook_finalize )
|
||||
{
|
||||
|
@ -340,6 +348,7 @@ int main(int argc, char* argv[])
|
|||
my_prepare = false;
|
||||
run_finalize = true;
|
||||
my_finalize = true;
|
||||
wait = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -573,10 +582,11 @@ int main(int argc, char* argv[])
|
|||
free(boot_sysmerge);
|
||||
}
|
||||
|
||||
const char* done = wait ? "Successfully upgraded" : "Scheduled upgrade";
|
||||
if ( new_release.pretty_name )
|
||||
printf("Successfully upgraded to %s.\n", new_release.pretty_name);
|
||||
printf("%s to %s.\n", done, new_release.pretty_name);
|
||||
else
|
||||
printf("Successfully upgraded %s.\n", target);
|
||||
printf("%s.\n", done);
|
||||
|
||||
// Reinitialize the operating system if upgrading on boot.
|
||||
return booting ? 3 : 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue