Date: Sun, 26 Jan 2014 16:33:00 +0400 From: Ruslan Makhmatkhanov <cvs-src@yandex.ru> To: freebsd-python@freebsd.org Subject: Re: PYDISTUTILS_AUTOPLIST question Message-ID: <52E5007C.8060805@yandex.ru> In-Reply-To: <20140126113022.GA1394@medusa.sysfault.org> References: <52E4BCF4.3070507@yandex.ru> <20140126113022.GA1394@medusa.sysfault.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Marcus von Appen wrote on 26.01.2014 15:30: > On, Sun Jan 26, 2014, Ruslan Makhmatkhanov wrote: > >> Hi, >> >> while PYDISTUTILS_AUTOPLIST works smoothly for majority of ports, there >> is the problem with some of them I come across yesterday. For example, >> there is the port devel/py-Products.PasswordResetTool. If I set there >> PYDISTUTILS_AUTOPLIST, and try to build, I got packaging error, because >> some of the files, that port provides, cannot be compiled (by design). >> While they are python code files, they are not supposed to be executed >> with python interpreter directly (they are kind of templates). >> >> So, is there any possibility to: >> a) Do not add compiled/optimized filenames to packing list, if the >> actual file fails to compile? >> b) Make a hook, that allows to list file, that should not have >> corresponding *.pyc/*.pyo entries in the packing list? > > If the port uses distutils, it should not matter, if you do not mess around in > the post-install targets yourself, since the file list will be taken from what > distutils records - we do not implement magic ourselves for distutils-aware > ports (well, a bit :-). > If this does not work properly for you, upstream might do something that > breaks the intended behaviour of distutils. > > So, before fixing the symptom, I actually would like to find out, what exactly > they do on installation. Are all files properly recorded in ${_PYTHONPKGLIST}? > What errors do you get, what does the install target complain about, etc.etc.? > > Cheers > Marcus For example at install stage it fails with pwreset_constructURL.py file: byte-compiling /usr/local/poudriere/ports/default/devel/py-Products.PasswordResetTool/work/stage/usr/local/lib/python2.7/site-packages/Products/PasswordResetTool/skins/PasswordReset/pwreset_constructURL.py to pwreset_constructURL.pyc File "/usr/local/lib/python2.7/site-packages/Products/PasswordResetTool/skins/PasswordReset/pwreset_constructURL.py", line 14 return "%s/passwordreset/%s" % (host, randomstring) SyntaxError: 'return' outside function writing byte-compilation script '/tmp/tmpqmG0z8.py' /usr/local/bin/python2.7 -O /tmp/tmpqmG0z8.py File "/usr/local/lib/python2.7/site-packages/Products/PasswordResetTool/skins/PasswordReset/pwreset_constructURL.py", line 14 return "%s/passwordreset/%s" % (host, randomstring) SyntaxError: 'return' outside function removing /tmp/tmpqmG0z8.py And here is what on package stage: ===> Building package for py27-Products.PasswordResetTool-2.0.15_1 pkg-static: lstat(/usr/local/poudriere/ports/default/devel/py-Products.PasswordResetTool/work/stage/usr/local/lib/python2.7/site-packages/Products/PasswordResetTool/skins/PasswordReset/pwreset_constructURL.pyc): No such file or directory pkg-static: lstat(/usr/local/poudriere/ports/default/devel/py-Products.PasswordResetTool/work/stage/usr/local/lib/python2.7/site-packages/Products/PasswordResetTool/skins/PasswordReset/pwreset_constructURL.pyo): No such file or directory *** Error code 1 Stop. make: stopped in /usr/local/poudriere/ports/default/devel/py-Products.PasswordResetTool As we can see *.pyc/*.pyo pkg-plist entries were generated for pwreset_constructURL.py despite the fact that byte-compiling had failed. -- Regards, Ruslan T.O.S. Of Reality
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52E5007C.8060805>