File kablinkconference.spec of Package kablinkconference

%define _prefix /opt/conferencing/client
%define _libdir /opt/conferencing/client/lib

Summary: Conferencing Client
Name: kablinkconference
Version: 1.0.100
Release: 0
License: Sitescape
Group: Applications/Communication
URL: http://www.sitescape.com
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires: gcc-c++ gtk2-devel curl-devel libsoup-devel  gnome-vfs2-devel libjpeg-devel xorg-x11-devel
Requires: gtk2 curl libsoup gnome-vfs2

%if "%{_vendor}" == "redhat"
# vnc requirements
BuildRequires: libXtst-devel libXt-devel libXaw-devel
Requires: libXtst libXt
%endif
%if "%{_vendor}" == "suse"
BuildRequires: xorg-x11-devel
%endif

%if %{suse_version} < 1100
BuildRequires: libsoup-devel
Requires: libsoup
%endif

%description
This package contains the Conferencing client

%package devel
Group: Applications/Communication
Summary: Development headers, documentation, and libraries for conferencing

%description devel
Development headers, documentation, and libraries for conferencing

%if "%{_vendor}" == "suse"
%debug_package
%endif

%prep
%setup -q
if [ ! -e iic/clients/bin ]; then
	mkdir iic/clients/bin
fi

%build
( cd wxGTK; ./configure --enable-debug --enable-monolithic --enable-unicode --prefix=%{_prefix}; make )
%if %{suse_version} >= 1100
( cd libsoup-2.2; ./configure --enable-debug --prefix=%{_prefix} && make )
%endif
( cd apr; ./configure --enable-threads --prefix=%{_prefix}; make )
( cd iic/clients/netlib; ./configure --prefix=%{_prefix} && make )
( cd xmlrpc2; ./configure --disable-libwww-client --disable-cplusplus --disable-abyss-server --prefix=%{_prefix} && make )
( cd json-c; ./configure  --prefix=%{_prefix} && make )
( cd iksemel; autoreconf --force --install && ./configure --prefix=%{_prefix} --infodir=%{_infodir} && make )
( cd iic/clients/iiclib; ./configure --prefix=%{_prefix} && make )
( cd iaxclient/iaxclient/lib; make )
( cd iic/clients/iaxlib; ./configure --prefix=%{_prefix}; make )
( cd iic/clients/sharelib; ./configure --prefix=%{_prefix}; make )
( cd iic/clients/meeting; ./configure --prefix=%{_prefix}; make )
( cd x11vnc; ./configure --enable-debug; make )
( cd vnc_unixsrc; xmkmf; make World )

%install
rm -rf $RPM_BUILD_ROOT
( cd wxGTK; make DESTDIR=$RPM_BUILD_ROOT install )
%if %{suse_version} >= 1100
( cd libsoup-2.2; make DESTDIR=$RPM_BUILD_ROOT install; rm -rf $RPM_BUILD_ROOT/%{_prefix}/share/gtk-doc/html/libsoup-2.2 )
%endif
( cd apr; make DESTDIR=$RPM_BUILD_ROOT install )
( cd iic/clients/netlib; make DESTDIR=$RPM_BUILD_ROOT install )
( cd xmlrpc2; make DESTDIR=$RPM_BUILD_ROOT install )
( cd json-c; make DESTDIR=$RPM_BUILD_ROOT install )
( cd iksemel; make DESTDIR=$RPM_BUILD_ROOT install )
( cd iic/clients/iiclib; make DESTDIR=$RPM_BUILD_ROOT install )
( cd iic/clients/iaxlib; make DESTDIR=$RPM_BUILD_ROOT install )
( cd iic/clients/sharelib; make DESTDIR=$RPM_BUILD_ROOT install )
( cd iic/clients/meeting; make DESTDIR=$RPM_BUILD_ROOT install )
( cd x11vnc; cp x11vnc/x11vnc $RPM_BUILD_ROOT/%{_prefix}/bin/mtgshare )
( cd vnc_unixsrc; cp vncviewer/vncviewer $RPM_BUILD_ROOT/%{_prefix}/bin/mtgviewer )

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
   # wxGTK
   %{_libdir}/libwx_gtk2ud-2.8.so
   %{_libdir}/libwx_gtk2ud-2.8.so.0
   %{_libdir}/libwx_gtk2ud-2.8.so.0.4.0

   # APR
   %{_libdir}/libapr-1.so
   %{_libdir}/libapr-1.so.0
   %{_libdir}/libapr-1.so.0.2.8

   # iksemel
   %{_libdir}/libiksemel.so
   %{_libdir}/libiksemel.so.3
   %{_libdir}/libiksemel.so.3.0.0

   # xmlrpc2
   %{_libdir}/libxmlrpc.so
   %{_libdir}/libxmlrpc.so.3
   %{_libdir}/libxmlrpc.so.3.4.0
   %{_libdir}/libxmlrpc_client.so
   %{_libdir}/libxmlrpc_client.so.3
   %{_libdir}/libxmlrpc_client.so.3.4.0
   %{_libdir}/libxmlrpc_server.so
   %{_libdir}/libxmlrpc_server.so.3
   %{_libdir}/libxmlrpc_server.so.3.4.0
   %{_libdir}/libxmlrpc_server_abyss.a
   %{_libdir}/libxmlrpc_server_abyss.la
   %{_libdir}/libxmlrpc_server_abyss.so
   %{_libdir}/libxmlrpc_server_abyss.so.3
   %{_libdir}/libxmlrpc_server_abyss.so.3.4.0
   %{_libdir}/libxmlrpc_server_cgi.so
   %{_libdir}/libxmlrpc_server_cgi.so.3
   %{_libdir}/libxmlrpc_server_cgi.so.3.4.0
   %{_libdir}/libxmlrpc_xmlparse.so
   %{_libdir}/libxmlrpc_xmlparse.so.3
   %{_libdir}/libxmlrpc_xmlparse.so.3.4.0
   %{_libdir}/libxmlrpc_xmltok.so
   %{_libdir}/libxmlrpc_xmltok.so.3
   %{_libdir}/libxmlrpc_xmltok.so.3.4.0

   # json
   %{_libdir}/libjson.a
   %{_libdir}/libjson.la
   %{_libdir}/libjson.so
   %{_libdir}/libjson.so.0
   %{_libdir}/libjson.so.0.0.1

   # soup
%if %{suse_version} > 1030
   %{_libdir}/libsoup-2.2.so
   %{_libdir}/libsoup-2.2.so.8
   %{_libdir}/libsoup-2.2.so.8.5.0
%endif

   # conferencing   
   %{_bindir}/meeting
   %{_bindir}/mtgshare
   %{_bindir}/mtgviewer
   %{_datadir}/meeting
   %{_libdir}/libiaxlib.so
   %{_libdir}/libiaxlib.so.1
   %{_libdir}/libiaxlib.so.1.0.0
   %{_libdir}/libsharelib.so
   %{_libdir}/libsharelib.so.1
   %{_libdir}/libsharelib.so.1.0.0
   %{_libdir}/libiiclib.so
   %{_libdir}/libiiclib.so.1
   %{_libdir}/libiiclib.so.1.0.0
   %{_libdir}/libnetlib.so
   %{_libdir}/libnetlib.so.1
   %{_libdir}/libnetlib.so.1.0.0

	
%files devel
%defattr(-,root,root,-)
   # wxGTK
   %{_bindir}/wx-config
   %{_bindir}/wxrc
   %{_bindir}/wxrc-2.8
   %{_libdir}/wx/config/gtk2-unicode-debug-2.8
   %{_libdir}/wx/include/gtk2-unicode-debug-2.8/wx/setup.h
   %{_datadir}/aclocal/wxwin.m4
   %{_datadir}/bakefile/presets/wx.bkl
   %{_datadir}/bakefile/presets/wx_unix.bkl
   %{_datadir}/bakefile/presets/wx_win32.bkl
   %{_prefix}/include/wx-2.8/wx

   # APR
   %{_includedir}/apr-1
   %{_bindir}/apr-1-config
   %{_libdir}/apr.exp
   %{_libdir}/libapr-1.a
   %{_libdir}/libapr-1.la
   %{_libdir}/pkgconfig/apr-1.pc
   %{_prefix}/build-1/apr_rules.mk
   %{_prefix}/build-1/libtool
   %{_prefix}/build-1/make_exports.awk
   %{_prefix}/build-1/make_var_export.awk
   %{_prefix}/build-1/mkdir.sh

   # iksemel
%if %{suse_version} < 1100
   %{_bindir}/ikslint
   %{_bindir}/iksperf
   %{_bindir}/iksroster
   %{_libdir}/pkgconfig/iksemel.pc
   %{_infodir}/iksemel
%endif
   %{_includedir}/iksemel.h
   %{_libdir}/libiksemel.a
   %{_libdir}/libiksemel.la

   # xmlrpc
   %{_bindir}/xmlrpc-c-config
   %{_includedir}/xmlrpc-c
   %{_libdir}/libxmlrpc.a
   %{_libdir}/libxmlrpc.la
   %{_libdir}/libxmlrpc_client.a
   %{_libdir}/libxmlrpc_client.la
   %{_libdir}/libxmlrpc_server.a
   %{_libdir}/libxmlrpc_server.la
   %{_libdir}/libxmlrpc_server_cgi.a
   %{_libdir}/libxmlrpc_server_cgi.la
   %{_libdir}/libxmlrpc_xmlparse.a
   %{_libdir}/libxmlrpc_xmlparse.la
   %{_libdir}/libxmlrpc_xmltok.a
   %{_libdir}/libxmlrpc_xmltok.la

   # json
   %{_includedir}/json/arraylist.h
   %{_includedir}/json/bits.h
   %{_includedir}/json/debug.h
   %{_includedir}/json/json.h
   %{_includedir}/json/json_object.h
   %{_includedir}/json/json_tokener.h
   %{_includedir}/json/json_util.h
   %{_includedir}/json/linkhash.h
   %{_libdir}/pkgconfig/json.pc

   # soup	
%if %{suse_version} > 1030
   %{_includedir}/libsoup-2.2/libsoup/soup-address.h
   %{_includedir}/libsoup-2.2/libsoup/soup-connection.h
   %{_includedir}/libsoup-2.2/libsoup/soup-date.h
   %{_includedir}/libsoup-2.2/libsoup/soup-headers.h
   %{_includedir}/libsoup-2.2/libsoup/soup-message-filter.h
   %{_includedir}/libsoup-2.2/libsoup/soup-message-queue.h
   %{_includedir}/libsoup-2.2/libsoup/soup-message.h
   %{_includedir}/libsoup-2.2/libsoup/soup-method.h
   %{_includedir}/libsoup-2.2/libsoup/soup-misc.h
   %{_includedir}/libsoup-2.2/libsoup/soup-portability.h
   %{_includedir}/libsoup-2.2/libsoup/soup-server-auth.h
   %{_includedir}/libsoup-2.2/libsoup/soup-server-message.h
   %{_includedir}/libsoup-2.2/libsoup/soup-server.h
   %{_includedir}/libsoup-2.2/libsoup/soup-session-async.h
   %{_includedir}/libsoup-2.2/libsoup/soup-session-sync.h
   %{_includedir}/libsoup-2.2/libsoup/soup-session.h
   %{_includedir}/libsoup-2.2/libsoup/soup-soap-message.h
   %{_includedir}/libsoup-2.2/libsoup/soup-soap-response.h
   %{_includedir}/libsoup-2.2/libsoup/soup-socket.h
   %{_includedir}/libsoup-2.2/libsoup/soup-status.h
   %{_includedir}/libsoup-2.2/libsoup/soup-types.h
   %{_includedir}/libsoup-2.2/libsoup/soup-uri.h
   %{_includedir}/libsoup-2.2/libsoup/soup-xmlrpc-message.h
   %{_includedir}/libsoup-2.2/libsoup/soup-xmlrpc-response.h
   %{_includedir}/libsoup-2.2/libsoup/soup.h
   %{_libdir}/libsoup-2.2.a
   %{_libdir}/libsoup-2.2.la
   %{_libdir}/pkgconfig/libsoup-2.2.pc
%endif

   # conferencing   
   %{_includedir}/iiclib
   %{_includedir}/netlib
   %{_includedir}/VoipApi.h
   %{_includedir}/VoipService.h
   %{_includedir}/common.h
   %{_includedir}/eventnames.h
   %{_includedir}/share_api.h

%post
# This is just to allow the pidgin client distributed with conferencing 1.0
# to run
echo "%{_libdir}" >/etc/ld.so.conf.d/conferencing.conf
/sbin/ldconfig

cp %{_prefix}/share/meeting/meeting.desktop /usr/share/applications/
cp %{_prefix}/share/meeting/res/zon.png /usr/share/pixmaps/meeting.png

SERVERTOKEN=1
if [ -d /usr/lib/firefox/defaults/pref ]; then
    cp %{_prefix}/share/meeting/zon.js /usr/lib/firefox/defaults/pref
    sed -i "s/SERVERTOKEN/$SERVERTOKEN/g" /usr/lib/firefox/defaults/pref/zon.js
fi

SERVER=@@@SERVER@@@
HELPPATH=@@@HELPURL@@@
LOOKUPURL=@@@LOOKUPURL@@@
SECURE=@@@SECURE@@@
sed -i -e "s+\"server\",\".*\"+\"server\",\"$SERVER\"+" \
       -e "s+\"HelpPath\",\".*\"+\"HelpPath\",\"$HELPPATH\"+" \
       -e "s+\"EnableSecurity\",\".*\"+\"EnableSecurity\",\"$SECURE\"+" \
       -e "s+\"MeetingLookupURL\",\".*\"+\"MeetingLookupURL\",\"$LOOKUPURL\"+" \
       %{_datadir}/meeting/zon-def.opt

RUNNOW=n
if [ "$RUNNOW" == "y" ]; then
  # assume logged in user is installing us and start client for him
  USER=( `who | grep :0[^.]` )
  if [ ! -z "$USER" ]; then
    sudo -u $USER bash -c "export DISPLAY=:0; %{_bindir}/meeting" >/dev/null 2>&1 &
    if [ -d /home/$USER/Desktop ]; then
      cp %{_datadir}/meeting/meeting.desktop /home/$USER/Desktop/
      chown "$USER" /home/$USER/Desktop/meeting.desktop
    fi
  fi
fi

%postun
if [ "$1" = 0 ]; then
  rm /usr/share/applications/meeting.desktop
  rm /usr/share/pixmaps/meeting.png
  if [ -f /usr/lib/firefox/defaults/pref/zon.js ]; then
      rm /usr/lib/firefox/defaults/pref/zon.js
  fi
  if [ -f /etc/ld.so.conf.d/conferencing.conf ]; then
  	rm /etc/ld.so.conf.d/conferencing.conf
	/sbin/ldconfig
  fi
fi

%changelog
openSUSE Build Service is sponsored by