:title: OpenDev PPA .. _opendev_ppa: OpenDev PPA details ################### There are various utilities where the OpenDev infrastructure requires tools or utilities with updates, bug fixes or are otherwise not packaged by upstream. Since our standard server environment is Ubuntu, we utilise shared `PPA `__ repositories to build and provide these updated packages. It is generally our intention to work with upstream to make all relevant changes in a generic fashion. Unfortunately the reality of also running production systems sometimes interferes with this goal! Any packages coming from the OpenDev PPA are therefore rather ad-hoc, and depend on circumstances resulting in needing a new package. Some will incorporate a patch or bug fix, others may back port new versions of software, it may be software that is not available in the upstream distribution for various reasons. Generally any specifics relating to the packages in the various PPA's under the OpenStack CI Core team's purview will be documented in the playbooks, roles or scripts that are using the PPA. At a Glance =========== :Hosts: * Various :Ansible: * Various :Projects: * https://launchpad.net/~openstack-ci-core Permissions =========== To have permissions to create a new PPA in the ``openstack-ci-core`` team, or work existing PPA's you need to be added as a member. Any current member of the team, or the parent `OpenStack Administrators `__ group can add a person to the PPA. This can be arranged via discussion in #openstack-infra, on the infra mailing list or perhaps via a topic discussion in the weekly meeting. Uploading ========= Debian packaging can get quite complex, and you will need an understanding of how to create ``.deb`` packages, sign them and use tools to upload into the PPA. There are many various guides * http://shallowsky.com/blog/programming/packaging-launchpad-ppas.html * https://askubuntu.com/questions/71510/how-do-i-create-a-ppa/493577#493577 * https://wiki.debian.org/HowToPackageForDebian Note you will have to have your GPG key in your launchpad profile, and upload the source packages signed with that key for them to be accepted and built. Usage ===== Generally the PPA will be used in Ansible roles via the inbuilt ``apt_repository`` task. Once the PPA is added standard install mechanisms are used for the package install.