# Problem libcheck port upgrade



## lib13 (Oct 14, 2013)

I did a `freebsd-update` from 9.1-RELEASE TO 9.2-RELEASE.  So, now:

```
[CMD]# uname -r[/CMD]
9.2-RELEASE
```
*I d*id the update of the ports system, like: `portsnap fetch update`. Afterwards, *I* tried to upgrade the ports with: `portmaster -af`. But it turns out that libcheck fails to be upgraded to _a_ version with a suggestion to `# make MAKE_JOBS_UNSAFE=yes`. But when I try it (after `make clean` and removing work/):

`# make MAKE_JOBS_UNSAFE=yes`

```
===>  Building for libcheck-0.9.10
gmake  all-recursive
gmake[1]: Entering directory `/usr/ports/devel/libcheck/work/check-0.9.10'
Making all in lib
gmake[2]: Entering directory `/usr/ports/devel/libcheck/work/check-0.9.10/lib'
/bin/sh ../libtool --tag=CC   --mode=compile cc -DHAVE_CONFIG_H -I. -I..     -O2 -pipe -fno-strict-aliasing -Wall -ansi -pedantic -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wno-variadic-macros -MT libcompat.lo -MD -MP -MF .deps/libcompat.Tpo -c -o libcompat.lo libcompat.c
libtool: compile:  cc -DHAVE_CONFIG_H -I. -I.. -O2 -pipe -fno-strict-aliasing -Wall -ansi -pedantic -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wno-variadic-macros -MT libcompat.lo -MD -MP -MF .deps/libcompat.Tpo -c libcompat.c  -fPIC -DPIC -o .libs/libcompat.o
In file included from libcompat.c:1:
libcompat.h:133: error: conflicting types for 'timer_t'
/usr/include/sys/types.h:215: error: previous declaration of 'timer_t' was here
libcompat.h:136: error: conflicting types for 'timer_create'
/usr/include/time.h:150: error: previous declaration of 'timer_create' was here
libcompat.h:137: error: conflicting types for 'timer_settime'
/usr/include/time.h:155: error: previous declaration of 'timer_settime' was here
libcompat.h:138: error: conflicting types for 'timer_delete'
/usr/include/time.h:151: error: previous declaration of 'timer_delete' was here
gmake[2]: *** [libcompat.lo] Error 1
gmake[2]: Leaving directory `/usr/ports/devel/libcheck/work/check-0.9.10/lib'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/ports/devel/libcheck/work/check-0.9.10'
gmake: *** [all] Error 2
*** [do-build] Error code 1

Stop in /usr/ports/devel/libcheck.
*** [build] Error code 1
```
Other information that may be important or not.  I have a jail running mldonkey that depends on libcheck.  The jail is stopped.  I'd think that the jail's libcheck won't interfere with the base system's libcheck.

Where to go from here?


----------



## ShelLuser (Oct 14, 2013)

devel/libcheck has several dependencies, amongst which devel/gettext, and that underwent a change some time ago.

Unless you have some specific settings in /etc/make.conf I'd start looking there. Make sure you look into /usr/ports/UPDATING to meet all the requirements of updating some of the ports.

At this time I'd suggest `# portmaster -r gettext` to make sure devel/gettext is set up properly, then try again with building libcheck (make sure to use `# make clean` when doing this manually, portmaster will normally automatically clean up a port before building it).

Hope this can help.


----------



## DaninTX (Oct 17, 2013)

devel/libcheck is thoroughly hosed. I can't install xorg _or_ the devel/ports-mgmt tree to try and get alternative methods to fix it.

I've got two machines, Dell Optiplex 3010 workstations. I had 9.1 loaded on them both working just fine, and tried to do an update to 9.2, but xorg got broken somehow during that upgrade. Since they hadn't been deployed yet, I decided to reload them with a freshly downloaded FreeBSD 9.2 DVD1. The install went fine, and my first step after that is to configure sshd, then start with the xorg port, which fails during the libcheck process.


```
configure: creating ./config.status
 /bin/sh ./config.status
config.status: creating checkmk/checkmk
config.status: creating check.pc
config.status: creating Makefile
config.status: creating checkmk/Makefile
config.status: creating doc/Makefile
config.status: creating lib/Makefile
config.status: creating src/check.h
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating tests/test_vars
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing check_stdint.h commands
config.status: creating check_stdint.h : _CHECK_CHECK_STDINT_H
config.status: check_stdint.h is unchanged
config.status: executing checkmk-x commands
gmake[3]: Leaving directory `/usr/ports/devel/libcheck/work/check-0.9.10'
gmake[3]: Entering directory `/usr/ports/devel/libcheck/work/check-0.9.10'
gmake[3]: Leaving directory `/usr/ports/devel/libcheck/work/check-0.9.10'
gmake[2]: Leaving directory `/usr/ports/devel/libcheck/work/check-0.9.10/lib'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/ports/devel/libcheck/work/check-0.9.10'
gmake: *** [all] Error 2
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** [do-build] Error code 1

Stop in /usr/ports/devel/libcheck.
*** [install] Error code 1

Stop in /usr/ports/devel/libcheck.
*** [build-depends] Error code 1

Stop in /usr/ports/x11/libxcb.
*** [build-depends] Error code 1

Stop in /usr/ports/x11/libX11.
*** [build-depends] Error code 1

Stop in /usr/ports/x11-toolkits/libXmu.
*** [build-depends] Error code 1

Stop in /usr/ports/x11/3ddesktop.
*** [_3ddesktop.realinstall] Error code 1

Stop in /usr/ports/x11.
You have new mail.
root@potassium:/usr/ports/x11 #
```

I went directly to devel/libcheck and attempted to install it by itself based on @ShelLuser's recommendation, and received this output:


```
root@chlorine:/usr/ports/devel/libcheck # make install clean
===>  Building for libcheck-0.9.10
 /bin/sh ./config.status
./config.status: 1823: Syntax error: Bad for loop variable
gmake: *** [Makefile] Error 2
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** [do-build] Error code 1

Stop in /usr/ports/devel/libcheck.
*** [install] Error code 1

Stop in /usr/ports/devel/libcheck.
root@chlorine:/usr/ports/devel/libcheck #
```

(Yes, I know those are snippets of logs from two different machines - I'm having the exact same error on both, I just grabbed the output from the convenient one.)

I don't know enough about Makefiles, but I'll keep digging and try and find this bug unless someone has a quick answer for me.


----------



## lib13 (Oct 28, 2013)

I really can't compile libcheck.  

```
# make all-depends-list
/usr/ports/ports-mgmt/pkg
/usr/ports/devel/gmake
/usr/ports/devel/gettext
/usr/ports/converters/libiconv
```
I recompiled each of the above dependencies, but the error reported on my first post remains.  Any other ideas on this, please?


----------



## ShelLuser (Oct 28, 2013)

Yes, keep in mind that those depending ports also have their own dependencies:


```
root@backup:/usr/ports # make -C devel/gettext all-depends-list
/usr/ports/converters/libiconv
root@backup:/usr/ports # make -C devel/gmake all-depends-list
/usr/ports/devel/gettext
/usr/ports/converters/libiconv
```
Pay special attention to the last example, notice the pattern here?

This is exactly why my initial suggestion was to focus on devel/gettext and to use portmaster for it to make sure that all dependencies and references would be met.

I'm still convinced that the cause for these problems is not following /usr/ports/UPDATING so you'll have no other alternative but to do so afterwards.

As such my suggestion hasn't really changed here.


----------



## lib13 (Nov 16, 2013)

I've been battling with this problem for a long time and haven't found a way to solve it.  I did as suggested by ShelLuser, but the problem is still there, although libcheck has been upgraded do version 0.9.11.

To try to figure this out once and for all, I created a virtual machine and installed 9.2-RELEASE from an ISO file.  `pkg info` outputs:

```
dialog4ports-0.1.5_2
gettext-0.18.3.1
gmake-3.82_1
libcheck-0.9.11
libiconv-1.14_1
pkg-1.1.4_8
```

As can be seen, installation of libcheck didn't cause any issues.

In my physical server, I deleted some packages. `pkg info` reveals:


```
# pkg info
dialog4ports-0.1.5_2
gettext-0.18.3.1
gmake-3.82_1
libiconv-1.14_1
mksh-r46
noip-2.1.9_2
pkg-1.1.4_8
```

mksh, noip have no dependencies.  I removed gmake, libiconv and gettext. Tried to `make install` libcheck (which went on installing its dependencies) but it's own make failed again. I don't know how to deal with this dependency hell. Any other ideas?


----------



## kpa (Nov 17, 2013)

The only sure-fire way is to use a package builder in a jail, for example: http://forums.freebsd.org/showthread.php?t=38859. With a package builder you don't have to pay any attention to UPDATING and the usual problems with dependencies just don't exist.


----------

