# Installing gEDA rpm packages on Fedora

## gEDA/gaf for fedora

gEDA/gaf applications are available for free download

- on fedora official mirrors maintained by Chitlesh Goorah
- and on Wojciech Kazubski’s website

Each gEDA/gaf release is supposed to be on the fedora collection in one or two days time until the fedora mirrors are synced.

The Fedora Project provides gEDA/gaf releases

- Fedora Core 5
- Fedora Core 6 (Zod)
- Fedora 7 (moonshine)
- Fedora development (rawhide)

under the following architectures:

- i386
- x86_64
- ppc
- ppc64 (as from F7)

The Fedora Project will perhaps even provide gEDA/gaf releases for sparc and alpha machines when F8 will be released.(it is still not yet confirmed.)

## How to install gEDA/gaf on Fedora

### The easiest way

It is recommended to install gEDA/gaf releases on Fedora via yum or pirut. Pirut, also known under the name of “Add/Remove Software”, is a graphical interface for yum.

`yum install geda\* pcb gerbv`

Note: you have to be under root (su -) to install packages.

A Fedora user will have every gEDA/gaf release which provides bug fixes and enhancement upon old releases in one or two days until the mirrors are synced.

If it is not the case, you can kindly file a bug report (Request for Enhancement, RFE) on Fedora's bugzilla asking them to update gEDA/gaf for you.

One can follow up

- the releases on Chitlesh Goorah's blog, or
- the gEDA/gaf build times on Fedora's build system

Note: As from 29th of June 2007, Fedora Core 5 has been marked as End Of Life (EOF). gEDA/gaf 1.0.1-20070626 is the last update on FC5.

### Compile it yourself

If one want to get their hands dirty by building gEDA/gaf on Fedora, he/she will need

libstroke-devel, groff, autoconf, gtk2-devel, gd-devel, gettext-devel and guile-devel installed.

They can be installed via yum:

`yum install libstroke-devel groff autoconf gtk2-devel gd-devel gettext-devel and guile-devel`

The recommended procedure is to compile and install (one by one):

1. libgeda
2. geda-symbols
3. geda-docs
4. geda-examples
5. geda-gschem
6. geda-gattrib
7. geda-gnetlist
8. geda-gsymcheck
9. geda-utils

Note: Fedora Core 5 has guile 1.6.x whereas Fedora Core 6 and onwards has guile 1.8.x

### Rebuild your own rpms

The Fedora Project provides simple tools for one to rebuild any RPMs from SRPMs. SRPM contains the upstream sources, the spec file and the patches if any.

To be able to build RPMs, one will need a build platform, which does NOT require root access. rpmdevtools provides the requires tools to do so.

`yum install rpmdevtools` (as root)

#### Build Platform

The build platform should be built under a NON-root account.

`$ fedora-buildrpmtree`

You can see a `rpmbuild` folder under your $HOME directory. This directory will be your build platform.

#### How to get SRPMs

Fedora provides SRPM of every package it has. You can download those SRPMs via `yumdownloader` from the yum-utils package.

`yum install yum-utils` (as root, if you don’t have yum-utils installed)

Download a particular SRPM (under a NON-root account) by `$ yumdownloader –source package –enablerepo=development-source`

package is the name of the package you want to download.

Once the download is complete the package can be found under the current directory under the filename %{name}-%{version}-%{dist}.src.rpm.

Since a SRPM contains the upstream sources, the spec file and the patches if any we will extract them with:

`$ rpm -ivh %{name}-%{version}-%{dist}.src.rpm`

(I remind you that this should at no cost be executed as root !)

You will see

- spec files will be installed in rpmbuild/SPECS
- sources, patches and desktop files will be installed in rpmbuild/SOURCES

#### Building new RPMS from new sources

- download your new sources
- edit the rpmbuild/SPECS/%{name}.spec
  - edit version tag
  - edit release tag

with repect to your newly downloaded sources.

`cd rpmbuild/SPECS/`

now start building the RPMS:

`rpmbuild -ba %{name}.spec`

replace %{name} by the name of the package (example, libgeda, geda-gschem…).

The successfully build RPMS will be found in the folders of ~/rpmbuild/RPMS/.