Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Upgraded FreeBSD from 8.2 >> 8.4 >> 10.0-RELEASE today. In the process, I believe I have mangled my ports tree quite badly and am having issues upgrading/reinstalling ports (as the upgrade asks me to do).

As stands, I think it may have something to do with Python but I'm not sure where to go from here.

Upgrading ports fails here.

#portname -a

===>>> Port directory: /usr/ports/lang/python2

make: "/usr/ports/Mk/bsd.python.mk" line 558: Malformed conditional (${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK))
make: Fatal errors encountered -- cannot continuemake: "/usr/ports/Mk/bsd.python.mk" line 558: Malformed conditional (${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK))
make: Fatal errors encountered -- cannot continue===>>> Launching 'make checksum' for lang/python2 in background
make: "/usr/ports/Mk/bsd.python.mk" line 558: Malformed conditional (${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK))
make: Fatal errors encountered -- cannot continue

More info:

# less /etc/make.conf
# added by use.perl 2014-01-27 15:35:31
PERL_VERSION=5.10.1
WITH_PKGNG=yes

# python -V
Python 2.6.6

# uname -a
FreeBSD herp.derp.herp l 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014     root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
share|improve this question

1 Answer 1

up vote 1 down vote accepted

It would appear you have a very old ports tree, probably installed with 8.2. The current default version for perl is 5.16 and python is 2.7. In fact perl 5.10 isn't even available to install any more. There have been many recent ports updates specifically to build on FreeBSD 10.0 that you will need to start building any ports.

The easiest way to update your ports tree would be portsnap fetch extract. You may want to delete the old ports tree first to make sure you don't have any old files left over. Any port management tools, like portmaster, will then need to be updated manually before you use them for updating your other ports.

FreeBSD 10.0 also uses the new pkgng system that you may be unfamiliar with Read this for more info. Previously you would use pkg_info -Ix perl5 now you would use pkg info -Ix perl5 Also for binary package installs, pkg_add -r lang/perl5.16 has been replaced with pkg install lang/perl5.16.

share|improve this answer
    
Thanks, Sambler -- it does seem like I have an old ports tree -- is there a guide on how to rebuild your ports tree using 10? The change to pkg has confused me and I can't find much. –  scraft3613 Jan 30 at 11:13
    
The pkg commands aren't a big change from the old pkg_* style commands, just a slight syntax change. While pkg mainly aims at binary installs, you can disable the repositories and pkg install should then fall back to compiling from ports tree (or do a binary upgrade to get started). Edit /etc/pkg/FreeBSD.conf to disable the official repository. pkg info -aoq | xargs pkg install -f should re-install everything for you. –  sambler Jan 31 at 6:15
    
Brilliant, thanks! –  scraft3613 Feb 2 at 1:37

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.