[Buildroot] Buildroot package for psycopg module for Beaglebone black

pborut123 pborut123 at gmail.com
Wed Jun 29 09:28:32 UTC 2016


Hello Yegor,

Thanks for your suggestion and explanation.
I will correct my solution and do it properly as you've pointed me to.

I have another question, if I may.
I'd like to have python-supervisor functionality in otherwise python3 
system.
Python-supervisor would be only program using python2.

Do you have suggestion on how could this be solved?

Best regards,
Borut.

On 29.6.2016 10:09, Yegor Yefremov wrote:
> On Wed, Jun 29, 2016 at 9:47 AM, pborut123 <pborut123 at gmail.com> wrote:
>> Hello Arnout,
>>
>> Thank you for your answer.
>> In the mean time, I've managed to solve problem by myself.
>>
>> message 'error: option --executable not recognized' was issued from
>> python setup.py install ...options...
>> One of options was --executable=/usr/bin/python that came from buildroot's
>> main python package makefile
>> pkg-python.mk, see here excerpt:
>>
>> PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS = \
>>      --prefix=$(TARGET_DIR)/usr \
>>      --executable=/usr/bin/python \
>>      --single-version-externally-managed \
>>      --root=/
>>
>> I have removed line '--executable=/usr/bin/python' and package built
>> correctly.
>> I'm not deeply familiar with python setup system, but I guess that here must
>> be
>> some difference in installation of pure python modules and modules that use
>> cython, which is the case of psycopg2.
>> I have added several other python packages that were pure python ones
>> without problem and using original script.
>>
>> I have rebuilt whole system, having many python modules, with above change
>> without problems
>> I haven't commited that change back, so that I don't break anything else.
>> Since I've changed pkg-python.mk which is used by many python modules that I
>> didn't try, I haven't commited that change back, so that I don't break
>> anything else.
>>
>> I can do it of course.
>> Do you perhaps know, are here some rules on commits of this sort?
>>
>> Thank you and best regards,
>> Borut.
>>
>> On 29.6.2016 1:27, Arnout Vandecappelle wrote:
>>> On 28-06-16 13:25, pborut123 wrote:
>>>> Hello,
>>>>
>>>> I'm new to this mailing list, quite new to buildroot, too.
>>>> I'm trying to build distribution for Beaglebone black with Python 3.5.1
>>>> and
>>>> postgresql 9.5.2.
>>>> I want to have also psycopg2 module that is not present in current
>>>> package list.
>>>> I've tried to make my own package but I'm not successful.
>>>>
>>>> Last error, I've received from build is at installation step:
>>>>>>> python-psycopg 2.6.1 Installing to target
>>>> ...
>>>> error: option --executable not recognized
>>>    We're missing some context here: which command issued this error? It
>>> should be
>>> written a few lines above.
>>>
>>>> make: ***
>>>> [..buildroot/output/build/python-psycopg-2.6.1/.stamp_target_installed]
>>>> Error 1
>>>>
>>>> My question is if can anybody help me with this, pointing me on what I've
>>>> done
>>>> wrong.
>>>>
>>>> Here is my package code:
>>>>
>>>> PYTHON_PSYCOPG_VERSION = 2.6.1
>>>> PYTHON_PSYCOPG_SOURCE = psycopg2-$(PYTHON_PSYCOPG_VERSION).tar.gz
>>>> PYTHON_PSYCOPG_SITE = http://initd.org/psycopg/tarballs/PSYCOPG-2-6
>>>> PYTHON_PSYCOPG_LICENSE = GPLv2
>>>> PYTHON_PSYCOPG_LICENSE_FILES = LICENSE
>>>> PYTHON_PSYCOPG_SETUP_TYPE = setuptools
> psycopg needs distutils and not setuptools.
>
> You can automatically create recipes for PyPi packages. Just invoke
>
> ./support/scripts/scanpypi psycopg2
>
> and then add psycong entry into package/Config.in and fix dependencies.
>
> See http://nightly.buildroot.org/manual.html#_infrastructure_for_python_packages
> and "17.8.3. Generating a python-package from a PyPI repository" for
> details.
>
>>>> PYTHON_PSYCOPG_BUILD_OPTS = build_ext --pg-config
>>>> $(STAGING_DIR)/usr/bin/pg_config build
>>>>
>>>    You will certainly need
>>>
>>> PYTHON_PSYCOPG_DEPENDENCIES = postgresql
>>>
>>>> define PYTHON_PSYCOPG_INSTALL_CUSTOM_PG_CONFIG
>>>>       $(INSTALL) -m 0755 -D package/python-psycopg/pg_config \
>>>>           $(STAGING_DIR)/usr/bin/pg_config
>>>    Eek? Why would you want to do this? You should use the pg_config
>>> provided by
>>> postgresql, otherwise things will probably go wrong.
>>>
>>>    Regards,
>>>    Arnout
>>>
>>>
>>>> endef
>>>> PYTHON_PSYCOPG_PRE_BUILD_HOOKS += PYTHON_PSYCOPG_INSTALL_CUSTOM_PG_CONFIG
>>>> $(eval $(python-package))
>>>>
>>>> and here is missing host pg_config file, I've inserted to setup.py:
>>>>
>>>> #!/bin/sh
>>>> # I've pointed to already cross-build posgresql base directory in build
>>>> prefix=buildroot/output/build/postgresql-9.5.2/src
>>>>
>>>> case "$1" in
>>>>     --includedir)
>>>>       echo "$prefix/include"
>>>>       ;;
>>>>     --libdir)
>>>>       echo "$prefix/lib"
>>>>       ;;
>>>>     --version)
>>>>         echo "PostgreSQL 9.5.2"
>>>>       ;;
>>>>
>>>>     *)
>>>>       echo "Usage: $0 {--includedir|--libdir}"
>>>> esac
>>>>
>>>> Thank you and best regards,
>>>> Borut.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> buildroot mailing list
>>>> buildroot at busybox.net
>>>> http://lists.busybox.net/mailman/listinfo/buildroot
>>>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot




More information about the buildroot mailing list