Installing Code::Blocks from source on RPM based distributions: Difference between revisions

From Code::Blocks
Afb (talk | contribs)
more text
 
(39 intermediate revisions by 4 users not shown)
Line 4: Line 4:
== Install Requirements ==
== Install Requirements ==


=== Install Developer Tools ===
Note: Code::Blocks requires GTK+ 2.x. Older distributions might only support GTK+ 1.x.
 
Upgrading GTK+ is beyond the scope of this document, easier to upgrade distribution ?
 
=== Install Development Tools ===


This has to be installed before starting:
This has to be installed before starting:
Line 21: Line 25:
In Fedora/CentOS, this can be done with:
In Fedora/CentOS, this can be done with:
<pre>
<pre>
su -c 'yum groupinstall "Developer Tools"'
su -c 'yum groupinstall "Development Tools"'
su -c 'yum install intltool'
</pre>
</pre>


==== Install newer autotools versions ====
==== Install newer autotools versions (if needed) ====


If you have CentOS 3 or RHEL 3, you will need to rebuild "automake17" to use instead of automake-1.6:
If you have CentOS 3 or RHEL 3, you will need to rebuild "automake17" to use instead of automake-1.6:
Line 31: Line 36:
rpmbuild --rebuild automake17-1.7.9-5.src.rpm
rpmbuild --rebuild automake17-1.7.9-5.src.rpm
</pre>
</pre>
You will also need to patch the "bootstrap" script from Code::Blocks, in order to use aclocal-1.7:
* http://developer.berlios.de/patch/?func=detailpatch&patch_id=1502&group_id=5358


Then you need to invoke bootstrap like this, both on the commandline and in codeblocks.spec:
Then you need to invoke bootstrap like this, both on the commandline and in codeblocks.spec:
Line 39: Line 41:
AUTOMAKE=automake-1.7 ACLOCAL=aclocal-1.7 ACLOCAL_FLAGS="-I /usr/share/aclocal" ./bootstrap
AUTOMAKE=automake-1.7 ACLOCAL=aclocal-1.7 ACLOCAL_FLAGS="-I /usr/share/aclocal" ./bootstrap
</pre>
</pre>
And edit the BuildRequires in codeblocks.spec, from "automake >= 1.7" to "automake17" package.


=== Setup RPM environment ===
=== Setup RPM environment ===
Line 47: Line 47:
* rpm-build
* rpm-build


The top work directory for RPM varies between distributions and setups, but you can find your setting by setting a variable like:
The top work directory for RPM varies between distributions and setups, but you can find your RPM top dir by setting a variable like:


<pre>
<pre>
RPM_TOPDIR=`rpm --eval %{_topdir}`
RPM_TOPDIR=`rpm --eval %{_topdir}`
echo $RPM_TOPDIR
</pre>
</pre>


==== Non-root rpmbuild environment ====
==== Non-root rpmbuild environment (recommended) ====


It is recommended that you don't use the root account to build packages, here is how you set up a minimal user build environment:
It is recommended that you don't use the root account to build packages, here is how you set up a minimal user build environment:
Line 59: Line 60:
<pre>
<pre>
cd
cd
mkdir rpm
echo "%_topdir $HOME/rpm" >> .rpmmacros
echo "%_topdir $HOME/rpm" >> .rpmmacros
mkdir /tmp/$USER/rpm
echo "%_tmppath /tmp/$USER/rpm" >> .rpmmacros
echo "%_tmppath /tmp/$USER/rpm" >> .rpmmacros
mkdir rpm
cd rpm
cd rpm
mkdir SPECS SOURCES BUILD RPMS SRPMS
mkdir SPECS SOURCES BUILD RPMS SRPMS
RPM_TOPDIR=`rpm --eval %{_topdir}`
</pre>
</pre>


You can now build packages without being root (assuming that the spec files are correct). You still need root access to install.
You can now build packages without being root (assuming that the spec files are correct). You will still need root access to install.


=== Install wxWidgets 2.6.x ===
=== Install wxWidgets 2.6.x ===


The build requirements in the source RPM are set to a minimum. So it isn't checked whether wxGTK is installed or not. So you have to take a look at it yourself.
''Note: the following section on the required version is out of date; please ''do'' use from the 2.8 branch.''
 
The build requirements in the source RPM are set to a minimum. So it isn't checked whether wxGTK is installed or not. So you have to take a look at it yourself. Note that currently Code::Blocks requires wxWidgets '''2.6''', not 2.8! So if your distribution only provides packages for wxWidgets 2.8, you need to build wxWidgets 2.6 yourself.


This has to be installed:
This has to be installed:
# wxGTK >= 2.6.0 and its devel package (see [http://wxwidgets.org wxwidgets.org])
# wxGTK >= 2.6.0 and its devel package (see [http://wxwidgets.org wxwidgets.org])
# wxGTK-xrc and its devel package (in some distributions included in the packages of point 1)
# wxGTK-xrc and its devel package (in some distributions included in the packages of point 1)
In later Fedora, this can be done with:
<pre>
su -c 'yum install wxGTK-devel'
</pre>


==== Build the wxGTK RPM from source (if needed) ====
==== Build the wxGTK RPM from source (if needed) ====
Line 80: Line 90:
TODO
TODO


* wxGTK.spec
* http://prdownloads.sourceforge.net/wxwindows/wxGTK-2.6.3.tar.gz
* http://prdownloads.sourceforge.net/wxwindows/wxGTK-2.6.3.tar.gz
* ftp://biolpc22.york.ac.uk/pub/2.6.3/wxWidgets-2.6.3-Patch-2.tar.gz
* ftp://biolpc22.york.ac.uk/pub/2.6.3/wxWidgets-2.6.3-Patch-2.tar.gz
* http://www.algonet.se/~afb/wx/wxGTK.spec
RPMS
* wx-base-unicode-2.6.3.0.2-1.i386.rpm
* wx-base-unicode-devel-2.6.3.0.2-1.i386.rpm
* wx-gtk2-unicode-2.6.3.0.2-1.i386.rpm
* wx-gtk2-unicode-devel-2.6.3.0.2-1.i386.rpm
* wx-gtk2-unicode-gl-2.6.3.0.2-1.i386.rpm
* wx-gtk2-unicode-contrib-2.6.3.0.2-1.i386.rpm
* wx-gtk2-unicode-contrib-devel-2.6.3.0.2-1.i386.rpm
* wx-gtk2-unicode-debuginfo-2.6.3.0.2-1.i386.rpm
* wx-i18n-2.6.3.0.2-1.i386.rpm


=== Install Subversion client ===
=== Install Subversion client ===
Line 88: Line 110:
This has to be installed before starting:
This has to be installed before starting:
* subversion >= 1.4.0, (see [http://subversion.tigris.org subversion.tigris.org])
* subversion >= 1.4.0, (see [http://subversion.tigris.org subversion.tigris.org])
Binary packages for Red Hat Linux 9, Fedora Core 1, CentOS 3, CentOS 4 at:
http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/
In later Fedora, this can be done with:
<pre>
su -c 'yum install subversion'
</pre>


==== Build Subversion RPM from source (if needed) ====
==== Build Subversion RPM from source (if needed) ====
Line 93: Line 124:
TODO
TODO


* subversion.spec
* http://subversion.tigris.org/downloads/subversion-1.4.2.tar.gz
* http://subversion.tigris.org/downloads/subversion-1.4.0.tar.gz
* packages/rpm/rhel-3/subversion.spec (CentOS 3)
* packages/rpm/rhel-4/subversion.spec (CentOS 4)
 
RPMS
 
* subversion-1.4.2-1.i386.rpm
* subversion-devel-1.4.2-1.i386.rpm
* subversion-perl-1.4.2-1.i386.rpm
* subversion-python-1.4.2-1.i386.rpm
* subversion-tools-1.4.2-1.i386.rpm
* subversion-debuginfo-1.4.2-1.i386.rpm


== Install Code::Blocks ==
== Install Code::Blocks ==
Line 100: Line 141:
=== Download the Source RPM ===
=== Download the Source RPM ===


1. Download the Source RPM from [https://www.codeblocks.org/downloads.shtml www.codeblocks.org/downloads.shtml]
1. Download the Source RPM from [https://www.codeblocks.org/downloads/source www.codeblocks.org/downloads/source]
 
''Note: SRPM's are for the last stable (10.05); the SVN branch includes the many improvements since then.''
<!-- <span style="color:red">Note: the SRPM is currently unavailable (latest version being the old RC2), use SVN:</span> -->


==== Prepare SRPM package from SVN (if needed) ====
==== Prepare SRPM package from SVN (if needed) ====


1. You need to get the latest sources from SVN [https://www.codeblocks.org/source_code.shtml www.codeblocks.org/source_code.shtml]
1. You need to get the latest sources from SVN [https://www.codeblocks.org/downloads/svn www.codeblocks.org/downloads/svn]
 
svn checkout svn://svn.berlios.de/codeblocks/trunk


2. go into ''trunk'', if you haven't already done it.
2. go into ''trunk'', if you haven't already done it.
Line 110: Line 156:
3. run these three commands in this order
3. run these three commands in this order
  ./bootstrap
  ./bootstrap
  ./configure --enable-contrib
  ./configure
  make dist
  make dist
the last one will create a .tar.gz archive that contains the sources.
the last one will create a .tar.gz archive that contains the sources.


4. copy the archive to the directory $RPM_TOPDIR/SOURCES  
4. copy the archive to the directory $RPM_TOPDIR/SOURCES  
  sudo mv codeblocks-trunk-r$REVISION.tar.gz $RPM_TOPDIR/SOURCES
  sudo mv codeblocks-trunk-r*.tar.gz $RPM_TOPDIR/SOURCES


5. build the source RPM
5. build the source RPM, or copy spec to $RPM_TOPDIR/SPECS
  rpmbuild -bs codeblocks.spec
  rpmbuild -bs codeblocks.spec


Line 125: Line 171:


1. Build the binary package
1. Build the binary package
  rpmbuild --rebuild codeblocks-1.0*.src.rpm
  rpmbuild --rebuild codeblocks*.src.rpm


This will create several packages in one of the architecture specific subdirectories (i386, x86_64, ppc, ...) of $RPM_TOPDIR/RPMS/.
This will create several packages in one of the architecture specific subdirectories (i386, x86_64, ppc, ...) of $RPM_TOPDIR/RPMS/.
Line 133: Line 179:
* codeblocks-contrib: contrib plugins
* codeblocks-contrib: contrib plugins
* codeblocks-devel: SDK headers
* codeblocks-devel: SDK headers
* codeblocks-contrib-devel: headers for contrib-plugins (wxSmith etc.)
* codeblocks-debuginfo: stripped debug information
* codeblocks-debuginfo: stripped debug information


Line 138: Line 185:


Install as root the packages you want (usually codeblocks and codeblocks-contrib) and enjoy Code::Blocks!
Install as root the packages you want (usually codeblocks and codeblocks-contrib) and enjoy Code::Blocks!
su -c 'rpm -Uvh codeblocks-1.0*.i386.rpm'

Latest revision as of 07:59, 22 September 2012


Install Requirements

Note: Code::Blocks requires GTK+ 2.x. Older distributions might only support GTK+ 1.x.

Upgrading GTK+ is beyond the scope of this document, easier to upgrade distribution ?

Install Development Tools

This has to be installed before starting:

  • zip
  • update-desktop-files (only on SUSE)
  • make
  • gettext
  • autoconf >= 2.5
  • automake >= 1.7
  • libtool >= 1.4
  • m4
  • intltool
  • gcc-c++
  • libstdc++-devel

In Fedora/CentOS, this can be done with:

su -c 'yum groupinstall "Development Tools"'
su -c 'yum install intltool'

Install newer autotools versions (if needed)

If you have CentOS 3 or RHEL 3, you will need to rebuild "automake17" to use instead of automake-1.6:

rpmbuild --rebuild automake17-1.7.9-5.src.rpm

Then you need to invoke bootstrap like this, both on the commandline and in codeblocks.spec:

AUTOMAKE=automake-1.7 ACLOCAL=aclocal-1.7 ACLOCAL_FLAGS="-I /usr/share/aclocal" ./bootstrap

Setup RPM environment

This has to be installed before starting:

  • rpm-build

The top work directory for RPM varies between distributions and setups, but you can find your RPM top dir by setting a variable like:

RPM_TOPDIR=`rpm --eval %{_topdir}`
echo $RPM_TOPDIR

Non-root rpmbuild environment (recommended)

It is recommended that you don't use the root account to build packages, here is how you set up a minimal user build environment:

cd
mkdir rpm
echo "%_topdir $HOME/rpm" >> .rpmmacros
mkdir /tmp/$USER/rpm
echo "%_tmppath /tmp/$USER/rpm" >> .rpmmacros
cd rpm
mkdir SPECS SOURCES BUILD RPMS SRPMS
RPM_TOPDIR=`rpm --eval %{_topdir}`

You can now build packages without being root (assuming that the spec files are correct). You will still need root access to install.

Install wxWidgets 2.6.x

Note: the following section on the required version is out of date; please do use from the 2.8 branch.

The build requirements in the source RPM are set to a minimum. So it isn't checked whether wxGTK is installed or not. So you have to take a look at it yourself. Note that currently Code::Blocks requires wxWidgets 2.6, not 2.8! So if your distribution only provides packages for wxWidgets 2.8, you need to build wxWidgets 2.6 yourself.

This has to be installed:

  1. wxGTK >= 2.6.0 and its devel package (see wxwidgets.org)
  2. wxGTK-xrc and its devel package (in some distributions included in the packages of point 1)

In later Fedora, this can be done with:

su -c 'yum install wxGTK-devel'

Build the wxGTK RPM from source (if needed)

TODO

RPMS

  • wx-base-unicode-2.6.3.0.2-1.i386.rpm
  • wx-base-unicode-devel-2.6.3.0.2-1.i386.rpm
  • wx-gtk2-unicode-2.6.3.0.2-1.i386.rpm
  • wx-gtk2-unicode-devel-2.6.3.0.2-1.i386.rpm
  • wx-gtk2-unicode-gl-2.6.3.0.2-1.i386.rpm
  • wx-gtk2-unicode-contrib-2.6.3.0.2-1.i386.rpm
  • wx-gtk2-unicode-contrib-devel-2.6.3.0.2-1.i386.rpm
  • wx-gtk2-unicode-debuginfo-2.6.3.0.2-1.i386.rpm
  • wx-i18n-2.6.3.0.2-1.i386.rpm

Install Subversion client

This has to be installed before starting:

Binary packages for Red Hat Linux 9, Fedora Core 1, CentOS 3, CentOS 4 at:

http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/

In later Fedora, this can be done with:

su -c 'yum install subversion'

Build Subversion RPM from source (if needed)

TODO

RPMS

  • subversion-1.4.2-1.i386.rpm
  • subversion-devel-1.4.2-1.i386.rpm
  • subversion-perl-1.4.2-1.i386.rpm
  • subversion-python-1.4.2-1.i386.rpm
  • subversion-tools-1.4.2-1.i386.rpm
  • subversion-debuginfo-1.4.2-1.i386.rpm

Install Code::Blocks

Download the Source RPM

1. Download the Source RPM from www.codeblocks.org/downloads/source

Note: SRPM's are for the last stable (10.05); the SVN branch includes the many improvements since then.

Prepare SRPM package from SVN (if needed)

1. You need to get the latest sources from SVN www.codeblocks.org/downloads/svn

svn checkout svn://svn.berlios.de/codeblocks/trunk

2. go into trunk, if you haven't already done it.

3. run these three commands in this order

./bootstrap
./configure
make dist

the last one will create a .tar.gz archive that contains the sources.

4. copy the archive to the directory $RPM_TOPDIR/SOURCES

sudo mv codeblocks-trunk-r*.tar.gz $RPM_TOPDIR/SOURCES

5. build the source RPM, or copy spec to $RPM_TOPDIR/SPECS

rpmbuild -bs codeblocks.spec

This will create a source package in the directory $RPM_TOPDIR/SRPMS/.

Build the RPM package

1. Build the binary package

rpmbuild --rebuild codeblocks*.src.rpm

This will create several packages in one of the architecture specific subdirectories (i386, x86_64, ppc, ...) of $RPM_TOPDIR/RPMS/.

These are:

  • codeblocks: main package
  • codeblocks-contrib: contrib plugins
  • codeblocks-devel: SDK headers
  • codeblocks-contrib-devel: headers for contrib-plugins (wxSmith etc.)
  • codeblocks-debuginfo: stripped debug information

Install the RPM package

Install as root the packages you want (usually codeblocks and codeblocks-contrib) and enjoy Code::Blocks!

su -c 'rpm -Uvh codeblocks-1.0*.i386.rpm'