David Nusinow wrote:
> 3) Does not warn the user to install autodetection tools if they aren't
> present
Let me share some code with you.
# X needs three packages installed before its debconf config is run
# to make it do hardware autodetection. The only way to make sure these
# are installed properly is to install them now, before packages are
# selected. This way, even if the user picks xserver-xfree86 in
# aptitude and installs using aptitude, they will be available.
for pkg in discover mdetect read-edid ; do
if ! dpkg --get-selections | grep "$pkg" | grep -q install; then
extra="$pkg $extra"
fi
done
if [ "$extra" ] ; then
apt-get -y -f install $extra >/dev/null 2>&1 || true
# They are removed later on if it looks like X was not selected.
echo $extra > $TMPDIR/tmp-Xhack
fi
...
# If X was not installed, remove the three hardware detection
# programs. Of course, this fails if the user manually picked
# to install these, or wants them installed for some other reason.
# But I cannot help that.
if ! dpkg --get-selections | grep xserver-xfree86 | grep -q install; then
if [ -f $TMPDIR/tmp-Xhack ] ; then
extra=`cat $TMPDIR/tmp-Xhack`
dpkg --purge $extra >/dev/null 2>&1 || true
rm $TMPDIR/tmp-Xhack
fi
fi
This is the ugliest specal case in base-config for any package, and I would
love to remove it. if you are redesigning the X config tool, please consider
putting it in a package that depends on read-edid and mdetect, and deferring
the configuration to the postinst. Preconfiguration is not worth the pain.
I would also hope to see an X config that did more autoconfiguration,
perhaps by using X --config, if that actually mostly works in newer versions
of X.
--
see shy jo
Attachment:
signature.asc
Description: Digital signature