Bug 2170842

Summary: libreoffice-gtk3 and libreoffice-x11 are not available for aarch64
Product: Red Hat Enterprise Linux 9 Reporter: Carlos Santos <casantos>
Component: libreofficeAssignee: Caolan McNamara <caolanm>
Status: CLOSED NOTABUG QA Contact: Desktop QE <desktop-qa-list>
Severity: high Docs Contact:
Priority: high    
Version: 9.1CC: bodavis, msuchane, ndegraef, sbarcomb, tpelka, tpopela, zhguo
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: ---   
Hardware: aarch64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-02-17 12:32:43 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
sosreport generated after installing RHEL 9.1 on a Parallels VM none

Description Carlos Santos 2023-02-17 11:42:13 UTC
Description of problem:

libreoffice always fails to start:

   $ libreoffice
   no suitable windowing system found, exiting.

Version-Release number of selected component (if applicable):

libreoffice-7.1.8.1-8.el9_1.aarch64

How reproducible:

Always

Steps to Reproduce:
1. Install RHEL 9, ensuring that libreoffice is included:

   autocorr-en-7.1.8.1-8.el9_1
   libreoffice-calc-7.1.8.1-8.el9_1
   libreoffice-core-7.1.8.1-8.el9_1
   libreoffice-data-7.1.8.1-8.el9_1
   libreoffice-graphicfilter-7.1.8.1-8.el9_1
   libreoffice-help-en-7.1.8.1-8.el9_1
   libreoffice-impress-7.1.8.1-8.el9_1
   libreoffice-langpack-en-7.1.8.1-8.el9_1
   libreoffice-ogltrans-7.1.8.1-8.el9_1
   libreoffice-opensymbol-fonts-7.1.8.1-8.el9_1
   libreoffice-pdfimport-7.1.8.1-8.el9_1
   libreoffice-pyuno-7.1.8.1-8.el9_1
   libreoffice-ure-7.1.8.1-8.el9_1
   libreoffice-ure-common-7.1.8.1-8.el9_1
   libreoffice-writer-7.1.8.1-8.el9_1

2. Open a gnome-terminal window

3. Ruin libreoffice

Actual results:

   no suitable windowing system found, exiting.

Expected results:

libreofice should run

Additional info:

It happens because no GUI plugin is found, as show in the code, in
vcl/source/app/salplug.cxx:

228-SalInstance *CreateSalInstance()
229-{
230-    SalInstance *pInst = nullptr;
231-
232-    OUString aUsePlugin;
233-    rtl::Bootstrap::get("SAL_USE_VCLPLUGIN", aUsePlugin);
234-    SAL_INFO_IF(!aUsePlugin.isEmpty(), "vcl", "Requested VCL plugin: " << aUsePlugin);
235-#ifdef HEADLESS_VCLPLUG
236-    if (Application::IsBitmapRendering() || (aUsePlugin.isEmpty() && IsHeadlessModeRequested()))
237-        aUsePlugin = "svp";
238-#endif
239-
240-    if (aUsePlugin == "svp")
241-    {
242-        Application::EnableBitmapRendering();
243-#ifndef HEADLESS_VCLPLUG
244-        aUsePlugin.clear();
245-#endif
246-    }
247-    if( !aUsePlugin.isEmpty() )
248-        pInst = tryInstance( aUsePlugin, true );
249-
250-#ifdef DESKTOPDETECT
251-    if( ! pInst )
252-        pInst = autodetect_plugin();
253-#endif
254-
255-    // fallback, try everything
256-    static const char* const pPlugin[] = {
257-#ifdef _WIN32
258-        "win"
259-#else
260-#ifdef MACOSX
261-        "osx"
262-#else
263-        "gtk3", "kf5", "gen"
264-#endif
265-#endif
266-     };
267-
268-    for ( int i = 0; !pInst && i != SAL_N_ELEMENTS(pPlugin); ++i )
269-        pInst = tryInstance( OUString::createFromAscii( pPlugin[ i ] ) );
270-
271-    if( ! pInst )
272-    {
273:        std::fprintf( stderr, "no suitable windowing system found, exiting.\n" );
274-        _exit( 1 );
275-    }
276-
277-    // acquire SolarMutex
278-    pInst->AcquireYieldMutex();
279-
280-    return pInst;
281-}

and confirmed via strace:

$ strace -fvyyo /tmp/libreoffice.strace --trace=openat libreoffice
no suitable windowing system found, exiting.

$ grep libvclplug_ /tmp/libreoffice.strace
11439 openat(AT_FDCWD</home/bashuser>, "/usr/lib64/libreoffice/program/libvclplug_gtk3lo.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
11439 openat(AT_FDCWD</home/bashuser>, "/usr/lib64/libreoffice/program/libvclplug_genlo.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
11439 openat(AT_FDCWD</home/bashuser>, "/usr/lib64/libreoffice/program/libvclplug_gtk3lo.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
11439 openat(AT_FDCWD</home/bashuser>, "/usr/lib64/libreoffice/program/libvclplug_kf5lo.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
11439 openat(AT_FDCWD</home/bashuser>, "/usr/lib64/libreoffice/program/libvclplug_genlo.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

Comment 17 Carlos Santos 2023-02-28 17:57:08 UTC
Additional information to explain why it is easy to run a GUI on RHEL 9 installed on a Mac M1 with Parallels.

Parallels uses virtio devices for Linux guests, so proprietary drivers are not required:

[root@rhel-9-1 ~]# lspci -k
00:01.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller
	Subsystem: Parallels, Inc. Device 0400
00:02.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 02)
	Subsystem: Parallels, Inc. Device 0400
	Kernel driver in use: ehci-pci
00:03.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
	Subsystem: Parallels, Inc. Device 0400
	Kernel driver in use: xhci_hcd
00:05.0 Ethernet controller: Red Hat, Inc. Virtio network device
	Subsystem: Parallels, Inc. Device 0001
	Kernel driver in use: virtio-pci
00:09.0 Unassigned class [ff00]: Parallels, Inc. Virtual Machine Communication Interface
	Subsystem: Parallels, Inc. Device 0400
	Kernel driver in use: prl_tg
	Kernel modules: prl_tg
00:0a.0 VGA compatible controller: Red Hat, Inc. Virtio GPU (rev 01)
	Subsystem: Parallels, Inc. Device 0010
	Kernel driver in use: virtio-pci

[root@rhel-9-1 ~]# dmidecode 
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.
Table at 0xBF7E0000.

Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
	Vendor: Parallels International GmbH.
	Version: 1.8.1 (23812)
	Release Date: Wed, 23 Nov 2022 18:28:54
	Address: 0xE0000
	Runtime Size: 128 kB
	ROM Size: 2 MB
	Characteristics:
		PCI is supported
		Selectable boot is supported
		ACPI is supported
		Smart battery is supported
		Targeted content distribution is supported
		UEFI is supported
	BIOS Revision: 0.1

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: Parallels International GmbH.
	Product Name: Parallels ARM Virtual Machine
	Version: 0.1
	Serial Number: Parallels-C6 EB 05 32 65 00 43 C6 9A 84 BB 36 B1 CA 9D A7
	UUID: c6eb0532-6500-43c6-9a84-bb36b1ca9da7
	Wake-up Type: Power Switch
	SKU Number: Parallels_ARM_VM
	Family: Parallels VM

Handle 0x0002, DMI type 2, 17 bytes
Base Board Information
	Manufacturer: Parallels ARM Virtual Machine
	Product Name: Parallels ARM Virtual Platform
	Version: 0.1
	Serial Number: None
	Asset Tag: None
	Features:
		Board is a hosting board
	Location In Chassis: None
	Chassis Handle: 0x0000
	Type: Motherboard
	Contained Object Handles: 0

Handle 0x0003, DMI type 3, 24 bytes
Chassis Information
	Manufacturer: Parallels International GmbH.
	Type: Unknown
	Lock: Not Present
	Version:  
	Serial Number:  
	Asset Tag:  
	Boot-up State: Unknown
	Power Supply State: Unknown
	Thermal State: Unknown
	Security Status: Unknown
	OEM Information: 0x00000000
	Height: Unspecified
	Number Of Power Cords: Unspecified
	Contained Elements: 0
	SKU Number: Not Specified

Handle 0x0004, DMI type 4, 48 bytes
Processor Information
	Socket Designation: CPU
	Type: Central Processor
	Family: ARMv8
	Manufacturer: Apple
	ID: 00 00 00 00 00 00 00 00
	Version: Apple Silicon
	Voltage: Unknown
	External Clock: Unknown
	Max Speed: 2000 MHz
	Current Speed: 2000 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: Not Provided
	L2 Cache Handle: Not Provided
	L3 Cache Handle: Not Provided
	Serial Number: None
	Asset Tag: None
	Part Number: None
	Core Count: 2
	Core Enabled: 2
	Thread Count: 1
	Characteristics: None

Handle 0x0005, DMI type 16, 23 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 4 GB
	Error Information Handle: Not Provided
	Number Of Devices: 1

Handle 0x0006, DMI type 17, 84 bytes
Memory Device
	Array Handle: 0x0005
	Error Information Handle: 0x0000
	Total Width: 32 bits
	Data Width: 32 bits
	Size: 4 GB
	Form Factor: DIMM
	Set: None
	Locator: <BAD INDEX>
	Bank Locator: <BAD INDEX>
	Type: DRAM
	Type Detail: EDO
	Speed: Unknown
	Manufacturer: <BAD INDEX>
	Serial Number: <BAD INDEX>
	Asset Tag: <BAD INDEX>
	Part Number: <BAD INDEX>
	Rank: 1
	Configured Memory Speed: Unknown
	Minimum Voltage: Unknown
	Maximum Voltage: Unknown
	Configured Voltage: Unknown
	Memory Technology: DRAM
	Memory Operating Mode Capability: Volatile memory
	Firmware Version: <BAD INDEX>
	Module Manufacturer ID: Unknown
	Module Product ID: Unknown
	Memory Subsystem Controller Manufacturer ID: Unknown
	Memory Subsystem Controller Product ID: Unknown
	Non-Volatile Size: None
	Volatile Size: 4 GB
	Cache Size: None
	Logical Size: None

Handle 0x0007, DMI type 19, 31 bytes
Memory Array Mapped Address
	Starting Address: 0x0000000040000000k
	Ending Address: 0x00000000C0000000k
	Range Size: 2 GB
	Physical Array Handle: 0x0005
	Partition Width: 0

Handle 0xFEFF, DMI type 127, 4 bytes
End Of Table

I'm attaching a full sosreport, for future reference.

Comment 18 Carlos Santos 2023-02-28 17:59:17 UTC
Created attachment 1947011 [details]
sosreport generated after installing RHEL 9.1 on a Parallels VM

Comment 19 Steve Barcomb 2023-03-03 15:03:22 UTC
The Gnome desktop environment on aarch64 remains in tech preview status for RHEL8.2+ and RHEL9.0+.  Only a subset of applications are intended to work as defined in our documentation here https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/technology_previews#technology-preview_desktop .  Red Hat will evaluate more feature support for the 64 bit arm architecture on a system by system basis over time.