[PATCH 2 of 8 3.26] [debian] Install cubicweb-ctl from python2 build

Philippe Pepiot philippe.pepiot at logilab.fr
Wed Jun 26 11:33:26 CEST 2019


On 25/06/2019, Denis Laxalde wrote:
> # HG changeset patch
> # User Denis Laxalde <denis.laxalde at logilab.fr>
> # Date 1561473778 -7200
> #      mar. juin 25 16:42:58 2019 +0200
> # Branch 3.26
> # Node ID 112f3c2b6f1ee3466447a010d3ce22b5a19c4dc8
> # Parent  2337c8c056576e5e6d93b8f70eb13e1fb6098e67
> # Available At https://hg.logilab.org/review/cubicweb
> #              hg pull https://hg.logilab.org/review/cubicweb -r 112f3c2b6f1e
> [debian] Install cubicweb-ctl from python2 build
> 
> Previously, the binary package was empty. Now it is bound to
> the python2 package as support for python3 is "fresh".
> 
> In order python2 and python3 packages to be co-installable, we drop the
> cubicweb-ctl file from both packages.
> 
> diff --git a/debian/changelog b/debian/changelog
> --- a/debian/changelog
> +++ b/debian/changelog
> @@ -2,6 +2,7 @@ cubicweb (3.26.11-2) UNRELEASED; urgency
>  
>    * Remove build dependency on dh-systemd
>    * Build python3 basic packages
> +  * Actually install something in cubicweb-ctl binary package
>  
>   -- Denis Laxalde <denis.laxalde at logilab.fr>  Tue, 25 Jun 2019 16:38:09 +0200
>  
> diff --git a/debian/rules b/debian/rules
> --- a/debian/rules
> +++ b/debian/rules
> @@ -23,3 +23,8 @@ endif
>  override_dh_installchangelogs:
>  	dh_installchangelogs -Xdoc/changes
>  
> +override_dh_auto_install:
> +	dh_auto_install
> +	mkdir -p debian/cubicweb-ctl/usr/bin
> +	mv debian/python-cubicweb/usr/bin/cubicweb-ctl debian/cubicweb-ctl/usr/bin
> +	rm debian/python3-cubicweb/usr/bin/cubicweb-ctl

I think this /usr/bin/cubicweb-ctl won't work with python3 because it
contains a python2 sheebang.

Content of cubicweb-ctl in cubicweb-ctl_3.26.11-2_all.deb is:

#! /usr/bin/python2
# EASY-INSTALL-ENTRY-SCRIPT: 'cubicweb==3.26.11','console_scripts','cubicweb-ctl'
__requires__ = 'cubicweb==3.26.11'
import re
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(
        load_entry_point('cubicweb==3.26.11', 'console_scripts', 'cubicweb-ctl')()
    )


I think one way to fix this and having it works with python2, python3
and both installed is to write a wrapper shell script detecting python
version.
For example of such script https://salsa.debian.org/python-team/modules/python-django/blob/debian/sid/debian/django-admin

But maybe Jérémy known a better trick for this ?



More information about the cubicweb-devel mailing list