Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 912421 - app-text/qpdf-11 Compile failure if random devices aren't detected (chromiumos)
Summary: app-text/qpdf-11 Compile failure if random devices aren't detected (chromiumos)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Printing Team
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks:
 
Reported: 2023-08-17 19:47 UTC by Clayton Whitelaw
Modified: 2023-09-07 20:50 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
11.5.0 emerge log (app-text:qpdf-11.5.0:20230815-235944.log,103.77 KB, text/x-log)
2023-08-17 20:10 UTC, Clayton Whitelaw
Details
preliminary patch diff - not for integration (qpdf-ebuild-patch.git.diff,466 bytes, patch)
2023-08-17 20:21 UTC, Clayton Whitelaw
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Clayton Whitelaw 2023-08-17 19:47:46 UTC
>=app-text/qpdf-11.0.0 (tested with 11.5.0)

QPDF moved from traditional ./configure and make to CMake in v11. In the ChromiumOS SDK, we build this package for a target device, using a sysroot for that device that doesn't have /dev/urandom etc.

The compile step fails with the new CMake workflow, which looks for these devices on non-windows platforms and throws an error if it can't find them, so it fails to build in our case. When I create a dummy /dev/urandom file in that sysroot, it builds successfully.

The variable RANDOM_DEVICE in libqpdf/CMakeLists.txt controls this behavior. If I pass -DRANDOM_DEVICE=/dev/urandom via the cmake args in the ebuild, this also completes the build successfully.

Is there any reason this device wouldn't be present at runtime for a Gentoo system at this time?

Reproducible: Always

Steps to Reproduce:
This is chromiumos related setup:
Set up a chromiumos SDK
(inside SDK) $ cros_portage_upgrade --upgrade --unstable-ok --board=amd64-generic qpdf
(outside SDK) $ cros build-packages --board=amd64-generic
Actual Results:  
Compilation fails

/build/amd64-generic/tmp/portage/app-text/qpdf-11.5.0/work/qpdf-11.5.0/libqpdf/SecureRandomDataProvider.cc:105:4: error: "Donβ”‚/build/amd64-generic
't know how to generate secure random numbers on this platform.  See random number generation in the top-level README.md"

Expected Results:  
Compiles successfully

Had to redact GENTOO_MIRRORS below because the bugzilla policy here wouldn't let me include any URLs.

Portage 2.3.75 (python 3.8.16-final-0, default/linux/amd64/10.0/chromeos, gcc-10.2.0, unavailable, 6.3.11-1rodete1-amd64 x86_64)
=================================================================
System uname: Linux-6.3.11-1rodete1-amd64-x86_64-Intel-R-_Xeon-R-_Gold_6154_CPU_@_3.00GHz-with-glibc2.34
KiB Mem:   196636948 total,  28669504 free
KiB Swap:  162979836 total, 162978812 free
sh bash 5.1_p16-r2
ld GNU ld (GNU Binutils) 2.39.0
ccache version 3.7.7 [disabled]
app-misc/pax-utils:        1.3.3::portage-stable
app-shells/bash:           5.1_p16-r2::portage-stable
dev-lang/python:           3.6.15-r3::chromiumos, 3.8.16_p4-r2::chromiumos
sys-apps/baselayout:       2.2-r2::chromiumos
sys-devel/binutils:        2.39-r3::chromiumos
sys-devel/binutils-config: 5.3.1::portage-stable
sys-devel/llvm:            12.0.1-r5::chromiumos
sys-kernel/linux-headers:  4.14-r2::chromiumos (virtual/os-headers)
sys-libs/libselinux:       3.0-r5::chromiumos
Repositories:

portage-stable
    location: /mnt/host/source/src/third_party/portage-stable
    masters: eclass-overlay
    priority: -1000

chromiumos
    location: /mnt/host/source/src/third_party/chromiumos-overlay
    masters: portage-stable eclass-overlay
    priority: 0

eclass-overlay
    location: /mnt/host/source/src/third_party/eclass-overlay
    priority: 1

amd64-generic
    location: /mnt/host/source/src/overlays/overlay-amd64-generic
    masters: portage-stable chromiumos eclass-overlay
    priority: 2

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA -@CHROMEOS"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS=" -Os -pipe  -march=x86-64 -msse3 -g -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections"
CHOST="x86_64-cros-linux-gnu"
CONFIG_PROTECT="/etc/hosts /etc/locale.gen /etc/localtime /etc/make.conf"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/terminfo"
CXXFLAGS=" -Os -pipe  -march=x86-64 -msse3 -g -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--oneshot --autounmask-backtrack=y --autounmask=n --with-bdepends=n"
FCFLAGS=""
FEATURES="allow-missing-manifests assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg clean-logs config-protect-if-modified distlocks fixlafiles force-mirror ipc-sandbox multilib-strict network-sandbox nodoc noinfo noman parallel-fetch parallel-install protect-owned sandbox sfperms splitdebug unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS=""
GENTOO_MIRRORS='[REDACTED]'
INSTALL_MASK="   /usr/lib*/*.la   /etc/init.d /etc/conf.d   /etc/logrotate.d   /etc/sandbox.d   /usr/share/bash-completion   /usr/share/locale "
LANG="C.UTF-8"
LDFLAGS="-Wl,-O2 -Wl,--as-needed  -Wl,--gc-sections -Wl,--icf=all"
MAKEOPTS="-j36"
PKGDIR="/build/amd64-generic/packages/"
PORTAGE_BINHOST="gs://chromeos-prebuilt/board/amd64-generic/full-R107-15117.0.0-rc3/packages/ gs://chromeos-prebuilt/board/amd64-generic/postsubmit-R117-15572.0.0-54311-8773323264589462513/packages gs://chromeos-prebuilt/board/amd64-generic/postsubmit-R117-15572.0.0-54312-8773321261635639153/packages gs://chromeos-prebuilt/board/amd64-generic/postsubmit-R118-15573.0.0-54313-8773319256457836401/packages gs://chromeos-prebuilt/board/amd64-generic/postsubmit-R118-15573.0.0-54314-8773317324197292241/packages gs://chromeos-prebuilt/board/amd64-generic/cq-R117-15572.0.0-54295-8773357420327271425/packages"
PORTAGE_BUNZIP2_COMMAND="lbzip2 -d"
PORTAGE_BZIP2_COMMAND="lbzip2 -z"
PORTAGE_COMPRESS="pigz"
PORTAGE_COMPRESS_FLAGS="-3"
PORTAGE_CONFIGROOT="/build/amd64-generic/"
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="/build/amd64-generic/tmp/"
USE="acpi acpi_ac amd64 arc-camera3 bindist bluetooth bootsplash bt_deprecated_tools bzip2 camera_feature_frame_annotator cellular compupdates containers cras-ml cros-debug cros_p2p crosfonts crosvm-gpu crypt cups cxx diagnostics diagnostics-minidiag direncription_allow_v2 direncryption dlc dlp dns-proxy dri drm_atomic evdev_gestures extra_japanese_fonts featured federated_service floss frecon fusebox fwupd gsans_variable_font hardened has_chromeos_config_bsp iconv iioservice ime ime_addons include_vmlinuz ipv6 kerberos_daemon kernel-5_15 kvm_host lacros_rootfs legacy_firmware_ui legacy_keyboard legacy_power_button llvm mbim memd missive mist ml_benchmark_drivers ml_service mmx mmxext modules mosys_platform_generic mudflap multilib ncurses nnapi nptl nptlonly ondevice_document_scanner ondevice_grammar ondevice_handwriting ondevice_text_suggestions opengles pam perfetto pinweaver printscanmgr private_computing racc readline resourced rgbkbd scanner secagent secanomalyd smartdim smbprovider spaced sse sse2 ssl swap_management sysfs system_proxy tpm2 tpm2_simulator tpm2_simulator_manufacturer transparent_hugepage udev unibuild unicode usb usb_bouncer usbguard vaapi virtio_gpu vivid vkms vlan vtpm_proxy vulkan wifi_hostap_test xattr xkbcommon xorg zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" BOARD_USE="amd64-generic" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" CHROMEOS_KERNEL_FAMILY="chromeos" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" INPUT_DEVICES="evdev synaptics cmt" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en" LINUX_FIRMWARE="iwlwifi-all rt2870 rtl8153" LLVM_TARGETS="AMDGPU X86" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python3_6" RUBY_TARGETS="ruby25" USERLAND="GNU" VIDEO_CARDS="intel llvmpipe nouveau radeon fbdev" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, ENV_UNSET, LC_ALL, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Clayton Whitelaw 2023-08-17 20:10:21 UTC
Created attachment 868091 [details]
11.5.0 emerge log
Comment 2 Clayton Whitelaw 2023-08-17 20:14:10 UTC
I also think qpdf is doing something wacky here in the first place, so I filed an issue with them to see if it can be cleaned up upstream.

This is a new account so I can't post URLs, so see github qpdf/qpdf/issues/1022
Comment 3 Clayton Whitelaw 2023-08-17 20:21:08 UTC
Created attachment 868092 [details, diff]
preliminary patch diff - not for integration
Comment 4 Larry the Git Cow gentoo-dev 2023-09-07 20:50:42 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=294fa7aaeb98d4c7d913cacf3d6917ed4eb6090f

commit 294fa7aaeb98d4c7d913cacf3d6917ed4eb6090f
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-09-07 20:45:49 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-09-07 20:50:19 +0000

    app-text/qpdf: add 11.6.1
    
    Closes: https://bugs.gentoo.org/912421
    Signed-off-by: Sam James <sam@gentoo.org>

 app-text/qpdf/Manifest           |  2 ++
 app-text/qpdf/qpdf-11.6.1.ebuild | 75 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 77 insertions(+)