RPM Packaging Hints
From Granular Linux Documentation
Notes
- While building from Mandriva sources, we usually remove all "epochs" from the spec file.
- See also: http://wiki.unity-linux.org/tips-tricks:packaging
- See also: RPM Packaging to-do
Contents |
KDE4 Packages
- While building any KDE4 package, check during the output 'configuring phase' to make sure all the optional build dependencies are installed which are required to enable optional desired features. For example, see the case of kdenetwork4.
- We are currently not doing these packages (rest all KDE packages are covered):
- kdeedu
- kdegames
- oxygen-icons
kdeadmin4
- Do not install the optional build dependency system-config-printer as it is avoided by Mandriva guys (perhaps due to their own printer config utility).
kdenetwork4
- Install libv4l-devel as well to provide optional better support for webcam.
task-kde4
- Changed Requires: dragonplayer to Suggests: dragonplayer.
- Now suggests granular-welcome-data instead of mandriva-galaxy-data.
mandriva-kde4-config-2009.1
- Contains most of the KDE 4 related customs settings for Mandriva. We need to modify all the settings, images, branding, etc. here to make it Granular-like.
- The name needs to changed to granular-kde4-config-2009 (note the absence of .1 after 2009).
kdebase4-workspace
- As we are not using the iaOra gtk theme, the kdebase-workspace-4.2.0-fix_gtkrc_iaora.patch was excluded from the build.
- Renamed mandriva-startkde to granular-startkde.
- I think something needs to be done to MandrivaKdeTeamRocks thing mentioned in kdebase-workspace-testing-show-systemsettings-menuentry.patch.
- There's a reference to kde4-splash-mdv in granular-startkde. We'll leave it as is as this is the package that is kind of an engine for KDM.
- The package requires mandriva-kde4-config, but as granular-kde4-config will provide mandriva-kde4-config, there's no need to worry about this mention in the spec file. Similar is the case with mandriva-kde-translation.
kdelibs4
- Make sure all nepomuk related devel packages are installed (nepomuk-scribo-devel), even though they are optionally required. Otherwise, build might fail due to lack for creation of nepomuk related files, like libnepomuk.so.*, libnepomukquery.so.*.
- Mandriva's default theme/style for KDE 4 is iaOra. The RPMs associated with it are kde4-style-iaora and qt4-style-iaora. For Granular, we'll not be using iaOra initially and we'll be sticking to the default Oxygen style. So, I am disabling the inclusion of patch (in .spec file) that changes style from Oxygen to iaOra, although the patch will remain physically present in our SRPM. We can later use this patch to change style from Oxygen to some other of our choice.
Commented line 16:
Patch2: kdelibs-4.1.81-overrides-oxygen-iaora.patch
Commented lines 108, 109:
Requires: qt4-style-iaora Requires: kde4-style-iaora
Commented line 862:
%patch2 -p0 -b .iaora
- Changed the patch kdelibs-4.2.1-mandriva-about.patch to kdelibs-4.2.1-granular-about.patch, with necessary changes.
General Packages
amarok
- Contains our custom splash image
mandriva-galaxy
- Provides the welcome dialog box that explains the various editions and features of Mandriva.
- Two associated packages - mandriva-galaxy & mandriva-galaxy-data.
- Name needs to be changed to granular-welcome.
gimp-2.6.x
- Make sure the package python-gobject-devel is installed, otherwise you might get an error like the following even if you have a recent version of pygtk & pygtk-devel installed:
Could not find PyGTK 2.10.4 or newer.
firefox-3.x.x
- To build any version of the Firefox 3 series, make sure libnss and nss are updated to the latest versions. This is very important.
ktoon-0.8.1
- This version was built from Mandriva source. It uses the qmake command to build the rpm. Mandriva's rpm macros define the procedure for qmake command, but PCLinuxOS's macros do not. So, to build it successfully, one needs to append the following macro code to the file /etc/rpm/macros.d/qt4.macros:
%qmake_qt4 \
CPPFLAGS="${CPPFLAGS:-%optflags -DPIC -fPIC}" ; export CPPFLAGS ; \
%{qt4bin}/qmake \\\
QMAKE_CFLAGS="${CFLAGS:-%optflags -DPIC -fPIC}" \\\
QMAKE_CXXFLAGS="${CXXFLAGS:-%optflags -DPIC -fPIC}" \\\
QMAKE_LFLAGS="%{?ldflags}"
k3d
- In order to build k-3d you will also need to build & or upgrade aqsis, boost-jam, python, emacs, and libboost.
metabar
- To build metabar that will actually be building kdeaddons. (unless you package .8 as a plugin by itself).
KDE3 Packages
kdelibs-3.5.9
- The recent version of unsermake gives certain errors during the initial phase of kdelibs compilation. This is due to some bugs arising from the incompatibilities between unsermake and cups. To solve this issue, remove unsermake from your system and then edit the kdelibs spec file to modify the following code:
%if %mdkversion >= 1020
%define umake 1
#%define usepch 1
%{?_without_unsermake: %global umake 0}
%else
%define umake 0
#%define usepch 0
%{?_with_unsermake: %global umake 1}
%endif
to look like:
%if %mdkversion >= 1020
%define umake 0
#%define usepch 1
%{?_without_unsermake: %global umake 0}
%else
%define umake 0
#%define usepch 0
%{?_with_unsermake: %global umake 1}
%endif
What this will do is tell the compiler that unsermake is not present on your system. So, the compiler will use the alternative tool, automake, to compile kdelibs.
- When compiling kdelibs, two dependencies are not included in the "BuildRequires" section of spec file, but are needed for a successful build. These provide the support for "help://" protocol in Konqueror (that is, probably the KDE Handbook). The deps are:
- libxslt-devel
- libbzip2-devel
kdeaddons
- In order to build kdeaddons, you are going to need to build kdemultimedia.

