Patchwork pango modules postinst issue

login
register
mail settings
Submitter Andreas Müller
Date Aug. 20, 2012, 3:47 p.m.
Message ID <CALbNGRQXm6ak1jwU7V7FCNKwO5e0UwXc8NpijbWDNGLQoTnm5w@mail.gmail.com>
Download mbox | patch
Permalink /patch/34953/
State New
Headers show

Comments

Andreas Müller - Aug. 20, 2012, 3:47 p.m.
On Mon, Aug 20, 2012 at 4:20 PM, Andreas Müller
<schnitzeltony@googlemail.com> wrote:
> On Tue, Jul 31, 2012 at 5:01 PM, Andreas Müller
> <schnitzeltony@googlemail.com> wrote:
>> Hi,
>>
>> sorry fur disturbing again - but:
>>
>> When starting X on a maiden image I receive:
>>
>> No builtin or dynamically loaded modules were found.
>> PangoFc will not work correctly.
>> This probably means there was an error in the creation of:
>>   '/etc/pango/pango.modules'
>> You should create this file by running:
>>   pango-querymodules > '/etc/pango/pango.modules'
>>
>> and have no fonts displayed. Followed the suggestion
>>
>> pango-querymodules > '/etc/pango/pango.modules'
>>
>> -> fonts are OK.
>>
>> I checked: Besides other pango modules my image contains
>> pango-module-basic-x. In the postinst of this package I see
>>
>> #!/bin/sh
>> if [ "x$D" != "x" ]; then
>>   exit 1
>> fi
>>
>> if ! [ -e $D/etc/pango ] ; then
>>         mkdir -p $D/etc/pango
>> fi
>> /usr/bin/pango-querymodules > /etc/pango/pango.modules
>>
>> This looks OK so far ( besides that I would not have the $D in second part ).
>>
>> Additionally log.do_rootfs says:
>>
>> Configuring pango-module-basic-x.
>> pango-module-basic-x.postinst returned 1, marking as unpacked only,
>> configuration required on target.
>>
>> Any idea what is happening here?
>>
> I investigated this and found oe-core commit
> ffe93e2a099e4cadb1829dc12a58a6d7bef9a5a7 for opkg-collateral. Besides
> changing the configuration location it changes
>
> -lists_dir ext /var/lib/ipkg
> +lists_dir ext /var/lib/opkg
>
> The patch attached for meta-angstrom fixes the pango-postinst issue
> but I am not quite sure if this is a good solution, because it
> reinvents parts of opkg-collateral. Why does angstrom replace
> opkg-collateral? Wouldn't it be a better solution to append
> opkg-collateral with angstrom feeds packages?
>
Aargh - I did two things at the same time

1. patch attached in previous mail
2.
$D${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts


Now that I reverted 2. pango is again not properly prepared after
first boot :( So it is not a matter of wrong configuration of opkg by
meta-angstrom.

Seems that writing output of 'opkg-cl configure' changes timing and
thereby working around the bug.

Suspicious: The systemd startup sequence log says:

         Starting Run pending postinsts...
[  OK  ] Mounted POSIXBluetooth: HIDP (Human Interface Emulation) ver 1.2
 Message Queue File System.
[  OK  ] Mounted Debug File System.
systemd-journald[66]: Fixed max_use=23.9M max_size=2.9M min_size=64.0K
keep_free=11.9M
systemd-udevd[64]: starting version 187
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started Load Kernel Modules.
         Mounting FUSE Control File System...
systemd-journald[66]: Reserving 5447 entries in hash table.
[  OK  ] Mounted FUSE Control File System.
systemd-journald[66]: Vacuuming...
[  OK  ] Started udev Coldplug all Devices.
EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[  OK  ] Started Remount Root and Kernel File Systems.
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /tmp...
         Starting Load Random Seed...
[  OK  ] Mounted /tmp.

and

root@overo:~# journalctl | grep tmp
Aug 20 16:59:33 overo S98run-postinsts[68]: * opkg_prep_intercepts:
Failed to make temp dir /tmp/opkg-07xOYO/opkg-intercept-wfVgAQ: No
such file or directory.
Aug 20 16:59:33 overo S98run-postinsts[68]: * rm_r: Failed to open dir
/tmp/opkg-07xOYO: No such file or directory.
Aug 20 16:59:56 overo kernel[276]: devtmpfs: initialized
Aug 20 16:59:59 overo kernel[276]: devtmpfs: mounted

So my conclusion (for now): During postinst /tmp is required (by which
package I don't know and guess it is out of interest). Unfortunately
at that time /tmp is not yet mounted causing postinst to abort and
leave packages undone:

root@overo:~# opkg info pango-module*
Package: pango-module-basic-fc
Version: 1.30.0-r0
Depends: libffi5 (>= 3.0.10), libc6 (>= 2.15), libfreetype6 (>=
2.4.9), libstdc++6 (>=
4.7.1.0+git1+d07e24f4ab59f264d68d21838795349faab5dede), libglib-2.0-0
(>= 2.32.4), pango, )
Provides:
Status: install ok *unpacked*
Architecture: armv7a-vfp-neon
Installed-Time: 1345474265

Package: pango-module-basic-x
Version: 1.30.0-r0
Depends: libx11-6 (>= 1.5.0), libxcb1 (>= 1.8.1), libffi5 (>= 3.0.10),
libc6 (>= 2.15), libglib-2.0-0 (>= 2.32.4), pango, libxau6 (>= 1.0.7),
libxdmcp6 (>= 1.1.1)
Provides:
Status: install ok *unpacked*
Architecture: armv7a-vfp-neon
Installed-Time: 1345474265

Support running postinst after /tmp is mounted is welcome...

Andreas

Patch

diff --git a/meta/recipes-devtools/opkg/opkg.inc
b/meta/recipes-devtools/opkg/opkg.inc
index 5c7cad3..168e4b1 100644
--- a/meta/recipes-devtools/opkg/opkg.inc
+++ b/meta/recipes-devtools/opkg/opkg.inc
@@ -59,7 +59,7 @@  if [ "x$D" != "x" ]; then
        install -d $D${sysconfdir}/rcS.d
        # this happens at S98 where our good 'ole packages script used to run
        echo "#!/bin/sh
-opkg-cl configure
+opkg-cl configure > /var/log/opkg-configure.log
 rm -f /${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts
 " > $D${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts
        chmod 0755