[elbe-devel] [PATCH 21/25] py3: debian - produce python3 in python2 packages
Torben Hohn
torben.hohn at linutronix.de
Mon Dec 18 10:52:42 CET 2017
On Mon, Dec 11, 2017 at 10:11:15AM +0100, Manuel Traut wrote:
> move from compat 7 to 9 and use pybuild instead of python_distutils
>
> preseed relevant package names with python- or python3-
We are accumulating stuff, which enables backward compatible py2
support. Some of these py2py3 fixes are pretty ugly.
Lets agree, that we open a bug, where we track these things,
so that we can get rid of them, once we have a working python3 based
elbe version. (The missing link is python3-spyne currently)
As agreed per telephone, manut opens the github issue,
when he commits this patch.
I will try to find the other patches.
>
> Signed-off-by: Manuel Traut <manut at linutronix.de>
Reviewed-by: Torben Hohn <torben.hohn at linutronix.de>
> ---
> .gitignore | 12 +-
> debian/compat | 2 +-
> debian/control | 126 ++++++++++++++++++---
> debian/elbe-common.lintian-overrides | 2 -
> debian/elbe-schema.install | 1 +
> ...-common.xmlcatalogs => elbe-schema.xmlcatalogs} | 0
> debian/python-elbe-bin.install | 2 +
> debian/python-elbe-bin.lintian-overrides | 2 +
> ...ildenv.install => python-elbe-buildenv.install} | 0
> ...denv.postinst => python-elbe-buildenv.postinst} | 0
> ...e-common.install => python-elbe-common.install} | 3 -
> ...control.install => python-elbe-control.install} | 0
> debian/python3-elbe-buildenv.install | 29 +++++
> debian/python3-elbe-buildenv.postinst | 4 +
> debian/python3-elbe-common.install | 32 ++++++
> debian/python3-elbe-control.install | 5 +
> debian/rules | 2 +-
> elbepack/commands/adjustpkgs.py | 6 +-
> elbepack/init/preseed.cfg.mako | 2 +-
> 19 files changed, 197 insertions(+), 33 deletions(-)
> delete mode 100644 debian/elbe-common.lintian-overrides
> create mode 100644 debian/elbe-schema.install
> rename debian/{elbe-common.xmlcatalogs => elbe-schema.xmlcatalogs} (100%)
> create mode 100644 debian/python-elbe-bin.install
> create mode 100644 debian/python-elbe-bin.lintian-overrides
> rename debian/{elbe-buildenv.install => python-elbe-buildenv.install} (100%)
> rename debian/{elbe-buildenv.postinst => python-elbe-buildenv.postinst} (100%)
> rename debian/{elbe-common.install => python-elbe-common.install} (95%)
> rename debian/{elbe-control.install => python-elbe-control.install} (100%)
> create mode 100644 debian/python3-elbe-buildenv.install
> create mode 100644 debian/python3-elbe-buildenv.postinst
> create mode 100644 debian/python3-elbe-common.install
> create mode 100644 debian/python3-elbe-control.install
>
> diff --git a/.gitignore b/.gitignore
> index 461dc605..135c7d14 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -1,12 +1,18 @@
> tags
> +.pybuild
> elbe.egg-info
> debian/elbe-bootup-check/
> -debian/elbe-buildenv/
> -debian/elbe-common/
> -debian/elbe-control/
> +debian/python-elbe-buildenv/
> +debian/python3-elbe-buildenv/
> +debian/python-elbe-bin/
> +debian/python-elbe-common/
> +debian/python3-elbe-common/
> +debian/python-elbe-control/
> +debian/python3-elbe-control/
> debian/elbe-daemon/
> debian/elbe-debianize/
> debian/elbe-doc/
> +debian/elbe-schema/
> debian/elbe-soap/
> debian/elbe-updated/
> *.debhelper
> diff --git a/debian/compat b/debian/compat
> index 7f8f011e..ec635144 100644
> --- a/debian/compat
> +++ b/debian/compat
> @@ -1 +1 @@
> -7
> +9
> diff --git a/debian/control b/debian/control
> index fa12f1d6..c9454ae5 100644
> --- a/debian/control
> +++ b/debian/control
> @@ -2,12 +2,16 @@ Source: elbe
> Section: misc
> Priority: optional
> Maintainer: Manuel Traut <manut at linutronix.de>
> -Build-Depends: dh-python,
> - debhelper (>= 7),
> - dh-systemd (>= 1.5),
> +Build-Depends: debhelper (>= 9),
> + dh-python,
> + dh-systemd,
> + python-setuptools,
> python (>= 2.7~),
> - python-mako,
> python-lxml,
> + python-mako,
> + python3,
> + python3-lxml,
> + python3-mako,
> dia,
> asciidoc,
> xmlto,
> @@ -27,9 +31,28 @@ Description: man-pages, examples and documentation
> man-pages for elbe and all elbe subcommands. Some documentation and howtos.
> And examples for several targets.
>
> -Package: elbe-common
> +Package: elbe-schema
> +Architecture: all
> +Conflicts: elbe-common
> +Depends: ${misc:Depends}
> +Description: xml schema files
> + Common files for ELBE (embedded linux build environment). These
> + schemas are used by ELBE.
> +
> +Package: python-elbe-bin
> +Conflicts: elbe-common
> +Architecture: all
> +Depends: python-elbe-common (= ${binary:Version})
> +Description: elbe executable
> + Common files for ELBE (embedded linux build environment). These
> + python-modules are shared by several elbe subcommands.
> +
> +Package: python-elbe-common
> Architecture: all
> +Conflicts: elbe-common
> Depends: ${misc:Depends},
> + elbe-schema (= ${binary:Version}),
> + python-elbe-bin (= ${binary:Version}),
> python (>= 2.7~),
> python-lxml,
> python-apt,
> @@ -42,6 +65,22 @@ Description: common files
> Common files for ELBE (embedded linux build environment). These
> python-modules are shared by several elbe subcommands.
>
> +Package: python3-elbe-common
> +Architecture: all
> +Depends: ${misc:Depends},
> + elbe-schema (= ${binary:Version}),
> + python3,
> + python3-lxml,
> + python3-apt,
> + python3-gpgme,
> + python3-gpg,
> + python3-libvirt,
> + wget,
> + cpio
> +Description: common files
> + Common files for ELBE (embedded linux build environment). These
> + python-modules are shared by several elbe subcommands.
> +
> Package: elbe-debianize
> Architecture: all
> Depends: ${misc:Depends},
> @@ -49,7 +88,7 @@ Depends: ${misc:Depends},
> devscripts,
> libdistro-info-perl,
> libparse-debcontrol-perl,
> - elbe-common (= ${binary:Version}),
> + python-elbe-common (= ${binary:Version}),
> python-mako,
> python-npyscreen
> Description: Wizard for debian foler generation
> @@ -59,8 +98,8 @@ Package: elbe
> Architecture: all
> Depends: ${misc:Depends},
> python (>= 2.7~),
> - elbe-common (= ${binary:Version}),
> - elbe-control (= ${binary:Version}),
> + python-elbe-bin (= ${binary:Version}),
> + python-elbe-control (= ${binary:Version}),
> qemu-utils,
> qemu-kvm (>= 1:2.1),
> python-mako,
> @@ -76,14 +115,51 @@ Package: elbe-daemon
> Architecture: all
> Depends: ${misc:Depends},
> python (>= 2.7~),
> - elbe-common (= ${binary:Version}),
> - elbe-buildenv (= ${binary:Version}),
> + python-elbe-common (= ${binary:Version}),
> + python-elbe-buildenv (= ${binary:Version}),
> python-cherrypy3, python-beaker, openssh-server, lsb-base (>= 3.0-6)
> Description: wsgi daemon interface
> subcommand to start wsgi services.
>
> -Package: elbe-buildenv
> +Package: python3-elbe-buildenv
> Architecture: all
> +Depends: ${misc:Depends},
> + python3,
> + apt-rdepends,
> + binfmt-support,
> + debootstrap,
> + dosfstools,
> + dpkg-dev,
> + python3-elbe-common (= ${binary:Version}),
> + genisoimage,
> + mtd-utils,
> + python3-apt,
> + python3-mako,
> + python3-parted,
> + python3-passlib,
> + python3-sqlalchemy,
> + python3-debian,
> + qemu-user-static,
> + reprepro,
> + rsync,
> + kpartx,
> + squashfs-tools,
> + sudo,
> + pbuilder,
> + git,
> + ca-certificates,
> + subversion,
> + haveged
> +Description: Embedded Linux Build Environment Server Component
> + This package is typically installed in a virtual machine (that can be created
> + with the 'elbe initvm create' command from the 'elbe' package). Several
> + subcommands need to be executed with root privileges. It is not recommended to
> + install this package on a native system.
> +
> +
> +Package: python-elbe-buildenv
> +Architecture: all
> +Conflicts: elbe-buildenv
> Depends: ${misc:Depends},
> python (>= 2.7~),
> apt-rdepends,
> @@ -91,7 +167,7 @@ Depends: ${misc:Depends},
> debootstrap,
> dosfstools,
> dpkg-dev,
> - elbe-common (= ${binary:Version}),
> + python-elbe-common (= ${binary:Version}),
> genisoimage,
> mtd-utils,
> python-apt,
> @@ -123,7 +199,7 @@ Package: elbe-bootup-check
> Architecture: all
> Depends: ${misc:Depends},
> python (>= 2.7~),
> - elbe-common (= ${binary:Version}),
> + python-elbe-common (= ${binary:Version}),
> python-apt, lsb-base (>= 3.0-6)
> Description: bootup checker
> This package is typically installed on a embedded system. The bootup checker
> @@ -134,28 +210,42 @@ Architecture: all
> Depends: ${misc:Depends},
> python (>= 2.7~),
> python-spyne,
> - elbe-buildenv (= ${binary:Version}),
> + python-elbe-buildenv (= ${binary:Version}),
> elbe-daemon (= ${binary:Version})
> Description: SOAP Interface for elbe buildenv
> Enables remote control of the elbe buildenv via SOAP.
>
> -Package: elbe-control
> +Package: python-elbe-control
> Architecture: all
> +Conflicts: elbe-control
> Depends: ${misc:Depends},
> python (>= 2.7~),
> python-suds,
> python-debian,
> - elbe-common (= ${binary:Version}),
> + python-elbe-common (= ${binary:Version}),
> libvirt-clients,
> libvirt-daemon-system
> Description: Commandline Tool to control an elbe buildenv
> The SOAP Interface is used to control an elbe buildenv.
>
> +Package: python3-elbe-control
> +Architecture: all
> +Depends: ${misc:Depends},
> + python3,
> + python3-suds,
> + python3-debian,
> + python3-elbe-common (= ${binary:Version}),
> + libvirt-clients,
> + libvirt-daemon-system
> +Description: Commandline Tool to control an elbe buildenv
> + The SOAP Interface is used to control an elbe buildenv.
> +
> +
> Package: elbe-updated
> Architecture: all
> Depends: ${misc:Depends},
> python (>= 2.7~),
> - elbe-common (= ${binary:Version}),
> + python-elbe-common (= ${binary:Version}),
> python-lxml (>= 2.3.2-1),
> python-tz (>= 2012c-1),
> python-pyinotify,
> @@ -168,6 +258,6 @@ Suggests: python-pyudev,
> Description: update daemon for embedded systems
> This package is typically installed on a embedded system. The update daemon
> monitors a directory or USB mounts. If an ELBE update file (generated by
> - 'elbe gen_update' command from the 'elbe-buildenv' package) is placed in this
> + 'elbe gen_update' command from the 'python-elbe-buildenv' package) is placed in this
> directory the update will be applied.
> Downgrades are possible by the integrated SOAP interface.
> diff --git a/debian/elbe-common.lintian-overrides b/debian/elbe-common.lintian-overrides
> deleted file mode 100644
> index 8f16ce0f..00000000
> --- a/debian/elbe-common.lintian-overrides
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -# documentation is provided in elbe-doc
> -elbe-common: binary-without-manpage usr/bin/elbe
> diff --git a/debian/elbe-schema.install b/debian/elbe-schema.install
> new file mode 100644
> index 00000000..7cb5f41f
> --- /dev/null
> +++ b/debian/elbe-schema.install
> @@ -0,0 +1 @@
> +schema/*xsd usr/share/xml/elbe-common/
> diff --git a/debian/elbe-common.xmlcatalogs b/debian/elbe-schema.xmlcatalogs
> similarity index 100%
> rename from debian/elbe-common.xmlcatalogs
> rename to debian/elbe-schema.xmlcatalogs
> diff --git a/debian/python-elbe-bin.install b/debian/python-elbe-bin.install
> new file mode 100644
> index 00000000..0afb26cf
> --- /dev/null
> +++ b/debian/python-elbe-bin.install
> @@ -0,0 +1,2 @@
> +./usr/bin/*
> +./usr/share/man/man1/elbe.1
> diff --git a/debian/python-elbe-bin.lintian-overrides b/debian/python-elbe-bin.lintian-overrides
> new file mode 100644
> index 00000000..b4d50058
> --- /dev/null
> +++ b/debian/python-elbe-bin.lintian-overrides
> @@ -0,0 +1,2 @@
> +# documentation is provided in elbe-doc
> +python-elbe-bin: binary-without-manpage usr/bin/elbe
> diff --git a/debian/elbe-buildenv.install b/debian/python-elbe-buildenv.install
> similarity index 100%
> rename from debian/elbe-buildenv.install
> rename to debian/python-elbe-buildenv.install
> diff --git a/debian/elbe-buildenv.postinst b/debian/python-elbe-buildenv.postinst
> similarity index 100%
> rename from debian/elbe-buildenv.postinst
> rename to debian/python-elbe-buildenv.postinst
> diff --git a/debian/elbe-common.install b/debian/python-elbe-common.install
> similarity index 95%
> rename from debian/elbe-common.install
> rename to debian/python-elbe-common.install
> index 6c137e06..00757619 100644
> --- a/debian/elbe-common.install
> +++ b/debian/python-elbe-common.install
> @@ -1,4 +1,3 @@
> -./usr/bin/*
> ./usr/lib/python2.*/*-packages/elbepack/elbe-repo.pub
> ./usr/lib/python2.*/*-packages/elbepack/init/default-init.xml
> ./usr/lib/python2.*/*-packages/elbepack/init/Makefile.mako
> @@ -31,5 +30,3 @@
> ./usr/lib/python2.*/*-packages/elbepack/version.py
> ./usr/lib/python2.*/*-packages/elbepack/virtapt.py
> ./usr/lib/python2.*/*-packages/elbepack/xmldefaults.py
> -./usr/share/man/man1/elbe.1
> -schema/*xsd usr/share/xml/elbe-common/
> diff --git a/debian/elbe-control.install b/debian/python-elbe-control.install
> similarity index 100%
> rename from debian/elbe-control.install
> rename to debian/python-elbe-control.install
> diff --git a/debian/python3-elbe-buildenv.install b/debian/python3-elbe-buildenv.install
> new file mode 100644
> index 00000000..54f39ee5
> --- /dev/null
> +++ b/debian/python3-elbe-buildenv.install
> @@ -0,0 +1,29 @@
> +./usr/lib/python3.*/*-packages/elbepack/commands/adjustpkgs.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/buildchroot.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/buildsysroot.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/chroot.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/db.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/genlicence.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/gen_update.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/hdimg.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/mkcdrom.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/toolchainextract.py
> +./usr/lib/python3.*/*-packages/elbepack/makofiles/preferences.mako
> +./usr/lib/python3.*/*-packages/elbepack/hdimg.py
> +./usr/lib/python3.*/*-packages/elbepack/db.py
> +./usr/lib/python3.*/*-packages/elbepack/dbaction.py
> +./usr/lib/python3.*/*-packages/elbepack/dump.py
> +./usr/lib/python3.*/*-packages/elbepack/ziparchives.py
> +./usr/lib/python3.*/*-packages/elbepack/repomanager.py
> +./usr/lib/python3.*/*-packages/elbepack/finetuning.py
> +./usr/lib/python3.*/*-packages/elbepack/rfs.py
> +./usr/lib/python3.*/*-packages/elbepack/aptpkgutils.py
> +./usr/lib/python3.*/*-packages/elbepack/asciidoclog.py
> +./usr/lib/python3.*/*-packages/elbepack/cdroms.py
> +./usr/lib/python3.*/*-packages/elbepack/debianreleases.py
> +./usr/lib/python3.*/*-packages/elbepack/debpkg.py
> +./usr/lib/python3.*/*-packages/elbepack/efilesystem.py
> +./usr/lib/python3.*/*-packages/elbepack/fstab.py
> +./usr/lib/python3.*/*-packages/elbepack/rpcaptcache.py
> +./usr/lib/python3.*/*-packages/elbepack/updatepkg.py
> +./usr/lib/python3.*/*-packages/elbepack/pbuilder.py
> diff --git a/debian/python3-elbe-buildenv.postinst b/debian/python3-elbe-buildenv.postinst
> new file mode 100644
> index 00000000..2a90a4a1
> --- /dev/null
> +++ b/debian/python3-elbe-buildenv.postinst
> @@ -0,0 +1,4 @@
> +#!/bin/bash
> +set -e
> +elbe db init --name=root --password=foo
> +#DEBHELPER#
> diff --git a/debian/python3-elbe-common.install b/debian/python3-elbe-common.install
> new file mode 100644
> index 00000000..1c94cd3b
> --- /dev/null
> +++ b/debian/python3-elbe-common.install
> @@ -0,0 +1,32 @@
> +./usr/lib/python3.*/*-packages/elbepack/elbe-repo.pub
> +./usr/lib/python3.*/*-packages/elbepack/init/default-init.xml
> +./usr/lib/python3.*/*-packages/elbepack/init/Makefile.mako
> +./usr/lib/python3.*/*-packages/elbepack/init/libvirt.xml.mako
> +./usr/lib/python3.*/*-packages/elbepack/init/apt.conf.mako
> +./usr/lib/python3.*/*-packages/elbepack/init/preseed.cfg.mako
> +./usr/lib/python3.*/*-packages/elbepack/init/init-elbe.sh.mako
> +./usr/lib/python3.*/*-packages/elbepack/__init__.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/__init__.py
> +./usr/lib/python3.*/*-packages/elbepack/aptprogress.py
> +./usr/lib/python3.*/*-packages/elbepack/config.py
> +./usr/lib/python3.*/*-packages/elbepack/default-preseed.xml
> +./usr/lib/python3.*/*-packages/elbepack/directories.py
> +./usr/lib/python3.*/*-packages/elbepack/dosunix.py
> +./usr/lib/python3.*/*-packages/elbepack/elbexml.py
> +./usr/lib/python3.*/*-packages/elbepack/elbeproject.py
> +./usr/lib/python3.*/*-packages/elbepack/filesystem.py
> +./usr/lib/python3.*/*-packages/elbepack/gpg.py
> +./usr/lib/python3.*/*-packages/elbepack/initvmaction.py
> +./usr/lib/python3.*/*-packages/elbepack/kvm.py
> +./usr/lib/python3.*/*-packages/elbepack/licencexml.py
> +./usr/lib/python3.*/*-packages/elbepack/pbuilderaction.py
> +./usr/lib/python3.*/*-packages/elbepack/pkgutils.py
> +./usr/lib/python3.*/*-packages/elbepack/xmlpreprocess.py
> +./usr/lib/python3.*/*-packages/elbepack/shellhelper.py
> +./usr/lib/python3.*/*-packages/elbepack/templates.py
> +./usr/lib/python3.*/*-packages/elbepack/toolchain.py
> +./usr/lib/python3.*/*-packages/elbepack/treeutils.py
> +./usr/lib/python3.*/*-packages/elbepack/validate.py
> +./usr/lib/python3.*/*-packages/elbepack/version.py
> +./usr/lib/python3.*/*-packages/elbepack/virtapt.py
> +./usr/lib/python3.*/*-packages/elbepack/xmldefaults.py
> diff --git a/debian/python3-elbe-control.install b/debian/python3-elbe-control.install
> new file mode 100644
> index 00000000..965f2d4f
> --- /dev/null
> +++ b/debian/python3-elbe-control.install
> @@ -0,0 +1,5 @@
> +./usr/lib/python3.*/*-packages/elbepack/commands/control.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/initvm.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/pbuilder.py
> +./usr/lib/python3.*/*-packages/elbepack/commands/prjrepo.py
> +./usr/lib/python3.*/*-packages/elbepack/soapclient.py
> diff --git a/debian/rules b/debian/rules
> index 39160f30..cf2bcb12 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -26,4 +26,4 @@ override_dh_install:
> dh_installxmlcatalogs
>
> %:
> - dh --with systemd --buildsystem=python_distutils --with python2 $@
> + dh $@ --with systemd --buildsystem=pybuild --with python2,python3
> diff --git a/elbepack/commands/adjustpkgs.py b/elbepack/commands/adjustpkgs.py
> index d21da1bd..f64715b1 100644
> --- a/elbepack/commands/adjustpkgs.py
> +++ b/elbepack/commands/adjustpkgs.py
> @@ -1,5 +1,3 @@
> -#!/usr/bin/env python
> -#
> # ELBE - Debian Based Embedded Rootfilesystem Builder
> # Copyright (C) 2013 Linutronix GmbH
> #
> @@ -111,9 +109,9 @@ def run_command( argv ):
> xml_pkglist = xml.node("/target/pkg-list")
> xml_pkgs = [p.et.text for p in xml_pkglist]
>
> - mandatory_pkgs = ["elbe-buildenv"]
> + mandatory_pkgs = ["python-elbe-buildenv"]
> if xml.has("target/images/msdoshd/grub-install"):
> - mandatory_pkgs = ["elbe-buildenv", "grub-pc"]
> + mandatory_pkgs = ["python-elbe-buildenv", "grub-pc"]
>
> # TODO: install buildimage packages after target image generation
> # and remove theme before target image generation
> diff --git a/elbepack/init/preseed.cfg.mako b/elbepack/init/preseed.cfg.mako
> index 086ad849..196f1d42 100644
> --- a/elbepack/init/preseed.cfg.mako
> +++ b/elbepack/init/preseed.cfg.mako
> @@ -105,7 +105,7 @@ apt-mirror-setup apt-setup/use_mirror boolean false
> d-i finish-install/reboot_in_progress note
> d-i pkgsel/include string rng-tools btrfs-tools openssh-client \
> debathena-transform-lighttpd \
> -elbe-soap elbe-buildenv qemu-elbe-user-static \
> +elbe-soap python-elbe-buildenv qemu-elbe-user-static \
> % for n in pkgs:
> % if n.tag == "pkg":
> % if prj.has("mirror/primary_host") or not prj.node("mirror/cdrom") or n.et.text.find('/') == -1:
> --
> 2.15.1
>
>
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel
--
Mit freundlichen Grüßen
Torben Hohn
Linutronix GmbH
Standort: Bremen
Phone: +49 7556 25 999 18; Fax.: +49 7556 25 999 99
Firmensitz / Registered Office: D-88690 Uhldingen, Bahnhofstr. 3
Registergericht / Local District Court: Amtsgericht Freiburg i. Br.; HRB
Nr. / Trade register no.: 700 806
Geschäftsführer / Managing Directors: Heinz Egger, Thomas Gleixner
Eine Bitte von uns: Sollten Sie diese E-Mail irrtümlich erhalten haben,
benachrichtigen Sie uns in diesem Falle bitte sobald wie es Ihnen
möglich ist, durch Antwort-Mail. Vielen Dank!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <http://lists.linutronix.de/pipermail/elbe-devel/attachments/20171218/dfd61c3d/attachment.sig>
More information about the elbe-devel
mailing list