History log of /netbsd-current/usr.sbin/sysinst/net.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.45 17-Dec-2023 martin

Add a https transfer method (sharing all host details with the http
transfer). Make this method the default for all downloads.

Try to make sure the binary pkg installation (which runs in a chroot
in the already installed system) can make use of SSL verification.

This does NOT fix the missing SSL verification in most install media
even if using https (due to not fully populated /etc/openssl/certs).


# 1.44 03-Jan-2023 martin

Clear the msg area after prompting for the network device to use


Revision tags: netbsd-10-base
# 1.43 18-May-2022 martin

branches: 1.43.2;
When not invoked via some explicit "configure network" menu item,
auto-detect an already working network setup and offer to "just use" it
whenver we need connectivity.


# 1.42 15-May-2022 jmcneill

sysinst: Write custom hostname to rc.conf when using DHCP

If the user changes the suggested hostname from DHCP, ensure that the
new hostname is written to rc.conf by clearing the appropriate
DHCPCONF_* flags.


# 1.41 15-May-2022 jmcneill

sysinst: Prompt for hostname and domain, even when using DHCP.

Values discovered from the network may not match desired values for the
target system. Always give an opportunity to override them when using
DHCP.


# 1.40 13-Jan-2022 nia

sysinst(8): use scan_ssid=1 so hidden wifi networks can be used


# 1.39 11-Jan-2022 nia

sysinst(8): Add a "data" argument to do_ifreq that is set after the
ifr struct is zeroed.

This allows us to simplify the code by not having 2x socket creation
code for checking whether interfaces are wireless.


# 1.38 10-Jan-2022 nia

sysinst(8): Avoid asking Wi-Fi questions about non-Wi-Fi devices.


# 1.37 10-Jan-2022 nia

sysinst(8): Add initial support for connecting to Wi-Fi networks
by spawning wpa_supplicant.

Reviewed by martin.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.36 31-Jan-2021 rillig

sysinst: remove trailing whitespace from *.c *.h

In contrast to the messages files, this whitespace is not significant.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406
# 1.35 27-Jan-2020 martin

Use a few strlcpy() instead of strncpy() for network ioctl structs.
We seem to have no formal documentation stating the various

char if*_name[IFNAMSIZ]; /* if name, e.g. "en0" */

elements in ioctls are nul terminated, but the peanut gallery claims
it is so - and at least half of the code in-tree touching them agrees.


Revision tags: phil-wifi-20191119
# 1.34 16-Nov-2019 martin

Make sure all menus have a translatable exit option (or none at all).


Revision tags: netbsd-9-base
# 1.33 23-Jul-2019 martin

branches: 1.33.2;
Avoid a buffer overrun with too many interfaces.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.44 03-Jan-2023 martin

Clear the msg area after prompting for the network device to use


Revision tags: netbsd-10-base
# 1.43 18-May-2022 martin

branches: 1.43.2;
When not invoked via some explicit "configure network" menu item,
auto-detect an already working network setup and offer to "just use" it
whenver we need connectivity.


# 1.42 15-May-2022 jmcneill

sysinst: Write custom hostname to rc.conf when using DHCP

If the user changes the suggested hostname from DHCP, ensure that the
new hostname is written to rc.conf by clearing the appropriate
DHCPCONF_* flags.


# 1.41 15-May-2022 jmcneill

sysinst: Prompt for hostname and domain, even when using DHCP.

Values discovered from the network may not match desired values for the
target system. Always give an opportunity to override them when using
DHCP.


# 1.40 13-Jan-2022 nia

sysinst(8): use scan_ssid=1 so hidden wifi networks can be used


# 1.39 11-Jan-2022 nia

sysinst(8): Add a "data" argument to do_ifreq that is set after the
ifr struct is zeroed.

This allows us to simplify the code by not having 2x socket creation
code for checking whether interfaces are wireless.


# 1.38 10-Jan-2022 nia

sysinst(8): Avoid asking Wi-Fi questions about non-Wi-Fi devices.


# 1.37 10-Jan-2022 nia

sysinst(8): Add initial support for connecting to Wi-Fi networks
by spawning wpa_supplicant.

Reviewed by martin.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.36 31-Jan-2021 rillig

sysinst: remove trailing whitespace from *.c *.h

In contrast to the messages files, this whitespace is not significant.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406
# 1.35 27-Jan-2020 martin

Use a few strlcpy() instead of strncpy() for network ioctl structs.
We seem to have no formal documentation stating the various

char if*_name[IFNAMSIZ]; /* if name, e.g. "en0" */

elements in ioctls are nul terminated, but the peanut gallery claims
it is so - and at least half of the code in-tree touching them agrees.


Revision tags: phil-wifi-20191119
# 1.34 16-Nov-2019 martin

Make sure all menus have a translatable exit option (or none at all).


Revision tags: netbsd-9-base
# 1.33 23-Jul-2019 martin

branches: 1.33.2;
Avoid a buffer overrun with too many interfaces.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.43 18-May-2022 martin

When not invoked via some explicit "configure network" menu item,
auto-detect an already working network setup and offer to "just use" it
whenver we need connectivity.


# 1.42 15-May-2022 jmcneill

sysinst: Write custom hostname to rc.conf when using DHCP

If the user changes the suggested hostname from DHCP, ensure that the
new hostname is written to rc.conf by clearing the appropriate
DHCPCONF_* flags.


# 1.41 15-May-2022 jmcneill

sysinst: Prompt for hostname and domain, even when using DHCP.

Values discovered from the network may not match desired values for the
target system. Always give an opportunity to override them when using
DHCP.


# 1.40 13-Jan-2022 nia

sysinst(8): use scan_ssid=1 so hidden wifi networks can be used


# 1.39 11-Jan-2022 nia

sysinst(8): Add a "data" argument to do_ifreq that is set after the
ifr struct is zeroed.

This allows us to simplify the code by not having 2x socket creation
code for checking whether interfaces are wireless.


# 1.38 10-Jan-2022 nia

sysinst(8): Avoid asking Wi-Fi questions about non-Wi-Fi devices.


# 1.37 10-Jan-2022 nia

sysinst(8): Add initial support for connecting to Wi-Fi networks
by spawning wpa_supplicant.

Reviewed by martin.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.36 31-Jan-2021 rillig

sysinst: remove trailing whitespace from *.c *.h

In contrast to the messages files, this whitespace is not significant.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406
# 1.35 27-Jan-2020 martin

Use a few strlcpy() instead of strncpy() for network ioctl structs.
We seem to have no formal documentation stating the various

char if*_name[IFNAMSIZ]; /* if name, e.g. "en0" */

elements in ioctls are nul terminated, but the peanut gallery claims
it is so - and at least half of the code in-tree touching them agrees.


Revision tags: phil-wifi-20191119
# 1.34 16-Nov-2019 martin

Make sure all menus have a translatable exit option (or none at all).


Revision tags: netbsd-9-base
# 1.33 23-Jul-2019 martin

branches: 1.33.2;
Avoid a buffer overrun with too many interfaces.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.40 13-Jan-2022 nia

sysinst(8): use scan_ssid=1 so hidden wifi networks can be used


# 1.39 11-Jan-2022 nia

sysinst(8): Add a "data" argument to do_ifreq that is set after the
ifr struct is zeroed.

This allows us to simplify the code by not having 2x socket creation
code for checking whether interfaces are wireless.


# 1.38 10-Jan-2022 nia

sysinst(8): Avoid asking Wi-Fi questions about non-Wi-Fi devices.


# 1.37 10-Jan-2022 nia

sysinst(8): Add initial support for connecting to Wi-Fi networks
by spawning wpa_supplicant.

Reviewed by martin.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.36 31-Jan-2021 rillig

sysinst: remove trailing whitespace from *.c *.h

In contrast to the messages files, this whitespace is not significant.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406
# 1.35 27-Jan-2020 martin

Use a few strlcpy() instead of strncpy() for network ioctl structs.
We seem to have no formal documentation stating the various

char if*_name[IFNAMSIZ]; /* if name, e.g. "en0" */

elements in ioctls are nul terminated, but the peanut gallery claims
it is so - and at least half of the code in-tree touching them agrees.


Revision tags: phil-wifi-20191119
# 1.34 16-Nov-2019 martin

Make sure all menus have a translatable exit option (or none at all).


Revision tags: netbsd-9-base
# 1.33 23-Jul-2019 martin

branches: 1.33.2;
Avoid a buffer overrun with too many interfaces.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.39 11-Jan-2022 nia

sysinst(8): Add a "data" argument to do_ifreq that is set after the
ifr struct is zeroed.

This allows us to simplify the code by not having 2x socket creation
code for checking whether interfaces are wireless.


# 1.38 10-Jan-2022 nia

sysinst(8): Avoid asking Wi-Fi questions about non-Wi-Fi devices.


# 1.37 10-Jan-2022 nia

sysinst(8): Add initial support for connecting to Wi-Fi networks
by spawning wpa_supplicant.

Reviewed by martin.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.36 31-Jan-2021 rillig

sysinst: remove trailing whitespace from *.c *.h

In contrast to the messages files, this whitespace is not significant.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406
# 1.35 27-Jan-2020 martin

Use a few strlcpy() instead of strncpy() for network ioctl structs.
We seem to have no formal documentation stating the various

char if*_name[IFNAMSIZ]; /* if name, e.g. "en0" */

elements in ioctls are nul terminated, but the peanut gallery claims
it is so - and at least half of the code in-tree touching them agrees.


Revision tags: phil-wifi-20191119
# 1.34 16-Nov-2019 martin

Make sure all menus have a translatable exit option (or none at all).


Revision tags: netbsd-9-base
# 1.33 23-Jul-2019 martin

branches: 1.33.2;
Avoid a buffer overrun with too many interfaces.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.37 10-Jan-2022 nia

sysinst(8): Add initial support for connecting to Wi-Fi networks
by spawning wpa_supplicant.

Reviewed by martin.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.36 31-Jan-2021 rillig

sysinst: remove trailing whitespace from *.c *.h

In contrast to the messages files, this whitespace is not significant.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406
# 1.35 27-Jan-2020 martin

Use a few strlcpy() instead of strncpy() for network ioctl structs.
We seem to have no formal documentation stating the various

char if*_name[IFNAMSIZ]; /* if name, e.g. "en0" */

elements in ioctls are nul terminated, but the peanut gallery claims
it is so - and at least half of the code in-tree touching them agrees.


Revision tags: phil-wifi-20191119
# 1.34 16-Nov-2019 martin

Make sure all menus have a translatable exit option (or none at all).


Revision tags: netbsd-9-base
# 1.33 23-Jul-2019 martin

branches: 1.33.2;
Avoid a buffer overrun with too many interfaces.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.36 31-Jan-2021 rillig

sysinst: remove trailing whitespace from *.c *.h

In contrast to the messages files, this whitespace is not significant.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406
# 1.35 27-Jan-2020 martin

Use a few strlcpy() instead of strncpy() for network ioctl structs.
We seem to have no formal documentation stating the various

char if*_name[IFNAMSIZ]; /* if name, e.g. "en0" */

elements in ioctls are nul terminated, but the peanut gallery claims
it is so - and at least half of the code in-tree touching them agrees.


Revision tags: phil-wifi-20191119
# 1.34 16-Nov-2019 martin

Make sure all menus have a translatable exit option (or none at all).


Revision tags: netbsd-9-base
# 1.33 23-Jul-2019 martin

branches: 1.33.2;
Avoid a buffer overrun with too many interfaces.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.35 27-Jan-2020 martin

Use a few strlcpy() instead of strncpy() for network ioctl structs.
We seem to have no formal documentation stating the various

char if*_name[IFNAMSIZ]; /* if name, e.g. "en0" */

elements in ioctls are nul terminated, but the peanut gallery claims
it is so - and at least half of the code in-tree touching them agrees.


Revision tags: phil-wifi-20191119
# 1.34 16-Nov-2019 martin

Make sure all menus have a translatable exit option (or none at all).


Revision tags: netbsd-9-base
# 1.33 23-Jul-2019 martin

branches: 1.33.2;
Avoid a buffer overrun with too many interfaces.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.34 16-Nov-2019 martin

Make sure all menus have a translatable exit option (or none at all).


Revision tags: netbsd-9-base
# 1.33 23-Jul-2019 martin

Avoid a buffer overrun with too many interfaces.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.33 23-Jul-2019 martin

Avoid a buffer overrun with too many interfaces.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.32 08-Jul-2019 martin

The network settings confirmation message is a manually formated table,
so do not treat it as free flowing text.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.31 07-Jul-2019 martin

Fix some uninitialized memory access and a potential buffer overrun on
machines with multiple network interfaces.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.30 22-Jun-2019 christos

no need to initialize fields that are already 0.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.29 20-Jun-2019 christos

Use _fmt_ msg_ methods when formats are needed.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.28 18-Jun-2019 martin

Fix buffer size


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.27 12-Jun-2019 martin

Rework internal data structures and "interfaces to user interface" functions
to get rid of all disklabel assumptions.

Previously (even for GPT partitioning) struct disklabel was used, which
obviously breaks large disk setups. Also many MD parts and parts of the
user interface assumed (a) a struct disklabel is used internally to
store partitioning information and (b) partitions are named 'a' ... $MAXPART.

Get rid of this and replace it with a quite abstract interface that should
be able to deal with all variants in partition storage:

- partitions are stored in a (partly abstract) struct disk_partitions
and most parts of it are only accessed via accessor functions provided
by a "partitioning scheme".

- implement partitioning schemes for MBR, disklabel and GPT (with likely
RDB [amiga] and Apple Partition Map [mac*] to follow soon)

- partitioning schemes may be cascaded, e.g. on x86 when using MBR as
"outer partitions", we have disklabel as "inner partitions".

- all user interface goes via accessor functions in the partitioning scheme,
some of which return pointers to special user interface descriptors
(e.g. to allow editing partition flags, which are scheme specific)

Overall the user interface changes (in this initial step) are minimal but
noticable. A new Anita is needed for automatic test setups - many thanks
to Andreas Gustafsson for lots of early testing and a new Anita version,
and to Manuel Bouyer for cooperation and tests of the Anita release.

This work was sponsored by The NetBSD Foundation, Inc.


Revision tags: phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

branches: 1.24.2;
deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.26 06-Oct-2018 martin

Support sets in .tar.xz format


Revision tags: pgoyette-compat-0930
# 1.25 11-Sep-2018 martin

Split the host name used for ftp transfers from the one used for http
transfers. This is slightly inconsistent, as directories are still
shared - but this allows us to default to cdn/nycdn for http (which don't
support ftp).


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.24 18-May-2018 joerg

deconst -> __UNCONST, the former involves UB with NULL arithmetic.


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.23 13-Dec-2016 roy

branches: 1.23.6; 1.23.12;
ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

branches: 1.21.2;
Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.


# 1.23 13-Dec-2016 roy

ping is not a reliable means of testing if connectivity to download sets
actually works, so remove it.
Hopefully fixes PR kern/51531.


# 1.22 22-Nov-2016 roy

Fix PR kern/51531 by using ifconfig to wait for addresses to become
valid rather than sleeping a fixed ammount of time.


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.21 21-May-2015 ozaki-r

Remove obsolete interfaces: eon (netiso) and nsip (netns)

Pointed out by Kamil Rytarowski


# 1.20 11-May-2015 martin

Make "ask_yesno" and "ask_noyes" take a const char * as argument, moving
the deconst() dance into the utility functions and simplifying all callers.


# 1.19 11-May-2015 martin

Make it compile on architectures that do not support INET6 in sysinst


# 1.18 10-May-2015 martin

Backout the previous incorrect fix for PR 49440 and redo it more globaly:
get rid of the global "yesno", introduce utility functions "ask_yesno()"
and "ask_noyes()" instead, greatly simplifying a lot of code.
Pass in a pointer to the return value to various "set source" menus.


# 1.17 14-Oct-2014 christos

Don't use asctime(localtime(time_t *)) because this is really ctime(time_t *)
and not checking the result of localtime can lead to tears.
Add a safectime() that always returns a good string, and add some debugging
so that we can see if there is indeed something wrong in the new libc time
code.


# 1.16 22-Sep-2014 roy

Remove the ping6 ff02::2 test, it looks pretty pointless.
dhcpcd will ensure the IPv6 network is up before forking.
ping the IPv4 default route before the nameserver as the nameserver
could be over the default route anyway.

Fixes the core issue with PR install/49231.


# 1.15 13-Sep-2014 martin

For the benefit of gcc 4.5, rename a local "nl" variable to "nline",
so it doesn't collide with the global curses nl() function.


# 1.14 13-Sep-2014 roy

Fix a bogus gcc warning: dhcp_config may be used uninitialized


# 1.13 13-Sep-2014 roy

Show the IP6 address instead of yes


# 1.12 13-Sep-2014 roy

Strip newline from the gateway correctly.


# 1.11 13-Sep-2014 roy

Change the display order so it's protocol agnostic at the top,
then IPv4 then IPv6.


# 1.10 13-Sep-2014 roy

Only prompt for one nameserver, let the user decide if it's a
pre-determined google server other another one.


# 1.9 12-Sep-2014 roy

rtsol is no longer used.


# 1.8 12-Sep-2014 roy

Don't prompt for hostname or domain if obtained from DHCP.


# 1.7 12-Sep-2014 roy

dhcpcd will already have configured the system at this point, so
don't bother writing it manually.


# 1.6 12-Sep-2014 roy

Use the 20-resolv.conf hook from dhcpcd rather than the minimal one.
Extract configured information from resolv.conf and hostname instead
of scraping the last dhcpcd script run.
This will allow the use of DHCPv6 and IPv6RA DNS details in the future.


# 1.5 12-Sep-2014 roy

The dhcpcd utilties in pkgsrc require dhcpcd to be running in master mode.
So set dhcpcd to start like so, but restrict it to the configured interface
still instead of ifconfig_foo=dhcp.


# 1.4 19-Aug-2014 martin

branches: 1.4.2;
Make sure the interface name is 0 terminated, pointed out by coverity scan.


# 1.3 19-Aug-2014 martin

Remove duplicate fclose(), pointed out by coverity scan.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
# 1.2 03-Aug-2014 martin

branches: 1.2.2; 1.2.4;
(Finally) merge a slightly modified version of the 2012 GSoC results
from Eugene Lozovoy: add extended partitioning options to sysinst.
Still needs some testing and polishing, but it now is possible to use GPT
or to create a RAID set from scratch and install onto it.


# 1.1 26-Jul-2014 dholland

Move sysinst sources to usr.sbin.

This commit only physically moves the sources - there are no other
changes, to maximize the probability that this will be treated as a
rename if we ever do manage to migrate away from CVS.

Moving sysinst has been discussed on and off for years and has two
goals: making it easier to work on sysinst, and also making sysinst
available on running systems for use installing chroots and VM images
and other such things. None of the latter is possible yet, but as they
say, one thing at a time.

Doing this now was approved in an impromptu fashion by mrg, riz,
riastradh, me, and groo.