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

From Code::Blocks
m (add categories)
(Rewrite and reorder of the whole article)
Line 1: Line 1:
 
[[Category:Installing Code::Blocks]]
 
[[Category:Installing Code::Blocks]]
 
[[Category:Installing Code::Blocks from source]]
 
[[Category:Installing Code::Blocks from source]]
=== General instructions ===
+
=== Compiling the SVN version ===
  
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.
+
This has to be installed before starting:
 +
* wxGTK >= 2.6.0 and its devel package,
 +
* zip,
 +
* subversion,
 +
* update-desktop-files,
 +
* make,
 +
* gettext,
 +
* autoconf >= 2.5,
 +
* automake >= 1.7,
 +
* libtool >= 1.4,
 +
* m4,
 +
* intltool,
 +
* gcc-c++ and
 +
* libstdc++-devel
  
This has to be installed:
+
1. You need to get the latest sources from SVN (described here [[Compiling_Code::Blocks_in_Linux_(applies_to_all_distros)#Getting_the_latest_sources_from_SVN]])
# wxGTK and its devel package
 
# wxGTK-xrc and its devel package (in some distributions included in the packages of point 1)
 
  
=== Compiling the Release Candidate 2 ===
+
2. go into ''trunk'', if you haven't already done it.
  
1. Download the source RPM from [https://www.codeblocks.org/downloads.shtml www.codeblocks.org/downloads.shtml]
+
3. run these three commands in this order
 +
./bootstrap
 +
./configure --enable-contrib
 +
make dist
 +
the last one will create a .tar.gz archive that contains the sources.
  
2. Build the binary package as root
+
4. copy the archive as root to the directory /usr/src/packages/SOURCES
  rpmbuild --rebuild codeblocks-1.0-rc2.src.rpm
+
  sudo mv codeblocks-trunk-r$REVISION.tar.gz /usr/src/packages/SOURCES
  
3. The binary RPM should be in one of the subdirectories of /usr/src/packages/RPMS
+
5. build the binary packages as root with
 +
sudo rpmbuild -bb codeblocks.spec
 +
This will create several packages in one of the architecture specific subdirectories (i586, x86_64, ...) of /usr/src/packages/RPMS/.
 +
These are:
  
=== Compiling the CVS/SVN version ===
+
* codeblocks: main package
 +
* codeblocks-contrib: contrib plugins
 +
* codeblocks-devel: SDK headers
 +
* codeblocks-debuginfo: stripped debug information
  
1. You need a fresh CVS/SVN version (described here [[Compiling_Code::Blocks_in_Linux_(applies_to_all_distros)#Getting_the_latest_sources_from_SVN]], but don't cd into the directory trunk), no ./bootstrap or anything else should be done before in this directory !
+
6. Install the packages you want (usually codeblocks and codeblocks-contrib) and enjoy Code::Blocks!
  
2. Rename the directory ''trunk'' to ''codeblocks''. Stay in the directory above ''codeblocks''.
+
=== Compiling the Release Candidate 2 ===
  
3. Get SVN revision number. You can see it in the last line after checking out (the number after "Revision:") or SVN with:
+
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.
svn info codeblocks/ | grep Revision | cut -c 11-
 
  
4. add the directory codeblocks to an tgz archive named codeblocks-1.0-svn.$SVNREVISION.tgz (replace $SVNREVISION with the number you got)
+
This has to be installed:
tar -czf codeblocks-1.0_0.svn.$SVNREVISION.tgz codeblocks
+
# wxGTK and its devel package
 +
# wxGTK-xrc and its devel package (in some distributions included in the packages of point 1)
  
5. copy the archive as root to the directory /usr/src/packages/SOURCES
+
1. Download the source RPM from [https://www.codeblocks.org/downloads.shtml www.codeblocks.org/downloads.shtml]
  
6. copy the Specfile beneath, add the SVN revision number behind "_svnrev" (between "_svnrev" and the number has to be at least one space character) in the first line and save it as root to /usr/src/packages/SPECS/codeblocks.spec (you can name the specfile however you want)
+
2. Build the binary package as root
 +
rpmbuild --rebuild codeblocks-1.0-rc2.src.rpm
  
7. build the binary package as root with
+
3. The binary RPM should be in one of the subdirectories of /usr/src/packages/RPMS
rpmbuild -bb /usr/src/packages/SPECS/codeblocks.spec
 
 
 
8. the package will be in one of the subdirectories of /usr/src/packages/RPMS/
 
 
 
9. Install it and enjoy Code::Blocks!
 
 
 
'''Use this as specfile:'''
 
 
 
%define _svnrev       
 
%define req_wxgtk      2.6.0
 
%define _fedora        %(if [ -f /etc/fedora-release ]; then echo 1; else echo 0; fi)
 
%define _suse          %(if [ -f /etc/SuSE-release ]; then echo 1; else echo 0; fi)
 
%define _mandriva      %(if [ -f /etc/mandrake-release ]; then echo 1; else echo 0; fi)
 
%define _version        1.0_0.svn.%{_svnrev}
 
%define _rel            0
 
%define _release        %{_rel}
 
 
 
%if %_suse
 
%define _suse_version  %(grep VERSION /etc/SuSE-release|cut -f3 -d" ")
 
%define _suse_vernum    %(echo "%_suse_version"|tr -d '.')
 
%define _release        %{_rel}.suse%{_suse_vernum}
 
%define _distribution  SuSE Linux %_suse_version
 
%define _sysconfdir    /etc%{_prefix}
 
%endif
 
%if %_mandriva
 
%define _mandriva_version  %(cat /etc/mandriva-release|cut -f4 -d" ")
 
%define _mandriva_vernum    %(echo "%_mandriva_version"|tr -d '.')
 
%define _release            %{_rel}.mdk%{_mandriva_vernum}
 
%define _distribution      %(cat /etc/mandriva-release|cut -f1-4 -d" ")
 
%endif
 
%if %_fedora
 
%define _release            %{_rel}.fc+rh
 
%define _distribution      %(cat /etc/redhat-release)
 
%endif
 
 
 
Name:                  codeblocks
 
Version:                %{_version}
 
Release:                %{_release}
 
Summary:                OpenSource Cross Platform Free C++ IDE
 
Group:                  Development/Tools/IDE
 
License:                GPL
 
URL:                    https://www.codeblocks.org/
 
Packager:              Daniel Orb <danielorb2000@googlemail.com>
 
Source:                %{name}-%{version}.tgz
 
BuildRoot:              %{_tmppath}/%{name}-%{version}-buildroot
 
Provides:              codeblocks
 
Requires:              libgcc, libstdc++
 
%if ! %_mandriva
 
Requires:              wxGTK >= %{req_wxgtk}
 
conflicts:              wxGTK = 2.6.2-0.3.1.daniel2000.fc4
 
BuildRequires:          wxGTK >= %{req_wxgtk}, wxGTK-devel >= %{req_wxgtk}
 
%else
 
Requires:              wxGTK2.6 >= %{req_wxgtk}
 
BuildRequires:          wxGTK2.6 >= %{req_wxgtk}, wxgtku-devel >= %{req_wxgtk}
 
%endif
 
BuildRequires:          intltool, gcc-c++, make, gettext, autoconf, automake, libtool
 
BuildRequires:          libstdc++, libstdc++-devel
 
BuildRequires:          zip
 
BuildRequires:          dos2unix
 
 
%if %_suse
 
BuildRequires:          update-desktop-files
 
%endif
 
%{?_distribution:Distribution:%_distribution}
 
%define pkgdata        %{_datadir}/%{name}
 
 
%description
 
Code::Blocks is a free C++ IDE built specifically to meet the most demanding needs of its users. It was designed, right from the start, to be extensible and configurable.
 
 
%prep
 
 
%setup -n codeblocks
 
 
  %{?suse_update_libdir:%{suse_update_libdir}}
 
  %{?suse_update_config:%{suse_update_config -f}}
 
 
%build
 
  ./bootstrap
 
  CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
 
  CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
 
  FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
 
  ./configure \
 
  '--prefix=%{_prefix}' \
 
  '--exec-prefix=%{_exec_prefix}' \
 
  '--bindir=%{_bindir}' \
 
  '--sbindir=%{_sbindir}' \
 
  '--sysconfdir=/etc' \
 
  '--datadir=%{_datadir}' \
 
  '--includedir=%{_includedir}' \
 
  '--libdir=%{_libdir}' \
 
  '--libexecdir=%{_libexecdir}' \
 
  '--localstatedir=/var' \
 
  '--sharedstatedir=%{_sharedstatedir}' \
 
  '--mandir=%{_mandir}' \
 
  '--infodir=%{_infodir}' \
 
  '--enable-contrib'
 
  %__make
 
 
%install
 
  rm -rf $RPM_BUILD_ROOT
 
  make DESTDIR=$RPM_BUILD_ROOT install
 
 
%post
 
  if [ -x /usr/bin/update-mime-database ]; then
 
          /usr/bin/update-mime-database "%{_datadir}/mime"
 
  fi
 
  test -x /sbin/ldconfig && /sbin/ldconfig
 
 
%preun
 
  if [ -x /usr/bin/update-mime-database ]; then
 
    /usr/bin/update-mime-database "%{_datadir}/mime"
 
  fi
 
 
%clean
 
  test -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" && %__rm -rf $RPM_BUILD_ROOT
 
 
%files
 
%defattr(-,root,root)
 
%doc README COPYING AUTHORS BUGS COMPILERS TODO NEWS ChangeLog
 
 
%{_bindir}/*
 
%{_libdir}/*
 
%{_datadir}/application-registry/codeblocks.applications
 
%{_datadir}/applications/codeblocks.desktop
 
%{_datadir}/icons/gnome/48x48/mimetypes/*
 
%{_datadir}/mime-info/*
 
%{_datadir}/mime/packages/codeblocks.xml
 
%{_datadir}/pixmaps/codeblocks.png
 
%{pkgdata}/*
 
 
%changelog
 

Revision as of 11:57, 3 August 2006

Compiling the SVN version

This has to be installed before starting:

  • wxGTK >= 2.6.0 and its devel package,
  • zip,
  • subversion,
  • update-desktop-files,
  • make,
  • gettext,
  • autoconf >= 2.5,
  • automake >= 1.7,
  • libtool >= 1.4,
  • m4,
  • intltool,
  • gcc-c++ and
  • libstdc++-devel

1. You need to get the latest sources from SVN (described here Compiling_Code::Blocks_in_Linux_(applies_to_all_distros)#Getting_the_latest_sources_from_SVN)

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

3. run these three commands in this order

./bootstrap
./configure --enable-contrib
make dist

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

4. copy the archive as root to the directory /usr/src/packages/SOURCES

sudo mv codeblocks-trunk-r$REVISION.tar.gz /usr/src/packages/SOURCES

5. build the binary packages as root with

sudo rpmbuild -bb codeblocks.spec

This will create several packages in one of the architecture specific subdirectories (i586, x86_64, ...) of /usr/src/packages/RPMS/. These are:

  • codeblocks: main package
  • codeblocks-contrib: contrib plugins
  • codeblocks-devel: SDK headers
  • codeblocks-debuginfo: stripped debug information

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

Compiling the Release Candidate 2

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.

This has to be installed:

  1. wxGTK and its devel package
  2. wxGTK-xrc and its devel package (in some distributions included in the packages of point 1)

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

2. Build the binary package as root

rpmbuild --rebuild codeblocks-1.0-rc2.src.rpm

3. The binary RPM should be in one of the subdirectories of /usr/src/packages/RPMS