First, given that the package auto-added its binaries to lightdm.conf, it should make sure that those binaries that are not present anymore in lightdm.conf when removing them from disk. This is not a config file that is harmless if left over, this is a config that is broken because the binaries are no longer present.
Second, even after purging, lighdm.conf still contains the reference to the wrong binaries, so, purging doesn't help AT ALL.
This is a piece of code from the postrm script, which should do the right thing:
lightdm_orig_conf=/etc/lightdm/lightdm.conf
remove_hybrid_script () {
# Precise only!
if [ -s "$lightdm_orig_conf" ]; then
# Get the file lightdm_orig="$(cat $lightdm_orig_conf)"
echo "$lightdm_orig" | \
sed "/.*display-setup-script.*/d" \
> "$lightdm_orig_conf"
lightdm_orig="$(cat $lightdm_orig_conf)"
echo "$lightdm_orig" | \
sed "/.*display-stopped-script.*/d" \
> "$lightdm_orig_conf"
fi
}
The problem is that this script is limited to Precise: os_release="$(lsb_release -cs)"
if [ ! "$1" = "upgrade" ]; then
if [ "$os_release" = "precise" ]; then
# Remove the display-setup-script line remove_hybrid_script
fi
This has two problems:
1 - on the preinst (!) script this check is done differently:
add_hybrid_script () {
if [ "`lsb_release -r -s`" = "12.04" ]; then
# Precise does not support separate config files
if [ -s "$lightdm_orig_conf" ]; then
This means that if for some reason lsb_release is 12.04 but the name is not precise, then the undo doesn't really work.
2 - People can upgrade from precise to something else. So, if they were running 12.04 when they installed nvidia-prime and then upgraded to trusty or whatever and remove nvidia-prime, the lightdm.conf file is left broken.
Please make sure that you undo whatever was done, regardless of the currently running distribution. Also, if you are going to check for a specific fact for doing and undoing, it should be a the same fact, not a "it should be equivalent" fact.
Finally, the code in the preinst should actually be in the postinst, otherwise there's the risk that something might fail while unpacking and the lightdm.conf fiel will be left in a broken state.
Purging is not the answer here.
First, given that the package auto-added its binaries to lightdm.conf, it should make sure that those binaries that are not present anymore in lightdm.conf when removing them from disk. This is not a config file that is harmless if left over, this is a config that is broken because the binaries are no longer present.
Second, even after purging, lighdm.conf still contains the reference to the wrong binaries, so, purging doesn't help AT ALL.
This is a piece of code from the postrm script, which should do the right thing:
lightdm_ orig_conf= /etc/lightdm/ lightdm. conf hybrid_ script () { orig_conf" ]; then
lightdm_ orig="$ (cat $lightdm_ orig_conf) " setup-script. */d" \ orig_conf"
remove_
# Precise only!
if [ -s "$lightdm_
# Get the file
echo "$lightdm_orig" | \
sed "/.*display-
> "$lightdm_
echo "$lightdm_orig" | \
sed "/.*display-
> "$lightdm_
fi
}
The problem is that this script is limited to Precise:
os_release= "$(lsb_ release -cs)" setup-script line
remove_ hybrid_ script
if [ ! "$1" = "upgrade" ]; then
if [ "$os_release" = "precise" ]; then
# Remove the display-
fi
This has two problems:
1 - on the preinst (!) script this check is done differently:
add_hybrid_script () { orig_conf" ]; then
if [ "`lsb_release -r -s`" = "12.04" ]; then
# Precise does not support separate config files
if [ -s "$lightdm_
This means that if for some reason lsb_release is 12.04 but the name is not precise, then the undo doesn't really work.
2 - People can upgrade from precise to something else. So, if they were running 12.04 when they installed nvidia-prime and then upgraded to trusty or whatever and remove nvidia-prime, the lightdm.conf file is left broken.
Please make sure that you undo whatever was done, regardless of the currently running distribution. Also, if you are going to check for a specific fact for doing and undoing, it should be a the same fact, not a "it should be equivalent" fact.
Finally, the code in the preinst should actually be in the postinst, otherwise there's the risk that something might fail while unpacking and the lightdm.conf fiel will be left in a broken state.