Attempting to install fpc-units by pkg offers to remove KDE4. The problem lies with the VLC unit which depends on a version of VLC which depends on QT5 which is incompatible with KDE4. Workaround is to build from the ports tree with VLC commented out. Note: KDE4 already provides VLC.
A commit references this bug: Author: marino Date: Sat Sep 24 16:10:39 UTC 2016 New revision: 422730 URL: https://svnweb.freebsd.org/changeset/ports/422730 Log: lang/fpc-units: Set VLC unit as a non-default option Due to the VLC included in KDE, the fpc-units metapackage package coexist with the KDE metapackage due to FPC's VLC unit requiring QT5. Until such time where they can coexist, the FPC VLC unit will not be an on-by-default option to remove this install conflict. PR: 212919 Reported by: Ian Goddard (bz at austonley.org.uk) Changes: head/lang/fpc-units/Makefile
okay, thanks. People that really want FPC's VLC can just install it individually instead of through the metaport.
(In reply to John Marino from comment #2) Hi, This has worked its way through to the ports tree; thanks for that. It hasn't at time of writing made its way to the to the pkg repositories. I assume that's just a matter of time but I tried building from the ports tree. Building from the ports tree, however, raised another problem. Lazarus expects to find the unit source code under /usr/local/share as well as the object code. A straight make in the ports directory doesn't do that or leave the source anywhere else and there don't seem to be any other targets in the Makefile. Am I missing something or is this something that should be raised as another bug report?
fpc-units is a metaport. That means all it does is set a bunch of other ports as RUN dependencies which causes all those packages to be installed as a consequence of installing the metaport. In other words, if a hypothetical metaport defined 10 other ports as RUN dependencies, one could achieve the equivalent of installing it by installing the 10 packages individually. So yes, it takes about a week for new packages to be created, but you could just install the individual packages if you really needed it now. The reference to lazarus doesn't make sense to me because it depends on FPC, not the other way around. In any case, I don't know that much about the building of lazarus. It's basically a separate project from FPC.
(In reply to John Marino from comment #4) Functionally Lazarus depends on fpc-units in both object and source form. It'll install without either but you can't do anything with it which it will tell you if you try to start the IDE without configuring a directory where the source can be found. On a Debian system this is found at /usr/share/fpcsrc/3.0.0/. On BSD the standard is under /usr/local as you'd expect. In Object Pascal all new classes are generated by sub-classing an existing class from the class library. The IDE needs the source of the base class as does the debugger to step through at source level. As it's source I can just copy it all over from Debian to the FreeBSD box but anyone setting up from scratch would need to find it online and there are, of course, risks that the source used in the build aren't the same as the source used by Lazarus. I've appended a file listing the contents of /usr/share/fpcsrc/3.0.0/ form my Debian box. The Makefile has an install target which installs both the object and source.
well, as the author of ports-mgmt/synth, I can recommend rebuilding any FPC/lazarus stuff you want in a local package repository. That should work fine.