Michael Prokop [Wed, 30 Oct 2019 17:45:56 +0000 (18:45 +0100)]
Merge remote-tracking branch 'origin/pr/24'
Sven Joachim [Wed, 30 Oct 2019 16:35:03 +0000 (17:35 +0100)]
check_boot_flag(): Open device in binary mode
By default open() reads in text which is not going to fly for a boot
sector.
Fatal: 'utf-8' codec can't decode byte 0x90 in position 6: invalid start byte
Exception:
Traceback (most recent call last):
File "/usr/sbin/grml2usb", line 1913, in main
install(iso, device)
File "/usr/sbin/grml2usb", line 1626, in install
install_grml(iso_mountpoint, device)
File "/usr/sbin/grml2usb", line 1653, in install_grml
check_boot_flag(device)
File "/usr/sbin/grml2usb", line 393, in check_boot_flag
data = image.read(520)
File "/usr/lib/python3.7/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 6: invalid start byte
Sven Joachim [Wed, 30 Oct 2019 16:28:07 +0000 (17:28 +0100)]
check_for_fat: Avoid comparing strings and bytes
By default Subprocess.open() opens file objects in binary mode, so the
"filesystem" variable is an array of bytes, and comparing it to a
string always yields false. Fix that by explicitly opening the stream
in text mode.
Michael Prokop [Tue, 22 Oct 2019 13:18:27 +0000 (15:18 +0200)]
Release new version 0.16.7
Michael Prokop [Tue, 22 Oct 2019 13:16:07 +0000 (15:16 +0200)]
Drop debian/compat and switch to debhelper-compat instead
Fixes lintian warning package-uses-old-debhelper-compat-version
Michael Prokop [Tue, 22 Oct 2019 13:13:24 +0000 (15:13 +0200)]
Bump Standards-Version to 4.4.1
Michael Prokop [Tue, 15 Oct 2019 12:58:08 +0000 (14:58 +0200)]
Merge remote-tracking branch 'origin/pr/23'
Michael Prokop [Tue, 15 Oct 2019 12:58:05 +0000 (14:58 +0200)]
Merge remote-tracking branch 'origin/pr/22'
Michael Prokop [Tue, 15 Oct 2019 10:07:07 +0000 (12:07 +0200)]
Avoid subprocess.Popen with stdout/stderr=PIPE and wait() usage
Quoting from https://docs.python.org/2/library/subprocess.html#popen-objects:
| Popen.wait()
| Wait for child process to terminate. Set and return returncode attribute.
|
| Warning
| This will deadlock when using stdout=PIPE and/or stderr=PIPE and the child
| process generates enough output to a pipe such that it blocks waiting for the
| OS pipe buffer to accept more data. Use communicate() to avoid that.
While modprobe isn't expected to ever output enough output to be
relevant, let's better be safe than sorry.
While at it fix typo (it's -> its)
Closes grml/grml2usb#21
Michael Prokop [Tue, 15 Oct 2019 08:28:47 +0000 (10:28 +0200)]
Port to py3k
Quoting from #936663:
Python2 becomes end-of-live upstream, and Debian aims to remove
Python2 from the distribution, as discussed in
https://lists.debian.org/debian-python/2019/07/msg00080.html
Closes: #936663
Michael Prokop [Tue, 15 Oct 2019 08:24:47 +0000 (10:24 +0200)]
Merge remote-tracking branch 'origin/pr/20'
Chris Hofstaedtler [Sat, 31 Aug 2019 13:17:22 +0000 (13:17 +0000)]
grml2usb: add python3 test variant
Chris Hofstaedtler [Sat, 31 Aug 2019 10:41:47 +0000 (10:41 +0000)]
grml2usb: Add smoke autopkgtest for python2
Adds an autopkgtest for the python2 variant of grml2usb -- currently
the only variant. The test unfortunately needs to be run inside a full
machine isolation context, e.g. autopkgtest-virt-qemu.
This builds a minimal stub ISO and does not attempt to test full
functionality.
Chris Hofstaedtler [Sat, 31 Aug 2019 13:11:30 +0000 (13:11 +0000)]
grml2usb: print backtrace when --verbose is given
Useful for debugging.
Chris Hofstaedtler [Sat, 31 Aug 2019 13:10:52 +0000 (13:10 +0000)]
grml2usb: abort if required logo.16 file is missing
Instead of crashing with a type coercion error in popen (because
the logo file is None, then).
Michael Prokop [Thu, 11 Jul 2019 15:26:40 +0000 (17:26 +0200)]
Release new version 0.16.6
Michael Prokop [Tue, 4 Jun 2019 08:39:28 +0000 (10:39 +0200)]
Avoid custom boot options getting duplicated when used with multiple ISOs
grml2usb can be invoked with multiple ISOs *and* custom boot options, like:
% sudo grml2usb --bootoption="ssh=foobar mikawashere" grml32-small_2018.12.iso grml64-small_2018.12.iso /dev/sdb1
Then grml2usb appends the custom boot options in the GRUB
(boot/grub/*.cfg) + isolinux/syslinux (boot/syslinux/*.cfg)
configuration files of files that have been installed by the underlying
grml32-small ISO.
But when hitting the grml64-small ISO then, it continues to replace the
files with the boot options once again. Therefore we end up with
duplicate boot options in the grml32-small_2018.12.iso specific files
(boot/grub/grml32small_default.cfg, boot/grub/grml32small_options.cfg,
boot/syslinux/grml32_small_default.cfg, boot/syslinux/grml32_small_grml.cfg +
boot/syslinux/hidden.cfg).
We could actually ensure to only touch the ISO specific files, but
we don't have version information included in the file names and also
have shared files like boot/syslinux/hidden.cfg, so this might unexpected
side effects as well. So instead let's explicitly check for the provided
custom boot options.
Notes regarding the implementation:
* If boot options are whitespace-only or empty, nothing will happen. This
prevents str.replace to do unintended things.
* otherwise consider string "PRE some-boot-options POST". Then we should find
'some-boot-options' and remove them. Why the delimiter handling? Consider
some-boot-options is 'ssh'. If we replace line.replace(bootopt, '') then some
fictitious boot option like 'service.ssh=autostart' would be broken. Thus the
space delimiters are necessary.
* However, the space delimiters might not exist if the boot options occur at the
end of the string. Thus special handling is required for this case.
Thanks: Ralf Moll for the bug report and Lukas Prokop for providing the bug fix
Michael Prokop [Thu, 21 Mar 2019 11:24:14 +0000 (12:24 +0100)]
Release new version 0.16.5
Michael Prokop [Thu, 21 Mar 2019 09:14:48 +0000 (10:14 +0100)]
Switch default mount point from /lib/live/mount/medium to /run/live/medium
In commit
0d878d3a679 of live-boot(-grml)
("Simplify mount point handling by using /run/live instead of /lib/live/mount")
the mountpath of /lib/live/mount/medium was moved towards /run/live/medium.
Commit
c6a17c7b41b of live-boot(-grml) provides a backward compatibility
rbind mount, but occasionally there seems to be a regression somewhere
during boot (see https://github.com/grml/live-boot-grml/issues/10), and
the rbind mount will be deprecated and removed before the bullseye
(Debian 11) release.
Layout changes over time:
* /cdrom for old linuxrc approach
* /live/image for initramfs layout until December 2012
* /lib/live/mount/medium for initramfs layout since December 2012
* /run/live/medium for initramfs layout since December 2018
Michael Prokop [Thu, 28 Feb 2019 15:02:58 +0000 (16:02 +0100)]
Release new version 0.16.4
Michael Prokop [Thu, 28 Feb 2019 15:00:45 +0000 (16:00 +0100)]
grml2iso: update ISO filename in usage example
Michael Prokop [Thu, 28 Feb 2019 15:00:08 +0000 (16:00 +0100)]
Update copyright year information
Michael Prokop [Thu, 28 Feb 2019 14:58:56 +0000 (15:58 +0100)]
docs: update ISO filenames, referring to a more recent stable version
Michael Prokop [Thu, 28 Feb 2019 14:49:19 +0000 (15:49 +0100)]
Force usage with python2
grml2usb isn't py3k-ready yet, so until we're there
ensure we don't run under python3, even by accident.
Closes: #921327
Michael Prokop [Wed, 20 Feb 2019 15:35:25 +0000 (16:35 +0100)]
Release new version 0.16.3
Michael Prokop [Wed, 20 Feb 2019 14:59:46 +0000 (15:59 +0100)]
No longer depend on coreutils or realpath
The transition of realpath to coreutils happened for the jessie release,
so it shouldn't be necessary any longer.
Closes: #877554
Thanks: Michael Stone for the bug report
Michael Prokop [Wed, 20 Feb 2019 14:52:21 +0000 (15:52 +0100)]
Depend on either syslinux or grub2-common + grub-pc-bin
grml2usb depends on grub-pc(-bin) files and grub2-common's grub-install,
but if someone has grub-efi-amd64 installed, then the grub-pc(-bin)
files are missing. The grub-efi-amd64 package shouldn't matter at all,
since we explicitly run grub with `--target=i386-pc`. Adjust depends
accordingly.
Closes: #796801
Thanks: Albert Dengg for bugreport and suggested solution + Axel Beckert for assistance in getting a proper dependency resolution
Michael Prokop [Wed, 20 Feb 2019 14:52:14 +0000 (15:52 +0100)]
Bump Standards-Version to 4.3.0
Michael Prokop [Thu, 15 Nov 2018 09:03:38 +0000 (10:03 +0100)]
Release new version 0.16.2
Michael Prokop [Thu, 15 Nov 2018 09:01:14 +0000 (10:01 +0100)]
Switch Homepage header from http to https
Michael Prokop [Thu, 15 Nov 2018 09:01:06 +0000 (10:01 +0100)]
Bump Standards-Version to 4.2.1
Michael Prokop [Fri, 1 Jun 2018 14:08:57 +0000 (16:08 +0200)]
Make recent versions of pep8 happy
Fixes:
| grml2usb:71:1: E305 expected 2 blank lines after class or function definition, found 1
as reported by pep8 v2.2.0 (though not yet with v1.6.2)
in our source-test job on Jenkins.
Michael Prokop [Fri, 25 May 2018 18:39:40 +0000 (20:39 +0200)]
Merge remote-tracking branch 'origin/pr/16'
Michael Prokop [Fri, 25 May 2018 11:55:29 +0000 (13:55 +0200)]
Release new version 0.16.1
Michael Prokop [Fri, 25 May 2018 11:54:42 +0000 (13:54 +0200)]
Bump Standards-Version to 4.1.4
Michael Prokop [Sat, 23 Sep 2017 11:50:30 +0000 (13:50 +0200)]
Fix a bunch of typos
s/prefered/preferred/
s/Ressources/Resources/
s/retrive/retrieve/
s/intial/initial/
s/compability/compatibility/
s/ressources/resources/
s/Ressources/Resources/
s/been been/been/
Michael Prokop [Thu, 7 Sep 2017 07:41:51 +0000 (09:41 +0200)]
Release new version 0.16.0
Michael Prokop [Thu, 7 Sep 2017 07:38:14 +0000 (09:38 +0200)]
Provide Secure Boot support
This is pretty nice since we can support Secure Boot
straight without any further/extra command line options.
If the ISO doesn't ship the files we expect to be there
then we don't need any special handling either, so we're
fully backwards and forwards compatible so far.
Note: only supported with Grml ISOs generated with grml-live >=0.31.0
Michael Prokop [Thu, 17 Aug 2017 12:51:00 +0000 (14:51 +0200)]
Release new version 0.15.4
Michael Prokop [Thu, 17 Aug 2017 12:49:57 +0000 (14:49 +0200)]
Bump Standards-Version to 4.0.1
joeran [Tue, 18 Jul 2017 19:27:10 +0000 (21:27 +0200)]
Python3: Some improvements to increase support
Hopefully python2 is still supported...
Michael Prokop [Wed, 31 May 2017 09:28:59 +0000 (11:28 +0200)]
Release new version 0.15.3
Michael Prokop [Wed, 31 May 2017 09:20:26 +0000 (11:20 +0200)]
Ensure that grub-install doesn't receive emtpy command line argument
We run grub-install once without --force and if that fails
try rerunning with --force. On the first run we pass an
empty argument though that grub-install assumes as install
device and fails with:
/usr/sbin/grub-install: error: More than one install device?.
By using "--" as option to signify the end of command line
options we avoid this failure in the run without passing the
--force option.
Michael Prokop [Wed, 31 May 2017 09:19:49 +0000 (11:19 +0200)]
Option --rw-blockdev: set r/w also in GRUB specific steps
Thanks: Ralf Moll
Michael Prokop [Fri, 26 May 2017 21:34:46 +0000 (23:34 +0200)]
Release new version 0.15.2
Michael Prokop [Fri, 26 May 2017 21:32:17 +0000 (23:32 +0200)]
Support netboot.xyz.lkrn addon
For the grml96 flavours we use grml2iso, which itself
relies on grml2usb for copying the relevant files.
With the addition of the netboot.xyz.lkrn file we
forgot
Actually it would be nice to copy any present addon
from /boot/addons/, but close to the new stable Grml
release let's keep the change as small as possible.
Thanks: Michael Schierl for reporting the bug
Closes grml/grml#25
Michael Prokop [Wed, 24 May 2017 13:48:04 +0000 (15:48 +0200)]
Release new version 0.15.1
Michael Prokop [Wed, 24 May 2017 13:31:21 +0000 (15:31 +0200)]
Option --rw-blockdev: ensure to set device to rw between grub-install runs + don't set rw on source
If we're invoking set_rw on the source device this probably
points to the source ISO which will fail.
On the other side we invoke grub-intall with and without --force
in a loop and have to unblock the underlying block device in
between as well, otherwise failing to install.
Michael Prokop [Fri, 19 May 2017 14:49:54 +0000 (16:49 +0200)]
Don't fail hard if installing on partition number >4, instead warn user [Closes: issue1353]
Michael Prokop [Thu, 13 Apr 2017 21:57:37 +0000 (23:57 +0200)]
Release new version 0.15.0
Michael Prokop [Thu, 13 Apr 2017 21:47:47 +0000 (23:47 +0200)]
Support --rw-blockdev option for usage with read-only/forensic like devices
If the system is running in a read-only mode for devices and
setting devices to read-only when they appear (e.g. partition
table scans) then we need to explictely set read-write mode
on the involved devices (e.g. /dev/sdx + /dev/sdx2 if /dev/sd2
is the target partition).
Be aware that you might have to use the --skip-bootflag option
as well then, because this option triggers parted code which
is behaving bad with read-only devices.
Michael Prokop [Tue, 24 Jan 2017 20:48:01 +0000 (21:48 +0100)]
Release new version 0.14.14
Christian Hofstaedtler [Sun, 18 Dec 2016 18:29:08 +0000 (18:29 +0000)]
Correct duplicate word in previous changelog entry
Christian Hofstaedtler [Sun, 18 Dec 2016 18:27:15 +0000 (18:27 +0000)]
Use https URL in Vcs-Browser
Christian Hofstaedtler [Sun, 18 Dec 2016 18:27:03 +0000 (18:27 +0000)]
Bump debhelper compat level to 10
Christian Hofstaedtler [Sun, 18 Dec 2016 18:26:47 +0000 (18:26 +0000)]
Bump Standards-Version to 3.9.8 (no changes needed)
Christian Hofstaedtler [Sun, 18 Dec 2016 18:26:11 +0000 (18:26 +0000)]
Update my email address
Michael Prokop [Tue, 29 Nov 2016 13:34:29 +0000 (14:34 +0100)]
Coding style fixes to make pep8 happy
pep8 version 1.6.2-0.1~bpo8+1
Michael Prokop [Mon, 28 Sep 2015 16:24:08 +0000 (18:24 +0200)]
Release new version 0.14.13
Evgeni Golov [Mon, 28 Sep 2015 15:37:06 +0000 (17:37 +0200)]
Catch parted returning None as the searched partition
Certain USB devices aren't handled correctly by
python-parted. As soon as the USB devices are
filled/rewritten with zeros (dd if=/dev/zero of=/dev/sdX)
they are recognized properly. The underlying issue
couldn't be identified yet, but since we know what
we get let's just fall back to the old boot device
detection and print an according warning message.
Thanks: to mika and Haudegen for debugging
Closes: #766964
Michael Prokop [Fri, 5 Jun 2015 23:42:40 +0000 (01:42 +0200)]
Release new version 0.14.12
Michael Prokop [Mon, 23 Mar 2015 07:58:04 +0000 (08:58 +0100)]
Realpath is provided by recent coreutils versions, adjust Depends
Closes: #780948
Thanks: Ben Finney <ben+debian@benfinney.id.au> for reporting
Lukas Prokop [Wed, 25 Feb 2015 10:39:22 +0000 (11:39 +0100)]
Fix typo
Michael Prokop [Thu, 26 Feb 2015 13:35:35 +0000 (14:35 +0100)]
Release new version 0.14.11
Michael Prokop [Thu, 26 Feb 2015 13:33:55 +0000 (14:33 +0100)]
Document --skip-usb-check option
Michael Prokop [Wed, 25 Feb 2015 13:41:32 +0000 (14:41 +0100)]
Support usage of grml2usb on EFI systems
Closes: #768906
Lukas Prokop [Wed, 25 Feb 2015 10:18:58 +0000 (11:18 +0100)]
Disable usage of --copy-only and --grub at the same time
Michael Prokop [Wed, 25 Feb 2015 13:24:58 +0000 (14:24 +0100)]
Add syslinux-utils to Recommends + adjust error message for isohybrid
isohybrid was moved from isolinux to syslinux-utils in Debian/jessie,
see #751724
Michael Prokop [Wed, 25 Feb 2015 11:28:57 +0000 (12:28 +0100)]
Sync filesystems before returning from MBR installation
We need to make sure the device/filesystem is synced, otherwise
syslinux installation might fail with:
| [...]
| Installing default MBR
| Installing syslinux as bootloader
| syslinux: /dev/sdb1: No such file or directory
| Fatal: Error executing syslinux (either try --fat16 or use grub?)
fsync-ing via dd isn't enough, so we need to make it
a full sync.
Closes: #779193
Michael Prokop [Wed, 25 Feb 2015 10:26:43 +0000 (11:26 +0100)]
Adjust sorting of cmdline options
Michael Prokop [Wed, 25 Feb 2015 08:59:44 +0000 (09:59 +0100)]
Display information when using --skip-usb-check options
Lukas Prokop [Tue, 24 Feb 2015 22:52:08 +0000 (23:52 +0100)]
Introduce skip-usb-check
Michael Prokop [Mon, 13 Oct 2014 08:52:37 +0000 (10:52 +0200)]
Release new version 0.14.10
Evgeni Golov [Sat, 11 Oct 2014 18:01:27 +0000 (20:01 +0200)]
Fix "global name 'parted' is not defined" error in grml2usb
Thanks to Charles Hewson for reporting the issue.
Blame myself for introducing this issue after Mika got it right in
the first version of his patch.
Michael Prokop [Thu, 9 Oct 2014 07:57:27 +0000 (09:57 +0200)]
Document --skip-bootflag cmdline option
Michael Prokop [Tue, 7 Oct 2014 06:47:57 +0000 (08:47 +0200)]
Release new version 0.14.9
Michael Prokop [Wed, 25 Sep 2013 12:54:06 +0000 (14:54 +0200)]
Use pyparted to check for bootflag [Closes: issue1248]
The approach to check the 7th field in the MBR for the
bootable flag being set isn't enough. This fails to detect
bootable partitions if they aren't the first primary ones.
pyparted provides a way to check whether the specified
partition really has the boot flag set, so let's use this
approach, iff pyparted is available.
The check can also be completely skipped using the
--skip-bootflag parameter.
Took the get_partition_for_path function from Evgeni Golov's
https://github.com/evgeni/grml2usb/tree/pyparted with his
permission.
Michael Prokop [Thu, 2 Oct 2014 09:47:24 +0000 (11:47 +0200)]
Release new version 0.14.8
Michael Prokop [Thu, 2 Oct 2014 09:47:08 +0000 (11:47 +0200)]
Bump Standards-Version to 3.9.6
joeran [Thu, 4 Sep 2014 18:52:34 +0000 (20:52 +0200)]
Extend search paths for syslinux MBRs
Florian Apolloner [Mon, 11 Aug 2014 20:31:31 +0000 (22:31 +0200)]
style fixes.
Michael Prokop [Mon, 11 Aug 2014 20:09:38 +0000 (22:09 +0200)]
Release new version 0.14.7
Michael Prokop [Mon, 11 Aug 2014 20:06:57 +0000 (22:06 +0200)]
Fix usage of grub-install command
Thanks: martin f krafft <madduck@debian.org> for spotting the problem
Closes: #755768
Michael Prokop [Tue, 29 Jul 2014 20:59:48 +0000 (22:59 +0200)]
Execute wrap-and-sort on debian directory
Michael Prokop [Fri, 4 Jul 2014 08:08:37 +0000 (10:08 +0200)]
Release new version 0.14.6
Michael Prokop [Fri, 4 Jul 2014 07:59:23 +0000 (09:59 +0200)]
Add support for Python 3
'ExceptionType, name' is deprecated since 2.6 and disestablished
since Python 3, so use 'ExceptionType as name' instead.
Also the print statement has been replaced with a print() function.
Reviewed-by: Evgeni Golov <evgeni@grml.org>
Michael Prokop [Thu, 3 Jul 2014 10:48:55 +0000 (12:48 +0200)]
Release new version 0.14.5
Michael Prokop [Thu, 3 Jul 2014 10:12:48 +0000 (12:12 +0200)]
docs: fix typo (persisten*t*-path and wrong uppercase usage of Grml64/Grml in syslinux)
Michael Prokop [Thu, 3 Jul 2014 10:08:26 +0000 (12:08 +0200)]
Merge branch 'master' of https://github.com/jimmy42/grml2usb
dansan [Mon, 2 Jun 2014 09:19:13 +0000 (11:19 +0200)]
allow grub-install to be called grub2-install (used in gentoo)
Andreas "Jimmy" Gredler [Sun, 23 Mar 2014 20:18:47 +0000 (13:18 -0700)]
Replaced all occurences of iso or Iso with ISO(s) in the manpages
Andreas "Jimmy" Gredler [Sun, 23 Mar 2014 20:12:22 +0000 (13:12 -0700)]
Replaced all occurences of grml with Grml in the manpages
Andreas "Jimmy" Gredler [Sun, 23 Mar 2014 05:58:12 +0000 (22:58 -0700)]
Minor change in manpage
Andreas "Jimmy" Gredler [Sun, 23 Mar 2014 05:53:54 +0000 (22:53 -0700)]
Fixed manpages
Manpages were including the text .5v at the end of some paragraphs. This was
caused by an old hack in the Makefile which removed the text .sp, which was
accidently added to the end of some paragraphs. (sed -i 's/\.sp//') Looks like
this hack is not needed any longer so it was just commented out and so the .5v
disappeared (which might have been the text ".sp 5v")
Michael Prokop [Mon, 24 Feb 2014 15:02:53 +0000 (16:02 +0100)]
Release new version 0.14.4
Michael Prokop [Mon, 24 Feb 2014 14:43:14 +0000 (15:43 +0100)]
More consequently use "Grml" instead of "grml"
Lukas Prokop [Wed, 19 Feb 2014 22:48:08 +0000 (23:48 +0100)]
Silent error for StandardError, not RuntimeError
RuntimeError was caught to catch set modification during iteration.
Now I want to catch all system-related exception.
Lukas Prokop [Wed, 19 Feb 2014 22:47:38 +0000 (23:47 +0100)]
Create copies of set before iteration
Lukas Prokop [Wed, 19 Feb 2014 22:50:55 +0000 (23:50 +0100)]
Provide log message for umounted device in cleanup()
Lukas Prokop [Wed, 19 Feb 2014 22:16:27 +0000 (23:16 +0100)]
Implement folder cleanup support for TMPFILES. Closes #5.