Sustainable work flow for building CentOS/Red Hat RPMs from git

ellie timoney ellie at fastmail.com
Sun Aug 7 20:00:31 EDT 2016


> It looks to me that commit f5d8e1c77d2ed40ee734eb0c5627f425c595f33f 
> requires the build to be run from within a git repository. 

The configure script now needs to be generated from within a git
repository, yes.  If you build from a release tarball, then the
configure script is already generated, and the rest of the build will be
fine.  I realise this is not exactly what you're asking, but maybe
there's a hint towards an approach in there...  

If you have a git clone, you could roll your own tarball from it with
"make dist" (and it will be correctly versioned!), and then use this
tarball as the non-git source for your RPM build?

I'm curious how this process manages to "build from git" without being
git?

On Thu, Aug 4, 2016, at 10:47 PM, Sebastian Hagedorn via Cyrus-devel
wrote:
> Hi,
> 
> all of our production servers run Red Hat Enterprise Linux, and for
> testing 
> we use the corresponding CentOS versions. In the past I have relied on 
> Simon Matter's excellent SRPMs for building our own RPMs, but so far
> there 
> have been none for Cyrus 2.5.
> So I have been looking into alternatives. I started with the SPEC file
> for 
> cyrus-imapd-2.53 from Kolab:
> 
> <https://obs.kolabsys.com/package/show/cyrus-imapd:2.5-next/cyrus-imapd>
> 
> I modified that to suit our purposes and was able to build 
> cyrus-imapd-2.5.9. However, it seems more appropriate to build from git 
> rather than from tarballs these days. I have looked into building RPMs
> from 
> git and found tito:
> 
> <https://github.com/dgoodwin/tito>
> 
> I still have a problems getting the automatic tagging and updating of the 
> SPEC file to work, but it looks promising. However, a recent commit
> throws 
> the viability of that approach into question. It looks to me that commit 
> f5d8e1c77d2ed40ee734eb0c5627f425c595f33f requires the build to be run
> from 
> within a git repository. That's not the case when building an RPM. This
> is 
> what happens:
> 
> + autoreconf268 -vi
> autoreconf268: Entering directory `.'
> autoreconf268: configure.ac: not using Gettext
> autoreconf268: running: aclocal -I cmulocal
> fatal: Not a git repository (or any of the parent directories): .git
> configure.ac:61: error: AC_INIT should be called with package and version 
> arguments
> /usr/share/aclocal-1.11/init.m4:26: AM_INIT_AUTOMAKE is expanded from...
> configure.ac:61: the top level
> autom4te268: /usr/bin/m4 failed with exit status: 1
> aclocal: /usr/bin/autom4te268 failed with exit status: 1
> autoreconf268: aclocal failed with exit status: 1
> 
> How do others manage their Cyrus builds? Any other RHEL/CentOS users
> here?
> -- 
>     .:.Sebastian Hagedorn - Weyertal 121 (Gebäude 133), Zimmer 2.02.:.
>                  .:.Regionales Rechenzentrum (RRZK).:.
>    .:.Universität zu Köln / Cologne University - ✆ +49-221-470-89578.:.
> Email had 1 attachment:
> + Attachment2
>   1k (application/pgp-signature)


More information about the Cyrus-devel mailing list