Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 06 Jul 2013 19:20:58 -0400
From:      Nikolai Lifanov <lifanov@mail.lifanov.com>
To:        Bryan Drewery <bdrewery@freebsd.org>
Cc:        python@freebsd.org, freebsd-ports@freebsd.org
Subject:   Re: =?UTF-8?Q?=25=25PYTHON=5FSITELIBDIR=25=25=20in=20pkg-plist?=
Message-ID:  <b771537ec0ca499b34b9868174b33a57@mail.lifanov.com>
In-Reply-To: <51D83DB9.9050504@FreeBSD.org>
References:  <adddac56a8f7e1c0743abaf81772eccd@mail.lifanov.com> <51D83B22.5010307@FreeBSD.org> <51D83DB9.9050504@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2013-07-06 11:54, Bryan Drewery wrote:
> On 7/6/2013 10:43 AM, Kubilay Kocak wrote:
>> On 7/07/2013 12:51 AM, Nikolai Lifanov wrote:
>>> Hello.
>>> 
>>> I maintain sysutils/ansible, and I keep wanting to @dirrmtry
>>> %%PYTHON_SITELIBDIR%% and perhaps %%PYTHON_LIBDIR%%.
>>> portlint tells me that this is a wrong thing to do, while poudriere
>>> testport complains about leftover directories.
>>> 
>>> What is the correct thing to do with these?
>>> 
>>> - Nikolai Lifanov
>>> 
>>> _______________________________________________
>>> freebsd-ports@freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-ports
>>> To unsubscribe, send any mail to 
>>> "freebsd-ports-unsubscribe@freebsd.org"
>> 
>> The following are 'normal'leftover entries when testing python ports,
>> and can safely be ignored:
>> 
>> %%PYTHON_LIBDIR%%/site-packages/easy-install.pth
>> %%PYTHON_LIBDIR%%/site-packages/site.py
>> %%PYTHON_LIBDIR%%/site-packages/site.pyc
>> %%PYTHON_LIBDIR%%/site-packages/site.pyo
>> @dirrm %%PYTHON_LIBDIR%%/site-packages
>> @dirrm %%PYTHON_LIBDIR%%
>> 
>> The above output is from poudriere, and 
>> %%PYTHON_LIBDIR%%/site-packages/
>> is actually %%PYTHON_SITELIBDIR%%. Here, poudriere is just making a
>> first-variable-from-the-list-wins guess.
>> 
>> If you see porttools `port test` output, you'll note it displays
>> %%PYTHON_SITELIBDIR%% as the leftover prefix. They can be ignored as 
>> well.
>> 
>> Hope that helps :)
>> 
> 
> The problem is just that the port (and python ports) do not respect
> PREFIX when it does not equal LOCALBASE. By default, 'poudriere
> testport' uses a custom PREFIX. In general, ports should pass leftover
> tests by default. If they use ports framework support that does not
> respect PREFIX, try using -n as well, which will stick to
> PREFIX=LOCALBASE. In this case, using -n passes the test with testport
> on ansible.

Hmm... This works and makes sense, since python sys.prefix is set 
depending on its location.
I might be naive here, but what would be the effect of depending on 
virtualenv magic if PREFIX != LOCALBASE? This way a package can ask for 
dependencies with the same PREFIX if they would otherwise exist 
somewhere else during a single make, and it shouldn't conflict with 
anything else. This can go into a package name 
(py27-non_localbase_prefix_with_encoded_slashes-mypackage) or, after 
pkg_* tools are out, a pkgng annotation?
For example, if py27-foo depends on py27-bar, py27-opt_baz-foo would 
depend on py27-opt_baz-bar without conflicting.

- Nikolai Lifanov




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b771537ec0ca499b34b9868174b33a57>