# devel/cmake not building after upgrade to FreeBSD 10



## abishai (Jan 26, 2014)

Hello.

I have a problem after upgrade to FreeBSD 10 from 9.2.

`portmaster -afd` is failing on rebuilding of devel/cmake:

```
[ 81%] Building CXX object Source/CMakeFiles/CMakeLib.dir/cmNinjaNormalTargetGenerator.cxx.o
[ 81%] Building CXX object Source/CMakeFiles/CMakeLib.dir/cmNinjaUtilityTargetGenerator.cxx.o
Linking CXX static library libCMakeLib.a
[ 81%] Built target CMakeLib
Scanning dependencies of target cmake
make[3]: make[3]: don't know how to make /usr/lib/libmd.so. Stop

make[3]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
--- Source/CMakeFiles/cmake.dir/all ---
*** [Source/CMakeFiles/cmake.dir/all] Error code 2

make[2]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
Scanning dependencies of target ccmake
A failure has been detected in another branch of the parallel make

make[3]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
--- Source/CMakeFiles/ccmake.dir/all ---
*** [Source/CMakeFiles/ccmake.dir/all] Error code 2

make[2]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
Scanning dependencies of target CPackLib
A failure has been detected in another branch of the parallel make

make[3]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
--- Source/CMakeFiles/CPackLib.dir/all ---
*** [Source/CMakeFiles/CPackLib.dir/all] Error code 2

make[2]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
Scanning dependencies of target CTestLib
A failure has been detected in another branch of the parallel make

make[3]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
--- Source/CMakeFiles/CTestLib.dir/all ---
*** [Source/CMakeFiles/CTestLib.dir/all] Error code 2

make[2]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
4 errors

make[2]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
--- all ---
*** [all] Error code 2

make[1]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
1 error

make[1]: stopped in /var/ports/basejail/usr/ports/devel/cmake/work/cmake-2.8.12.1
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /basejail/usr/ports/devel/cmake
```

My /etc/make.conf:

```
WRKDIRPREFIX=           /var/ports
DISTDIR=                /var/ports/distfiles
PACKAGES=               /var/ports/packages
INDEXDIR=               /var/ports
WITH_PKGNG=yes
WITHOUT_X11=yes
```

Without cmake I can't recompile php55-gd.

Any ideas?


----------



## dpejesh (Jan 26, 2014)

Did you do another `freebsd-update install` after rebooting into 10.0? I have a feeling /usr/lib/libmd.so is still soft-linked to /lib/libmd.so.5 instead of .6.


----------



## abishai (Jan 26, 2014)

dpejesh said:
			
		

> Did you do another `freebsd-update install` after rebooting into 10.0? I have a feeling /usr/lib/libmd.so is still soft-linked to /lib/libmd.so.5 instead of .6.


Yes, I do. But thank you for the suggestion. Basejail has three broken links. One of them is the file from the error above. Is copying from the base system enough to fix them? How can they become broken? Maybe some daemons locked them somehow?


----------



## dpejesh (Jan 26, 2014)

Copying files around isn't going to fix the root cause.  How did you attempt to upgrade your jail?


----------



## abishai (Jan 26, 2014)

dpejesh said:
			
		

> Copying files around isn't going to fix the root cause.  How did you attempt to upgrade your jail?


With `ezjail-admin` as always....
`ezjail-admin -U -s 10.0-RELEASE` It runs `freebsd-update` several times until it says there is nothing more to do.

edit: wrong command


----------



## dpejesh (Jan 26, 2014)

For some reason `freebsd-update` doesn't update those 3 files when run with the -b option (which is how ezjail handles updates).  I've been trying to track this down but I'm not quite sure what the exact problem is.  I've created two separate jails and updated them in the following ways.


```
mkdir /tmp/jail
tar -C /tmp/jail -Jxf /root/9.2-RELEASE/base.txz
env UNAME_r=9.2-RELEASE PAGER=cat freebsd-update -b /tmp/jail fetch install
env UNAME_r=9.2-RELEASE PAGER=cat freebsd-update -b /tmp/jail -r 10.0-RELEASE upgrade install
freebsd-update -b /tmp/jail install
freebsd-update -b /tmp/jail install
```


```
mkdir /tmp/jail2
tar -C /tmp/jail2 -Jxf /root/9.2-RELEASE/base.txz
cp /etc/resolv.conf /tmp/jail2/etc/resolv.conf
chroot /tmp/jail2 env UNAME_r=9.2-RELEASE PAGER=cat freebsd-update fetch install
chroot /tmp/jail2 env UNAME_r=9.2-RELEASE PAGER=cat freebsd-update -r 10.0-RELEASE upgrade install
chroot /tmp/jail2 freebsd-update install
chroot /tmp/jail2 freebsd-update install
```

When comparing an mtree between the two I'm seeing.

```
usr/lib/libmd.so: 
        link ref (/lib/libmd.so.5, /lib/libmd.so.6)
usr/lib/libkvm.so: 
        link ref (/lib/libkvm.so.5, /lib/libkvm.so.6)
usr/lib/libcrypto.so: 
        link ref (/lib/libcrypto.so.6, /lib/libcrypto.so.7)
```
Everything else gets upgraded properly.  I'm stumped at the moment as to what's going on with those 3 soft-links.  Anybody got any ideas?  I have a feeling `freebsd-update` is checking the host system somewhere instead of the jail and flags those files as not needing to be updated.


----------



## dpejesh (Jan 27, 2014)

For those who run into this problem in the future, I've created a PR which includes a patch to fix `freebsd-update`.


----------



## abishai (Jan 27, 2014)

For myself, I manually fixed these links to proper the locations.  Should I change the topic subject to reflect the actual problem?


----------

