ports/171381: [patch] finance/gnucash fails to generate and install .pyc/.pyo files
John W. O'Brien
john at saltant.com
Thu Sep 6 13:40:13 UTC 2012
>Number: 171381
>Category: ports
>Synopsis: [patch] finance/gnucash fails to generate and install .pyc/.pyo files
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Sep 06 13:40:13 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: John W. O'Brien
>Release: 9.1-PRERELEASE
>Organization:
Saltant Solutions
>Environment:
FreeBSD XXXX.saltant.net 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #3 r239833: Wed Aug 29 10:08:24 EDT 2012 root at XXXX.saltant.net:/usr/obj/usr/src/sys/NIPPL amd64
>Description:
When Python binding/support is enabled (PORT_OPTIONS+=PYTHON), the compiled Python bytecode (.pyc) and optimized bytecode (.pyo) files are not generated by the build target, nor installed by the install target. However, the packing list specifies them and therefore the package target expects them and fails as a result.
[/usr/ports]# svn info | egrep "URL|Revision"
URL: svn://svn0.us-east.freebsd.org/ports/head
Revision: 303631
[/usr/ports/finance/gnucash]# make showconfig
===> The following configuration options are available for gnucash-2.4.11_2:
AQBANKING=on: AqBanking support (HBCI/OpenHBCI)
DATABASE=on: Enable SQL database backends
LOCALE_TAX=off: Enable localized tax categories
OFX=on: OFX support
PYTHON=on: Python binding/support
WEBKIT=off: Use webkit instead of gtkhtml for the HTML engine
===> Use 'make config' to modify these settings
[/usr/ports/finance/gnucash]# make -V CC -V CXX -V CPP -V PYTHON_REL
clang
clang++
clang-cpp
273
[/usr/ports/finance/gnucash]# grep ".py" pkg-plist
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/__init__.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/__init__.pyc
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/__init__.pyo
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/function_class.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/function_class.pyc
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/function_class.pyo
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/gnucash_business.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/gnucash_business.pyc
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/gnucash_business.pyo
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/gnucash_core.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/gnucash_core.pyc
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/gnucash_core.pyo
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/gnucash_core_c.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/gnucash_core_c.pyc
%%PYTHON%%%%PYTHON_SITELIBDIR%%/gnucash/gnucash_core_c.pyo
>How-To-Repeat:
(Output omitted)
Package creation fails:
[/usr/ports/finance/gnucash]# make package
Package deinstallation generates warnings due to missing files:
[/usr/ports/finance/gnucash]# make install
[/usr/ports/finance/gnucash]# make deinstall
>Fix:
The attached patch provides a quick and dirty solution by generating the compiled bytecode files in situ using a gnucash-provided in the post-install target. If this script were to fail, the installation would not complete cleanly (e.g. pkg_delete would be useless).
I expect that a better fix would be to patch, in an upstream-able fashion, ${WRKDIR}/gnucash-2.4.11/src/optional/python-bindings/Makefile.am to generate and install the bytecode files. This exceeds my abilities with autotools however and must be deferred to a more knowledgeable developer. I'd be happy to help if given suitable direction.
Patch attached with submission follows:
Index: Makefile
===================================================================
--- Makefile (revision 303631)
+++ Makefile (working copy)
@@ -3,7 +3,7 @@
PORTNAME= gnucash
PORTVERSION= 2.4.11
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= finance gnome
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}%20%28stable%29/${PORTVERSION}
@@ -115,6 +115,10 @@
.endif
post-install:
+. if${PORT_OPTIONS:MPYTHON}
+ ${WRKDIR}/${PORTNAME}-${PORTVERSION}/py-compile \
+ ${PYTHON_SITELIBDIR}/${PORTNAME}/*.py
+. endif
@${CAT} ${PKGMESSAGE}
.include <bsd.port.mk>
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list