+++ /dev/null
-=================\r
- Release Process\r
-=================\r
-\r
-Build environment\r
-=================\r
-\r
-Ceph maintains multiple build environments. \r
-\r
-Debian\r
-------\r
-\r
-We build Debian-based packages via ``pbuilder`` for multiple distributions, which identifies the build hosts in the ``deb_hosts`` file and the list of distributions in the ``deb_dist`` file. Each build host will build all distributions. Currently Ceph maintains 1 64-bit build host and 1 32-bit build host.\r
-\r
-RPM\r
----\r
-\r
-We build RPM-based packages natively. Therefore, we maintain one build host per distribution. We build RPM-based packages via ``pbuilder``, which identifies the build hosts in the ``rpm_hosts`` file.\r
-\r
-Prior to building, it's necessary to update the ``pbuilder`` seed tarballs::\r
-\r
- ./update_all_pbuilders.sh\r
-\r
-2. Setup keyring for signing packages\r
-=====================================\r
-\r
-::\r
-\r
- export GNUPGHOME=<path to keyring dir>\r
-\r
- # verify it's accessible\r
- gpg --list-keys\r
-\r
-The release key should be present::\r
-\r
- pub 4096R/17ED316D 2012-05-20\r
- uid Ceph Release Key <sage@newdream.net>\r
-\r
-\r
-3. Set up build area\r
-====================\r
-\r
-Checkout ceph and ceph-build::\r
-\r
- git clone http://github.com/ceph/ceph.git\r
- git clone http://github.com/ceph/ceph-build.git\r
-\r
-Checkout next branch::\r
-\r
- git checkout next\r
-\r
-Checkout the submodules (only needed to prevent errors in recursive make)::\r
-\r
- git submodule update --init\r
-\r
-4. Update Build version numbers\r
-================================\r
-\r
-Edit configure.ac and change version number::\r
-\r
- DEBEMAIL user@host dch -v 0.xx-1\r
-\r
-Commit the changes::\r
-\r
- git commit -a\r
-\r
-Tag the release::\r
-\r
- ../ceph-build/tag-release v0.xx\r
-\r
-5. Create Makefiles\r
-===================\r
-\r
-The actual configure options used to build packages are in the\r
-``ceph.spec.in`` and ``debian/rules`` files. At this point we just\r
-need to create a Makefile.::\r
-\r
- ./do_autogen.sh\r
-\r
-\r
-6. Run the release scripts\r
-==========================\r
-\r
-This creates tarballs and copies them, with other needed files to\r
-the build hosts listed in deb_hosts and rpm_hosts, runs a local build\r
-script, then rsyncs the results back tot the specified release directory.::\r
-\r
- ../ceph-build/do_release.sh /tmp/release\r
-\r
-7. Create RPM Repo\r
-==================\r
-\r
-Copy the rpms to the destination repo, creates the yum repository\r
-rpm and indexes.::\r
-\r
- ../ceph-build/push_to_rpm_repo.sh /tmp/release /tmp/repo 0.xx\r
-\r
-8. Create debian repo\r
-=====================\r
-\r
-::\r
-\r
- mkdir /tmp/debian-repo\r
- ../ceph-build/gen_reprepro_conf.sh debian-testing\r
- ../ceph-build/push_to_deb_repo.sh /tmp/release /tmp/debian-repo 0.xx main\r
-\r
-9. Push repos to ceph.org\r
-==========================\r
-\r
-For a development release::\r
-\r
- rcp ceph-0.xx.tar.bz2 ceph-0.xx.tar.gz \\r
- ceph_site@ceph.com:ceph.com/downloads/.\r
- rsync -av /tmp/repo/0.52/ ceph_site@ceph.com:ceph.com/rpm-testing\r
- rsync -av /tmp/debian-repo/ ceph_site@ceph.com:ceph.com/debian-testing\r
-\r
-For a stable release, replace {CODENAME} with the release codename (e.g., ``argonaut`` or ``bobtail``)::\r
-\r
- rcp ceph-0.xx.tar.bz2 \\r
- ceph_site@ceph.com:ceph.com/downloads/ceph-0.xx{CODENAME}.tar.bz2\r
- rcp ceph-0.xx.tar.gz \\r
- ceph_site@ceph.com:ceph.com/downloads/ceph-0.xx{CODENAME}.tar.gz\r
- rsync -av /tmp/repo/0.52/ ceph_site@ceph.com:ceph.com/rpm-{CODENAME}\r
- rsync -auv /tmp/debian-repo/ ceph_site@ceph.com:ceph.com/debian-{CODENAME}\r
-\r
-10. Update Git\r
-==============\r
-\r
-Development release\r
--------------------\r
-\r
-For a development release, update tags for ``ceph.git``::\r
-\r
- git push origin v0.xx\r
- git push origin HEAD:testing\r
- git checkout master\r
- git merge next\r
- git push origin master\r
- git push origin HEAD:next\r
-\r
-Similarly, for a development release, for both ``teuthology.git`` and ``ceph-qa-suite.git``::\r
-\r
- git checkout master\r
- git reset --hard origin/master\r
- git branch -f testing origin/next\r
- git push -f origin testing\r
- git push -f master:next\r
-\r
-Stable release\r
---------------\r
-\r
-For ``ceph.git``:\r
-\r
- git push origin stable\r