# Portstree / Make not working after upgrade 9.0 -> 9.1



## woody (Jun 11, 2013)

Hi,

This forum often helped me successfully if I had problems during the last years with my FreeBSD installation. But now I have a strange problem I can't figure out what it exactly is and how to solve it.

I recently (yesterday) upgraded my FreeBSD installation from 9.0 to 9.1 using the freebsd-update(8) procedure. All worked fine, at least I thought this. The problem now is, that I cannot use the ports tree any more. Regardless in which program I call `make install clean` I get similar errors like: 

```
[I]"Mk/bsd.port.mk", line 2164: Malformed conditional (${CC} != "icc")
"Mk/bsd.port.mk", line 6520: if-less endif
make: fatal errors encountered -- cannot continue
/usr/local/lib/ruby/site_ruby/1.8/pkgtools/portsdb.rb:237:in `join': can't convert nil into String (TypeError)
	from /usr/local/lib/ruby/site_ruby/1.8/pkgtools/portsdb.rb:237:in `index_file'
	from /usr/local/lib/ruby/site_ruby/1.8/pkgtools/portsdb.rb:247:in `set_db_dir'
	from /usr/local/lib/ruby/site_ruby/1.8/pkgtools/portsdb.rb:167:in `setup'[/I]
```

I already fetched and extracted the ports tree three times but it didn't solve the problem. (GCC is 4.2.1 and MAKE_VERSION='9201120530'). Does anyone have a solution or at least a hint for one? 

Thanks in advance.
Woody


----------



## SirDice (Jun 11, 2013)

Is there anything in /etc/make.conf? Have you tried removing and fetching a fresh ports tree?


----------



## woody (Jun 11, 2013)

I removed the ports tree `rm -rf /usr/ports` and then fetched a new one `portsnap fetch extract`. Didn't solve the problem.

The content of my /etc/make.conf

```
# added by use.perl 2013-03-11 09:56:10
PERL_VERSION=5.14.2
```


----------



## DutchDaemon (Jun 11, 2013)

Either you're running an old version of FreeBSD (and hence, an outdated version of make) or you need to install a full source tree to get rid of this. Not having a source tree when a port expects one can lead to weird-looking errors. If you don't check out /usr/src with freebsd-update, turn it on and try again. If you are running an EoL version of FreeBSD, upgrade.


----------



## SirDice (Jun 11, 2013)

DutchDaemon said:
			
		

> or you need to install a full source tree to get rid of this. Not having a source tree when a port expects one can lead to weird-looking errors.


Yes, I was wondering about that. I can remember some calls from /usr/ports/Mk/bsd.*.mk to somewhere in /usr/src/ but couldn't find it on short notice. I know some ports that build kernel modules certainly require at least the kernel sources but I can remember some other call-backs too.


----------



## wblock@ (Jun 11, 2013)

The error you show is from running Ruby, probably ports-mgmt/portupgrade, which may not be exactly the same as manually running `make install`.  Does `make -C /usr/ports/ports-mgmt/portupgrade -V CC` have the same error?

That make(1) version string appears to be from 2011.  Did the update complete successfully?  Does `uname -a` show 9.1?


----------



## woody (Jun 11, 2013)

`uname -a` shows:

```
9.1-RELEASE-p3 FreeBSD 9.1-RELEASE-p3 #0: Mon Apr 29 18:11:52 UTC 2013     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386
```
so for me it looks as if the update worked correctly.

`make -C /usr/ports/ports-mgmt/portupgrade -V CC` shows:

```
"Makefile", line 53: Malformed conditional (${PORT_OPTIONS:MDOCS})
"Makefile", line 55: if-less endif
"Makefile", line 58: Malformed conditional (${RUBY_VER} != 2.0)
"Makefile", line 61: if-less endif
"Makefile", line 64: Malformed conditional (${RUBY_VER} == 1.9)
"Makefile", line 66: if-less endif
"Makefile", line 69: Malformed conditional (${OSVERSION} < 801000)
"Makefile", line 72: if-less else
"Makefile", line 74: if-less endif
make: fatal errors encountered -- cannot continue
```


----------



## woody (Jun 12, 2013)

Solved it:

Checked out /usr/src and made `/usr/src/share/mk/make install`. Now everything seems running fine again. 

Thanks for your help.


----------

