pkg 1.4 error searching shared lib

Matthew Seaman m.seaman at infracaninophile.co.uk
Tue Jan 13 16:02:32 UTC 2015


On 01/13/15 15:14, Eduardo Morras wrote:
> Hi, trying to know why amule doesn't run (crash on start)
> 
> #pkg -v
> 1.4.4
> #pkg check -B
> Checking all packages:   1%
> pkg: (amule-2.3.1_12) /usr/local/bin/amule - required shared library libcryptopp.so not found
> pkg: (amule-2.3.1_12) /usr/local/bin/amuled - required shared library libcryptopp.so not found
> pkg: (amule-2.3.1_12) /usr/local/bin/amulegui - required shared library libcryptopp.so not found
> pkg: (amule-2.3.1_12) /usr/local/bin/mulefileview - required shared library libcryptopp.so not found
> 
> It's because libcryptopp.so isn't installed, but querying which package installs it, I get:
> 
> #pkg shlib -P libcryptopp.so
> pkg: sqlite error while executing SELECT p.id, p.origin, p.name, p.name p.origin as uniqueid, p.version, p.comment, p.desc, p.message, p.arch, p.maintainer, p.www, p.prefix, p.flatsize, p.time FROM packages AS p, pkg_shlibs_provided AS ps, shlibs AS s WHERE p.id = ps.package_id AND ps.shlib_id = s.id AND s.name = ?1; in file pkgdb_query.c:244: near ".": syntax error
> 
> # pkg shlib -P libcryptopp
> pkg: sqlite error while executing SELECT p.id, p.origin, p.name, p.name p.origin as uniqueid, p.version, p.comment, p.desc, p.message, p.arch, p.maintainer, p.www, p.prefix, p.flatsize, p.time FROM packages AS p, pkg_shlibs_provided AS ps, shlibs AS s WHERE p.id = ps.package_id AND ps.shlib_id = s.id AND s.name = ?1; in file pkgdb_query.c:244: near ".": syntax error

This is a bug in pkg-1.4.4 -- is already fixed and will be in the next
pkg release.

> I don't see anything wrong on the select and the ?1 is the expression that sqlite3_bind_text() call replace with the filename.

This bit is incorrect SQL 'p.name p.origin as uniqueid,' -- that's due
to a mismerge of the code switching from origin to name as the unique
identifier for packages.

> Any clue? Am I doing something wrong?

Apart from running into a bug: well, using 'pkg shlib -P' to try and
find out which package *out of all the packages you have installed* when
that library doesn't exist on your machine probably isn't going to help.
 You're probably better off using 'pkg rquery' to dig out what package
provides that shared library out of all the packages on the repo.

	Cheers,

	Matthew


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 949 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20150113/c1bc5d25/attachment.sig>


More information about the freebsd-questions mailing list