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: Thu, 23 Dec 2010 16:19:36 +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.

--
Ladislav Hagara






Archive powered by MHonArc 2.6.24.

Top of Page