Check Dependencies with right-click-action

Miscellaneous tools
Message
Author
User avatar
don570
Posts: 5528
Joined: Wed 10 Mar 2010, 19:58
Location: Ontario

#21 Post by don570 »

I was testing it today and decided to try it on Carolina distro


This is simple (but tricky) to do. Extract the pet and you will see
that /root now has two folders rather than one.

It's the second folder that puts an entry to the 'SendTo' item.

Image

_______________________________________________
Attachments
RSHsDepCheck-0.8.pet
Thunar compatible
(5.28 KiB) Downloaded 539 times

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#22 Post by sunburnt »

RSH; One other thing you may want to include...

To capture the "wrong library version" errors with: ldd -v

I stumbled upon this in 528-005 PolarPup.
It`s app. gparted doesn`t work as it has a wrong version of libstdc++

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#23 Post by RSH »

sunburnt wrote:RSH; One other thing you may want to include...

To capture the "wrong library version" errors with: ldd -v

I stumbled upon this in 528-005 PolarPup.
It`s app. gparted doesn`t work as it has a wrong version of libstdc++
Hi sunburnt.

Please send me a wrong lib, or better, a (the) text message which returns from ldd on a wrong lib.

Will give it a try, but need to see some Info/Data. :)
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#24 Post by RSH »

I've had a look again into the script and found option -v is already used.

Code: Select all

# get full info from ldd
exec ldd -v "$CHKDPAPPNAME" >> "$INFFILE" &
So, if I would know, what kind of message (text) returns on a wrong library, I could collect these messages to present on top of the list as well like the missing ones.

Just waiting for the Info... :)
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#25 Post by sunburnt »

Hi RHS; This is from Puppy528-005 PolarPup in which gparted doesn`t work.
The error is easy to filter, as I`ve done in AppPkg builder`s "List Libs. script".

Code: Select all

sh-4.1# ldd -v /mnt/sda3/AppPkg/build/gparted_0.11.0-2_i386.AppPkg_NotFinished/.AppPkg/gparted_0.11.0-2_i386.app/usr/sbin/gpartedbin
/mnt/sda3/AppPkg/build/gparted_0.11.0-2_i386.AppPkg_NotFinished/.AppPkg/gparted_0.11.0-2_i386.app/usr/sbin/gpartedbin:
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found
(required by /mnt/sda3/AppPkg/build/gparted_0.11.0-2_i386.AppPkg_NotFinished/.AppPkg/gparted_0.11.0-2_i386.app/usr/sbin/gpartedbin)

### Next is the the "normal" lib. deps. list.

### And then a long list of all lib`s. versions.
### A shortened example below:
### You can see: libstdc++.so.6 (GLIBCXX_3.4.15) => not found

	Version information:
	/mnt/sda3/AppPkg/build/gparted_0.11.0-2_i386.AppPkg_NotFinished/.AppPkg/gparted_0.11.0-2_i386.app/usr/sbin/gpartedbin:
		libgcc_s.so.1 (GCC_3.0) => /lib/libgcc_s.so.1
		libgcc_s.so.1 (GLIBC_2.0) => /lib/libgcc_s.so.1
		libpthread.so.0 (GLIBC_2.1) => /lib/libpthread.so.0
		libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
		libstdc++.so.6 (GLIBCXX_3.4.11) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4.15) => not found
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/libstdc++.so.6
	/lib/libparted.so.0:
		libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
		libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
		libdevmapper.so.1.02.1 (Base) => /lib/libdevmapper.so.1.02.1
Last edited by sunburnt on Sat 15 Dec 2012, 07:03, edited 1 time in total.

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#26 Post by RSH »

Hi sunburnt.

As I see, the "not found" in /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found is the hint, right?

Inside RSHsDepCheck the "ldd" command is used four times:

1. --version
2. --help
3. -v
4. -u

Code: Select all

# get full info from ldd
exec ldd -v "$CHKDPAPPNAME" >> "$INFFILE" &

sleep 2
echo "${chkundepsttl}" >> "$INFFILE" &

# get unused deps from/of ldd
exec ldd -u "$CHKDPAPPNAME" >> "$INFFILE" &
Text "not found" is 'grep'-ed to put these lines on top of the list.

Code: Select all

fpath="$INFFILE"
echo  "" >> "$TEMPFILE2"
while read list; do
	echo  "$list" > /tmp/ldd_format_tmp
	if (grep "not found" /tmp/ldd_format_tmp) then
		echo  "$list" >> "$TEMPFILE2"
	fi
done < $fpath
So, I'm not sure what else to do!?

RSH
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#27 Post by sunburnt »

I only used ldd -v , and only used it once.
This code gives all missing libs. and also all wrong versions of libs.

Code: Select all

MissLibs=`ldd -v $Lib |grep 'not found' |sed 's/^..//'`
echo "$MissLibs"
The "echo" outputs:

Code: Select all

libstdc++.so.6 (GLIBCXX_3.4.15) => not found
If a returned line has like "(GLIBCXX_3.4.15)", then it`s a wrong lib.
The part: (GLIBC is the clue to it being a bad lib. instead of a missing one.
Last edited by sunburnt on Sat 15 Dec 2012, 07:40, edited 1 time in total.

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#28 Post by RSH »

I do (did) use all these options, because I'd wanted to see every Information available by "ldd" - because as I start to wrote this program I did not know "ldd". So, I had to be informed in a full way somehow. :lol:

It (ldd) was totally new to me.

Also because of this I did choose to "echo" some manually created comments for my use (just to give me as the 'newbie' on "ldd" a better overview - these sometimes huge lists has been shocking to me as I'd saw them in the beginning.

That's all why it is like it is. :lol:

But, does that mean, there's nothing more to do on this by myself?

This would be nice... :)
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#29 Post by sunburnt »

I`m not sure what you mean...

Do you have it parsing the bad lib. versions as well as the missing ones?

My script lists first the wrong versions, then the missing ones, then good ones.
Like:

Code: Select all

Lib. file name:

### Bad version Libs.:

### Missing Libs.:

### Good Libs.:

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#30 Post by RSH »

Hi.

This is the content of the output of 'RSHsDepCheck-0.7'. Used on abiword, the 'libabiword-2.8.so has been manually removed at first.
libabiword-2.8.so => not found


-------------------------------------------------------------------------------
### ! ! ! Check Dependencies ! ! ! ###
### A Right-Click Dependencies Checker Tool by RSH for Puppy Linux - GPL2 ###
-------------------------------------------------------------------------------

Check Dependencies of: abiword


-------------------------------------------------------------------------------
### Version ###
-------------------------------------------------------------------------------

ldd (Ubuntu EGLIBC 2.11.1-0ubuntu7) 2.11.1
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.


-------------------------------------------------------------------------------
### Help ###
-------------------------------------------------------------------------------

Usage: ldd [OPTION]... FILE...
--help print this help and exit
--version print version information and exit
-d, --data-relocs process data relocations
-r, --function-relocs process data and function relocations
-u, --unused print unused direct dependencies
-v, --verbose print all information
For bug reporting instructions, please see:
<http://www.debian.org/Bugs/>.


-------------------------------------------------------------------------------
### Full Information ###
-------------------------------------------------------------------------------

Information to Application: abiword

linux-gate.so.1 => (0xffffe000)
libabiword-2.8.so => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb775b000)
libc.so.6 => /lib/libc.so.6 (0xb7601000)
libm.so.6 => /lib/libm.so.6 (0xb75db000)
/lib/ld-linux.so.2 (0xb7862000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb75bc000)

Version information:
/root/puppy-reference/usr-bin/abiword:
libstdc++.so.6 (CXXABI_1.3) => /usr/lib/libstdc++.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
/usr/lib/libstdc++.so.6:
libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
libgcc_s.so.1 (GCC_4.2.0) => /lib/libgcc_s.so.1
libgcc_s.so.1 (GLIBC_2.0) => /lib/libgcc_s.so.1
libgcc_s.so.1 (GCC_3.3) => /lib/libgcc_s.so.1
libgcc_s.so.1 (GCC_3.0) => /lib/libgcc_s.so.1
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
/lib/libc.so.6:
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
/lib/libm.so.6:
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
/lib/libgcc_s.so.1:
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6


-------------------------------------------------------------------------------
### Dependencies ###
-------------------------------------------------------------------------------

Unused direct dependencies:

libabiword-2.8.so
/usr/lib/libstdc++.so.6


-------------------------------------------------------------------------------
### ! ! ! End of Information ! ! ! ###
-------------------------------------------------------------------------------
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#31 Post by sunburnt »

I see, but isn`t only the missing and wrong version info. useful?

I`d think the missing and then the bad libs. would be separated out.
After all they are the libs. that need attention.

A complete list isn`t that useful unless you`re trying to make dep. files.
This is what I want to do to get statistics on lib. usage.
So I`m downloading a ton of popular app. exec. packages.
Then I`ll write a script that makes dep. lists from all exec. in a dir.
Statistics from the dep. files will show lib. common usage ( or not ).
Common libs. go in a Squash file, uncommon ones in the app. packages.
This will be the most efficient for drive space use and app. portability.
The common lib. Squash file will be a compatibility match for the apps.

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#32 Post by RSH »

I see, but isn`t only the missing and wrong version info. useful?

I`d think the missing and then the bad libs. would be separated out.
After all they are the libs. that need attention.

A complete list isn`t that useful unless you`re trying to make dep. files.
Yes, this might be surely more useful.

But as I wrote: I did not have any knowledge about "ldd" as I wrote this. So, it is as is.

Everyone is free to grab this application and to refine it.

I won't do any further work on this application.

RSH
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
don570
Posts: 5528
Joined: Wed 10 Mar 2010, 19:58
Location: Ontario

#33 Post by don570 »

To RSH...

When you use Zigbert's method to make locales, the best way is
to name the locales like in the image. Zigbert made an improvement
in the code so that only the first two characters decide the language
for instance de:german designates all German countries like Switzerland.

If you name the file de_CH:german then only the Swiss will get the benefits.


Image

_______________________________________
Attachments
RSHsDepCheck-0.9.pet
better German naming of locales
(5.27 KiB) Downloaded 441 times

Post Reply