# problems with libgcrypt



## JakiChan (Aug 3, 2009)

```
===>   Running ldconfig
/sbin/ldconfig -m /usr/local/lib
===>   Registering installation for libgpg-error-1.7
===>   Returning to build of libgcrypt-1.4.4
Error: shared library "gpg-error.0" does not exist
*** Error code 1

Stop in /usr/ports/security/libgcrypt.
```

So it looks like libgpg-error gets installed:


```
foo# ls -l | grep -i gpg
-rw-r--r--   1 root  wheel     16754 Aug  3 20:43 libgpg-error.a
-rwxr-xr-x   1 root  wheel       908 Aug  3 20:43 libgpg-error.la
lrwxr-xr-x   1 root  wheel        17 Aug  3 20:43 libgpg-error.so -> libgpg-error.so.5
-rwxr-xr-x   1 root  wheel     16786 Aug  3 20:43 libgpg-error.so.5
```

but libgcrypt is still unhappy.  Any hints?


----------



## DutchDaemon (Aug 3, 2009)

You should have (among others) /usr/local/lib/libgpg-error.so.0. See /usr/ports/security/libgpg-error/pkg-plist (prepend /usr/local/ to paths in there).

My installation:


```
$ ls -al *gpg*
-rw-r--r--  1 root  wheel  13222 Jul 27 23:27 libgpg-error.a
-rwxr-xr-x  1 root  wheel    908 Jul 27 23:27 libgpg-error.la
lrwxr-xr-x  1 root  wheel     17 Jul 27 23:27 libgpg-error.so -> libgpg-error.so.0
-rwxr-xr-x  1 root  wheel  14266 Jul 27 23:27 libgpg-error.so.0
```

Don't know how you got libgpg-error.so.5 in there. See if [cmd=]pkg_info -W /usr/local/lib/libgpg-error.so.5[/cmd] tells you which port is responsible for it.


----------



## JakiChan (Aug 3, 2009)

DutchDaemon said:
			
		

> You should have (among others) /usr/local/lib/libgpg-error.so.0. See /usr/ports/security/libgpg-error/pkg-plist (prepend /usr/local/ to paths in there).



Yeah, that's there:


```
foo# cat pkg-plist 
@comment $FreeBSD: ports/security/libgpg-error/pkg-plist,v 1.8 2008/03/03 12:13:46 novel Exp $
bin/gpg-error
bin/gpg-error-config
include/gpg-error.h
lib/libgpg-error.a
lib/libgpg-error.la
lib/libgpg-error.so
lib/libgpg-error.so.0
```

But it clearly didn't get installed when I did [cmd=]make install[/cmd].  

My installation:



			
				DutchDaemon said:
			
		

> Don't know how you got libgpg-error.so.5 in there. See if [cmd=]pkg_info -W /usr/local/lib/libgpg-error.so.5[/cmd] tells you which port is responsible for it.



Unfortunately, pkg_info returned nothing.


----------



## DutchDaemon (Aug 3, 2009)

I don't really understand how the port install process can come up with "Registering installation for libgpg-error-1.7" when it failed to install properly. Is [cmd=]pkg_info | grep libgpg-error-1.7[/cmd] actually telling you that it is installed?


----------



## JakiChan (Aug 3, 2009)

DutchDaemon said:
			
		

> I don't really understand how the port install process can come up with "Registering installation for libgpg-error-1.7" when it failed to install properly. Is [cmd=]pkg_info | grep libgpg-error-1.7[/cmd] actually telling you that it is installed?



Yep. 


```
beacon# pkg_info | grep libgpg-error-1.7
libgpg-error-1.7    Common error values for all GnuPG components
```

I've tried de-installing, make clean, make, make install a few times.  Still doesn't seem to work.

Now I *did*, before trying to do this, did a [cmd=]sudo portsnap fetch update[/cmd].


----------



## DutchDaemon (Aug 3, 2009)

Can you backup and move that libgpg-error.so.5, remove the symlink to it, and reinstall the port?


----------



## JakiChan (Aug 3, 2009)

DutchDaemon said:
			
		

> Can you backup and move that libgpg-error.so.5, remove the symlink to it, and reinstall the port?



I tried that.  Didn't help.  I still end up with:


```
beacon# ls -l | grep -i gpg
-rw-r--r--   1 root  wheel     16754 Aug  3 22:46 libgpg-error.a
-rwxr-xr-x   1 root  wheel       908 Aug  3 22:46 libgpg-error.la
lrwxr-xr-x   1 root  wheel        17 Aug  3 22:46 libgpg-error.so -> libgpg-error.so.5
-rwxr-xr-x   1 root  wheel     16786 Aug  3 22:46 libgpg-error.so.5
-rwxr-xr-x   1 root  wheel     16786 Aug  3 20:43 libgpg-error.so.5.bak
```

Additionally, even though it's "installed"


```
beacon# pkg_info | grep -i gpg
libgpg-error-1.7    Common error values for all GnuPG components
```

libgcrypt still tries to install it when I try and make it.


----------



## DutchDaemon (Aug 3, 2009)

Weird. I just ran 'make' in the libgpg-error port on a system where it wasn't installed, and queried the work directory:


```
/usr/ports/security/libgpg-error/work/libgpg-error-1.7]# find . -type f -name "libgpg-error.so*"
./src/.libs/libgpg-error.so.0
```

There's nothing in the make output referencing anything other than libgpg-error.so.0.

There's just one thing that gives me the slightest of clues: the port build uses libtool, which has had a major upgrade today (see /usr/ports/UPDATING) and which is a "Generic shared library support script". This is a shared library. Sounds like more than coincidence to me.

Are you on libtool-2.2.6a and/or did you follow the instructions in UPDATING?


----------



## JakiChan (Aug 4, 2009)

DutchDaemon said:
			
		

> Are you on libtool-2.2.6a and/or did you follow the instructions in UPDATING?



It says libtool-1.5.26 is installed.  The updating instructions didn't seem to work - it says "No valid installed port".


----------



## DutchDaemon (Aug 4, 2009)

Right, that UPDATING command is really not right. Use:


```
portmaster/portupgrade -o devel/libtool22 libtool-1.5.26
```


----------



## JakiChan (Aug 4, 2009)

After all that it worked!  Many thanks!


----------



## DutchDaemon (Aug 4, 2009)

Cheers.


----------

