0

So I have some of the older FreeBSD versions (6.4, 8.4) still running at the company and I'd like to install and update a bunch of tools, such as Python 2.7, Midnight Commander, Tmux, Vim and so on. Anyway, I don't seem to have the luxury of getting to use pkg (pkgng). For the scope of this question let's only consider FreeBSD 6.4.

Now it's easy to fetch the latest ports from http://ftp.freebsd.org/pub/FreeBSD/ports/ports/ and replace the local ports folder with that, but that only starts the pain.

Evidently pmake is outdated and should be updated "somehow" first. When I just try any make inside /usr/ports after replacing the original /usr/ports, I end up with errors like these:

[root@fbsd6_32 /usr/ports/editors/vim-lite]# make
"/usr/ports/Mk/bsd.options.mk", line 287: Need an operator
Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

"/usr/ports/Mk/bsd.sites.mk", line 1049: Malformed conditional (!empty(_PERL_CPAN_ID) && ${_PERL_CPAN_FLAG:tl} == "cpan")
Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

"/usr/ports/Mk/bsd.port.mk", line 2955: warning: Missing closing parenthesis for defined()
Unknown modifier 't'

"/usr/ports/Mk/bsd.port.mk", line 2955: Malformed conditional (((!defined(OPTIONS_DEFINE) && !defined(OPTIONS_SINGLE) && !defined(OPTIONS_MULTI))  && !defined(OPTIONS_GROUP) && !defined(OPTIONS_RADIO)  || defined(CONFIG_DONE_${PKGBASE:tu}) ||  defined(PACKAGE_BUILDING) || defined(BATCH)))
Unknown modifier 't'
# [...] many many more lines
7 open conditionals:
        at line 5797 (evaluated to true)
       at line 5797 (evaluated to true)
      at line 5797 (evaluated to true)
     at line 5797 (evaluated to true)
    at line 5797 (evaluated to true)
   at line 4910 (evaluated to true)
  at line 4910 (evaluated to true)
make: fatal errors encountered -- cannot continue

make search name=... fails accordingly.

How can I recover from this and start installing some of the latest ports? Would it be correct to assume that I need to get pmake up-to-date first and find it from http://distcache.freebsd.org/ports-distfiles/, build and install that?

2

For FreeBSD 8.4, you may be able to upgrade to the final patch level as noted in a forum thread Issues with pkg commands:

Upgrade first to the latest patch level of 8.4 that is 8.4-RELEASE-p9 at the moment and see if that fixes the issue. According to the commit message the make(1) in 8.4 should support the :tu and :tl modifiers. If it doesn't then this is an oversight from the portmgr@ team and should be reported. 8.4 is promised to be supported until June 30, 2015.

I did that for one of my machines. Compatibility is nice, particularly in infrastructure.

One of the comments on that thread suggests a workaround (see comment #13) by copying the make-program from the release tarball.

But that probably will not work for something as old as FreeBSD 6.3

Alternatively, you could rebuild your ports tree as suggested in How to downgrade all ports on FreeBSD (not a nice solution either).

  • Upgrading to the latest patch level for 8.4 doesn't even work anymore. All the updates are gone from the servers by now. – 0xC0000022L Nov 12 '15 at 9:16
  • ouch (I repaired my machine in August...). – Thomas Dickey Nov 12 '15 at 9:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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