[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