Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 879887 Details for
Bug 920296
app-admin/eclean-kernel-2.99.7 fails tests on big-endian: ecleankernel.file.UnrecognizedKernelError: Kernel file ... terminates before expected version string position (4608)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
build.log and emerge --info from ppc64 BE
file_920296.txt (text/plain), 246.71 KB, created by
matoro
on 2023-12-19 01:03:23 UTC
(
hide
)
Description:
build.log and emerge --info from ppc64 BE
Filename:
MIME Type:
Creator:
matoro
Created:
2023-12-19 01:03:23 UTC
Size:
246.71 KB
patch
obsolete
>Portage 3.0.57 (python 3.11.6-final-0, default/linux/ppc64/17.0, gcc-13, glibc-2.37-r7, 6.6.7-gentoo-ppc64 ppc64) >================================================================= >System uname: Linux-6.6.7-gentoo-ppc64-ppc64-POWER9_-architected-,_altivec_supported-with-glibc2.37 >KiB Mem: 12503232 total, 5335552 free >KiB Swap: 0 total, 0 free >Timestamp of repository gentoo: Tue, 19 Dec 2023 00:02:04 +0000 >sh bash 5.1_p16-r6 >ld GNU ld (Gentoo 2.41 p2) 2.41.0 >app-misc/pax-utils: 1.3.7::gentoo >app-shells/bash: 5.1_p16-r6::gentoo >dev-lang/perl: 5.38.2-r1::gentoo >dev-lang/python: 3.11.6::gentoo, 3.12.1::gentoo >dev-util/cmake: 3.27.7::gentoo >dev-util/meson: 1.2.3::gentoo >sys-apps/baselayout: 2.14-r1::gentoo >sys-apps/openrc: 0.48::gentoo >sys-apps/sandbox: 2.38::gentoo >sys-devel/autoconf: 2.71-r6::gentoo >sys-devel/automake: 1.16.5-r1::gentoo >sys-devel/binutils: 2.41-r2::gentoo >sys-devel/binutils-config: 5.5::gentoo >sys-devel/gcc: 13.2.1_p20230826::gentoo >sys-devel/gcc-config: 2.11::gentoo >sys-devel/libtool: 2.4.7-r1::gentoo >sys-devel/make: 4.4.1-r1::gentoo >sys-kernel/linux-headers: 6.1::gentoo (virtual/os-headers) >sys-libs/glibc: 2.37-r7::gentoo >Repositories: > >gentoo > location: /var/db/repos/gentoo > sync-type: rsync > sync-uri: rsync://rsync.gentoo.org/gentoo-portage > priority: -1000 > volatile: False > sync-rsync-verify-max-age: 3 > sync-rsync-verify-metamanifest: yes > sync-rsync-verify-jobs: 1 > sync-rsync-extra-opts: > >ACCEPT_KEYWORDS="ppc64" >ACCEPT_LICENSE="@FREE" >CBUILD="powerpc64-unknown-linux-gnu" >CFLAGS="-O2 -pipe" >CHOST="powerpc64-unknown-linux-gnu" >CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" >CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" >CXXFLAGS="-O2 -pipe" >DISTDIR="/var/cache/distfiles" >EMERGE_DEFAULT_OPTS="--autounmask=y --autounmask-continue=y" >ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME" >FCFLAGS="-O2 -pipe" >FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" >FFLAGS="-O2 -pipe" >GENTOO_MIRRORS="http://distfiles.gentoo.org" >LANG="en_US.utf8" >LDFLAGS="-Wl,-O1 -Wl,--as-needed" >LEX="flex" >MAKEOPTS="-j8" >PKGDIR="/var/cache/binpkgs" >PORTAGE_CONFIGROOT="/" >PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" >PORTAGE_TMPDIR="/var/tmp" >SHELL="/bin/bash" >USE="acl big-endian bzip2 cli crypt dri fortran gdbm ibm iconv ipv6 ncurses nls nptl openmp pam pcre ppc64 readline seccomp split-usr ssl test-rust unicode xattr zlib" ADA_TARGET="gnat_2021" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="fbdev mga r128 radeon dummy" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account" >Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS > > > > * Package: app-admin/eclean-kernel-2.99.7:0 > * Repository: gentoo > * Maintainer: mgorny@gentoo.org > * Upstream: mgorny@gentoo.org https://github.com/projg2/eclean-kernel2/issues/ > * USE: elibc_glibc kernel_linux ppc64 python_targets_python3_11 test > * FEATURES: keeptemp network-sandbox preserve-libs sandbox test userpriv usersandbox >>>> Unpacking source... >>>> Unpacking eclean_kernel-2.99.7.tar.gz to /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work >>>> Source unpacked in /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work >>>> Preparing source in /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7 ... > * Build system packages: > * dev-python/gpep517 : 15 > * dev-python/installer : 0.7.0 > * dev-python/flit-core : 3.9.0 >>>> Source prepared. >>>> Configuring source in /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7 ... >>>> Source configured. >>>> Compiling source in /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7 ... > * python3_11: running distutils-r1_run_phase distutils-r1_python_compile > * Building the wheel for eclean_kernel-2.99.7 via flit_core.buildapi >python3.11 -m gpep517 build-wheel --prefix=/usr --backend flit_core.buildapi --output-fd 3 --wheel-dir /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7-python3_11/wheel >2023-12-19 00:58:32,778 gpep517 INFO Building wheel via backend flit_core.buildapi >2023-12-19 00:58:32,784 flit_core.wheel INFO Copying package file(s) from ecleankernel >2023-12-19 00:58:32,788 flit_core.wheel INFO Writing metadata files >2023-12-19 00:58:32,789 flit_core.wheel INFO Writing the record of files >2023-12-19 00:58:32,790 flit_core.wheel INFO Built wheel: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7-python3_11/wheel/eclean_kernel-2.99.7-py3-none-any.whl >2023-12-19 00:58:32,790 gpep517 INFO The backend produced /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7-python3_11/wheel/eclean_kernel-2.99.7-py3-none-any.whl > * Installing eclean_kernel-2.99.7-py3-none-any.whl to /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7-python3_11/install >python3.11 -m gpep517 install-wheel --destdir=/var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7-python3_11/install --interpreter=/usr/bin/python3.11 --prefix=/usr --optimize=all /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7-python3_11/wheel/eclean_kernel-2.99.7-py3-none-any.whl >2023-12-19 00:58:32,912 gpep517 INFO Installing /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7-python3_11/wheel/eclean_kernel-2.99.7-py3-none-any.whl into /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7-python3_11/install >2023-12-19 00:58:32,982 gpep517 INFO Installation complete >>>> Source compiled. >>>> Test phase: app-admin/eclean-kernel-2.99.7 > * python3_11: running distutils-r1_run_phase python_test >python3.11 -m pytest -vv -ra -l -Wdefault --color=yes -o console_output_style=count -p no:cov -p no:flake8 -p no:flakes -p no:pylint -p no:markdown -p no:sugar -p no:xvfb -p no:pytest-describe -p no:plus -p no:tavern -p no:salt-factories >========================================================================= test session starts ========================================================================= >platform linux -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0 -- /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7-python3_11/install/usr/bin/python3.11 >cachedir: .pytest_cache >rootdir: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7 >collecting ... collected 58 items > >test/test_file.py::KernelImageTests::test_bad_file_magic PASSED [ 1/58] >test/test_file.py::KernelImageTests::test_bad_magic PASSED [ 2/58] >test/test_file.py::KernelImageTests::test_missing_decompressor PASSED [ 3/58] >test/test_file.py::KernelImageTests::test_overflow_ver_string_bz PASSED [ 4/58] >test/test_file.py::KernelImageTests::test_overflow_ver_string_raw PASSED [ 5/58] >test/test_file.py::KernelImageTests::test_read_internal_version_bz FAILED [ 6/58] >test/test_file.py::KernelImageTests::test_read_internal_version_compress PASSED [ 7/58] >test/test_file.py::KernelImageTests::test_read_internal_version_efistub FAILED [ 8/58] >test/test_file.py::KernelImageTests::test_read_internal_version_efistub_uname PASSED [ 9/58] >test/test_file.py::KernelImageTests::test_read_internal_version_efistub_uname_nowhitespace PASSED [10/58] >test/test_file.py::KernelImageTests::test_read_internal_version_raw PASSED [11/58] >test/test_file.py::KernelImageTests::test_short PASSED [12/58] >test/test_file.py::KernelImageTests::test_very_short PASSED [13/58] >test/test_file.py::ModuleDirectoryTests::test_abs_symlink PASSED [14/58] >test/test_file.py::ModuleDirectoryTests::test_rel_symlink PASSED [15/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_accept_EFI PASSED [16/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_accept_entry_token PASSED [17/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_accept_no_boot PASSED [18/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_accept_no_machine_id PASSED [19/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_accept_plain PASSED [20/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_exclude_build FAILED [21/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_exclude_misc FAILED [22/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_exclude_modules FAILED [23/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_find_modules FAILED [24/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_find_modules_EFI FAILED [25/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove FAILED [26/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove_all FAILED [27/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove_all_pretend FAILED [28/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove_n3 FAILED [29/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove_n3_pretend FAILED [30/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove_pretend FAILED [31/58] >test/test_layout_blspec.py::BlSpecLayoutTests::test_wrong_layout_std PASSED [32/58] >test/test_layout_std.py::StdLayoutTests::test_config_file_system FAILED [33/58] >test/test_layout_std.py::StdLayoutTests::test_config_file_user FAILED [34/58] >test/test_layout_std.py::StdLayoutTests::test_exclude_build FAILED [35/58] >test/test_layout_std.py::StdLayoutTests::test_exclude_config FAILED [36/58] >test/test_layout_std.py::StdLayoutTests::test_exclude_modules FAILED [37/58] >test/test_layout_std.py::StdLayoutTests::test_find_modules FAILED [38/58] >test/test_layout_std.py::StdLayoutTests::test_main_list_kernels FAILED [39/58] >test/test_layout_std.py::StdLayoutTests::test_main_remove FAILED [40/58] >test/test_layout_std.py::StdLayoutTests::test_main_remove_all FAILED [41/58] >test/test_layout_std.py::StdLayoutTests::test_main_remove_all_pretend FAILED [42/58] >test/test_layout_std.py::StdLayoutTests::test_main_remove_n2 FAILED [43/58] >test/test_layout_std.py::StdLayoutTests::test_main_remove_n2_pretend FAILED [44/58] >test/test_layout_std.py::StdLayoutTests::test_main_remove_pretend FAILED [45/58] >test/test_layout_std.py::StdLayoutTests::test_modules_only PASSED [46/58] >test/test_layout_std.py::StdLayoutTests::test_wrong_layout_blspec PASSED [47/58] >test/test_process.py::KernelRemovalTests::test_get_removable_files FAILED [48/58] >test/test_process.py::KernelRemovalTests::test_removal_bootloader FAILED [49/58] >test/test_process.py::KernelRemovalTests::test_removal_bootloader_all_kernels FAILED [50/58] >test/test_process.py::KernelRemovalTests::test_removal_current FAILED [51/58] >test/test_process.py::KernelRemovalTests::test_removal_current_stray FAILED [52/58] >test/test_process.py::KernelRemovalTests::test_removal_destructive FAILED [53/58] >test/test_process.py::KernelRemovalTests::test_removal_no_bootloader FAILED [54/58] >test/test_process.py::KernelRemovalTests::test_removal_no_limit FAILED [55/58] >test/test_process.py::KernelRemovalTests::test_remove_stray FAILED [56/58] >test/test_sort.py::SortTests::test_mtime PASSED [57/58] >test/test_sort.py::SortTests::test_version PASSED [58/58] > >============================================================================== FAILURES =============================================================================== >___________________________________________________________ KernelImageTests.test_read_internal_version_bz ____________________________________________________________ > >self = <test.test_file.KernelImageTests testMethod=test_read_internal_version_bz> > > def test_read_internal_version_bz(self) -> None: > path = Path(self.td.name) / 'vmlinuz' > write_bzImage(path, b'1.2.3 built on test') > self.assertEqual( >> KernelImage(path).read_internal_version(), > '1.2.3') > >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz') >self = <test.test_file.KernelImageTests testMethod=test_read_internal_version_bz> > >test/test_file.py:113: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_________________________________________________________ KernelImageTests.test_read_internal_version_efistub _________________________________________________________ > >self = <test.test_file.KernelImageTests testMethod=test_read_internal_version_efistub> > > def test_read_internal_version_efistub(self) -> None: > path = Path(self.td.name) / "vmlinuz" > write_efistub(path, b"1.2.3 built on test") > self.assertEqual( >> KernelImage(path).read_internal_version(), > "1.2.3") > >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz') >self = <test.test_file.KernelImageTests testMethod=test_read_internal_version_efistub> > >test/test_file.py:134: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz'> > func = <bound method KernelImage.read_version_from_efi of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz')) >ecleankernel/file.py:268: in read_version_from_efi > verbuf = func(f) > _ = 0 > buf = (b'.linux\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > b'\x00\x00\x00\x00') > coff_offset = 128 > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz'))> > i = 3 > initial_offset = 0 > num_section = 4 > offset = 424 > opt_header_size = 8 > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz')) > size = 0 >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz')) > >ecleankernel/file.py:196: UnrecognizedKernelError >________________________________________________________________ BlSpecLayoutTests.test_exclude_build _________________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_exclude_build> > > def test_exclude_build(self) -> None: > with self.create_layout() as td: > path = Path(td) > blspath = path / f"boot/{self.machine_id}" > ukipath = path / "boot/EFI/Linux" > modules = path / 'lib/modules' > > self.assertEqual( > sorted(kernel_paths( > BlSpecLayout(root=path).find_kernels( > exclusions=[KFT.BUILD])), > key=lambda ver: ver[0]), > [('1.2.1', > [EmptyDirectory(blspath / '1.2.1'), > GenericFile(blspath / '1.2.1/initrd', KFT.INITRAMFS), >> KernelImage(blspath / '1.2.1/linux'), > ModuleDirectory(modules / '1.2.1'), > ], > '1.2.1'), > ('1.2.2', > [EmptyDirectory(blspath / '1.2.2'), > GenericFile(blspath / '1.2.2/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.2/linux'), > ModuleDirectory(modules / '1.2.2'), > ], > '1.2.2'), > ('1.2.3', > [EmptyDirectory(blspath / '1.2.3'), > GenericFile(blspath / '1.2.3/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.3/linux'), > GenericFile(blspath / '1.2.3/misc', KFT.MISC), > ModuleDirectory(modules / '1.2.3'), > ], > '1.2.3'), > ('1.2.4', > [EmptyDirectory(blspath / '1.2.4'), > GenericFile(blspath / '1.2.4/initrd', KFT.INITRAMFS), > ModuleDirectory(modules / '1.2.4'), > ], > None), > ('1.2.5', > [EmptyDirectory(blspath / '1.2.5'), > GenericFile(blspath / '1.2.5/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.5/linux'), > ModuleDirectory(modules / '1.2.5'), > ], > '1.2.5'), > ('1.2.5', > [KernelImage(ukipath / f"{self.machine_id}-1.2.5.efi"), > ModuleDirectory(modules / '1.2.5'), > ], > '1.2.5'), > ('1.2.6', > [KernelImage(ukipath / f"{self.machine_id}-1.2.6.efi"), > ModuleDirectory(modules / '1.2.6'), > ], > '1.2.6'), > ]) > >blspath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_') >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_exclude_build> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_' >ukipath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/EFI/Linux') > >test/test_layout_blspec.py:397: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_________________________________________________________________ BlSpecLayoutTests.test_exclude_misc _________________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_exclude_misc> > > def test_exclude_misc(self) -> None: > with self.create_layout() as td: > path = Path(td) > blspath = path / f"boot/{self.machine_id}" > ukipath = path / "boot/EFI/Linux" > modules = path / 'lib/modules' > > self.assertEqual( > sorted(kernel_paths( > BlSpecLayout(root=path).find_kernels( > exclusions=[KFT.MISC])), > key=lambda ver: ver[0]), > [('1.2.1', > [EmptyDirectory(blspath / '1.2.1'), > GenericFile(blspath / '1.2.1/initrd', KFT.INITRAMFS), >> KernelImage(blspath / '1.2.1/linux'), > ModuleDirectory(modules / '1.2.1'), > ], > '1.2.1'), > ('1.2.2', > [EmptyDirectory(blspath / '1.2.2'), > GenericFile(blspath / '1.2.2/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.2/linux'), > ModuleDirectory(modules / '1.2.2'), > GenericFile(modules / '1.2.2/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.2'), > ('1.2.3', > [EmptyDirectory(blspath / '1.2.3'), > GenericFile(blspath / '1.2.3/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.3/linux'), > ModuleDirectory(modules / '1.2.3'), > GenericFile(modules / '1.2.3/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.3'), > ('1.2.4', > [EmptyDirectory(blspath / '1.2.4'), > GenericFile(blspath / '1.2.4/initrd', KFT.INITRAMFS), > ModuleDirectory(modules / '1.2.4'), > ], > None), > ('1.2.5', > [EmptyDirectory(blspath / '1.2.5'), > GenericFile(blspath / '1.2.5/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.5/linux'), > ModuleDirectory(modules / '1.2.5'), > GenericFile(modules / '1.2.5/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.5'), > ('1.2.5', > [KernelImage(ukipath / f"{self.machine_id}-1.2.5.efi"), > ModuleDirectory(modules / '1.2.5'), > GenericFile(modules / '1.2.5/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.5'), > ('1.2.6', > [KernelImage(ukipath / f"{self.machine_id}-1.2.6.efi"), > ModuleDirectory(modules / '1.2.6'), > GenericFile(modules / '1.2.6/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.6'), > ]) > >blspath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd') >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_exclude_misc> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd' >ukipath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/EFI/Linux') > >test/test_layout_blspec.py:267: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.1/linux') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_______________________________________________________________ BlSpecLayoutTests.test_exclude_modules ________________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_exclude_modules> > > def test_exclude_modules(self) -> None: > with self.create_layout() as td: > path = Path(td) > blspath = path / f"boot/{self.machine_id}" > ukipath = path / "boot/EFI/Linux" > modules = path / 'lib/modules' > > self.assertEqual( > sorted(kernel_paths( > BlSpecLayout(root=path).find_kernels( > exclusions=[KFT.MODULES])), > key=lambda ver: ver[0]), > [('1.2.1', > [EmptyDirectory(blspath / '1.2.1'), > GenericFile(blspath / '1.2.1/initrd', KFT.INITRAMFS), >> KernelImage(blspath / '1.2.1/linux'), > ], > '1.2.1'), > ('1.2.2', > [EmptyDirectory(blspath / '1.2.2'), > GenericFile(blspath / '1.2.2/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.2/linux'), > GenericFile(modules / '1.2.2/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.2'), > ('1.2.3', > [EmptyDirectory(blspath / '1.2.3'), > GenericFile(blspath / '1.2.3/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.3/linux'), > GenericFile(blspath / '1.2.3/misc', KFT.MISC), > GenericFile(modules / '1.2.3/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.3'), > ('1.2.4', > [EmptyDirectory(blspath / '1.2.4'), > GenericFile(blspath / '1.2.4/initrd', KFT.INITRAMFS), > ], > None), > ('1.2.5', > [EmptyDirectory(blspath / '1.2.5'), > GenericFile(blspath / '1.2.5/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.5/linux'), > GenericFile(modules / '1.2.5/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.5'), > ('1.2.5', > [KernelImage(ukipath / f"{self.machine_id}-1.2.5.efi"), > GenericFile(modules / '1.2.5/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.5'), > ('1.2.6', > [KernelImage(ukipath / f"{self.machine_id}-1.2.6.efi"), > GenericFile(modules / '1.2.6/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.6'), > ]) > >blspath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu') >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_exclude_modules> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu' >ukipath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/EFI/Linux') > >test/test_layout_blspec.py:335: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.1/linux') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_________________________________________________________________ BlSpecLayoutTests.test_find_modules _________________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_find_modules> > > def test_find_modules(self) -> None: > with self.create_layout() as td: > path = Path(td) > blspath = path / f"boot/{self.machine_id}" > ukipath = path / "boot/EFI/Linux" > modules = path / 'lib/modules' > > self.assertEqual( > sorted(kernel_paths( > BlSpecLayout(root=path).find_kernels()), > key=lambda ver: ver[0]), > [('1.2.1', > [EmptyDirectory(blspath / '1.2.1'), > GenericFile(blspath / '1.2.1/initrd', KFT.INITRAMFS), >> KernelImage(blspath / '1.2.1/linux'), > ModuleDirectory(modules / '1.2.1'), > ], > '1.2.1'), > ('1.2.2', > [EmptyDirectory(blspath / '1.2.2'), > GenericFile(blspath / '1.2.2/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.2/linux'), > ModuleDirectory(modules / '1.2.2'), > GenericFile(modules / '1.2.2/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.2'), > ('1.2.3', > [EmptyDirectory(blspath / '1.2.3'), > GenericFile(blspath / '1.2.3/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.3/linux'), > GenericFile(blspath / '1.2.3/misc', KFT.MISC), > ModuleDirectory(modules / '1.2.3'), > GenericFile(modules / '1.2.3/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.3'), > ('1.2.4', > [EmptyDirectory(blspath / '1.2.4'), > GenericFile(blspath / '1.2.4/initrd', KFT.INITRAMFS), > ModuleDirectory(modules / '1.2.4'), > ], > None), > ('1.2.5', > [EmptyDirectory(blspath / '1.2.5'), > GenericFile(blspath / '1.2.5/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.5/linux'), > ModuleDirectory(modules / '1.2.5'), > GenericFile(modules / '1.2.5/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.5'), > ('1.2.5', > [KernelImage(ukipath / f"{self.machine_id}-1.2.5.efi"), > ModuleDirectory(modules / '1.2.5'), > GenericFile(modules / '1.2.5/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.5'), > ('1.2.6', > [KernelImage(ukipath / f"{self.machine_id}-1.2.6.efi"), > ModuleDirectory(modules / '1.2.6'), > GenericFile(modules / '1.2.6/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.6'), > ]) > >blspath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_') >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_find_modules> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_' >ukipath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/EFI/Linux') > >test/test_layout_blspec.py:198: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_______________________________________________________________ BlSpecLayoutTests.test_find_modules_EFI _______________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_find_modules_EFI> > > def test_find_modules_EFI(self) -> None: > with self.create_layout(efi_subdir=True) as td: > path = Path(td) > blspath = path / f"boot/EFI/{self.machine_id}" > ukipath = path / "boot/EFI/EFI/Linux" > modules = path / 'lib/modules' > > self.assertEqual( > sorted(kernel_paths( > BlSpecLayout(root=path).find_kernels()), > key=lambda ver: ver[0]), > [('1.2.1', > [EmptyDirectory(blspath / '1.2.1'), > GenericFile(blspath / '1.2.1/initrd', KFT.INITRAMFS), >> KernelImage(blspath / '1.2.1/linux'), > ModuleDirectory(modules / '1.2.1'), > ], > '1.2.1'), > ('1.2.2', > [EmptyDirectory(blspath / '1.2.2'), > GenericFile(blspath / '1.2.2/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.2/linux'), > ModuleDirectory(modules / '1.2.2'), > GenericFile(modules / '1.2.2/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.2'), > ('1.2.3', > [EmptyDirectory(blspath / '1.2.3'), > GenericFile(blspath / '1.2.3/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.3/linux'), > GenericFile(blspath / '1.2.3/misc', KFT.MISC), > ModuleDirectory(modules / '1.2.3'), > GenericFile(modules / '1.2.3/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.3'), > ('1.2.4', > [EmptyDirectory(blspath / '1.2.4'), > GenericFile(blspath / '1.2.4/initrd', KFT.INITRAMFS), > ModuleDirectory(modules / '1.2.4'), > ], > None), > ('1.2.5', > [EmptyDirectory(blspath / '1.2.5'), > GenericFile(blspath / '1.2.5/initrd', KFT.INITRAMFS), > KernelImage(blspath / '1.2.5/linux'), > ModuleDirectory(modules / '1.2.5'), > GenericFile(modules / '1.2.5/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.5'), > ('1.2.5', > [KernelImage(ukipath / f"{self.machine_id}-1.2.5.efi"), > ModuleDirectory(modules / '1.2.5'), > GenericFile(modules / '1.2.5/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.5'), > ('1.2.6', > [KernelImage(ukipath / f"{self.machine_id}-1.2.6.efi"), > ModuleDirectory(modules / '1.2.6'), > GenericFile(modules / '1.2.6/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.6'), > ]) > >blspath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz') >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_find_modules_EFI> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz' >ukipath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/EFI/Linux') > >test/test_layout_blspec.py:455: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_________________________________________________________________ BlSpecLayoutTests.test_main_remove __________________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove> > > def test_main_remove(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--destructive', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpn2remhh_' > >test/test_layout_blspec.py:512: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpn2remhh_', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=False, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpn2remhh_'), all=False, destructive=True, num=0, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpn2remhh_', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8ba7210> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8ba6f10> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8ba7710> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8ba6e90> > layout_cls = <class 'ecleankernel.layout.blspec.BlSpecLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8ba7150> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8ba7150>, limit = 0, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8ba6f10> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8ba6f10> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = 0 >remove_kernels = {Kernel(version='1.2.5', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.1', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.6', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='bls'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8ba7150> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8ba7150> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8ba6e90> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8ba6f10> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpn2remhh_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpn2remhh_/boot/0123456789abcdef0123456789abcdef/1.2.2/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpn2remhh_/boot/0123456789abcdef0123456789abcdef/1.2.5/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpn2remhh_/boot/0123456789abcdef0123456789abcdef/1.2.3/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpn2remhh_/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.5.efi terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpn2remhh_/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.6.efi terminates before expected version string position (4608) >DEBUG root:process.py:76 in get_removal_list() >_______________________________________________________________ BlSpecLayoutTests.test_main_remove_all ________________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove_all> > > def test_main_remove_all(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--all', '--destructive', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove_all> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpji2d9y0f' > >test/test_layout_blspec.py:529: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--all', > '--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpji2d9y0f', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=False, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpji2d9y0f'), all=True, destructive=True, num=0, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--all', > '--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpji2d9y0f', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8bff810> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8bffa90> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8bff250> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8bffd90> > layout_cls = <class 'ecleankernel.layout.blspec.BlSpecLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8bff950> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8bff950>, limit = None, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8bffa90> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8bffa90> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = None >remove_kernels = {Kernel(version='1.2.5', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.1', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.6', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='bls'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8bff950> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8bff950> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8bffd90> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8bffa90> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpji2d9y0f/boot/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpji2d9y0f/boot/0123456789abcdef0123456789abcdef/1.2.2/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpji2d9y0f/boot/0123456789abcdef0123456789abcdef/1.2.5/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpji2d9y0f/boot/0123456789abcdef0123456789abcdef/1.2.3/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpji2d9y0f/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.5.efi terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpji2d9y0f/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.6.efi terminates before expected version string position (4608) >DEBUG root:process.py:76 in get_removal_list() >___________________________________________________________ BlSpecLayoutTests.test_main_remove_all_pretend ____________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove_all_pretend> > > def test_main_remove_all_pretend(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--all', '--destructive', '--pretend', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove_all_pretend> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplblbojkx' > >test/test_layout_blspec.py:543: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--all', > '--destructive', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplblbojkx', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=True, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplblbojkx'), all=True, destructive=True, num=0, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--all', > '--destructive', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplblbojkx', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8bff4d0> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8bfe950> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8bfc0d0> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8bfe010> > layout_cls = <class 'ecleankernel.layout.blspec.BlSpecLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8bfdd50> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8bfdd50>, limit = None, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8bfe950> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8bfe950> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = None >remove_kernels = {Kernel(version='1.2.1', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.6', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='bls'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8bfdd50> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8bfdd50> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8bfe010> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8bfe950> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplblbojkx/boot/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplblbojkx/boot/0123456789abcdef0123456789abcdef/1.2.2/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplblbojkx/boot/0123456789abcdef0123456789abcdef/1.2.5/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplblbojkx/boot/0123456789abcdef0123456789abcdef/1.2.3/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplblbojkx/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.5.efi terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplblbojkx/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.6.efi terminates before expected version string position (4608) >DEBUG root:process.py:76 in get_removal_list() >________________________________________________________________ BlSpecLayoutTests.test_main_remove_n3 ________________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove_n3> > > def test_main_remove_n3(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--destructive', '-n', '3', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove_n3> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0nlr4i2w' > >test/test_layout_blspec.py:551: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--destructive', > '-n', > '3', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0nlr4i2w', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=False, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0nlr4i2w'), all=False, destructive=True, num=3, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--destructive', > '-n', > '3', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0nlr4i2w', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8be1e10> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8be3d10> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8e27d10> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8be0e10> > layout_cls = <class 'ecleankernel.layout.blspec.BlSpecLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8ba79d0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8ba79d0>, limit = 3, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8be3d10> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8be3d10> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = 3 >remove_kernels = {Kernel(version='1.2.5', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.1', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.6', layout='uki'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8ba79d0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8ba79d0> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8be0e10> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8be3d10> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0nlr4i2w/boot/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0nlr4i2w/boot/0123456789abcdef0123456789abcdef/1.2.2/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0nlr4i2w/boot/0123456789abcdef0123456789abcdef/1.2.5/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0nlr4i2w/boot/0123456789abcdef0123456789abcdef/1.2.3/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0nlr4i2w/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.5.efi terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0nlr4i2w/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.6.efi terminates before expected version string position (4608) >DEBUG root:process.py:76 in get_removal_list() >____________________________________________________________ BlSpecLayoutTests.test_main_remove_n3_pretend ____________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove_n3_pretend> > > def test_main_remove_n3_pretend(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--destructive', '-n', '3', '--pretend', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove_n3_pretend> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmph2_s8ejt' > >test/test_layout_blspec.py:563: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--destructive', > '-n', > '3', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmph2_s8ejt', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=True, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmph2_s8ejt'), all=False, destructive=True, num=3, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--destructive', > '-n', > '3', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmph2_s8ejt', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8e172d0> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e14d10> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8e17450> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8e17690> > layout_cls = <class 'ecleankernel.layout.blspec.BlSpecLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8e17f90> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8e17f90>, limit = 3, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e14d10> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e14d10> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = 3 >remove_kernels = {Kernel(version='1.2.3', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.6', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.1', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='bls'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8e17f90> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8e17f90> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8e17690> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e14d10> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmph2_s8ejt/boot/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmph2_s8ejt/boot/0123456789abcdef0123456789abcdef/1.2.2/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmph2_s8ejt/boot/0123456789abcdef0123456789abcdef/1.2.5/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmph2_s8ejt/boot/0123456789abcdef0123456789abcdef/1.2.3/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmph2_s8ejt/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.5.efi terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmph2_s8ejt/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.6.efi terminates before expected version string position (4608) >DEBUG root:process.py:76 in get_removal_list() >_____________________________________________________________ BlSpecLayoutTests.test_main_remove_pretend ______________________________________________________________ > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove_pretend> > > def test_main_remove_pretend(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--destructive', '--pretend', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_main_remove_pretend> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpout31ong' > >test/test_layout_blspec.py:521: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--destructive', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpout31ong', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=True, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpout31ong'), all=False, destructive=True, num=0, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--destructive', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpout31ong', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8921d90> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8921390> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8921750> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8921c90> > layout_cls = <class 'ecleankernel.layout.blspec.BlSpecLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8921d50> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8921d50>, limit = 0, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8921390> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8921390> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = 0 >remove_kernels = {Kernel(version='1.2.3', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.1', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.6', layout='uki'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8921d50> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8921d50> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0x7fffa8921c90> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8921390> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpout31ong/boot/0123456789abcdef0123456789abcdef/1.2.1/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpout31ong/boot/0123456789abcdef0123456789abcdef/1.2.2/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpout31ong/boot/0123456789abcdef0123456789abcdef/1.2.5/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpout31ong/boot/0123456789abcdef0123456789abcdef/1.2.3/linux terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpout31ong/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.5.efi terminates before expected version string position (4608) >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpout31ong/boot/EFI/Linux/0123456789abcdef0123456789abcdef-1.2.6.efi terminates before expected version string position (4608) >DEBUG root:process.py:76 in get_removal_list() >_______________________________________________________________ StdLayoutTests.test_config_file_system ________________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_config_file_system> > > def test_config_file_system(self) -> None: > with self.create_layout() as td: > with open(Path(td) / 'eclean-kernel.rc', 'w') as f: > f.write('-n "2"\n') > os.environ['XDG_CONFIG_DIRS'] += f':{td}' > > self.assertEqual( >> main(['--destructive', > '--root', td, '--debug', '--no-mount']), > 0) > >f = <_io.TextIOWrapper name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0bdbyr9l/eclean-kernel.rc' mode='w' encoding='UTF-8'> >self = <test.test_layout_std.StdLayoutTests testMethod=test_config_file_system> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0bdbyr9l' > >test/test_layout_std.py:427: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['-n', > '2', > '--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0bdbyr9l', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=False, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0bdbyr9l'), all=False, destructive=True, num=2, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0bdbyr9l', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8935110> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8936c50> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', > '/dev/null', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0bdbyr9l'] > exclusions = [] > f = <_io.TextIOWrapper name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp0bdbyr9l/eclean-kernel.rc' mode='r' encoding='UTF-8'> > group = <argparse._ArgumentGroup object at 0x7fffa8934f90> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0x7fffa8934810> > layout_cls = <class 'ecleankernel.layout.std.StdLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa89342d0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.2', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa89342d0>, limit = 2, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8936c50> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8936c50> >destructive = True >k = Kernel(version='1.2.2', layout='other') >kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] >limit = 2 >remove_kernels = {Kernel(version='1.2.3', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa89342d0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa89342d0> >DEBUG root:__main__.py:215 Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /etc/machine-id not found >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.std.StdLayout object at 0x7fffa8934810> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8936c50> >DEBUG root:process.py:76 in get_removal_list() >________________________________________________________________ StdLayoutTests.test_config_file_user _________________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_config_file_user> > > def test_config_file_user(self) -> None: > with self.create_layout() as td: > path = Path(td) > os.mkdir(path / 'system') > with open(path / 'system/eclean-kernel.rc', 'w') as f: > f.write('-n 1\n') > with open(path / 'eclean-kernel.rc', 'w') as f: > f.write('-n "2"\n') > os.environ['XDG_CONFIG_DIRS'] = str(path / 'system') > os.environ['XDG_CONFIG_HOME'] = td > > self.assertEqual( >> main(['--destructive', > '--root', td, '--debug', '--no-mount']), > 0) > >f = <_io.TextIOWrapper name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppqog9iei/eclean-kernel.rc' mode='w' encoding='UTF-8'> >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppqog9iei') >self = <test.test_layout_std.StdLayoutTests testMethod=test_config_file_user> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppqog9iei' > >test/test_layout_std.py:446: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['-n', > '1', > '-n', > '2', > '--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppqog9iei', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=False, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppqog9iei'), all=False, destructive=True, num=2, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppqog9iei', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8d1c710> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8d1ef10> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppqog9iei', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppqog9iei/system'] > exclusions = [] > f = <_io.TextIOWrapper name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppqog9iei/eclean-kernel.rc' mode='r' encoding='UTF-8'> > group = <argparse._ArgumentGroup object at 0x7fffa8d1d310> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0x7fffa8d1f9d0> > layout_cls = <class 'ecleankernel.layout.std.StdLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8d1d0d0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.2', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8d1d0d0>, limit = 2, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8d1ef10> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8d1ef10> >destructive = True >k = Kernel(version='1.2.2', layout='other') >kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] >limit = 2 >remove_kernels = {Kernel(version='1.2.4', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8d1d0d0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8d1d0d0> >DEBUG root:__main__.py:215 Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /etc/machine-id not found >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.std.StdLayout object at 0x7fffa8d1f9d0> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8d1ef10> >DEBUG root:process.py:76 in get_removal_list() >__________________________________________________________________ StdLayoutTests.test_exclude_build __________________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_exclude_build> > > def test_exclude_build(self) -> None: > with self.create_layout() as td: > path = Path(td) > boot = path / 'boot' > modules = path / 'lib/modules' > > self.assertEqual( > sorted(kernel_paths( > StdLayout(root=path).find_kernels( > exclusions=[KFT.BUILD]))), > [('1.2.2', > [GenericFile(boot / 'System.map-1.2.2', KFT.SYSTEM_MAP), >> KernelImage(boot / 'vmlinuz-1.2.2'), > ModuleDirectory(modules / '1.2.2'), > ], > '1.2.2'), > ('1.2.3', > [GenericFile(boot / 'System.map-1.2.3', KFT.SYSTEM_MAP), > GenericFile(boot / 'config-1.2.3', KFT.CONFIG), > GenericFile(boot / 'initrd-1.2.3.img', KFT.INITRAMFS), > KernelImage(boot / 'vmlinuz-1.2.3'), > ModuleDirectory(modules / '1.2.3'), > ], > '1.2.3'), > ('1.2.3.old', > [GenericFile(boot / 'System.map-1.2.3.old', KFT.SYSTEM_MAP), > GenericFile(boot / 'config-1.2.3.old', KFT.CONFIG), > GenericFile(boot / 'initrd-1.2.3.img.old', KFT.INITRAMFS), > KernelImage(boot / 'vmlinuz-1.2.3.old'), > ModuleDirectory(modules / '1.2.3'), > ], > '1.2.3'), > ('1.2.4', > [GenericFile(boot / 'config-1.2.4', KFT.CONFIG), > ModuleDirectory(modules / '1.2.4'), > ], > None)]) > >boot = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2') >self = <test.test_layout_std.StdLayoutTests testMethod=test_exclude_build> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2' > >test/test_layout_std.py:270: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2 terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_________________________________________________________________ StdLayoutTests.test_exclude_config __________________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_exclude_config> > > def test_exclude_config(self) -> None: > with self.create_layout() as td: > path = Path(td) > boot = path / 'boot' > modules = path / 'lib/modules' > > self.assertEqual( > sorted(kernel_paths( > StdLayout(root=path).find_kernels( > exclusions=[KFT.CONFIG]))), > [('1.2.2', > [GenericFile(boot / 'System.map-1.2.2', KFT.SYSTEM_MAP), >> KernelImage(boot / 'vmlinuz-1.2.2'), > ModuleDirectory(modules / '1.2.2'), > GenericFile(modules / '1.2.2/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.2'), > ('1.2.3', > [GenericFile(boot / 'System.map-1.2.3', KFT.SYSTEM_MAP), > GenericFile(boot / 'initrd-1.2.3.img', KFT.INITRAMFS), > KernelImage(boot / 'vmlinuz-1.2.3'), > ModuleDirectory(modules / '1.2.3'), > GenericFile(modules / '1.2.3/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.3'), > ('1.2.3.old', > [GenericFile(boot / 'System.map-1.2.3.old', KFT.SYSTEM_MAP), > GenericFile(boot / 'initrd-1.2.3.img.old', KFT.INITRAMFS), > KernelImage(boot / 'vmlinuz-1.2.3.old'), > ModuleDirectory(modules / '1.2.3'), > GenericFile(modules / '1.2.3/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.3'), > ('1.2.4', > [ModuleDirectory(modules / '1.2.4'), > ], > None)]) > >boot = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5') >self = <test.test_layout_std.StdLayoutTests testMethod=test_exclude_config> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5' > >test/test_layout_std.py:189: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2 terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_________________________________________________________________ StdLayoutTests.test_exclude_modules _________________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_exclude_modules> > > def test_exclude_modules(self) -> None: > with self.create_layout() as td: > path = Path(td) > boot = path / 'boot' > modules = path / 'lib/modules' > > self.assertEqual( > sorted(kernel_paths( > StdLayout(root=path).find_kernels( > exclusions=[KFT.MODULES]))), > [('1.2.2', > [GenericFile(boot / 'System.map-1.2.2', KFT.SYSTEM_MAP), >> KernelImage(boot / 'vmlinuz-1.2.2'), > GenericFile(modules / '1.2.2/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.2'), > ('1.2.3', > [GenericFile(boot / 'System.map-1.2.3', KFT.SYSTEM_MAP), > GenericFile(boot / 'config-1.2.3', KFT.CONFIG), > GenericFile(boot / 'initrd-1.2.3.img', KFT.INITRAMFS), > KernelImage(boot / 'vmlinuz-1.2.3'), > GenericFile(modules / '1.2.3/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.3'), > ('1.2.3.old', > [GenericFile(boot / 'System.map-1.2.3.old', KFT.SYSTEM_MAP), > GenericFile(boot / 'config-1.2.3.old', KFT.CONFIG), > GenericFile(boot / 'initrd-1.2.3.img.old', KFT.INITRAMFS), > KernelImage(boot / 'vmlinuz-1.2.3.old'), > GenericFile(modules / '1.2.3/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.3'), > ('1.2.4', > [GenericFile(boot / 'config-1.2.4', KFT.CONFIG), > ], > None)]) > >boot = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw') >self = <test.test_layout_std.StdLayoutTests testMethod=test_exclude_modules> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw' > >test/test_layout_std.py:230: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2 terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2')) > >ecleankernel/file.py:196: UnrecognizedKernelError >__________________________________________________________________ StdLayoutTests.test_find_modules ___________________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_find_modules> > > def test_find_modules(self) -> None: > with self.create_layout() as td: > path = Path(td) > boot = path / 'boot' > modules = path / 'lib/modules' > > self.assertEqual( > sorted(kernel_paths( > StdLayout(root=path).find_kernels())), > [('1.2.2', > [GenericFile(boot / 'System.map-1.2.2', KFT.SYSTEM_MAP), >> KernelImage(boot / 'vmlinuz-1.2.2'), > ModuleDirectory(modules / '1.2.2'), > GenericFile(modules / '1.2.2/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.2'), > ('1.2.3', > [GenericFile(boot / 'System.map-1.2.3', KFT.SYSTEM_MAP), > GenericFile(boot / 'config-1.2.3', KFT.CONFIG), > GenericFile(boot / 'initrd-1.2.3.img', KFT.INITRAMFS), > KernelImage(boot / 'vmlinuz-1.2.3'), > ModuleDirectory(modules / '1.2.3'), > GenericFile(modules / '1.2.3/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.3'), > ('1.2.3.old', > [GenericFile(boot / 'System.map-1.2.3.old', KFT.SYSTEM_MAP), > GenericFile(boot / 'config-1.2.3.old', KFT.CONFIG), > GenericFile(boot / 'initrd-1.2.3.img.old', KFT.INITRAMFS), > KernelImage(boot / 'vmlinuz-1.2.3.old'), > ModuleDirectory(modules / '1.2.3'), > GenericFile(modules / '1.2.3/../../../usr/src/linux', > KFT.BUILD), > ], > '1.2.3'), > ('1.2.4', > [GenericFile(boot / 'config-1.2.4', KFT.CONFIG), > ModuleDirectory(modules / '1.2.4'), > ], > None)]) > >boot = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb') >self = <test.test_layout_std.StdLayoutTests testMethod=test_find_modules> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb' > >test/test_layout_std.py:145: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2 terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2')) > >ecleankernel/file.py:196: UnrecognizedKernelError >________________________________________________________________ StdLayoutTests.test_main_list_kernels ________________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_list_kernels>, sout = <_io.StringIO object at 0x7fffa8cc9510> > > @patch('ecleankernel.__main__.sys.stdout', new_callable=io.StringIO) > def test_main_list_kernels(self, > sout: io.StringIO > ) -> None: > with self.create_layout() as td: > self.assertEqual( > main(['--list-kernels', '--root', td, '--debug']), > 0) > val = (x for x in sout.getvalue().splitlines() > if not x.startswith('- last modified:')) >> self.assertEqual('\n'.join(val), f''' > other 1.2.4 [None] > - config: {td}/boot/config-1.2.4 > - modules: {td}/lib/modules/1.2.4 > other 1.2.3 [1.2.3] > - systemmap: {td}/boot/System.map-1.2.3 > - config: {td}/boot/config-1.2.3 > - initramfs: {td}/boot/initrd-1.2.3.img > - vmlinuz: {td}/boot/vmlinuz-1.2.3 > - modules: {td}/lib/modules/1.2.3 > - build: {td}/lib/modules/1.2.3/../../../usr/src/linux > other 1.2.3.old [1.2.3] > - systemmap: {td}/boot/System.map-1.2.3.old > - config: {td}/boot/config-1.2.3.old > - initramfs: {td}/boot/initrd-1.2.3.img.old > - vmlinuz: {td}/boot/vmlinuz-1.2.3.old > - modules: {td}/lib/modules/1.2.3 > - build: {td}/lib/modules/1.2.3/../../../usr/src/linux > other 1.2.2 [1.2.2] > - systemmap: {td}/boot/System.map-1.2.2 > - vmlinuz: {td}/boot/vmlinuz-1.2.2 > - modules: {td}/lib/modules/1.2.2 > - build: {td}/lib/modules/1.2.2/../../../usr/src/linux'''.lstrip()) >E AssertionError: 'othe[213 chars]2.3 [None]\n- systemmap: /var/tmp/portage/app-[1423 chars]inux' != 'othe[213 chars]2.3 [1.2.3]\n- systemmap: /var/tmp/portage/app[1637 chars]inux' >E other 1.2.4 [None] >E - config: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/config-1.2.4 >E - modules: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/lib/modules/1.2.4 >E - other 1.2.3 [None] >E ? ^^^^ >E + other 1.2.3 [1.2.3] >E ? ^^^^^ >E - systemmap: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/System.map-1.2.3 >E - config: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/config-1.2.3 >E - initramfs: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/initrd-1.2.3.img >E - vmlinuz: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/vmlinuz-1.2.3 >E - modules: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/lib/modules/1.2.3 >E - build: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/lib/modules/1.2.3/../../../usr/src/linux >E - other 1.2.3.old [None] >E ? ^^^^ >E + other 1.2.3.old [1.2.3] >E ? ^^^^^ >E - systemmap: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/System.map-1.2.3.old >E - config: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/config-1.2.3.old >E - initramfs: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/initrd-1.2.3.img.old >E - vmlinuz: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/vmlinuz-1.2.3.old >E + - modules: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/lib/modules/1.2.3 >E + - build: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/lib/modules/1.2.3/../../../usr/src/linux >E - other 1.2.2 [None] >E ? ^^^^ >E + other 1.2.2 [1.2.2] >E ? ^^^^^ >E - systemmap: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/System.map-1.2.2 >E - vmlinuz: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/boot/vmlinuz-1.2.2 >E - modules: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/lib/modules/1.2.2 >E - build: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q/lib/modules/1.2.2/../../../usr/src/linux > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_list_kernels> >sout = <_io.StringIO object at 0x7fffa8cc9510> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpkfd70u9q' >val = <generator object StdLayoutTests.test_main_list_kernels.<locals>.<genexpr> at 0x7fffa8cb2500> > >test/test_layout_std.py:332: AssertionError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8bfd250> >DEBUG root:__main__.py:215 Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /etc/machine-id not found >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.std.StdLayout object at 0x7fffa8bfd750> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8bfff90> >___________________________________________________________________ StdLayoutTests.test_main_remove ___________________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove> > > def test_main_remove(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--destructive', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpr1agjsxn' > >test/test_layout_std.py:360: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpr1agjsxn', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=False, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpr1agjsxn'), all=False, destructive=True, num=0, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpr1agjsxn', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8e14590> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e16cd0> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8e17d90> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0x7fffa8e14690> > layout_cls = <class 'ecleankernel.layout.std.StdLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8e16bd0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.2', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8e16bd0>, limit = 0, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e16cd0> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e16cd0> >destructive = True >k = Kernel(version='1.2.2', layout='other') >kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] >limit = 0 >remove_kernels = {Kernel(version='1.2.2', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8e16bd0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8e16bd0> >DEBUG root:__main__.py:215 Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /etc/machine-id not found >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.std.StdLayout object at 0x7fffa8e14690> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e16cd0> >DEBUG root:process.py:76 in get_removal_list() >_________________________________________________________________ StdLayoutTests.test_main_remove_all _________________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove_all> > > def test_main_remove_all(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--all', '--destructive', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove_all> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6r9y02jm' > >test/test_layout_std.py:377: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--all', > '--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6r9y02jm', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=False, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6r9y02jm'), all=True, destructive=True, num=0, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--all', > '--destructive', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6r9y02jm', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa89427d0> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8942c50> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8941850> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0x7fffa89429d0> > layout_cls = <class 'ecleankernel.layout.std.StdLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8942f50> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.2', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8942f50>, limit = None, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8942c50> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8942c50> >destructive = True >k = Kernel(version='1.2.2', layout='other') >kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] >limit = None >remove_kernels = {Kernel(version='1.2.4', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8942f50> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8942f50> >DEBUG root:__main__.py:215 Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /etc/machine-id not found >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.std.StdLayout object at 0x7fffa89429d0> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8942c50> >DEBUG root:process.py:76 in get_removal_list() >_____________________________________________________________ StdLayoutTests.test_main_remove_all_pretend _____________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove_all_pretend> > > def test_main_remove_all_pretend(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--all', '--destructive', '--pretend', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove_all_pretend> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpogbpjeru' > >test/test_layout_std.py:389: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--all', > '--destructive', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpogbpjeru', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=True, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpogbpjeru'), all=True, destructive=True, num=0, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--all', > '--destructive', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpogbpjeru', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8d1da10> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8d1e350> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8d1dd50> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0x7fffa8d1e850> > layout_cls = <class 'ecleankernel.layout.std.StdLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8d1fd90> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.2', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8d1fd90>, limit = None, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8d1e350> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8d1e350> >destructive = True >k = Kernel(version='1.2.2', layout='other') >kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] >limit = None >remove_kernels = {Kernel(version='1.2.3', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8d1fd90> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8d1fd90> >DEBUG root:__main__.py:215 Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /etc/machine-id not found >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.std.StdLayout object at 0x7fffa8d1e850> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8d1e350> >DEBUG root:process.py:76 in get_removal_list() >_________________________________________________________________ StdLayoutTests.test_main_remove_n2 __________________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove_n2> > > def test_main_remove_n2(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--destructive', '-n', '2', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove_n2> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpanm6zxsy' > >test/test_layout_std.py:397: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--destructive', > '-n', > '2', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpanm6zxsy', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=False, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpanm6zxsy'), all=False, destructive=True, num=2, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--destructive', > '-n', > '2', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpanm6zxsy', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8e16090> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e14c50> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8935d50> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0x7fffa8e17e90> > layout_cls = <class 'ecleankernel.layout.std.StdLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8e16fd0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.2', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8e16fd0>, limit = 2, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e14c50> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e14c50> >destructive = True >k = Kernel(version='1.2.2', layout='other') >kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] >limit = 2 >remove_kernels = {Kernel(version='1.2.4', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8e16fd0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8e16fd0> >DEBUG root:__main__.py:215 Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /etc/machine-id not found >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.std.StdLayout object at 0x7fffa8e17e90> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8e14c50> >DEBUG root:process.py:76 in get_removal_list() >_____________________________________________________________ StdLayoutTests.test_main_remove_n2_pretend ______________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove_n2_pretend> > > def test_main_remove_n2_pretend(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--destructive', '-n', '2', '--pretend', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove_n2_pretend> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6n3lrwo9' > >test/test_layout_std.py:407: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--destructive', > '-n', > '2', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6n3lrwo9', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=True, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6n3lrwo9'), all=False, destructive=True, num=2, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--destructive', > '-n', > '2', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6n3lrwo9', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8c94350> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8c97c50> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8c95e90> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0x7fffa8c96ad0> > layout_cls = <class 'ecleankernel.layout.std.StdLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8c94bd0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.2', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8c94bd0>, limit = 2, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8c97c50> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8c97c50> >destructive = True >k = Kernel(version='1.2.2', layout='other') >kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] >limit = 2 >remove_kernels = {Kernel(version='1.2.4', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa8c94bd0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa8c94bd0> >DEBUG root:__main__.py:215 Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /etc/machine-id not found >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.std.StdLayout object at 0x7fffa8c96ad0> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa8c97c50> >DEBUG root:process.py:76 in get_removal_list() >_______________________________________________________________ StdLayoutTests.test_main_remove_pretend _______________________________________________________________ > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove_pretend> > > def test_main_remove_pretend(self) -> None: > with self.create_layout() as td: > self.assertEqual( >> main(['--destructive', '--pretend', > '--root', td, '--debug', '--no-mount']), > 0) > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_remove_pretend> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpwhqisf72' > >test/test_layout_std.py:369: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/__main__.py:252: in main > removals = get_removal_list( > all_args = ['--destructive', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpwhqisf72', > '--debug', > '--no-mount'] > argp = ArgumentParser(prog='__main__.py', usage=None, description='Remove old kernel versions, keeping either N newest kernels (with -n)\nor only those which are referenced by a bootloader (with -a).', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True) > args = Namespace(ask=False, list_kernels=False, pretend=True, read_kernel_version=None, bootloader='auto', layout='auto', root=PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpwhqisf72'), all=False, destructive=True, num=0, sort_order='version', debug=True, no_mount=True, no_bootloader_update=False, no_kernel_install=False, exclude='') > argv = ['--destructive', > '--pretend', > '--root', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpwhqisf72', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0x7fffa8913390> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa89132d0> > bootloader_cls = <class 'ecleankernel.bootloader.symlinks.Symlinks'> > bootloaders = [<class 'ecleankernel.bootloader.lilo.LILO'>, > <class 'ecleankernel.bootloader.grub2.GRUB2'>, > <class 'ecleankernel.bootloader.grub.GRUB'>, > <class 'ecleankernel.bootloader.yaboot.Yaboot'>, > <class 'ecleankernel.bootloader.symlinks.Symlinks'>] > config_dirs = ['/dev/null', '/dev/null'] > exclusions = [] > group = <argparse._ArgumentGroup object at 0x7fffa8911f90> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0x7fffa8913750> > layout_cls = <class 'ecleankernel.layout.std.StdLayout'> > layouts = [<class 'ecleankernel.layout.blspec.BlSpecLayout'>, > <class 'ecleankernel.layout.std.StdLayout'>] > pymountboot = <module 'pymountboot' from '/usr/lib/python3.11/site-packages/pymountboot.cpython-311-powerpc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0x7fffa89114d0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.2', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa89114d0>, limit = 0, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa89132d0> >destructive = True > > def get_removal_list(kernels: typing.List[Kernel], > sorter: KernelSort, > limit: typing.Optional[int] = 0, > bootloader: typing.Optional[Bootloader] = None, > destructive: bool = False > ) -> RemovableKernelDict: > """ > Get list of kernel files to remove > > Apply requested filters on `kernels`, and return a generator > of `RemovableKernel` tuples. `limit` specifies how many newest > kernels to keep, `bootloader` is the bootloader to reference > in order to determine whether a kernel is used and `destructive` > indicates whether bootloader references should be ignored. > """ > > logging.debug('in get_removal_list()') > > remove_kernels: typing.Dict[Kernel, typing.List[str]] = {} > for k in remove_stray(kernels): > remove_kernels.setdefault(k, []).append('vmlinuz does not exist') > if len(remove_kernels) == len(kernels): >> raise SystemError( > 'No vmlinuz found. This seems ridiculous, aborting.') >E SystemError: No vmlinuz found. This seems ridiculous, aborting. > >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa89132d0> >destructive = True >k = Kernel(version='1.2.2', layout='other') >kernels = [Kernel(version='1.2.4', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.2', layout='other')] >limit = 0 >remove_kernels = {Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0x7fffa89114d0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0x7fffa89114d0> >DEBUG root:__main__.py:215 Layout failed: <class 'ecleankernel.layout.blspec.BlSpecLayout'>; exception: /etc/machine-id not found >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.std.StdLayout object at 0x7fffa8913750> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.lilo.LILO'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub2.GRUB2'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.grub.GRUB'> >DEBUG root:__main__.py:230 Bootloader failed: <class 'ecleankernel.bootloader.yaboot.Yaboot'> >DEBUG root:__main__.py:234 Bootloader: <ecleankernel.bootloader.symlinks.Symlinks object at 0x7fffa89132d0> >DEBUG root:process.py:76 in get_removal_list() >_____________________________________________________________ KernelRemovalTests.test_get_removable_files _____________________________________________________________ > >self = <test.test_process.KernelRemovalTests testMethod=test_get_removable_files> > > def setUp(self) -> None: > self.kernels = [ > Kernel('1.old'), > Kernel('2.new'), > Kernel('3.stray'), > Kernel('4.stray-files'), > ] > > self.td = tempfile.TemporaryDirectory() > td = Path(self.td.name) > Path(td / 'symlink').symlink_to(td / 'kernel.old') > write_bzImage(td / 'kernel.old', b'old built on test') > write_bzImage(td / 'kernel.new', b'new built on test') > with open(td / 'config-stray', 'w'): > pass > with open(td / 'initrd-stray.img', 'w'): > pass > os.mkdir(td / 'build') > > build = GenericFile(td / 'build', KernelFileType.BUILD) > self.kernels[0].all_files = [ >> KernelImage(td / 'kernel.old'), > build, > ] > >build = GenericFile(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/build'), KernelFileType.'BUILD') >self = <test.test_process.KernelRemovalTests testMethod=test_get_removable_files> >td = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1') > >test/test_process.py:49: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_____________________________________________________________ KernelRemovalTests.test_removal_bootloader ______________________________________________________________ > >self = <test.test_process.KernelRemovalTests testMethod=test_removal_bootloader> > > def setUp(self) -> None: > self.kernels = [ > Kernel('1.old'), > Kernel('2.new'), > Kernel('3.stray'), > Kernel('4.stray-files'), > ] > > self.td = tempfile.TemporaryDirectory() > td = Path(self.td.name) > Path(td / 'symlink').symlink_to(td / 'kernel.old') > write_bzImage(td / 'kernel.old', b'old built on test') > write_bzImage(td / 'kernel.new', b'new built on test') > with open(td / 'config-stray', 'w'): > pass > with open(td / 'initrd-stray.img', 'w'): > pass > os.mkdir(td / 'build') > > build = GenericFile(td / 'build', KernelFileType.BUILD) > self.kernels[0].all_files = [ >> KernelImage(td / 'kernel.old'), > build, > ] > >build = GenericFile(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/build'), KernelFileType.'BUILD') >self = <test.test_process.KernelRemovalTests testMethod=test_removal_bootloader> >td = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te') > >test/test_process.py:49: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_______________________________________________________ KernelRemovalTests.test_removal_bootloader_all_kernels ________________________________________________________ > >self = <test.test_process.KernelRemovalTests testMethod=test_removal_bootloader_all_kernels> > > def setUp(self) -> None: > self.kernels = [ > Kernel('1.old'), > Kernel('2.new'), > Kernel('3.stray'), > Kernel('4.stray-files'), > ] > > self.td = tempfile.TemporaryDirectory() > td = Path(self.td.name) > Path(td / 'symlink').symlink_to(td / 'kernel.old') > write_bzImage(td / 'kernel.old', b'old built on test') > write_bzImage(td / 'kernel.new', b'new built on test') > with open(td / 'config-stray', 'w'): > pass > with open(td / 'initrd-stray.img', 'w'): > pass > os.mkdir(td / 'build') > > build = GenericFile(td / 'build', KernelFileType.BUILD) > self.kernels[0].all_files = [ >> KernelImage(td / 'kernel.old'), > build, > ] > >build = GenericFile(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/build'), KernelFileType.'BUILD') >self = <test.test_process.KernelRemovalTests testMethod=test_removal_bootloader_all_kernels> >td = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm') > >test/test_process.py:49: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_______________________________________________________________ KernelRemovalTests.test_removal_current _______________________________________________________________ > >self = <test.test_process.KernelRemovalTests testMethod=test_removal_current> > > def setUp(self) -> None: > self.kernels = [ > Kernel('1.old'), > Kernel('2.new'), > Kernel('3.stray'), > Kernel('4.stray-files'), > ] > > self.td = tempfile.TemporaryDirectory() > td = Path(self.td.name) > Path(td / 'symlink').symlink_to(td / 'kernel.old') > write_bzImage(td / 'kernel.old', b'old built on test') > write_bzImage(td / 'kernel.new', b'new built on test') > with open(td / 'config-stray', 'w'): > pass > with open(td / 'initrd-stray.img', 'w'): > pass > os.mkdir(td / 'build') > > build = GenericFile(td / 'build', KernelFileType.BUILD) > self.kernels[0].all_files = [ >> KernelImage(td / 'kernel.old'), > build, > ] > >build = GenericFile(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/build'), KernelFileType.'BUILD') >self = <test.test_process.KernelRemovalTests testMethod=test_removal_current> >td = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf') > >test/test_process.py:49: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old')) > >ecleankernel/file.py:196: UnrecognizedKernelError >____________________________________________________________ KernelRemovalTests.test_removal_current_stray ____________________________________________________________ > >self = <test.test_process.KernelRemovalTests testMethod=test_removal_current_stray> > > def setUp(self) -> None: > self.kernels = [ > Kernel('1.old'), > Kernel('2.new'), > Kernel('3.stray'), > Kernel('4.stray-files'), > ] > > self.td = tempfile.TemporaryDirectory() > td = Path(self.td.name) > Path(td / 'symlink').symlink_to(td / 'kernel.old') > write_bzImage(td / 'kernel.old', b'old built on test') > write_bzImage(td / 'kernel.new', b'new built on test') > with open(td / 'config-stray', 'w'): > pass > with open(td / 'initrd-stray.img', 'w'): > pass > os.mkdir(td / 'build') > > build = GenericFile(td / 'build', KernelFileType.BUILD) > self.kernels[0].all_files = [ >> KernelImage(td / 'kernel.old'), > build, > ] > >build = GenericFile(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/build'), KernelFileType.'BUILD') >self = <test.test_process.KernelRemovalTests testMethod=test_removal_current_stray> >td = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y') > >test/test_process.py:49: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old')) > >ecleankernel/file.py:196: UnrecognizedKernelError >_____________________________________________________________ KernelRemovalTests.test_removal_destructive _____________________________________________________________ > >self = <test.test_process.KernelRemovalTests testMethod=test_removal_destructive> > > def setUp(self) -> None: > self.kernels = [ > Kernel('1.old'), > Kernel('2.new'), > Kernel('3.stray'), > Kernel('4.stray-files'), > ] > > self.td = tempfile.TemporaryDirectory() > td = Path(self.td.name) > Path(td / 'symlink').symlink_to(td / 'kernel.old') > write_bzImage(td / 'kernel.old', b'old built on test') > write_bzImage(td / 'kernel.new', b'new built on test') > with open(td / 'config-stray', 'w'): > pass > with open(td / 'initrd-stray.img', 'w'): > pass > os.mkdir(td / 'build') > > build = GenericFile(td / 'build', KernelFileType.BUILD) > self.kernels[0].all_files = [ >> KernelImage(td / 'kernel.old'), > build, > ] > >build = GenericFile(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/build'), KernelFileType.'BUILD') >self = <test.test_process.KernelRemovalTests testMethod=test_removal_destructive> >td = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_') > >test/test_process.py:49: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old')) > >ecleankernel/file.py:196: UnrecognizedKernelError >____________________________________________________________ KernelRemovalTests.test_removal_no_bootloader ____________________________________________________________ > >self = <test.test_process.KernelRemovalTests testMethod=test_removal_no_bootloader> > > def setUp(self) -> None: > self.kernels = [ > Kernel('1.old'), > Kernel('2.new'), > Kernel('3.stray'), > Kernel('4.stray-files'), > ] > > self.td = tempfile.TemporaryDirectory() > td = Path(self.td.name) > Path(td / 'symlink').symlink_to(td / 'kernel.old') > write_bzImage(td / 'kernel.old', b'old built on test') > write_bzImage(td / 'kernel.new', b'new built on test') > with open(td / 'config-stray', 'w'): > pass > with open(td / 'initrd-stray.img', 'w'): > pass > os.mkdir(td / 'build') > > build = GenericFile(td / 'build', KernelFileType.BUILD) > self.kernels[0].all_files = [ >> KernelImage(td / 'kernel.old'), > build, > ] > >build = GenericFile(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/build'), KernelFileType.'BUILD') >self = <test.test_process.KernelRemovalTests testMethod=test_removal_no_bootloader> >td = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v') > >test/test_process.py:49: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old')) > >ecleankernel/file.py:196: UnrecognizedKernelError >______________________________________________________________ KernelRemovalTests.test_removal_no_limit _______________________________________________________________ > >self = <test.test_process.KernelRemovalTests testMethod=test_removal_no_limit> > > def setUp(self) -> None: > self.kernels = [ > Kernel('1.old'), > Kernel('2.new'), > Kernel('3.stray'), > Kernel('4.stray-files'), > ] > > self.td = tempfile.TemporaryDirectory() > td = Path(self.td.name) > Path(td / 'symlink').symlink_to(td / 'kernel.old') > write_bzImage(td / 'kernel.old', b'old built on test') > write_bzImage(td / 'kernel.new', b'new built on test') > with open(td / 'config-stray', 'w'): > pass > with open(td / 'initrd-stray.img', 'w'): > pass > os.mkdir(td / 'build') > > build = GenericFile(td / 'build', KernelFileType.BUILD) > self.kernels[0].all_files = [ >> KernelImage(td / 'kernel.old'), > build, > ] > >build = GenericFile(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/build'), KernelFileType.'BUILD') >self = <test.test_process.KernelRemovalTests testMethod=test_removal_no_limit> >td = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k') > >test/test_process.py:49: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old')) > >ecleankernel/file.py:196: UnrecognizedKernelError >________________________________________________________________ KernelRemovalTests.test_remove_stray _________________________________________________________________ > >self = <test.test_process.KernelRemovalTests testMethod=test_remove_stray> > > def setUp(self) -> None: > self.kernels = [ > Kernel('1.old'), > Kernel('2.new'), > Kernel('3.stray'), > Kernel('4.stray-files'), > ] > > self.td = tempfile.TemporaryDirectory() > td = Path(self.td.name) > Path(td / 'symlink').symlink_to(td / 'kernel.old') > write_bzImage(td / 'kernel.old', b'old built on test') > write_bzImage(td / 'kernel.new', b'new built on test') > with open(td / 'config-stray', 'w'): > pass > with open(td / 'initrd-stray.img', 'w'): > pass > os.mkdir(td / 'build') > > build = GenericFile(td / 'build', KernelFileType.BUILD) > self.kernels[0].all_files = [ >> KernelImage(td / 'kernel.old'), > build, > ] > >build = GenericFile(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/build'), KernelFileType.'BUILD') >self = <test.test_process.KernelRemovalTests testMethod=test_remove_stray> >td = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q') > >test/test_process.py:49: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >ecleankernel/file.py:113: in __init__ > self.internal_version = self.read_internal_version() > __class__ = <class 'ecleankernel.file.KernelImage'> > path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old')) >ecleankernel/file.py:164: in read_internal_version > verbuf = func(f) > f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old'> > > def read_version_from_bzimage(self, > f: typing.IO[bytes], > ) -> typing.Optional[bytes]: > """Read version from bzImage, if the file is in that format""" > > with autorewind(f): > f.seek(0x200, 1) > # short seek would result in eof, so read() will return '' > buf = f.read(0x10) > if len(buf) != 0x10 or buf[2:6] != b"HdrS": > return None > > offset = struct.unpack_from("H", buf, 0x0e)[0] > f.seek(offset - 0x10, 1) > buf = f.read(0x100) # XXX > > if not buf: >> raise UnrecognizedKernelError( > f"Kernel file {self.path} terminates before expected " > f"version string position ({offset + 0x200})") >E ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old terminates before expected version string position (4608) > >buf = b'' >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old')) > >ecleankernel/file.py:196: UnrecognizedKernelError >========================================================================== warnings summary =========================================================================== >test/test_process.py::KernelRemovalTests::test_removal_destructive > /usr/lib/python3.11/tempfile.py:895: ResourceWarning: Implicitly cleaning up <TemporaryDirectory '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y'> > _warnings.warn(warn_message, ResourceWarning) > >test/test_process.py::KernelRemovalTests::test_remove_stray > /usr/lib/python3.11/tempfile.py:895: ResourceWarning: Implicitly cleaning up <TemporaryDirectory '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1'> > _warnings.warn(warn_message, ResourceWarning) > >-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html >======================================================================= short test summary info ======================================================================= >FAILED test/test_file.py::KernelImageTests::test_read_internal_version_bz - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpgx8w1q30/vmlinuz terminates before expected version... >FAILED test/test_file.py::KernelImageTests::test_read_internal_version_efistub - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpiuz4dxpz/vmlinuz terminates before expected version... >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_exclude_build - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvto15ou_/boot/0123456789abcdef0123456789abcdef/1.2.... >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_exclude_misc - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3dzy3pzd/boot/0123456789abcdef0123456789abcdef/1.2.... >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_exclude_modules - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp46uz6yvu/boot/0123456789abcdef0123456789abcdef/1.2.... >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_find_modules - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8va3gqa_/boot/0123456789abcdef0123456789abcdef/1.2.... >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_find_modules_EFI - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpa1d2o5jz/boot/EFI/0123456789abcdef0123456789abcdef/... >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove_all - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove_all_pretend - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove_n3 - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove_n3_pretend - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_blspec.py::BlSpecLayoutTests::test_main_remove_pretend - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_std.py::StdLayoutTests::test_config_file_system - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_std.py::StdLayoutTests::test_config_file_user - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_std.py::StdLayoutTests::test_exclude_build - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmppegosoy2/boot/vmlinuz-1.2.2 terminates before expec... >FAILED test/test_layout_std.py::StdLayoutTests::test_exclude_config - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvhpiluq5/boot/vmlinuz-1.2.2 terminates before expec... >FAILED test/test_layout_std.py::StdLayoutTests::test_exclude_modules - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpb5b9j7mw/boot/vmlinuz-1.2.2 terminates before expec... >FAILED test/test_layout_std.py::StdLayoutTests::test_find_modules - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2vz_9urb/boot/vmlinuz-1.2.2 terminates before expec... >FAILED test/test_layout_std.py::StdLayoutTests::test_main_list_kernels - AssertionError: 'othe[213 chars]2.3 [None]\n- systemmap: /var/tmp/portage/app-[1423 chars]inux' != 'othe[213 chars]2.3 [1.2.3]\n- systemmap: /var/tmp/portage/app[... >FAILED test/test_layout_std.py::StdLayoutTests::test_main_remove - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_std.py::StdLayoutTests::test_main_remove_all - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_std.py::StdLayoutTests::test_main_remove_all_pretend - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_std.py::StdLayoutTests::test_main_remove_n2 - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_std.py::StdLayoutTests::test_main_remove_n2_pretend - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_layout_std.py::StdLayoutTests::test_main_remove_pretend - SystemError: No vmlinuz found. This seems ridiculous, aborting. >FAILED test/test_process.py::KernelRemovalTests::test_get_removable_files - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnecjngt1/kernel.old terminates before expected vers... >FAILED test/test_process.py::KernelRemovalTests::test_removal_bootloader - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpegxsf9te/kernel.old terminates before expected vers... >FAILED test/test_process.py::KernelRemovalTests::test_removal_bootloader_all_kernels - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpul3i8rmm/kernel.old terminates before expected vers... >FAILED test/test_process.py::KernelRemovalTests::test_removal_current - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpizirtuyf/kernel.old terminates before expected vers... >FAILED test/test_process.py::KernelRemovalTests::test_removal_current_stray - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp8htm420y/kernel.old terminates before expected vers... >FAILED test/test_process.py::KernelRemovalTests::test_removal_destructive - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpd0yq6qy_/kernel.old terminates before expected vers... >FAILED test/test_process.py::KernelRemovalTests::test_removal_no_bootloader - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1u0p6n9v/kernel.old terminates before expected vers... >FAILED test/test_process.py::KernelRemovalTests::test_removal_no_limit - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpf3g_ds_k/kernel.old terminates before expected vers... >FAILED test/test_process.py::KernelRemovalTests::test_remove_stray - ecleankernel.file.UnrecognizedKernelError: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp__yjim5q/kernel.old terminates before expected vers... >============================================================== 35 failed, 23 passed, 2 warnings in 1.94s ============================================================== > * ERROR: app-admin/eclean-kernel-2.99.7::gentoo failed (test phase): > * pytest failed with python3.11 > * > * Call stack: > * ebuild.sh, line 136: Called src_test > * environment, line 4092: Called distutils-r1_src_test > * environment, line 2086: Called _distutils-r1_run_foreach_impl 'python_test' > * environment, line 815: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' > * environment, line 3696: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 3202: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 3200: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' > * environment, line 1312: Called distutils-r1_run_phase 'python_test' > * environment, line 2009: Called python_test > * environment, line 3979: Called distutils-r1_python_test > * environment, line 1949: Called epytest > * environment, line 2624: Called die > * The specific snippet of code: > * "${@}" || die -n "pytest failed with ${EPYTHON}"; > * > * If you need support, post the output of `emerge --info '=app-admin/eclean-kernel-2.99.7::gentoo'`, > * the complete build log and the output of `emerge -pqv '=app-admin/eclean-kernel-2.99.7::gentoo'`. > * The complete build log is located at '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/build.log'. > * The ebuild environment file is located at '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/environment'. > * Working directory: '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7' > * S: '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7' > >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 920296
: 879887 |
879888