• Bug#1068102: FileNotFoundError in process_manpages()

    From Andrey Rakhmatullin@21:1/5 to All on Sat Mar 30 19:10:01 2024
    Package: dh-debputy
    Version: 0.1.23
    Severity: normal

    I've tried to convert the cpuid package to dh-sequence-zz-debputy, when building it I got:

    dh_debputy
    debputy: info: Loaded plugin debputy
    debputy: info: The following directories are considered search dirs (in order): debputy: info: * debian/tmp (skipped; absent)
    debputy: info: * .
    debputy: info: The following directories are considered for "not-installed" paths;
    debputy: info: * debian/tmp (skipped; absent)
    debputy: info: Looking up build-ids via: file -00 -N /<<PKGBUILDDIR>>/debian/.debhelper/_debputy/scratch-dir/_pb-615671/generated- fs-content/no-package/tmpqr8svzjr__cpuid
    debputy: info: Removing unnecessary ELF debug info via: strip --remove- section=.comment --remove-section=.note /<<PKGBUILDDIR>>/debian/.debhelper/_debputy/scratch-dir/_pb-615671/generated- fs-content/no-package/tmpqr8svzjr__cpuid
    debputy: info: Ensuring manpages have utf-8 encoding via: man-recode --to-code UTF-8 --suffix .encoded /<<PKGBUILDDIR>>/debian/.debhelper/_debputy/scratch- dir/_pb-615671/generated-fs-content/no-package/tmp7zgxlblf__cpuid.1.gz /<<PKGBUILDDIR>>/debian/.debhelper/_debputy/scratch-dir/_pb-615671/generated- fs-content/no-package/tmp8zbqi23u__cpuinfo2cpuid.1.gz
    debputy: warning: Unhandled exception (Re-run with --debug to see the raw stack trace)
    debputy: warning: ----- 8< ---- BEGIN STACK TRACE ---- 8< -----
    Traceback (most recent call last):
    File "/usr/share/dh-debputy/debputy/commands/debputy_cmd/__main__.py", line 1459, in main
    ROOT_COMMAND(cmd_arg)
    File "/usr/share/dh-debputy/debputy/commands/debputy_cmd/context.py", line 609, in __call__
    self._aliases[v](command_arg)
    File "/usr/share/dh-debputy/debputy/commands/debputy_cmd/context.py", line 609, in __call__
    self._aliases[v](command_arg)
    File "/usr/share/dh-debputy/debputy/commands/debputy_cmd/context.py", line 442, in __call__
    return self._handler(context)
    ^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/share/dh-debputy/debputy/commands/debputy_cmd/__main__.py", line 749, in _dh_integration_generate_debs
    run_package_processors(manifest, package_metadata_context, fs_root)
    File "/usr/share/dh-debputy/debputy/deb_packaging_support.py", line 826, in run_package_processors
    pppp.run_package_processor(fs_root, None, package_metadata_context)
    File "/usr/share/dh-debputy/debputy/plugin/api/impl_types.py", line 788, in run_package_processor
    self.package_processor(fs_root, unused, context)
    File "/usr/share/dh-debputy/debputy/plugin/debputy/package_processors.py", line 120, in process_manpages
    os.rename(f"{manpage}.encoded", manpage)
    FileNotFoundError: [Errno 2] No such file or directory: '/<<PKGBUILDDIR>>/debian/.debhelper/_debputy/scratch-dir/_pb-615671/generated- fs-content/no-package/tmp7zgxlblf__cpuid.1.gz.encoded' -> '/<<PKGBUILDDIR>>/debian/.debhelper/_debputy/scratch-dir/_pb-615671/generated- fs-content/no-package/tmp7zgxlblf__cpuid.1.gz'


    Note that cpuid.1 is not mentioned in the packaging. It's installed to debian/cpuid/usr/share/man/man1/cpuid.1.gz at the moment of the error.

    All changes:

    diff --git a/debian/control b/debian/control
    index bc4f9ac..83f15f5 100644
    --- a/debian/control
    +++ b/debian/control
    @@ -2,7 +2,7 @@ Source: cpuid
    Section: admin
    Priority: optional
    Maintainer: Andrey Rahmatullin <wrar@debian.org>
    -Build-Depends: debhelper-compat (= 13)
    +Build-Depends: debhelper-compat (= 13), dh-sequence-zz-debputy
    Standards-Version: 4.6.1
    Vcs-Git: https://salsa.debian.org/debian/cpuid.git
    Vcs-Browser: https://salsa.debian.org/debian/cpuid
    @@ -11,7 +11,6 @@ Rules-Requires-Root: no

    Package: cpuid
    Architecture: any-i386 any-amd64
    -Depends: ${shlibs:Depends}, ${perl:Depends}, ${misc:Depends}
    Description: tool to dump x86 CPUID information about the CPU(s)
    cpuid dumps detailed information about the CPU(s) gathered from the
    CPUID instruction, and also determines the exact model of CPU(s). It
    diff --git a/debian/debputy.manifest b/debian/debputy.manifest
    new file mode 100644
    index 0000000..669437f
    --- /dev/null
    +++ b/debian/debputy.manifest
    @@ -0,0 +1,4 @@
    +manifest-version: '0.1'
    +installations:
    +- install-docs:
    + source: FUTU