CASA/shsrc/lshsrc/CASA.spec

378 lines
14 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
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 can use CASA (Common Authnetication Services Adapter)
for credential storage and signle sign on.
%package gui
Summary: The CASA Console Utility
Group: Productivity/Other
Requires: CASA = %{version}-%{release} gtk-sharp >= 1.0.9
Provides: CASA-gui
%description gui
This package contains the CASA (Common Authnetication Services Adapter)
Management application that allows you to manage credentials within CASA
and for your kwallet gnome keyring. Additionally, you can also link secrets
to one another.
%prep
%setup -q
%ifarch x86_64
%define binsource bin64
%else
%define binsource bin
%endif
%build
export PATH=.:$PATH
mk-cai-all
mkdir -p %{buildroot}%{prefix}
mkdir %{buildroot}%{prefix}/CASA
mkdir %{buildroot}%{prefix}/CASA/%{_lib}
mkdir %{buildroot}%{prefix}/CASA/%{binsource}
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/CASAManager.exe %{buildroot}%{prefix}/CASA/%{binsource}
install -m 755 c_gui/CASAManager.sh %{buildroot}%{prefix}/CASA/%{binsource}
install -m 755 c_gui/CASAManager.desktop %{buildroot}%{prefix}/CASA/
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}/%{binsource}
install -d %{buildroot}%{prefix}/include
install -d %{buildroot}%{prefix}/CASA/%{_lib}
install -d %{buildroot}%{prefix}/CASA/%{binsource}
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}/%{_lib}/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 ../CASA/%{_lib}/libkwallets_rw.so %{buildroot}%{prefix}/%{_lib}/libkwallets_rw.so
ln -s ../CASA/%{_lib}/libkwallets_rw.so.1 %{buildroot}%{prefix}/%{_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/%{_lib}/libad_gk.so %{buildroot}%{prefix}/%{_lib}/libad_gk.so
ln -s ../CASA/%{_lib}/libad_gk.so.1 %{buildroot}%{prefix}/%{_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
# autologin
#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
%post
if [ $1 -eq 1 ]
then
insserv /etc/init.d/micasad
%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
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";
}
}
}
}
'
fi
%preun
if [ $1 -eq 0 ]
then
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);
}
}
'
perl -e '
my $filename = "/etc/ld.so.conf";
if (-e $filename)
{
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 =~ /CASA/)
{
}
else
{
print FILE $data [$i];
}
}
close (FILE);
}
'
/sbin/ldconfig
insserv -r /etc/init.d/micasad
fi
%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}/CASA/%{_lib}/libmicasa.so.%version
%dir %{prefix}/CASA/%{_lib}/libmicasa.so
%dir %{prefix}/CASA/%{_lib}/libmicasa.so.1
%dir %{prefix}/CASA/%{_lib}/libjmicasa.so.%version
%dir %{prefix}/CASA/%{_lib}/libjmicasa.so
%dir %{prefix}/CASA/%{_lib}/libjmicasa.so.1
%dir %{prefix}/CASA/%{_lib}/Novell.CASA.miCASAWrapper.dll
%dir %{prefix}/CASA/%{_lib}/Novell.CASA.Common.dll
%dir %{prefix}/%{_lib}/libmicasa.so
%dir %{prefix}/%{_lib}/libmicasa.so.1
%dir %{prefix}/%{_lib}/libjmicasa.so
%dir %{prefix}/%{_lib}/libjmicasa.so.1
%dir %{prefix}/%{_lib}/Novell.CASA.miCASAWrapper.dll
%dir %{prefix}/%{_lib}/Novell.CASA.Common.dll
%dir %{prefix}/%{binsource}
%dir %{prefix}/CASA/%{binsource}
%{prefix}/CASA/%{binsource}/micasad
%{prefix}/CASA/%{binsource}/micasad.sh
%{prefix}/CASA/%{binsource}/micasad.exe
%{prefix}/%{binsource}/micasad
%{prefix}/%{binsource}/micasad.sh
%{prefix}/%{binsource}/micasad.exe
%dir %{prefix}/CASA/doc
/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
%files gui
%defattr(-,root,root)
%dir %{prefix}/CASA/%{binsource}/
%{prefix}/CASA/%{binsource}/CASAManager.sh
%{prefix}/CASA/%{binsource}/CASAManager.exe
%{prefix}/CASA/CASAManager.desktop
%dir %{prefix}/CASA/%{_lib}/
%{prefix}/CASA/%{_lib}/libad_gk.so.%version
%{prefix}/CASA/%{_lib}/libad_gk.so
%{prefix}/CASA/%{_lib}/libad_gk.so.1
%{prefix}/CASA/%{_lib}/libkwallets_rw.so.%version
%{prefix}/CASA/%{_lib}/libkwallets_rw.so
%{prefix}/CASA/%{_lib}/libkwallets_rw.so.1
%{prefix}/CASA/%{_lib}/Novell.CASA.A-D.dll
%{prefix}/CASA/%{_lib}/Novell.CASA.CASAPolicy.dll
%{prefix}/CASA/%{_lib}/Novell.CASA.DataEngines.GnomeKeyring.dll
%{prefix}/CASA/%{_lib}/Novell.CASA.DataEngines.KWallet.dll
%{prefix}/%{_lib}/libad_gk.so
%{prefix}/%{_lib}/libad_gk.so.1
%{prefix}/%{_lib}/libkwallets_rw.so
%{prefix}/%{_lib}/libkwallets_rw.so.1
%{prefix}/%{_lib}/Novell.CASA.A-D.dll
%{prefix}/%{_lib}/Novell.CASA.CASAPolicy.dll
%{prefix}/%{_lib}/Novell.CASA.DataEngines.GnomeKeyring.dll
%{prefix}/%{_lib}/Novell.CASA.DataEngines.KWallet.dll
%dir %{prefix}/CASA/images
%dir %{prefix}/CASA/images/*
%changelog -n CASA