Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 879888 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 sparc
file_920296.txt (text/plain), 247.65 KB, created by
matoro
on 2023-12-19 01:04:06 UTC
(
hide
)
Description:
build.log and emerge --info from sparc
Filename:
MIME Type:
Creator:
matoro
Created:
2023-12-19 01:04:06 UTC
Size:
247.65 KB
patch
obsolete
>Portage 3.0.57 (python 3.11.6-final-0, default/linux/sparc/17.0/64ul, gcc-13, glibc-2.37-r7, 6.6.7-gentoo-sparc64 sparc64) >================================================================= >System uname: Linux-6.6.7-gentoo-sparc64-sparc64-sun4v-with-glibc2.37 >KiB Mem: 32650448 total, 27336056 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.40 p5) 2.40.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-lang/rust-bin: 1.71.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.40-r5::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-metamanifest: yes > sync-rsync-extra-opts: > sync-rsync-verify-jobs: 1 > sync-rsync-verify-max-age: 3 > >Binary Repositories: > >gentoobinhost > priority: 1 > sync-uri: https://gentoo.osuosl.org/releases/sparc/binpackages/17.0/64 > >ACCEPT_KEYWORDS="sparc" >ACCEPT_LICENSE="@FREE" >CBUILD="sparc64-unknown-linux-gnu" >CFLAGS="-O2 -mcpu=ultrasparc -pipe" >CHOST="sparc64-unknown-linux-gnu" >CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" >CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" >CXXFLAGS="-O2 -mcpu=ultrasparc -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 -mcpu=ultrasparc -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 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 -mcpu=ultrasparc -pipe" >GENTOO_MIRRORS="http://distfiles.gentoo.org" >LANG="en_US.utf8" >LDFLAGS="-Wl,-O1 -Wl,--as-needed" >LEX="flex" >MAKEOPTS="-j30" >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 iconv ipv6 libtirpc llvm-libunwind ncurses nls nptl openmp pam pcre readline sparc 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 python_targets_python3_11 sparc 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:59:07,028 gpep517 INFO Building wheel via backend flit_core.buildapi >2023-12-19 00:59:07,058 flit_core.wheel INFO Copying package file(s) from ecleankernel >2023-12-19 00:59:07,074 flit_core.wheel INFO Writing metadata files >2023-12-19 00:59:07,079 flit_core.wheel INFO Writing the record of files >2023-12-19 00:59:07,081 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:59:07,082 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:59:07,692 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:59:08,015 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 >hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7/.hypothesis/examples')) >rootdir: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/work/eclean_kernel-2.99.7 >plugins: timeout-2.2.0, hypothesis-6.90.0, xdist-3.5.0, anyio-4.1.0 >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/tmpworbehai/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/tmpworbehai/vmlinuz') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpworbehai/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/tmpworbehai/vmlinuz'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpworbehai/vmlinuz'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpworbehai/vmlinuz')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpworbehai/vmlinuz')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpworbehai/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/tmpworbehai/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/tmpworbehai/vmlinuz'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpworbehai/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/tmpz5bmbzm0/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/tmpz5bmbzm0/vmlinuz') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpz5bmbzm0/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/tmpz5bmbzm0/vmlinuz'> > func = <bound method KernelImage.read_version_from_efi of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpz5bmbzm0/vmlinuz'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpz5bmbzm0/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/tmpz5bmbzm0/vmlinuz'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpz5bmbzm0/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/tmpz5bmbzm0/vmlinuz')) > size = 0 >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpz5bmbzm0/vmlinuz')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpz5bmbzm0/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/tmpz5bmbzm0/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/tmpz5bmbzm0/vmlinuz'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpz5bmbzm0/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/tmplsp0j_q_/boot/0123456789abcdef0123456789abcdef') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplsp0j_q_/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplsp0j_q_') >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_exclude_build> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplsp0j_q_' >ukipath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplsp0j_q_/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/tmplsp0j_q_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplsp0j_q_/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/tmplsp0j_q_/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/tmplsp0j_q_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplsp0j_q_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplsp0j_q_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplsp0j_q_/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/tmplsp0j_q_/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/tmplsp0j_q_/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplsp0j_q_/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/tmphcwes6sx/boot/0123456789abcdef0123456789abcdef') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmphcwes6sx/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmphcwes6sx') >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_exclude_misc> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmphcwes6sx' >ukipath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmphcwes6sx/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/tmphcwes6sx/boot/0123456789abcdef0123456789abcdef/1.2.1/linux') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmphcwes6sx/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/tmphcwes6sx/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/tmphcwes6sx/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmphcwes6sx/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmphcwes6sx/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmphcwes6sx/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/tmphcwes6sx/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/tmphcwes6sx/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmphcwes6sx/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/tmpxhoz6i5g/boot/0123456789abcdef0123456789abcdef') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpxhoz6i5g/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpxhoz6i5g') >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_exclude_modules> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpxhoz6i5g' >ukipath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpxhoz6i5g/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/tmpxhoz6i5g/boot/0123456789abcdef0123456789abcdef/1.2.1/linux') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpxhoz6i5g/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/tmpxhoz6i5g/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/tmpxhoz6i5g/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpxhoz6i5g/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpxhoz6i5g/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpxhoz6i5g/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/tmpxhoz6i5g/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/tmpxhoz6i5g/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpxhoz6i5g/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/tmpdo82a7fb/boot/0123456789abcdef0123456789abcdef') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpdo82a7fb/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpdo82a7fb') >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_find_modules> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpdo82a7fb' >ukipath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpdo82a7fb/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/tmpdo82a7fb/boot/0123456789abcdef0123456789abcdef/1.2.1/linux') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpdo82a7fb/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/tmpdo82a7fb/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/tmpdo82a7fb/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpdo82a7fb/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpdo82a7fb/boot/0123456789abcdef0123456789abcdef/1.2.1/linux')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpdo82a7fb/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/tmpdo82a7fb/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/tmpdo82a7fb/boot/0123456789abcdef0123456789abcdef/1.2.1/linux'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpdo82a7fb/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/tmpnksuwrpy/boot/EFI/0123456789abcdef0123456789abcdef') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnksuwrpy/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnksuwrpy') >self = <test.test_layout_blspec.BlSpecLayoutTests testMethod=test_find_modules_EFI> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnksuwrpy' >ukipath = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnksuwrpy/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/tmpnksuwrpy/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnksuwrpy/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/tmpnksuwrpy/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/tmpnksuwrpy/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnksuwrpy/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnksuwrpy/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnksuwrpy/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/tmpnksuwrpy/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/tmpnksuwrpy/boot/EFI/0123456789abcdef0123456789abcdef/1.2.1/linux'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpnksuwrpy/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/tmp1pzo7xwi' > >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/tmp1pzo7xwi', > '--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/tmp1pzo7xwi'), 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/tmp1pzo7xwi', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff8000109e82b10> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010a421750> > 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 0xfff800010a422450> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff800010a421690> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f42b90> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f42b90>, limit = 0, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010a421750> >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 0xfff800010a421750> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = 0 >remove_kernels = {Kernel(version='1.2.6', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', 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.1', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='uki'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f42b90> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff8000109f42b90> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff800010a421690> >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 0xfff800010a421750> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1pzo7xwi/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/tmp1pzo7xwi/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/tmp1pzo7xwi/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/tmp1pzo7xwi/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/tmp1pzo7xwi/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/tmp1pzo7xwi/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/tmp9rztw94w' > >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/tmp9rztw94w', > '--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/tmp9rztw94w'), 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/tmp9rztw94w', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff8000109f57290> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f57650> > 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 0xfff8000109f57a10> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff8000109f54250> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f54d10> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f54d10>, limit = None >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f57650>, 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 0xfff8000109f57650> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = None >remove_kernels = {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.5', layout='uki'): ['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'], > Kernel(version='1.2.1', layout='bls'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f54d10> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff8000109f54d10> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff8000109f54250> >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 0xfff8000109f57650> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp9rztw94w/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/tmp9rztw94w/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/tmp9rztw94w/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/tmp9rztw94w/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/tmp9rztw94w/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/tmp9rztw94w/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/tmpenh35o1t' > >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/tmpenh35o1t', > '--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/tmpenh35o1t'), 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/tmpenh35o1t', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff8000109f02450> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f02dd0> > 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 0xfff800010a45d7d0> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff8000109f020d0> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff800010a45dfd0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010a45dfd0>, limit = None >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f02dd0>, 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 0xfff8000109f02dd0> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', 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.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'], > 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.2', layout='bls'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010a45dfd0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff800010a45dfd0> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff8000109f020d0> >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 0xfff8000109f02dd0> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpenh35o1t/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/tmpenh35o1t/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/tmpenh35o1t/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/tmpenh35o1t/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/tmpenh35o1t/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/tmpenh35o1t/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/tmpz_b0lt82' > >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/tmpz_b0lt82', > '--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/tmpz_b0lt82'), 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/tmpz_b0lt82', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff800010ae052d0> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010ae04ed0> > 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 0xfff800010ae05790> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff800010ae05210> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae05150> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae05150>, limit = 3, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010ae04ed0> >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 0xfff800010ae04ed0> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = 3 >remove_kernels = {Kernel(version='1.2.6', 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.3', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.4', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='uki'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae05150> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff800010ae05150> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff800010ae05210> >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 0xfff800010ae04ed0> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpz_b0lt82/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/tmpz_b0lt82/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/tmpz_b0lt82/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/tmpz_b0lt82/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/tmpz_b0lt82/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/tmpz_b0lt82/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/tmpc1zbawap' > >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/tmpc1zbawap', > '--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/tmpc1zbawap'), 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/tmpc1zbawap', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff800010ae6e010> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010ae6e190> > 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 0xfff800010ae6d7d0> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff800010ae6dfd0> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae6dcd0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae6dcd0>, limit = 3, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010ae6e190> >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 0xfff800010ae6e190> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = 3 >remove_kernels = {Kernel(version='1.2.6', layout='uki'): ['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.3', 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']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae6dcd0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff800010ae6dcd0> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff800010ae6dfd0> >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 0xfff800010ae6e190> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpc1zbawap/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/tmpc1zbawap/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/tmpc1zbawap/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/tmpc1zbawap/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/tmpc1zbawap/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/tmpc1zbawap/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/tmpcdeitsrm' > >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/tmpcdeitsrm', > '--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/tmpcdeitsrm'), 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/tmpcdeitsrm', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff8000109fac450> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109fad650> > 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 0xfff8000109faf350> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] > layout = <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff8000109fac190> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109faf5d0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.4', layout='bls'), Kernel(version='1.2.3', layout='bls'), Kernel(version='1.2.5', layout='bls'), Kernel(version='1.2.2', layout='bls'), Kernel(version='1.2.1', layout='bls'), Kernel(version='1.2.5', layout='uki'), ...] >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109faf5d0>, limit = 0, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109fad650> >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 0xfff8000109fad650> >destructive = True >k = Kernel(version='1.2.6', layout='uki') >kernels = [Kernel(version='1.2.4', layout='bls'), > Kernel(version='1.2.3', layout='bls'), > Kernel(version='1.2.5', layout='bls'), > Kernel(version='1.2.2', layout='bls'), > Kernel(version='1.2.1', layout='bls'), > Kernel(version='1.2.5', layout='uki'), > Kernel(version='1.2.6', layout='uki')] >limit = 0 >remove_kernels = {Kernel(version='1.2.4', layout='bls'): ['vmlinuz does not exist'], > 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.6', layout='uki'): ['vmlinuz does not exist'], > Kernel(version='1.2.2', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='bls'): ['vmlinuz does not exist'], > Kernel(version='1.2.5', layout='bls'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109faf5d0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff8000109faf5d0> >DEBUG root:__main__.py:221 Layout: <ecleankernel.layout.blspec.BlSpecLayout object at 0xfff8000109fac190> >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 0xfff8000109fad650> >DEBUG root:blspec.py:82 Unrecognized potential kernel image: Kernel file /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpcdeitsrm/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/tmpcdeitsrm/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/tmpcdeitsrm/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/tmpcdeitsrm/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/tmpcdeitsrm/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/tmpcdeitsrm/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/tmplkzslmsc/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/tmplkzslmsc' > >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/tmplkzslmsc', > '--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/tmplkzslmsc'), 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/tmplkzslmsc', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff8000109f17250> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f16fd0> > 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/tmplkzslmsc'] > exclusions = [] > f = <_io.TextIOWrapper name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplkzslmsc/eclean-kernel.rc' mode='r' encoding='UTF-8'> > group = <argparse._ArgumentGroup object at 0xfff800010ae05050> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0xfff8000109f16c50> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f14790> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.2', layout='other'), Kernel(version='1.2.4', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f14790>, limit = 2, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f16fd0> >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 0xfff8000109f16fd0> >destructive = True >k = Kernel(version='1.2.4', layout='other') >kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', 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 0xfff8000109f14790> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff8000109f14790> >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 0xfff8000109f16c50> >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 0xfff8000109f16fd0> >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/tmpq_u7mmrk/eclean-kernel.rc' mode='w' encoding='UTF-8'> >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpq_u7mmrk') >self = <test.test_layout_std.StdLayoutTests testMethod=test_config_file_user> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpq_u7mmrk' > >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/tmpq_u7mmrk', > '--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/tmpq_u7mmrk'), 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/tmpq_u7mmrk', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff8000109f5dd10> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f5ea50> > 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/tmpq_u7mmrk', > '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpq_u7mmrk/system'] > exclusions = [] > f = <_io.TextIOWrapper name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpq_u7mmrk/eclean-kernel.rc' mode='r' encoding='UTF-8'> > group = <argparse._ArgumentGroup object at 0xfff8000109f5d1d0> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0xfff8000109f5ce50> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f5ff10> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.2', layout='other'), Kernel(version='1.2.4', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f5ff10>, limit = 2, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f5ea50> >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 0xfff8000109f5ea50> >destructive = True >k = Kernel(version='1.2.4', layout='other') >kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] >limit = 2 >remove_kernels = {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', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f5ff10> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff8000109f5ff10> >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 0xfff8000109f5ce50> >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 0xfff8000109f5ea50> >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/tmplznazy5z/boot') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplznazy5z/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplznazy5z') >self = <test.test_layout_std.StdLayoutTests testMethod=test_exclude_build> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplznazy5z' > >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/tmplznazy5z/boot/vmlinuz-1.2.2') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplznazy5z/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/tmplznazy5z/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/tmplznazy5z/boot/vmlinuz-1.2.2'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplznazy5z/boot/vmlinuz-1.2.2')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplznazy5z/boot/vmlinuz-1.2.2')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplznazy5z/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/tmplznazy5z/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/tmplznazy5z/boot/vmlinuz-1.2.2'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmplznazy5z/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/tmpqbu3hdvz/boot') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpqbu3hdvz/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpqbu3hdvz') >self = <test.test_layout_std.StdLayoutTests testMethod=test_exclude_config> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpqbu3hdvz' > >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/tmpqbu3hdvz/boot/vmlinuz-1.2.2') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpqbu3hdvz/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/tmpqbu3hdvz/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/tmpqbu3hdvz/boot/vmlinuz-1.2.2'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpqbu3hdvz/boot/vmlinuz-1.2.2')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpqbu3hdvz/boot/vmlinuz-1.2.2')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpqbu3hdvz/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/tmpqbu3hdvz/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/tmpqbu3hdvz/boot/vmlinuz-1.2.2'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpqbu3hdvz/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/tmpsdaypm17/boot') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpsdaypm17/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpsdaypm17') >self = <test.test_layout_std.StdLayoutTests testMethod=test_exclude_modules> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpsdaypm17' > >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/tmpsdaypm17/boot/vmlinuz-1.2.2') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpsdaypm17/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/tmpsdaypm17/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/tmpsdaypm17/boot/vmlinuz-1.2.2'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpsdaypm17/boot/vmlinuz-1.2.2')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpsdaypm17/boot/vmlinuz-1.2.2')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpsdaypm17/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/tmpsdaypm17/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/tmpsdaypm17/boot/vmlinuz-1.2.2'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpsdaypm17/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/tmp3d9l_9ho/boot') >modules = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3d9l_9ho/lib/modules') >path = PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3d9l_9ho') >self = <test.test_layout_std.StdLayoutTests testMethod=test_find_modules> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3d9l_9ho' > >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/tmp3d9l_9ho/boot/vmlinuz-1.2.2') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3d9l_9ho/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/tmp3d9l_9ho/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/tmp3d9l_9ho/boot/vmlinuz-1.2.2'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3d9l_9ho/boot/vmlinuz-1.2.2')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3d9l_9ho/boot/vmlinuz-1.2.2')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3d9l_9ho/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/tmp3d9l_9ho/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/tmp3d9l_9ho/boot/vmlinuz-1.2.2'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp3d9l_9ho/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 0xfff800010a4fb400> > > @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/tmp7vk4aymi/boot/config-1.2.4 >E - modules: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/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/tmp7vk4aymi/boot/System.map-1.2.3 >E - config: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/boot/config-1.2.3 >E - initramfs: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/boot/initrd-1.2.3.img >E - vmlinuz: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/boot/vmlinuz-1.2.3 >E - modules: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/lib/modules/1.2.3 >E - build: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/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/tmp7vk4aymi/boot/System.map-1.2.3.old >E - config: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/boot/config-1.2.3.old >E - initramfs: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/boot/initrd-1.2.3.img.old >E - vmlinuz: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/boot/vmlinuz-1.2.3.old >E + - modules: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/lib/modules/1.2.3 >E + - build: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/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/tmp7vk4aymi/boot/System.map-1.2.2 >E - vmlinuz: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/boot/vmlinuz-1.2.2 >E - modules: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/lib/modules/1.2.2 >E - build: /var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi/lib/modules/1.2.2/../../../usr/src/linux > >self = <test.test_layout_std.StdLayoutTests testMethod=test_main_list_kernels> >sout = <_io.StringIO object at 0xfff800010a4fb400> >td = '/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp7vk4aymi' >val = <generator object StdLayoutTests.test_main_list_kernels.<locals>.<genexpr> at 0xfff8000109e3fe60> > >test/test_layout_std.py:332: AssertionError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff800010a4e5810> >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 0xfff800010a05f510> >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 0xfff800010a4e4c10> >___________________________________________________________________ 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/tmphtij5ka3' > >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/tmphtij5ka3', > '--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/tmphtij5ka3'), 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/tmphtij5ka3', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff800010a421850> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010a420550> > 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 0xfff800010a463810> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0xfff800010a422950> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff800010a423150> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.2', layout='other'), Kernel(version='1.2.4', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010a423150>, limit = 0, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010a420550> >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 0xfff800010a420550> >destructive = True >k = Kernel(version='1.2.4', layout='other') >kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] >limit = 0 >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.2', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010a423150> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff800010a423150> >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 0xfff800010a422950> >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 0xfff800010a420550> >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/tmpm7ssba7l' > >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/tmpm7ssba7l', > '--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/tmpm7ssba7l'), 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/tmpm7ssba7l', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff800010ae3c790> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010ae3f9d0> > 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 0xfff800010ae3f890> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0xfff800010ae3d190> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae3e2d0> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.2', layout='other'), Kernel(version='1.2.4', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae3e2d0>, limit = None >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010ae3f9d0>, 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 0xfff800010ae3f9d0> >destructive = True >k = Kernel(version='1.2.4', layout='other') >kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] >limit = None >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.2', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae3e2d0> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff800010ae3e2d0> >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 0xfff800010ae3d190> >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 0xfff800010ae3f9d0> >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/tmpkdyto9l5' > >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/tmpkdyto9l5', > '--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/tmpkdyto9l5'), 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/tmpkdyto9l5', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff800010a428d10> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010a42bc50> > 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 0xfff800010a429c90> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0xfff800010a429150> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff800010a42a810> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.2', layout='other'), Kernel(version='1.2.4', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010a42a810>, limit = None >bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010a42bc50>, 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 0xfff800010a42bc50> >destructive = True >k = Kernel(version='1.2.4', layout='other') >kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] >limit = None >remove_kernels = {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'], > Kernel(version='1.2.3', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010a42a810> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff800010a42a810> >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 0xfff800010a429150> >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 0xfff800010a42bc50> >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/tmptp85y1xr' > >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/tmptp85y1xr', > '--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/tmptp85y1xr'), 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/tmptp85y1xr', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff800010ae81210> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010ae808d0> > 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 0xfff80001091a90d0> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0xfff800010ae80d50> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae81890> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.2', layout='other'), Kernel(version='1.2.4', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0xfff800010ae81890>, limit = 2, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff800010ae808d0> >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 0xfff800010ae808d0> >destructive = True >k = Kernel(version='1.2.4', layout='other') >kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] >limit = 2 >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 0xfff800010ae81890> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff800010ae81890> >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 0xfff800010ae80d50> >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 0xfff800010ae808d0> >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/tmpgo4uffpv' > >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/tmpgo4uffpv', > '--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/tmpgo4uffpv'), 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/tmpgo4uffpv', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff8000109f559d0> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f54590> > 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 0xfff8000109f548d0> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0xfff8000109f57b10> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f54450> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.2', layout='other'), Kernel(version='1.2.4', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f54450>, limit = 2, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f54590> >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 0xfff8000109f54590> >destructive = True >k = Kernel(version='1.2.4', layout='other') >kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] >limit = 2 >remove_kernels = {Kernel(version='1.2.2', 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'], > Kernel(version='1.2.3.old', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f54450> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff8000109f54450> >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 0xfff8000109f57b10> >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 0xfff8000109f54590> >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/tmp9alyjo86' > >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/tmp9alyjo86', > '--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/tmp9alyjo86'), 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/tmp9alyjo86', > '--debug', > '--no-mount'] > bootfs = <ecleankernel.__main__.DummyMount object at 0xfff8000109f1dcd0> > bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f1e990> > 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 0xfff8000109f1fdd0> > kernel_parts = ['vmlinuz', > 'systemmap', > 'config', > 'initramfs', > 'modules', > 'build', > 'misc', > 'emptydir'] > kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] > layout = <ecleankernel.layout.std.StdLayout object at 0xfff8000109f1e550> > 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-sparc64-linux-gnu.so'> > sort_cls = <class 'ecleankernel.sort.VersionSort'> > sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f1e950> > sorts = [<class 'ecleankernel.sort.MTimeSort'>, <class 'ecleankernel.sort.VersionSort'>] > x = '' >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >kernels = [Kernel(version='1.2.3', layout='other'), Kernel(version='1.2.3.old', layout='other'), Kernel(version='1.2.2', layout='other'), Kernel(version='1.2.4', layout='other')] >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f1e950>, limit = 0, bootloader = <ecleankernel.bootloader.symlinks.Symlinks object at 0xfff8000109f1e990> >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 0xfff8000109f1e990> >destructive = True >k = Kernel(version='1.2.4', layout='other') >kernels = [Kernel(version='1.2.3', layout='other'), > Kernel(version='1.2.3.old', layout='other'), > Kernel(version='1.2.2', layout='other'), > Kernel(version='1.2.4', layout='other')] >limit = 0 >remove_kernels = {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.4', layout='other'): ['vmlinuz does not exist'], > Kernel(version='1.2.3', layout='other'): ['vmlinuz does not exist']} >sorter = <ecleankernel.sort.VersionSort object at 0xfff8000109f1e950> > >ecleankernel/process.py:82: SystemError >-------------------------------------------------------------------------- Captured log call -------------------------------------------------------------------------- >DEBUG root:__main__.py:187 Sorter: <ecleankernel.sort.VersionSort object at 0xfff8000109f1e950> >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 0xfff8000109f1e550> >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 0xfff8000109f1e990> >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/tmp1mu8_tdb/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/tmp1mu8_tdb') > >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/tmp1mu8_tdb/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1mu8_tdb/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/tmp1mu8_tdb/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1mu8_tdb/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1mu8_tdb/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1mu8_tdb/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1mu8_tdb/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/tmp1mu8_tdb/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/tmp1mu8_tdb/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp1mu8_tdb/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/tmp04pzl0fh/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/tmp04pzl0fh') > >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/tmp04pzl0fh/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp04pzl0fh/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/tmp04pzl0fh/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp04pzl0fh/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp04pzl0fh/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp04pzl0fh/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp04pzl0fh/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/tmp04pzl0fh/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/tmp04pzl0fh/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp04pzl0fh/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/tmpe6x84peg/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/tmpe6x84peg') > >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/tmpe6x84peg/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpe6x84peg/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/tmpe6x84peg/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpe6x84peg/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpe6x84peg/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpe6x84peg/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpe6x84peg/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/tmpe6x84peg/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/tmpe6x84peg/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpe6x84peg/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/tmp2q7dx0hl/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/tmp2q7dx0hl') > >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/tmp2q7dx0hl/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2q7dx0hl/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/tmp2q7dx0hl/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2q7dx0hl/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2q7dx0hl/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2q7dx0hl/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2q7dx0hl/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/tmp2q7dx0hl/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/tmp2q7dx0hl/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp2q7dx0hl/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/tmpvz73av8m/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/tmpvz73av8m') > >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/tmpvz73av8m/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvz73av8m/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/tmpvz73av8m/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvz73av8m/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvz73av8m/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvz73av8m/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvz73av8m/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/tmpvz73av8m/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/tmpvz73av8m/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvz73av8m/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/tmpuzedc55f/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/tmpuzedc55f') > >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/tmpuzedc55f/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpuzedc55f/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/tmpuzedc55f/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpuzedc55f/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpuzedc55f/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpuzedc55f/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpuzedc55f/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/tmpuzedc55f/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/tmpuzedc55f/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpuzedc55f/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/tmpshtong7f/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/tmpshtong7f') > >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/tmpshtong7f/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpshtong7f/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/tmpshtong7f/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpshtong7f/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpshtong7f/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpshtong7f/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpshtong7f/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/tmpshtong7f/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/tmpshtong7f/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpshtong7f/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/tmp6641qj5g/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/tmp6641qj5g') > >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/tmp6641qj5g/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6641qj5g/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/tmp6641qj5g/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6641qj5g/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6641qj5g/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6641qj5g/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6641qj5g/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/tmp6641qj5g/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/tmp6641qj5g/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmp6641qj5g/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/tmpvlj3mp_7/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/tmpvlj3mp_7') > >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/tmpvlj3mp_7/kernel.old') > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvlj3mp_7/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/tmpvlj3mp_7/kernel.old'> > func = <bound method KernelImage.read_version_from_bzimage of KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvlj3mp_7/kernel.old'))> > self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvlj3mp_7/kernel.old')) > verbuf = None >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvlj3mp_7/kernel.old')) >f = <_io.BufferedReader name='/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvlj3mp_7/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/tmpvlj3mp_7/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/tmpvlj3mp_7/kernel.old'> >offset = 4096 >self = KernelImage(PosixPath('/var/tmp/portage/app-admin/eclean-kernel-2.99.7/temp/tmpvlj3mp_7/kernel.old')) > >ecleankernel/file.py:196: UnrecognizedKernelError >========================================================================== warnings summary =========================================================================== >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/tmp1mu8_tdb'> > _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/tmpworbehai/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/tmpz5bmbzm0/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/tmplsp0j_q_/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/tmphcwes6sx/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/tmpxhoz6i5g/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/tmpdo82a7fb/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/tmpnksuwrpy/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/tmplznazy5z/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/tmpqbu3hdvz/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/tmpsdaypm17/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/tmp3d9l_9ho/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/tmp1mu8_tdb/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/tmp04pzl0fh/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/tmpe6x84peg/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/tmp2q7dx0hl/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/tmpvz73av8m/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/tmpuzedc55f/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/tmpshtong7f/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/tmp6641qj5g/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/tmpvlj3mp_7/kernel.old terminates before expected vers... >============================================================== 35 failed, 23 passed, 1 warning in 14.90s ============================================================== > * 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 4022: Called distutils-r1_src_test > * environment, line 2016: Called _distutils-r1_run_foreach_impl 'python_test' > * environment, line 745: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' > * environment, line 3626: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 3132: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 3130: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' > * environment, line 1242: Called distutils-r1_run_phase 'python_test' > * environment, line 1939: Called python_test > * environment, line 3909: Called distutils-r1_python_test > * environment, line 1879: Called epytest > * environment, line 2554: 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