# updated ports, now make fails



## mabu (Nov 20, 2008)

I have a server running FreeBSD 4.5-Release and I went to update the ports collection using this command:

cvsup -L 2 -h cvsup.Freebsd.org /usr/share/examples/cvsup/ports-supfile

It looks like it worked, but now when I run make on any port I get loads of errors:

for example in: 
 /usr/ports/ports-mgmt/portmanager
make reports:


```
"/usr/ports/Mk/bsd.port.mk", line 1340: Malformed conditional (defined(X_WINDOW_SYSTEM) && ${X_WINDOW_SYSTEM:L} != "xorg")
"/usr/ports/Mk/bsd.port.mk", line 1499: Malformed conditional ((defined(USE_QT_VER) && ${USE_QT_VER:L} == 3) || defined(USE_KDELIBS_VER) || defined(USE_KDEBASE_VER))
"/usr/ports/Mk/bsd.port.mk", line 1499: Missing dependency operator
"/usr/ports/Mk/bsd.kde.mk", line 81: Malformed conditional (${USE_QT_VER} == CVS)
"/usr/ports/Mk/bsd.kde.mk", line 81: Need an operator
"/usr/ports/Mk/bsd.kde.mk", line 99: Malformed conditional (${USE_QT_VER} == 3)
"/usr/ports/Mk/bsd.kde.mk", line 99: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 1501: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 1501: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 1503: Malformed conditional (defined (USE_QT_VER) && ${USE_QT_VER:L} == 4)
"/usr/ports/Mk/bsd.port.mk", line 1503: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 1505: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 1505: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 1560: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 1560: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 6208: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 6208: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 1773: Malformed conditional (defined(USE_LDCONFIG32) && ${USE_LDCONFIG32:L} == "yes")
"/usr/ports/Mk/bsd.port.mk", line 1773: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 1964: Malformed conditional (defined (USE_QT_VER) && ${USE_QT_VER:L} == 4)
"/usr/ports/Mk/bsd.port.mk", line 1964: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 2331: warning: String comparison operator should be either == or !=
"/usr/ports/Mk/bsd.port.mk", line 2331: warning: String comparison operator should be either == or !=
"/usr/ports/Mk/bsd.port.mk", line 2331: Malformed conditional (((${OSVERSION} < 504105 || (${OSVERSION} >= 600000 && ${OSVERSION} < 600103) || (${OSVERSION} >= 700000 && ${OSVERSION} < 700012)) && ${PKGORIGIN} != "ports-mgmt/pkg_install") || exists(${LOCALBASE}/sbin/pkg_info))
"/usr/ports/Mk/bsd.port.mk", line 2332: warning: String comparison operator should be either == or !=
"/usr/ports/Mk/bsd.port.mk", line 2332: warning: String comparison operator should be either == or !=
"/usr/ports/Mk/bsd.port.mk", line 2332: Malformed conditional ((${OSVERSION} < 504105 || (${OSVERSION} >= 600000 && ${OSVERSION} < 600103) || (${OSVERSION} >= 700000 && ${OSVERSION} < 700012)) && ${PKGORIGIN} != "ports-mgmt/pkg_install")
"/usr/ports/Mk/bsd.port.mk", line 2334: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 2334: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 2340: if-less else
"/usr/ports/Mk/bsd.port.mk", line 2340: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 2346: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 2346: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 5709: Malformed conditional (defined(USE_RCORDER) || defined(USE_RC_SUBR) && ${USE_RC_SUBR:U} != "YES")
"/usr/ports/Mk/bsd.port.mk", line 5719: Malformed conditional (defined(USE_RC_SUBR) && ${USE_RC_SUBR:U} != "YES")
"/usr/ports/Mk/bsd.port.mk", line 5727: if-less else
"/usr/ports/Mk/bsd.port.mk", line 5727: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 5729: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 5729: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 5730: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 5730: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 6206: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 6206: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 6209: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 6209: Need an operator
make: fatal errors encountered -- cannot continue
```

Every single port in the collection now does this.  I also have Gnu Make 3.79 and running it I get:

Makefile:41: *** missing separator.  Stop.

So what happened?  Did I destroy my entire ports collection?


----------



## kamikaze (Nov 20, 2008)

Yes, you did. 4.x is no longer supported by the ports system. There's a tag for the end of 4.x-support, if you csup from RELEASE_4_EOL you get the newest ports you can use with 4.x. Which is pretty old, though.


----------



## mabu (Nov 20, 2008)

So there's no way I can update ports besides reverting back?

What's the proper command to bring it back to the latest workable version?  I am not that familiar with cvs

doh, sorry about double post


----------



## Mel_Flynn (Nov 21, 2008)

In the ports-supfile change the line:

```
*tag=.
```
to:

```
*tag=RELEASE_4_EOL
```


----------



## mabu (Nov 21, 2008)

thanks


----------



## mabu (Nov 21, 2008)

I ran the command you specified but it still doesn't work. 

Make returns:


```
"/usr/ports/Mk/bsd.port.mk", line 5538: Malformed conditional (defined(USE_RCORDER) || defined(USE_RC_SUBR) && ${USE_RC_SUBR:U} != "YES")
"/usr/ports/Mk/bsd.port.mk", line 5548: Malformed conditional (defined(USE_RC_SUBR) && ${USE_RC_SUBR:U} != "YES")
"/usr/ports/Mk/bsd.port.mk", line 5566: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 5566: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 6018: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 6018: Need an operator
make: fatal errors encountered -- cannot continue
```


----------



## kamikaze (Nov 21, 2008)

Have you tried _rm -rf /usr/ports_ before csupping?


----------



## mabu (Nov 22, 2008)

ok, I'll try that...


----------



## mabu (Nov 22, 2008)

I wiped the directory and re-updated, and still no luck.  I still get those errors:

"/usr/ports/Mk/bsd.port.mk", line 5538: Malformed conditional (defined(USE_RCORDER) || defined(USE_RC_SUBR) && ${USE_RC_SUBR:U} != "YES")
"/usr/ports/Mk/bsd.port.mk", line 5548: Malformed conditional (defined(USE_RC_SUBR) && ${USE_RC_SUBR:U} != "YES")
"/usr/ports/Mk/bsd.port.mk", line 5566: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 5566: Need an operator
"/usr/ports/Mk/bsd.port.mk", line 6018: if-less endif
"/usr/ports/Mk/bsd.port.mk", line 6018: Need an operator
make: fatal errors encountered -- cannot continue


----------



## kamikaze (Nov 22, 2008)

Can you show us your ports-supfile?


----------



## mabu (Nov 22, 2008)

here it is:

# $FreeBSD: src/share/examples/cvsup/ports-supfile,v 1.19.2.5 2001/04/22 16:52:53 asami Exp $
#
# This file contains all of the "CVSup collections" that make up the
# FreeBSD-current ports collection.
#
# CVSup (CVS Update Protocol) allows you to download the latest CVS
# tree (or any branch of development therefrom) to your system easily
# and efficiently (far more so than with sup, which CVSup is aimed
# at replacing).  If you're running CVSup interactively, and are
# currently using an X display server, you should run CVSup as follows
# to keep your CVS tree up-to-date:
#
#	cvsup ports-supfile
#
# If not running X, or invoking cvsup from a non-interactive script, then
# run it as follows:
#
#	cvsup -g -L 2 ports-supfile
#
# You may wish to change some of the settings in this file to better
# suit your system:
#
# host=CHANGE_THIS.FreeBSD.org
#		This specifies the server host which will supply the
#		file updates.  You must change it to one of the CVSup
#		mirror sites listed in the FreeBSD Handbook at
#		http://www.freebsd.org/handbook/mirrors.html.
#		You can	override this setting on the command line
#		with cvsup's "-h host" option.
#
# base=/usr
#		This specifies the root where CVSup will store information
#		about the collections you have transferred to your system.
#		A setting of "/usr" will generate this information in
#		/usr/sup.  Even if you are CVSupping a large number of
#		collections, you will be hard pressed to generate more than
#		~1MB of data in this directory.  You can override the
#		"base" setting on the command line with cvsup's "-b base"
#		option.  This directory must exist in order to run CVSup.
#
# prefix=/usr
#		This specifies where to place the requested files.  A
#		setting of "/usr" will place all of the files requested
#		in "/usr/ports" (e.g., "/usr/ports/devel", "/usr/ports/lang").
#		The prefix directory must exist in order to run CVSup.

# Defaults that apply to all the collections
#
# IMPORTANT: Change the next line to use one of the CVSup mirror sites
# listed at http://www.freebsd.org/handbook/mirrors.html.
*default host=CHANGE_THIS.FreeBSD.org
*default base=/usr
*default prefix=/usr
#*default release=cvs tag=.
*default release=cvs tag=RELEASE_4_EOL
*default delete use-rel-suffix

# If your network link is a T1 or faster, comment out the following line.
*default compress

## Ports Collection.
#
# The easiest way to get the ports tree is to use the "ports-all"
# mega-collection.  It includes all of the individual "ports-*"
# collections,
ports-all

# These are the individual collections that make up "ports-all".  If you
# use these, be sure to comment out "ports-all" above.
#
# Be sure to ALWAYS cvsup the ports-base collection if you use any of the
# other individual collections below. ports-base is a mandatory collection
# for the ports collection, and your ports may not build correctly if it
# is not kept up to date.
#ports-base
#ports-archivers
#ports-astro
#ports-audio
#ports-benchmarks
#ports-biology
#ports-cad
#ports-chinese
#ports-comms
#ports-converters
#ports-databases
#ports-deskutils
#ports-devel
#ports-editors
#ports-emulators
#ports-french
#ports-ftp
#ports-games
#ports-german
#ports-graphics
#ports-hebrew
#ports-irc
#ports-japanese
#ports-java
#ports-korean
#ports-lang
#ports-mail
#ports-math
#ports-mbone
#ports-misc
#ports-net
#ports-news
#ports-palm
#ports-picobsd
#ports-print
#ports-russian
#ports-science
#ports-security
#ports-shells
#ports-sysutils
#ports-textproc
#ports-ukrainian
#ports-vietnamese
#ports-www
#ports-x11
#ports-x11-clocks
#ports-x11-fm
#ports-x11-fonts
#ports-x11-servers
#ports-x11-toolkits
#ports-x11-wm


----------



## Mel_Flynn (Nov 22, 2008)

mabu said:
			
		

> *default host=*CHANGE_THIS*.FreeBSD.org



It's always the obvious.


----------



## mabu (Nov 22, 2008)

Change it to what?

If it didn't work, what host did I get the darn ports collection from then?

Do you know for sure that's the problem or are you just grasping at straws?  If there was no valid host, the command should have failed I figure.


----------



## HiDE (Nov 22, 2008)

"CVSup Sites" at http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html

maybe that?


----------



## DutchDaemon (Nov 22, 2008)

OP overruled the host setting in the original post: cvsup -L 2 _-h cvsup.Freebsd.org_


----------



## mabu (Nov 22, 2008)

Right.  So does it make a difference?  Is there a preferred host for this?  I can't imagine that's the problem here.


----------



## mabu (Nov 22, 2008)

If I was going to hazard a guess at what's wrong, I'd think this historical ports collection is *beep**beep**beep**beep*ed up.  4.5-RELEASE is from 2002, but the files in /usr/ports/Mk are 4-5 years older, so there are some newer remnants that are part of an old dist.. at least this is my theory:

-rw-r--r--   1 root  wheel  -  12593 Nov  7  2006 bsd.apache.mk
-rw-r--r--   1 root  wheel  -  10185 Dec  3  2006 bsd.autotools.mk
-rw-r--r--   1 root  wheel  -  12761 Dec  6  2006 bsd.database.mk
-rw-r--r--   1 root  wheel  -   8808 Dec 12  2006 bsd.emacs.mk
-rw-r--r--   1 root  wheel  -   5217 Jan  6  2007 bsd.gcc.mk
-rw-r--r--   1 root  wheel  -  32897 Jan  3  2007 bsd.gnome.mk
-rw-r--r--   1 root  wheel  -  18117 Jan  2  2007 bsd.gnustep.mk
-rw-r--r--   1 root  wheel  -   8071 Jan 25  2007 bsd.gstreamer.mk
-rw-r--r--   1 root  wheel  -  22964 Jan 22  2007 bsd.java.mk
-rw-r--r--   1 root  wheel  -   5093 Dec 19  2006 bsd.kde.mk
-rw-r--r--   1 root  wheel  -   4741 Oct  5  2006 bsd.linux-rpm.mk
-rw-r--r--   1 root  wheel  -    771 Dec 10  2006 bsd.local.mk
-rw-r--r--   1 root  wheel  -  16186 Jan  4  2007 bsd.lua.mk
-rw-r--r--   1 root  wheel  -   1976 Aug  4  2006 bsd.mail.mk
-rw-r--r--   1 root  wheel  -   5318 Oct  8  2006 bsd.openssl.mk
-rw-r--r--   1 root  wheel  -  12015 Dec 12  2006 bsd.php.mk
-rw-r--r--   1 root  wheel  - 202046 Jan  7  2007 bsd.port.mk
-rw-r--r--   1 root  wheel  -    560 Sep 30  2006 bsd.port.options.mk
-rw-r--r--   1 root  wheel  -    139 Aug 24  1999 bsd.port.post.mk
-rw-r--r--   1 root  wheel  -    140 Aug 24  1999 bsd.port.pre.mk
-rw-r--r--   1 root  wheel  -  13612 Aug  4  2006 bsd.port.subdir.mk
-rw-r--r--   1 root  wheel  -  21269 Jan 26  2007 bsd.python.mk
-rw-r--r--   1 root  wheel  -  16599 Jan  2  2007 bsd.ruby.mk
-rw-r--r--   1 root  wheel  -   2499 Sep 15  2006 bsd.scons.mk
-rw-r--r--   1 root  wheel  -   4086 Oct 31  2006 bsd.sdl.mk
-rw-r--r--   1 root  wheel  -  60427 Jan 23  2007 bsd.sites.mk
-rw-r--r--   1 root  wheel  -   4439 Jan  7  2007 bsd.tcl.mk
-rw-r--r--   1 root  wheel  -  17605 Jan  4  2007 bsd.wx.mk

I'm going to suggest nobody has ever tested this historical distribution and maybe it's broken... does anybody have a proper, non-broken port collection from the 4.5+ tree?

Or maybe cvsup didn't update this portion?  Well I deleted the entire directory though...


----------



## DutchDaemon (Nov 22, 2008)

See if the information here is of help (mainly the clearing out and cleaning up parts).


----------



## mabu (Nov 22, 2008)

DutchDaemon said:
			
		

> See if the information here is of help (mainly the clearing out and cleaning up parts).



That seems to say what we've already done, but it doesn't work, unless I'm missing something.

I completely wiped /usr/ports before running cvsup.


----------



## Mel_Flynn (Nov 23, 2008)

The only thing I can think of, is that your make(1) is too old for the RELENG_4_EOL branch. You mention 4.5, but FreeBSD 4 went up to 4.11.

The safe way of finding this out is the following:

```
cd /usr
mv src src.4.5
cp /usr/share/examples/cvsup/standard-supfile /etc/
```
Edit /etc/standard-supfile to contain the tag RELENG_4.

```
cvsup -L2 -h cvsup2.freebsd.org /etc/standard-supfile
cd /usr/src
make -DALWAYS_CHECK_MAKE buildworld
cd usr.bin/make
make install
cd /usr/ports/ports-mgmt/portmanager
make
```
If the error disappears, you will have to upgrade your system, downgrade your portstree to correspond with the release (which means you won't have the latest possible versions) or take the risk that "running 4.11 make on 4.5" is acceptable.


----------



## mabu (Jun 5, 2009)

That last recommendation to check things seems mighty scary.  This is an active server that I don't want to nerf.  Is there any other way to fix this problem?


----------



## SirDice (Jun 5, 2009)

What's the reason you can't update to a recent version of FreeBSD?

Assuming it's been running since 2002 the server can quite easily be written off anyway. Buy a new one and install an up2date version.


----------



## mabu (Jun 5, 2009)

Huh?

Just because the server is old doesn't mean it's useless.  I have not tried to update the OS on an active, production server.  It runs some services that can't be interrupted right now.  There's no real need to update the OS because the server is buttoned down tight.  I have not tried to upgrade the OS on an active server.  Is it really easy to do or is there a chance of the system not coming back up?


----------

