#! /bin/bash

# Step script for Debian major version upgrade for fuss
# 
# Copyright (C) 2025-2026 FUSS Project <info@fuss.bz.it>
# Authors: Simone Piccardi <piccardi@truelite.it>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program or from the site that you downloaded it
# from; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA  02111-1307   USA


# setup Debian noninteractive
export DEBIAN_FRONTEND=noninteractive

# start logging actions
echo "Step $STEP: Starting package cleanup and unneeded service stop"
echo "=========================================================="
echo

. $SCRIPTS_DIR/functions.sh

check_already_debian13

#
# cleanup rc packages
#
RC_PACKAGES=$(dpkg -l | grep -v ^ii | awk '{print $2}'|tail -n +6)
echo
echo "# Removing the following packages in rc status: $RC_PACKAGES"
echo
apt-get --yes remove --purge $RC_PACKAGES
if [ $? != 0 ]; then
    echo "#   Failed cleanup packages in 'rc' status"
    echo FAILED > $STEPRES
    exit 1
fi

#
# remove dismissed and problematic packages (and those from external sources)
# needed ones will be reistalled by fuss-client -U
# 
echo
echo "# removing possible problematic packages"
echo
PACKAGE_LIST="
google-chrome-stable mpg321 mc-data gnome-packagekit
gimp-plugin-registry gimp-gutenprint nautilus-data tldr
"
apt --yes purge $PACKAGE_LIST
# save exit result
if [ $? != 0 ]; then
    echo "#   Failed problematic package removal"
    echo FAILED > $STEPRES
    exit 1
fi

echo
echo "# removing packages dismissed in Debian 13"
echo
PACKAGE_LIST="
anjuta autogen autogen-doc bodr darcula devhelp-common fonts-liberation2
fonts-osifont freecad-common gdisk gnumeric-common groovy intltool ivy
kactivities-bin kdoctools5 kinit kpeople-vcard krita-gmic lp-solve 
qstopmotion plasma-framework pitivi obs-studio obs-plugins openmpi-common
youtube-dl valac-0.56-vapi valac-bin squeak-vm scratch shiboken2 rtmpdump
"
apt --yes purge $PACKAGE_LIST
# save exit result
if [ $? != 0 ]; then
    echo "#   Failed dismissed package removal"
    echo FAILED > $STEPRES
    exit 1
fi

#
# autopurge unneded packages after removal
#
echo
echo "# Purging unneded packages after removal"
echo
apt --yes autopurge
if [ $? != 0 ]; then
    echo "#   Failed apt autopurge"
    echo FAILED > $STEPRES
    exit 1
fi

#
# Stopping services and login step script
#
echo
echo "# Stopping lightdm and graphic session"
echo
systemctl stop lightdm.service
# save exit result
if [ $? != 0 ]; then
    echo "#   Failed stopping lightdm.service"
    echo FAILED > $STEPRES
    exit 1
fi

# ending with all OK
echo PASSED > $STEPRES
