Most services and daemon when started have no privileges over local file system while packed egg file should be unpacked somewhere before use. Anyway egg is a distribution format, while we are using packages with ports we don't need to stick to eggs. Possible errors would be: Traceback (most recent call last): File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/trac/web/api.py", line 514, in send_error data, 'text/html') File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/trac/web/chrome.py", line 975, in render_template template = self.load_template(filename, method=method) File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/trac/web/chrome.py", line 933, in load_template self.get_all_templates_dirs(), auto_reload=self.auto_reload, File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/trac/web/chrome.py", line 649, in get_all_templates_dirs dirs.extend(provider.get_templates_dirs() or []) File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/trac/web/chrome.py", line 627, in get_templates_dirs pkg_resources.resource_filename('trac', 'templates'), File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/pkg_resources.py", line 914, in resource_filename self, resource_name File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/pkg_resources.py", line 1393, in get_resource_filename return self._extract_resource(manager, zip_path) File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/pkg_resources.py", line 1400, in _extract_resource manager, os.path.join(zip_path, name) File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/pkg_resources.py", line 1418, in _extract_resource self.egg_name, self._parts(zip_path) File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/pkg_resources.py", line 994, in get_cache_path self.extraction_error() File "build/bdist.freebsd-9.1-RELEASE-p1-amd64/egg/pkg_resources.py", line 960, in extraction_error raise err ExtractionError: Can't extract file(s) to egg cache The following error occurred while trying to extract file(s) to the Python egg cache: [Errno 13] Permission denied: '/.python-eggs' The Python egg cache directory is currently set to: /.python-eggs Perhaps your account does not have write access to this directory? You can change the cache directory by setting the PYTHON_EGG_CACHE environment variable to point to an accessible directory.
Responsible Changed From-To: freebsd-ports-bugs->freebsd-python Over to maintainer(s).
Hi Volodymyr, While it is a desirable (and planned) long-terms goal to have consistent behaviour in the ports tree, there is not *yet* a formal or specific documented policy regarding Python module packaging in FreeBSD. A number of maintainers *do* however, make changes to upstream modules by explicitly setting zip_safe=False in setup.py, or overriding the use of setuptools with plain-old distutils, resulting in the module being installed uncompressed. For those modules or ports that *dont* currently do this such as www/trac, the end-user *can* use the PYTHON_EGG_CACHE environment variable that points to a writable area of the filesystem to address the behaviour. In short, I recommend that this PR be changed, assigning it to the maintainer of the www/trac port for follow-up and resolution.
Class Changed From-To: sw-bug->change-request Port packaging change-request, not a software bug
Responsible Changed From-To: freebsd-python->clsung Fix synposis (category) and reassign to maintaner
23.10.2013 07:23, Kubilay Kocak wrote: > Hi Volodymyr, > > While it is a desirable (and planned) long-terms goal to have consistent > behaviour in the ports tree, there is not *yet* a formal or specific > documented policy regarding Python module packaging in FreeBSD. And that's bad. > A number of maintainers *do* however, make changes to upstream modules > by explicitly setting zip_safe=False in setup.py, or overriding the use > of setuptools with plain-old distutils, resulting in the module being > installed uncompressed. Or like me overriding the way egg is installed to uncompress it. > For those modules or ports that *dont* currently do this such as > www/trac, the end-user *can* use the PYTHON_EGG_CACHE environment > variable that points to a writable area of the filesystem to address the > behaviour. While this is possibly true for www/trac this can be not so funny for some other modules that are actually used in restricted env or even chroot without possibility to write anything anywhere. Using compressed eggs in such environments is a bit painful... > In short, I recommend that this PR be changed, assigning it to the > maintainer of the www/trac port for follow-up and resolution. Actually I started this pr because I want some Python module package policy to emerge and possibly to explicitly specify one recommended way of dealing with such packages. As you wrote many port maintainers specifically override the order of things in different inconsistent ways and even this makes packages more useful having a lot of different patches and crotches throughout the ports tree is definitely not a good thing. -- Sphinx of black quartz, judge my vow.
All valid points (and I personally agree). It's worth remembering however, that there are *two* questions that need to be considered independently: 1) What can be done to resolve "this PR", specifically 2) What else could be done to preclude similar PR's, generally In the context of issue tracking, only (1) applies, and assigning this PR to the trac maintainer is the best and quickest way to have your issue resolved. The verbose reply I provided was just designed as additional background and context for the decision. For (2), the FreeBSD Python@ Team has its goals documented on our Wiki page that includes the development of a python ports policy among others: https://wiki.freebsd.org/Python If Python is your thing, I encourage you to jump on IRC, say hi to the team and let us know what you're interested in making better :) Koobs
Hi, would you please test if this patch working for you? It implements just this. Full changelog following: - remove indefinite article from COMMENT - add LICENSE (BSD3C) - set RUN_DEPENDS explicitly - turn database back-end selection into radio-option keeping existing logic: if PGSQL isn't selected SQLITE is used - use options helpers - do not use easy_install and convert to auto-generated packing list - utilize shebangfix, instead of doing the same manually - remove no more needed x-generate-plist target - simplify examples installation and unmute it's commands - do not install rpm stuff, it's not linux here anyway - whitespace fixes in pkg-descr - bump PORTREVISION -- Regards, Ruslan T.O.S. Of Reality
Author: rm Date: Sat Feb 8 20:02:33 2014 New Revision: 343380 URL: http://svnweb.freebsd.org/changeset/ports/343380 QAT: https://qat.redports.org/buildarchive/r343380/ Log: - remove indefinite article from COMMENT - add LICENSE (BSD3C) - set RUN_DEPENDS explicitly - turn database back-end selection into radio-option keeping existing logic: if PGSQL isn't selected SQLITE is used - use options helpers - do not use easy_install and convert to auto-generated packing list [1] - utilize shebangfix, instead of doing the same manually - remove no more needed x-generate-plist target - simplify examples installation and unmute it's commands - do not install rpm stuff, it's not linux here anyway - whitespace fixes in pkg-descr - bump PORTREVISION PR: 182332 Requested by: Volodymyr Kostyrko <arcade@b1t.name> [1] Submitted by: rm (myself) Approved by: maintainer timeout - add upstream patch to fix wiki bracketed link with Genshi 0.7 see http://trac.edgewall.org/changeset/11683 for details PR: 181419 Submitted by: Hung-Yi Chen <gaod@hychen.org> Approved by: maintainer timeout Added: head/www/trac/files/patch-trac_wiki_formatter.py (contents, props changed) head/www/trac/files/patch-trac_wiki_tests_wiki-tests.txt (contents, props changed) Deleted: head/www/trac/pkg-plist Modified: head/www/trac/Makefile head/www/trac/pkg-descr head/www/trac/pkg-message Modified: head/www/trac/Makefile ============================================================================== --- head/www/trac/Makefile Sat Feb 8 19:59:23 2014 (r343379) +++ head/www/trac/Makefile Sat Feb 8 20:02:33 2014 (r343380) @@ -3,91 +3,59 @@ PORTNAME= trac PORTVERSION= 1.0.1 +PORTREVISION= 1 CATEGORIES= www devel python MASTER_SITES= http://ftp.edgewall.com/pub/trac/ \ ftp://ftp.edgewall.com/pub/trac/ DISTNAME= Trac-${PORTVERSION} MAINTAINER= clsung@FreeBSD.org -COMMENT= An enhanced wiki and issue tracking system for software projects +COMMENT= Enhanced wiki and issue tracking system for software projects -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Genshi>=0.6:${PORTSDIR}/textproc/py-genshi \ - ${PYTHON_PKGNAMEPREFIX}Babel>=0.9.5:${PORTSDIR}/devel/py-babel -RUN_DEPENDS:= ${BUILD_DEPENDS} +LICENSE= BSD3CLAUSE -OPTIONS_DEFINE= SILVERCITY DOCUTILS PYGMENTS TZ PGSQL SVN -OPTIONS_DEFAULT= SILVERCITY DOCUTILS PYGMENTS TZ SVN +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Babel>=0.9.5:${PORTSDIR}/devel/py-babel \ + ${PYTHON_PKGNAMEPREFIX}Genshi>=0.6:${PORTSDIR}/textproc/py-genshi +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Babel>=0.9.5:${PORTSDIR}/devel/py-babel \ + ${PYTHON_PKGNAMEPREFIX}Genshi>=0.6:${PORTSDIR}/textproc/py-genshi + +OPTIONS_DEFINE= SILVERCITY DOCUTILS PYGMENTS TZ SVN +OPTIONS_DEFAULT= SILVERCITY DOCUTILS PYGMENTS TZ SVN SQLITE +OPTIONS_RADIO= DATABASE +OPTIONS_RADIO_DATABASE= PGSQL SQLITE SILVERCITY_DESC= Silvercity for syntax highlighting DOCUTILS_DESC= Allow additional text markup PYGMENTS_DESC= Use generic syntax highlighter TZ_DESC= Process Time Zones -CONFLICTS= ja-trac-[0-9]* - -USE_PYTHON= 2 -USE_PYDISTUTILS= easy_install -PYDISTUTILS_PKGNAME= Trac -PYDISTUTILS_NOEGGINFO= yes - -USE_RC_SUBR= tracd -SUB_LIST= PYTHON_CMD=${PYTHON_CMD} - -.include <bsd.port.options.mk> - -.if ${PORT_OPTIONS:MSILVERCITY} -RUN_DEPENDS+= ${LOCALBASE}/bin/source2html.py:${PORTSDIR}/textproc/silvercity -.endif - -.if ${PORT_OPTIONS:MDOCUTILS} -RUN_DEPENDS+= ${LOCALBASE}/bin/rst2html:${PORTSDIR}/textproc/py-docutils -.endif - -.if ${PORT_OPTIONS:MPYGMENTS} -RUN_DEPENDS+= ${LOCALBASE}/bin/pygmentize:${PORTSDIR}/textproc/py-pygments -.endif - -.if ${PORT_OPTIONS:MTZ} -RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}pytz>0:${PORTSDIR}/devel/py-pytz -.endif - -.if ${PORT_OPTIONS:MPGSQL} -RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/psycopg2/__init__.py:${PORTSDIR}/databases/py-psycopg2 -.else -RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 -.endif - -.if ${PORT_OPTIONS:MSVN} -RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/svn/__init__.py:${PORTSDIR}/devel/py-subversion -.endif - -# This target is only meant to be used by the port maintainer. -x-generate-plist: - (${PORTSDIR}/Tools/scripts/plist -d -m ${MTREE_FILE} ${PREFIX} \ - | ${SED} -E \ - 's,.*share/nls/.+$$,,g \ - ;s,@dirrm share/man(/.*)?$$,,g \ - ;s,${PYTHON_SITELIBDIR:S,^${PYTHONBASE}/,,},%%PYTHON_SITELIBDIR%%,g \ - ;s,share/trac,%%DATADIR%%,g \ - ;s,share/examples/trac,%%EXAMPLESDIR%%,g \ - ;s,@dirrm (%%PYTHON_SITELIBDIR%%|${PYTHON_LIBDIR:S,${PYTHONBASE}/,,})$$,,g \ - ' | ${TR} -s '\n') > temp-pkg-plist - -pre-install: - @${REINPLACE_CMD} -i '' -e 's|/usr/bin/python|${PYTHON_CMD}|' ${WRKSRC}/contrib/cgi-bin/trac.fcgi \ - ${WRKSRC}/contrib/cgi-bin/trac.cgi +SILVERCITY_RUN_DEPENDS= ${LOCALBASE}/bin/source2html.py:${PORTSDIR}/textproc/silvercity +DOCUTILS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}docutils>0:${PORTSDIR}/textproc/py-docutils +PYGMENTS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pygments>0:${PORTSDIR}/textproc/py-pygments +TZ_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytz>0:${PORTSDIR}/devel/py-pytz +PGSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}psycopg2>0:${PORTSDIR}/databases/py-psycopg2 +SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 +SVN_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}subversion>0:${PORTSDIR}/devel/py-subversion + +CONFLICTS= ja-trac-[0-9]* +PORTEXAMPLES= * +PORTDATA= * + +USES= shebangfix +SHEBANG_FILES= contrib/cgi-bin/trac.fcgi contrib/cgi-bin/trac.cgi \ + trac/tests/functional/better_twill.py trac/tests/functional/tester.py \ + trac/tests/functional/testenv.py trac/tests/functional/compat.py \ + trac/tests/functional/__init__.py contrib/emailfilter.py \ + contrib/checkwiki.py contrib/htpasswd.py +USE_PYTHON= 2 +USE_PYDISTUTILS= yes +PYDISTUTILS_AUTOPLIST= yes +USE_RC_SUBR= tracd post-install: @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/sample-plugins - @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/rpm - @${INSTALL_DATA} ${WRKSRC}/contrib/rpm/* ${STAGEDIR}${EXAMPLESDIR}/rpm - @${FIND} ${WRKSRC}/contrib -type f -maxdepth 1 -exec ${INSTALL_DATA} {} ${STAGEDIR}${EXAMPLESDIR}/ \; -. for d in permissions workflow - @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/sample-plugins/${d} - @${INSTALL_DATA} ${WRKSRC}/sample-plugins/${d}/* ${STAGEDIR}${EXAMPLESDIR}/sample-plugins/${d}/ - @${RM} -rf ${WRKSRC}/contrib/${d} -. endfor - @${INSTALL_DATA} ${WRKSRC}/sample-plugins/*.py ${STAGEDIR}${EXAMPLESDIR}/sample-plugins/ + ${FIND} ${WRKSRC}/contrib -type f -maxdepth 1 -exec ${INSTALL_DATA} {} ${STAGEDIR}${EXAMPLESDIR}/ \; + (cd ${WRKSRC}/sample-plugins && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}/sample-plugins) @${MKDIR} ${STAGEDIR}${DATADIR}/cgi-bin - @${INSTALL_SCRIPT} ${WRKSRC}/contrib/cgi-bin/* ${STAGEDIR}${DATADIR}/cgi-bin + ${INSTALL_SCRIPT} ${WRKSRC}/contrib/cgi-bin/* ${STAGEDIR}${DATADIR}/cgi-bin .include <bsd.port.mk> Added: head/www/trac/files/patch-trac_wiki_formatter.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/trac/files/patch-trac_wiki_formatter.py Sat Feb 8 20:02:33 2014 (r343380) @@ -0,0 +1,14 @@ +Backported from upstream repo: http://trac.edgewall.org/changeset/11683 +See PR 181419 for details. + +--- trac/wiki/formatter.py.orig 2013-02-01 08:47:41.000000000 +0800 ++++ trac/wiki/formatter.py 2013-08-20 14:24:46.982232000 +0800 +@@ -575,7 +575,7 @@ + ns = fullmatch.group('snsbr') + target = unquote_label(fullmatch.group('stgtbr')) + match = match[1:-1] +- return '<%s>' % \ ++ return u'<%s>' % \ + self._make_link(ns, target, match, match, fullmatch) + + def _shref_formatter(self, match, fullmatch): Added: head/www/trac/files/patch-trac_wiki_tests_wiki-tests.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/trac/files/patch-trac_wiki_tests_wiki-tests.txt Sat Feb 8 20:02:33 2014 (r343380) @@ -0,0 +1,19 @@ +Backported from upstream repo: http://trac.edgewall.org/changeset/11683 +See PR 181419 for details. + +--- trac/wiki/tests/wiki-tests.txt.orig 2013-08-20 14:02:43.308222000 +0800 ++++ trac/wiki/tests/wiki-tests.txt 2013-08-20 14:01:18.000000000 +0800 +@@ -314,6 +314,13 @@ + ------------------------------ + <p> + nolink:"<blink>" ++</p> ++------------------------------ ++============================== Bracketed links ++See <http://en.wikipedia.org/wiki/Mornington_Crescent_(game)> ++------------------------------ ++<p> ++See <<a class="ext-link" href="http://en.wikipedia.org/wiki/Mornington_Crescent_(game)"><span class="icon"></span>http://en.wikipedia.org/wiki/Mornington_Crescent_(game)</a>> + </p> + ------------------------------ + ============================================================ Modified: head/www/trac/pkg-descr ============================================================================== --- head/www/trac/pkg-descr Sat Feb 8 19:59:23 2014 (r343379) +++ head/www/trac/pkg-descr Sat Feb 8 20:02:33 2014 (r343380) @@ -5,7 +5,7 @@ development process and policies. All aspects of Trac have been designed with one single goal, to simplify tracking and communication of software issues, enhancements and monitoring -overall progress. +overall progress. What is Trac? @@ -14,8 +14,8 @@ What is Trac? * A flexible web-based issue tracker * An interface to the Subversion revision control system -At the core of Trac lies an integrated wiki and issue/bug database. Using +At the core of Trac lies an integrated wiki and issue/bug database. Using wiki markup, all objects managed by Trac can directly link to other -issues/bug reports, code changesets, documentation and files. +issues/bug reports, code changesets, documentation and files. WWW: http://trac.edgewall.org/ Modified: head/www/trac/pkg-message ============================================================================== --- head/www/trac/pkg-message Sat Feb 8 19:59:23 2014 (r343379) +++ head/www/trac/pkg-message Sat Feb 8 20:02:33 2014 (r343380) @@ -6,10 +6,10 @@ You should be careful to check that the been ported to 1.0.1, as they most probably won't work without adaptation due to the numerous internal changes that occurred during 1.0.1 development. -See: http://trac.edgewall.org/wiki/TracDev/ApiChanges/1.0 +See: http://trac.edgewall.org/wiki/TracDev/ApiChanges/1.0 Consult the upgrade instructions at: - http://trac.edgewall.org/wiki/TracUpgrade + http://trac.edgewall.org/wiki/TracUpgrade ******************************************************************************* _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed This is now installed as usual distutils package.