grml2usb (0.20.14) unstable; urgency=medium

  [ Michael Prokop ]
  * [d7baed8] Adjust Depends to improve grub-pc-bin situation
  * [3f951a8] Drop depends on arm64 specific grub packages
  * [c96f5b5] On failing grub-install, point users to according GRUB packages

 -- Chris Hofstaedtler <ch@grml.org>  Wed, 20 May 2026 17:41:28 +0200

grml2usb (0.20.13) unstable; urgency=medium

  * [7fe92dc] pyproject.toml: add ruff to "test" optional-dependencies
  * [2803be4] pyproject.toml: add pyright to "test" optional-dependencies
  * [87e7a00] Set line-length to 120
  * [77048ad] get_flavour_filename: fix docstring
  * [297d494] grml2usb: add type annotations to all functions
  * [9f3a7cc] grml2usb: check_for_usbdevice: replace 0/1 return with bool
  * [3442c86] tests: test extract_device_name with non-anchored string
  * [2a3facf] grml2usb: check_for_usbdevice: use Path, avoid leaking FD
  * [cb302bd] grml2usb: install_iso_files: unify return type
  * [2a33f46] grml2usb: get_device_from_partition: remove unnecessary braces
  * [12f9271] grml2usb: identify_grml_flavour: replace manual file read
  * [117d87d] grml2usb: search_file: remove unnecessary init
  * [02092f2] grml2usb: search_file: remove unused default param
  * [775282b] grml2usb: search_file: remove unused param "required"
  * [3678ad1] grml2usb: search_file: remove support for multiple search paths
  * [5ad95f8] grml2usb: split search_file into search_file and search_dirs
  * [c20767d] grml2usb: copy_bootloader_files: move logo.16 copying into `if
    syslinux_target:` block
  * [3bcf596] grml2usb: copy_bootloader_files: clarify syslinux detection
  * [9844246] grml2usb: copy_bootloader_files: move all grub handling into one
    place
  * [6d23b62] grml2usb: copy_bootloader_files: split syslinux handling into
    new function
  * [e59a456] grml2usb: handle_syslinux_config: remove now obsolete exists
    check
  * [c4cffd4] grml2usb: handle_syslinux_config: move skip into caller
  * [0c6bd89] grml2usb: handle_syslinux_config: remove global options
    dependency
  * [901ee16] grml2usb: copy_and_configure_isolinux: reformat copy line so
    new_hidden.cfg can be grepped for
  * [69a5f1a] test data: add (truncated) contents of
    grml-full-2025.12-amd64.iso
  * [6eed715] test data: add (truncated) contents of
    grml-full-2025.12-arm64.iso
  * [bc22515] tests: synthesize ISO contents
  * [114ece9] tests: add a test for copy_and_configure_isolinux
  * [6f3fff3] grml2usb: handle_secure_boot: remove redundant debug logging
  * [fd5a3be] tests: add a test for test_copy_bootloader_files
  * [6c3ea44] tests: expand test_copy_bootloader_files for different
    bootloader options
  * [62df226] grml2usb: skip mbr-code finding when handle_mbr gets skipped for
    EFI
  * [6f9ee53] grml2usb: handle_mbr: cleanup return type
  * [2de90e0] grml2usb: handle_syslinux_config: make new_hidden.cfg absent a
    caught fatal error
  * [ee839a3] grml2usb: install_iso_files: remove unused param "device"
  * [4504ba8] grml2usb: handle_mbr: simplify mbr locating
  * [89c0cad] grml2usb: move toplevel main code into a function
  * [839a88a] grml2usb: install_mbr: extract blockdev call
  * [9d5258e] grml2usb: reread_partition_table: differentiate errors
  * [62b54de] grml2usb: install_mbr: move bootloader check into caller
  * [bcf0106] tests: add test for install_mbr
  * [de6eafe] grml2usb: install_mbr: call dd less often
  * [98d6782] grml2usb: set default value for removeoption
  * [c2c0ff9] test: add test for adjust_syslinux_bootoptions
  * [7f4505e] grml2usb: stop using fileinput in adjust_syslinux_bootoptions
  * [a6fe884] grml2usb: rebuild syslinux append line
  * [6ba6d07] test: test_adjust_syslinux_bootoptions: expand option coverage
  * [8c51507] test: add test for adjust_labels
  * [fa590cf] grml2usb: adjust_labels: avoid using fileinput
  * [2af8c91] test: add test for remove_default_entry
  * [040098b] grml2usb: remove_default_entry: avoid using fileinput
  * [d126d40] grml2usb: handle_grub_config: move global options accesses into
    caller
  * [d5b5a65] test: add test for handle_grub_config
  * [1536679] grml2usb: handle_grub_config: stop using fileinput
  * [9726fcf] grml2usb: handle_grub_config: stop moving bootid,
    live-media-path options

 -- Chris Hofstaedtler <ch@grml.org>  Tue, 28 Apr 2026 16:37:06 +0200

grml2usb (0.20.12) unstable; urgency=medium

  [ Michael Prokop ]
  * [e12dffe] Fix host architecture detection when running on arm64
  * [bb37f29] grml2usb: use GRUB for BIOS boot, support ISOs without syslinux
  * [ca7bb90] grml2iso: use GRUB for BIOS boot, support ISOs without syslinux
  * [ff92ca9] grml2iso: drop mkisofs/genisoimage support, require xorriso
  * [d76053a] grml2iso: drop xorriso version check
  * [1be5b7e] grml2iso: various cleanups
  * [c695dda] grml2usb: replace mbrldr/mbrmgr with syslinux MBR

  [ Chris Hofstaedtler ]
  * [7b1dc65] Setup ignore list for Git
  * [5f56fd6] test_smoke: setup log level
  * [01aedfe] test_smoke: improve MBR tests
  * [a682abc] test_smoke: test different bootloader options
  * [ad0115c] test_smoke: extract ISO download into a fixture
  * [82fab88] test_smoke: defuse handle_logging completely
  * [747f0bc] test_smoke: fix zero-MBR assert
  * [a729182] test_smoke: assert chosen bootloader in log output
  * [5087325] test_smoke: extract loop dev management into a fixture
  * [a98da8d] tests: avoid redownloading ISO

 -- Chris Hofstaedtler <ch@grml.org>  Mon, 16 Mar 2026 15:57:54 +0100

grml2usb (0.20.11) unstable; urgency=medium

  [ Chris Hofstaedtler ]
  * [e4a233f] grml2usb: apply black 26.1.0
  * [849f303] grml2usb: fix typo in comment
  * [7848bd7] grml2usb: follow glob1 deprecation
  * [baec39a] grml2usb: correctly pass a bool to fineput.input inplace argument
  * [c8b72c4] grml2usb: do not pre-format logging format strings
  * [288f5ed] grml2usb: remove obsolete utf-8 encoding declaration
  * [1fa9eb6] test: remove unused argparse import
  * [c3fafa9] Replace black, isort, flake8 with ruff
  * [cd6693a] pyproject.toml: require pyparted only on linux
  * [d1930bb] grml2usb: inline get_partition_for_path back into check_boot_flag
  * [3ba43f6] grml2usb: use f-strings where trivially possible
  * [16ec2e9] grml2usb: show device name in mkfs question
  * [a5a34e8] grml2usb: lowercase local variable in handle_logging
  * [2a7822c] grml2usb: replace depreated IOError name
  * [8316e09] grml2usb: extract prompting for y/n into helper function
  * [c9c8d08] grml2usb: simplify the "which" helper function
  * [b65f072] grml2usb: remove unused argument to "unmount"
  * [2b8a680] grml2usb: "mkdir": use exist_ok available since Python 3.2
  * [4e54562] grml2usb: simplify "write_uuid"
  * [b035c38] grml2usb: simplify "get_target_bootid"
  * [2f13c5d] grml2usb: simplify "build_loopbackcfg"
  * [5843648] grml2usb: simplify "initial_syslinux_config"
  * [e6cbcf2] grml2usb: "add_entry_if_not_present": use with open instead of
    f.close()
  * [bb8bb57] grml2usb: "add_syslinux_entry": explicitly pass syslinux_target
    instead of reconstructing it
  * [c3f36c3] grml2usb: "handle_syslinux_config": use with open instead of
    f.close()
  * [90698dc] grml2usb: "check_uid_root": simplify check condition
  * [41a1845] grml2usb: "get_bootoptions": swap if branches
  * [a8ab92c] grml2usb: "check_options": swap if branches
  * [534c9fa] grml2usb: "main": merge nested if
  * [f066417] grml2usb: use run_program to replace log + subprocess pattern
  * [ee9005b] grml2usb: check_for_fat: handle exit code 2 from blkid
  * [08225ab] grml2usb: check_for_fat: make try block smaller
  * [745e52b] grml2usb: "handle_secure_boot": remove duplicated mount debug
    log
  * [87030b3] grml2usb: "mount": stop passing "" as "no options"

 -- Chris Hofstaedtler <ch@grml.org>  Thu, 12 Feb 2026 23:08:57 +0100

grml2usb (0.20.10) unstable; urgency=medium

  [ Chris Hofstaedtler ]
  * [e903f89] Enable dependabot for GitHub Actions
  * [8cf171e] Replace GitHub workflows
  * [1e2562c] Rename asciidoc files to *.adoc
  * [1b073fb] Add README.md

 -- Chris Hofstaedtler <ch@grml.org>  Mon, 03 Nov 2025 12:54:33 +0100

grml2usb (0.20.9) unstable; urgency=medium

  * [99d1520] d/copyright: Remove old FSF address

 -- Chris Hofstaedtler <ch@grml.org>  Tue, 26 Aug 2025 20:02:33 +0200

grml2usb (0.20.8) unstable; urgency=medium

  * [bc49898] Stop mentioning specific addons
  * [23bf0c7] Remove support for kernels named linux26
  * [886a630] Remove grub1 details
  * [8d83006] Remove disabled doc part about --squashfs
  * [cb53e5a] Remove syslinux < 4.0 specifics
  * [17726f0] Update grml ISO in examples

 -- Chris Hofstaedtler <ch@grml.org>  Sun, 17 Aug 2025 12:34:08 +0200

grml2usb (0.20.7) unstable; urgency=medium

  [ Chris Hofstaedtler ]
  * [2722899] GHA CI: revert back to ubuntu-latest

  [ Christopher Bock ]
  * [e218516] grml2usb.8: cleanup link, add wiki link for persistence
  * [9afefbb] replace fat16 command with format

 -- Michael Prokop <mika@grml.org>  Fri, 15 Aug 2025 12:05:26 +0200

grml2usb (0.20.6) unstable; urgency=medium

  * [669ff7b] doc: remove backslashes from options
  * [2a47e65] doc/Makefile: remove scp leftovers
  * [2a9b458] Makefile: remove scp leftovers
  * [e5bea18] python: apply current black style

 -- Chris Hofstaedtler <ch@grml.org>  Tue, 04 Mar 2025 23:25:48 +0100

grml2usb (0.20.5) unstable; urgency=medium

  * [804d407] Fix updating bootid for isolinux installs

 -- Chris Hofstaedtler <ch@grml.org>  Thu, 19 Dec 2024 17:31:56 +0100

grml2usb (0.20.4) unstable; urgency=medium

  * [7538f7b] Fix crash: expected str, bytes or os.PathLike object, not list
  * [f087d75] Add smoke test
  * [026d659] Make blockdev --rereadpt optional
  * [4cbd342] Introduce automatic bootloader selection

 -- Chris Hofstaedtler <ch@grml.org>  Thu, 19 Dec 2024 02:00:26 +0100

grml2usb (0.20.3) unstable; urgency=medium

  * [2163d31] migrate from optparse to argparse
  * [966c17b] fix missed execution of function
  * [a29b826] remove upgrade path from 15 years ago
  * [d3339d2] doc: remove isohybrid hint

 -- Chris Hofstaedtler <ch@grml.org>  Sat, 07 Dec 2024 16:08:26 +0100

grml2usb (0.20.2) unstable; urgency=medium

  [ Michael Prokop ]
  * [4141028] Add debian/gbp.conf to set expected debian tag + dch
    settings

  [ Chris Hofstaedtler ]
  * [b344d41] Add .github/FUNDING.yml
  * [257aee3] Copy bootaa64.efi if available (#56)

 -- Michael Prokop <mika@grml.org>  Sat, 23 Nov 2024 13:50:29 +0100

grml2usb (0.20.1) unstable; urgency=medium

  [ crpb ]
  * debian: update Vcs-Git and Vcs-Browser

  [ Chris Hofstaedtler ]
  * Loosen dependency on grub2.
    Avoid pulling in non-UEFI grub on amd64, if UEFI grub is already
    installed. Also necessary to allow installing on arm64.

 -- Chris Hofstaedtler <zeha@debian.org>  Fri, 08 Nov 2024 18:09:18 +0100

grml2usb (0.20.0) unstable; urgency=medium

  [ Chris Hofstaedtler ]
  * [8143af6] Use nasm to assemble mbr
  * [bb80820] debian: make grml2usb package Architecture: all
  * [e055635] debian: Do not run codecheck

 -- Michael Prokop <mika@grml.org>  Sat, 19 Oct 2024 17:23:30 +0200

grml2usb (0.19.3) unstable; urgency=medium

  [ Michael Prokop ]
  * [5f40f1c] grml2usb docs: drop references to deprecated grml-medium

  [ Chris Hofstaedtler ]
  * [418f5db] Add GitHub Actions workflow to build grml2usb.deb
  * [8c841fe] d/control: Capitalize Vcs-Git
  * [60f4229] d/control: Update my name
  * [ca3f02c] d/control: set Rules-Requires-Root: no
  * [8926abb] d/control: uppercase USB in description

 -- Michael Prokop <mika@grml.org>  Fri, 06 Sep 2024 17:39:48 +0200

# Older entries have been removed from this changelog.
# To read the complete changelog use `apt changelog grml2usb`.
