You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Andrew Stitcher <as...@redhat.com> on 2022/11/17 21:55:47 UTC

Heads Up: Changes to the Python binding build/install process for proton-c 0.38.0

The recent proton-c 0.38.0 release contains significant changes to the way
that the python bindings to the proton library build and install. They are
now more consistent with the usual packaging standards in the python
community:

   - The build process will now build a python source package compatible
   with PyPI and pip install, this will be found in the python/pkgs
   subdirectory of the build directory.
   - The build install target by default will not copy any python files to
   the install prefix leaving you to install to the active python installation
   using a command like:

pip install python/pkgs/python/pkgs/python-qpid-proton-0.38.0.tar.gz
>

   - This command line assumes you are in the build directory and that you
   have pip installed for use directly
   - During the python binding install the process tries to find the
   qpid-proton-core c library using pkgconfig. If it can find the library then
   it will use the found c library as the base for the installed python
   binding; if it cannot find the proton core c library then it will build the
   c library using sources bundled into the python source package. So if you
   specifically want to use an external proton core C library, you should make
   sure to install the proton core library first and make sure that pkgconfig
   can find the library - using the PKG_CONFIG_PATH environment variable may
   help here.

A source package for python-qpid-proton 0.38.0 has been uploaded to PyPI
and this can be installed by using:

> pip install python-qpid-proton
>
Installing this package can also give you a bundled or and external proton
core library as detailed above.

This package is compatible with python virtual environments and this is my
recommended way to use them to ensure that the package dependencies are
contained and easily manageable.

Any comments, questions, etc. very welcome.

Andrew

Re: Heads Up: Changes to the Python binding build/install process for proton-c 0.38.0

Posted by Ken Giusti <kg...@redhat.com>.
Problem found!  Pilot error. :(

I've just upgraded to fedora36 and for some reason the upgrade process
pulled in python3.12 (apparently python3.10 is the default for F36).
Removing python3.12 (which is in-development) and restoring python3.10
seems to have solved my issue: pkgs and all expected content are being
generated.
Sorry for the list noise.
-K


On Mon, Nov 28, 2022 at 9:27 AM Ken Giusti <kg...@redhat.com> wrote:

>
>
> On Mon, Nov 28, 2022 at 9:26 AM Ken Giusti <kg...@redhat.com> wrote:
>
>> Thanks for the heads up Andrew.
>>
>> This is probably pilot error, but when I update to qpid-proton main HEAD
>> my build does not produce a "python/pkgs" directory in my build directory:
>>
>> $ git clean -fdx;  mkdir BUILD; cd BUILD
>> $ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/kgiusti -DBUILD_TLS=ON; make -j32
>> install
>> $ ls -l python
>> total 2012
>> drwxr-xr-x. 5 kgiusti kgiusti    4096 Nov 28 09:16 CMakeFiles
>> -rw-r--r--. 1 kgiusti kgiusti    1544 Nov 28 09:16 cmake_install.cmake
>> -rw-r--r--. 1 kgiusti kgiusti   54501 Nov 28 09:17 cproton.py
>> -rw-r--r--. 1 kgiusti kgiusti  671874 Nov 28 09:17 cprotonPYTHON_wrap.c
>> -rwxr-xr-x. 1 kgiusti kgiusti 1298104 Nov 28 09:17 _cproton.so
>> -rw-r--r--. 1 kgiusti kgiusti    2923 Nov 28 09:16 CTestTestfile.cmake
>> drwxr-xr-x. 7 kgiusti kgiusti    4096 Nov 28 09:17 dist
>> -rw-r--r--. 1 kgiusti kgiusti    9852 Nov 28 09:16 Makefile
>> $ ls -l python/dist/
>> total 764
>> -rw-r--r--. 1 kgiusti kgiusti  54501 Nov 28 09:17 cproton.py
>> -rw-r--r--. 1 kgiusti kgiusti 671874 Nov 28 09:17 cprotonPYTHON_wrap.c
>> drwxr-xr-x. 2 kgiusti kgiusti   4096 Nov 28 09:17 docs
>> drwxr-xr-x. 3 kgiusti kgiusti   4096 Nov 28 09:17 include
>> -rw-r--r--. 1 kgiusti kgiusti     99 Nov 28 09:17 MANIFEST.in
>> drwxr-xr-x. 2 kgiusti kgiusti   4096 Nov 28 09:17 proton
>> -rw-r--r--. 1 kgiusti kgiusti    521 Nov 28 09:17 README.rst
>> -rw-r--r--. 1 kgiusti kgiusti   1499 Nov 28 09:17 setup.cfg
>> -rw-r--r--. 1 kgiusti kgiusti   8439 Nov 28 09:17 setup.py
>> drwxr-xr-x. 2 kgiusti kgiusti   4096 Nov 28 09:17 setuputils
>> drwxr-xr-x. 7 kgiusti kgiusti   4096 Nov 28 09:17 src
>> -rw-r--r--. 1 kgiusti kgiusti     11 Nov 28 09:17 VERSION.txt
>>
>> Any pointers on what I'm doing wrong?
>> thanks!
>>
>>
> Sorry, meant to add that my build system is running fedora 36 latest,
> thanks.
>
>
>
>>
>> On Thu, Nov 17, 2022 at 5:05 PM Andrew Stitcher <as...@redhat.com>
>> wrote:
>>
>>> The recent proton-c 0.38.0 release contains significant changes to the
>>> way
>>> that the python bindings to the proton library build and install. They
>>> are
>>> now more consistent with the usual packaging standards in the python
>>> community:
>>>
>>>    - The build process will now build a python source package compatible
>>>    with PyPI and pip install, this will be found in the python/pkgs
>>>    subdirectory of the build directory.
>>>    - The build install target by default will not copy any python files
>>> to
>>>    the install prefix leaving you to install to the active python
>>> installation
>>>    using a command like:
>>>
>>> pip install python/pkgs/python/pkgs/python-qpid-proton-0.38.0.tar.gz
>>> >
>>>
>>>    - This command line assumes you are in the build directory and that
>>> you
>>>    have pip installed for use directly
>>>    - During the python binding install the process tries to find the
>>>    qpid-proton-core c library using pkgconfig. If it can find the
>>> library then
>>>    it will use the found c library as the base for the installed python
>>>    binding; if it cannot find the proton core c library then it will
>>> build the
>>>    c library using sources bundled into the python source package. So if
>>> you
>>>    specifically want to use an external proton core C library, you
>>> should make
>>>    sure to install the proton core library first and make sure that
>>> pkgconfig
>>>    can find the library - using the PKG_CONFIG_PATH environment variable
>>> may
>>>    help here.
>>>
>>> A source package for python-qpid-proton 0.38.0 has been uploaded to PyPI
>>> and this can be installed by using:
>>>
>>> > pip install python-qpid-proton
>>> >
>>> Installing this package can also give you a bundled or and external
>>> proton
>>> core library as detailed above.
>>>
>>> This package is compatible with python virtual environments and this is
>>> my
>>> recommended way to use them to ensure that the package dependencies are
>>> contained and easily manageable.
>>>
>>> Any comments, questions, etc. very welcome.
>>>
>>> Andrew
>>>
>>
>>
>> --
>> -K
>>
>
>
> --
> -K
>


-- 
-K

Re: Heads Up: Changes to the Python binding build/install process for proton-c 0.38.0

Posted by Ken Giusti <kg...@redhat.com>.
On Mon, Nov 28, 2022 at 9:26 AM Ken Giusti <kg...@redhat.com> wrote:

> Thanks for the heads up Andrew.
>
> This is probably pilot error, but when I update to qpid-proton main HEAD
> my build does not produce a "python/pkgs" directory in my build directory:
>
> $ git clean -fdx;  mkdir BUILD; cd BUILD
> $ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/kgiusti -DBUILD_TLS=ON; make -j32
> install
> $ ls -l python
> total 2012
> drwxr-xr-x. 5 kgiusti kgiusti    4096 Nov 28 09:16 CMakeFiles
> -rw-r--r--. 1 kgiusti kgiusti    1544 Nov 28 09:16 cmake_install.cmake
> -rw-r--r--. 1 kgiusti kgiusti   54501 Nov 28 09:17 cproton.py
> -rw-r--r--. 1 kgiusti kgiusti  671874 Nov 28 09:17 cprotonPYTHON_wrap.c
> -rwxr-xr-x. 1 kgiusti kgiusti 1298104 Nov 28 09:17 _cproton.so
> -rw-r--r--. 1 kgiusti kgiusti    2923 Nov 28 09:16 CTestTestfile.cmake
> drwxr-xr-x. 7 kgiusti kgiusti    4096 Nov 28 09:17 dist
> -rw-r--r--. 1 kgiusti kgiusti    9852 Nov 28 09:16 Makefile
> $ ls -l python/dist/
> total 764
> -rw-r--r--. 1 kgiusti kgiusti  54501 Nov 28 09:17 cproton.py
> -rw-r--r--. 1 kgiusti kgiusti 671874 Nov 28 09:17 cprotonPYTHON_wrap.c
> drwxr-xr-x. 2 kgiusti kgiusti   4096 Nov 28 09:17 docs
> drwxr-xr-x. 3 kgiusti kgiusti   4096 Nov 28 09:17 include
> -rw-r--r--. 1 kgiusti kgiusti     99 Nov 28 09:17 MANIFEST.in
> drwxr-xr-x. 2 kgiusti kgiusti   4096 Nov 28 09:17 proton
> -rw-r--r--. 1 kgiusti kgiusti    521 Nov 28 09:17 README.rst
> -rw-r--r--. 1 kgiusti kgiusti   1499 Nov 28 09:17 setup.cfg
> -rw-r--r--. 1 kgiusti kgiusti   8439 Nov 28 09:17 setup.py
> drwxr-xr-x. 2 kgiusti kgiusti   4096 Nov 28 09:17 setuputils
> drwxr-xr-x. 7 kgiusti kgiusti   4096 Nov 28 09:17 src
> -rw-r--r--. 1 kgiusti kgiusti     11 Nov 28 09:17 VERSION.txt
>
> Any pointers on what I'm doing wrong?
> thanks!
>
>
Sorry, meant to add that my build system is running fedora 36 latest,
thanks.



>
> On Thu, Nov 17, 2022 at 5:05 PM Andrew Stitcher <as...@redhat.com>
> wrote:
>
>> The recent proton-c 0.38.0 release contains significant changes to the way
>> that the python bindings to the proton library build and install. They are
>> now more consistent with the usual packaging standards in the python
>> community:
>>
>>    - The build process will now build a python source package compatible
>>    with PyPI and pip install, this will be found in the python/pkgs
>>    subdirectory of the build directory.
>>    - The build install target by default will not copy any python files to
>>    the install prefix leaving you to install to the active python
>> installation
>>    using a command like:
>>
>> pip install python/pkgs/python/pkgs/python-qpid-proton-0.38.0.tar.gz
>> >
>>
>>    - This command line assumes you are in the build directory and that you
>>    have pip installed for use directly
>>    - During the python binding install the process tries to find the
>>    qpid-proton-core c library using pkgconfig. If it can find the library
>> then
>>    it will use the found c library as the base for the installed python
>>    binding; if it cannot find the proton core c library then it will
>> build the
>>    c library using sources bundled into the python source package. So if
>> you
>>    specifically want to use an external proton core C library, you should
>> make
>>    sure to install the proton core library first and make sure that
>> pkgconfig
>>    can find the library - using the PKG_CONFIG_PATH environment variable
>> may
>>    help here.
>>
>> A source package for python-qpid-proton 0.38.0 has been uploaded to PyPI
>> and this can be installed by using:
>>
>> > pip install python-qpid-proton
>> >
>> Installing this package can also give you a bundled or and external proton
>> core library as detailed above.
>>
>> This package is compatible with python virtual environments and this is my
>> recommended way to use them to ensure that the package dependencies are
>> contained and easily manageable.
>>
>> Any comments, questions, etc. very welcome.
>>
>> Andrew
>>
>
>
> --
> -K
>


-- 
-K

Re: Heads Up: Changes to the Python binding build/install process for proton-c 0.38.0

Posted by Ken Giusti <kg...@redhat.com>.
Thanks for the heads up Andrew.

This is probably pilot error, but when I update to qpid-proton main HEAD my
build does not produce a "python/pkgs" directory in my build directory:

$ git clean -fdx;  mkdir BUILD; cd BUILD
$ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/kgiusti -DBUILD_TLS=ON; make -j32
install
$ ls -l python
total 2012
drwxr-xr-x. 5 kgiusti kgiusti    4096 Nov 28 09:16 CMakeFiles
-rw-r--r--. 1 kgiusti kgiusti    1544 Nov 28 09:16 cmake_install.cmake
-rw-r--r--. 1 kgiusti kgiusti   54501 Nov 28 09:17 cproton.py
-rw-r--r--. 1 kgiusti kgiusti  671874 Nov 28 09:17 cprotonPYTHON_wrap.c
-rwxr-xr-x. 1 kgiusti kgiusti 1298104 Nov 28 09:17 _cproton.so
-rw-r--r--. 1 kgiusti kgiusti    2923 Nov 28 09:16 CTestTestfile.cmake
drwxr-xr-x. 7 kgiusti kgiusti    4096 Nov 28 09:17 dist
-rw-r--r--. 1 kgiusti kgiusti    9852 Nov 28 09:16 Makefile
$ ls -l python/dist/
total 764
-rw-r--r--. 1 kgiusti kgiusti  54501 Nov 28 09:17 cproton.py
-rw-r--r--. 1 kgiusti kgiusti 671874 Nov 28 09:17 cprotonPYTHON_wrap.c
drwxr-xr-x. 2 kgiusti kgiusti   4096 Nov 28 09:17 docs
drwxr-xr-x. 3 kgiusti kgiusti   4096 Nov 28 09:17 include
-rw-r--r--. 1 kgiusti kgiusti     99 Nov 28 09:17 MANIFEST.in
drwxr-xr-x. 2 kgiusti kgiusti   4096 Nov 28 09:17 proton
-rw-r--r--. 1 kgiusti kgiusti    521 Nov 28 09:17 README.rst
-rw-r--r--. 1 kgiusti kgiusti   1499 Nov 28 09:17 setup.cfg
-rw-r--r--. 1 kgiusti kgiusti   8439 Nov 28 09:17 setup.py
drwxr-xr-x. 2 kgiusti kgiusti   4096 Nov 28 09:17 setuputils
drwxr-xr-x. 7 kgiusti kgiusti   4096 Nov 28 09:17 src
-rw-r--r--. 1 kgiusti kgiusti     11 Nov 28 09:17 VERSION.txt

Any pointers on what I'm doing wrong?
thanks!


On Thu, Nov 17, 2022 at 5:05 PM Andrew Stitcher <as...@redhat.com>
wrote:

> The recent proton-c 0.38.0 release contains significant changes to the way
> that the python bindings to the proton library build and install. They are
> now more consistent with the usual packaging standards in the python
> community:
>
>    - The build process will now build a python source package compatible
>    with PyPI and pip install, this will be found in the python/pkgs
>    subdirectory of the build directory.
>    - The build install target by default will not copy any python files to
>    the install prefix leaving you to install to the active python
> installation
>    using a command like:
>
> pip install python/pkgs/python/pkgs/python-qpid-proton-0.38.0.tar.gz
> >
>
>    - This command line assumes you are in the build directory and that you
>    have pip installed for use directly
>    - During the python binding install the process tries to find the
>    qpid-proton-core c library using pkgconfig. If it can find the library
> then
>    it will use the found c library as the base for the installed python
>    binding; if it cannot find the proton core c library then it will build
> the
>    c library using sources bundled into the python source package. So if
> you
>    specifically want to use an external proton core C library, you should
> make
>    sure to install the proton core library first and make sure that
> pkgconfig
>    can find the library - using the PKG_CONFIG_PATH environment variable
> may
>    help here.
>
> A source package for python-qpid-proton 0.38.0 has been uploaded to PyPI
> and this can be installed by using:
>
> > pip install python-qpid-proton
> >
> Installing this package can also give you a bundled or and external proton
> core library as detailed above.
>
> This package is compatible with python virtual environments and this is my
> recommended way to use them to ensure that the package dependencies are
> contained and easily manageable.
>
> Any comments, questions, etc. very welcome.
>
> Andrew
>


-- 
-K