#1123819 r-bioc-s4vectors: autopkgtests fail on riscv64

#1123819#5
Date:
2025-12-22 11:22:08 UTC
From:
To:
https://qa.debian.org/excuses.php?package=r-bioc-s4vectors

Issues preventing migration:
Autopkgtest for r-bioc-s4vectors/0.44.0+dfsg-2: amd64: Pass, arm64: Pass, i386: No tests, superficial or marked flaky ♻, ppc64el: Pass, riscv64: Failed ♻, s390x: Pass
Build-Depends(-Arch): r-bioc-s4vectors r-bioc-biocgenerics (not considered)
Depends: r-bioc-s4vectors r-bioc-biocgenerics (not considered)

344 days old (needed 5 days)

#1123819#10
Date:
2026-03-28 07:04:52 UTC
From:
To:
Dear R team,

I prepared a fix for #1123819 in merge request https://salsa.debian.org/r-pkg-team/r-bioc-s4vectors/-/merge_requests/1

Tests run fine on my system, but I'm not sure how I can test this on riscv64
architecture via deb ci, before proposing this MR.

I intentionally didn't tag my commit. Was that okay?

Thanks for considering to merge my proposition or your feedback ;-)

Best regards,

Pieter

#1123819#15
Date:
2026-03-28 07:20:52 UTC
From:
To:
Le Sat, Mar 28, 2026 at 08:04:52AM +0100, Pieter Lenaerts a écrit :

Hi Pieter,

S4Vectors is going to to be updated upstream at the end of April.

 - https://bioconductor.org/packages/release/bioc/html/S4Vectors.html
 - https://bioconductor.org/developers/release-schedule/

Can I ask you to submit your patch upstream ?  If it is accepted that would be
one less patch to carry on our shoulders.

Have a nice day,

Charles

#1123819#20
Date:
2026-03-28 08:17:27 UTC
From:
To:
Hi Charles,

I remember from a previous conversation. The patch I propose will still be
relevant.

Done and PR is in the patch header now.

In the meantime, will you consider my patch? This blocks the pyrle package to
go into testing.

Best regards,

Pieter

#1123819#25
Date:
2026-03-28 10:03:09 UTC
From:
To:
Le Sat, Mar 28, 2026 at 09:17:27AM +0100, Pieter Lenaerts a écrit :

Hi Pieter,

I am worried that the patch is just hiding a real bug.  Can we wait for
upstream's decision?

In any case, r-bioc-s4vectors is not going to migrate before
r-bioc-biocgenerics, and the plan it to take care of this after next
Bioconductor release.

If you are in a hurry, maybe you can also instead disable the S4Vectors
tests on your side and therefore remove the dependency?

Have a nice day,

Charles

#1123819#30
Date:
2026-03-28 12:23:09 UTC
From:
To:
Hey Charles,

Absolutely fine if that's your concern.

Not urgent. Lets wait as long as it's not forever. 👍

Br,

Pieter

#1123819#35
Date:
2026-04-04 06:50:29 UTC
From:
To:
Just as a reference, this is where I am right now:

1. I've asked porter box access since that seems the most straightforward way to
test this riscv64 issue before pushing changes to salsa.

Getting that access takes time.

In the meantime...

2. I tried using autopkgtest-build-qemu, which fails on vmdb2 not
recognizing riscv64:

~ » sudo autopkgtest-build-qemu --architecture=riscv64
--mirror=http://deb.debian.org/debian unstable
/home/pieter/src/deb/qemu-img-unstable-riscv64.img

2026-04-03 08:23:48 ERROR GRUB UEFI package and target for "riscv64" unknown
Traceback (most recent call last): File
"/usr/lib/python3/dist-packages/vmdb/plugins/grub_plugin.py", line 121, in
grub_uefi_variant
return variants[state.arch] ~~~~~~~~^^^^^^^^^^^^
KeyError: 'riscv64'

~ » grep -n -A 10 'variants' /usr/lib/python3/dist-packages/vmdb/plugins/grub_plugin.py
113:        variants = {
114-            "amd64": ("grub-efi-amd64", "x86_64-efi"),
115-            "i386": ("grub-efi-ia32", "i386-efi"),
116-            "arm64": ("grub-efi-arm64", "arm64-efi"),
117-            "armhf": ("grub-efi-arm", "arm-efi"),
118-        }
119-        logging.debug(f"grub plugin: state.arch={state.arch!r}")
120-        try:
121:            return variants[state.arch]
122-        except KeyError:
123-            raise Exception(
124-                'GRUB UEFI package and target for "{}" unknown'.format(state.arch)
125-            )
126-
127-    def install_uefi(self, values, settings, state):
128-        efi = values["efi"] or None
129-        efi_part = values["efi-part"] or None
130-        if efi is None and efi_part is None:
131-            raise Exception('"efi" or "efi-part" required in UEFI GRUB installation')
--
144:        variants = {
145-            "amd64": "i386",
146-            "ppc64": "powerpc",
147-            "ppc64el": "powerpc",
148-            "sparc": "sparc64",
149-        }
150-        logging.debug(f"grub plugin: state.arch={state.arch!r}")
151:        return variants.get(state.arch, state.arch)
152-
153-    def install_ieee1275(self, values, settings, state):
154-        vmdb.progress("Installing GRUB for IEEE1275")
155-        grub_package = "grub-ieee1275"
156-        grub_target = f"{self.grub_ieee1275_variant(state)}-ieee1275"
157-        self.install_grub(values, settings, state, grub_package, grub_target)
158-
159-    def install_grub(self, values, settings, state, grub_package, grub_target):
160-        console = values["console"] or None
161-

I'm not going to try and mess with that by just adding the right key, which
would probably be 'riscv64': ('grub-efi-riscv64', 'riscv64-efi', ...),

3. I'm used https://people.debian.org/~gio/dqib/

I was able to boot the image using the line in the riscv64 image readme, except
I had to drop the -bios flag to get around this error:

~/src/deb/dqib_riscv64-virt » qemu-system-riscv64 -machine 'virt' -cpu 'rv64'
-m 1G -device virtio-blk-device,drive=hd -drive file=image.qcow2,if=none,id=hd
-device virtio-net-device,netdev=net -netdev
user,id=net,hostfwd=tcp:127.0.0.1:2222-:22 -bios
/usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf -kernel
/usr/lib/u-boot/qemu-riscv64_smode/uboot.elf -object
rng-random,filename=/dev/urandom,id=rng -device virtio-rng-device,rng=rng
-nographic -append "root=LABEL=rootfs console=ttyS0" qemu-system-riscv64: Some
ROM regions are overlapping These ROM regions might have been loaded by direct
user request or by default.  They could be BIOS/firmware images, a guest
kernel, initrd or some other file loaded into guest memory.  Check whether you
intended to load all this guest code, and whether it has been built to load to
the correct addresses.  The following two regions overlap (in the memory
address space): /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf ELF
program header segment 1 (addresses 0x0000000000000000 - 0x0000000000034b10)
mrom.reset (addresses 0x0000000000001000 - 0x0000000000001028)

Without the -bios flag, the image boots, apt update and apt upgrade work.

I was able to confirm that the default tolerance works, so defining the custom
tolerance is superfluous, as suggested by hpages in
https://github.com/Bioconductor/S4Vectors/pull/133#issuecomment-4150964996

Next I've submitted an updated patch upstream and have update our patch.

#1123819#42
Date:
2026-04-05 06:51:47 UTC
From:
To:
Upstream have merged our patch. Ref
https://github.com/Bioconductor/S4Vectors/pull/133


As we're not very quick on following their releases I propose to include the
patch in debian for now, as per
https://salsa.debian.org/r-pkg-team/r-bioc-s4vectors/-/merge_requests/1

This will unblock pyrle going into tetsting.
https://qa.debian.org/excuses.php?package=pyrle