You are not logged in.
after upgrading to yajl 2.0 today every yaourt operation about package results in:
package-query: error while loading shared libraries: libyajl.so.1: cannot open shared object file: No such file or directory
is there any temporary way to workaround it without downgrading yajl to 1.x?
Last edited by felixonmars (2011-04-26 09:04:39)
PGP key: 30D7CB92
Key fingerprint: B597 1F2C 5C10 A9A0 8C60 030F 786C 63F3 30D7 CB92
Offline
Confirmed. For the easier part of it I simply downgraded yajl again.
Most likely package-query (from the AUR here) needs to be recompiled.
To know or not to know ...
... the questions remain forever.
Offline
I've encountered the same problem. I fixed it until yaourt is updated by linking /usr/lib/libyajl.so.2 to /usr/lib/libyajl.so.1.
sudo ln /usr/lib/libyajl.so.2 /usr/lib/libyajl.so.1
Offline
symlinking libraries leads to things breaking that are very difficult to diagnose. Just rebuild the package depending on yajl or downgrade temporarily.
Offline
I've encountered the same problem. I fixed it until yaourt is updated by linking /usr/lib/libyajl.so.2 to /usr/lib/libyajl.so.1.
sudo ln /usr/lib/libyajl.so.2 /usr/lib/libyajl.so.1
Not a particularly good idea. Nevertheless, doing so here results in:
/usr/lib/yaourt/util.sh: line 165: 17233 Segmentation fault package-query "${PKGQUERY_C_ARG[@]}" "$@"
rebuild the package depending on yajl
Doesn't work.
make all-recursive
make[1]: Entering directory `/home/chris/src/package-query/package-query/src/package-query-0.7'
Making all in src
make[2]: Entering directory `/home/chris/src/package-query/package-query/src/package-query-0.7/src'
gcc -DLOCALEDIR=\"/usr/share/locale\" -DCONFFILE=\"/etc/pacman.conf\" -DROOTDIR=\"/\" -DDBPATH=\"/var/lib/pacman/\" -DAUR_BASE_URL=\"http://aur.archlinux.org\" -DHAVE_CONFIG_H -I. -I.. -D_GNU_SOURCE -march=i686 -mtune=generic -O2 -pipe -MT aur.o -MD -MP -MF .deps/aur.Tpo -c -o aur.o aur.c
aur.c: In function ‘aur_json_parse’:
aur.c:427:2: error: unknown type name ‘yajl_parser_config’
aur.c:427:2: warning: excess elements in scalar initializer [enabled by default]
aur.c:427:2: warning: (near initialization for ‘cfg’) [enabled by default]
aur.c:428:2: warning: passing argument 2 of ‘yajl_alloc’ from incompatible pointer type [enabled by default]
/usr/include/yajl/yajl_parse.h:107:26: note: expected ‘struct yajl_alloc_funcs *’ but argument is of type ‘int *’
aur.c:428:2: error: too many arguments to function ‘yajl_alloc’
/usr/include/yajl/yajl_parse.h:107:26: note: declared here
aur.c:430:40: error: ‘yajl_status_insufficient_data’ undeclared (first use in this function)
aur.c:430:40: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [aur.o] Error 1
make[2]: Leaving directory `/home/chris/src/package-query/package-query/src/package-query-0.7/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/chris/src/package-query/package-query/src/package-query-0.7'
make: *** [all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
Last edited by neurolysis (2011-04-26 05:47:04)
Offline
Caution! Crosslinking libraries is strongly discouraged. Incompatibilities are likely.
To know or not to know ...
... the questions remain forever.
Offline
Sorry for the bad advice! Listen to the guy with 8k posts.
Offline
symlinking libraries leads to things breaking that are very difficult to diagnose. Just rebuild the package depending on yajl or downgrade temporarily.
I tried to rebuild it from source and failed either...
seems yajl doesn't have downward compatibility that much
gcc -DLOCALEDIR=\"/usr/share/locale\" -DCONFFILE=\"/etc/pacman.conf\" -DROOTDIR=\"/\" -DDBPATH=\"/var/lib/pacman/\" -DAUR_BASE_URL=\"http://aur.archlinux.org\" -DHAVE_CONFIG_H -I. -I.. -D_GNU_SOURCE -march=x86-64 -mtune=generic -O2 -pipe -MT aur.o -MD -MP -MF .deps/aur.Tpo -c -o aur.o aur.c
aur.c:414:5: warning: initialization from incompatible pointer type [enabled by default]
aur.c:414:5: warning: (near initialization for ‘callbacks.yajl_string’) [enabled by default]
aur.c:416:5: warning: initialization from incompatible pointer type [enabled by default]
aur.c:416:5: warning: (near initialization for ‘callbacks.yajl_map_key’) [enabled by default]
aur.c: In function ‘aur_json_parse’:
aur.c:427:2: error: unknown type name ‘yajl_parser_config’
aur.c:427:2: warning: excess elements in scalar initializer [enabled by default]
aur.c:427:2: warning: (near initialization for ‘cfg’) [enabled by default]
aur.c:428:2: warning: passing argument 2 of ‘yajl_alloc’ from incompatible pointer type [enabled by default]
/usr/include/yajl/yajl_parse.h:107:26: note: expected ‘struct yajl_alloc_funcs *’ but argument is of type ‘int *’
aur.c:428:2: error: too many arguments to function ‘yajl_alloc’
/usr/include/yajl/yajl_parse.h:107:26: note: declared here
aur.c:430:40: error: ‘yajl_status_insufficient_data’ undeclared (first use in this function)
aur.c:430:40: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [aur.o] Error 1
make[2]: Leaving directory `/home/felix/Downloads/package-query/src/package-query-0.7/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/felix/Downloads/package-query/src/package-query-0.7'
make: *** [all] Error 2
Last edited by felixonmars (2011-04-26 05:54:32)
PGP key: 30D7CB92
Key fingerprint: B597 1F2C 5C10 A9A0 8C60 030F 786C 63F3 30D7 CB92
Offline
Offline
apply this patch, then rebuild package-query.
--- src/aur.c.old 2011-03-24 07:30:34.000000000 +0800
+++ src/aur.c.new 2011-04-26 15:48:06.445557550 +0800
@@ -424,10 +424,9 @@
jsonpkg_t pkg_json = { NULL, NULL, "", 0};
yajl_handle hand;
yajl_status stat;
- yajl_parser_config cfg = { 1, 1 };
- hand = yajl_alloc(&callbacks, &cfg, NULL, (void *) &pkg_json);
+ hand = yajl_alloc(&callbacks, NULL, (void *) &pkg_json);
stat = yajl_parse(hand, (const unsigned char *) s, strlen (s));
- if (stat != yajl_status_ok && stat != yajl_status_insufficient_data)
+ if (stat != yajl_status_ok)
{
unsigned char * str = yajl_get_error(hand, 1,
(const unsigned char *) s, strlen (s));
Offline
I hope you guys fix it in the repos ASAP... great work finding the error and the fix.....
Last edited by Xi0N (2011-04-26 08:06:04)
Offline
Offline
I hope you guys fix it in the repos ASAP... great work finding the error and the fix.....
FYI yaourt and package-query are not in the repos.
Offline
Xi0N wrote:I hope you guys fix it in the repos ASAP... great work finding the error and the fix.....
FYI yaourt and package-query are not in the repos.
Yeah I think he meant the archlinuxfr repo.
And, I tried the patch above and succeeded, thank you guys!
PGP key: 30D7CB92
Key fingerprint: B597 1F2C 5C10 A9A0 8C60 030F 786C 63F3 30D7 CB92
Offline
They are in archlinux.fr repos.....
Offline
Just to be clear... archlinux.fr has nothing to do with anything official Arch Linux.
Offline
file to downgrade:
http://arm.konnichi.com/2011/04/25/comm … pkg.tar.xz
do pacman -U yajl-1.0.11-3-i686.pkg.tar.xz
and all ok!
Offline
thanks,
but for the 64bits users, what is the method ?
Offline
thanks,
but for the 64bits users, what is the method ?
I'm a 64-bit user too, and solved it using either of the two ways mentioned above: downgrade yajl to 1.x or patch package-query and re-compile it.
As for yajl 1.x package, search your /var/cache/pacman/pkg directory and you may find it there.
PGP key: 30D7CB92
Key fingerprint: B597 1F2C 5C10 A9A0 8C60 030F 786C 63F3 30D7 CB92
Offline
thanks,
but for the 64bits users, what is the method ?
http://arm.konnichi.com/2011/04/25/comm … pkg.tar.xz
pacman -U yajl-1.0.11-3-x86_64.pkg.tar.xz
zʇıɹɟʇıɹʞsuɐs AUR || Cycling in Budapest with a helmet camera || Revised log levels proposal: "FYI" "WTF" and "OMG" (John Barnette)
Offline
It's fixed now. Now yaourt require yajl >=2.0.
Offline
It's fixed now. Now yaourt require yajl >=2.0.
Huh?
I just rebuilt yaourt from AUR, resync'd yajl and it's still broken:
edit: sorry, I rebuilt package-query from AUR and now it seems fine
Last edited by markhadman (2011-04-26 16:43:09)
Offline
jteixeira wrote:It's fixed now. Now yaourt require yajl >=2.0.
Huh?
I just rebuilt yaourt from AUR, resync'd yajl and it's still broken:
edit: sorry, I rebuilt package-query from AUR and now it seems fine
+1, just rebuild from the aur package and all is fine.
Check me out on twitter!!! twitter.com/The_Ringmaster
Offline
I have the same problem.. I rebuilt yaourt and package-query from AUR bu I still get the error "problem setting dbpath '/usr/local/var/lib/pacman/' (could not find or read directory)"
Last edited by aluser (2011-04-27 22:16:40)
Offline
Thank you for the quick fix. Can confirm that it works.
For you felixonmars:
From AUR, download the tarballs for yaourt and package-query and untar them in any directory.
For one package at the time do this:
Fire up a terminal and "cd /path/to/untared/directory"
Then "makepkg"
Last (with root permissions) "pacman -U /path/to/untared/directory/package-name.pkg.tar.xz"
After upgrading the two packages yaourt should work fine again.
Offline