gnucash/packaging
Christian Stimming 60c32fd16b Bug #514043: Use AM_CPPFLAGS instead of AM_CFLAGS.
AM_CFLAGS is passed both to the compiler (.c -> .o) and to the linker, so it
should only have flags that are appropriate for both steps. AM_CPPFLAGS is
passed only to the compiler, so flags that are only appropriate for that step
(-I and -D flags, for example), should be in _CPPFLAGS instead of _CFLAGS.
Every gnucash-2.2.3 Makefile.am that passes -I flags gets it wrong, placing
them in _CFLAGS. It's not a functional bug (the linker ignores -I flags), but a
ton of superfluous flags makes the build output pretty verbose and hard to
debug when things do go wrong.

To make matters more confusing as a developer, the FOO_CFLAGS variable set by
PKG_CHECK_MODULES(FOO) is actually for _CPPFLAGS in the Makefile.am
('pkg-config --cflags' returns the -I flags).

A related -I bug (one that *is* functionally broken) is that sometimes a local
(build dir) -I flag is passed after a global (installed dependent library) one.
If my system happens to have a header installed from some unrelated thing,
compiler will find *that* one instead of the expected one in the source
directory. Should always pass all local -I before any global ones.

Patch by andi5 plus one manual addition in src/gnome-utils/Makefile.am

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17655 57a11ea4-9604-0410-9ed3-97b8803252fd
2008-10-25 20:30:47 +00:00
..
win32 Bug #514043: Use AM_CPPFLAGS instead of AM_CFLAGS. 2008-10-25 20:30:47 +00:00
gnucash-2.1.x.ebuild Remove swig. It's not actually a dependency for tarball releases. 2007-06-02 17:21:45 +00:00
gnucash.spec.in Minor updates to README.svn; remove README.patches from gnucash.spec.in. 2008-03-08 20:04:46 +00:00
Makefile.am Update packaging/Makefile.am to release 2.1.1 2007-04-28 22:06:58 +00:00
README.RPM Move a couple of ditro specific files. 2006-02-26 21:08:54 +00:00

This directory contains spec files for building an RPM


  WATCH OUT: These spec file(s) might be heavily out of date and/or
  absolutely NOT SUITED to your distribution! They are particularly
  matched for the Fedora Core 4 distribution, but DO NOT USE THEM if
  you don't have exactly that distribution! Your own distribution
  probably has its own source RPM of gnucash, and this source RPM
  includes a spec file that is much better suited to your
  distribution.

  I repeat: DO NOT USE THIS SPEC file unless you either have Fedora
  Core 4 or you really know how you can modify it to suit your
  distribution.

  For German-speaking users, there are German build instructions for
  RPMs on http://linuxwiki.de/GnuCash/RpmInstallieren . 

------------------------------
Original file content:


Short instructions:

> I've never built an rpm; given a spec file, how do I do this?
> I understand the theory, just not clear on what to type up.

You'll need to be root in many distributions.  (It is possible to
avoid this requirement, but I haven't done the work to the RPM.) 
However, in some distributions (e.g. SuSE) these instructions will
work even as a normal user.

cd /usr/src/redhat/SOURCES
tar -zxvf xacc-1.x.tar.gz
cp xacc-1.x/rpm/xacc.spec ../SPECS
cp xacc-1.x/rpm/xacc.wmconfig .

cd /usr/src/redhat/SPECS
rpm -ba xacc.spec

wait a bit, and a new binary rpm will be in
/usr/src/redhat/RPMS/<arch> and a new src.rpm will be in
/usr/src/redhat/SRPMS.


================================

JPL version:

1) Obtain a GnuCash distribution (source code .tar.gz file), 
   either by downloading from an ftp site somewhere, or building
   from CVS using "make dist".  The file should have the nomenclature
   gnucash-X.Y.Z.tar.gz where X.Y.Z are the release numbers.

2) Copy and uncompress/tar the distribution in your 
   /usr/src/redhat/SOURCES directory.  You will need to do this as the 
   root user.  Note, use your distribution-specific path here, only 
   redhat uses "/usr/src/redhat".

   cd /usr/src/redhat/SOURCES
   cp /SOMEPATH/gnucash-X.Y.Z.tar.gz
   tar xvzf gnucash-X.Y.Z.tar.gz

3) Copy the rpm spec file to /usr/src/redhat/SPEC.

   cp gnucash-X.Y.Z/rpm/gnucash.spec /usr/src/redhat/SPECS/.
   
4) Edit the spec file, you probably will only need to modify the 
   following 3 lines, depending on what features you want to include 
   in the rpm:

   %define _with_postgres 0      (use postgres backend?)
   %define _with_ofx 0           (use openofx package?)
   %define _with_hbci 0          (use hbci package?)

5) Build the binary and source RPMs
   cd /usr/src/redhat/SPECS
   rpmbuild -ba gnucash.spec

   (note: older versions of rpm use "rpm -ba FILE.spec" to build) 
   
6) Wait a bit, and a new binary rpm will be in
   /usr/src/redhat/RPMS/<arch> and a new src.rpm will be in
   /usr/src/redhat/SRPMS.