+[[!meta title="Releasing for Centos"]]
+
+Centos packages are built from [[master|branches]]. The procedures roughly works as follows:
+
+1. A normal configure; make; make install on Painless Security machines
+2. If this succeeds then a build is started on Janet machines
+
+1. Another round of configure; make; make instal. This round include a make dist to produce distribution tar files.
+1. Run "rpmbuild -ta" on the distribution tar files.
+
+1. Copy the results back to moonshot.suchdamage.org
+
+# Spec file
+
+Centos packaging is controlled by a .spec file. In most packages the spec file is produced by a .spec.in file. This controls dependencies, installation procedures, etc.
+
+It's important that once a Centos package is placed into the archive it is never changed. So, some component of the version number needs to be incremented whenever a new Centos package is desired.
+
+The version number is spread across two fields in the spec file:
+
+* Version: the upstream version number
+* Release: a RPM-specific release number
+
+If the spec file is a .spec.in the upstream version number is probably auto-generated from configure. Whenever the upstream version changes the release should be set back to 1.
+
+# Steps
+
+* Update the spec file, either resetting the release for a new upstream version or incrementing it.
+* Commit the spec file; make sure not to commit a .spec in a package with .spec.in
+* Push the submodule
+* Commit and push the master repository
+* Monitor the [build](http://www.project-moonshot.org/buildbot/builders/) until the Centos packaging succeeds
+
+# Installing packages in Archive
+
+At this point the packages have been copied to a file "~buildbot/rpm-packages.tar" on moonshot.suchdamage.org
+
+ ssh buildbot@moonshot.suchdamage.org
+ mkdir rpm-unpack
+ cd rpm-unpack
+ tar xvf ../rpm-packages.tar
+
+Confirm the packages look reasonable. Copy only new packages into place. It's quite important not to copy packages whose version number did not change.
+
+ rsync --ignore-existing -v -a . /srv/rpms/centos6
+
+Sign the packages
+
+ cd /srv/rpms/centos6/RPMS/x86_64
+ rpmsign--addsign *rpm
+
+Now update repository metadata:
+
+ cd /srv/rpms
+ createrepo -u http://repository.project-moonshot.org/rpms/centos6 centos6
+
+
+At this point the Centos packages are available for installation. Clearly more automation is desirable.
+