CASA/shsrc/lshsrc/CASA.spec
Jim Norman fda83e44e6
2005-10-21 02:24:56 +00:00

279 lines
11 KiB
RPMSpec

#
# spec file for package CASA (Version 1.5.0)
#
# Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://www.suse.de/feedback/
#
# norootforbuild
# neededforbuild gnome-filesystem mono gtk2-devel gtk2 gtk-sharp-gapi gtk-sharp glib2 glib2-devel qt3-devel gcc-c++ kdeutils3 kdelibs3-devel kdelibs3 qt3 qt3-devel kdesdk3 libstdc++-devel pkgconfig gnome-keyring gnome-keyring-devel glib-devel glib pam pam-devel java2
Name: CASA
URL: http://www.novell.com/products
%define prefix /opt/novell
License: GNU Library General Public License v. 2.0 and 2.1 (LGPL)
Group: Productivity/Other
Autoreqprov: on
Version: 1.5.0
Release: 0
Summary: Novell Common Authentication Service Adapter (CASA)
Source: %{name}-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
requires: mono >= 1.1.7 gtk-sharp >= 1.0.9
ExclusiveArch: %ix86 x86_64
NoSource: 0
%description
CASA (Common Authentication Services Adaptor) is a common authentication
and security package providing a set of libraries for application and
service developers to provide single sign-on to an enterprise network.
CASA provides a local on box credential store that is purely session
based in 1.0. This store is populated with your Desktop and Network Login
credentials on Novell Linux Desktop, Windows and Apple workstations.
%package devel
Summary: Include Files and Libraries mandatory for Development.
Group: Productivity/Other
Requires: CASA = %{version}-%{release}
Provides: CASA-devel
%description devel
This package contains all necessary include files and libraries needed
to develop applications that require these.
%prep
%setup -q
%ifarch x86_64
%define binsource bin64
%define libsource lib64
%else
%define binsource bin
%define libsource lib
%endif
%build
export PATH=.:$PATH
mk-cai-all
mkdir -p %{buildroot}%{prefix}
mkdir %{buildroot}%{prefix}/CASA
#mkdir %{buildroot}%{prefix}/%{_lib}
mkdir %{buildroot}%{prefix}/CASA/%{_lib}
#mkdir %{buildroot}%{prefix}/bin
mkdir %{buildroot}%{prefix}/CASA/%{binsource}
#mkdir %{buildroot}%{prefix}/include
mkdir %{buildroot}%{prefix}/CASA/include
mkdir %{buildroot}%{prefix}/CASA/images
mkdir -p %{buildroot}/%{_lib}/security
install -m 755 %{_lib}/lux/ndbg/libmicasa.so.%version %{buildroot}%{prefix}/CASA/%{_lib}
install -m 755 %{_lib}/lux/ndbg/libad_gk.so.%version %{buildroot}%{prefix}/CASA/%{_lib}
install -m 755 %{_lib}/lux/ndbg/libkwallets_rw.so.%version %{buildroot}%{prefix}/CASA/%{_lib}
install -m 755 %{_lib}/lux/ndbg/libjmicasa.so.%version %{buildroot}%{prefix}/CASA/%{_lib}
install -m 755 %{_lib}/lux/ndbg/Novell.CASA.miCASAWrapper.dll %{buildroot}%{prefix}/CASA/%{_lib}
install -m 755 %{_lib}/lux/ndbg/Novell.CASA.Common.dll %{buildroot}%{prefix}/CASA/%{_lib}
install -m 755 %{_lib}/lux/ndbg/Novell.CASA.A-D.dll %{buildroot}%{prefix}/CASA/%{_lib}
install -m 755 %{_lib}/lux/ndbg/Novell.CASA.CASAPolicy.dll %{buildroot}%{prefix}/CASA/%{_lib}
install -m 755 %{_lib}/lux/ndbg/Novell.CASA.DataEngines.GnomeKeyring.dll %{buildroot}%{prefix}/CASA/%{_lib}
install -m 755 %{_lib}/lux/ndbg/Novell.CASA.DataEngines.KWallet.dll %{buildroot}%{prefix}/CASA/%{_lib}
install -m 755 %{binsource}/lux/ndbg/nwautologin %{buildroot}%{prefix}/CASA/%{binsource}
install -m 755 %{binsource}/lux/ndbg/micasad.exe %{buildroot}%{prefix}/CASA/%{binsource}
install -m 755 %{binsource}/lux/ndbg/CASATrayApp.exe %{buildroot}%{prefix}/CASA/%{binsource}
install -m 755 %{binsource}/lux/ndbg/CASAManager.exe %{buildroot}%{prefix}/CASA/%{binsource}
install -m 755 c_gui/CASAManager.sh %{buildroot}%{prefix}/CASA/%{binsource}
cp -f c_gui/images/* %{buildroot}%{prefix}/CASA/images
install -m 755 c_micasad/startup/micasad %{buildroot}%{prefix}/CASA/%{binsource}
install -m 755 c_micasad/startup/micasad.sh %{buildroot}%{prefix}/CASA/%{binsource}
install -m 755 c_clientlogin/novell-ncl-autologin.sh %{buildroot}%{prefix}/CASA/%{binsource}
install -m 755 %{_lib}/lux/ndbg/pam_micasa.so %{buildroot}/%{_lib}/security
cp -f include/micasa.h %{buildroot}%{prefix}/CASA/include/
cp -f include/micasa_mgmd.h %{buildroot}%{prefix}/CASA/include/
%install
install -d %{buildroot}%{prefix}/%{_lib}
install -d %{buildroot}%{prefix}/bin
install -d %{buildroot}%{prefix}/include
install -d %{buildroot}%{prefix}/CASA/%{_lib}
install -d %{buildroot}%{prefix}/CASA/bin
install -d %{buildroot}%{prefix}/CASA/doc
install -d %{buildroot}%{prefix}/CASA/include
install -d %{buildroot}%{prefix}/CASA/images
install -d %{buildroot}/%{_lib}/security
#install -m 644 %{buildroot}%{prefix}/%libsource/miCASA.jar %{buildroot}%{prefix}/CASA/%{_lib}
#install -m 644 doc/CASA_Admin_Guide.pdf %{buildroot}%{prefix}/CASA/doc
#install -m 644 doc/miCASA_API_Guide.pdf %{buildroot}%{prefix}/CASA/doc
#install -m 644 doc/README.txt %{buildroot}%{prefix}/CASA/doc
ln -s ../CASA/%{binsource}/micasad.exe %{buildroot}%{prefix}/%{binsource}/micasad.exe
ln -s ../CASA/%{binsource}/micasad.sh %{buildroot}%{prefix}/%{binsource}/micasad.sh
ln -s ../CASA/%{binsource}/micasad %{buildroot}%{prefix}/%{binsource}/micasad
ln -s ../CASA/%{binsource}/CASAManager.exe %{buildroot}%{prefix}/%{binsource}/CASAManager.exe
ln -s ../CASA/%{binsource}/CASAManager.sh %{buildroot}%{prefix}/%{binsource}/CASAManager.sh
ln -s libmicasa.so.%{version} %{buildroot}%{prefix}/CASA/%{_lib}/libmicasa.so
ln -s libmicasa.so.%{version} %{buildroot}%{prefix}/CASA/%{_lib}/libmicasa.so.1
ln -s libjmicasa.so.%{version} %{buildroot}%{prefix}/CASA/%{_lib}/libjmicasa.so
ln -s libjmicasa.so.%{version} %{buildroot}%{prefix}/CASA/%{_lib}/libjmicasa.so.1
#ln -s miCASA.jar %{buildroot}%{prefix}/CASA/%{_lib}/jmiCASA.jar
ln -s ../CASA/%{_lib}/libmicasa.so %{buildroot}%{prefix}/%{_lib}/libmicasa.so
ln -s ../CASA/%{_lib}/libmicasa.so.1 %{buildroot}%{prefix}/%{_lib}/libmicasa.so.1
ln -s ../CASA/%{_lib}/libjmicasa.so %{buildroot}%{prefix}/%{_lib}/libjmicasa.so
ln -s ../CASA/%{_lib}/libjmicasa.so.1 %{buildroot}%{prefix}/%{_lib}/libjmicasa.so.1
#ln -s ../CASA/%{_lib}/miCASA.jar %{buildroot}%{prefix}/%{_lib}/jmiCASA.jar
ln -s ../CASA/%{_lib}/Novell.CASA.miCASAWrapper.dll %{buildroot}%{prefix}/%{_lib}/Novell.CASA.miCASAWrapper.dll
ln -s ../CASA/%{_lib}/Novell.CASA.Common.dll %{buildroot}%{prefix}/%{_lib}/Novell.CASA.Common.dll
ln -s ../CASA/%{_lib}/Novell.CASA.CASAPolicy.dll %{buildroot}%{prefix}/%{_lib}/Novell.CASA.CASAPolicy.dll
ln -s ../CASA/%{_lib}/Novell.CASA.A-D.dll %{buildroot}%{prefix}/%{_lib}/Novell.CASA.A-D.dll
ln -s ../CASA/%{_lib}/Novell.CASA.DataEngines.GnomeKeyring.dll %{buildroot}%{prefix}/%{_lib}/Novell.CASA.DataEngines.GnomeKeyring.dll
ln -s ../CASA/%{_lib}/Novell.CASA.DataEngines.KWallet.dll %{buildroot}%{prefix}/%{_lib}/Novell.CASA.DataEngines.KWallet.dll
ln -s libkwallets_rw.so.%{version} %{buildroot}%{prefix}/CASA/%{_lib}/libkwallets_rw.so
ln -s libkwallets_rw.so.%{version} %{buildroot}%{prefix}/CASA/%{_lib}/libkwallets_rw.so.1
ln -s libad_gk.so.%{version} %{buildroot}%{prefix}/CASA/%{_lib}/libad_gk.so
ln -s libad_gk.so.%{version} %{buildroot}%{prefix}/CASA/%{_lib}/libad_gk.so.1
ln -s ../CASA/include/micasa.h %{buildroot}%{prefix}/include/micasa.h
ln -s ../CASA/include/micasa_mgmd.h %{buildroot}%{prefix}/include/micasa_mgmd.h
mkdir -p %{buildroot}/etc/profile.d
cp %{buildroot}%{prefix}/CASA/%{binsource}/novell-ncl-autologin.sh %{buildroot}/etc/profile.d
mkdir -p %{buildroot}/etc/init.d
cp %{buildroot}%{prefix}/CASA/%{binsource}/micasad %{buildroot}/etc/init.d
#%ifarch x86_64
#echo "/opt/novell/CASA/lib64/" >> /etc/ld.so.conf
#/sbin/ldconfig
#%else
#echo "/opt/novell/CASA/lib/" >> /etc/ld.so.conf
#/sbin/ldconfig
#%endif
%post
insserv /etc/init.d/micasad
perl -e '
my @fileList = ("/etc/pam.d/xdm", "/etc/pam.d/gdm", "/etc/pam.d/kdm", "/etc/pam.d/login", "/etc/pam.d/sshd");
for (my $j = 0; $j <= $#fileList; $j++)
{
my $filename = $fileList [$j];
if (-e $filename)
{
print "Adding PAM module to $filename\n";
my $auth_line_to_be_inserted = "auth required pam_micasa.so";
my $session_line_to_be_inserted = "session required pam_micasa.so";
open (FILE, "<$filename") || die ("Cannot open file reading");
my @data = <FILE>;
close (FILE);
my $auth_index = 0;
my $session_index = 0;
for (my $i = 0; $i <= $#data; $i++)
{
my $line = $data [$i];
if ($line =~ /^auth.*/)
{
$auth_index = $i;
}
if ($line =~ /^session.*/)
{
$session_index = $i;
}
}
open (FILE, ">$filename") || die ("Cannot open file for writing");
for (my $i = 0; $i <= $#data; $i++)
{
print FILE $data [$i];
if ($i == $auth_index)
{
print FILE $auth_line_to_be_inserted."\n";
}
if ($i == $session_index)
{
print FILE $session_line_to_be_inserted."\n";
}
}
}
}
'
%preun
perl -e '
my @fileList = ("/etc/pam.d/xdm", "/etc/pam.d/gdm", "/etc/pam.d/kdm", "/etc/pam.d/login", "/etc/pam.d/sshd" );
for (my $j = 0; $j <= $#fileList; $j++)
{
my $filename = $fileList [$j];
if (-e $filename)
{
print "Removing PAM module from $filename\n";
open (FILE, "<$filename") || die ("Cannot open file reading");
my @data = <FILE>;
close (FILE);
open (FILE, ">$filename") || die ("Cannot open file for writing");
for (my $i = 0; $i <= $#data; $i++)
{
my $line = $data [$i];
if ($line =~ /pam_micasa.so/)
{
}
else
{
print FILE $data [$i];
}
}
close (FILE);
}
}
'
insserv -r /etc/init.d/micasad
%clean
#rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%dir %{prefix}
%dir %{prefix}/CASA
%dir %{prefix}/%{_lib}
%dir %{prefix}/%{_lib}/*
%dir %{prefix}/CASA/%{_lib}
%dir %{prefix}/CASA/%{_lib}/*
%dir %{prefix}/%{binsource}
%dir %{prefix}/%{binsource}/*
%dir %{prefix}/CASA/%{binsource}
%dir %{prefix}/CASA/%{binsource}/*
%dir %{prefix}/CASA/doc
%dir %{prefix}/CASA/images
%dir %{prefix}/CASA/images/*
/etc/init.d/micasad
/%{_lib}/security/pam_micasa.so
%files devel
%defattr(-,root,root)
%{prefix}/include
%{prefix}/CASA/include
%{prefix}/CASA/%{_lib}/*.so
#%{prefix}/CASA/doc/miCASA_API_Guide.pdf
%changelog -n CASA