Bug 793400

Summary: Tumbleweed: mkinitrd cannot find pango modules (on Kernel 3.6.9-14-desktop)
Product: [openSUSE] openSUSE Tumbleweed Reporter: Forgotten User zGf8Rc5x5T <forgotten_zGf8Rc5x5T>
Component: BasesystemAssignee: Forgotten User sM9JzehKpy <forgotten_sM9JzehKpy>
Status: RESOLVED UPSTREAM QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None CC: forgotten_-DF15rMidN, pietrodebian, purevw
Version: 13.1 Milestone 0   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 12.2   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: mkinitrd output
Screen shot of pango error

Description Forgotten User zGf8Rc5x5T 2012-12-07 14:12:01 UTC
Created attachment 516193 [details]
mkinitrd output

User-Agent:       Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/25.0.1352.0 Safari/537.21 SUSE/25.0.1352.0

After updating openSUSE Tumbleweed x86_64 to Kernel 3.6.9-14-desktop, the plymouth boot screen does not show any font or letters, but rather just boxes.

Subsequently, mkinitrd fails to find and include the pango module, which seems to explain the problem. This is the error message (full mkinitrd output is also attached):

install: cannot stat ‘/etc/pango/pango64.modules’: No such file or directory

sh-4.2$ ls -la /etc/pango/
total 28
drwxr-xr-x   2 root root  4096 Dec  7 14:04 .
drwxr-xr-x 158 root root 12288 Dec  7 14:05 ..
-rw-r--r--   1 root root 11446 Dec  3 21:01 pangox.aliases

sh-4.2$ ls -la /usr/lib64/pango
total 104
drwxr-xr-x   3 root root  4096 Jul 16 16:40 .
drwxr-xr-x 178 root root 94208 Dec  7 13:18 ..
drwxr-xr-x   3 root root  4096 Jul 16 16:40 1.6.0

The question is: where lies the problem? mkinitrd or pango?

Reproducible: Always

Steps to Reproduce:
1. run mkinitrd
2. observe messages
Actual Results:  
/usr/lib64/pango/1.8.0/modules/pango-basic-fc.so cannot be found

Expected Results:  
mkinitrd can find all necessary pango modules, includes them and plymouth shows fonts upon boot, like expected.

There is a forum post which points out the same problem: http://forums.opensuse.org/english/get-technical-help-here/install-boot-login/481209-kernel-3-6-9-14-default-broke-either-plymouth-mkinitrd-pango.html

rpm output:

sh-4.2$ rpm -q libpango-1_0-0 pango-devel pango-tools typelib-1_0-Pango-1_0
libpango-1_0-0-1.32.2-2.2.x86_64
pango-devel-1.32.2-2.2.x86_64
pango-tools-1.32.2-2.2.x86_64
typelib-1_0-Pango-1_0-1.32.2-2.2.x86_64
Comment 1 Forgotten User zGf8Rc5x5T 2012-12-07 14:14:54 UTC
"Actual Results:  
/usr/lib64/pango/1.8.0/modules/pango-basic-fc.so cannot be found"

This is still a remnant from before reinstalling pango. This now obviously just fails to find the module described in the mkinitrd. I wonder, however, if this points towards the problem, i.e. that mkinitrd expects pango modules version 1.8.0, whereas pango only supplies version 1.6.0.
Comment 2 Forgotten User -DF15rMidN 2012-12-07 23:47:49 UTC
# pango-querymodules-64 > /etc/pango/pango64.modules
#mkinitrd

Kernel image: /boot/vmlinuz-3.6.9-14-desktop
Initrd image: /boot/initrd-3.6.9-14-desktop
KMS drivers: i915
Root device: /dev/system/root (mounted on / as ext4)
Resume device: /dev/system/swap
enabling LUKS support for /dev/disk/by-id/ata-HITACHI_HTS725050A7E630_TF1501Y9GE2YMF-part2 (cr_ata-HITACHI_HTS725050A7E630_TF1501Y9GE2YMF-part2)
Kernel Modules: thermal_sys thermal processor fan dm-mod dm-snapshot dm-crypt scsi_dh scsi_dh_rdac scsi_dh_hp_sw scsi_dh_alua scsi_dh_emc video button i2c-algo-bit drm drm_kms_helper i915 xhci-hcd hid-logitech-dj linear arc4 sha256_generic cryptd aes-x86_64 ablk_helper aesni-intel ghash-clmulni-intel crc32c-intel
Features: acpi dm kms plymouth block usb lvm2 luks resume.userspace resume.kernel



Source: http://web.archiveorange.com/archive...YBJcEoCYHDyIFz
Comment 3 Forgotten User zGf8Rc5x5T 2012-12-09 15:14:22 UTC
(In reply to comment #2)
> # pango-querymodules-64 > /etc/pango/pango64.modules
> #mkinitrd

mkinitrd runs without trouble afterwards, however, plymouth still doesn't show fonts (upon unlocking lvm/LUKS). However, I can't seem to find relevant error messages in either dmesg, /var/log/boot* etc.

sh-4.2$ ls -la /etc/pango/
total 32
drwxr-xr-x   2 root root  4096 Dec  9 01:45 .
drwxr-xr-x 158 root root 12288 Dec  9 14:49 ..
-rw-r--r--   1 root root  1533 Dec  9 01:45 pango64.modules
-rw-r--r--   1 root root 11446 Jul 16 16:40 pangox.aliases

sh-4.2$ ls -la /usr/lib64/pango/*
/usr/lib64/pango/1.6.0:
total 12
drwxr-xr-x 2 root root 4096 Dec  8 02:15 .
drwxr-xr-x 4 root root 4096 Dec  8 02:15 ..
-rw-r--r-- 1 root root 3512 Dec  7 15:39 modules.cache

/usr/lib64/pango/1.8.0:
total 16
drwxr-xr-x 3 root root 4096 Dec  8 02:15 .
drwxr-xr-x 4 root root 4096 Dec  8 02:15 ..
drwxr-xr-x 2 root root 4096 Dec  8 02:15 modules
-rw-r--r-- 1 root root 1532 Dec  8 02:15 modules.cache
Comment 4 Pietro Tomei 2012-12-10 13:24:16 UTC
please fix this bug pango-querymodules-64 > /etc/pango/pango64.modules
Comment 5 Pietro Tomei 2012-12-10 13:31:38 UTC
please not send you to tumbleweed packages with bugs! i want tumbleweed very stable and usability without ridiculus bugs how this.Thanks for listen me
Comment 6 Pietro Tomei 2012-12-10 13:32:41 UTC
before send to tumbleweed the packages news from factory you test well the packages and control if have bug please!
Comment 7 Ronnie Bailey 2012-12-17 16:08:35 UTC
I can verify that I have the same problem. The cryptsetup prompt is in "squareeze" as I have heard it called. The plymouth graphics work perfectly. Only text rendering is affected. My particular machine wants me to run pango-query-modules, rather than the 64 bit version of the command for some reason. My architecture is 64 bit. I noticed that the most recent plymouth patch mentions something about fixing an architecture problem in it's descrition. Is it possible that this "fix" broke other packages?

This problem does not manifest on my laptop, which is locked with Kernel 3.4.* because newer kernels seem to break the performance of the Radeon X700 graphics card in that machine. Apparently this problem is limited to the newer kernels? I run kernel-default if it would make any difference. 

I would add that I find the last comments less than helpful in a bug reporting forum. Tumbleweed is "considered" stable, but "bug free" software does not exist, as there is no possible way for developers to test every possible hardware / software combinations before release. It is also impossible for them to control how many possibly incompatible repository combinations people have on their machines. 

Also, I would consider this as a minor bug rather than major, as it is fairly obvious to the computer owner what the black text box on the plymouth screen is there for. 

I very much appreciate everyone's patience and hard work.
Comment 8 Michal Marek 2012-12-17 16:33:20 UTC
Please do not reassign randomly. This is a bug in either the plymouth mkinitrd scripts or in pango, not in mkinitrd itself.
Comment 9 Forgotten User sM9JzehKpy 2012-12-17 18:49:55 UTC
With the original openSUSE 12.2, we had the pango installation in /usr/lib64/pango/1.6.0, but the pango update in Tumbleweed broke this. A fix for plymouth was already submitted to Factory about 1 month ago. 

I will create a request to Tumbleweed with the proper update on the 12.2 package in order to generate issues with the /usr move that is further in Factory than in Tumbleweed.
Comment 10 Forgotten User sM9JzehKpy 2012-12-17 19:07:35 UTC
I have just created SR#145690 to openSUSE:Tumbleweed with an updated plymouth package which would resolve this issue with pango
Comment 11 Bernhard Wiedemann 2012-12-17 20:00:09 UTC
This is an autogenerated message for OBS integration:
This bug (793400) was mentioned in
https://build.opensuse.org/request/show/145690 Tumbleweed / plymouth
Comment 12 Ronnie Bailey 2012-12-18 06:12:45 UTC
I installed what I think are the packages you mentioned. They were listed under Tumbleweed "show unstable". Here is the description from Yast:

[QUOTE]
- fix path to systemd-tty-ask-password-agent for newer systemd
- create the pid file again during boot, the existence of this is
  a condition for systemd-ask-password-plymouth.service. A proper
  fix might look different but that get's it going again.
[/QUOTE]

Everything installed without error, but still no text in Plymouth. 

My case may be unusual because the error I get is that Pango is looking for pango.modules rather than pango64.modules   I'll attach a screen shot if I'm able. 

All my packages, including the recently downloaded git packages are 64 bit. 
I can verify that /etc/pango/pango64.modules exists in both the root filesystem (which pango can't access because the luks partition hasn't been unlocked when plymouth starts), and also inside the initrd. 

Does anyone know of a reason why pango would require 32 bit files on a 64 bit system? Everything worked until about a week ago, after an update. 

Here is my setup-plymouth.sh file:
[code]
#!/bin/bash
#
#%stage: setup
#%depends: start

# We don't need to copy the binaries since boot-plymouth.sh does that for us

[ -z "$tmp_mnt" ] && exit 1

THEME=$(plymouth-set-default-theme)

PLUGIN_PATH=$(plymouth --get-splash-plugin-path)

MODULE=$(grep "ModuleName *= *" /usr/share/plymouth/themes/${THEME}/${THEME}.plymouth | sed 's/ModuleName *= *//')

if [ ! -f "$PLUGIN_PATH/${MODULE}.so" ]; then
	echo "The default plymouth plugin ($MODULE) doesn't exist." > /dev/stderr
	exit 1
fi

FILES="/usr/share/plymouth/themes/text/text.plymouth \
	/usr/share/plymouth/themes/details/details.plymouth \
	/usr/share/plymouth/plymouthd.defaults \
	/usr/share/plymouth/themes/${THEME}/* \
	/etc/plymouth/plymouthd.conf \
       /usr/share/fonts/uni/unifont.pcf.gz /etc/os-release \
       /etc/fonts/fonts.conf \
       /etc/fonts/conf.d/69-unifont.conf \
       /etc/fonts/conf.avail/69-unifont.conf "

PLUGINS="${PLUGIN_PATH}/details.so \
	${PLUGIN_PATH}/text.so \
	${PLUGIN_PATH}/label.so \
	${PLUGIN_PATH}/${MODULE}.so \
	${PLUGIN_PATH}/renderers/drm.so \
	${PLUGIN_PATH}/renderers/frame-buffer.so"

for file in $FILES; do
	install -D $file $tmp_mnt/$file
done

for plugin in $PLUGINS; do
	mkdir -p $tmp_mnt/$(dirname $plugin)
	cp_bin $plugin $tmp_mnt/$plugin
done

_libdir=`rpm --eval '%{_lib}'`
if [ "$_libdir" == "lib64" ];
  then
     _pangodir=`pango-querymodules-64 | grep ModulesPath | awk '{print $4}'`
     _pangomod="/etc/pango/pango64.modules"
     pangobasicfc="${_pangodir}/pango-basic-fc.so"
  else
     _pangodir=`pango-querymodules | grep ModulesPath | awk '{print $4}'`
     _pangomod="/etc/pango/pango.modules"
     pangobasicfc="${_pangodir}/pango-basic-fc.so"
fi
install -D ${_pangomod} $tmp_mnt/${_pangomod}
install -D ${pangobasicfc} $tmp_mnt/${pangobasicfc}
mkdir -p $tmp_mnt/var/cache/fontconfig
[/code]
and my boot-plymouth.sh file:
[code]
#!/bin/bash
#%stage: boot
#%depends: start udev kms
#%programs: /usr/bin/plymouth /usr/sbin/plymouthd

enable_plymouth=1
for o in $(cat /proc/cmdline) ; do
  case "$o" in
	shell*|plymouth.enable=0*|rd.plymouth=0*)
		enable_plymouth=0
		break
		;;
  esac
done
if [ "$enable_plymouth" = "1" ]; then
  mkdir --mode 755 /run/plymouth

  /usr/sbin/plymouthd --attach-to-session --pid-file /run/plymouth/pid

  plymouth show-splash
fi
[/code]
Comment 13 Ronnie Bailey 2012-12-18 06:14:59 UTC
Created attachment 517438 [details]
Screen shot of pango error

When plymouth started and there was still no text displayed, I hit "Esc" and took this photo of my screen.
Comment 14 Forgotten User sM9JzehKpy 2012-12-18 09:25:34 UTC
Reopened
Comment 15 Forgotten User sM9JzehKpy 2012-12-18 09:26:52 UTC
@Ronnie,

The script shown in Comment #12 is not the standard setup-plymouth.sh script that is supplied with the package. Did you change it before or after you got the error ?
Comment 16 Ronnie Bailey 2012-12-18 14:27:36 UTC
I haven't changed it, neither before nor after. I simply copied and pasted it into the post from /lib/mkinitrd/scripts. 
Is it possible that an update failed to modify or replace it? 

I checked my installation and found that for whatever reason, plymouth-scripts was not updated to your git version. Perhaps the dependencies didn't specifically require the git package?

I installed the git package of plymouth-scripts, and the differences that I see are:

/etc/fonts/conf.avail/69-unifont.conf " is removed

 then
     _pangodir=`pango-querymodules-64 | grep ModulesPath | awk '{print $4}'`
     _pangomod="/etc/pango/pango64.modules"
     pangobasicfc="${_pangodir}/pango-basic-fc.so"
  else
     _pangodir=`pango-querymodules | grep ModulesPath | awk '{print $4}'`
     _pangomod="/etc/pango/pango.modules"
     pangobasicfc="${_pangodir}/pango-basic-fc.so"

is changed to:

then
     _pangodir=`pango-querymodules-64 | grep ModulesPath | awk '{print $4}'`
     pango-querymodules-64 > $tmp_mnt/etc/pango/pango.modules
     pangobasicfc="${_pangodir}/pango-basic-fc.so"
  else
     _pangodir=`pango-querymodules | grep ModulesPath | awk '{print $4}'`
     pango-querymodules > $tmp_mnt/etc/pango/pango.modules
     pangobasicfc="${_pangodir}/pango-basic-fc.so"

install -D ${_pangomod} $tmp_mnt/${_pangomod}  is added

I'll run mkinitrd and try it. If you see any more errors, please point them out and I'll try to rectify the problem.
Comment 17 Forgotten User sM9JzehKpy 2012-12-18 14:45:33 UTC
Hi Ronnie,

Please let me know if this resolved your issue. I will validate the dependency on the right package in the meantime before I will request the update for Tumbleweed.

Thanks
Comment 18 Ronnie Bailey 2012-12-18 14:57:21 UTC
Yes, problem solved. Apparently there was just a mix-up of packages. Thanks for the help. I'll mark it as resolved / upstream. If that is not correct, please make the necessary corrections. Thanks again.
Comment 19 Bernhard Wiedemann 2012-12-18 16:00:07 UTC
This is an autogenerated message for OBS integration:
This bug (793400) was mentioned in
https://build.opensuse.org/request/show/145764 Factory / plymouth