
- 2.18 released -

Support distribution URLs having a query string and/or fragment
component

On platforms other than NetBSD, invoke simh-vax as just vax.

Support upcoming sysinst changes to set the the date and time as part
of the NetBSD/vax install.

Store the ATF output files under /var/tmp on the guest, because
/tmp may be a tmpfs which is too small in low-memory configurations
(NetBSD PR 59560).

Increase default disk size to 2G, as 1536M is no longer enough to run
the ATF tests on amd64.

- 2.17 released -

When downloading a file results in an error, attempt to determine
whether the error is due to the expected nonexistence of the file or
some other error that should be treated differently.

Fix a compatibility issue between setup.py and recent pkgsrc pip.

Fix a regression in NetBSD/pmax target support.

- 2.16 released -

Deal with Python 3.13 no longer having urllib.FancyURLopener

- 2.15 released -

Fix invalid escape sequences that cause warnings in Python 3.12.

- 2.14 released -

In the deprecated anita.Release method, use https, and use
archive.netbsd.org for releases older than 9.0.

Ignoring a suffix of "-dvd" when deducing the architecture name from
the URL of an install ISO, to work around the issue of PR 58357.

Define a scratch disk for vax guests so that they can export ATF test
results to the host.

Support Xen pvshim.  From Manuel Bouyer.

- 2.13 released -

Install the base32 set by default (when present).

When installing a NetBSD version that has the new "base32" set, don't
mistake it for the "base" set.

- 2.12 released -

Fix incorrect scratch disk device name for riscv-riscv64 causing the
export of test result data to the host to fail.

Support the new manhtml, base32, and debug32 sets.

When installing a NetBSD version that has the new "manhtml" set, don't
mistake it for the "man" set.

- 2.11 released -

Increase the default memory size for sparc to 64M.

On macOS, use the -joliet option to "hdiutil makehybrid" as the -iso
option fails to create a Rock Ridge file system even though the
hdiutil manpage says it will.  From Benny Siegert.

Add initial support for riscv-riscv64.

Increase the default of the --test-timeout option to 3 hours, as the
timeout of the crypto/libcrypto/t_libcrypto:bn test case in the NetBSD
ATF test suite has now been increased to 2 hours, and anita must use a
longer timeout than any individual test case.

New command line --no-entropy.

Support Xen PVH virtualization, enabled by "--xen-type pvh".
From Manuel Bouyer.

New command line --partitioning-scheme, for testing i386 and amd64
with MBR partitioning rather than the default GPT partitioning.

- 2.10 released -

Support the new sysinst root password and entropy configuration user
interface introduced on source date 2022.04.21.17.30.15.

Fix stray quotes in the anita --help output.

When choosing to overwrite a non-NetBSD partition, handle yes/no
choices presented in either order.

Define a scratch disk for macppc (wd1c) so that ATF test results can
be exported to the host.

- 2.9 released -

Support the new "gpufw" set.

Actually reduce the default test timeout to 1 hour as documented in
version 2.5 when anita is invoked as a program rather than as a
library.

Log a message to the structured log file on timeout so that the time
when the timeout occurred can be determined from the message timestamp.

Define a scratch disk for alpha (wd1c) so that ATF test results can
be exported to the host.

In addition to the plain-text ATF test report printed to the console
as the tests progress, also store a clean copy without other console
output in test.txt and export it to the host.  Suggested by
Greg Troxel.

Fix failure to destroy the Xen DomU used by the installation stage
before trying to create the one for the boot stage when running
under Python 3.

Fix failure to log in after reboot when running "anita test" on a
self-resizing image without running a separate "anita install" first.
From Joerg Sonnenberger.

Support coypu's proposed sysinst entropy patch.

Remove extra newline in reponse to entropy prompt.

- 2.8 released -

Preemeptively support sysinst requesting entropy as a single line.

Fix bug in 2.7 that caused the provision of entropy to the installer
to fail when running under Python 3.

Omit ",cdrom" when passing a CD-ROM device to a Xen PV domain because
doing so will cause NetBSD/Xen to ignore device since xenbus_probe.c
1.51.

- 2.7 released -

Fix bug in 2.6 that caused the provision of entropy to the installer
to fail when running under Python 2.

- 2.6 released -

Support upcoming sysinst changes to support interactive input of
entropy.

Add support for NetBSD/alpha targets.

The "interact" mode now supports interaction with the boot process,
except when the --run option is used.

- 2.5 released -

Reset the test timeout once per test case, not just once per test
program, and reduce the default timeout to 1 hour.

- 2.4 released -

Deal with the root device name of evbarm-aarch64 changing as a result
of the the switch to GPT at source date 2020.05.24.18.44.46.

- 2.3 released -

Deal with curses sometimes optimizing away the final "s" in "Debug
symbols", causing the debug set to not be installed.

Increase default memory size for amd64 from 128M to 192M, as the
installer no longer runs reliably in 128M without exhausting memory.

Keep logging the console output for a few seconds after shutdown to
catch the autoconf detach messages and possible panics on detach.

When logging shell commands, avoid line breaks between options and
their arguments.

Support the "virt" machine type for evbarm-eamv7hf as an alternative
to the default of vexpress-a15.  To enable, use the command line
option --machine virt.

- 2.2 released -

Clean up some b'' quoting that appeared around strings in the log
output under python3.

New command line option --image-format for selecting the guest disk
image format.  Supported values are "dense" (the default) and
"sparse".

Reset the install timeout whenever a new set extraction or other
command is started by sysinst, and reduce the timeout to 1 hour.
This allows hangs in the install phase to be detected more quickly.

Reset the test timeout whenever a new test program is started by ATF,
and reduce the default timeout to 2 hours.  If you are passing a
non-default test timeout with the --test-timeout option, it can also
be reduced.  This allows hangs during test runs to be detected more
quickly.

Fix the sparc64 CD install which was broken in 2.1, by adding an
index=2 attribute to the virtual CD drive.

Make NetBSD-current/macppc boot by passing "-prom-env qemu_boot_hack=y"
to qemu-system-ppc.  From Joerg Sonnenberger.

- 2.1 released -

Add support for the newly added rescue set.

Deal with the sysinst changes of 2019-11-16.

Add support for macppc targets, based on a patch from Joerg
Sonnenberger.

Fix failure to install the sharesrc set due to curses optimization.

- 2.0 released -

In the test suite, run the tests in parallel to reduce the run time.

Downloads can now be interrupted using SIGINT (control-C).

On NetBSD, invoke makefs using its absolute path /usr/sbin/makefs
as /usr/sbin may not be in PATH.

Add support for Python 3.

When using qemu from pkgsrc, log the exact pkgsrc version of qemu and
glib2, including any nb suffix.

- 1.49 released -

Fix issue introduced in 1.48 that caused the Xen install kernel to be
used instead of the regular Xen kernel when booting the installed
system.

- 1.48 released -

When sysinst offers a choice of partitioning schemes, anita now uses
the one listed first.  Therefore, i386 and amd64 installs of versions
where sysinst offers GPT as the first choice will use GPT rather than
MBR as was previously the case.

Add support for NetBSD/hppa targets.

Support some upcoming sysinst UI changes.

The structured log file is now flushed after each line so that
it can be used to debug a hung installation without waiting for
it to time out first.

Move the automatic determination of the type of the URL argument
(e.g., distribution directory vs. installation ISO) into a new library
function anita.distribution() so that it can be used not only from the
command line but also by Python programs calling anita as a library.

When using a pre-installed image, "anita install" will now boot it to
let it resize itself, rather than postponing the resize to when the
image is later booted in another mode such as "anita test".

- 1.47 released -

Deal with the removal of the VEXPRESS_A15 kernel, used by the
evbarm-earmv7hf target, in favor of GENERIC.

- 1.46 released -

Add support for NetBSD/evbarm-aarch64 targets.

Add support for NetBSD/sparc64 targets, from Utkarsh Anand.

The run_tests() method now halts the VM, to ensure that the
scratch disk containing ATF test results is flushed by the
guest before being read by the host.

- 1.45 released -

Support xz compressed distribution sets.

Support NetBSD/vax via simh.  Installing and booting works;
running the ATF tests does not.  From Utkarsh Anand.

Mark the NumberedVersion and Release classes as deprecated.

Remove the obsolete clases DailyBuild and LocalBuild.

Fix a bug that caused the guest OS to unnecessarily boot twice
when entering "interact" mode since version 1.43.

Don't send a spurious "x" at the end of installation.

Log the pexpect version.

- 1.44 released -

Disable optimization avoiding copies when installing from a file: URL
or local path, as it broke installation of source sets.

Deal with pexpect 4.3.1 requiring delayafterclose and
delayafterterminate to be set in two different places
(https://github.com/pexpect/pexpect/issues/462).

Support installing on disks with a corrupt or out-of-date MBR.

Log the command line arguments on startup.

- 1.43 released -

Log interactive mode input and output to the structured log file.

Add support for NetBSD/hpcmips targets, from Utkarsh Anand.

- 1.42 released -

VM console input is no longer logged to stdout, to keep it from
appearing twice when echoed by the VM.

Fix VM console output appearing twice in interact mode (again).

Add support for gxemul as a new VMM and NetBSD/pmax as a new guest.
From Utkarsh Anand.

Increase the default test timeout to 24 hours, as the tests now
take much longer to run than before due to a combination of
the addition of new tests and qemu performance regressions.

Added target support for NetBSD/evbarm-earmv7hf, from Utkarsh Anand.
This installs from a pre-built image rather than using sysinst.

When installing from a file: URL or local path, avoid creating
unnecessary copies of the release files.  From Utkarsh Anand.

New command line option --tests for explicitly selecting the the Kyua
test framework instead of ATF, from Utkarsh Anand.

- 1.41 released -

If the VMM exits unexpectedly while running the ATF tests or some
other shell command, log the exit status and the signal that caused it
to exit (if any).

Log the qemu version used to stdout.

Fix reference to uninitialized variable when reporting a
timeout waiting for VM halt confirmation.

Increase default child timeout from 300 to 600 seconds
to support VMMs where power-up takes a long time.

Increase child.delayafterclose and child.delayafterterminate
to support VMMs where power-down takes a long time.

Run more network diagnostics after failed network installs.

Add timestamps to structured log output.

- 1.40 released -

Work around a bug in the urllib library of Python 2.7.12 that causes
FTP transfers to fail with the error message "[Errno ftp error] 200
Type set to I"; see https://bugs.python.org/issue27973.

When halting the child results in an EOF, don't print the exception
since that may be confused with a failure.

Run vmstat -s at the end of the ATF tests to help diagnose issues
like excessive paging due to insufficient memory.

Increase the default of the --test-timeout option from 3 hours to 8
hours, since the sparc tests are now taking more than 5 hours.

Increase the default disk size to 1526M, as 1G is no longer enough
for amd64.

Pass format=raw in the qemu -drive option to suppress warnings in
recent qemu versions.

- 1.39 released -

Deal with incompatible change in the output format of the "info block"
command in qemu 2.5.0.
 
Fix bug where the exit status of the shell command specified with the
--run option was not propagated to the exit status of anita.

New public method start_boot, to facilitate writing test cases that
interact with the boot prompt.

The structured log file now also contains informational messages,
of the form info('message').

- 1.38 released -

Deal with the sysinst message changes of 2015-04-30.

When halting the VM, don't quit as soon as the text "halted" is seen,
because it may be part the message "halted by root", which is printed
before disks have been synced.  Instead look for "The operating system
has halted", EOF, or a timeout.

- 1.37 released -

The global test() function is no longer supported, use the run_tests()
method of the Anita object instead.

When halting the VM, do not attempt to log in if already logged in.

Make the distinctive shell prompts different from one invocation of
anita to another, so that anita can run itself recursively on the VM
without the outer instance mistaking a shell prompt from an inner
instance for one of its own.

- 1.36 released -

When running a shell command, wrap the exit status in distictive text
so that it can be reliably matched in the presence of buffered output
containing other numeric strings.

Halt the VM when done.

Print the qemu command.

- 1.35 released -

Support Linux host systems that have genisoimage but not mkisofs, such
as Debian 7.

New command line option --run-timeout.

- 1.34 released -

Do not require releases to contain install floppies, since amd64 no
longer has them.

The default value of the --boot-from option is now "cdrom" if the
install floppies are missing.

When reporting a failed download of optional files, be clearer that
this is not an error.  Also, don't treat arbitrary exceptions during
downloads as indicating a missing file, only the expected IOError.

Increase the default disk size from 768M to 1G, as 768M is no
longer sufficient for amd64.

New command line option --structured-log-file.  This is like
--structured-log but takes the name of a log file as an
argument, and the structured logging is in addition to, not
instead of, the traditional logging to stdout.

Increase installation timeout from 1 hour to 3 hours so that
a system built with DEBUG and LOCKDEBUG can be installed under
qemu without timing out.

Unconditionally print a greeting message including the version number
of startup, so that logs from automated anita runs will always
indicate the version used.

In --structured-log mode, log the string matched by expect() instead
of the return value, as the latter is always zero and therefore
conveys no useful information.

- 1.33 released -

Support recent versions of sysinst (CVS date 2014.08.03.16.09.38 or
newer), where set selection happens after disk partitioning rather
than before.

Document qemu 2.0.0nb4 as a known working version.

New command line option --structured-log.

- 1.32 released -

Fix installation of source and debug sets, which had been broken since
the label displayed by sysinst was changed from "Source sets" to
"Source and debug sets".

- 1.31 released -

Fix a failure to consume a shell prompt which would cause it to remain
buffered and later be mistaken for one that had not yet issued.  For
added protection, add a unique serial number to each prompt.

Omit drive index from qemu command line for backwards compatibility
with scripts written for anita 1.29 or older.

Fix X11 set names.

- 1.30 released -

Increase the default timeout for running the NetBSD test
suite from 2 hours to 3 hours.

Add support for installing the new "debug" set, and add a new
man page section on using anita for debugging NetBSD.

Organize the BUGS section of the man page into sections,
and add links to four more qemu 1.x regressions.

Add Kuya support, based on patch from Julio Merino.

New command line option "--version".

Support booting i386 and amd64 from boot-com.iso instead
of the boot floppies, attaching a second virtual CD-ROM drive
for the install sets.  Enable with "--boot-from cdrom".

Fix the Anita 1.2 backwards compatibility Release class.

- 1.29 released -

Fix "xm" Xen interface support broken in 1.28.

- 1.28 released -

The "xl" Xen interface can now be selected with "--vmm xl".

Increase the default memory size for amd64 to 128M.

Improve progress messages when creating the disk image.

When execing /bin/sh, wait for its prompt before sending
it a command.

- 1.27 released -

Run shell commands on the target system using /bin/sh rather
than root's login shell, as sysinst no longer sets the login
shell to /bin/sh by default.

- 1.26 released -

Track the sysinst changes of 2012-04-06 introducing the new
post-install configuration menu.

Print a message before creating the disk image, as it can take
a long time and make it appear that anita has hung.

- 1.25 released -

Before running a shell command on the system under test, change the
shell prompt to a more distinctive one to reduce the risk of command
output being mistaken for a prompt.

Support installing SPARC ISOs having a non-numeric suffix following
the version number, such as NetBSD-6.0_BETA-sparc.iso.

Added experimental support for using Xen instead of qemu as the
virtual machine monitor.  This is enabled by specifying "--vmm xen" on
the anita command line while running as root in a Xen dom0.

New command line option "--persist".

- 1.24 released -

Support the new distribution ISO naming scheme, e.g.,
NetBSD-5.99.60-sparc.iso instead of sparccd.iso.

Support installation of the X11 and source sets.

On unknown platforms, use mkisofs instead of genisoimage.

On sparc, the scratch disk is sd1c, not wd1d.

Allow a full hour for extracting sets.

Deal with the backwards incompatible renaming of "qemu" to
"qemu-system-i386" in qemu 1.0.

After running the ATF tests, run "ps" to show any processes possibly
left running by the tests.

- 1.23 released -

Support qemu 0.15, where the output of the "info block" monitor
command has backwards-incompatibly changed to no longer include a
"type" field.

- 1.22 released -

New command line option "--memory-size".

- 1.21 released -

Disk images no longer contain holes, making them easier to use with
vnd(4).  Partially based on patch from Vladimir Kirillov.

Increase the default disk size from 512M to 768M, as 512M is no longer
sufficient for amd64.

- 1.20 released -

Run df before and after the ATF tests so that disk usage data
can be gathered from the test logs.

Increase the default timeout for the ATF test from 1 hour to 2 hours
as the number of tests has now increased to a point where 1 hour is
not always enough even on a fast machine.

Increase the timeout for the set extraction phase from 1200 to 2400
seconds; the extra time is needed when installing a system built
without optimization.

- 1.19 released -

Rename the --qemu-args option to --vmm-args in preparation for adding
support for other virtual machine monitors in addition to qemu.

Fix typos found by Antti Kantee and Jean-Yves Migeon.

Deprecate the --qemu-args -no-kvm-irqchip workaround, as it doesn't
quite work.

Add support for MacOS X hosts, from Jeff Rizzo.

New command line option "--test-timeout".

Deal with yet another seemingly nondeterministic "Press enter to
continue" prompt.

- 1.18 released -

Deal with sysinst no longer asking for a password cipher.

Create the work directory in "test" mode so that it works without
running "install" first.

Fix incorrect description of the --workdir option in the man page, and
consistently use the term "work directory" throughout.

Reorganized the man page, adding a MODES section.

New mode "print-workdir".

Fix installation of historical versions of -current around
CVS date 2009.08.23.20.57.40.

- 1.17 released -

Fix bugs in the new features introduced in 1.16: the --sets option
only worked when passing the URL of a distribution directory (rather
than a pathname or the url of an ISO), and exporting of ATF output
only worked when using --workdir with an abolute pathname.

- 1.16 released -

Update the discussion of Linux KVM virtualization compatibility in the
BUGS section, noting the --qemu-args -no-kvm-irqchip workaround and
including a reference to PR 44069.

New command line option "--sets".

Add a rudimentary INSTALL file.

The "misc" set is now installed by default, as it is required for
the ATF XML DTD, XSL files, and style sheets.

The "test" command now exports the raw and XML format ATF output
to the host, along with some auxiliary files needed for further
processing of the XML output.

Add support for FreeBSD hosts, from Kurt Lidl.

- 1.15 released -

Increase the timeout for "--run" commands to one hour.

Restrict snapshotting to the system disk, so that additional disks
mounted for the purpose of exporting data can be persistently
modified.

- 1.14 released -

Increase the maximum number of boot floppies, as four is no longer
enough for amd64.

New command line option "--run".

Handle the additional dialogs displayed by sysinst when an
i386 or amd64 system has more than one disk.

Add the words "OR CONTRIBUTORS" to the disclaimer of liabilities
in the copyright notice.

- 1.13 released -

When installing NetBSD/sparc, use a terminal type of "xterm" rather
than "sun", as anita is more likely run from an xterm or other
ANSI-like terminal than from a sun console.

In the BUGS section of the man page, mention the specific NetBSD ports
affected.

Fix typos in the man page.

- 1.12 released -

Add support for the amd64 and sparc ports as targets.

Improve error reporting for common types of unsuitable URLs.

Avoid sending multiple responses when the NetBSD 3.0.1 sysinst
updates the menu display multiple times.

New command line option "--disk-size".

- 1.11 released -

Remove '-serial stdio' from qemu argument list.  It's not actually
needed when the '-nographic' option is present, and it confuses
qemu 0.12.

- 1.10 released -

Deal with recent sysinst changes: sysinst no longer displays a dialog
to select the CD-ROM device path, etc.

New command line option "--qemu-args".

Anita no longer passes the "-no-acpi" option to qemu by default,
because the ACPI case now works with -current, and disabling
ACPI triggers other bugs.  See PR port-i386/42681 for more details.

- 1.9 released -

Deal with recent renumbering of password encryption choices in sysinst.

- 1.8 released -

Increase timeouts, particularly when extracting sets and running the
ATF tests

Document the "test" command and path-in-place-of-URL

- 1.7 released -

Remove workaround for lib/39175, which broke the installation
of the "comp" set

Add "test" command for running the ATF tests

Accept a local distribution directory path in place of a URL

Check for missing slash at end of distribution directory URL

Detect HTTP 404 errors

- 1.6 released -
