From: Ken Dreyer <kdreyer@redhat.com>
To: Robert LeBlanc <robert@leblancnet.us>
Cc: ceph-devel <ceph-devel@vger.kernel.org>
Subject: Re: Build RPMs from git
Date: Wed, 10 Jun 2015 10:30:27 -0400 (EDT) [thread overview]
Message-ID: <581259457.12927282.1433946627668.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <CAANLjFqtNxo=CPwar3OYP9es-+5LgTbmiNgd_4RSCcndb_iCNA@mail.gmail.com>
Here's how I do it.
1. Git clone
2. ./do_autogen.sh
3. ./configure --without-radosgw --without-fuse --without-tcmalloc --without-libatomic-ops --without-libxfs
4. # The "configure" step above creates a ceph.spec with the proper version number, which you can then copy:
cp ceph.spec ~/rpmbuild/SPECS/
5. # The "configure" step above also creates a Makefile, so you can run "make dist-bzip2" to get a properly-versioned tarball:
make dist-bzip2
6. # Now move the tarball in to place, along with the .patch file:
rm ~/rpmbuild/SOURCES/*
mv *.bz2 ~/rpmbuild/SOURCES/
cp rpm/*.patch ~/rpmbuild/SOURCES/
7. # Build a source RPM:
rpmbuild -bs ~/rpmbuild/SPECS/ceph.spec
8. # Lastly, rebuild that SRPM in mock:
mock -r epel-7-x86_64 rebuild ~/rpmbuild/SRPMS/ceph-....src.rpm
This whole process needs to be improved :) We're moving towards getting rid of the ./configure operation in step #3 since that is only done in order to figure out the right version number for steps #4 and #5.
Also, the .patch file in step #6 could be implemented in some other way. We could use sed during %prep to make the changes, which would avoid using a .patch file. Or, since src/init-ceph.in is an autoconf template anyway, we could conditionalize this with autoconf to print "Default-Start: 2 3 4 5" and "Default-Stop: 0 1 6" on Debian, and leave the values blank on Red Hat.
- Ken
----- Original Message -----
> From: "Robert LeBlanc" <robert@leblancnet.us>
> To: "ceph-devel" <ceph-devel@vger.kernel.org>
> Sent: Tuesday, June 9, 2015 3:15:17 PM
> Subject: Build RPMs from git
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> OK, easy question...
>
> Building Debian packages from git is wonderfully easy, RPMs seem ....
> not so easy.
>
> I got it to kind of work, but I feel like I'm doing it the "Hard Way" (tm).
>
> mkdir -p ~/ceph && pushd ~/ceph
> git clone https://github.com/ceph/ceph.git
> ./autogen.sh
> ./configure
> echo "--- /root/ceph/ceph/ceph.spec 2015-06-09 13:03:08.240099443 -0600
> +++ /root/rpmbuild/SPECS/ceph.spec 2015-06-09 13:12:54.145061355 -0600
> @@ -464,12 +464,14 @@
> # common
> #################################################################################
> %prep
> - -%setup -q
> +#%setup -q
> +cd %{buildroot}
> %if 0%{?fedora} || 0%{?rhel}
> %patch0 -p1 -b .init
> %endif
>
> %build
> +cd %{buildroot}
> # Find jni.h
> for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do
> [ -d $i ] && java_inc="$java_inc -I$i"" | patch
> rpmbuild -ba ceph.spec --define 'buildroot `pwd/ceph`'
>
> It coughs at the install/RPM package part.
>
> Any help with preventing the whole tar/untar process which I can't
> seem to get exactly right either would be very helpful.
>
> Thanks,
>
> - ----------------
> Robert LeBlanc
> GPG Fingerprint 79A2 9CA4 6CC4 45DD A904 C70E E654 3BB2 FA62 B9F1
> -----BEGIN PGP SIGNATURE-----
> Version: Mailvelope v0.13.1
> Comment: https://www.mailvelope.com
>
> wsFcBAEBCAAQBQJVd1diCRDmVDuy+mK58QAAlMQP/AlbiMj72J/r4rgvPCSv
> 6EVzFLCZOVewtmeV+/pnltzQgbj42/MRNC5wfJjPasAEn7Ctj0PgnzNA9LYy
> m4vkrS2Lc4BiRc5dkI31my6T51LxMswZjKecy9yiCDUoUW7cD15PMvyoq27G
> +JpeNbrrCvl6Sxfx7S4IjvgnP1Xko2qSi17GoYxJzxwAZJ0LwNUSzvhlQnab
> fEswyO1af3uWUmTGWUKML8jGYSyLnjNa43t2DmEKG5o4yWaXFx0UcUiUdk4v
> gLxHZvUxuNVIb862aoP4gXUC4V508Vu8nnfXx7BuAYXSN0w+Yh2XYU/2T4gL
> Ikqo2ASi3kZoMRoxjX0S/kSn0OdrJkJCkI0fJmYxoBrULqDPu/EslKSX8IGZ
> MN9jGPNrr6G7US25aPPWM1MH4Ikmb0M8/wsmiU60yfQz7bFqxzmIUgoetwHS
> gKSJnu7DyovrGkPTD4nc8yCuFohcIqtD47hh1NLgpQbikGhEIpa//W5A9ikL
> ZO/ke3EMVT+2wWRikQv9QLBx8hkXazEq3ko5KNXK+m+CtJr0Ae56xKPZUu+R
> 4gFZyqO+P5bHk51j2V63n+M0bAxQpjTB7j3YV7oToezbJwhELVXATNfVwB8g
> PixgthHIkFhbPM606qBW48XVVJ+QxV61prUgEp0Sni7oy22yMtaoso5sdGjn
> cCtC
> =QqbH
> -----END PGP SIGNATURE-----
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2015-06-10 14:30 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-09 21:15 Build RPMs from git Robert LeBlanc
2015-06-10 10:03 ` Brad Hubbard
[not found] ` <CAANLjFrgBDiVsRRUEfE3yvzieR7+4a0EBxxG8s9+buXi0T6HZg@mail.gmail.com>
2015-06-10 15:37 ` Fwd: " Robert LeBlanc
2015-06-10 14:30 ` Ken Dreyer [this message]
2015-06-10 15:44 ` Robert LeBlanc
2015-06-10 17:22 ` Ken Dreyer
2015-06-10 19:38 ` Robert LeBlanc
2015-06-18 13:44 ` Owen Synge
2015-06-18 20:35 ` Robert LeBlanc
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=581259457.12927282.1433946627668.JavaMail.zimbra@redhat.com \
--to=kdreyer@redhat.com \
--cc=ceph-devel@vger.kernel.org \
--cc=robert@leblancnet.us \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.