Bug 212919 - Installing lang/fpc-units would remove KDE4
Summary: Installing lang/fpc-units would remove KDE4
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: John Marino
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-23 09:55 UTC by Ian Goddard
Modified: 2016-09-26 00:19 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ian Goddard 2016-09-23 09:55:22 UTC
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.
Comment 1 commit-hook freebsd_committer freebsd_triage 2016-09-24 16:11:22 UTC
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
Comment 2 John Marino freebsd_committer freebsd_triage 2016-09-24 16:12:23 UTC
okay, thanks.
People that really want FPC's VLC can just install it individually instead of through the metaport.
Comment 3 Ian Goddard 2016-09-25 21:45:30 UTC
(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?
Comment 4 John Marino freebsd_committer freebsd_triage 2016-09-25 21:51:50 UTC
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.
Comment 5 Ian Goddard 2016-09-25 22:37:44 UTC
(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.
Comment 6 John Marino freebsd_committer freebsd_triage 2016-09-26 00:19:42 UTC
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.