ervin 0d84f532d8 Update synergy service packaging
This fix updates the packaging of synergy service making it compliant with the indigo-2 requirements.

Change-Id: Ide701fe90c23eb4375bcdf9ff9bfd010cd7290ac
Sem-Ver: bugfix
2017-03-20 18:13:15 +01:00

124 lines
3.6 KiB
Markdown

Packaging
=========
Packaging for Ubuntu and CentOS using Docker
--------------------------------------------
We provide Dockerfiles for CentOS 7 and Ubuntu 16.04. A Dockerfile for Ubuntu >
16.04 should work by just changing the "FROM" statement of the Ubuntu 16.04
Dockerfile. Using these, you can easily build rpm and deb packages for
synergy-service without having to setup the build system on your own system.
The build process using Docker is made of 3 steps:
1. Build the docker image
2. Setup the build variables
3. Run the build with docker
If the build is successful, the package will be put in the build directory
inside the synergy-service directory.
### Example for CentOS 7
- go into the directory that contains the Dockerfile for CentOS 7
cd synergy-service/packaging/docker/centos7
- build the docker image and tag it
docker build -t synergy-centos7-builder .
- launch the container
docker run -i -v /path/to/synergy-service:/tmp/synergy \
synergy-centos7-builder
You can override the package version that will be set during the packaging
process by adding `-e "PKG_VERSION=x.y.z"` to the above command line.
Otherwise, the package version will be set to the latest git tag.
This actually mount the synergy-service directory to `/tmp/synergy` on
the guest.
- the resulting rpm should be in the build directory if successful
### Example for Ubuntu 16.04
- go into the directory that contains the Dockerfile for Ubuntu 16.04
cd synergy-service/packaging/docker/ubuntu-16.04
- build the docker image and tag it
docker build -t synergy-ubuntu16.04-builder .
- launch the container
docker run -i -v /path/to/synergy-service:/tmp/synergy \
synergy-ubuntu16.04-builder
You can override the package version that will be set during the packaging
process by adding `-e "PKG_VERSION=x.y.z"` to the above command line.
Otherwise, the package version will be set to the latest git tag.
- the resulting deb should be in the build directory if successful
Packaging for Ubuntu
--------------------
Make sure you have the [OpenStack/CloudArchive repository](https://wiki.ubuntu.com/OpenStack/CloudArchive) setup.
1. Install the necessary build packages:
- debhelper
- dh-systemd
- build-essential
- devscripts
- git-core
- python-all
- python-pbr
- python-setuptools
2. Make a gzip archive of synergy-service named `python-synergy-service_VERSION.orig.tar.gz` and place it at the same level as the `synergy-service` directory.
3. Copy `synergy-service/packaging/debian` to `synergy-service/debian`.
4. Go in the `synergy-service` directory and build with `debuild -us -uc`.
The resulting .deb file should be outputed at the same level as the `synergy-service` directory and .tar.gz archive.
Packaging for CentOS
--------------------
1. Install the necessary build packages:
- rpm-build
- python-devel
- python-setuptools
- git-core
- centos-release-openstack-newton
2. Update your packages with `yum update` and then install `python-pbr`.
3. Setup your rpmbuild environment if not already done.
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
4. Move `synergy-service/packaging/rpm/python-synergy.spec` to
`~/rpmbuild/SPECS`.
5. Create a source archive (where $VERSION is the current synergy-service version):
cd ~/rpmbuild/SOURCES
cp -r /path/to/synergy-service python-synergy-service-$VERSION
tar cjf python-synergy-service-$VERSION.tar.bz2 python-synergy-service-$VERSION
6. Go in `~/rpmbuild/SPECS` and build with `PBR_VERSION=$VERSION rpmbuild -ba python-synergy.spec`.
7. The resulting RPM can be found in `~/rpmbuild/RPMS/noarch`.