aboutsummaryrefslogtreecommitdiff
path: root/doc/contrib/tor-rpm-creation.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/contrib/tor-rpm-creation.txt')
-rw-r--r--doc/contrib/tor-rpm-creation.txt56
1 files changed, 56 insertions, 0 deletions
diff --git a/doc/contrib/tor-rpm-creation.txt b/doc/contrib/tor-rpm-creation.txt
new file mode 100644
index 000000000..a03891e2b
--- /dev/null
+++ b/doc/contrib/tor-rpm-creation.txt
@@ -0,0 +1,56 @@
+## Instructions for building the official rpms.
+##
+The process used to create the official rpms is as follows:
+
+You'll need to install libevent headers, usually located in package named
+libevent-devel. Alternatively, you could download latest libevent from
+http://libevent.org/ but that shouldn't be necessary.
+
+Download and Extract the latest tor source code from
+https://www.torproject.org/download
+
+In the resulting directory:
+LIBS=-lrt ./configure
+make dist-rpm
+
+You should have at least two, maybe three, rpms. There should be the binary
+(i686|x86_64).rpm, a src.rpm, and on redhat/centos machines, a debuginfo.rpm.
+The debuginfo rpms are created if package redhat-rpm-config is installed (case
+of redhat distros).
+
+This step suffices unless you want to create RPMs for distros other than the
+one you used for building.
+
+
+## Instructions for building RPMs for multiple architectures or distributions
+## using 'mock' on Fedora or RHEL (and clones)
+
+Make sure you have mock installed and configured, see following HOWTOs for setup:
+https://fedoraproject.org/wiki/How_to_create_an_RPM_package
+https://fedoraproject.org/wiki/Using_Mock_to_test_package_builds
+
+Take the source RPM generated by previous step, and execute mock for every
+target architecture (the names come from files in /etc/mock, strip the .cfg
+extension in the -r parameter):
+
+mock --rebuild -r fedora-17-x86_64 tor-X.Y.Z.src.rpm
+
+Building for EL5 from newer distro (e.g. EL6 or Fedora 17) will fail due to bug
+(https://bugzilla.redhat.com/show_bug.cgi?id=490613).
+Here's a workaround:
+
+Before even building the source RPM, install fedora-packager and instruct
+the build system to use rpmbuild-md5 like this:
+
+yum install fedora-packager
+export RPMBUILD=rpmbuild-md5
+
+Then proceed as usual to create the source RPM and binary RPMs:
+
+LIBS=-lrt ./configure
+make dist-rpm
+mock --rebuild -r epel-5-x86_64 tor-X.Y.Z.src.rpm
+
+
+(Note: don't build under OpenVZ - it breaks unshare() syscall, which in turn
+breaks mock. It could save you several hours.)