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

From Code::Blocks
(simplified the specfile)
Line 34: Line 34:
 
'''Use this as specfile:'''
 
'''Use this as specfile:'''
  
%define _fedora %(if [ -f /etc/fedora-release ]; then echo 1; else echo 0; fi)
+
 
  %define _mandrake %(if [ -f /etc/mandrake-release ]; then echo 1; else echo 0; fi)
+
  %define req_wxgtk      2.6.0
  %define _suse %(if [ -f /etc/SuSE-release ]; then echo 1; else echo 0; fi)
+
  %define _suse           %(if [ -f /etc/SuSE-release ]; then echo 1; else echo 0; fi)
 
   
 
   
%define req_wxgtk 2.6.0
+
  Name:                   codeblocks
+
  Version:               1.0
  Name: codeblocks
+
  Release:               svn
  Version: 1.0
+
  Summary:               OpenSource Cross Platform Free C++ IDE
  Release: svn
+
  Group:                 Development/Tools/IDE
  Summary: OpenSource Cross Platform Free C++ IDE
+
  License:               GPL
  Group: Development/Tools/IDE
+
  URL:                   https://www.codeblocks.org/
  License: GPL
+
  Packager:               Daniel Orb <danielorb2000@googlemail.com>
  URL: https://www.codeblocks.org/
+
  Source:                 %{name}-%{version}-%{release}.tgz
  Packager: Daniel Orb <danielorb2000@googlemail.com>
+
  BuildRoot:             %{_tmppath}/%{name}-%{version}-%{release}-buildroot
  Source: %{name}-%{version}-%{release}.tgz
+
  Provides:               codeblocks
  BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+
  Requires:               libgcc, libstdc++
  Provides: codeblocks
+
  Requires:               wxGTK >= %{req_wxgtk}
  Requires: libgcc, libstdc++
+
  BuildRequires:         wxGTK >= %{req_wxgtk}, wxGTK-devel >= %{req_wxgtk}
+
  BuildRequires:         intltool, gcc-c++, make, gettext, autoconf, automake, libtool
%if %_fedora
+
  BuildRequires:         libstdc++, libstdc++-devel
  Requires: wxGTK >= %{req_wxgtk}
+
  BuildRequires:         zip
  BuildRequires: wxGTK >= %{req_wxgtk}, wxGTK-devel >= %{req_wxgtk}
+
  BuildRequires:          dos2unix
  BuildRequires: intltool
 
%endif
 
 
%if %_mandrake
 
Requires: libwxgtku2.6 >= %{req_wxgtk}
 
  BuildRequires: libwxgtku2.6 >= %{req_wxgtk}, libwxgtku2.6-devel >= %{req_wxgtk}
 
  BuildRequires: intltool
 
  %endif
 
 
   
 
   
 
  %if %_suse
 
  %if %_suse
Requires: wxGTK >= %{req_wxgtk}
+
  BuildRequires:         update-desktop-files
BuildRequires: wxGTK >= %{req_wxgtk}, wxGTK-devel >= %{req_wxgtk}
 
  BuildRequires: intltool, update-desktop-files
 
 
  %endif
 
  %endif
 
BuildRequires: gcc-c++, make, gettext
 
BuildRequires: libstdc++, libstdc++-devel, autoconf, automake, libtool
 
BuildRequires: zip
 
BuildRequires: dos2unix
 
 
   
 
   
 
  %define pkgdata %{_datadir}/%{name}
 
  %define pkgdata %{_datadir}/%{name}
Line 83: Line 68:
 
  %prep
 
  %prep
 
   
 
   
  %setup -n codeblocks-1.0
+
  %setup -n codeblocks
 
   
 
   
%if %_suse
+
  %{?suse_update_libdir:%{suse_update_libdir}}
%{?suse_update_libdir:%{suse_update_libdir}}
+
  %{?suse_update_config:%{suse_update_config -f}}
%{?suse_update_config:%{suse_update_config -f}}
 
%endif
 
 
   
 
   
 
  %build
 
  %build
Line 99: Line 82:
 
   
 
   
 
  %post
 
  %post
if [ -x /usr/bin/update-mime-database ]; then
+
  if [ -x /usr/bin/update-mime-database ]; then
        /usr/bin/update-mime-database "%{_datadir}/mime"
+
          /usr/bin/update-mime-database "%{_datadir}/mime"
fi
+
  fi
 +
  test -x /sbin/ldconfig && /sbin/ldconfig
 
   
 
   
 
  %preun
 
  %preun
if [ -x /usr/bin/update-mime-database ]; then
+
  if [ -x /usr/bin/update-mime-database ]; then
    /usr/bin/update-mime-database "%{_datadir}/mime"
+
      /usr/bin/update-mime-database "%{_datadir}/mime"
fi
+
  fi
 
   
 
   
 
  %clean
 
  %clean
Line 126: Line 110:
 
   
 
   
 
  %changelog
 
  %changelog
 +
* Mon Jan  2 2005 Daniel Orb <danielorb2000@googlemail.com>
 +
- simplified the changes made before
 
  * Sun Jan  1 2005 Daniel Orb <danielorb2000@googlemail.com>
 
  * Sun Jan  1 2005 Daniel Orb <danielorb2000@googlemail.com>
 
  - added distribution check (SuSE, Fedora, Mandriva/Mandrake)
 
  - added distribution check (SuSE, Fedora, Mandriva/Mandrake)
 
  - added distribution specific Requires and BuildRequires
 
  - added distribution specific Requires and BuildRequires
 
  - added run of update-mime-database if installed
 
  - added run of update-mime-database if installed

Revision as of 00:08, 2 January 2006

General instructions

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)

Compiling the Release Candidate 2

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

Compiling the CVS/SVN version

1. You need a fresh CVS/SVN version, no ./bootstrap or anything else should be done before in this directory !

2. add the directory codeblocks to an tgz archive named codeblocks-1.0-svn.tgz

tar -czf codeblocks-1.0-svn.tgz codeblocks

3. copy the archive in the directory /usr/src/packages/SOURCES and the Specfile to /usr/src/packages/SPECS/codeblocks.spec

4. build the binary package as root with

rpmbuild -bb /usr/src/packages/SPECS/codeblocks.spec

5. the package will be in one of the subdirectories of /usr/src/packages/RPMS/

6. Install it and enjoy !

Use this as specfile:


%define req_wxgtk       2.6.0
%define _suse           %(if [ -f /etc/SuSE-release ]; then echo 1; else echo 0; fi)

Name:                   codeblocks
Version:                1.0
Release:                svn
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}-%{release}.tgz
BuildRoot:              %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Provides:               codeblocks
Requires:               libgcc, libstdc++
Requires:               wxGTK >= %{req_wxgtk}
BuildRequires:          wxGTK >= %{req_wxgtk}, wxGTK-devel >= %{req_wxgtk}
BuildRequires:          intltool, gcc-c++, make, gettext, autoconf, automake, libtool
BuildRequires:          libstdc++, libstdc++-devel
BuildRequires:          zip
BuildRequires:          dos2unix

%if %_suse
BuildRequires:          update-desktop-files
%endif

%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
  %configure
  %__make

%install
  %makeinstall

%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/gnome-mime-application-x-codeblocks.png
%{_datadir}/mime-info/*
%{_datadir}/mime/packages/codeblocks.xml
%{_datadir}/pixmaps/codeblocks.png
%{pkgdata}/*

%changelog
* Mon Jan  2 2005 Daniel Orb <danielorb2000@googlemail.com>
- simplified the changes made before
* Sun Jan  1 2005 Daniel Orb <danielorb2000@googlemail.com>
- added distribution check (SuSE, Fedora, Mandriva/Mandrake)
- added distribution specific Requires and BuildRequires
- added run of update-mime-database if installed