Skip to Content.
Sympa Menu

sm-discuss - Re: [SM-Discuss] X.Org 7.6

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: Ladislav Hagara <ladislav.hagara AT unob.cz>
  • To: sm-discuss AT lists.ibiblio.org
  • Subject: Re: [SM-Discuss] X.Org 7.6
  • Date: Tue, 11 Jan 2011 02:56:58 +0100

>>> Added UP_TRIGGERS at commit 6c41be7c17699747644fb272bbee869883807e2f
>>
>>
>> This doesn't work. :-(
>> Dependencies are missing. This re-casts only several basic spells, we
>> need much more.
>>
>> Now I'm playing with this UP_TRIGGERS
>>
>> ---
>> for libX in $(ls /usr/lib/libX*.so \
>> /usr/lib/lib*-x11-*.so \
>> /usr/lib/lib*xcb*.so \
>> /usr/lib/lib*evas*.so \
>> /usr/lib/lib*pango*.so); do
>> if readelf -d 2> /dev/null $libX \
>> | grep -q -P 'NEEDED\)\s*Shared library: \[libpthread-stubs.so.0';
>> then
>> up_trigger $(gaze from $libX | cut -f 1 -d-) cast_self
>> fi
>> done
>> ---
>>
>> It is much better but still problem with other libs or even binary
>> files. Now I will try to check all libs*.so and binary, similar as in
>> libpng's UP_TRIGGERS.
>>
>
>
> I have been playing with this UP_TRIGGERS:
>
> if spell_ok $SPELL; then
> local OLD_SPELL_VERSION="$(installed_version $SPELL)"
> if [[ "${VERSION}" != "${OLD_SPELL_VERSION}" ]]; then
> message "This is an ABI incompatible update of libpthread-stubs..."
> message "Determining which spells need to be recast, this may take a
> while."
>
> for other_spell in $(gaze installed | cut -d: -f1); do
> if gaze install $other_spell \
> | xargs file -e apptype -e ascii -e compress -e tar \
> | grep '\<ELF\>.*\<dynamically linked\>' \
> | cut -d: -f1 \
> | xargs readelf -d 2> /dev/null \
> | grep -q -P 'NEEDED\)\s*Shared library:
> \[libpthread-stubs.so.0'; then
> up_trigger $other_spell cast_self
> fi
> done
> fi
> fi
>
>
> It is great that it finds all broken spells. Problem is with sequence
> order in generated sorcery queue. Most of spells fails or is postponed
> because some important library is located somewhere on the end of that
> queue.
>
>
> I think that another problem is with *.la files in /usr/lib. On my box
> there is over 700 .la files in /usr/lib and subdirectories contained
> /usr/lib/libpthread-stubs.la. The errors during cast looks like:
>
> /usr/bin/grep: /usr/lib/libpthread-stubs.la: No such file or directory
> /bin/sed: can't read /usr/lib/libpthread-stubs.la: No such file or directory
> libtool: link: `/usr/lib/libpthread-stubs.la' is not a valid libtool archive
> make[3]: *** [libelementary.la] Error 1
>
> Of course, if spell is successfully recasted then its .la files are fixed.


Any idea how to fix this?
Imho, we can integrate all changes (instead of libphread-stubs) into
test grimoire to prevent users to update spells in test grimoire. All
spells works with both libphread-stubs versions, 0.2 and 0.3.

--
Ladislav Hagara






Archive powered by MHonArc 2.6.24.

Top of Page