[Openstack-devel] Ubuntu diff for nova

YunQiang Su wzssyqa at gmail.com
Wed Sep 5 08:08:23 UTC 2012


On Wed, Sep 5, 2012 at 3:42 AM, Ola Lundqvist <ola at inguza.com> wrote:
> Hi all
>
> This is the last diff between ubuntu and debian. And it is also the largest.
>
> Precise Pangolin:
> https://launchpad.net/ubuntu/+archive/primary/+files/nova_2012.1%2Bstable~20120612-3ee026e-0ubuntu1.2.dsc
>
> Quantal Quetzal:
> https://launchpad.net/ubuntu/+archive/primary/+files/nova_2012.2~f2-0ubuntu1.dsc
>
> The difference between the Pangolin and the Quetzal version are
> quite large, but essentially it can be summarized in adaptation
> to the 2012.2 version. The details are not checked but as the
> difference is rather large the diff analysis is made between Pangolin
> version and latest git.
>
> High level summary:
> ===================
>  - The diff is very large. You can get a feeling about the difference by just
>    reading debian/control below.
>  - Debian dependency for nova-compute-xen, nova-api-* should probably be adjusted.
>  - Adjustment to the rest should be considered.
>  - Debian has usr/bin/nova-consoleauth part of nova-console package while ubuntu
>    has it in the nova-consoleauth package. Debian still provide the nova-consoleauth
>    package but it seems to be quite empty.
>  - Quite different .init files.
>  - Different patch set.
>
> Detailed summary below:
> =======================
>
> debian/control
> --------------
>  - build dependency differences. The difference is large, so it is
>    better to look into the detailed diff file instead. In general
>    ubuntu has a large list of Build-Depends-Indep and just two
>    small ones for Build-Depends. Debian has the opposite.
It seems that the Debian one uses this feather to generate or not
generate documents when build. Is it?

>  general:
>   - Different descriptions for the binary packages
>   - When ubuntu use ${ostack-lsb-base}, debian use lsb-base (>= 3.0.6) or lsb-base or
>     ${ostack-lsb-base}
How the ${ostack-lsb-base} is replaced, by which command?
I cannot find an dh_openstack.
>  python-nova:
>  - Dependency difference for python-nova. Ubuntu has the following depds
>     that debian is lacking:
>       openssh-client, python-netaddr, python-feedparser,
>       python-xattr, python-daemon, python-suds, python-iso8601
openssl-client: as LP:#956177, it does be needed
python-netaddr is imported by nova.network and thus is also needed
python-feedparser seems only needed when test, while not needed when runtime.
python-xattr: In ChangeLog:  Add xattr to pip-requires until glance
setup.py installs it correctly
           In the 2012.2, it seems not needed at all, even for build-dep.
python-daemon is not needed any more.
python-suds: Nova process the situation that python-suds cannot be found.
             Thus, in Debian, it is set to Suggests.
             What the python-suds is used for by nova?
python-iso8601:  In Debian, nova-common depends it.
             As it is import in nova/openstack/common/timeutils.py
>  - ubuntu provide XB-Python-Version: ${python:Versions} for python-nova.
As policy, XB-Python-Version has been deprecated.
Why ubuntu guys add it here?

>  nova-common:
>  - Dependency difference for nova-common where debian has the following
>     that ubuntu is lacking.
>       python-iso8601,
> dbconfig-common, sqlite3
>    Debian suggest: python-pysqlite2 | python-mysqldb | python-pygresql while
The Debian one has more debconf stuff.
The debian one will try to create database and database user.
>     ubuntu suggests: python-keystone
I will add some thing about create keystone users, tenant etc in keystone.
So we may depends on keystone package.
>  - Ubuntu provides Provides: ${python:Provides} for nova-common, debian
>    does not do that
It is for python-support, while we use dh_python2 now.

>  nova-compute:
>  - Debian depend on adduser, ubuntu does not.
adduser  is used in postinst etc.
>  - Debian has a replaces and breaks that ubuntu is lacking. The breaks is
>    not really necessary, the replaces should be sufficient.
Maybe they are needed before.

>  nova-compute-lxc:
>  - Dependency difference:
>    ubuntu: nova-compute (= ${binary:Version})
>    debian: adduser, nova-common
>  - Conflict differences:
>    ubuntu: nova-compute-hypervisor
>    debian: nova-compute-kvm, nova-compute-qemu, nova-compute-uml, nova-compute-xen
>  nova-compute-uml:
>  - Same diff as for nova-compute-lxc except the conflicts where you replace uml with lxc.
>  nova-compute-qemu:
>  - Same diff as for nova-compute-lxc except the conflicts where you replace qemu with lxc.
>  nova-compute-kvm:
>  - Same diff as for nova-compute-lxc except the conflicts where you replace kvm with lxc.
>  nova-compute-xen:
>  - Dependency difference:
>    ubuntu: nova-compute (= ${binary:Version}), python-libvirt, libvirt-bin, xen-hypervisor-4.1-amd64 | xen-hypervisor-4.1-i386
>    debian: python-xenapi, adduser, nova-common
>  - Same conflict diff as for nova-compute-lxc except the conflicts where you replace xen
>    with lxc.
>  nova-compute-xcp:
>  - Debian does not provide this package at all. Ubuntu does.
Ubuntu and Debian use different way to install compute.
In Debian one, nova-compute depends one of nova-compute-*, and thus,
if you want to deploy an nova-compute node, you can directly install
nova-compute and it will use kvm+libvirt.
If you want to deploy a lxc node, you have to install the
nova-compute-lxc and then
install nova-compute.

In the Ubuntu way, you can just install nova-compute-lxc, then nova-compute will
be installed and then, an lxc node is ok now.

I prefer the way Ubuntu is using now.

>  nova-ajax-console-proxy:
>  - Debian does not provide this package at all. Ubuntu does.
In Ubuntu, it's an empty package to help upgrade
>  nova-network:
>  - Debian has a replaces & breaks against python-nova (<< 2012.1~rc1-1)
>  nova-volume:
>  - Debian has a replaces & breaks against python-nova (<< 2012.1~rc1-1)
nothing at all.
>  nova-vncproxy & nova-xvpvncproxy:
>  - Ubuntu has nova-vncproxy while debian has nova-xvpvncproxy (that provides nova-vncproxy)
>  - Ubuntu has a conflict against novnc, while debian does not.
Why conflict novnc?
>  nova-consoleauth:
>  - Ubuntu provides this pacakge. Debian does not, instead nova-console provide
>    nova-consoleauth in debian.
Is it needed to be splited?
>  nova-console:
>  - Ubuntu merely recommend nova-consoleauth, where debian include it.
>  - ubuntu has a breaks replaces on nova-console (<< 2012.1~rc1-0ubuntu2)
>  nova-doc:
>  - Debian adds libjs-jquery, libjs-underscore to the dependencies.
lintian warning that the doc has some js script, so ,the Debian one remove them
and link them from  libjs-jquery, libjs-underscore.
>  nova-api-metadata:
>  - Debian adds reaplces and breaks.
>  nova-api-os-compute, nova-api-os-volume, nova-api-ec2:
>  - Ubuntu has an unversioned breaks to nova-api which looks odd. It should be versioned
>    as in the Debian package variant.
>  - The debian replaces, should be versioned. This is a bug.
>  nova-api-metadata & nova-api-os-compute & nova-api-os-volume & nova-api-ec2:
>  - ubuntu has a Breaks: nova-api. It should be versioned.
>  - debian has a versioned breaks but has a replaces which is unversioned. It should
>    be versioned.
>
> debian/rules
> ------------
>  - different clean rules
>  - different dh command
>     ubuntu: dh $@ ${WITH_PYTHON2}
>     debian: dh $@ --with python2
>  - ubuntu package generates nova-compute.postinst from nova-compute.postinst.in
>  - debian has special handling for nova-compute-xen.conf
>  - different auto-test command
>  - differences in what .upstart and .init files that are installed.
>  - debian has special handling for nova-consoleauth init file, see also below.
>  - debian has rules for po handling, ubuntu does not.
>  - ubuntu has rules to override dh_installlogrotate, debian does not.
>
> debian/copyright:
> -----------------
>  - Some differences. Debian has added a specific for bin/nova-manage.
>
> debian/source_nova.py
> ---------------------
>  - ubuntu list nova-cert in "attach_related_packages", ubuntu does not.
>
> debian/mans/nova-network.8
> --------------------------
>  - spelling correction in debian
>
> debian/*.upstart*
> -----------------
>  - ubuntu provides these, debian does not
>
> debian/nova-api.init
> debian/nova-console.init
> debian/nova-network.init
> debian/nova-objectstore.init
> debian/nova-scheduler.init
> debian/nova-xcp-network.init
> debian/nova-xvpvncproxy.init
> ------------------------
>  - Quite large difference but is possible to summarize.
>  - Debian adds lsb init functions.
>  - Debian loads defaults file, and has adjustments for the $NOVA_ENABLE flag.
>
> debian/nova-api-metadata.ini
> debian/nova-api-os-compute.init
> debian/nova-api-ec2.init
> debian/nova-api-os-volume.init
> debian/nova-cert.init
> debian/nova-compute.init
> debian/nova-volume.init
> ----------------------------
>  - large differences, see the detailed diff
>
> debian/nova-api.postrm
> debian/nova-cert.postrm
> ----------------------
>  - Debian provides this file. It removes log files on purge.
>
> debian/nova-common.config
> -------------------------
>  - Debian provides this. Makes it possible to answer questions about
>    db setup at installation time.
>
> debian/*.docs
> -------------
>  some differences. See the detailed diff.
>
> debian/nova-common.install
> --------------------------
>  - ubuntu install debian/nova.conf to etc/nova, debian does not.
>    Instead this is handled in .postinst file, see below.
>
> debian/nova-common.nova-manage.logrotate
> ----------------------------------------
>  - ubuntu provides this, debian does not.
>
> debian/nova-common.postinst
> ---------------------------
>  - Ubuntu checks for the existance of an user/group before creating.
>    Debian should do the same.
>  - Handling for nova.conf file instead of marking it as a conffile.
>  - ubuntu alter group permissions and file permissions.
>  - debian setup database and change configuration accordinly.
>
> debian/nova-common.postrm
> -------------------------
>  - Debian provides this to handle purge, including purge from db.
>
> debian/nova-common.prerm
> ------------------------
>  - Debian provides this for db handling.
>
> debian/nova-common.templates
> ----------------------------
>  - Debian provides this file.
>
> debian/nova-compute.install
> debian/nova-network.install
> debian/nova-volume.install
> ---------------------------
>  - Debian provides the compute.py files in the package. Ubuntu has them elsewhere.
>
> debian/nova-compute.pyinstall
> debian/nova-network.pyinstall
> debian/nova-volume.pyinstall
> -----------------------------
>  - Ubuntu has this file. Is this a way to do the same as in the .install file above?
>
> debian/nova-compute-*.conf
> --------------------------
>  - Debian has [DEFAULT] set with connection type and libvirt_type.
>
> nova-compute-lxc.postinst
> -------------------------
>  - Ubuntu set permissions to nova user and group for nova-compute.conf.
>  - Debian adds a libvirt user, but does not set any permissions for it.
>    Also debian does not check for the existance of that user before
>    creating it.
>
> nova/debian/nova-compute.postinst.in
> ------------------------------------
>  - Ubuntu creates a nova user. The odd thing is that it checks for
>    the nova group and if it does not exist, it creates the nova user...
> debian/nova-compute-qemu.postinst
> ---------------------------------
>  - ubuntu change the the permission for /etc/nova/nova-compute.conf
>    to nova user and change its permission to user readable.
>
> debian/nova-compute-uml.postinst
> --------------------------------
>  - ubuntu change the the permission for /etc/nova/nova-compute.conf
>    to nova user and change its permission to user readable.
>  - Debian add nova user to libvirt group
>
> debian/nova-compute-xen.config
> ------------------------------
>  - Debian provides this file, ubuntu does not.
>
> debian/nova-compute-xen.postinst
> --------------------------------
>  - ubuntu change the the permission for /etc/nova/nova-compute.conf
>    to nova user and change its permission to user readable.
>  - debian add nova user to nova group
>  - debian has other handling of config file
>  - debian has support for configuration questions using debconf
>
> debian/nova-compute-xen.templates
> ---------------------------------
>  - debian has support for configuration questions using debconf
>
> debian/nova-compute-xen.postrm
> ------------------------------
>  - debian remove /etc/nova/nova-compute.conf at purge
>
> debian/nova-compute-xen.conf
> debian/nova.conf
> ----------------------------
>  - ubuntu provides these files, debian does not
>
> debian/nova.conf.dist
> ---------------------
>  - debian provide a few more default options
>
> debian/nova-consoleauth.*
> debian/nova-console.nova-consoleauth.init
> -----------------------------------------
>  - ubuntu provide these files, debian does not
>    The exception is that debian has a nova-consoleauth.init file
>    but on the nova-console package instead,
>    nova/debian/nova-console.nova-consoleauth.init. This seems to be
>    handled in debian/rules file in an uncommon way.
>
> debian/nova-console.install
> ---------------------------
>  - debian has usr/bin/nova-consoleauth as part of this package.
>
> debian/nova-console.postrm
> debian/nova-network.postrm
> debian/nova-objectstore.postrm
> debian/nova-scheduler.postrm
> debian/nova-compute.postrm
> debian/nova-volume.postrm
> debian/nova-xvpvncproxy.postrm
> --------------------------
>  - debian remove log file at purge, ubuntu dues not
>
> debian/nova-network.logrotate
> -----------------------------
>  - debian has the /var/log/nova/nova-dhcpbridge.log in nova-network.logrotate
>    while ubuntu has it in its own configuration file
>    nova-network.nova-dhcpbridge.logrotate.
>
> debian/nova-objectstore.logrotate
> ---------------------------------
>  - different way to restart nova-objectstore
>
> debian/nova_sudoers
> -------------------
>  - ubuntu has the line
>    Defaults:nova !requiretty
> debian/nova*vncproxy*
> ---------------------
>  - ubuntu has the package name nova-vncproxy while
>    debian name is nova-xvpvncproxy.
>  - The detailed diff per file is not provided.
>
> debian/nova-xcp-network.postinst
> debian/nova-xcp-plugins.postinst
> --------------------------------
>  - debian package makes a chmod on a number of plugin files to
>    make sure they are executeable. This is a bit of an unusual
>    practice to do this way.
>    The plugins to maek executable differ between packages.
>
> debian/python-nova.postinst
> ---------------------------
>  - debian has "update-python-modules --post-install"
>
> debian/nova-xvpvncproxy.manpages
> debian/mans/nova-vncproxy.8
> ---------------------------------
>  - debian provides this, ubuntu does not
>
> debian/patches/*
> ----------------
>  ubuntu:
>    kombu_tests_timeout.patch
>    fix-ubuntu-tests.patch
>    fix-docs-build-without-network.patch
>    0001-fix-useexisting-deprecation-warnings.patch
>    fix-pep8-errors.patch
>  debian:
>    stable_essex_20120710.patch
>    iscsiadm_path.patch
>
> debian/po/*
> ------------
>  - debian provides this, ubuntu does not
>
> You have made it! You read it though. :-) The even more detailed
> diff is attached. Please note that some differences are just
> differences because files are re-ordered or renamed.
>
> Best regards,
>
> // Ola
>
> PS. I'm subscribed to the list, but I do not read it every day
> so please Cc me if you remember. :-)
> DS.
>
>
> --
>  --- Inguza Technology AB --- MSc in Information Technology ----
> /  ola at inguza.com                    Annebergsslingan 37        \
> |  opal at debian.org                   654 65 KARLSTAD            |
> |  http://inguza.com/                Mobile: +46 (0)70-332 1551 |
> \  gpg/f.p.: 7090 A92B 18FE 7994 0C36 4FE4 18A1 B1CF 0FE5 3DD9  /
>  ---------------------------------------------------------------
>
> _______________________________________________
> Openstack-devel mailing list
> Openstack-devel at lists.alioth.debian.org
> http://lists.alioth.debian.org/mailman/listinfo/openstack-devel



-- 
YunQiang Su



More information about the Openstack-devel mailing list