File kiwi-config-openSUSE.spec of Package kiwi-config-openSUSE
#
# spec file for package kiwi-config-openSUSE
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: kiwi-config-openSUSE
BuildRequires: fdupes
BuildRequires: kiwi-desc-isoboot
BuildRequires: kiwi-desc-oemboot
BuildRequires: kiwi-doc
BuildRequires: kiwi-tools
BuildRequires: libxml2-tools
BuildRequires: libxslt
BuildRequires: skelcd-control-openSUSE
BuildRequires: skelcd-openSUSE-CD
BuildRequires: xdm
BuildRequires: yast2-installation
#opensuse-gnomequick_en-pdf opensuse-kdequick_en-pdf
BuildRequires: jing
BuildRequires: kiwi
BuildRequires: yast2-country
Summary: KDE live CD
License: BSD-3-Clause
Group: System/Boot
Version: 12.3
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source1: COPYING
Source2: config-hal.patch
Source3: config.sh
Source4: config.xml.in
Source8: ifcfg-eth0
Source9: isopatch.sh.in
Source10: README
Source11: correct_live_for_reboot
Source12: correct_live_install
Source16: langset.service
Source17: 99-ignore-live-usb.fdi
Source19: config-firstboot.patch
Source20: geturls.xsl
Source22: getcountrydata.ycp
Source23: langset.sh
Source26: xdm-liveinstall.patch
Source27: SoftLocks
Source28: clicfs.service
Source30: GPL-2.0.txt
Source31: gpl-3.0.txt
ExcludeArch: ia64 ppc64 s390x s390 ppc
%description
The package contains various kiwi configs for openSUSE live media
%prep
%setup -T -c
testdir=$(mktemp -d)
install -D /usr/lib/YaST2/startup/YaST2.call $testdir/usr/lib/YaST2/startup/YaST2.call
install -D /etc/init.d/xdm $testdir/etc/init.d/xdm
cd $testdir
patch -p0 < %{SOURCE26}
%build
kiwiversion=12.3
BASEDIR=$PWD
localedir=`mktemp -d`
OUTPUTDIR=$localedir/ /usr/lib/YaST2/bin/y2base %{SOURCE22} UI
pushd $localedir
for i in *.UTF-8; do
mv $i ${i/.UTF-8/}
done
popd
for config in livecd-kde livecd-gnome usb-kde usb-gnome livecd-x11 usb-x11; do
cd $BASEDIR
mkdir $config
cd $config
desktop=`echo $config | cut -d- -f2`
type=`echo $config | cut -d- -f1`
if test $type = usb; then
#sed -i -e "s,yast2-live-installer,yast2-firstboot," wanted.list
#sed -i -e "s,release-livecd,release-usb," wanted.list
othertype=livecd
else
othertype=usb
fi
install -m 755 %{SOURCE3} config.sh
if test $desktop = kde; then
echo 'baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER kdm4' >> config.sh
fi
if test $desktop = gnome; then
echo 'baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER gdm' >> config.sh
echo 'baseUpdateSysConfig /etc/sysconfig/windowmanager DEFAULT_WM gnome' >> config.sh
fi
if test $desktop = x11; then
echo 'baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER lightdm' >> config.sh
echo 'baseUpdateSysConfig /etc/sysconfig/windowmanager DEFAULT_WM xfce' >> config.sh
fi
if test $type = usb; then
echo 'baseUpdateSysConfig /etc/sysconfig/clock TIMEZONE UTC' >> config.sh
fi
echo '/usr/bin/systemctl -f enable NetworkManager.service' >> config.sh
grep -v " type:$othertype " %{SOURCE4} | \
xmllint --format - > config.xml
if test $type = usb; then
sed -i -e 's,#USB ,,' config.sh
fi
sed -i -e "s,@CONFIG@,/usr/share/openSUSE-kiwi/$config," config.xml
sed -i -e "s,@VERSION@,$kiwiversion," config.xml
sed -i -e "s,@FLAVOR@,$config," config.xml
volid="openSUSE 12.3 Live"
case $desktop in
gnome)
sed -i -e "s,@PLIST@,GNOME-cd," config.xml
volid="openSUSE 12.3 GNOME Live"
;;
kde)
sed -i -e "s,@PLIST@,KDE-cd," config.xml
volid="openSUSE 12.3 KDE Live"
;;
x11)
sed -i -e "s,@PLIST@,X11-cd," config.xml
sed -i -e '/yast2-live-installer/d' config.xml
;;
esac
label=`echo "$volid" | sed -e 's, ,_,g'`
if test $type = usb; then
sed -i -e "s,yast2-live-installer,yast2-firstboot," config.xml
fi
sed -i -e "s,@VOLID@,$volid,; s,@LABEL@,$label," config.xml
%ifarch x86_64
sed -i -e "s,@BOOTKERNEL@,desktop," config.xml
%else
sed -i -e "s,@BOOTKERNEL@,std," config.xml
sed -i -e 's,firmware="uefi",,' config.xml
%endif
jing /usr/share/kiwi/modules/KIWISchema.rng config.xml
sed -e "s,^desktop=,desktop=$desktop," %{SOURCE9} > isopatch.sh
#test -z "$out" # jing is a great tool always exit 0
mkdir config-cdroot
cd config-cdroot
install -m 644 %{SOURCE30} GPLv2.txt
install -m 644 %{SOURCE31} GPLv3.txt
tar czf ../config-cdroot.tgz *
cd ..
rm -rf config-cdroot
mkdir -p root/var/lib/livecd
cd root
install -m 644 /CD1/license.tar.gz .
mkdir rpmkeys
cp /CD1/gpg-pubkey* rpmkeys
install -m 644 -D /CD1/control.xml etc/YaST2/control.xml
/usr/bin/xsltproc %{SOURCE20} /CD1/control.xml > var/lib/livecd/geturls.sh
mkdir -p var/lib/zypp
install -m 644 %{SOURCE27} var/lib/zypp/SoftLocks
echo 0123456-7890-$desktop-$type-0123456 > var/lib/zypp/AnonymousUniqueId
if test $type = usb; then
cp %{SOURCE19} var/lib/livecd/config-firstboot.patch
mkdir -p var/lib/YaST2
touch var/lib/YaST2/reconfig_system
# still needed due to a bug in yast2-installation
touch etc/reconfig_system
touch etc/dmidecode.md5
fi
install -D -m 644 %{SOURCE8} etc/sysconfig/network/ifcfg-eth0
cp -a $localedir etc/langset
install -m 755 %{SOURCE23} etc/langset.sh
install -D -m 755 %{SOURCE16} usr/lib/systemd/system/langset.service
install -D -m 755 %{SOURCE11} usr/bin/correct_live_for_reboot
install -D -m 755 %{SOURCE12} usr/bin/correct_live_install
install -D -m 644 %{SOURCE2} etc/YaST2/policy.patch
install -D -m 644 %{SOURCE28} etc/systemd/system/clicfs.service
if test $desktop != x11; then
install -m 644 %{SOURCE26} etc/YaST2/liveinstall.patch
fi
mkdir -p var/lib/zypp/
echo livecd-$desktop > var/lib/zypp/LastDistributionFlavor
arch=%{_target_cpu}
plfile=/usr/share/suse/packages/$config-$arch
if test -f $plfile; then
mkdir -p var/cache/preload
gzip -c $plfile > var/cache/preload/trace.gz
fi
done
%install
mkdir -p %{buildroot}/usr/share/openSUSE-kiwi
mv * %{buildroot}/usr/share/openSUSE-kiwi
install -m 644 -D %{SOURCE1} %{buildroot}/%_docdir/%name/COPYING
install -m 644 -D %{SOURCE10} %{buildroot}/%_docdir/%name/README
%fdupes %{buildroot}/usr/share/openSUSE-kiwi
%files
%defattr(-, root, root)
%doc %_docdir/%name
/usr/share/openSUSE-kiwi
%changelog