Bug 200018 - editors/kate-plugin-pate: Poudriere build fails: Filesystem touched during build
Summary: editors/kate-plugin-pate: Poudriere build fails: Filesystem touched during build
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: freebsd-kde (group)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-06 21:24 UTC by Yuri Victorovich
Modified: 2015-12-19 12:58 UTC (History)
0 users

See Also:
rakuco: maintainer-feedback+
koobs: merge-quarterly?


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yuri Victorovich freebsd_committer freebsd_triage 2015-05-06 21:24:18 UTC
> ====>> Checking for filesystem violations... done
> ====>> Error: Filesystem touched during build:
> usr/local/lib/python2.7/site-packages/PyKDE4/pykdeconfig.pyc:
>         size (6747, 5835)
> usr/local/lib/python2.7/site-packages/PyKDE4/__init__.pyc:
>         size (247, 245)
> ====>> Cleaning up wrkdir
Comment 1 Yuri Victorovich freebsd_committer freebsd_triage 2015-12-10 22:19:06 UTC
Still a problem.
Comment 2 Raphael Kubo da Costa freebsd_committer freebsd_triage 2015-12-12 11:54:08 UTC
Confirmed, marking as Open.
Comment 3 Raphael Kubo da Costa freebsd_committer freebsd_triage 2015-12-14 17:23:24 UTC
This is caused by kdelibs's PythonMacros.cmake creating .pyc and .pyo files with ${STAGEDIR} in them. devel/py-pykde4's files (__init__.pyc and pykdeconfig.pyc) are installed with ${STAGEDIR} hardcoded, kate-plugin-pate is built with write permissions to the directory py-pykde4's files were installed, writes them with the right paths and causes a filesystem violation.

I am trying to solve this upstream with https://git.reviewboard.kde.org/r/126345/. If that lands, we'll need to bump PORTREVISION in kdelibs4 and other ports that use the PYTHON_INSTALL() CMake macro (checking lxr.kde.org lists at least the affected KDE ports).
Comment 4 Raphael Kubo da Costa freebsd_committer freebsd_triage 2015-12-18 13:03:36 UTC
https://git.reviewboard.kde.org/r/126413/ was needed as a follow-up. Both review requests have been landed, they need to be backported to the affected ports now.
Comment 5 commit-hook freebsd_committer freebsd_triage 2015-12-18 18:11:19 UTC
A commit references this bug:

Author: rakuco
Date: Fri Dec 18 18:10:25 UTC 2015
New revision: 403982
URL: https://svnweb.freebsd.org/changeset/ports/403982

Log:
  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
  MFH:		2015Q4

Changes:
  head/devel/py-pykde4/Makefile
  head/games/kajongg/Makefile
  head/games/kajongg/pkg-plist
  head/x11/kdelibs4/Makefile
  head/x11/kdelibs4/files/patch-cmake_modules_PythonMacros.cmake
  head/x11/kdelibs4/files/patch-git_016841a
  head/x11/kdelibs4/files/patch-git_94f1d2f
  head/x11/plasma-scriptengine-python/Makefile
Comment 6 commit-hook freebsd_committer freebsd_triage 2015-12-19 12:58:40 UTC
A commit references this bug:

Author: rakuco
Date: Sat Dec 19 12:58:27 UTC 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)

Changes:
_U  branches/2015Q4/
  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/kdelibs4/files/patch-git_016841a
  branches/2015Q4/x11/kdelibs4/files/patch-git_94f1d2f
  branches/2015Q4/x11/plasma-scriptengine-python/Makefile