Skip to content

Instantly share code, notes, and snippets.

@pfeerick
Created June 2, 2018 10:44
Show Gist options
  • Save pfeerick/8bc82f279db036f5ca81a89eea10d0b0 to your computer and use it in GitHub Desktop.
Save pfeerick/8bc82f279db036f5ca81a89eea10d0b0 to your computer and use it in GitHub Desktop.
Install MATE Desktop Environment for Debian on the pine64
#!/bin/bash
set -e
DISTRO=""
if hash apt-get 2>/dev/null; then
DISTRO=debian
fi
if [ -z "$DISTRO" ]; then
echo "This script requires a Debian based Linux distribution."
exit 1
fi
if [ "$(id -u)" -ne "0" ]; then
echo "This script requires root."
exit 1
fi
# Packages to install
PACKAGES=(
xserver-xorg-video-fbturbo
xserver-xorg-video-armsoc-sunxi
libmali-sunxi-utgard0-r6p0
mesa-utils-extra
glmark2-es2
libvdpau-sunxi1
vdpauinfo
aisleriot
geany
gnomine
gnome-sudoku
mplayer
scratch
smplayer
smplayer-themes
smtube
chromium-browser
mate-desktop-environment-core
lightdm
)
# Install.
apt -y update
apt -y --no-install-recommends install ${PACKAGES[@]}
# Kill parport module loading, not available on arm64.
if [ -e "/etc/modules-load.d/cups-filters.conf" ]; then
echo "" >/etc/modules-load.d/cups-filters.conf
fi
# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver.
if [ -e "/etc/pulse/default.pa" ]; then
sed -i 's/load-module module-udev-detect$/& tsched=0/g' /etc/pulse/default.pa
fi
systemctl set-default graphical.target
echo
echo "Done - Mate installed - you should reboot now."
@pfeerick
Copy link
Author

pfeerick commented Jun 4, 2018

So running revision 1 of this script on stretch-minimal-pine64-bspkernel-0.7.19-118.img.xz results in three dependency errors - chromium-browser, gnomine and glmark2-es2.

Package chromium-browser is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Package gnomine is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  gnome-mines

Package glmark2-es2 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'glmark2-es2' has no installation candidate
E: Package 'gnomine' has no installation candidate
E: Package 'chromium-browser' has no installation candidate

gnomine has been renamed to gnome-mine, and who needs a gnome minesweeper game anyway?
chromium-browser can be sorted out later, and glmark2 is just a openGL benchmark tool.

So we ignore those packages for now, and then you get this:

The following packages have unmet dependencies:
 xserver-xorg-video-armsoc-sunxi : Depends: xorg-video-abi-20 but it is not installable
 xserver-xorg-video-fbturbo : Depends: xorg-video-abi-20 but it is not installable
E: Unable to correct problems, you have held broken packages.

xserver-xorg-video-armsoc-sunxi is the dealbreaker. both it and xserver-xorg-video-fbturbo have a dependency on xorg-video-abi-20, which is a virtual packaged provided by xserver-xorg-core on ubuntu. Now, if the guys compiling the deb had specified that as the dependency, we might be be fine... but unfortunately they didn't...

@pfeerick
Copy link
Author

pfeerick commented Jun 8, 2018

jessie-minimal-pine64-0.7.19-118.img.xz appears no different, and enabling backports and testing repos doesn't doing anything useful either. It seems that xorg-video-abi-20 was a virtual package provided by a specific version of xserver-xorg-core, and the debian repos skipped that particular version. i.e xorg-video-abi was 18 in jessie, is 23 in stretch and is 18, 23 and 24 in sid. So debian skipped the magic xorg-video-abi-20 that is needed to resolve the package dependency issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment