WIP: support Linux Mint and LMDE

Without this patch, Linux Mint and LMDE are detected as "debian" which,
somehow, does work, but do not take in consideration those distributions
specifics (such as mirror, upstream version, etc.).

This is flagged WIP as long as I do not run the tests on LMDE.
This commit is contained in:
Romain Dartigues 2021-12-27 14:41:37 +01:00
parent c2c5668b70
commit 3f69895046
47 changed files with 81 additions and 49 deletions

View file

@ -51,6 +51,13 @@ if grep -q ^DISTRIB_ID=Ubuntu /etc/lsb-release 2>/dev/null; then
exit 0
fi
if grep -q ^DISTRIB_ID=LinuxMint /etc/lsb-release 2>/dev/null; then
echo linuxmint
exit 0
fi
#FIXME: Linux Mint Debian Edition/lmde
# devuan ascii has both devuan_version and debian_version, so we need to check devuan_version first!
if [ -f /etc/devuan_version ]; then
echo devuan

View file

@ -41,7 +41,7 @@ in
# empty, but well...
cat /etc/arch-release
;;
debian)
debian|lmde)
debian_version=$(cat /etc/debian_version)
case $debian_version
in
@ -134,7 +134,7 @@ in
cat /etc/SuSE-release
fi
;;
ubuntu)
ubuntu|linuxmint)
if command -v lsb_release >/dev/null 2>&1
then
lsb_release -sr

View file

@ -36,7 +36,7 @@ codename_os_release() {
# detect backport distribution
os="$(cat "$__global/explorer/os")"
case "$os" in
debian)
debian|lmde)
dist="$( codename_os_release )"
components="main"
mirror="http://deb.debian.org/debian/"
@ -46,7 +46,7 @@ case "$os" in
components="main"
mirror="http://deb.devuan.org/merged"
;;
ubuntu)
ubuntu|linuxmint)
dist="$( codename_os_release )"
components="main restricted universe multiverse"
mirror="http://archive.ubuntu.com/ubuntu"

View file

@ -24,7 +24,7 @@ os=$(cat "$__global/explorer/os")
release="$(cat "$__object/parameter/release")"
case "$os" in
ubuntu|debian|devuan)
ubuntu|debian|devuan|linuxmint|lmde)
__file /etc/apt/apt.conf.d/99-default-release \
--owner root --group root --mode 644 \
--source - << DONE

View file

@ -24,7 +24,7 @@ os=$(cat "${__global:?}/explorer/os")
case ${os}
in
(ubuntu|debian|devuan)
(ubuntu|debian|devuan|linuxmint|lmde)
__file /etc/apt/apt.conf.d/00InstallRecommends --state present \
--owner root --group root --mode 0644 --source - <<-'EOF'
APT::Install-Recommends "false";

View file

@ -35,7 +35,7 @@ priority="$(cat "$__object/parameter/priority")"
case "$os" in
debian|ubuntu|devuan)
debian|ubuntu|devuan|linux|lmde)
;;
*)
printf "This type is specific to Debian and it's derivatives" >&2

View file

@ -24,7 +24,7 @@
os=$(cat "$__global/explorer/os")
case "$os" in
alpine|scientific|centos|redhat|ubuntu|debian|devuan|archlinux|gentoo)
alpine|scientific|centos|redhat|ubuntu|debian|devuan|archlinux|gentoo|linuxmint|lmde)
# any linux should work
:
;;

View file

@ -58,6 +58,7 @@ esac
distribution_setup () {
case "$os" in
#FIXME: Linux Mint Debian Edition/lmde
debian)
# consul is only available starting Debian 10 (buster).
# See https://packages.debian.org/buster/consul
@ -136,7 +137,7 @@ init_upstart()
manual_setup () {
case "$os" in
alpine|scientific|centos|debian|devuan|redhat|ubuntu)
alpine|scientific|centos|debian|devuan|redhat|ubuntu|linuxmint|lmde)
# whitelist safeguard
:
;;
@ -191,6 +192,7 @@ manual_setup () {
esac
;;
#FIXME: Linux Mint Debian Edition/lmde
debian)
os_version=$(cat "$__global/explorer/os_version")
major_version="${os_version%%.*}"
@ -209,6 +211,7 @@ manual_setup () {
esac
;;
#FIXME: Linux Mint
ubuntu)
init_upstart
;;

View file

@ -44,7 +44,7 @@ case "$os" in
exit 1
fi
;;
ubuntu|debian)
ubuntu|debian|linuxmint|lmde)
if [ "${state}" = "present" ]; then
__package apt-transport-https
__package ca-certificates

View file

@ -45,6 +45,7 @@ if [ "$init" = 'systemd' ]; then
echo "systemctl \"$cmd\" \"$name\""
else
case "$os" in
#FIXME: Linux Mint Debian Edition/lmde
debian)
case "$os_version" in
[1-7]*)
@ -72,7 +73,7 @@ else
echo "/etc/init.d/\"$name\" \"$cmd\""
;;
ubuntu)
ubuntu|linuxmint)
echo "service \"$name\" \"$cmd\""
;;

View file

@ -5,7 +5,7 @@ go_executable=$(cat "$__object/explorer/go-executable")
os=$(cat "$__global/explorer/os")
case $os in
debian|devuan|ubuntu)
debian|devuan|ubuntu|linuxmint|lmde)
__package build-essential
;;
*)

View file

@ -5,6 +5,7 @@ os_version=$(cat "$__global/explorer/os_version")
require=""
case $os in
#FIXME: Linux Mint Debian Edition/lmde
debian|devuan)
case $os_version in
8*|jessie)

View file

@ -59,7 +59,7 @@ echo 'changed' >>"${__messages_out:?}"
# Use the good old way to set the hostname.
case ${os}
in
(alpine|debian|devuan|ubuntu)
(alpine|debian|devuan|ubuntu|linuxmint|lmde)
echo 'hostname -F /etc/hostname'
;;
(archlinux)

View file

@ -56,7 +56,7 @@ fi
case ${os}
in
(alpine|debian|devuan|ubuntu|void)
(alpine|debian|devuan|ubuntu|void|linuxmint|lmde)
echo "${name_should}" | __file /etc/hostname --source -
;;
(archlinux)

View file

@ -104,11 +104,12 @@ in
unset CDIST_ORDER_DEPENDENCY
fi
;;
(debian|devuan|ubuntu)
(debian|devuan|ubuntu|linuxmint|lmde)
os_major=$(sed 's/[^0-9].*$//' "${__global:?}/explorer/os_version")
case ${os}
in
#FIXME: Linux Mint Debian Edition/lmde
(debian)
if test "${os_major}" -ge 7
then
@ -129,7 +130,7 @@ in
(devuan)
update_rcS=false
;;
(ubuntu)
(ubuntu|linuxmint)
update_rcS=$(test "${os_major}" -lt 16 && echo true || echo false)
;;
esac

View file

@ -48,6 +48,13 @@ if grep -q ^DISTRIB_ID=Ubuntu "$chroot/etc/lsb-release" 2>/dev/null; then
exit 0
fi
if grep -q ^DISTRIB_ID=LinuxMint "$chroot/etc/lsb-release" 2>/dev/null; then
echo linuxmint
exit 0
fi
#FIXME: Linux Mint Debian Edition/lmde
if [ -f "$chroot/etc/debian_version" ]; then
echo debian
exit 0

View file

@ -34,7 +34,7 @@ exec > "$install_script"
printf '#!/bin/sh -l\n'
case "$target_os" in
ubuntu|debian)
ubuntu|debian|linuxmint|lmde)
if [ -s "$__global/explorer/efi" ]; then
# FIXME: untested. maybe also just run update-grub for EFI system?
printf 'grub-mkconfig --output=/boot/efi/EFI/%s/grub.cfg\n' "$target_os"

View file

@ -15,6 +15,7 @@ if [ -z "${certbot_fullpath}" ]; then
alpine)
__package certbot
;;
#FIXME: Linux Mint Debian Edition/lmde
debian)
case "$os_version" in
8*)
@ -88,7 +89,7 @@ if [ -z "${certbot_fullpath}" ]; then
__package py37-certbot
certbot_fullpath="/usr/local/bin/certbot"
;;
ubuntu)
ubuntu|linuxmint)
__package certbot
;;
*)

View file

@ -26,11 +26,12 @@ os=$(cat "$__global/explorer/os")
case "$os" in
#FIXME: Linux Mint Debian Edition/lmde
debian|devuan)
# Debian needs a seperate package
__package locales --state present
;;
archlinux|suse|ubuntu|scientific|centos|alpine)
archlinux|suse|ubuntu|scientific|centos|alpine|linuxmint)
:
;;
*)

View file

@ -55,6 +55,7 @@ os=$(cat "$__global/explorer/os")
case $os
in
#FIXME: Linux Mint Debian Edition/lmde
debian)
if version_ge 4 <"${__global}/explorer/os_version"
then
@ -67,7 +68,7 @@ in
devuan)
locale_conf="/etc/default/locale"
;;
ubuntu)
ubuntu|linuxmint)
if version_ge 6.10 <"${__global}/explorer/os_version"
then
# Ubuntu 6.10 (edgy) and later

View file

@ -61,7 +61,7 @@ in
printf '%s does not support locales.\n' "${os}" >&2
exit 1
;;
(archlinux|debian|devuan|ubuntu|suse|centos|fedora|redhat|scientific)
(archlinux|debian|devuan|ubuntu|suse|centos|fedora|redhat|scientific|linuxmint|lmde)
# FIXME: The code below only works for glibc-based installations.
# NOTE: Hardcoded, create a pull request in case it is at another

View file

@ -24,7 +24,7 @@
case $(cat "${__global:?}/explorer/os")
in
(debian|devuan)
(debian|devuan|lmde)
__package_apt locales --state present
;;
esac

View file

@ -37,7 +37,7 @@ case "${os}" in
tls_cipher_suite="HIGH:MEDIUM:+SSLv2"
fi
;;
debian|ubuntu|devuan)
debian|ubuntu|devuan|linuxmint|lmde)
PKGS="slapd ldap-utils"
ETC="/etc"
SLAPD_DIR="/etc/ldap"
@ -157,7 +157,7 @@ case "${os}" in
--comment "# LDAP Listener URLs" \
"${__target_host}__slapd_flags"
;;
debian|ubuntu|devuan)
debian|ubuntu|devuan|linuxmint|lmde)
require="__package/${PKG_MAIN}" __line rm_slapd_conf \
--file ${ETC}/default/slapd \
--regex 'SLAPD_CONF=.*' \

View file

@ -33,7 +33,7 @@ else
case "$os" in
amazon|scientific|centos|fedora|redhat) type="yum" ;;
archlinux) type="pacman" ;;
debian|ubuntu|devuan) type="apt" ;;
debian|ubuntu|devuan|linuxmint|lmde) type="apt" ;;
freebsd)
if [ -n "$(cat "$__object/explorer/pkgng_exists")" ]; then
type="pkgng_freebsd"

View file

@ -24,7 +24,7 @@ else
os="$("$__explorer/os")"
case "$os" in
amazon|scientific|centos|fedora|redhat) echo "yum" ;;
debian|ubuntu|devuan) echo "apt" ;;
debian|ubuntu|devuan|linuxmint|lmde) echo "apt" ;;
archlinux) echo "pacman" ;;
alpine) echo "apk" ;;
*)

View file

@ -39,7 +39,7 @@ else
os="$(cat "$__global/explorer/os")"
case "$os" in
amazon|scientific|centos|fedora|redhat) type="yum" ;;
debian|ubuntu|devuan) type="apt" ;;
debian|ubuntu|devuan|linuxmint|lmde) type="apt" ;;
archlinux) type="pacman" ;;
*)
echo "Don't know how to manage packages on: $os" >&2

View file

@ -22,7 +22,7 @@
os=$(cat "$__global/explorer/os")
case "$os" in
ubuntu|debian|archlinux|scientific|centos|devuan)
ubuntu|debian|archlinux|scientific|centos|devuan|linuxmint|lmde)
:
;;
*)

View file

@ -22,7 +22,7 @@
os=$("$__explorer/os")
case "$os" in
alpine|ubuntu|debian|archlinux|suse|scientific|centos|devuan)
alpine|ubuntu|debian|archlinux|suse|scientific|centos|devuan|linuxmint|lmde)
:
;;
*)

View file

@ -22,7 +22,7 @@
os=$(cat "$__global/explorer/os")
case "$os" in
alpine|archlinux|centos|debian|devuan|suse|scientific|ubuntu)
alpine|archlinux|centos|debian|devuan|suse|scientific|ubuntu|linuxmint|lmde)
:
;;
*)

View file

@ -22,7 +22,7 @@
os=$(cat "$__global/explorer/os")
case "$os" in
ubuntu|debian|archlinux|scientific|centos|devuan)
ubuntu|debian|archlinux|scientific|centos|devuan|linuxmint|lmde)
echo "postfix reload"
;;
*)

View file

@ -29,7 +29,7 @@ in
(centos|rhel|scientific)
echo 'postgres'
;;
(debian|devuan|ubuntu)
(debian|devuan|ubuntu|linuxmint|lmde)
echo 'postgres'
;;
(freebsd)

View file

@ -39,7 +39,7 @@ test "$(cat "${__object}/parameter/state")" != 'absent' || exit 0
case $("${__explorer}/os")
in
debian|devuan|ubuntu)
debian|devuan|ubuntu|linuxmint|lmde)
has_alternatives=true
# NOTE: Old versions do not support `--list`, in this case ignore the errors.

View file

@ -57,7 +57,7 @@ package_name='sensible-utils'
case $os
in
debian)
debian|linuxmint|lmde)
pkg_type='apt'
;;
devuan)

View file

@ -24,7 +24,7 @@ state_should=$(cat "${__object:?}/parameter/state")
case ${os}
in
(alpine|centos|fedora|redhat|scientific|debian|devuan|ubuntu)
(alpine|centos|fedora|redhat|scientific|debian|devuan|ubuntu|linuxmint|lmde)
if test "${state_should}" != 'absent'
then
__package openssh-server --state present

View file

@ -37,7 +37,7 @@ if [ "$init" = 'systemd' ]; then
else
case "$os" in
debian|openwrt|devuan)
debian|openwrt|devuan|lmde)
state="absent"
for file in "/etc/rc$runlevel.d/S"??"$name"
do
@ -48,7 +48,7 @@ else
fi
done
;;
ubuntu)
ubuntu|linuxmint)
state="absent"
for file in "/etc/rc$runlevel.d/S"??"$name"
do

View file

@ -40,6 +40,7 @@ case "$state_should" in
echo "systemctl -q enable '$name'"
else
case "$os" in
#FIXME: Linux Mint Debian Edition/lmde
debian)
case "$os_version" in
[1-7]*)
@ -73,7 +74,7 @@ case "$state_should" in
echo "'/etc/init.d/$name' enable || [ -f /etc/rc.d/S??'$name' ]"
;;
ubuntu)
ubuntu|linuxmint)
echo "update-rc.d '$name' defaults >/dev/null"
;;

View file

@ -30,7 +30,7 @@ fi
os=$(cat "$__global/explorer/os")
case "$os" in
# Linux
redhat|centos|ubuntu|debian|devuan|archlinux|gentoo|coreos)
redhat|centos|ubuntu|debian|devuan|archlinux|gentoo|coreos|linuxmint|lmde)
flag='-w'
;;
# BusyBox

View file

@ -25,7 +25,7 @@ os=$(cat "$__global/explorer/os")
case "$os" in
# Linux
alpine|redhat|centos|ubuntu|debian|devuan|archlinux|coreos)
alpine|redhat|centos|ubuntu|debian|devuan|archlinux|coreos|linuxmint|lmde)
:
;;
# BSD

View file

@ -30,7 +30,7 @@ if [ "$timezone_is" = "$timezone_should" ]; then
fi
case "$os" in
ubuntu|debian|devuan|coreos|alpine)
ubuntu|debian|devuan|coreos|alpine|linuxmint|lmde)
echo "echo \"$timezone_should\" > /etc/timezone"
;;
esac

View file

@ -26,7 +26,7 @@ timezone=$(cat "$__object/parameter/tz")
os=$(cat "$__global/explorer/os")
case "$os" in
archlinux|debian|ubuntu|devuan|alpine)
archlinux|debian|ubuntu|devuan|alpine|linuxmint|lmde)
__package tzdata
export require="__package/tzdata"
;;

View file

@ -20,7 +20,7 @@ case "$src" in
;;
*.lzma|*.xz|*.txz)
case "$os" in
debian|ubuntu|devuan)
debian|ubuntu|devuan|linuxmint|lmde)
__package xz-utils
;;
alpine|centos)
@ -30,7 +30,7 @@ case "$src" in
;;
*.rar)
case "$os" in
debian|ubuntu|devuan|alpine|freebsd)
debian|ubuntu|devuan|alpine|freebsd|linuxmint|lmde)
__package unrar
;;
esac

View file

@ -21,7 +21,7 @@ state=$(cat "$__object/parameter/state")
os=$(cat "$__global/explorer/os")
case "$os" in
debian|ubuntu)
debian|ubuntu|linuxmint|lmde)
:
;;
*)

View file

@ -21,7 +21,7 @@ state=$(cat "$__object/parameter/state")
os=$(cat "$__global/explorer/os")
case "$os" in
debian|ubuntu)
debian|ubuntu|linuxmint|lmde)
:
;;
*)

View file

@ -22,7 +22,7 @@ servers=$(cat "$__object/parameter/servers")
os=$(cat "$__global/explorer/os")
case "$os" in
debian|ubuntu)
debian|ubuntu|linuxmint|lmde)
:
;;
*)

View file

@ -26,7 +26,7 @@ fi
os=$(cat "$__global/explorer/os")
case "$os" in
debian|ubuntu)
debian|ubuntu|linuxmint|lmde)
:
;;
*)

View file

@ -50,6 +50,13 @@ if grep -q ^DISTRIB_ID=Ubuntu /etc/lsb-release 2>/dev/null; then
exit 0
fi
if grep -q ^DISTRIB_ID=LinuxMint /etc/lsb-release 2>/dev/null; then
echo linuxmint
exit 0
fi
#FIXME: Linux Mint Debian Edition/lmde
if [ -f /etc/debian_version ]; then
echo debian
exit 0

View file

@ -30,6 +30,7 @@ case "$($__explorer/os)" in
# empty, but well...
cat /etc/arch-release
;;
#FIXME: Linux Mint Debian Edition/lmde
debian)
cat /etc/debian_version
;;
@ -67,7 +68,7 @@ case "$($__explorer/os)" in
cat /etc/SuSE-release
fi
;;
ubuntu)
ubuntu|linuxmint)
lsb_release -sr
;;
esac