# libchamplain error message



## roelof (Jul 13, 2011)

Hello, 

When I do a `# portmaster -a` I see these messages :

```
gmake[3]: Entering directory `/usr/ports/graphics/libchamplain/work/libchamplain-0.8.1/champlain-gtk'
  CC     gtk-champlain-embed.lo
  CC     champlain-gtk-enum-types.lo
  CC     champlain-gtk-marshal.lo
  CCLD   libchamplain-gtk-0.8.la
  GISCAN GtkChamplain-0.8.gir
/usr/include/machine/endian.h:123: syntax error, unexpected '{' in ' return (__extension__ ({ register __uint64_t __X = (_x); __asm ("bswap %0" : "+r" (__X)); __X; }));' at '{'
/usr/include/machine/endian.h:123: syntax error, unexpected ';' in ' return (__extension__ ({ register __uint64_t __X = (_x); __asm ("bswap %0" : "+r" (__X)); __X; }));' at ';'
/usr/include/machine/endian.h:130: syntax error, unexpected '{' in ' return (__extension__ ({ register __uint32_t __X = (_x); __asm ("bswap %0" : "+r" (__X)); __X; }));' at '{'
/usr/include/machine/endian.h:130: syntax error, unexpected ';' in ' return (__extension__ ({ register __uint32_t __X = (_x); __asm ("bswap %0" : "+r" (__X)); __X; }));' at ';'
/libexec/ld-elf.so.1: Shared object "libgnutls.so.40" not found, required by "libchamplain-0.8.so.1"
Command '['/usr/ports/graphics/libchamplain/work/libchamplain-0.8.1/champlain-gtk/tmp-introspectqARgK4/GtkChamplain-0.8', '--introspect-dump=/usr/ports/graphics/libchamplain/work/libchamplain-0.8.1/champlain-gtk/tmp-introspectqARgK4/types.txt,/usr/ports/graphics/libchamplain/work/libchamplain-0.8.1/champlain-gtk/tmp-introspectqARgK4/dump.xml']' returned non-zero exit status 1
gmake[3]: *** [GtkChamplain-0.8.gir] Error 1
gmake[3]: Leaving directory `/usr/ports/graphics/libchamplain/work/libchamplain-0.8.1/champlain-gtk'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/usr/ports/graphics/libchamplain/work/libchamplain-0.8.1/champlain-gtk'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/ports/graphics/libchamplain/work/libchamplain-0.8.1'
gmake: *** [all] Error 2
*** Error code 1
```

But when I do `# pkg_add -r gnutls` I see this message

```
pkg_add: package 'gnutls-2.8.6_2' or its older version already installed
```

Also updating gnutls to the newest version did not solve this.

Anyone another idea ?

Roelof


----------



## SirDice (Jul 13, 2011)

Never blindly run portmaster -a. Always read /usr/ports/UPDATING.



> 20110605:
> AFFECTS: users of security/gnutls and any port that depends on it
> AUTHOR: novel@FreeBSD.org
> 
> ...


----------



## fmw (Jul 13, 2011)

I had encountered the same problem just yesterday. Now of course, libgnutls.so.40 has been history for some time. Looking around the web, I found hints that the previously installed of libchamplain-0.8.so.1 comes into play where the newly built one should be used. The solution for me was to manually delete libchamplain-0.8.1 before building it again.


----------



## roelof (Jul 13, 2011)

Oke, 

Did that and ran again in a lzma error.
See this messages:

```
/usr/lib/libarchive.so: undefined reference to `lzma_stream_encoder@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_alone_decoder@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_memusage@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_stream_decoder@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_code@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_end@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_lzma_preset@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_alone_encoder@XZ_5.0'
```

At this moment I have xz and lzma installed.
How can I solve this annoying problem with xz and lzma in version 8.
One package needs xz and the other lzma.
I keep on switching.

Roelof


----------



## SirDice (Jul 14, 2011)

Again, read /usr/ports/UPDATING


> 20090921:
> AFFECTS: users of archivers/lzmautils, archivers/lzmautils-devel
> AUTHOR: Christian Weisgerber <naddy@FreeBSD.org>
> 
> ...


----------



## roelof (Jul 14, 2011)

I did that already several times but with no luck.

Roelof


----------



## SirDice (Jul 14, 2011)

Try to pkg_delete lzma.


----------



## roelof (Jul 14, 2011)

hello, 

With `# pkg_delete lzma` I see this message :

```
pkg_delete: no such package 'lzma' installed
```

With `# portmaster -o archivers/xz archivers/lzmautils` I see this message :

```
===>>> The second argument to -o can be a port in /var/db/pkg,
       or a port directory from /usr/ports

       archivers/lzmautils does not seem to be installed,
       or listed as a dependency

===>>> No valid installed port, or port directory given
===>>> Try portmaster --help
```

Roelof


----------



## fmw (Jul 14, 2011)

pkg_delete needs a precise argument, see what `# pkg_version -vs lzma`gives you.


----------



## roelof (Jul 14, 2011)

oke, 

Then I get this output:

```
tamara# pkg_version -vs lzma
lzma-9.22                           =   up-to-date with port
tamara# pkg_delete lzma-9.22
pkg_delete: '/usr/local/bin/lzma' fails original MD5 checksum - not deleted.
pkg_delete: couldn't entirely delete package (perhaps the packing list is
incorrectly specified?)
```

Roelof


----------



## wblock@ (Jul 14, 2011)

Neither xz nor lzma are required on a newish FreeBSD-8 system.  The portmaster command to switch between them is from 2009, not relevant any more.  I'd pkg_delete them both and manually remove the leftover file shown above.  Then the tricky part, rebuilding packages that have a dependency.
`# portmaster --check-depends`
might be enough.


----------



## roelof (Jul 15, 2011)

Hello, 

I did that and it seems that libclaim is working.
But now graphics/evince fails with this message :

```
tiff2ps.c:1131: warning: format '%u' expects type 'unsigned int', but argument 3 has type 'tsize_t'
  CCLD   libtiffdocument.la
grep: /usr/local/lib/liblzma.la: No such file or directory
sed: /usr/local/lib/liblzma.la: No such file or directory
gnome-libtool: link: `/usr/local/lib/liblzma.la' is not a valid libtool archive
gmake[3]: *** [libtiffdocument.la] Error 1
```

Roelof


----------



## SirDice (Jul 15, 2011)

With the mess it currently is it might be easier just to pkg_delete -a (this will remove everything!) and start over.


----------



## roelof (Jul 15, 2011)

oke, 
And what's the the best way to keep out of these problems.

1) Reinstall Freebsd.
2) Update ports 
3) delete xz and lzma.
4) portmaster --check-depends
5) portmaster -a 

???

Roelof


----------



## SirDice (Jul 15, 2011)

The best way to not to get into trouble is to read /usr/ports/UPDATING _before_ updating anything.


----------



## roelof (Jul 15, 2011)

Oke, 

But in /usr/ports/UPDATING there is something about the use of xz and lzma.
And a few messages ago you have said that on a newly installed 8 system both are not needed.
So I find it very confusing.

Roelof


----------



## wblock@ (Jul 15, 2011)

Look at the dates in /usr/ports/UPDATING.  The xz/lzma one is from 2009.  If you install from a ports tree newer than that, like the copy of the ports tree included with 8.2-RELEASE from February 2011, that change is already present.  It doesn't need to be done again.

Reinstalling the OS or rebuilding or deleting all ports should not be necessary.  Find the ports which depend on lzma-9.22 or xz-whatever (pkg_info(1) -R), then rebuild all of those ports.  Use portmaster, or at least clean them first.  If lzma and xz are already removed, portmaster's --check-depends should help find and rebuild problem ports.

Here's how I avoid problems like these:

After a fresh install, immediately update the ports tree, before installing any ports.
Check /usr/ports/UPDATING before updating any ports.  Ignore any entries that are from before the last time you updated ports, or the date of release of the OS.
Avoid pre-built packages.
Avoid using -a with portmaster or portupgrade for updating large numbers of ports.  It's too blunt.
Upgrading FreeBSD Ports


----------



## roelof (Jul 15, 2011)

Hello, 

I did a reinstall.
Removed the xz depdencies.
Updated the ports.
Did the `# portmaster -L --index-only| egrep '(ew|ort) version|total install'` and saw that there were  274 updates.
I went to /usr/ports/UPDATING and saw that the last entry was on 11 july.
My ports collection was on 15 July so no problems.

Then I did `# portmaster -na` but when it reaches www/p5-libwww the output I see it that it looks several times at this file and continues to look at this file.

Anyone a idea what I did wrong here ?

Roelof


----------



## wblock@ (Jul 15, 2011)

roelof said:
			
		

> I did a reinstall.



Not necessary, but people like to do it for some reason.



> Removed the xz depdencies.



Please stop applying 2009 corrections to a 2011 system.



> Updated the ports.



Based on what you say below, too late.  And "updated the ports" is vague.  There are two things it can mean: updated the ports tree with portsnap, or installed new versions of applications from ports, like Perl or Firefox.



> Did the `# portmaster -L --index-only| egrep '(ew|ort) version|total install'` and saw that there were  274 updates.



If you had updated the ports tree before installing any of them, it would not do this.

When the installer asks "do you want to browse through packages", that's installing outdated ports (packages, but they come from the same place).  Don't install any ports or packages from the installer, just the OS.  After the OS is installed, use portsnap to update the ports tree.  Only then start installing ports.



> I went to /usr/ports/UPDATING and saw that the last entry was on 11 july.  My ports collection was on 15 July so no problems.



No, your installed ports were outdated, as shown above.  Probably this is from installing from the ports tree that came with 8.2-RELEASE, which was created in February.



> Then I did `# portmaster -na` but when it reaches www/p5-libwww the output I see it that it looks several times at this file and continues to look at this file.



Mentioned on 20110711 in UPDATING.


----------



## roelof (Jul 16, 2011)

Hello, 

I did all the things you said in your page.
But still I get the lzma error file which you have said it's from 2009 and that can should be solved now.

When I updated devel/gvfs I see these messages :

```
CC     gvfsd_archive-gvfsbackendarchive.o
  CC     gvfsd_archive-daemon-main.o
  CC     gvfsd_archive-daemon-main-generic.o
  CCLD   gvfsd-archive
/usr/lib/libarchive.so: undefined reference to `lzma_stream_encoder@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_alone_decoder@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_memusage@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_stream_decoder@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_code@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_end@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_lzma_preset@XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_alone_encoder@XZ_5.0'
gmake[4]: *** [gvfsd-archive] Error 1
gmake[4]: Leaving directory `/usr/ports/devel/gvfs/work/gvfs-1.6.6/daemon'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory `/usr/ports/devel/gvfs/work/gvfs-1.6.6/daemon'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/usr/ports/devel/gvfs/work/gvfs-1.6.6/daemon'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/ports/devel/gvfs/work/gvfs-1.6.6'
gmake: *** [all] Error 2
```


----------



## wblock@ (Jul 16, 2011)

/usr/lib/libarchive.so is part of the operating system.  Don't know how that was broken.  Incomplete freebsd-update, or restored from a backup of an old system.


----------



## roelof (Jul 16, 2011)

Hello Wblock,

Both cannot be the reason. I updated everything with freebsd-update
And restoring from a old backup cannot be the reason because it's a fresh install.
And the only things I have done is install freebsd, updated it with freebsd-update, install gnome from packages with pkg_add -r gnome2 , updated the ports and im now working with postmaster to update everything.

Roelof

Edit : Can this be the problem : https://bugs.gentoo.org/show_bug.cgi?id=284458


----------



## wblock@ (Jul 16, 2011)

Starting over with pkg_delete -a as SirDice suggested back in post #13 may be the way to go.  This time, don't use pkg_add at all, just ports.  If there's a problem in the base system, it may still fail until that has been fixed.


----------



## roelof (Jul 19, 2011)

Hello.

I started all over again and everything has compiled and installed.
So thanks for the help.

Roelof


----------

