Bug 207906

Summary: [exp-run] Change header installation location for kdelibs4-based ports
Product: Ports & Packages Reporter: Raphael Kubo da Costa <rakuco>
Component: Individual Port(s)Assignee: Raphael Kubo da Costa <rakuco>
Status: Closed FIXED    
Severity: Affects Only Me CC: kde, portmgr
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Patch v1
none
Patch v2
none
Patch v3
none
Patch v4 none

Description Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-03-11 14:58:28 UTC
Created attachment 168013 [details]
Patch v1

kde@ would like to request an exp-run for <https://people.freebsd.org/~rakuco/exp-runs/kdelibs-include_kde4-v1.patch> (also attached).

We want to install x11/kdelibs4's headers into include/kde4 instead of include, and that consequently causes several other ports to have their installation paths changed too. The idea behind this is to reduce path conflicts between KDE4 ports and the upcoming KDE Frameworks 5 ports that will be installed into include/KF5 (if we continue installing the KDE4 headers into include, -I/usr/local/include can cause the wrong headers to be picked up).
Comment 1 Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-03-12 12:00:36 UTC
Created attachment 168039 [details]
Patch v2

Patch v2 is up: <https://people.freebsd.org/~rakuco/exp-runs/kdelibs-include_kde4-v2.patch>
Comment 3 Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-03-14 11:46:50 UTC
Created attachment 168146 [details]
Patch v3

Thanks, it looks like subversion was being stupid with the way it uses kde4-config to determine where kdelibs's headers are.

I've sent a patch upstream that hasn't made it to svn's development mailing list yet that does the right thing and am attaching a patch v3 (also available at <https://people.freebsd.org/~rakuco/exp-runs/kdelibs-include_kde4-v3.patch>) for completeness, there's no need to run another exp-run.

I'll wait for the current 9.3 exp-run to finish before landing, but I don't expect any surprises.
Comment 4 Antoine Brodin freebsd_committer freebsd_triage 2016-03-15 09:30:31 UTC
On 9.3 amd64 there is this failure too:

http://package18.nyi.freebsd.org/data/93amd64-default-PR207906/2016-03-14_08h30m26s/logs/errors/skrooge-1.12.5.log
Comment 5 Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-03-15 12:12:09 UTC
Created attachment 168234 [details]
Patch v4

For completeness, here's patch v4 (also available here: <https://people.freebsd.org/~rakuco/exp-runs/kdelibs-include_kde4-v4.patch>) that fixes finance/skrooge on 9.3.

I'll finally commit this to the tree. Fasten your seatbelts!
Comment 6 Raphael Kubo da Costa freebsd_committer freebsd_triage 2016-03-15 12:40:55 UTC
For some reason the commit did not add a comment here.

This was landed in ports r411156.
Comment 7 commit-hook freebsd_committer freebsd_triage 2016-03-15 15:20:41 UTC
A commit references this bug:

Author: rakuco
Date: Tue Mar 15 12:35:58 UTC 2016
New revision: 411156
URL: https://svnweb.freebsd.org/changeset/ports/411156

Log:
  Change header installation location for kdelibs4-based ports.

  Install x11/kdelibs4's headers into include/kde4 instead of include (which
  consequently causes several other ports to have their installation paths
  changed too).

  The idea behind this is to reduce path conflicts between KDE4 ports and the
  upcoming KDE Frameworks 5 ports that will be installed into include/KF5. If
  we continue installing the KDE4 headers into include/, we can end up in a
  situation like this:

      c++ [...] -I/usr/local/include -I/usr/local/include/KF5 file.cpp

  If the KDE4 and KF5 versions of a port have the same headers, the KDE4 port
  will unintentionally be picked up first and the build will fail.

  Most of this huge patch is just PORTREVISION bumps, pkg-plist changes and a
  few patches to FooConfig.cmake files to make them look into the kde4/
  subdirectory in include/.

  Changes which don't fit into the above are:
  - deskutils/kdepimlibs4: Import an upstream patch to remove some double
    semicolons that cause base GCC to fail. They have always been present, but
    since the faulty header was referenced via -isystem /usr/local/include
    this never caused any problems.
  - devel/subversion, devel/subversion18: Update patch-configure. The current
    kwallet changes there date back to 2011 (r272490), at a time when the
    build could fail when both KDE3 and KDE4 were installed. Replace those
    bits with a change I've submitted upstream to use the kde4-config program
    to determine where KDE4's headers and libraries are installed instead of
    assuming the headers are always in include/.

  Once again, huge thanks to Tobias Berner <tcberner@gmail.com> for being the
  first one to notice this problem when working on the KDE Frameworks 5 ports,
  coming up with the solution and bugging me until I had time to work on this
  and ask for the exp-run :-)

  PR:		207906 (exp-run)

Changes:
  head/astro/libkgeomap/Makefile
  head/astro/libkgeomap/pkg-plist
  head/audio/kio-audiocd/Makefile
  head/audio/kio-audiocd/pkg-plist
  head/audio/libkcddb/Makefile
  head/audio/libkcddb/pkg-plist
  head/audio/libkcompactdisc/Makefile
  head/audio/libkcompactdisc/pkg-plist
  head/databases/kbibtex/Makefile
  head/databases/kbibtex/pkg-plist
  head/deskutils/kdeconnect/Makefile
  head/deskutils/kdeconnect/pkg-plist
  head/deskutils/kdepim4/Makefile
  head/deskutils/kdepim4/pkg-plist
  head/deskutils/kdepimlibs4/Makefile
  head/deskutils/kdepimlibs4/files/patch-git_8d49c611
  head/deskutils/kdepimlibs4/pkg-plist
  head/deskutils/kdeplasma-addons/Makefile
  head/deskutils/kdeplasma-addons/pkg-plist
  head/devel/kde-dev-utils/Makefile
  head/devel/kde-dev-utils/pkg-plist
  head/devel/kdevelop-kde4/Makefile
  head/devel/kdevelop-kde4/pkg-plist
  head/devel/kdevplatform/Makefile
  head/devel/kdevplatform/pkg-plist
  head/devel/libkgapi/Makefile
  head/devel/libkgapi/pkg-plist
  head/devel/okteta/Makefile
  head/devel/okteta/pkg-plist
  head/devel/subversion/files/patch-configure
  head/devel/subversion18/files/patch-configure
  head/editors/calligra/Makefile
  head/editors/calligra/pkg-plist
  head/editors/kate/Makefile
  head/editors/kate/pkg-plist
  head/finance/kmymoney-kde4/Makefile
  head/finance/kmymoney-kde4/pkg-plist
  head/finance/libalkimia/Makefile
  head/finance/libalkimia/pkg-plist
  head/games/libkdegames/Makefile
  head/games/libkdegames/pkg-plist
  head/games/libkmahjongg/Makefile
  head/games/libkmahjongg/pkg-plist
  head/games/palapeli/Makefile
  head/games/palapeli/pkg-plist
  head/graphics/kdegraphics4-mobipocket/Makefile
  head/graphics/kdegraphics4-mobipocket/files/
  head/graphics/kdegraphics4-mobipocket/files/patch-QMobipocketConfig.cmake
  head/graphics/kdegraphics4-mobipocket/pkg-plist
  head/graphics/libkdcraw-kde4/Makefile
  head/graphics/libkdcraw-kde4/pkg-plist
  head/graphics/libkexiv2-kde4/Makefile
  head/graphics/libkexiv2-kde4/pkg-plist
  head/graphics/libkface/Makefile
  head/graphics/libkface/pkg-plist
  head/graphics/libkipi-kde4/Makefile
  head/graphics/libkipi-kde4/pkg-plist
  head/graphics/libksane/Makefile
  head/graphics/libksane/files/
  head/graphics/libksane/files/patch-KSaneConfig.cmake.in
  head/graphics/libksane/pkg-plist
  head/graphics/libkscreen/Makefile
  head/graphics/libkscreen/pkg-plist
  head/graphics/okular/Makefile
  head/graphics/okular/files/patch-OkularConfig.cmake
  head/graphics/okular/pkg-plist
  head/japanese/kiten/Makefile
  head/japanese/kiten/pkg-plist
  head/math/analitza/Makefile
  head/math/analitza/pkg-plist
  head/math/cantor/Makefile
  head/math/cantor/pkg-plist
  head/math/rocs/Makefile
  head/math/rocs/pkg-plist
  head/misc/libkdeedu/Makefile
  head/misc/libkdeedu/pkg-plist
  head/net/kio-upnp-ms/Makefile
  head/net/krdc/Makefile
  head/net/krdc/pkg-plist
  head/net/libkfbapi/Makefile
  head/net/libkfbapi/pkg-plist
  head/net/libmediawiki/Makefile
  head/net/libmediawiki/pkg-plist
  head/net-im/kopete-kde4/Makefile
  head/net-im/kopete-kde4/pkg-plist
  head/net-im/ktp-common-internals/Makefile
  head/net-im/ktp-common-internals/pkg-plist
  head/net-p2p/libktorrent/Makefile
  head/net-p2p/libktorrent/pkg-plist
  head/science/kalzium/Makefile
  head/science/kalzium/pkg-plist
  head/sysutils/baloo/Makefile
  head/sysutils/baloo/pkg-plist
  head/sysutils/baloo-widgets/Makefile
  head/sysutils/baloo-widgets/pkg-plist
  head/sysutils/k3b-kde4/Makefile
  head/sysutils/k3b-kde4/pkg-plist
  head/sysutils/kfilemetadata/Makefile
  head/sysutils/kfilemetadata/pkg-plist
  head/sysutils/nepomuk-core/Makefile
  head/sysutils/nepomuk-core/pkg-plist
  head/sysutils/nepomuk-widgets/Makefile
  head/sysutils/nepomuk-widgets/pkg-plist
  head/textproc/kompare/Makefile
  head/textproc/kompare/pkg-plist
  head/textproc/libkomparediff2/Makefile
  head/textproc/libkomparediff2/pkg-plist
  head/www/choqok/Makefile
  head/www/choqok/pkg-plist
  head/www/kdewebdev4/Makefile
  head/www/kdewebdev4/pkg-plist
  head/x11/kactivities/Makefile
  head/x11/kactivities/pkg-plist
  head/x11/kde4-baseapps/Makefile
  head/x11/kde4-baseapps/pkg-plist
  head/x11/kde4-runtime/Makefile
  head/x11/kde4-runtime/pkg-plist
  head/x11/kde4-workspace/Makefile
  head/x11/kde4-workspace/pkg-plist
  head/x11/kdelibs4/Makefile
  head/x11/kdelibs4/pkg-plist
  head/x11/libkonq/Makefile
  head/x11/libkonq/pkg-plist