Several problems building rkward

Hello,
I have got several errors building rkward 0.5.1:

  1. When I use the build service, I get the following message (Even when I have linked gcc-3.3):
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
  1. A minor problem:
    I always get this warnings:
Processing files: rkward-0.5.1-2
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/common
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/common
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/index.cache.bz2
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/index.cache.bz2
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/index.docbook
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/index.docbook
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/menu_hierarchy_example.png
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/menu_hierarchy_example.png
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/t_test_plugin_example.png
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/t_test_plugin_example.png
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/writing_plugins_introduction.docbook
warning: File listed twice: /usr/share/doc/kde/HTML/en/rkward/writing_plugins_introduction.docbook
warning: File listed twice: /usr/share/locale/ca/LC_MESSAGES/rkward.mo
warning: File listed twice: /usr/share/locale/da/LC_MESSAGES/rkward.mo
warning: File listed twice: /usr/share/locale/de/LC_MESSAGES/rkward.mo
warning: File listed twice: /usr/share/locale/el/LC_MESSAGES/rkward.mo
warning: File listed twice: /usr/share/locale/es/LC_MESSAGES/rkward.mo
warning: File listed twice: /usr/share/locale/fr/LC_MESSAGES/rkward.mo
warning: File listed twice: /usr/share/locale/it/LC_MESSAGES/rkward.mo
warning: File listed twice: /usr/share/locale/pl/LC_MESSAGES/rkward.mo
warning: File listed twice: /usr/share/locale/tr/LC_MESSAGES/rkward.mo
warning: File listed twice: /usr/share/locale/zh_CN/LC_MESSAGES/rkward.mo

  1. My specfile only works when I use the absolute path to the libarys, it does not work with %{_libdir} (You see this in the spec-file) When I use it I get
    File not found: /var/tmp/rkward-0.5.1-2-root-root/usr/lib64/R/library
    Installed (but unpackaged) file(s) found:
    /usr/local/lib64/R/library/R.css
    (And many more files from this directory)

  2. Another general Question: is there an easier way to fulfill an requirement line just uploading an rpm or add an repository (I even got issues that packages that are available by default in opensuse are not available in SLES and when I try to solve it by uploading specs and sources, i get the next errors or dependencies.

Here is my used SPEC-File


%global  Rversion 2.9.0

Name:           rkward
Version:        0.5.1
Release:        2%{?dist}
Summary:        Graphical frontend for R language

Group:          Applications/Productivity
License:        GPLv2+
URL:            [RKWard](http://rkward.sourceforge.net/) 
Source0:        http://downloads.sourceforge.net/rkward/%{name}-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  R-base-devel >= %{Rversion} desktop-file-utils gettext 
BuildRequires:  kdelibs4 cmake pcre-devel
BuildRequires:  giflib-devel  
Requires:       php-cli

%{?kde4_macros_api:Requires: kde4-macros(api) = %{?kde4_macros_api}}

%description
RKWard aims to provide an easily extensible, easy to use IDE/GUI for the
R-project. RKWard tries to combine the power of the R-language with the
(relative) ease of use of commercial statistics tools. Long term plans
include integration with office suites


%prep
%setup -q 


%build
mkdir -p %{_target_platform}
%{cmake_kde4}

%install
rm -rf %{buildroot}

make install DESTDIR=%{buildroot} 

desktop-file-install \
  --vendor="" \
  --dir=%{buildroot}%{kde4_datadir}/applications/kde4 \
  %{buildroot}%{_datadir}/applications/kde4/%{name}.desktop

#/usr/share/applications/kde4/rkward.desktop
%find_lang %{name} || touch %{name}.lang

#This file is conflicting with the kdelibs one
rm -f $RPM_BUILD_ROOT%{_datadir}/kde4/apps/katepart/syntax/r.xml
# already in R-base package
rm -f $RPM_BUILD_ROOT%{_libdir}/R/library/R.css


## File lists
# locale's
%find_lang %{name} || touch %{name}.lang
# HTML (1.0)
HTML_DIR=$(kde4-config --expandvars --install html)
if  -d $RPM_BUILD_ROOT$HTML_DIR ]; then
for lang_dir in $RPM_BUILD_ROOT$HTML_DIR/* ; do
  if  -d $lang_dir ]; then
    lang=$(basename $lang_dir)
    echo "%lang($lang) $HTML_DIR/$lang/*" >> %{name}.lang
   # replace absolute symlinks with relative ones
    pushd $lang_dir
      for i in *; do
         -d $i -a -L $i/common ] && rm -f $i/common && ln -sf ../common $i/common
      done
    popd
  fi
done
fi

%clean
#rm -rf $RPM_BUILD_ROOT

%post
touch --no-create %{_datadir}/icons/locolor
touch --no-create %{_datadir}/icons/crystalsvg

%postun
touch --no-create %{_datadir}/icons/locolor
touch --no-create %{_datadir}/icons/crystalsvg

%files -f %{name}.lang
%defattr(-,root,root,-)
#%doc README COPYING TODO AUTHORS

#%{_libdir}/R/library/
/usr/local/lib64/R/library/

%{_datadir}/kde4/apps/%{name}/
%{_datadir}/applications/kde4/%{name}.desktop
%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
%{_datadir}/icons/hicolor/22x22/apps/%{name}.png
%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
%{_datadir}/icons/hicolor/64x64/apps/%{name}.png
%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svgz
%{_bindir}/%{name}
%{_bindir}/%{name}.bin
#%{_datadir}/doc/kde/HTML/en/%{name}
%{_datadir}/kde4/apps/katepart/syntax/%{name}.xml

Best regards, Maddi

Hi
The _libdir variable is /usr/lib(64) dependent on build if you want to
install in /usr/local you need to define it in your spec file before
any actions take place eg %prep

For example;


%ifarch x86_64
define _libdir /usr/local/lib64
%else
define _libdir /usr/local/lib
%endif

I’m guessing the cmake error is because the rpm that has it qt-devel??
isn’t part of the build requires. else it needs exporting in %build;


export CMAKE_CXX_COMPILER=/path/to/cmake

BTW linking gcc or any other link to binaries on the build service
won’t work… you need to export the flags you want.


Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel 2.6.27.25-0.1-default
up 15 days 18:50, 2 users, load average: 0.03, 0.05, 0.08
GPU GeForce 8600 GTS Silent - Driver Version: 190.18

Great thanks for the answer!
(even there was a little typo: you seem to need the % before the define)

Unfortunately the second hint did not work, I have the lines


BuildRequires:  kdelibs4 cmake pcre-devel
export CMAKE_CXX_COMPILER=/usr/bin/cmake

but it still gives the same error
(I got the path from an opensuse 11.1, which is the platform I want to build for, so this should be right)

Best regards,
Maddi

Hi
Try CXX=/usr/bin/cmake I’m also wondering if kde4base-devel needs to be
a build requires? (I’m a Gnome user, so guessing)


Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel 2.6.27.29-0.1-default
up 4 days 19:56, 3 users, load average: 0.02, 0.02, 0.00
GPU GeForce 8600 GTS Silent - Driver Version: 190.18