# -*-mic2-options-*- -f loop --pack-to=@NAME@.tar.gz -*-mic2-options-*-

# 
# Do not Edit! Generated by:
# kickstarter.py
# 

lang en_US.UTF-8
keyboard us
timezone --utc America/Los_Angeles
part / --fstype="ext4" --size=3500 --ondisk=mmcblk0 --label rootfs --fsoptions=defaults,noatime
part /opt --fstype="ext4" --size=512 --ondisk=mmcblk0 --label system-data --fsoptions=defaults,noatime
part /opt/usr --fstype="ext4" --size=3500 --ondisk=mmcblk0 --label user --fsoptions=defaults,noatime

rootpw tizen 
xconfig --startxonboot
bootloader  --timeout=3  --append="rw vga=current splash rootwait rootfstype=ext4"   --ptable=gpt --menus="install:Wipe and Install:systemd.unit=system-installer.service:test"

desktop --autologinuser=guest  
user --name guest  --groups audio,video --password 'tizen'


repo --name=common-wayland_armv7l --baseurl=http://download.tizen.org/snapshots/tizen/3.0.m2-common/@BUILD_ID@/repos/arm-wayland/packages/ --ssl_verify=no
repo --name=base_arm --baseurl=http://download.tizen.org/snapshots/tizen/3.0.m2-base/latest/repos/arm/packages/ --ssl_verify=no

%packages

# @ Generic Adaptation
linux-firmware
system-plugin
# @ Common Adaptation
meta-generic-adaptation
# @ Common Adaptation Artik Headless
account-common
alarm-server
alsa-utils
amd
anthy
app-core-common
app-core-efl
app-installers
app-svc
appcore-agent
appcore-widget
argos_watchdog
attr
audio-hal-ak4953
aul
badge
bash
bluetooth-firmware-bcm-artik
bluetooth-frwk
bluetooth-frwk-core
bluetooth-frwk-service
bluetooth-share
bluetooth-tools
bluez
boost-filesystem
boost-license
boost-program-options
boost-system
boost-thread
boot-animation
browser-provider
bundle
buxton2
bzip2
ca-certificates
ca-certificates-tizen
capi-appfw-alarm
capi-appfw-app-manager
capi-appfw-application
capi-appfw-package-manager
capi-base-common
capi-base-utils
capi-content-media-content
capi-media-audio-io
capi-media-camera
capi-media-codec
capi-media-controller
capi-media-image-util
capi-media-player
capi-media-recorder
capi-media-sound-manager
capi-media-streamer
capi-media-streamrecorder
capi-media-tone-player
capi-media-tool
capi-media-wav-player
capi-mediademuxer
capi-mediamuxer
capi-network-bluetooth
capi-network-bluetooth-test
capi-network-connection
capi-network-mtp
capi-network-nfc
capi-network-nsd
capi-network-smartcard
capi-network-wifi
capi-network-wifi-direct
capi-network-wifi-manager
capi-system-device
capi-system-info
capi-system-media-key
capi-system-runtime-info
capi-system-sensor
capi-system-system-settings
capi-telephony
capi-ui-efl-util
capi-web-url-download
cert-svc
connman
context
context-common
cordova-api
coregl
coreutils
crash-worker
cryptsetup
csr-framework
curl
cyad
cynara
cynara-db-migration
d2d-conv-manager
d2d-conv-manager-lib
data-control
db4
dbus
dbus-glib
dbus-libs
default-ac-domains
default-fonts-fc-sdk
default-fonts-sdk
device-manager-plugin-artik
device-mapper
deviced
deviced-tools
dlogutil
download-fonts-service
download-provider
drm-service-core-tizen
e-tizen-data
e2fsprogs
ecore
ector
edbus
edje
eet
eeze
efl
efl-config
efl-extension
efl-misc
efl-modules
efl-theme-tizen-common
efreet
eina
eio
eldbus
elementary
elementary-tools
embryo
emile
emotion
eo
ethumb
evas
eventsystem
filesystem
findutils
fontconfig
fribidi
fsck-msdos
gawk
gdbm
giflib
gio-branding-upstream
girepository
glib-networking
glibc
glibc-locale
gpg2
grep
gssdp
gst-libav
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-tizen
gst-plugins-ugly
gst-rtsp-server
gstreamer
gstreamer-utils
gum-utils
gumd
gzip
iniparser
iotcon
iotivity
iproute2
iptables
ise-default
ise-engine-anthy
ise-engine-default
ise-engine-hangul
ise-engine-sunpinyin
ise-engine-tables
isf
jsoncpp
key-manager
key-manager-pam-plugin
kmod
kmod-compat
krate
launchpad
libaccount-service
libacl
libalarm
libasound
libassuan
libatk
libatk-bridge-2_0-0
libatspi0
libattr
libaugeas
libavcodec
libavformat
libavutil
libblkid
libbluetooth-share
libbmp
libbz2
libcap
libcares
libcom_err
libcore-sync-client
libcryptsvc
libcsr-framework-client
libcurl
libcynara-admin
libcynara-client
libcynara-commons
libcynara-creds-commons
libcynara-creds-dbus
libcynara-creds-gdbus
libcynara-creds-socket
libcynara-monitor
libcynara-session
libdevice-node
libdeviced
libdlog
libdrm
libelf
libeom
libevdev
libexif
libexpat
libext2fs
libfeedback
libffi
libfreebl3
libfreetype
libgbm
libgcc
libgcrypt
libgio
libgirepository
libglib
libgmodule
libgmp
libgnutls
libgobject
libgpg-error
libgthread
libgum
libhangul
libharfbuzz
libhogweed
libhyphen
libicu
libidn
libinput
libiri
libjpeg
libjson
libjson-glib
libkey-manager-client
libkey-manager-common
libkmod
libkrate
libksba
liblbs-dbus
liblbs-location
libleveldb
libltdl
liblua
liblzma
libmagic
libmagic-data
libmedia-service
libmedia-thumbnail
libmedia-utils
libmm-camcorder
libmm-common
libmm-evas-renderer
libmm-fileinfo
libmm-player
libmm-session
libmm-sound
libmm-streamrecorder
libmm-utility
libmnl
libmount
libmtdev
libncurses
libnet-client
libnetfilter_queue
libnettle
libnfnetlink
libnl2
libnl3
libnsbmp
libnsd-dns-sd
libnsd-ssdp
libnss-security-manager
libogg
libomxil-e54xx
libopenssl
liborc
libpcre
libpcrecpp
libphonenumber
libpng
libpopt
libprotobuf9
libpth
libpulse
libpython
libre2
libreadline
librua
libscl-core
libscl-ui
libsecurity-manager-client
libsensord
libshortcut
libslp-db-util
libsmack
libsmartcols
libsndfile
libsoftokn3
libsolv
libsolv-tools
libsoup
libspeex
libspeexdsp
libsqlite
libstdc++
libstorage
libswscale
libsystemd
libtapi
libtasn1
libtbm
libtbm-exynos
libtcore
libtdm
libtdm-client
libtdm-drm
libtheora
libtiff
libtremolo
libtzplatform-config
libusb
libuuid
libvorbis
libvorbisenc
libwayland-client
libwayland-cursor
libwayland-egl
libwayland-extension-client
libwayland-extension-server
libwayland-server
libwayland-tbm-client
libwayland-tbm-server
libwebappenc
libwebsockets
libwidget_service
libwidget_viewer
libxkbcommon
libxml2
libxslt
libzypp
linux-firmware
lsof
manifest-parser
mdnsresponder
media-server
memps
message-port
meta-generic-adaptation
minicontrol
minizip
mmfw-sysconf-target-artik10
mmsvc-camera
mmsvc-player
mmsvc-recorder
model-config-artik
motion
murphy
murphy-glib
mused
neard
neardal
net-config
net-tools
nether
newfs-msdos
nfc-common-lib
nghttp2
nodejs
notification
nspr
nss
nss-certs
obexd
opencore-amr
opencv
openssh
org.tizen.dpm-toolkit
org.tizen.stt-engine-default
org.tizen.tts-engine-default
pacrunner
pacrunner-libproxy
pam
pam-locale
pam-modules-extra
perl
pims-ipc
pkg-config
pkgmgr
pkgmgr-client
pkgmgr-info
pkgmgr-info-parser
pkgmgr-installer
pkgmgr-server
pkgmgr-tool
privilege-checker
privilege-info
procps-ng
psmisc
pubkey-pinning
pulseaudio
pulseaudio-module-bluetooth
pulseaudio-modules-tizen
pulseaudio-utils
python
resourced
rfkill
rpm
rpm-security-plugin
sbc
sdbd
security-config
security-manager
security-manager-policy
security-privilege-manager
sed
sensord
service-adaptor
setup
shadow-utils-adm
shared-mime-info
smack
smartcard-service
smartcard-service-common
sqlite
starter
strace
stt
svi-data
sync-service
syspopup
syspopup-caller
system-plugin
system-plugin-exynos
system-plugin-u3
system-upgrade
systemd
systemd-user-helper
taglib
tar
terminfo-base
tizen-debug
tizen-locale
tizen-platform-config
tizen-platform-config-tools
tizen-release
tlm
tlm-config-common-singleseat
toybox
toybox-symlinks-dhcp
toybox-symlinks-dhcpd
tpk-backend
tree
ttrace
ttrace-extension
tts
tts-engine-rsc
tzdata
tzdata-update-parser
tzsh
unzip
update-alternatives
usbutils
util-linux
vc-engine-default
vconf-compat
vconf-internal-keys
vconf-internal-keys-config-profile_common
vim
vim-base
voice-control
voice-control-elm
vpnc
webapi-plugins
wgt-backend
wpa_supplicant
xdelta3
xdgmime
xkb-tizen-data
xkeyboard-config
xmlsec1
xmlsec1-openssl
xwalk-extensions-common
xz
yaca
zbar
zint
zip
zlib
zypper
# Others



-bluetooth-tools-no-firmware

%end



%post
#!/bin/sh
echo "#################### generic-adaptation.post ####################"

# fix TIVI-2291
sed -ri "s/(^blacklist i8042.*$)/#fix from base-general.post \1/" /etc/modprobe.d/blacklist.conf


#!/bin/sh
echo "############### common-adaptation.post ################"


#!/bin/sh
echo "#################### generic-base.post ####################"

test ! -e /opt/var && mkdir -p /opt/var
test -d /var && cp -arf /var/* /opt/var/
rm -rf /var
ln -snf opt/var /var

test ! -e /opt/usr/home && mkdir -p /opt/usr/home
test -d /home && cp -arf /home/* /opt/usr/home/
rm -rf /home
ln -snf opt/usr/home /home

build_ts=$(date -u +%s)
build_date=$(date -u --date @$build_ts +%Y%m%d_%H%M%S)
build_time=$(date -u --date @$build_ts +%H:%M:%S)

sed -ri \
	-e 's|@BUILD_ID[@]|@BUILD_ID@|g' \
	-e "s|@BUILD_DATE[@]|$build_date|g" \
	-e "s|@BUILD_TIME[@]|$build_time|g" \
	-e "s|@BUILD_TS[@]|$build_ts|g" \
	/etc/tizen-build.conf

# setup systemd default target for user session
cat <<'EOF' >>/usr/lib/systemd/user/default.target
[Unit]
Description=User session default target
EOF
mkdir -p /usr/lib/systemd/user/default.target.wants

# sdx: fix smack labels on /var/log
chsmack -a '*' /var/log

# create appfw dirs inside homes
function generic_base_user_exists() {
	user=$1
	getent passwd | grep -q ^${user}:
}

function generic_base_user_home() {
	user=$1
	getent passwd | grep ^${user}: | cut -f6 -d':'
}

function generic_base_fix_user_homedir() {
	user=$1
	generic_base_user_exists $user || return 1

	homedir=$(generic_base_user_home $user)
	mkdir -p $homedir/apps_rw
	for appdir in desktop manifest dbspace; do
		mkdir -p $homedir/.applications/$appdir
	done
	find $homedir -type d -exec chsmack -a User {} \;
	chown -R $user:users $homedir
	return 0
}

# fix TC-320 for SDK
. /etc/tizen-build.conf
[ "${TZ_BUILD_WITH_EMULATOR}" == "1" ] && generic_base_fix_user_homedir developer

# Add info.ini for system-info CAPI (TC-2047)
/etc/make_info_file.sh

#!/bin/sh
echo "############### common-base.post ################"

######### multiuser mode: create additional users and fix their homedirs
if ! generic_base_user_exists owner; then
	gum-utils --offline --add-user --username=owner --usertype=admin --usecret=tizen
fi

for user in alice bob carol guest; do
	if ! generic_base_user_exists $user; then
		gum-utils --offline --add-user --username="$user" --usertype=normal --usecret=tizen
	fi
done

######### add 'guest' user that runs bt-service daemon to vconf_bt group
function mygetid() { sed '/^'"$1"':/!d;s/^\([^:]*:\)\{2\}\([^:]*\):.*$/\2/' "$2"; }
function mygetuid() { mygetid "$1" /etc/passwd; }
function mygetgid() { mygetid "$1" /etc/group; }

gum-utils --offline --add-member --gid=$(mygetgid vconf_bt) --mem_uid=$(mygetuid guest)


#!/bin/sh
echo "#################### generic-wayland.post ####################"


#!/bin/sh
echo "#################### common-wayland.post ##################"

# add users to display group
for user in alice bob carol guest developer owner; do
	if generic_base_user_exists $user; then
		/usr/sbin/groupmod -A $user display
	fi
done

#{ Add installed apps for tizen to launcher if not present
dst="/usr/share/applications/tizen/launcher.conf"

if [ -w "$dst" ] ; then
   ls /usr/share/applications/tizen/*.desktop \
   | while read src; do
        grep "$src" "$dst" \
            || { [ ! -r "$src" ] || echo "$src" >> "$dst" ; }

    done
fi

#}

# tag the background image with the current snapshot id and change the background image
mv /opt/share/settings/Wallpapers/home_001.png /opt/share/settings/Wallpapers/home_005.png
ln -fs /opt/share/settings/Wallpapers/home_003.png /opt/share/settings/Wallpapers/home_001.png
/usr/bin/mark_image.py /opt/share/settings/Wallpapers/home_001.png "Tizen 3.0 M2 Common: @BUILD_ID@" ffffff 10 60 95 70


#!/bin/sh
echo "#################### generic-middleware.post ####################"


#!/bin/sh
echo "############### common-middleware.post ################"


#!/bin/sh
echo "#################### generic-applications.post ####################"


#!/bin/sh
echo "#################### generic-bluetooth.post ####################"


#!/bin/sh
echo "#################### generic-multimedia.post ####################"


#!/bin/sh
echo "#################### generic-desktop-applications.post ####################"

# depends on generic-base functions
function generic_desktop_applications_fix_userhome() {
	user=$1

	generic_base_user_exists $user || return 1
	homedir=$(generic_base_user_home $user)

	echo "Fix app_info.db of $user"
	chown -R $user:users $homedir/.applications/dbspace/
}

# fix TC-320 for SDK
. /etc/tizen-build.conf
[ "${TZ_BUILD_WITH_EMULATOR}" == "1" ] && generic_desktop_applications_fix_userhome developer


#!/bin/sh
echo "############### common-desktop-applications.post ################"

# call function defined in meta-generic
for user in alice bob carol guest developer; do
	generic_desktop_applications_fix_userhome $user
done



#!/bin/sh
echo "#################### generic-crosswalk.post ####################"


#!/bin/sh
echo "############### common-crosswalk.post ################"

# start wrt widgets preinstall
prepare_widgets.sh


#!/bin/sh
echo "#################### generic-qt5.post ####################"


#!/bin/sh
echo "############### common-qt5.post ################"

list='
qt5-qtdeclarative-examples
qt5-cinematic-experience
'

dst="/usr/share/applications/tizen/launcher.conf"

if [ -w "$dst" ] ; then
    for app in $list ; do
        src="/usr/share/applications/$app.desktop"

        grep "$src" "$dst" \
            || { [ ! -r "$src" ] || echo "$src" >> "$dst" ; }

    done
fi

#!/bin/sh
echo "#################### generic-security.post ####################"

if [ -e /usr/share/security-config/set_capability ]; then
	echo 'Give capabilities to daemons via set_capability from security-config package'
	/usr/share/security-config/set_capability
fi

#!/bin/sh
echo "#################### generic-fixed-multiuser.post ####################"

fmu_path=/usr/share/fixed_multiuser
fmu_script=${fmu_path}/fixed-multi-user.sh

if [ -d ${fmu_path} ]
then
	if [ -e ${fmu_script} ]
	then
		/bin/sh ${fmu_path}/fixed-multi-user.sh
	fi

	rm -rf ${fmu_path}
fi


%end

%post --nochroot
####################### buildname.nochroot #######################
if [ -n "$IMG_NAME" ]; then
	echo "BUILD_ID=$IMG_NAME" >> $INSTALL_ROOT/etc/tizen-release
	echo "BUILD_ID=$IMG_NAME" >> $INSTALL_ROOT/etc/os-release
	echo "$IMG_NAME @BUILD_ID@" >>$INSTALL_ROOT/etc/tizen-snapshot
fi


%end
