From owner-svn-ports-branches@freebsd.org Sat Dec 19 12:58:28 2015 Return-Path: Delivered-To: svn-ports-branches@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E5C8A4CC96; Sat, 19 Dec 2015 12:58:28 +0000 (UTC) (envelope-from rakuco@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3662F1D33; Sat, 19 Dec 2015 12:58:28 +0000 (UTC) (envelope-from rakuco@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBJCwRTE009442; Sat, 19 Dec 2015 12:58:27 GMT (envelope-from rakuco@FreeBSD.org) Received: (from rakuco@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBJCwQJu009434; Sat, 19 Dec 2015 12:58:26 GMT (envelope-from rakuco@FreeBSD.org) Message-Id: <201512191258.tBJCwQJu009434@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rakuco set sender to rakuco@FreeBSD.org using -f From: Raphael Kubo da Costa Date: Sat, 19 Dec 2015 12:58:26 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r404014 - in branches/2015Q4: devel/py-pykde4 games/kajongg x11/kdelibs4 x11/kdelibs4/files x11/plasma-scriptengine-python X-SVN-Group: ports-branches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-branches@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for all the branches of the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Dec 2015 12:58:28 -0000 Author: rakuco Date: Sat Dec 19 12:58:26 2015 New Revision: 404014 URL: https://svnweb.freebsd.org/changeset/ports/404014 Log: MFH: r403982 Remove ${STAGEDIR} from pyc/pyo files installed with kdelibs's CMake macros. Bug 200018 is caused by the .pyc/.pyo files installed by devel/py-pykde4 containing references to the stage directory in them. When editors/kate-plugin-pate is built by a user with write-access to those PyKDE4 .pyc/.pyo files, they are rewritten automatically by Python to point to their current location, which most of the times is different from the staging location of where devel/py-pykde4 was built. This at the very least leads to a filesystem violation in Poudriere. The fix I landed upstream involves making kdelibs's PythonCompile.py accept a --destination-dir parameter with the directory we want to register in the .pyc/.pyo files, just like several ports do in their build or post-install targets by calling Python's compileall.py module with -d. The patches in files/ look somewhat confusing because we already patch PythonMacros.cmake to build .pyo files and had to integrate the other patches into it. At least I have added some context to patch-cmake_modules_PythonMacros.cmake to reduce the confusion. Bump PORTREVISION in affected ports: - devel/py-pykde4: Install .pyc/.pyo files with ${STAGEDIR} in them. - games/kajongg: The plist now includes .pyo files, and was adjusted to work with Python 3 in the future if necessary. - x11/kdelibs4: Install new CMake files. - x11/plasma-scriptengine-python: Install .pyc/.pyo files with ${STAGEDIR} in them. PR: 200018 Approved by: ports-secteam (feld) Added: branches/2015Q4/x11/kdelibs4/files/patch-git_016841a - copied unchanged from r403982, head/x11/kdelibs4/files/patch-git_016841a branches/2015Q4/x11/kdelibs4/files/patch-git_94f1d2f - copied unchanged from r403982, head/x11/kdelibs4/files/patch-git_94f1d2f Modified: branches/2015Q4/devel/py-pykde4/Makefile branches/2015Q4/games/kajongg/Makefile branches/2015Q4/games/kajongg/pkg-plist branches/2015Q4/x11/kdelibs4/Makefile branches/2015Q4/x11/kdelibs4/files/patch-cmake_modules_PythonMacros.cmake branches/2015Q4/x11/plasma-scriptengine-python/Makefile Directory Properties: branches/2015Q4/ (props changed) Modified: branches/2015Q4/devel/py-pykde4/Makefile ============================================================================== --- branches/2015Q4/devel/py-pykde4/Makefile Sat Dec 19 11:03:36 2015 (r404013) +++ branches/2015Q4/devel/py-pykde4/Makefile Sat Dec 19 12:58:26 2015 (r404014) @@ -2,6 +2,7 @@ PORTNAME= pykde4 PORTVERSION= ${KDE4_VERSION} +PORTREVISION= 1 CATEGORIES= devel kde python MASTER_SITES= KDE/${KDE4_BRANCH}/${PORTVERSION}/src PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} Modified: branches/2015Q4/games/kajongg/Makefile ============================================================================== --- branches/2015Q4/games/kajongg/Makefile Sat Dec 19 11:03:36 2015 (r404013) +++ branches/2015Q4/games/kajongg/Makefile Sat Dec 19 12:58:26 2015 (r404014) @@ -2,6 +2,7 @@ PORTNAME= kajongg PORTVERSION= ${KDE4_VERSION} +PORTREVISION= 1 CATEGORIES= games kde MASTER_SITES= KDE/${KDE4_BRANCH}/${PORTVERSION}/src DIST_SUBDIR= KDE/${PORTVERSION} Modified: branches/2015Q4/games/kajongg/pkg-plist ============================================================================== --- branches/2015Q4/games/kajongg/pkg-plist Sat Dec 19 11:03:36 2015 (r404013) +++ branches/2015Q4/games/kajongg/pkg-plist Sat Dec 19 12:58:26 2015 (r404014) @@ -2,128 +2,187 @@ bin/kajongg bin/kajonggserver share/applications/kde4/kajongg.desktop share/apps/kajongg/about.py -share/apps/kajongg/about.pyc +share/apps/kajongg/%%PYCACHE%%about.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%about.%%PYO_SUFFIX%% share/apps/kajongg/altint.py -share/apps/kajongg/altint.pyc +share/apps/kajongg/%%PYCACHE%%altint.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%altint.%%PYO_SUFFIX%% share/apps/kajongg/animation.py -share/apps/kajongg/animation.pyc +share/apps/kajongg/%%PYCACHE%%animation.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%animation.%%PYO_SUFFIX%% share/apps/kajongg/background.py -share/apps/kajongg/background.pyc +share/apps/kajongg/%%PYCACHE%%background.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%background.%%PYO_SUFFIX%% share/apps/kajongg/backgroundselector.py -share/apps/kajongg/backgroundselector.pyc +share/apps/kajongg/%%PYCACHE%%backgroundselector.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%backgroundselector.%%PYO_SUFFIX%% share/apps/kajongg/backgroundselector.ui share/apps/kajongg/board.py -share/apps/kajongg/board.pyc +share/apps/kajongg/%%PYCACHE%%board.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%board.%%PYO_SUFFIX%% share/apps/kajongg/chat.py -share/apps/kajongg/chat.pyc +share/apps/kajongg/%%PYCACHE%%chat.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%chat.%%PYO_SUFFIX%% share/apps/kajongg/client.py -share/apps/kajongg/client.pyc +share/apps/kajongg/%%PYCACHE%%client.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%client.%%PYO_SUFFIX%% share/apps/kajongg/common.py -share/apps/kajongg/common.pyc +share/apps/kajongg/%%PYCACHE%%common.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%common.%%PYO_SUFFIX%% share/apps/kajongg/config.py -share/apps/kajongg/config.pyc +share/apps/kajongg/%%PYCACHE%%config.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%config.%%PYO_SUFFIX%% share/apps/kajongg/configdialog.py -share/apps/kajongg/configdialog.pyc +share/apps/kajongg/%%PYCACHE%%configdialog.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%configdialog.%%PYO_SUFFIX%% share/apps/kajongg/deferredutil.py -share/apps/kajongg/deferredutil.pyc +share/apps/kajongg/%%PYCACHE%%deferredutil.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%deferredutil.%%PYO_SUFFIX%% share/apps/kajongg/dialogs.py -share/apps/kajongg/dialogs.pyc +share/apps/kajongg/%%PYCACHE%%dialogs.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%dialogs.%%PYO_SUFFIX%% share/apps/kajongg/differ.py -share/apps/kajongg/differ.pyc +share/apps/kajongg/%%PYCACHE%%differ.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%differ.%%PYO_SUFFIX%% share/apps/kajongg/game.py -share/apps/kajongg/game.pyc +share/apps/kajongg/%%PYCACHE%%game.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%game.%%PYO_SUFFIX%% share/apps/kajongg/games.py -share/apps/kajongg/games.pyc +share/apps/kajongg/%%PYCACHE%%games.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%games.%%PYO_SUFFIX%% share/apps/kajongg/genericdelegates.py -share/apps/kajongg/genericdelegates.pyc +share/apps/kajongg/%%PYCACHE%%genericdelegates.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%genericdelegates.%%PYO_SUFFIX%% share/apps/kajongg/guiutil.py -share/apps/kajongg/guiutil.pyc +share/apps/kajongg/%%PYCACHE%%guiutil.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%guiutil.%%PYO_SUFFIX%% share/apps/kajongg/hand.py -share/apps/kajongg/hand.pyc +share/apps/kajongg/%%PYCACHE%%hand.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%hand.%%PYO_SUFFIX%% share/apps/kajongg/handboard.py -share/apps/kajongg/handboard.pyc +share/apps/kajongg/%%PYCACHE%%handboard.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%handboard.%%PYO_SUFFIX%% share/apps/kajongg/humanclient.py -share/apps/kajongg/humanclient.pyc +share/apps/kajongg/%%PYCACHE%%humanclient.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%humanclient.%%PYO_SUFFIX%% share/apps/kajongg/intelligence.py -share/apps/kajongg/intelligence.pyc +share/apps/kajongg/%%PYCACHE%%intelligence.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%intelligence.%%PYO_SUFFIX%% share/apps/kajongg/kajongg.py share/apps/kajongg/kajonggserver.py share/apps/kajongg/kajonggui.rc share/apps/kajongg/kde.py -share/apps/kajongg/kde.pyc +share/apps/kajongg/%%PYCACHE%%kde.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%kde.%%PYO_SUFFIX%% share/apps/kajongg/kdestub.py -share/apps/kajongg/kdestub.pyc +share/apps/kajongg/%%PYCACHE%%kdestub.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%kdestub.%%PYO_SUFFIX%% share/apps/kajongg/log.py -share/apps/kajongg/log.pyc +share/apps/kajongg/%%PYCACHE%%log.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%log.%%PYO_SUFFIX%% share/apps/kajongg/login.py -share/apps/kajongg/login.pyc +share/apps/kajongg/%%PYCACHE%%login.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%login.%%PYO_SUFFIX%% share/apps/kajongg/mainwindow.py -share/apps/kajongg/mainwindow.pyc +share/apps/kajongg/%%PYCACHE%%mainwindow.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%mainwindow.%%PYO_SUFFIX%% share/apps/kajongg/meld.py -share/apps/kajongg/meld.pyc +share/apps/kajongg/%%PYCACHE%%meld.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%meld.%%PYO_SUFFIX%% share/apps/kajongg/message.py -share/apps/kajongg/message.pyc +share/apps/kajongg/%%PYCACHE%%message.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%message.%%PYO_SUFFIX%% share/apps/kajongg/modeltest.py -share/apps/kajongg/modeltest.pyc +share/apps/kajongg/%%PYCACHE%%modeltest.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%modeltest.%%PYO_SUFFIX%% share/apps/kajongg/move.py -share/apps/kajongg/move.pyc +share/apps/kajongg/%%PYCACHE%%move.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%move.%%PYO_SUFFIX%% share/apps/kajongg/permutations.py -share/apps/kajongg/permutations.pyc +share/apps/kajongg/%%PYCACHE%%permutations.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%permutations.%%PYO_SUFFIX%% share/apps/kajongg/player.py -share/apps/kajongg/player.pyc +share/apps/kajongg/%%PYCACHE%%player.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%player.%%PYO_SUFFIX%% share/apps/kajongg/playerlist.py -share/apps/kajongg/playerlist.pyc +share/apps/kajongg/%%PYCACHE%%playerlist.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%playerlist.%%PYO_SUFFIX%% share/apps/kajongg/predefined.py -share/apps/kajongg/predefined.pyc +share/apps/kajongg/%%PYCACHE%%predefined.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%predefined.%%PYO_SUFFIX%% share/apps/kajongg/qstring.py -share/apps/kajongg/qstring.pyc +share/apps/kajongg/%%PYCACHE%%qstring.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%qstring.%%PYO_SUFFIX%% share/apps/kajongg/qt.py -share/apps/kajongg/qt.pyc +share/apps/kajongg/%%PYCACHE%%qt.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%qt.%%PYO_SUFFIX%% share/apps/kajongg/qt4.py -share/apps/kajongg/qt4.pyc +share/apps/kajongg/%%PYCACHE%%qt4.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%qt4.%%PYO_SUFFIX%% share/apps/kajongg/qt4reactor.py -share/apps/kajongg/qt4reactor.pyc +share/apps/kajongg/%%PYCACHE%%qt4reactor.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%qt4reactor.%%PYO_SUFFIX%% share/apps/kajongg/qt5.py -share/apps/kajongg/qt5.pyc +share/apps/kajongg/%%PYCACHE%%qt5.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%qt5.%%PYO_SUFFIX%% share/apps/kajongg/query.py -share/apps/kajongg/query.pyc +share/apps/kajongg/%%PYCACHE%%query.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%query.%%PYO_SUFFIX%% share/apps/kajongg/rule.py -share/apps/kajongg/rule.pyc +share/apps/kajongg/%%PYCACHE%%rule.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%rule.%%PYO_SUFFIX%% share/apps/kajongg/rulecode.py -share/apps/kajongg/rulecode.pyc +share/apps/kajongg/%%PYCACHE%%rulecode.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%rulecode.%%PYO_SUFFIX%% share/apps/kajongg/rulesetselector.py -share/apps/kajongg/rulesetselector.pyc +share/apps/kajongg/%%PYCACHE%%rulesetselector.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%rulesetselector.%%PYO_SUFFIX%% share/apps/kajongg/scene.py -share/apps/kajongg/scene.pyc +share/apps/kajongg/%%PYCACHE%%scene.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%scene.%%PYO_SUFFIX%% share/apps/kajongg/scoring.py -share/apps/kajongg/scoring.pyc +share/apps/kajongg/%%PYCACHE%%scoring.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%scoring.%%PYO_SUFFIX%% share/apps/kajongg/scoringdialog.py -share/apps/kajongg/scoringdialog.pyc +share/apps/kajongg/%%PYCACHE%%scoringdialog.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%scoringdialog.%%PYO_SUFFIX%% share/apps/kajongg/server.py -share/apps/kajongg/server.pyc +share/apps/kajongg/%%PYCACHE%%server.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%server.%%PYO_SUFFIX%% share/apps/kajongg/sound.py -share/apps/kajongg/sound.pyc +share/apps/kajongg/%%PYCACHE%%sound.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%sound.%%PYO_SUFFIX%% share/apps/kajongg/statesaver.py -share/apps/kajongg/statesaver.pyc +share/apps/kajongg/%%PYCACHE%%statesaver.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%statesaver.%%PYO_SUFFIX%% share/apps/kajongg/tables.py -share/apps/kajongg/tables.pyc +share/apps/kajongg/%%PYCACHE%%tables.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%tables.%%PYO_SUFFIX%% share/apps/kajongg/tile.py -share/apps/kajongg/tile.pyc +share/apps/kajongg/%%PYCACHE%%tile.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%tile.%%PYO_SUFFIX%% share/apps/kajongg/tileset.py -share/apps/kajongg/tileset.pyc +share/apps/kajongg/%%PYCACHE%%tileset.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%tileset.%%PYO_SUFFIX%% share/apps/kajongg/tilesetselector.py -share/apps/kajongg/tilesetselector.pyc +share/apps/kajongg/%%PYCACHE%%tilesetselector.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%tilesetselector.%%PYO_SUFFIX%% share/apps/kajongg/tilesetselector.ui share/apps/kajongg/tree.py -share/apps/kajongg/tree.pyc +share/apps/kajongg/%%PYCACHE%%tree.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%tree.%%PYO_SUFFIX%% share/apps/kajongg/uitile.py -share/apps/kajongg/uitile.pyc +share/apps/kajongg/%%PYCACHE%%uitile.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%uitile.%%PYO_SUFFIX%% share/apps/kajongg/uiwall.py -share/apps/kajongg/uiwall.pyc +share/apps/kajongg/%%PYCACHE%%uiwall.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%uiwall.%%PYO_SUFFIX%% share/apps/kajongg/util.py -share/apps/kajongg/util.pyc +share/apps/kajongg/%%PYCACHE%%util.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%util.%%PYO_SUFFIX%% share/apps/kajongg/visible.py -share/apps/kajongg/visible.pyc +share/apps/kajongg/%%PYCACHE%%visible.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%visible.%%PYO_SUFFIX%% share/apps/kajongg/voices/female1/COPYRIGHT share/apps/kajongg/voices/female1/b1.ogg share/apps/kajongg/voices/female1/b2.ogg @@ -300,7 +359,8 @@ share/apps/kajongg/voices/male2/wn.ogg share/apps/kajongg/voices/male2/ws.ogg share/apps/kajongg/voices/male2/ww.ogg share/apps/kajongg/wall.py -share/apps/kajongg/wall.pyc +share/apps/kajongg/%%PYCACHE%%wall.%%PYC_SUFFIX%% +share/apps/kajongg/%%PYCACHE%%wall.%%PYO_SUFFIX%% share/doc/HTML/en/kajongg/chat.png share/doc/HTML/en/kajongg/common share/doc/HTML/en/kajongg/config_background.png Modified: branches/2015Q4/x11/kdelibs4/Makefile ============================================================================== --- branches/2015Q4/x11/kdelibs4/Makefile Sat Dec 19 11:03:36 2015 (r404013) +++ branches/2015Q4/x11/kdelibs4/Makefile Sat Dec 19 12:58:26 2015 (r404014) @@ -3,7 +3,7 @@ PORTNAME= kdelibs PORTVERSION= ${KDE4_VERSION} -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11 kde MASTER_SITES= KDE/${KDE4_BRANCH}/${PORTVERSION}/src DIST_SUBDIR= KDE/${PORTVERSION} Modified: branches/2015Q4/x11/kdelibs4/files/patch-cmake_modules_PythonMacros.cmake ============================================================================== --- branches/2015Q4/x11/kdelibs4/files/patch-cmake_modules_PythonMacros.cmake Sat Dec 19 11:03:36 2015 (r404013) +++ branches/2015Q4/x11/kdelibs4/files/patch-cmake_modules_PythonMacros.cmake Sat Dec 19 12:58:26 2015 (r404014) @@ -1,6 +1,13 @@ ---- cmake/modules/PythonMacros.cmake.orig 2013-01-23 22:44:16.000000000 +0100 -+++ cmake/modules/PythonMacros.cmake 2013-02-27 13:39:48.000000000 +0100 -@@ -43,9 +43,11 @@ +The pyo-related changes are (at least for now) FreeBSD-specific and are present +in order to install .pyo files in addition to .pyc files when installing Python +modules. + +The "--destination-dir" changes are required to fix PR 200018 and come from a +change landed upstream, 94f1d2f ("PythonMacros: specify destination directory +in byte-compiled files"). See patch-git_94f1d2f for more information. +--- cmake/modules/PythonMacros.cmake ++++ cmake/modules/PythonMacros.cmake +@@ -41,16 +41,18 @@ macro(PYTHON_INSTALL SOURCE_FILE DESTINATION_DIR) if(PYTHON_VERSION_STRING VERSION_GREATER 3.1) # To get the right version for suffix set(_bin_pyc "${CMAKE_CURRENT_BINARY_DIR}/${_basepath}/__pycache__/${_filenamebase}.cpython-${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}.pyc") @@ -12,25 +19,37 @@ set(_py_install_dir "${DESTINATION_DIR}") endif() -@@ -60,6 +62,7 @@ - TARGET compile_python_files + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}) + + # Setting because it will be displayed later, in compile_python_files +- set(_message "Byte-compiling ${_bin_py} to ${_bin_pyc}") ++ set(_message "Byte-compiling ${_bin_py} to ${_bin_pyc} and ${_bin_pyo}") + + string(REPLACE "/" "_" _rule_name "${_basepath}/${_bin_pyc}") + add_custom_target("${_rule_name}" ALL) +@@ -60,7 +62,8 @@ macro(PYTHON_INSTALL SOURCE_FILE DESTINATION_DIR) + add_custom_command( + TARGET "${_rule_name}" COMMAND "${CMAKE_COMMAND}" -E echo "${_message}" - COMMAND "${PYTHON_EXECUTABLE}" "${_python_compile_py}" "${_bin_py}" -+ COMMAND "${PYTHON_EXECUTABLE}" -O "${_python_compile_py}" "${_bin_py}" +- COMMAND "${PYTHON_EXECUTABLE}" "${_python_compile_py}" "${_bin_py}" ++ COMMAND "${PYTHON_EXECUTABLE}" "${_python_compile_py}" "--destination-dir" "${DESTINATION_DIR}" "${_bin_py}" ++ COMMAND "${PYTHON_EXECUTABLE}" -O "${_python_compile_py}" "--destination-dir" "${DESTINATION_DIR}" "${_bin_py}" DEPENDS "${_absfilename}" ) else() -@@ -68,11 +71,13 @@ +@@ -68,12 +71,13 @@ macro(PYTHON_INSTALL SOURCE_FILE DESTINATION_DIR) + TARGET "${_rule_name}" COMMAND "${CMAKE_COMMAND}" -E echo "${_message}" COMMAND "${CMAKE_COMMAND}" -E copy "${_absfilename}" "${_bin_py}" - COMMAND "${PYTHON_EXECUTABLE}" "${_python_compile_py}" "${_bin_py}" -+ COMMAND "${PYTHON_EXECUTABLE}" -O "${_python_compile_py}" "${_bin_py}" +- COMMAND "${PYTHON_EXECUTABLE}" "${_python_compile_py}" "${_bin_py}" ++ COMMAND "${PYTHON_EXECUTABLE}" "${_python_compile_py}" "--destination-dir" "${DESTINATION_DIR}" "${_bin_py}" ++ COMMAND "${PYTHON_EXECUTABLE}" -O "${_python_compile_py}" "--destination-dir" "${DESTINATION_DIR}" "${_bin_py}" DEPENDS "${_absfilename}" ) endif() - install(FILES ${_bin_pyc} DESTINATION "${_py_install_dir}") -+ install(FILES ${_bin_pyo} DESTINATION "${_py_install_dir}") +- install(FILES ${_bin_pyc} DESTINATION "${_py_install_dir}") ++ install(FILES ${_bin_pyc} ${_bin_pyo} DESTINATION "${_py_install_dir}") unset(_py_install_dir) unset(_message) Copied: branches/2015Q4/x11/kdelibs4/files/patch-git_016841a (from r403982, head/x11/kdelibs4/files/patch-git_016841a) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2015Q4/x11/kdelibs4/files/patch-git_016841a Sat Dec 19 12:58:26 2015 (r404014, copy of r403982, head/x11/kdelibs4/files/patch-git_016841a) @@ -0,0 +1,78 @@ +commit 016841aeb0b180981122085e9b1d49ae66951670 +Author: Raphael Kubo da Costa +Date: Fri Dec 18 13:35:35 2015 +0100 + + FindPyKDE4: Make PYKDE4_INSTALL_PYTHON_FILES use PYTHON_INSTALL. + + Commit 94f1d2f ("PythonMacros: specify destination directory in + byte-compiled files") broke Kajongg's build because it uses the + PYKDE4_INSTALL_PYTHON_FILES() macro, whose use of PythonCompile.py had + not been updated. + + Instead of just passing --destination-dir in FindPyKDE4.cmake, rewrite + the PYKDE4_INSTALL_PYTHON_FILES() macro to use PythonMacros's + PYTHON_INSTALL(). Not only does this fix Kajongg's build, but it also + removes a lot of code duplication and makes + PYKDE4_INSTALL_PYTHON_FILES() work with Python 3.2+'s different .pyc + location. + + REVIEW: 126413 + +Required for PR 200018. +--- cmake/modules/FindPyKDE4.cmake ++++ cmake/modules/FindPyKDE4.cmake +@@ -9,6 +9,7 @@ + # This file is in the public domain. + + INCLUDE(FindPythonInterp) ++include(PythonMacros) + + SET(PYKDE4_FOUND FALSE) + +@@ -104,45 +105,8 @@ ENDIF(PYTHONINTERP_FOUND) + # project.. + # + MACRO(PYKDE4_INSTALL_PYTHON_FILES) +- +- ADD_CUSTOM_TARGET(pysupport ALL) + FOREACH (_current_file ${ARGN}) +- +- # Install the source file. +- INSTALL(FILES ${_current_file} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}) +- +- # Byte compile and install the .pyc file. +- GET_FILENAME_COMPONENT(_absfilename ${_current_file} ABSOLUTE) +- GET_FILENAME_COMPONENT(_filename ${_current_file} NAME) +- GET_FILENAME_COMPONENT(_filenamebase ${_current_file} NAME_WE) +- GET_FILENAME_COMPONENT(_basepath ${_current_file} PATH) +- SET(_bin_py ${CMAKE_BINARY_DIR}/${_basepath}/${_filename}) +- SET(_bin_pyc ${CMAKE_BINARY_DIR}/${_basepath}/${_filenamebase}.pyc) +- +- FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_basepath}) +- +- SET(_message "-DMESSAGE=Byte-compiling ${_bin_py}") +- +- GET_FILENAME_COMPONENT(_abs_bin_py ${_bin_py} ABSOLUTE) +- IF(_abs_bin_py STREQUAL ${_absfilename}) # Don't copy the file onto itself. +- ADD_CUSTOM_COMMAND( +- TARGET pysupport +- COMMAND ${CMAKE_COMMAND} -E echo ${message} +- COMMAND ${PYTHON_EXECUTABLE} ${current_module_dir}/PythonCompile.py ${_bin_py} +- DEPENDS ${_absfilename} +- ) +- ELSE(_abs_bin_py STREQUAL ${_absfilename}) +- ADD_CUSTOM_COMMAND( +- TARGET pysupport +- COMMAND ${CMAKE_COMMAND} -E echo ${message} +- COMMAND ${CMAKE_COMMAND} -E copy ${_absfilename} ${_bin_py} +- COMMAND ${PYTHON_EXECUTABLE} ${current_module_dir}/PythonCompile.py ${_bin_py} +- DEPENDS ${_absfilename} +- ) +- ENDIF(_abs_bin_py STREQUAL ${_absfilename}) +- +- INSTALL(FILES ${_bin_pyc} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}) +- ++ python_install(${_current_file} ${DATA_INSTALL_DIR}/${PROJECT_NAME}) + ENDFOREACH (_current_file) + ENDMACRO(PYKDE4_INSTALL_PYTHON_FILES) + Copied: branches/2015Q4/x11/kdelibs4/files/patch-git_94f1d2f (from r403982, head/x11/kdelibs4/files/patch-git_94f1d2f) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2015Q4/x11/kdelibs4/files/patch-git_94f1d2f Sat Dec 19 12:58:26 2015 (r404014, copy of r403982, head/x11/kdelibs4/files/patch-git_94f1d2f) @@ -0,0 +1,67 @@ +commit 94f1d2fa9582a2942d5154b85c849cc3c6140e31 +Author: Raphael Kubo da Costa +Date: Wed Dec 16 18:25:13 2015 +0100 + + PythonMacros: specify destination directory in byte-compiled files. + + The PYTHON_INSTALL() macro is a wrapper around the py_compile Python + module that also installs the byte-code (.pyc) file it generates. + + However, when a .py file is passed to py_compile without any additional + arguments, its full path is recorded in the .pyc file. This is + problematic, as most distributions install all files into a build root + instead of simply copying files to / as part of the packaging process. + In this case, the generated .pyc file will have something like + /wrkdir/buildroot/usr/lib/python2.7/site-packages/Foo/my_module.py + in it. Not only does this show up in exception tracebacks, but if the + user later invokes my_module.py and has write access to my_module's + directory, my_module.pyc will be rewritten with the right path to + my_module.py (without the build root). This can lead to uninstallation + errors if the package management system checks each file before removal, + for example. + + Fix it by rewritting the PythonCompile.py script so that it takes a + --destination-dir argument that we use to pass the full path to + my_module.py instead of letting it be (wrongly) deduced. + + It is important to note that PythonCompile.py now uses the argparse + module, which is not present in Python <= 2.6, Python 3.0 and Python + 3.1. + + REVIEW: 126345 + +Required for PR 200018. Part of this commit is in patch-cmake_modules_PythonMacros.py. +--- cmake/modules/PythonCompile.py ++++ cmake/modules/PythonCompile.py +@@ -1,4 +1,29 @@ + # By Simon Edwards + # This file is in the public domain. +-import py_compile, sys +-sys.exit(py_compile.main()) ++ ++""" ++Byte-compiles a given Python source file, generating a .pyc file or, if the ++Python executable was invoked with -O, a .pyo file from it. ++It uses the --destination-dir option to set the path to the source file (which ++will appear in tracebacks, for example), so that if the .py file was in a build ++root will appear with the right path. ++""" ++ ++import argparse ++import os ++import py_compile ++ ++ ++if __name__ == '__main__': ++ parser = argparse.ArgumentParser('Byte-compiles a Python source file.') ++ parser.add_argument('-d', '--destination-dir', required=True, ++ help='Location where the source file will be ' ++ 'installed, without any build roots.') ++ parser.add_argument('source_file', ++ help='Source file to byte-compile.') ++ ++ args = parser.parse_args() ++ ++ dfile = os.path.join(args.destination_dir, ++ os.path.basename(args.source_file)) ++ py_compile.compile(args.source_file, dfile=dfile) Modified: branches/2015Q4/x11/plasma-scriptengine-python/Makefile ============================================================================== --- branches/2015Q4/x11/plasma-scriptengine-python/Makefile Sat Dec 19 11:03:36 2015 (r404013) +++ branches/2015Q4/x11/plasma-scriptengine-python/Makefile Sat Dec 19 12:58:26 2015 (r404014) @@ -2,6 +2,7 @@ PORTNAME= plasma-scriptengine-python PORTVERSION= ${KDE4_WORKSPACE_VERSION} +PORTREVISION= 1 CATEGORIES= x11 kde MASTER_SITES= KDE/${KDE4_BRANCH}/${KDE4_VERSION}/src DISTNAME= kde-workspace-${PORTVERSION}