Name: likewise-open
Summary: Likewise Open
Version: 6.2.11.4
Release: 3%{?dist}
Group: Development/Libraries
Vendor: VMware, Inc.
License: GPL 2.0,LGPL 2.1
URL: https://github.com/vmware/likewise-open
Source0: %{name}-%{version}.tar.gz
%define sha1 likewise-open=6aa4cf11de6747d5f8940666c21adc3e1f7b6a4b
Distribution: Photon
Requires: Linux-PAM
Requires: (coreutils >= 8.22 or toybox)
Requires: /bin/grep
Requires: krb5 >= 1.12
Requires: libxml2
Requires: haveged >= 1.9
Requires: openldap >= 2.4
Requires: openssl >= 1.0.1
Requires: (procps-ng or toybox)
Requires: /bin/sed
Requires: sqlite-libs
BuildRequires: Linux-PAM-devel
BuildRequires: e2fsprogs-devel
BuildRequires: krb5-devel >= 1.12
BuildRequires: libxml2-devel
BuildRequires: openldap >= 2.4
BuildRequires: openssl-devel >= 1.0.1
BuildRequires: sqlite-devel
%define _likewise_prefix /opt/likewise
%define _likewise_bin %{_likewise_prefix}/bin
%define _likewise_sbin %{_likewise_prefix}/sbin
%package devel
Summary: Likewise Open (development)
Group: Development/Libraries
Requires: likewise-open = %{version}-%{release}
%description
Likewise Open 6.1 LWIS
%description devel
This package provides files for developing against the Likewise APIs
%prep
%setup -q
%build
# hack against glibc-2.26 to avoid getopt declaration mismatch
sed -i '/stdio.h/a#define _GETOPT_CORE_H 1' dcerpc/demos/echo_server/echo_server.c
cd release
export CWD=`pwd`
export LW_BUILD_PHOTON=1
export LW_FEATURE_LEVEL="auth"
export LSA_RPC_SERVERS="yes"
export LW_DEVICE_PROFILE="photon"
export CFLAGS="-Wno-error=unused-but-set-variable -Wno-error=implicit-function-declaration -Wno-error=sizeof-pointer-memaccess -Wno-error=unused-local-typedefs -Wno-error=pointer-sign -Wno-error=address -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-misleading-indentation"
../configure --prefix=/opt/likewise \
--libdir=/opt/likewise/lib64 \
--datadir=/opt/likewise/share \
--datarootdir=/opt/likewise/share \
--build-isas=x86_64 \
--lw-bundled-libs='libedit' \
--enable-vmdir-provider=yes \
--disable-static
make
%install
mkdir -p %{buildroot}
mv release/stage/* %{buildroot}
install -d $RPM_BUILD_ROOT/var/lib/likewise/db
install -d $RPM_BUILD_ROOT/var/lib/likewise/rpc
find %{buildroot} -name '*.in' -delete
find %{buildroot} -name '*.la' -delete
find %{buildroot} -name '*.a' -delete
%pre
#
# Save pre-existing mech file for later concatentation to installed mech file
#
if [ -f /etc/gss/mech ]; then
cp /etc/gss/mech /tmp/gss-mech-tmp
fi
case "$1" in
1)
if [ -n "`pidof lwsmd`" ]; then
echo "Error: Likewise Service Manager detected. Exiting."
exit 1
fi
;;
esac
%post
#
# Merge saved off mech file with installed mech file
#
if [ -f /tmp/gss-mech-tmp ]; then
cat /etc/gss/mech >> /tmp/gss-mech-tmp
grep '^[a-zA-Z0-9]' /tmp/gss-mech-tmp | sort -u > /etc/gss/mech
rm -f /tmp/gss-mech-tmp
fi
case "$1" in
1)
/bin/systemctl enable lwsmd.service >/dev/null 2>&1
if [ $? -ne 0 ]; then
/bin/ln -s /lib/systemd/system/lwsmd.service /etc/systemd/system/multi-user.target.wants/lwsmd.service
fi
try_starting_lwregd_svc=true
if [ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ]; then
try_starting_lwregd_svc=false
fi
# handle installs when systemd might not be available (containers)
/bin/systemctl >/dev/null 2>&1
if [ $? -ne 0 ]; then
try_starting_lwregd_svc=false
fi
if [ $try_starting_lwregd_svc = true ]; then
/bin/systemctl daemon-reload
/bin/systemctl start lwsmd.service
echo "Waiting for lwreg startup."
while( test -z "`%{_likewise_prefix}/bin/lwsm status lwreg | grep standalone:`" )
do
echo -n "."
sleep 1
done
echo "ok"
for file in %{_likewise_prefix}/share/config/*.reg; do
echo "Installing settings from $file..."
%{_likewise_bin}/lwregshell import $file
done
%{_likewise_bin}/lwsm -q refresh
sleep 2
%{_likewise_bin}/lwsm start lsass
else
started_lwregd=false
if [ -z "`pidof lwsmd`" ]; then
%{_likewise_sbin}/lwregd &
sleep 5
started_lwregd=true
fi
for file in %{_likewise_prefix}/share/config/*.reg; do
echo "Installing settings from $file..."
%{_likewise_bin}/lwregshell import $file
done
if [ $started_lwregd = true ]; then
kill -TERM `pidof lwregd`
wait
fi
fi
;;
2)
## Upgrade
try_starting_lwregd_svc=true
if [ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ]; then
try_starting_lwregd_svc=false
fi
# handle upgrades when systemd might not be available (containers)
/bin/systemctl >/dev/null 2>&1
if [ $? -ne 0 ]; then
try_starting_lwregd_svc=false
fi
if [ $try_starting_lwregd_svc = true ]; then
[ -z "`pidof lwsmd`" ] && /bin/systemctl start lwsmd.service
echo "Waiting for lwreg startup."
while( test -z "`%{_likewise_prefix}/bin/lwsm status lwreg | grep standalone:`" )
do
echo -n "."
sleep 1
done
echo "ok"
for file in %{_likewise_prefix}/share/config/*.reg; do
echo "Upgrading settings from $file..."
%{_likewise_bin}/lwregshell import $file
done
%{_likewise_bin}/lwsm -q refresh
sleep 2
%{_likewise_bin}/lwsm stop lwreg
%{_likewise_bin}/lwsm start lsass
else
started_lwregd=false
if [ -z "`pidof lwsmd`" ]; then
%{_likewise_sbin}/lwregd &
sleep 5
started_lwregd=true
fi
for file in %{_likewise_prefix}/share/config/*.reg; do
echo "Upgrading settings from $file..."
%{_likewise_bin}/lwregshell import $file
done
if [ $started_lwregd = true ]; then
kill -TERM `pidof lwregd`
wait
fi
fi
;;
esac
%preun
#
# Save off a copy of gss/mech when it contains entries other than ntlm
#
if [ -f /etc/gss/mech ]; then
if [ `grep -c -e '^[^n][^t][^l][^m]' /etc/gss/mech` -gt 0 ]; then
cp /etc/gss/mech /tmp/gss-mech-tmp
fi
fi
if [ "$1" = 0 ]; then
%{_likewise_bin}/domainjoin-cli configure --disable pam
%{_likewise_bin}/domainjoin-cli configure --disable nsswitch
%{_likewise_bin}/lwsm stop lwreg
/bin/systemctl stop lwsmd.service
/bin/systemctl disable lwsmd.service
if [ -f /etc/systemd/system/lwsmd.service ]; then
/bin/rm -f /etc/systemd/system/lwsmd.service
fi
fi
%postun
#
# Just remove the ntlm section added by Likewise.
#
if [ -f /tmp/gss-mech-tmp ]; then
mkdir -p /etc/gss
cat /tmp/gss-mech-tmp | sed '/^ntlm/d' > /etc/gss/mech
#
# Remove this file if it is empty; ntlm was the only mech entry.
#
if [ ! -s /etc/gss/mech ]; then
rm -rf /etc/gss
fi
rm -f /tmp/gss-mech-tmp
fi
%clean
rm -rf %{buildroot}/*
%files
%defattr(-,root,root)
%exclude /etc/krb5.conf.default
/opt/likewise/bin/*
/opt/likewise/sbin/*
/opt/likewise/data/VERSION
/opt/likewise/share/config/*
/opt/likewise/lib64/*.so.*
/etc/gss/*
/lib/systemd/system/*
/etc/likewise/*
/lib64/libnss_lsass.so.*
/lib64/security/pam_lsass.so
/usr/lib64/gss/*.so
/opt/likewise/lib64/lwsm-loader/*.so
/opt/likewise/lib64/*.so
/opt/likewise/lib64/krb5/plugins/libkrb5/liblwnet_service_locator.so
%dir /var/lib/likewise
%dir /var/lib/likewise/db
%dir /var/lib/likewise/rpc
%files devel
%defattr(-,root,root)
/opt/likewise/include/*
/opt/likewise/lib64/pkgconfig/libedit.pc
%changelog
* Mon Sep 18 2017 Alexey Makhalov <amakhalov@vmware.com> 6.2.11.4-3
- Requires coreutils/procps-ng or toybox, /bin/grep, /bin/sed
* Thu Aug 24 2017 Alexey Makhalov <amakhalov@vmware.com> 6.2.11.4-2
- Fix compilation issue for glibc-2.26
* Wed Aug 09 2017 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 6.2.11.4-1
- Update to 6.2.11.4.
* Wed Mar 29 2017 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 6.2.11-1
- Initial - spec modified for Photon from likewise-open git repo.