#!/bin/bash


echo "Don't use this tool."
exit 1

#
# 업그레이드 완료 이후에, kernel rpm %posttrans 과정 중에 문제가 발생한다.
#
# 이 문제는 안녕 3에서의 문제가 아니라 CentOS 6_7 에서 CentOS 7로의 업그레이드 중에도
# 동일하게 발생한다. (문제는 복불복-영어로는 race condition-으로 발생한다는 것이다. --;)
#
# kernel 설치 후, %posttrans 과정 중,  new-kernel-pkg 로 부팅 이미지를 만드는 과정 중,
# 시스템의 grub1 의 설정을 제대로 처리하지 못하여 부팅에 필요한 모듈이 누락되는 문제가
# 있는 것으로 추측이 된다.
#
# 부팅이 안되서 확인이 불가한 것이 해결에 애로사항임. 작업 환경의 제약 때문에 다른 것도
# 할 것이 많고.. 일단 보류 한다.
#
#

list="gpg-pubkey
setup
basesystem
ncurses-base
glibc-common
glibc
bash
libcap
info
popt
db4
libsepol
chkconfig
bzip2-libs
nss-util
libstdc++
grep
shadow-utils
readline
libxml2
dbus-libs
lua
findutils
libuuid
libgpg-error
bzip2
psmisc
checkpolicy
cpio
libcap-ng
gpm-libs
gdbm
perl-libs
perl-Module-Pluggable
perl
pth
p11-kit
libgcrypt
libnih
file
libutempter
gmp
libusb
pinentry
net-tools
libss
diffutils
make
dash
groff
coreutils-libs
cracklib
coreutils
module-init-tools
redhat-logos
libpciaccess
nss
nss-tools
libedit
tcp_wrappers-libs
ethtool
numactl
keyutils-libs
openssl
libcurl
rpm-libs
openldap
gpgme
fipscheck-lib
w3m
ustr
slang
plymouth-core-libs
python
rpm-python
python-pycurl
newt-python
pkgconfig
glib2
grubby
dbus-glib
yum-plugin-fastestmirror
busybox
centos-release
iptables
iputils
initscripts
mdadm
device-mapper
libdrm
ntpdate
dracut
rsyslog
cyrus-sasl
cronie-anacron
crontabs
selinux-policy
kernel-firmware
GeoIP-data
bind-libs
irqbalance
selinux-policy-targeted
yum-cron
openssh-server
ntp
iwl5150-firmware
iwl6050-firmware
iwl6000g2a-firmware
iwl6000-firmware
readahead
yum-annyung
authconfig
ntsysv
sudo
audit
e2fsprogs
acl
annyung-release
jfbterm
iwl5000-firmware
ivtv-firmware
xorg-x11-drv-ati-firmware
atmel-firmware
iwl4965-firmware
iwl3945-firmware
rt73usb-firmware
ql23xx-firmware
rootfiles
openssh-clients
libgcc
tzdata
filesystem
vim-filesystem
nss-softokn-freebl
ncurses-libs
libattr
zlib
audit-libs
libacl
libcom_err
libselinux
sed
nspr
libidn
pcre
olibc
gawk
elfutils-libelf
file-libs
xz-libs
sqlite
cyrus-sasl-lib
libblkid
nss-softokn
procps
libselinux-utils
e2fsprogs-libs
which
sysvinit-tools
expat
perl-Pod-Escapes
perl-version
perl-Pod-Simple
libudev
libtasn1
p11-kit-trust
elfutils-libs
upstart
bc
MAKEDEV
snappy
gc
vim-minimal
tar
db4-utils
binutils
m4
ncurses
less
gzip
cracklib-dicts
pam
hwdata
plymouth-scripts
logrotate
nss-sysinit
ca-certificates
bridge-utils
pciutils-libs
mingetty
lzo
krb5-libs
libssh2
curl
rpm
gnupg2
mysql-libs
mariadb-libs
fipscheck
vim-common
libsemanage
newt
libffi
python-libs
pygpgme
python-urlgrabber
python-iniparse
gamin
shared-mime-info
libuser
yum-metadata-parser
yum
kbd-misc
policycoreutils
iproute
util-linux-ng
udev
device-mapper-libs
kpartx
plymouth
kbd
dracut-kernel
openssh
postfix
cronie
dhcp-common
kernel
GeoIP
bind-utils
dhclient
sysstat
kexec-tools
bfa-firmware
iwl100-firmware
b43-openfwwf
aic94xx-firmware
iwl1000-firmware
oops-firewall
passwd
grub
vim-enhanced
efibootmgr
nscd
tmpwatch
attr
gpg-pubkey
ql2400-firmware
ql2100-firmware
libertas-usb8388-firmware
ql2500-firmware
zd1211-firmware
rt61pci-firmware
ql2200-firmware
ipw2100-firmware
ipw2200-firmware
utf8-profile"

echo $list | sort > /root/an2-init-package-list


echo -n "1. Get AnNyung 3 upgrade repository configuration .. "

cd /etc/yum.repos.d >& /dev/null
curl -o AN3UP.repo http://mirror.oops.org/pub/AnNyung/2/plus/upgrade/AN3UP.repo >& /dev/null
res=$?

[ $res -ne 0 ] && echo "Failed" && exit 1

cat AN3UP.repo | grep "gpgcheck=1" >& /dev/null
res=$?

if [ $res -ne 0 ]; then
	rm -f AN3UP.repo
	echo "Failed"
	exit 1
fi

echo "Success"

yum clean all >& /dev/null

echo
echo

echo "2. Remove packages that added after installed AnNyung LInux 2"

alist=$(rpm -qa --qf '%{name}\n' 2> /dev/null)
for dpkg in $alist
do
	printf "  * %-20s .. " "$dpkg"
	cat /root/an2-init-package-list | grep $dpkg >& /dev/null
	res=$?
	if [ $res -ne 0 ]; then
		[ -z "$dlist" ] && dlist="$dpkg" || dlist="$dlist $dpkg"
		echo "will be removed"
	else
		echo "pass"
	fi
done

echo

[ -n "$dlist" ] && rpm -e --nodeps $dlist

echo
echo

echo -n "3. Downgrade packages which can't update to AnNyung 3 packages"
echo

yum -y downgrade grep-2.6.3-6.el6 vim* net-tools tzdata
rpm -Uhv --force http://mirror.oops.org/pub/AnNyung/2/plus/upgrade/x86_64/grubby-7.0.15-7.an2.x86_64.rpm >& /dev/null
rpm -q mariadb-libs >& /dev/null
res=$?

if [ $res -ne 0 ]; then
	rpm -e mysql-libs --nodeps >& /dev/null
	yum -y install mariadb-libs
fi

echo
echo

echo "4. Install AnNyung 3 upgrade utilities"
echo

yum -y install pyliblzma preupgrade-assistant-contents redhat-upgrade-tool

echo
echo

rm -f AN3UP.repo
cd - >& /dev/null

echo "5. Install RPM package keys for CentOS 7 and AnNyung 3"
echo
rpm --import http://centos.mirror.cdnetworks.com/7/os/x86_64/RPM-GPG-KEY-CentOS-7
rpm --import http://mirror.oops.org/pub/AnNyung/3/RPM-GPG-KEY-AnNyung-3
echo
echo





exit 0






echo
VER=$(preupg -l)
preupg -s ${VER}
res=$?

if [ $res -eq 0 ]; then
	centos-upgrade-tool-cli --network 7 \
		--instrepo http://ftp.daumkakao.com/centos/7/os/x86_64/ \
		--disablerepo "AN:core" \
		--disablerepo "AN:base" \
		--disablerepo "AN:addon" \
		--addrepo ANCore=http://mirror.oops.org/pub/AnNyung/3/core/x86_64/ \
		--addrepo ANBase=http://mirror.oops.org/pub/AnNyung/3/base/x86_64/ \
		--addrepo ANAddon=http://mirror.oops.org/pub/AnNyung/3/addon/x86_64/ \
		--addrepo ANXless=http://mirror.oops.org/pub/AnNyung/3/xless/x86_64/ \
		--cleanup-post
fi




