[pacman-dev] Fix/enforce PATH with makepkg (required for Python packages)

Allan McRae allan at archlinux.org
Mon Jan 25 02:39:26 UTC 2016


On 21/01/16 03:56, Daniel Hahler wrote:
> On 19.01.2016 22:48, Allan McRae wrote:
>> On 20/01/16 07:01, Daniel Hahler wrote:
>>> Usually Python packages use `python` in their PKGBUILD, which results in any
>>> activated virtualenv to be used, e.g. from `pep257`:
>>>
>>> ```
>>> package() {
>>>   cd "${srcdir}/${pkgname}-${pkgver}"
>>>   python setup.py install --root="${pkgdir}" --optimize=1
>>>
>>>   install -m 755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
>>>   install -m 644 -t "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE-MIT
>>> }
>>> ```
>>>
>>> Activating a virtualenv will add the "python" binary in front of $PATH.
>>>
>>> I've reported this initially for pacaur at https://github.com/rmarquis/pacaur/issues/400, but it's a problem with makepkg after all.
>>>
>>
>> makepkg is working as specified.
> 
> Does this mean that pacaur (and other consumers) should handle fixing the PATH themselves?
> 
> (In the case of pacaur, a package is meant to be installed system-wide and therefore the system's "python" should be used also.)
> 

Neither makepkg or any wrapper should touch the system path.  How can
they distinguish needed additions to the PATH from unneeded ones?

Allan


More information about the pacman-dev mailing list