[openstack-dev] [all][packaging] Adding files to /etc in a package

Perry, Sean sean.perry at hp.com
Wed Jul 1 23:07:30 UTC 2015


BTW, see dh_bash-completion from the debhelper package. When in doubt about packaging on a deb based distro look at the debhelper tools source (which is perl).

-----Original Message-----
From: Perry, Sean 
Sent: Wednesday, July 01, 2015 4:04 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: RE: [openstack-dev] [all][packaging] Adding files to /etc in a package

According to Debian standards (which Ubuntu follows mostly) if a package ships bash completion information that file belongs in /etc/bash_completion.d with a file named after the package. You can look in that dir on an Ubuntu/debian box and see the setup.

-----Original Message-----
From: Tony Breeds [mailto:tony at bakeyournoodle.com]
Sent: Wednesday, July 01, 2015 3:26 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [all][packaging] Adding files to /etc in a package

On Wed, Jul 01, 2015 at 01:33:03PM +0200, Thomas Goirand wrote:

> The file has nothing to do in /usr/share/doc either. By per the debian 
> policy manual: we shouldn't rely on /usr/share/doc, as it can be 
> removed entirely by the users. /usr/share/python-novaclient could be a 
> place, but really, the correct location is 
> /usr/share/bash-completion/completions, not /etc (btw: that's a new 
> thing, it used to be in /etc, but there's now a lintian warning about it).

Personally I like /usr/share/python-novaclient as that's very deliberatlely package centric and if I do that right should make your life as a consumer of the python-novaclient git repo a little simplier.

so with that in mind I'm thinking something like:
---
 [files]
 packages =
     novaclient
+ data_files =
+     usr/share/python-novaclient/nova.bash_completion = 
+ tools/nova.bash_completion
---
Note[1]: I typed that in to my mail client so the diff will be malformed
Note[2]: I deliberatly used 'usr/' rather than '/usr/' so the config file is in
         the install root
Note[3]: For my development systems I can easily add a symlink like:
(cd /usr/share/bash-completions/ ; ln -s ../python-novaclient/nova.bash_completion nova)
Note[4]: the subject of this email is now wrong but we get the idea.

So assuming that somethign like that is acceptable to distribution packages and python packagers we're winning :)

The last questions are:
- How does pbr handle the case where usr/share/python-novaclient/ dosn't exist ?
- Can I make is do the equivilent of: mkdir -p $install_root/usr/share/python-novaclient/ somehow?
- At this point I'll propose a change like this for:
    python-ceilometerclient python-cinderclient python-glanceclient
    python-group-based-policy-client python-heatclient python-ironicclient
    python-keystoneclient python-magnetodbclient python-manilaclient
    python-manilaclient python-mistralclient python-mistralclient
    python-monascaclient python-muranoclient python-muranoclient
    python-neutronclient python-novaclient python-senlinclient
    python-surveilclient python-tackerclient python-watcherclient 

Yours Tony.


More information about the OpenStack-dev mailing list