diff --git a/.gitignore b/.gitignore index eaa102a4e..15b198e0c 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,6 @@ ubuntu-*-cloudimg-console.log .DS_Store *~ *.swp + +# Mainly generated by merge tools like 'meld' +*.orig diff --git a/README.md b/README.md index cb70b5bdc..7672b4176 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ Build minimal CLI Debian buster based image for Odroid XU4. Use modern kernel an ```text ./compile.sh BOARD="odroidxu4" BRANCH="current" RELEASE="buster" CARD_DEVICE="/dev/sda" \ -KERNEL_ONLY="no" KERNEL_CONFIGURE="no" BUILD_DESKTOP="no" BUILD_MINIMAL="yes" +KERNEL_ONLY="no" KERNEL_CONFIGURE="no" BUILD_DESKTOP="yes" RELEASE="focal" BUILD_DESKTOP="yes" DESKTOP_ENVIRONMENT="xfce" DESKTOP_ENVIRONMENT_CONFIG_NAME="config_full" DESKTOP_APPGROUPS_SELECTED="browsers editors programming" ``` [Build parameters, advanced build options, user defined configuration, build with Docker?](#additional-information) diff --git a/VERSION b/VERSION index 906042fed..c499058d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -21.02.0-trunk +21.05.0-trunk diff --git a/compile.sh b/compile.sh index 5070c0cfc..6efe4c993 100755 --- a/compile.sh +++ b/compile.sh @@ -126,6 +126,10 @@ if [[ -z "$(command -v getfacl)" ]]; then sudo apt-get update sudo apt-get install -y acl fi +if [[ -z "$(command -v uuidgen)" ]]; then + sudo apt-get update + sudo apt-get install -y uuid-runtime +fi # Check for Vagrant if [[ "${1}" == vagrant && -z "$(command -v vagrant)" ]]; then diff --git a/config/boards/fe-som-rk3399.wip b/config/boards/fe-som-rk3399.wip new file mode 100644 index 000000000..7ddfcf31a --- /dev/null +++ b/config/boards/fe-som-rk3399.wip @@ -0,0 +1,9 @@ +# Rockchip RK3399 hexa core 2GB/4GB RAM SoC GBE USB3 USB-C WiFi/BT eMMC NVMe PCI-e i2c +BOARD_NAME="FE-SOM-RK3399" +BOARDFAMILY="rk3399" +BOOTCONFIG="nanopc-t4-rk3399_defconfig" +KERNEL_TARGET="legacy,current,dev" +FULL_DESKTOP="yes" +ASOUND_STATE="asound.state.rt5651" +BOOT_LOGO="desktop" +#BOOT_FDT_FILE="rockchip/fe-som-rk3399.dtb" \ No newline at end of file diff --git a/config/cli/bionic b/config/cli/bionic new file mode 120000 index 000000000..aae2fdcd7 --- /dev/null +++ b/config/cli/bionic @@ -0,0 +1 @@ +focal \ No newline at end of file diff --git a/config/cli/bullseye/debootstrap/components b/config/cli/bullseye/debootstrap/components new file mode 100644 index 000000000..ba2906d06 --- /dev/null +++ b/config/cli/bullseye/debootstrap/components @@ -0,0 +1 @@ +main diff --git a/config/cli/bullseye/debootstrap/config_desktop/packages b/config/cli/bullseye/debootstrap/config_desktop/packages new file mode 100644 index 000000000..404726787 --- /dev/null +++ b/config/cli/bullseye/debootstrap/config_desktop/packages @@ -0,0 +1 @@ +libgtk2.0-bin diff --git a/config/cli/bullseye/debootstrap/packages b/config/cli/bullseye/debootstrap/packages new file mode 100644 index 000000000..4ee34e5e1 --- /dev/null +++ b/config/cli/bullseye/debootstrap/packages @@ -0,0 +1,4 @@ +locales gnupg ifupdown apt-utils apt-transport-https ca-certificates bzip2 console-setup +cpio cron dbus init initramfs-tools iputils-ping isc-dhcp-client kmod less libpam-systemd +linux-base logrotate netbase netcat-openbsd rsyslog systemd sudo ucf udev whiptail +wireless-regdb crda dmsetup rsync tzdata haveged fdisk diff --git a/config/cli/bullseye/main/config_cli_standard/packages b/config/cli/bullseye/main/config_cli_standard/packages new file mode 100644 index 000000000..ce2bdb670 --- /dev/null +++ b/config/cli/bullseye/main/config_cli_standard/packages @@ -0,0 +1,5 @@ +bridge-utils build-essential fbset iw wpasupplicant sudo linux-base crda wireless-regdb +unattended-upgrades console-setup unicode-data initramfs-tools ca-certificates expect +iptables automake html2text bison flex libwrap0-dev libssl-dev libnl-3-dev libnl-genl-3-dev +keyboard-configuration gnupg2 networkd-dispatcher man-db hping3 command-not-found apt-file +dkms python3-distutils python3-lib2to3 diff --git a/config/cli/bullseye/main/config_cli_standard/packages.additional b/config/cli/bullseye/main/config_cli_standard/packages.additional new file mode 100644 index 000000000..ff3308b02 --- /dev/null +++ b/config/cli/bullseye/main/config_cli_standard/packages.additional @@ -0,0 +1,5 @@ +software-properties-common alsa-utils btrfs-progs dosfstools iotop stress screen +ntfs-3g vim pciutils evtest pv libfuse2 libdigest-sha-perl +libproc-processtable-perl aptitude dnsutils f3 haveged hdparm rfkill vlan bash-completion +hostapd git ethtool unzip ifenslave libpam-systemd iperf3 +libnss-myhostname f2fs-tools avahi-autoipd iputils-arping qrencode sunxi-tools i2c-tools diff --git a/config/cli/bullseye/main/config_desktop/packages b/config/cli/bullseye/main/config_desktop/packages new file mode 100644 index 000000000..13d76123e --- /dev/null +++ b/config/cli/bullseye/main/config_desktop/packages @@ -0,0 +1,4 @@ +bridge-utils build-essential fbset iw wpasupplicant sudo linux-base crda +wireless-regdb unattended-upgrades console-setup unicode-data initramfs-tools +ca-certificates expect iptables automake html2text bison flex libwrap0-dev +libssl-dev libnl-3-dev libnl-genl-3-dev keyboard-configuration diff --git a/config/cli/bullseye/main/config_desktop/packages.additional b/config/cli/bullseye/main/config_desktop/packages.additional new file mode 100644 index 000000000..53ceceed5 --- /dev/null +++ b/config/cli/bullseye/main/config_desktop/packages.additional @@ -0,0 +1,5 @@ +software-properties-common alsa-utils btrfs-progs dosfstools iotop stress screen +ntfs-3g vim pciutils evtest pv libfuse2 libdigest-sha-perl +libproc-processtable-perl aptitude dnsutils f3 haveged hdparm rfkill vlan bash-completion +hostapd git ethtool unzip ifenslave libpam-systemd iperf3 +libnss-myhostname f2fs-tools avahi-autoipd iputils-arping qrencode sunxi-tools diff --git a/config/cli/bullseye/main/packages b/config/cli/bullseye/main/packages new file mode 100644 index 000000000..59a297d2f --- /dev/null +++ b/config/cli/bullseye/main/packages @@ -0,0 +1,3 @@ +bc cpufrequtils device-tree-compiler fping fake-hwclock psmisc chrony parted dialog +ncurses-term sysfsutils toilet figlet u-boot-tools usbutils openssh-server nocache +debconf-utils python3-apt diff --git a/config/cli/bullseye/main/packages.additional b/config/cli/bullseye/main/packages.additional new file mode 100644 index 000000000..8e79ef402 --- /dev/null +++ b/config/cli/bullseye/main/packages.additional @@ -0,0 +1,2 @@ +network-manager wireless-tools lsof htop mmc-utils wget nano sysstat net-tools resolvconf +iozone3 jq libcrack2 cracklib-runtime curl mc i2c-tools diff --git a/config/cli/buster/debootstrap/components b/config/cli/buster/debootstrap/components new file mode 100644 index 000000000..ba2906d06 --- /dev/null +++ b/config/cli/buster/debootstrap/components @@ -0,0 +1 @@ +main diff --git a/config/cli/buster/debootstrap/config_desktop/packages b/config/cli/buster/debootstrap/config_desktop/packages new file mode 100644 index 000000000..404726787 --- /dev/null +++ b/config/cli/buster/debootstrap/config_desktop/packages @@ -0,0 +1 @@ +libgtk2.0-bin diff --git a/config/cli/buster/debootstrap/packages b/config/cli/buster/debootstrap/packages new file mode 100644 index 000000000..4ee34e5e1 --- /dev/null +++ b/config/cli/buster/debootstrap/packages @@ -0,0 +1,4 @@ +locales gnupg ifupdown apt-utils apt-transport-https ca-certificates bzip2 console-setup +cpio cron dbus init initramfs-tools iputils-ping isc-dhcp-client kmod less libpam-systemd +linux-base logrotate netbase netcat-openbsd rsyslog systemd sudo ucf udev whiptail +wireless-regdb crda dmsetup rsync tzdata haveged fdisk diff --git a/config/cli/buster/main/config_cli_standard/packages b/config/cli/buster/main/config_cli_standard/packages new file mode 100644 index 000000000..78a4ce807 --- /dev/null +++ b/config/cli/buster/main/config_cli_standard/packages @@ -0,0 +1,5 @@ +bridge-utils build-essential fbset iw wpasupplicant sudo linux-base crda wireless-regdb +unattended-upgrades console-setup unicode-data initramfs-tools ca-certificates expect +iptables automake html2text bison flex libwrap0-dev libssl-dev libnl-3-dev libnl-genl-3-dev +keyboard-configuration gnupg2 networkd-dispatcher man-db hping3 selinux-policy-default +rng-tools command-not-found apt-file dkms python3-distutils python3-lib2to3 diff --git a/config/cli/buster/main/config_cli_standard/packages.additional b/config/cli/buster/main/config_cli_standard/packages.additional new file mode 100644 index 000000000..ff3308b02 --- /dev/null +++ b/config/cli/buster/main/config_cli_standard/packages.additional @@ -0,0 +1,5 @@ +software-properties-common alsa-utils btrfs-progs dosfstools iotop stress screen +ntfs-3g vim pciutils evtest pv libfuse2 libdigest-sha-perl +libproc-processtable-perl aptitude dnsutils f3 haveged hdparm rfkill vlan bash-completion +hostapd git ethtool unzip ifenslave libpam-systemd iperf3 +libnss-myhostname f2fs-tools avahi-autoipd iputils-arping qrencode sunxi-tools i2c-tools diff --git a/config/cli/buster/main/config_desktop/packages b/config/cli/buster/main/config_desktop/packages new file mode 100644 index 000000000..13d76123e --- /dev/null +++ b/config/cli/buster/main/config_desktop/packages @@ -0,0 +1,4 @@ +bridge-utils build-essential fbset iw wpasupplicant sudo linux-base crda +wireless-regdb unattended-upgrades console-setup unicode-data initramfs-tools +ca-certificates expect iptables automake html2text bison flex libwrap0-dev +libssl-dev libnl-3-dev libnl-genl-3-dev keyboard-configuration diff --git a/config/cli/buster/main/config_desktop/packages.additional b/config/cli/buster/main/config_desktop/packages.additional new file mode 100644 index 000000000..53ceceed5 --- /dev/null +++ b/config/cli/buster/main/config_desktop/packages.additional @@ -0,0 +1,5 @@ +software-properties-common alsa-utils btrfs-progs dosfstools iotop stress screen +ntfs-3g vim pciutils evtest pv libfuse2 libdigest-sha-perl +libproc-processtable-perl aptitude dnsutils f3 haveged hdparm rfkill vlan bash-completion +hostapd git ethtool unzip ifenslave libpam-systemd iperf3 +libnss-myhostname f2fs-tools avahi-autoipd iputils-arping qrencode sunxi-tools diff --git a/config/cli/buster/main/packages b/config/cli/buster/main/packages new file mode 100644 index 000000000..59a297d2f --- /dev/null +++ b/config/cli/buster/main/packages @@ -0,0 +1,3 @@ +bc cpufrequtils device-tree-compiler fping fake-hwclock psmisc chrony parted dialog +ncurses-term sysfsutils toilet figlet u-boot-tools usbutils openssh-server nocache +debconf-utils python3-apt diff --git a/config/cli/buster/main/packages.additional b/config/cli/buster/main/packages.additional new file mode 100644 index 000000000..704ca920c --- /dev/null +++ b/config/cli/buster/main/packages.additional @@ -0,0 +1,2 @@ +network-manager wireless-tools lsof htop mmc-utils wget nano sysstat net-tools +resolvconf iozone3 jq libcrack2 cracklib-runtime curl mc i2c-tools diff --git a/config/cli/focal/debootstrap/components b/config/cli/focal/debootstrap/components new file mode 100644 index 000000000..7df132ae4 --- /dev/null +++ b/config/cli/focal/debootstrap/components @@ -0,0 +1 @@ +main universe diff --git a/config/cli/focal/debootstrap/config_desktop/packages b/config/cli/focal/debootstrap/config_desktop/packages new file mode 100644 index 000000000..f79e9d59f --- /dev/null +++ b/config/cli/focal/debootstrap/config_desktop/packages @@ -0,0 +1 @@ +libgtk2.0-bin dconf-cli libglib2.0-dev diff --git a/config/cli/focal/debootstrap/packages b/config/cli/focal/debootstrap/packages new file mode 100644 index 000000000..79555ee5b --- /dev/null +++ b/config/cli/focal/debootstrap/packages @@ -0,0 +1,4 @@ +locales gnupg ifupdown apt-utils apt-transport-https ca-certificates bzip2 console-setup +cpio cron dbus init initramfs-tools iputils-ping isc-dhcp-client kmod less libpam-systemd +linux-base logrotate netbase netcat-openbsd rsyslog systemd sudo ucf udev whiptail +wireless-regdb crda dmsetup rsync tzdata rng-tools fdisk diff --git a/config/cli/focal/main/config_cli_standard/packages b/config/cli/focal/main/config_cli_standard/packages new file mode 100644 index 000000000..fd59fbe64 --- /dev/null +++ b/config/cli/focal/main/config_cli_standard/packages @@ -0,0 +1,5 @@ +bridge-utils build-essential fbset iw wpasupplicant sudo linux-base crda wireless-regdb +unattended-upgrades console-setup unicode-data initramfs-tools ca-certificates expect +iptables automake html2text bison flex libwrap0-dev libssl-dev libnl-3-dev libnl-genl-3-dev +keyboard-configuration gnupg2 networkd-dispatcher man-db hping3 selinux-policy-default +dkms python3-distutils python3-lib2to3 diff --git a/config/cli/focal/main/config_cli_standard/packages.additional b/config/cli/focal/main/config_cli_standard/packages.additional new file mode 100644 index 000000000..53ceceed5 --- /dev/null +++ b/config/cli/focal/main/config_cli_standard/packages.additional @@ -0,0 +1,5 @@ +software-properties-common alsa-utils btrfs-progs dosfstools iotop stress screen +ntfs-3g vim pciutils evtest pv libfuse2 libdigest-sha-perl +libproc-processtable-perl aptitude dnsutils f3 haveged hdparm rfkill vlan bash-completion +hostapd git ethtool unzip ifenslave libpam-systemd iperf3 +libnss-myhostname f2fs-tools avahi-autoipd iputils-arping qrencode sunxi-tools diff --git a/config/cli/focal/main/config_desktop/packages b/config/cli/focal/main/config_desktop/packages new file mode 100644 index 000000000..ad3280db6 --- /dev/null +++ b/config/cli/focal/main/config_desktop/packages @@ -0,0 +1,4 @@ +bridge-utils build-essential fbset iw wpasupplicant sudo linux-base crda +wireless-regdb unattended-upgrades console-setup unicode-data initramfs-tools +ca-certificates expect iptables automake html2text bison flex libwrap0-dev +libssl-dev libnl-3-dev libnl-genl-3-dev keyboard-configuration emacs-nox diff --git a/config/cli/focal/main/config_desktop/packages.additional b/config/cli/focal/main/config_desktop/packages.additional new file mode 100644 index 000000000..53ceceed5 --- /dev/null +++ b/config/cli/focal/main/config_desktop/packages.additional @@ -0,0 +1,5 @@ +software-properties-common alsa-utils btrfs-progs dosfstools iotop stress screen +ntfs-3g vim pciutils evtest pv libfuse2 libdigest-sha-perl +libproc-processtable-perl aptitude dnsutils f3 haveged hdparm rfkill vlan bash-completion +hostapd git ethtool unzip ifenslave libpam-systemd iperf3 +libnss-myhostname f2fs-tools avahi-autoipd iputils-arping qrencode sunxi-tools diff --git a/config/cli/focal/main/packages b/config/cli/focal/main/packages new file mode 100644 index 000000000..59a297d2f --- /dev/null +++ b/config/cli/focal/main/packages @@ -0,0 +1,3 @@ +bc cpufrequtils device-tree-compiler fping fake-hwclock psmisc chrony parted dialog +ncurses-term sysfsutils toilet figlet u-boot-tools usbutils openssh-server nocache +debconf-utils python3-apt diff --git a/config/cli/focal/main/packages.additional b/config/cli/focal/main/packages.additional new file mode 100644 index 000000000..704ca920c --- /dev/null +++ b/config/cli/focal/main/packages.additional @@ -0,0 +1,2 @@ +network-manager wireless-tools lsof htop mmc-utils wget nano sysstat net-tools +resolvconf iozone3 jq libcrack2 cracklib-runtime curl mc i2c-tools diff --git a/config/cli/hirsute b/config/cli/hirsute new file mode 120000 index 000000000..aae2fdcd7 --- /dev/null +++ b/config/cli/hirsute @@ -0,0 +1 @@ +focal \ No newline at end of file diff --git a/config/cli/sid b/config/cli/sid new file mode 120000 index 000000000..766a99ab6 --- /dev/null +++ b/config/cli/sid @@ -0,0 +1 @@ +buster \ No newline at end of file diff --git a/config/desktop/README.md b/config/desktop/README.md new file mode 100644 index 000000000..69228c491 --- /dev/null +++ b/config/desktop/README.md @@ -0,0 +1,102 @@ +

Desktop configuration

+ +Please use lowercase letters for all config / folder files + +``` +├──${RELEASE} The name of the distribution +│   ├──environments DE packages lists and scripts +│   │   ├──${DESKTOP_ENVIRONMENT} The name of the DE (xfce, gnome, kde, ...) +│   │   │  |──${DESKTOP_ENVIRONMENT_CONFIG_NAME} Different configuration name prefixed with "config_" (config_basic, config_full, ... ) +│   │──appgroups Application groups packages lists and scripts +│   │   ├──${DESKTOP_APPGROUPS_SELECTED} Appgroups names (editors, programming, ...) +``` + +In each directory representing a desktop environment, a desktop environment configuration or an appgroup, the following files can be present : + +* `packages` + If present, the content of the file will be added to the list + of packages 'required' by the Armbian desktop package. +* `debian/postinst` + If present, the content of the file will be added to the `postinst` + script of the Armbian desktop package, which will be executed after + installing it. +* `armbian/create_desktop_package.sh` + If present the content of this script will be executed, by the build + script, just before actually creating the Armbian Desktop `.deb` + package. + Any variable recognized and function defined by the build script, + at that point, can be used. +* `sources/apt` + If present, the directory will be scanned for `.source` files, + which should contain APT URL, in a form that `add-apt-repository` + understand. + The system is restricted to ONLY ONE APT URL per file, since it's + basically calling : + `add-apt-repository $(cat "/that/apt/file.source")` + For each `.source` file parsed, if there's a corresponding + `.source.gpg` file, the file will be considered as a package + signing key and will be passed to `apt-key`. + For this one, the file is copied into `${SDCARD}/tmp` and then + **apt-key** is called like this : `apt-key "/tmp/file.source.gpg"`. + +Then in each directory representing a desktop environment, a desktop +environment configuration or an appgroup, you can add : + +* `custom/boards/${BOARD}/` + For example `custom/orangepipc`. + A Board (odroidc4, tinkerboard, bananapi, ...) specific directory + where you can provide additional`packages`, `debian/postinst` and + `armbian/create_desktop_package.sh`. + The files, if present, will be parsed accordingly when building + for that specific board, if the element (desktop environment, + appgroup, ...) is selected. + +Then in each appgroup, you can add : + +* `custom/desktops/${DESTKOP_ENVIRONMENT}/` + For example `custom/desktops/xfce`. + A desktop environment specific directory where you can provide + additional `packages`, `debian/postinst` and + `armbian/create_desktop_package.sh`. + The files, if present, will be parsed accordingly if the appgroup + AND that desktop environment are both selected during a build. +* `custom/boards/${BOARD}/custom/desktops/${DESTKOP_ENVIRONMENT}/` + For example `custom/boards/tinkerboard/custom/desktops/kde`. + A Board AND desktop environment specific directory where you can + provided additional `packages`, `debian/postinst` and + `armbian/create_desktop_package.sh`. + The files, if present, will be parsed accordingly if the appgroup, + that specific board and that specific desktop environments are + all selected during a build. + +### Adding a desktop environment + +> Currently, only official repositories are supported. + +Let's say that you want to add that new desktop environment +"superduperde", that is now available on official on Debian/Ubuntu +repositories. + +First, focus on one specific distribution like `focal` (Ubuntu) +or `buster` (Debian). In our example, will take `focal`. +We'll create our first configuration 'full', which should provide the +DE along with all its specific apps, widgets and the kitchen sink. + +* Create the directory + `config/desktop/focal/environments/superduperde/config_full` +* Create the file + `config/desktop/focal/environments/superduperde/config_full/packages` +* Open the `packages` file, add the list of packages for `apt`. + +Then select it in the configuration menu, or pass the following +variables to `./compile.sh` : + +```bash +BUILD_DESKTOP="yes" RELEASE="focal" DESKTOP_ENVIRONMENT="superduperde" DESKTOP_ENVIRONMENT_CONFIG_NAME="config_full" +``` + +Then test the resulting image ! + +### Tips + +Keep most complete configuration in latest stable versions (Ubuntu Focal and Ubuntu Buster) and link their sub-components / directories. The same goes for DE. We keep XFCE as a base and others linked to it - where this make sense. \ No newline at end of file diff --git a/config/desktop/bionic/appgroups b/config/desktop/bionic/appgroups new file mode 120000 index 000000000..97784daa0 --- /dev/null +++ b/config/desktop/bionic/appgroups @@ -0,0 +1 @@ +../focal/appgroups \ No newline at end of file diff --git a/config/desktop/bionic/environments/xfce b/config/desktop/bionic/environments/xfce new file mode 120000 index 000000000..e48eb6dc1 --- /dev/null +++ b/config/desktop/bionic/environments/xfce @@ -0,0 +1 @@ +../../focal/environments/xfce \ No newline at end of file diff --git a/config/desktop/bullseye/appgroups/browsers/armbian/create_desktop_package.sh b/config/desktop/bullseye/appgroups/browsers/armbian/create_desktop_package.sh new file mode 100644 index 000000000..a1bc70a52 --- /dev/null +++ b/config/desktop/bullseye/appgroups/browsers/armbian/create_desktop_package.sh @@ -0,0 +1,4 @@ +# install optimized browser configurations +cp "${SRC}"/packages/blobs/desktop/chromium.conf "${destination}"/etc/armbian +cp "${SRC}"/packages/blobs/desktop/firefox.conf "${destination}"/etc/armbian +cp -R "${SRC}"/packages/blobs/desktop/chromium "${destination}"/etc/armbian diff --git a/config/desktop/bullseye/appgroups/browsers/debian/postinst b/config/desktop/bullseye/appgroups/browsers/debian/postinst new file mode 100644 index 000000000..831479914 --- /dev/null +++ b/config/desktop/bullseye/appgroups/browsers/debian/postinst @@ -0,0 +1,12 @@ +# overwrite stock chromium configuration +if [ -d /etc/chromium-browser/ ]; then ln -sf /etc/armbian/chromium.conf /etc/chromium-browser/default; fi +if [ -d /etc/chromium.d/ ]; then ln -sf /etc/armbian/chromium.conf /etc/chromium.d/chromium.conf; fi +cp -R /etc/armbian/chromium /usr/share + +# overwrite stock firefox configuration +if [ -d /etc/firefox/ ]; then ln -sf /etc/armbian/firefox.conf /etc/firefox/syspref.js; fi +if [ -d /usr/lib/firefox-esr/ ]; then + ln -sf /etc/armbian/firefox.conf /usr/lib/firefox-esr/mozilla.cfg + echo 'pref("general.config.obscure_value", 0);' > /usr/lib/firefox-esr/defaults/pref/local-settings.js + echo 'pref("general.config.filename", "mozilla.cfg");' >> /usr/lib/firefox-esr/defaults/pref/local-settings.js +fi diff --git a/config/desktop/bullseye/appgroups/browsers/packages b/config/desktop/bullseye/appgroups/browsers/packages new file mode 100644 index 000000000..5fd57ace5 --- /dev/null +++ b/config/desktop/bullseye/appgroups/browsers/packages @@ -0,0 +1 @@ +firefox-esr diff --git a/config/desktop/bullseye/appgroups/chat b/config/desktop/bullseye/appgroups/chat new file mode 120000 index 000000000..6fd6d4034 --- /dev/null +++ b/config/desktop/bullseye/appgroups/chat @@ -0,0 +1 @@ +../../buster/appgroups/chat \ No newline at end of file diff --git a/config/desktop/bullseye/appgroups/desktop_tools b/config/desktop/bullseye/appgroups/desktop_tools new file mode 120000 index 000000000..6cac32ac7 --- /dev/null +++ b/config/desktop/bullseye/appgroups/desktop_tools @@ -0,0 +1 @@ +../../buster/appgroups/desktop_tools \ No newline at end of file diff --git a/config/desktop/bullseye/appgroups/editors b/config/desktop/bullseye/appgroups/editors new file mode 120000 index 000000000..f5a1dbb9d --- /dev/null +++ b/config/desktop/bullseye/appgroups/editors @@ -0,0 +1 @@ +../../buster/appgroups/editors \ No newline at end of file diff --git a/config/desktop/bullseye/appgroups/emails b/config/desktop/bullseye/appgroups/emails new file mode 120000 index 000000000..5cc6c4a6d --- /dev/null +++ b/config/desktop/bullseye/appgroups/emails @@ -0,0 +1 @@ +../../buster/appgroups/email \ No newline at end of file diff --git a/config/desktop/bullseye/appgroups/internet b/config/desktop/bullseye/appgroups/internet new file mode 120000 index 000000000..755097ca5 --- /dev/null +++ b/config/desktop/bullseye/appgroups/internet @@ -0,0 +1 @@ +../../buster/appgroups/internet \ No newline at end of file diff --git a/config/desktop/bullseye/appgroups/internet-tools b/config/desktop/bullseye/appgroups/internet-tools new file mode 120000 index 000000000..a441bfca2 --- /dev/null +++ b/config/desktop/bullseye/appgroups/internet-tools @@ -0,0 +1 @@ +../../buster/appgroups/internet-tools \ No newline at end of file diff --git a/config/desktop/bullseye/appgroups/multimedia b/config/desktop/bullseye/appgroups/multimedia new file mode 120000 index 000000000..f974a28ac --- /dev/null +++ b/config/desktop/bullseye/appgroups/multimedia @@ -0,0 +1 @@ +../../buster/appgroups/multimedia \ No newline at end of file diff --git a/config/desktop/bullseye/appgroups/office b/config/desktop/bullseye/appgroups/office new file mode 120000 index 000000000..02e2dcb6f --- /dev/null +++ b/config/desktop/bullseye/appgroups/office @@ -0,0 +1 @@ +../../buster/appgroups/office \ No newline at end of file diff --git a/config/desktop/bullseye/appgroups/programming b/config/desktop/bullseye/appgroups/programming new file mode 120000 index 000000000..aa2c6e720 --- /dev/null +++ b/config/desktop/bullseye/appgroups/programming @@ -0,0 +1 @@ +../../buster/appgroups/programming \ No newline at end of file diff --git a/config/desktop/bullseye/appgroups/remote_desktop b/config/desktop/bullseye/appgroups/remote_desktop new file mode 120000 index 000000000..f3f905728 --- /dev/null +++ b/config/desktop/bullseye/appgroups/remote_desktop @@ -0,0 +1 @@ +../../buster/appgroups/remote_desktop \ No newline at end of file diff --git a/config/desktop/bullseye/environments/gnome b/config/desktop/bullseye/environments/gnome new file mode 120000 index 000000000..2cf0d20a5 --- /dev/null +++ b/config/desktop/bullseye/environments/gnome @@ -0,0 +1 @@ +../../buster/environments/gnome \ No newline at end of file diff --git a/config/desktop/bullseye/environments/mate/armbian/create_desktop_package.sh b/config/desktop/bullseye/environments/mate/armbian/create_desktop_package.sh new file mode 100644 index 000000000..25186ea4e --- /dev/null +++ b/config/desktop/bullseye/environments/mate/armbian/create_desktop_package.sh @@ -0,0 +1,43 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + +# install default desktop settings +mkdir -p "${destination}"/etc/skel +cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + +# install logo for login screen +mkdir -p "${destination}"/usr/share/pixmaps/armbian +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install wallpapers +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/armbian*.jpg "${destination}"/usr/share/backgrounds/armbian/ + +mkdir -p "${destination}"/usr/share/mate-background-properties +cat <<-EOF > "${destination}"/usr/share/mate-background-properties/armbian.xml + + + + + Armbian light + /usr/share/backgrounds/armbian/armbian18-Dre0x-Minum-light-3840x2160.jpg + zoom + #ffffff + #000000 + + + Armbian dark + /usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg + zoom + #ffffff + #000000 + + +EOF + +mkdir -p "${destination}"/usr/share/glib-2.0/schemas +cat <<-EOF > "${destination}"/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override +[org.gnome.desktop.background] +picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg' +show-desktop-icons=true +EOF diff --git a/config/desktop/bullseye/environments/mate/config_base/packages b/config/desktop/bullseye/environments/mate/config_base/packages new file mode 100644 index 000000000..a99670a68 --- /dev/null +++ b/config/desktop/bullseye/environments/mate/config_base/packages @@ -0,0 +1,25 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs-backends gvfs-fuse xfonts-base xinit +x11-xserver-utils mate-applets mate-applets-common mate-applet-brisk-menu mate-backgrounds +mate-calc mate-calc-common mate-common mate-control-center mate-control-center-common +mate-core mate-desktop mate-desktop-common mate-desktop-environment +mate-desktop-environment-core mate-desktop-environment-extra +mate-desktop-environment-extras mate-dock-applet mate-equake-applet mate-icon-theme +mate-indicator-applet mate-indicator-applet-common mate-media mate-media-common mate-menu +mate-menus mate-netbook mate-netbook-common mate-notification-daemon +mate-notification-daemon-common mate-panel mate-panel-common mate-polkit mate-polkit-bin +mate-polkit-common mate-power-manager mate-power-manager-common mate-screensaver +mate-screensaver-common mate-sensors-applet mate-sensors-applet-common +debian-mate-default-settings mate-session-manager mate-settings-daemon +mate-settings-daemon-common mate-settings-daemon-dev mate-system-monitor +mate-system-monitor-common mate-terminal mate-terminal-common mate-themes mate-tweak +mate-user-guide mate-user-share mate-user-share-common mate-utils mate-utils-common +mate-window-applets-common mate-window-buttons-applet mate-window-menu-applet +mate-window-title-applet mate-applet-appmenu mate-sntray-plugin gtk2-engines +gtk2-engines-murrine gtk2-engines-pixbuf libgtk2.0-bin network-manager-gnome +gnome-keyring gcr libgck-1-0 p11-kit pasystray pavucontrol pulseaudio pavumeter +bluez bluez-tools pulseaudio-module-bluetooth blueman libpam-gnome-keyring +libgl1-mesa-dri profile-sync-daemon gnome-orca numix-gtk-theme synaptic apt-xapian-index +lightdm lightdm-gtk-greeter-settings numix-gtk-theme dbus-x11 dictionaries-common +hunspell-en-us tracker tracker-extract tracker-miner-fs gnome-packagekit +apt-config-auto-update policykit-1 profile-sync-daemon software-properties-common +system-config-printer system-config-printer-common printer-driver-all smbclient cifs-utils gdebi diff --git a/config/desktop/bullseye/environments/mate/config_base/packages.uninstall b/config/desktop/bullseye/environments/mate/config_base/packages.uninstall new file mode 100644 index 000000000..ec0762d75 --- /dev/null +++ b/config/desktop/bullseye/environments/mate/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 \ No newline at end of file diff --git a/config/desktop/bullseye/environments/mate/debian/postinst b/config/desktop/bullseye/environments/mate/debian/postinst new file mode 100644 index 000000000..55d40480f --- /dev/null +++ b/config/desktop/bullseye/environments/mate/debian/postinst @@ -0,0 +1,5 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi diff --git a/config/desktop/bullseye/environments/mate/support b/config/desktop/bullseye/environments/mate/support new file mode 100644 index 000000000..03cd47015 --- /dev/null +++ b/config/desktop/bullseye/environments/mate/support @@ -0,0 +1 @@ +csc diff --git a/config/desktop/bullseye/environments/xfce b/config/desktop/bullseye/environments/xfce new file mode 120000 index 000000000..d01871db2 --- /dev/null +++ b/config/desktop/bullseye/environments/xfce @@ -0,0 +1 @@ +../../buster/environments/xfce \ No newline at end of file diff --git a/config/desktop/buster/appgroups/browsers/armbian/create_desktop_package.sh b/config/desktop/buster/appgroups/browsers/armbian/create_desktop_package.sh new file mode 100644 index 000000000..a1bc70a52 --- /dev/null +++ b/config/desktop/buster/appgroups/browsers/armbian/create_desktop_package.sh @@ -0,0 +1,4 @@ +# install optimized browser configurations +cp "${SRC}"/packages/blobs/desktop/chromium.conf "${destination}"/etc/armbian +cp "${SRC}"/packages/blobs/desktop/firefox.conf "${destination}"/etc/armbian +cp -R "${SRC}"/packages/blobs/desktop/chromium "${destination}"/etc/armbian diff --git a/config/desktop/buster/appgroups/browsers/debian/postinst b/config/desktop/buster/appgroups/browsers/debian/postinst new file mode 100644 index 000000000..831479914 --- /dev/null +++ b/config/desktop/buster/appgroups/browsers/debian/postinst @@ -0,0 +1,12 @@ +# overwrite stock chromium configuration +if [ -d /etc/chromium-browser/ ]; then ln -sf /etc/armbian/chromium.conf /etc/chromium-browser/default; fi +if [ -d /etc/chromium.d/ ]; then ln -sf /etc/armbian/chromium.conf /etc/chromium.d/chromium.conf; fi +cp -R /etc/armbian/chromium /usr/share + +# overwrite stock firefox configuration +if [ -d /etc/firefox/ ]; then ln -sf /etc/armbian/firefox.conf /etc/firefox/syspref.js; fi +if [ -d /usr/lib/firefox-esr/ ]; then + ln -sf /etc/armbian/firefox.conf /usr/lib/firefox-esr/mozilla.cfg + echo 'pref("general.config.obscure_value", 0);' > /usr/lib/firefox-esr/defaults/pref/local-settings.js + echo 'pref("general.config.filename", "mozilla.cfg");' >> /usr/lib/firefox-esr/defaults/pref/local-settings.js +fi diff --git a/config/desktop/buster/appgroups/browsers/packages b/config/desktop/buster/appgroups/browsers/packages new file mode 100644 index 000000000..b09c9bccb --- /dev/null +++ b/config/desktop/buster/appgroups/browsers/packages @@ -0,0 +1 @@ +chromium firefox-esr diff --git a/config/desktop/buster/appgroups/chat/packages b/config/desktop/buster/appgroups/chat/packages new file mode 100644 index 000000000..43c58febc --- /dev/null +++ b/config/desktop/buster/appgroups/chat/packages @@ -0,0 +1 @@ +hexchat telegram-desktop diff --git a/config/desktop/buster/appgroups/desktop_tools/packages b/config/desktop/buster/appgroups/desktop_tools/packages new file mode 100644 index 000000000..6dac7b556 --- /dev/null +++ b/config/desktop/buster/appgroups/desktop_tools/packages @@ -0,0 +1 @@ +bleachbit fbi kazam diff --git a/config/desktop/buster/appgroups/editors/debian/postinst b/config/desktop/buster/appgroups/editors/debian/postinst new file mode 100644 index 000000000..e69de29bb diff --git a/config/desktop/buster/appgroups/editors/packages b/config/desktop/buster/appgroups/editors/packages new file mode 100644 index 000000000..af822b48c --- /dev/null +++ b/config/desktop/buster/appgroups/editors/packages @@ -0,0 +1 @@ +vim emacs geany code diff --git a/config/desktop/buster/appgroups/email/packages b/config/desktop/buster/appgroups/email/packages new file mode 100644 index 000000000..84daeddf7 --- /dev/null +++ b/config/desktop/buster/appgroups/email/packages @@ -0,0 +1 @@ +thunderbird diff --git a/config/desktop/buster/appgroups/internet-tools/packages b/config/desktop/buster/appgroups/internet-tools/packages new file mode 100644 index 000000000..02ac9d66e --- /dev/null +++ b/config/desktop/buster/appgroups/internet-tools/packages @@ -0,0 +1 @@ +filezilla putty diff --git a/config/desktop/buster/appgroups/internet/packages b/config/desktop/buster/appgroups/internet/packages new file mode 100644 index 000000000..46d09b09d --- /dev/null +++ b/config/desktop/buster/appgroups/internet/packages @@ -0,0 +1 @@ +qbittorrent transmission diff --git a/config/desktop/buster/appgroups/multimedia/packages b/config/desktop/buster/appgroups/multimedia/packages new file mode 100644 index 000000000..a92299ef1 --- /dev/null +++ b/config/desktop/buster/appgroups/multimedia/packages @@ -0,0 +1 @@ +mpv pithos gimp diff --git a/config/desktop/buster/appgroups/office/packages b/config/desktop/buster/appgroups/office/packages new file mode 100644 index 000000000..6a79d9929 --- /dev/null +++ b/config/desktop/buster/appgroups/office/packages @@ -0,0 +1 @@ +libreoffice libreoffice-style-tango diff --git a/config/desktop/buster/appgroups/programming/packages b/config/desktop/buster/appgroups/programming/packages new file mode 100644 index 000000000..0b9ee33b4 --- /dev/null +++ b/config/desktop/buster/appgroups/programming/packages @@ -0,0 +1 @@ +build-essential clang meld diff --git a/config/desktop/buster/appgroups/remote_desktop/packages b/config/desktop/buster/appgroups/remote_desktop/packages new file mode 100644 index 000000000..025a2f1dd --- /dev/null +++ b/config/desktop/buster/appgroups/remote_desktop/packages @@ -0,0 +1 @@ +remmina diff --git a/config/desktop/buster/environments/gnome/armbian/create_desktop_package.sh b/config/desktop/buster/environments/gnome/armbian/create_desktop_package.sh new file mode 100644 index 000000000..3f3edcc42 --- /dev/null +++ b/config/desktop/buster/environments/gnome/armbian/create_desktop_package.sh @@ -0,0 +1,32 @@ +# install default desktop settings +mkdir -p "${destination}"/etc/skel +cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + +# install logo for login screen +mkdir -p "${destination}"/usr/share/pixmaps/armbian +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install wallpapers +mkdir -p "${destination}"/usr/share/backgrounds/gnome/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/armbian*.jpg "${destination}"/usr/share/backgrounds/gnome/ +mkdir -p "${destination}"/usr/share/gnome-background-properties +cat <<-EOF > "${destination}"/usr/share/gnome-background-properties/armbian.xml + + + + + Armbian light + /usr/share/backgrounds/gnome/armbian18-Dre0x-Minum-light-3840x2160.jpg + zoom + #ffffff + #000000 + + + Armbian dark + /usr/share/backgrounds/gnome/armbian03-Dre0x-Minum-dark-3840x2160.jpg + zoom + #ffffff + #000000 + + +EOF diff --git a/config/desktop/buster/environments/gnome/config_base/packages b/config/desktop/buster/environments/gnome/config_base/packages new file mode 100644 index 000000000..02bebb3d8 --- /dev/null +++ b/config/desktop/buster/environments/gnome/config_base/packages @@ -0,0 +1,24 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs-backends xfonts-base xinit bubblewrap dbus-x11 dictionaries-common evolution-data-server +evolution-data-server-common gcr geoclue-2.0 gir1.2-accountsservice-1.0 gir1.2-atspi-2.0 gir1.2-gck-1 gir1.2-gcr-3 gir1.2-gdesktopenums-3.0 +gir1.2-gdm-1.0 gir1.2-geoclue-2.0 gir1.2-gnomebluetooth-1.0 gir1.2-gnomedesktop-3.0 gir1.2-graphene-1.0 gir1.2-gweather-3.0 gir1.2-ibus-1.0 +gir1.2-json-1.0 gir1.2-mutter-3 gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-polkit-1.0 gir1.2-rsvg-2.0 gir1.2-soup-2.4 gir1.2-upowerglib-1.0 gjs +gnome-desktop3-data gnome-keyring gnome-session-bin gnome-session-common gnome-settings-daemon gnome-settings-daemon-common gnome-shell +gnome-shell-common hunspell-en-us libaccountsservice0 libaspell15 libcamel-1.2-62 libebackend-1.2-10 libebook-1.2-19 libebook-contacts-1.2-2 +libecal-1.2-19 libedata-book-1.2-25 libedata-cal-1.2-29 libedataserver-1.2-23 libedataserverui-1.2-2 libenchant1c2a libfontenc1 libgck-1-0 +libgcr-base-3-1 libgcr-ui-3-1 libgdata-common libgdata22 libgdm1 libgeoclue-2-0 libgeocode-glib0 libgjs0g libgnome-autoar-0-0 +libgnome-bluetooth13 libgnome-desktop-3-17 libgoa-1.0-0b libgoa-1.0-common libgraphene-1.0-0 libgweather-3-15 libgweather-common libibus-1.0-5 +libical3 libimobiledevice6 libjavascriptcoregtk-4.0-18 libmutter-3-0 libnma0 libphonenumber7 libplist3 libprotobuf17 libtext-iconv-perl +libunwind8 libupower-glib3 libusbmuxd4 libwebkit2gtk-4.0-37 libxaw7 libxfont2 libxkbfile1 libxmu6 libxmuu1 libxtst6 mutter mutter-common +p11-kit p11-kit-modules pinentry-gnome3 upower x11-xkb-utils x11-xserver-utils xdg-dbus-proxy xserver-common xwayland zenity zenity-common +gnome-session gdm3 terminator gnome-control-center libasound2 anacron at-spi2-core dmz-cursor-theme fonts-freefont-ttf fonts-urw-base35 +foomatic-db-compressed-ppds genisoimage ghostscript ghostscript-x gir1.2-goa-1.0 gir1.2-snapd-1 gnome-menus gnome-shell-extension-appindicator +gnome-shell-extension-desktop-icons gvfs-bin inputattach libasound2-plugins libatk-adaptor libcairo-gobject-perl libcairo-perl libcue2 +libdee-1.0-4 libexempi8 libexiv2-14 libextutils-depends-perl libextutils-pkgconfig-perl libgexiv2-2 libglib-object-introspection-perl +libglib-perl libglu1-mesa libgs9 libgs9-common libgsf-1-114 libgsf-1-common libgtk3-perl libgxps2 libidn11 libijs-0.35 libjbig2dec0 +libnautilus-extension1a libnotify-bin libpaper1 libpoppler-glib8 libpulsedsp libsasl2-modules libspeexdsp1 libtotem-plparser-common +libtotem-plparser18 libtracker-control-2.0-0 libtracker-miner-2.0-0 libtracker-sparql-2.0-0 libu2f-udev libxxf86dga1 libyelp0 nautilus +nautilus-data openprinting-ppds poppler-data printer-driver-pnm2ppa pulseaudio pulseaudio-utils python3-click python3-colorama python3-dateutil +python3-debconf python3-debian python3-distutils python3-distutils-extra python3-yaml software-properties-gtk spice-vdagent tracker tracker-extract +tracker-miner-fs gnome-packagekit apt-config-auto-update x11-apps x11-session-utils x11-utils xdg-desktop-portal xdg-user-dirs xdg-user-dirs-gtk +xinput xorg xorg-docs-core yelp yelp-xsl pulseaudio-module-bluetooth pavucontrol gnome-shell-extension-trash cups system-config-printer-common +system-config-printer gdebi diff --git a/config/desktop/buster/environments/gnome/debian/postinst b/config/desktop/buster/environments/gnome/debian/postinst new file mode 100644 index 000000000..55fb3a5c8 --- /dev/null +++ b/config/desktop/buster/environments/gnome/debian/postinst @@ -0,0 +1,44 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi + +# set wallpapper to armbian + +keys=/etc/dconf/db/local.d/00-bg +locks=/etc/dconf/db/local.d/locks/background +profile=/etc/dconf/profile/user + +install -Dv /dev/null $keys +install -Dv /dev/null $locks +install -Dv /dev/null $profile + +echo "[org/gnome/desktop/background] +picture-uri='file:///usr/share/backgrounds/gnome/armbian03-Dre0x-Minum-dark-3840x2160.jpg' +picture-options='zoom' +primary-color='#456789' +secondary-color='#FFFFFF' + +[org/gnome/desktop/screensaver] +picture-uri='file:///usr/share/backgrounds/gnome/armbian03-Dre0x-Minum-dark-blurred-3840x2160.jpg' +picture-options='zoom' +primary-color='#456789' +secondary-color='#FFFFFF'" >> $keys + +echo "/org/gnome/desktop/background/picture-uri +/org/gnome/desktop/background/picture-options +/org/gnome/desktop/background/primary-color +/org/gnome/desktop/background/secondary-color + +/org/gnome/desktop/screensaver/picture-uri +/org/gnome/desktop/screensaver/picture-options +/org/gnome/desktop/screensaver/primary-color +/org/gnome/desktop/screensaver/secondary-color" >> $locks + +echo "user-db:user +system-db:local" >> $profile + +dconf update + +#sudo apt-get -y remove gnome-shell-extension-desktop-icons diff --git a/config/desktop/buster/environments/gnome/only_for b/config/desktop/buster/environments/gnome/only_for new file mode 100644 index 000000000..d40006758 --- /dev/null +++ b/config/desktop/buster/environments/gnome/only_for @@ -0,0 +1 @@ +arm64 diff --git a/config/desktop/buster/environments/gnome/support b/config/desktop/buster/environments/gnome/support new file mode 100644 index 000000000..a23e5fb94 --- /dev/null +++ b/config/desktop/buster/environments/gnome/support @@ -0,0 +1 @@ +supported diff --git a/config/desktop/buster/environments/lxde/armbian/create_desktop_package.sh b/config/desktop/buster/environments/lxde/armbian/create_desktop_package.sh new file mode 100644 index 000000000..25186ea4e --- /dev/null +++ b/config/desktop/buster/environments/lxde/armbian/create_desktop_package.sh @@ -0,0 +1,43 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + +# install default desktop settings +mkdir -p "${destination}"/etc/skel +cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + +# install logo for login screen +mkdir -p "${destination}"/usr/share/pixmaps/armbian +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install wallpapers +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/armbian*.jpg "${destination}"/usr/share/backgrounds/armbian/ + +mkdir -p "${destination}"/usr/share/mate-background-properties +cat <<-EOF > "${destination}"/usr/share/mate-background-properties/armbian.xml + + + + + Armbian light + /usr/share/backgrounds/armbian/armbian18-Dre0x-Minum-light-3840x2160.jpg + zoom + #ffffff + #000000 + + + Armbian dark + /usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg + zoom + #ffffff + #000000 + + +EOF + +mkdir -p "${destination}"/usr/share/glib-2.0/schemas +cat <<-EOF > "${destination}"/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override +[org.gnome.desktop.background] +picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg' +show-desktop-icons=true +EOF diff --git a/config/desktop/buster/environments/lxde/config_base/packages b/config/desktop/buster/environments/lxde/config_base/packages new file mode 100644 index 000000000..2387d2504 --- /dev/null +++ b/config/desktop/buster/environments/lxde/config_base/packages @@ -0,0 +1,14 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs-backends xfonts-base xinit x11-xserver-utils lxappearance lxappearance-obconf lxde-common +openbox-lxde-session lxde-icon-theme lxde lxde-core lxdm lxinput lxlauncher lxmenu-data lxmusic lxpanel lxpanel-data lxrandr +lxde-settings-daemon lxlock lxpolkit lxsession lxsession-edit lxsession-logout lxtask lxterminal libmenu-cache-bin libmenu-cache-doc +libmenu-cache3 task-lxde-desktop xinit xorg-docs-core x11-apps xorg-docs xscreensaver xfonts-100dpi xfonts-75dpi xfonts-scalable +xcursor-themes xdg-user-dirs xdg-user-dirs-gtk keyutils redshift bluez bluez-tools bluez-cups brltty orca network-manager-pptp +network-manager-l2tp network-manager-openconnect network-manager-openvpn network-manager-openvpn-gnome network-manager-vpnc cups +cups-bsd cups-filters liblouisutdml-bin liblouis-bin blueman pulseaudio pulseaudio-module-bluetooth pamix pasystray pavucontrol +pavumeter pavucontrol-qt gstreamer1.0-packagekit gstreamer1.0-plugins-base-apps libproxy1-plugin-gsettings libproxy1-plugin-networkmanager +libu2f-udev libwmf0.2-7-gtk openprinting-ppds p7zip-full anacron doc-base foomatic-db-compressed-ppds ghostscript-x inputattach libatk-adaptor +libgail-common libnotify-bin software-properties-gtk speech-dispatcher spice-vdagent zip lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings +numix-gtk-theme terminator bubblewrap dbus-x11 dictionaries-common hunspell-en-us tracker tracker-extract tracker-miner-fs libgl1-mesa-dri +policykit-1 profile-sync-daemon system-config-printer system-config-printer-common printer-driver-all software-properties-common samba +smbclient cifs-utils synaptic apt-xapian-index gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf libgtk2.0-bin network-manager-gnome +gnome-keyring gcr libgck-1-0 p11-kit libpam-gnome-keyring gdebi diff --git a/config/desktop/buster/environments/lxde/debian/postinst b/config/desktop/buster/environments/lxde/debian/postinst new file mode 100644 index 000000000..55d40480f --- /dev/null +++ b/config/desktop/buster/environments/lxde/debian/postinst @@ -0,0 +1,5 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi diff --git a/config/desktop/buster/environments/lxde/support b/config/desktop/buster/environments/lxde/support new file mode 100644 index 000000000..03cd47015 --- /dev/null +++ b/config/desktop/buster/environments/lxde/support @@ -0,0 +1 @@ +csc diff --git a/config/desktop/buster/environments/mate/armbian/create_desktop_package.sh b/config/desktop/buster/environments/mate/armbian/create_desktop_package.sh new file mode 100644 index 000000000..25186ea4e --- /dev/null +++ b/config/desktop/buster/environments/mate/armbian/create_desktop_package.sh @@ -0,0 +1,43 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + +# install default desktop settings +mkdir -p "${destination}"/etc/skel +cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + +# install logo for login screen +mkdir -p "${destination}"/usr/share/pixmaps/armbian +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install wallpapers +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/armbian*.jpg "${destination}"/usr/share/backgrounds/armbian/ + +mkdir -p "${destination}"/usr/share/mate-background-properties +cat <<-EOF > "${destination}"/usr/share/mate-background-properties/armbian.xml + + + + + Armbian light + /usr/share/backgrounds/armbian/armbian18-Dre0x-Minum-light-3840x2160.jpg + zoom + #ffffff + #000000 + + + Armbian dark + /usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg + zoom + #ffffff + #000000 + + +EOF + +mkdir -p "${destination}"/usr/share/glib-2.0/schemas +cat <<-EOF > "${destination}"/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override +[org.gnome.desktop.background] +picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg' +show-desktop-icons=true +EOF diff --git a/config/desktop/buster/environments/mate/config_base/packages b/config/desktop/buster/environments/mate/config_base/packages new file mode 100644 index 000000000..5a1b3b5a3 --- /dev/null +++ b/config/desktop/buster/environments/mate/config_base/packages @@ -0,0 +1,15 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs-backends gvfs-fuse xfonts-base xinit x11-xserver-utils mate-applets mate-applets-common +mate-applet-brisk-menu mate-backgrounds mate-calc mate-calc-common mate-common mate-control-center mate-control-center-common mate-core +mate-desktop mate-desktop-common mate-desktop-environment mate-desktop-environment-core mate-desktop-environment-extra +mate-desktop-environment-extras mate-dock-applet mate-equake-applet mate-icon-theme mate-icon-theme-faenza mate-indicator-applet +mate-indicator-applet-common mate-media mate-media-common mate-menu mate-menus mate-netbook mate-netbook-common mate-notification-daemon +mate-notification-daemon-common mate-panel mate-panel-common mate-polkit mate-polkit-bin mate-polkit-common mate-power-manager +mate-power-manager-common mate-screensaver mate-screensaver-common mate-sensors-applet mate-sensors-applet-common debian-mate-default-settings +mate-session-manager mate-settings-daemon mate-settings-daemon-common mate-settings-daemon-dev mate-system-monitor mate-system-monitor-common +mate-terminal mate-terminal-common mate-themes mate-tweak mate-user-guide mate-user-share mate-user-share-common mate-utils mate-utils-common +mate-window-applets-common mate-window-buttons-applet mate-window-menu-applet mate-window-title-applet mate-applet-appmenu mate-sntray-plugin +gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf libgtk2.0-bin network-manager-gnome gnome-keyring gcr libgck-1-0 p11-kit pasystray +pavucontrol pulseaudio pavumeter bluez bluez-tools pulseaudio-module-bluetooth blueman libpam-gnome-keyring libgl1-mesa-dri profile-sync-daemon +gnome-orca numix-gtk-theme synaptic apt-xapian-index lightdm lightdm-gtk-greeter-settings numix-gtk-theme dbus-x11 dictionaries-common +hunspell-en-us tracker tracker-extract tracker-miner-fs gnome-packagekit apt-config-auto-update policykit-1 profile-sync-daemon +software-properties-common system-config-printer system-config-printer-common printer-driver-all smbclient cifs-utils gdebi diff --git a/config/desktop/buster/environments/mate/config_base/packages.uninstall b/config/desktop/buster/environments/mate/config_base/packages.uninstall new file mode 100644 index 000000000..ec0762d75 --- /dev/null +++ b/config/desktop/buster/environments/mate/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 \ No newline at end of file diff --git a/config/desktop/buster/environments/mate/debian/postinst b/config/desktop/buster/environments/mate/debian/postinst new file mode 100644 index 000000000..55d40480f --- /dev/null +++ b/config/desktop/buster/environments/mate/debian/postinst @@ -0,0 +1,5 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi diff --git a/config/desktop/buster/environments/mate/support b/config/desktop/buster/environments/mate/support new file mode 100644 index 000000000..03cd47015 --- /dev/null +++ b/config/desktop/buster/environments/mate/support @@ -0,0 +1 @@ +csc diff --git a/config/desktop/buster/environments/xfce/armbian/create_desktop_package.sh b/config/desktop/buster/environments/xfce/armbian/create_desktop_package.sh new file mode 100644 index 000000000..4b1167fed --- /dev/null +++ b/config/desktop/buster/environments/xfce/armbian/create_desktop_package.sh @@ -0,0 +1,22 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + +# install default desktop settings +mkdir -p "${destination}"/etc/skel +cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + +# using different icon pack. Workaround due to this bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867779 +sed -i 's//g' \ +"${destination}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml + +# install dedicated startup icons +mkdir -p "${destination}"/usr/share/pixmaps/armbian "${destination}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/ +cp "${SRC}/packages/blobs/desktop/icons/${DISTRIBUTION,,}.png" "${destination}"/usr/share/pixmaps/armbian +sed 's/xenial.png/'"${DISTRIBUTION,,}"'.png/' -i "${destination}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml + +# install logo for login screen +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install wallpapers +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/armbian*.jpg "${destination}"/usr/share/backgrounds/armbian/ diff --git a/config/desktop/buster/environments/xfce/config_base/packages b/config/desktop/buster/environments/xfce/config_base/packages new file mode 100644 index 000000000..9074cdcf1 --- /dev/null +++ b/config/desktop/buster/environments/xfce/config_base/packages @@ -0,0 +1,7 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs-backends gvfs-fuse xfonts-base xinit x11-xserver-utils xfce4 lxtask xfce4-terminal +thunar-volman gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf libgtk2.0-bin network-manager-gnome xfce4-notifyd gnome-keyring +gcr libgck-1-0 p11-kit pasystray pavucontrol pulseaudio pavumeter bluez bluez-tools pulseaudio-module-bluetooth blueman libpam-gnome-keyring +libgl1-mesa-dri policykit-1 profile-sync-daemon gnome-orca numix-gtk-theme synaptic apt-xapian-index lightdm lightdm-gtk-greeter +lightdm-gtk-greeter-settings numix-gtk-theme system-config-printer system-config-printer-common printer-driver-all dbus-x11 dbus-x11 +dictionaries-common hunspell-en-us tracker tracker-extract tracker-miner-fs policykit-1 profile-sync-daemon software-properties-common +samba smbclient cifs-utils xfce4-screenshooter gdebi diff --git a/config/desktop/buster/environments/xfce/config_base/packages.uninstall b/config/desktop/buster/environments/xfce/config_base/packages.uninstall new file mode 100644 index 000000000..ec0762d75 --- /dev/null +++ b/config/desktop/buster/environments/xfce/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 \ No newline at end of file diff --git a/config/desktop/buster/environments/xfce/debian/postinst b/config/desktop/buster/environments/xfce/debian/postinst new file mode 100644 index 000000000..5a52d6ee7 --- /dev/null +++ b/config/desktop/buster/environments/xfce/debian/postinst @@ -0,0 +1,18 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Adjust menu +if [ -f /etc/xdg/menus/xfce-applications.menu ]; then +sed -i -n '/Settings<\/Menuname>/{p;:a;N;/xfce4-session-logout.desktop<\/Filename>/!ba;s/.*\n/\ +\t\n\t\n \n armbian-donate.desktop<\/Filename>\ +\n armbian-support.desktop<\/Filename>\n/};p' /etc/xdg/menus/xfce-applications.menu +fi + +# Hide few items +if [ -f /usr/share/applications/display-im6.q16.desktop ]; then mv /usr/share/applications/display-im6.q16.desktop /usr/share/applications/display-im6.q16.desktop.hidden; fi +if [ -f /usr/share/applications/display-im6.desktop ]]; then mv /usr/share/applications/display-im6.desktop /usr/share/applications/display-im6.desktop.hidden; fi +if [ -f /usr/share/applications/vim.desktop ]]; then mv /usr/share/applications/vim.desktop /usr/share/applications/vim.desktop.hidden; fi +if [ -f /usr/share/applications/libreoffice-startcenter.desktop ]]; then mv /usr/share/applications/libreoffice-startcenter.desktop /usr/share/applications/libreoffice-startcenter.desktop.hidden; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi diff --git a/config/desktop/buster/environments/xfce/support b/config/desktop/buster/environments/xfce/support new file mode 100644 index 000000000..a23e5fb94 --- /dev/null +++ b/config/desktop/buster/environments/xfce/support @@ -0,0 +1 @@ +supported diff --git a/config/desktop/focal/appgroups/3dsupport/packages b/config/desktop/focal/appgroups/3dsupport/packages new file mode 100644 index 000000000..e9bd455de --- /dev/null +++ b/config/desktop/focal/appgroups/3dsupport/packages @@ -0,0 +1 @@ +mesa-utils mesa-utils-extra glmark2 diff --git a/config/desktop/focal/appgroups/3dsupport/sources/apt/oibaf.source b/config/desktop/focal/appgroups/3dsupport/sources/apt/oibaf.source new file mode 100644 index 000000000..2e6ad7c70 --- /dev/null +++ b/config/desktop/focal/appgroups/3dsupport/sources/apt/oibaf.source @@ -0,0 +1 @@ +ppa:oibaf/graphics-drivers \ No newline at end of file diff --git a/config/desktop/focal/appgroups/browsers/armbian/create_desktop_package.sh b/config/desktop/focal/appgroups/browsers/armbian/create_desktop_package.sh new file mode 100644 index 000000000..a1bc70a52 --- /dev/null +++ b/config/desktop/focal/appgroups/browsers/armbian/create_desktop_package.sh @@ -0,0 +1,4 @@ +# install optimized browser configurations +cp "${SRC}"/packages/blobs/desktop/chromium.conf "${destination}"/etc/armbian +cp "${SRC}"/packages/blobs/desktop/firefox.conf "${destination}"/etc/armbian +cp -R "${SRC}"/packages/blobs/desktop/chromium "${destination}"/etc/armbian diff --git a/config/desktop/focal/appgroups/browsers/debian/postinst b/config/desktop/focal/appgroups/browsers/debian/postinst new file mode 100644 index 000000000..831479914 --- /dev/null +++ b/config/desktop/focal/appgroups/browsers/debian/postinst @@ -0,0 +1,12 @@ +# overwrite stock chromium configuration +if [ -d /etc/chromium-browser/ ]; then ln -sf /etc/armbian/chromium.conf /etc/chromium-browser/default; fi +if [ -d /etc/chromium.d/ ]; then ln -sf /etc/armbian/chromium.conf /etc/chromium.d/chromium.conf; fi +cp -R /etc/armbian/chromium /usr/share + +# overwrite stock firefox configuration +if [ -d /etc/firefox/ ]; then ln -sf /etc/armbian/firefox.conf /etc/firefox/syspref.js; fi +if [ -d /usr/lib/firefox-esr/ ]; then + ln -sf /etc/armbian/firefox.conf /usr/lib/firefox-esr/mozilla.cfg + echo 'pref("general.config.obscure_value", 0);' > /usr/lib/firefox-esr/defaults/pref/local-settings.js + echo 'pref("general.config.filename", "mozilla.cfg");' >> /usr/lib/firefox-esr/defaults/pref/local-settings.js +fi diff --git a/config/desktop/focal/appgroups/browsers/packages b/config/desktop/focal/appgroups/browsers/packages new file mode 100644 index 000000000..dbfb8f931 --- /dev/null +++ b/config/desktop/focal/appgroups/browsers/packages @@ -0,0 +1 @@ +firefox diff --git a/config/desktop/focal/appgroups/chat/packages b/config/desktop/focal/appgroups/chat/packages new file mode 100644 index 000000000..6cf68e662 --- /dev/null +++ b/config/desktop/focal/appgroups/chat/packages @@ -0,0 +1 @@ +hexchat \ No newline at end of file diff --git a/config/desktop/focal/appgroups/desktop_tools/packages b/config/desktop/focal/appgroups/desktop_tools/packages new file mode 100644 index 000000000..0771e8c1c --- /dev/null +++ b/config/desktop/focal/appgroups/desktop_tools/packages @@ -0,0 +1 @@ +bleachbit fbi kazam gparted diff --git a/config/desktop/focal/appgroups/editors/debian/postinst b/config/desktop/focal/appgroups/editors/debian/postinst new file mode 100644 index 000000000..e69de29bb diff --git a/config/desktop/focal/appgroups/editors/packages b/config/desktop/focal/appgroups/editors/packages new file mode 100644 index 000000000..0ce5d2504 --- /dev/null +++ b/config/desktop/focal/appgroups/editors/packages @@ -0,0 +1 @@ +vim emacs notepadqq diff --git a/config/desktop/focal/appgroups/email/packages b/config/desktop/focal/appgroups/email/packages new file mode 100644 index 000000000..84daeddf7 --- /dev/null +++ b/config/desktop/focal/appgroups/email/packages @@ -0,0 +1 @@ +thunderbird diff --git a/config/desktop/focal/appgroups/internet/packages b/config/desktop/focal/appgroups/internet/packages new file mode 100644 index 000000000..d67c64abf --- /dev/null +++ b/config/desktop/focal/appgroups/internet/packages @@ -0,0 +1 @@ +transmission transmission-remote-gtk filezilla putty diff --git a/config/desktop/focal/appgroups/languages/packages b/config/desktop/focal/appgroups/languages/packages new file mode 100644 index 000000000..491aa5c30 --- /dev/null +++ b/config/desktop/focal/appgroups/languages/packages @@ -0,0 +1,2 @@ +language-pack-gnome-sl language-pack-gnome-de language-pack-gnome-fr language-pack-gnome-it +language-pack-gnome-es language-pack-gnome-pt language-pack-gnome-ru diff --git a/config/desktop/focal/appgroups/multimedia/packages b/config/desktop/focal/appgroups/multimedia/packages new file mode 100644 index 000000000..0043ac698 --- /dev/null +++ b/config/desktop/focal/appgroups/multimedia/packages @@ -0,0 +1 @@ +mpv gimp celluloid diff --git a/config/desktop/focal/appgroups/office/packages b/config/desktop/focal/appgroups/office/packages new file mode 100644 index 000000000..f23d8ffb3 --- /dev/null +++ b/config/desktop/focal/appgroups/office/packages @@ -0,0 +1 @@ +libreoffice libreoffice-style-elementary simple-scan diff --git a/config/desktop/focal/appgroups/programming/custom/desktops/gnome/packages b/config/desktop/focal/appgroups/programming/custom/desktops/gnome/packages new file mode 100644 index 000000000..f9858e1ca --- /dev/null +++ b/config/desktop/focal/appgroups/programming/custom/desktops/gnome/packages @@ -0,0 +1 @@ +gnome-builder geany diff --git a/config/desktop/focal/appgroups/programming/custom/desktops/kde/packages b/config/desktop/focal/appgroups/programming/custom/desktops/kde/packages new file mode 100644 index 000000000..1dafd1928 --- /dev/null +++ b/config/desktop/focal/appgroups/programming/custom/desktops/kde/packages @@ -0,0 +1 @@ +kdevelop qtcreator diff --git a/config/desktop/focal/appgroups/programming/packages b/config/desktop/focal/appgroups/programming/packages new file mode 100644 index 000000000..c91b3576e --- /dev/null +++ b/config/desktop/focal/appgroups/programming/packages @@ -0,0 +1 @@ +build-essential clang meld regexxer diff --git a/config/desktop/focal/appgroups/remote_desktop/packages b/config/desktop/focal/appgroups/remote_desktop/packages new file mode 100644 index 000000000..025a2f1dd --- /dev/null +++ b/config/desktop/focal/appgroups/remote_desktop/packages @@ -0,0 +1 @@ +remmina diff --git a/config/desktop/focal/environments/budgie/armbian/create_desktop_package.sh b/config/desktop/focal/environments/budgie/armbian/create_desktop_package.sh new file mode 100644 index 000000000..fee2970ac --- /dev/null +++ b/config/desktop/focal/environments/budgie/armbian/create_desktop_package.sh @@ -0,0 +1,43 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + +# install default desktop settings +mkdir -p "${destination}"/etc/skel +cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + +# install logo for login screen +mkdir -p "${destination}"/usr/share/pixmaps/armbian +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install wallpapers +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/armbian*.jpg "${destination}"/usr/share/backgrounds/armbian/ + +mkdir -p "${destination}"/usr/share/gnome-background-properties +cat <<-EOF > "${destination}"/usr/share/gnome-background-properties/armbian.xml + + + + + Armbian light + /usr/share/backgrounds/armbian/armbian18-Dre0x-Minum-light-3840x2160.jpg + zoom + #ffffff + #000000 + + + Armbian dark + /usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg + zoom + #ffffff + #000000 + + +EOF + +mkdir -p "${destination}"/usr/share/glib-2.0/schemas +cat <<-EOF > "${destination}"/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override +[org.gnome.desktop.background] +picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg' +show-desktop-icons=true +EOF \ No newline at end of file diff --git a/config/desktop/focal/environments/budgie/config_base/packages b/config/desktop/focal/environments/budgie/config_base/packages new file mode 100644 index 000000000..9f0ce77fa --- /dev/null +++ b/config/desktop/focal/environments/budgie/config_base/packages @@ -0,0 +1,18 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs-backends xfonts-base xinit x11-xserver-utils budgie-desktop budgie-app-launcher-applet +budgie-applications-menu-applet budgie-appmenu-applet budgie-brightness-controller-applet budgie-clockworks-applet budgie-countdown-applet +budgie-desktop-doc budgie-desktop-environment budgie-dropby-applet budgie-extras-common budgie-extras-daemon budgie-fuzzyclock-applet +budgie-hotcorners-applet budgie-indicator-applet budgie-kangaroo-applet budgie-keyboard-autoswitch-applet budgie-network-manager-applet +budgie-previews budgie-previews-applet budgie-quickchar budgie-quicknote-applet budgie-recentlyused-applet budgie-rotation-lock-applet +budgie-showtime-applet budgie-sntray-plugin budgie-takeabreak-applet budgie-trash-applet budgie-visualspace-applet budgie-wallpapers-focal +budgie-wallstreet budgie-weathershow-applet budgie-welcome budgie-window-mover-applet budgie-window-shuffler budgie-workspace-overview-applet +budgie-workspace-stopwatch-applet budgie-workspace-wallpaper-applet plank xinit xorg-docs-core x11-apps xorg-docs xscreensaver xfonts-100dpi +xfonts-75dpi xfonts-scalable xcursor-themes xdg-user-dirs xdg-user-dirs-gtk keyutils redshift bluez-tools bluez-cups brltty orca +policykit-desktop-privileges network-manager-pptp network-manager-l2tp network-manager-openconnect network-manager-openvpn +network-manager-openvpn-gnome network-manager-vpnc cups cups-bsd cups-filters liblouisutdml-bin liblouis-bin blueman pamix pasystray pavucontrol +pavumeter pavucontrol-qt gstreamer1.0-packagekit gstreamer1.0-plugins-base-apps libproxy1-plugin-gsettings libproxy1-plugin-networkmanager +libu2f-udev libwmf0.2-7-gtk openprinting-ppds p7zip-full policykit-desktop-privileges anacron doc-base foomatic-db-compressed-ppds +ghostscript-x inputattach kerneloops language-pack-en libatk-adaptor libgail-common libnotify-bin software-properties-gtk speech-dispatcher +spice-vdagent zip lightdm lightdm-gtk-greeter lightdm-settings lightdm-gtk-greeter-settings numix-gtk-theme terminator gnome-terminal bubblewrap +dbus-x11 dictionaries-common hunspell-en-us nautilus nautilus-data tracker tracker-extract tracker-miner-fs update-manager update-manager-core +update-notifier update-notifier-common libgl1-mesa-dri policykit-1 profile-sync-daemon system-config-printer system-config-printer-common +printer-driver-all software-properties-common samba smbclient cifs-utils pulseaudio-module-bluetooth gdebi diff --git a/config/desktop/focal/environments/budgie/config_base/packages.uninstall b/config/desktop/focal/environments/budgie/config_base/packages.uninstall new file mode 100644 index 000000000..ec0762d75 --- /dev/null +++ b/config/desktop/focal/environments/budgie/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 \ No newline at end of file diff --git a/config/desktop/focal/environments/budgie/debian/postinst b/config/desktop/focal/environments/budgie/debian/postinst new file mode 100644 index 000000000..9b2c58f8b --- /dev/null +++ b/config/desktop/focal/environments/budgie/debian/postinst @@ -0,0 +1,47 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi + +# set wallpapper to armbian + +keys=/etc/dconf/db/local.d/00-bg +locks=/etc/dconf/db/local.d/locks/background +profile=/etc/dconf/profile/user + +install -Dv /dev/null $keys +install -Dv /dev/null $locks +install -Dv /dev/null $profile + +echo "[org/budgie/desktop/background] +picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg' +picture-options='zoom' +primary-color='#456789' +secondary-color='#FFFFFF' + +[org/budgie/desktop/screensaver] +picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-blurred-3840x2160.jpg' +picture-options='zoom' +primary-color='#456789' +secondary-color='#FFFFFF'" >> $keys + +echo "/org/budgie/desktop/background/picture-uri +/org/budgie/desktop/background/picture-options +/org/budgie/desktop/background/primary-color +/org/budgie/desktop/background/secondary-color + +/org/budgie/desktop/screensaver/picture-uri +/org/budgie/desktop/screensaver/picture-options +/org/budgie/desktop/screensaver/primary-color +/org/budgie/desktop/screensaver/secondary-color" >> $locks + +echo "user-db:user +system-db:local" >> $profile + +dconf update + +#compile schemas +if [ -d /usr/share/glib-2.0/schemas ]; then + glib-compile-schemas /usr/share/glib-2.0/schemas +fi \ No newline at end of file diff --git a/config/desktop/focal/environments/budgie/only_for b/config/desktop/focal/environments/budgie/only_for new file mode 100644 index 000000000..d40006758 --- /dev/null +++ b/config/desktop/focal/environments/budgie/only_for @@ -0,0 +1 @@ +arm64 diff --git a/config/desktop/focal/environments/budgie/support b/config/desktop/focal/environments/budgie/support new file mode 100644 index 000000000..a23e5fb94 --- /dev/null +++ b/config/desktop/focal/environments/budgie/support @@ -0,0 +1 @@ +supported diff --git a/config/desktop/focal/environments/cinnamon/armbian/create_desktop_package.sh b/config/desktop/focal/environments/cinnamon/armbian/create_desktop_package.sh new file mode 100755 index 000000000..04ded11cb --- /dev/null +++ b/config/desktop/focal/environments/cinnamon/armbian/create_desktop_package.sh @@ -0,0 +1,49 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + +# install default desktop settings +mkdir -p "${destination}"/etc/skel +cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + +# install logo for login screen +mkdir -p "${destination}"/usr/share/pixmaps/armbian +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install wallpapers +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/*.jpg "${destination}"/usr/share/backgrounds/armbian/ +mkdir -p "${destination}"/usr/share/cinnamon-background-properties +cat <<-EOF > "${destination}"/usr/share/cinnamon-background-properties/armbian.xml + + + + + Armbian light + /usr/share/backgrounds/armbian/armbian18-Dre0x-Minum-light-3840x2160.jpg + zoom + #ffffff + #000000 + + + Armbian dark + /usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg + zoom + #ffffff + #000000 + + + Armbian uc + /usr/share/backgrounds/armbian/armbian-full-undeer-construction-3840-2160.jpg + zoom + #ffffff + #000000 + + + Armbian clear + /usr/share/backgrounds/armbian/Armbian-clear-rounded-bakcground-3840-2160.jpg + zoom + #ffffff + #000000 + + +EOF diff --git a/config/desktop/focal/environments/cinnamon/config_base/packages b/config/desktop/focal/environments/cinnamon/config_base/packages new file mode 100644 index 000000000..27c55a393 --- /dev/null +++ b/config/desktop/focal/environments/cinnamon/config_base/packages @@ -0,0 +1,16 @@ +xserver-xorg xserver-xorg-video-fbdev xfonts-base xinit x11-xserver-utils gvfs gvfs-backends gvfs-fuse gvfs-bin gvfs-libs gvfs-daemons +cinnamon cinnamon-common cinnamon-core cinnamon-control-center cinnamon-control-center-data cinnamon-desktop-data +cinnamon-screensaver cinnamon-session cinnamon-screensaver cinnamon-session-common cinnamon-settings-daemon cinnamon-control-center-goa +nemo nemo-data gir1.2-cinnamondesktop-3.0 gir1.2-cmenu-3.0 gir1.2-cvc-1.0 libcinnamon-desktop4 libcinnamon-menu-3-0 libcscreensaver0 libcvc0 +gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf libgtk2.0-bin lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings numix-gtk-theme +xorg-docs-core x11-apps xorg-docs xscreensaver xfonts-100dpi xfonts-75dpi xfonts-scalable xcursor-themes xdg-user-dirs xdg-user-dirs-gtk +ubuntu-drivers-common ubuntu-minimal keyutils redshift bluez-tools bluez-cups brltty orca policykit-desktop-privileges network-manager-pptp +network-manager-l2tp network-manager-openconnect network-manager-openvpn network-manager-openvpn-gnome network-manager-vpnc cups cups-bsd +cups-filters liblouisutdml-bin liblouis-bin blueman pamix pasystray pavucontrol pavumeter pavucontrol-qt gstreamer1.0-packagekit +gstreamer1.0-plugins-base-apps libproxy1-plugin-gsettings libproxy1-plugin-networkmanager libu2f-udev libwmf0.2-7-gtk openprinting-ppds +p7zip-full policykit-desktop-privileges anacron doc-base foomatic-db-compressed-ppds ghostscript-x inputattach kerneloops language-pack-en +libatk-adaptor libgail-common libnotify-bin software-properties-gtk speech-dispatcher spice-vdagent zip orca bubblewrap dbus-x11 +dictionaries-common hunspell-en-us tracker tracker-extract tracker-miner-fs update-manager update-manager-core update-notifier +update-notifier-common libgl1-mesa-dri policykit-1 profile-sync-daemon system-config-printer system-config-printer-common printer-driver-all +software-properties-common samba smbclient cifs-utils gnome-power-manager powermgmt-base libupower-glib3 ruby-power-assert plank +libplank-common libplank1 gdebi diff --git a/config/desktop/focal/environments/cinnamon/config_base/packages.uninstall b/config/desktop/focal/environments/cinnamon/config_base/packages.uninstall new file mode 100644 index 000000000..4b622d4aa --- /dev/null +++ b/config/desktop/focal/environments/cinnamon/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 diff --git a/config/desktop/focal/environments/cinnamon/config_meta/packages b/config/desktop/focal/environments/cinnamon/config_meta/packages new file mode 100755 index 000000000..3def0e077 --- /dev/null +++ b/config/desktop/focal/environments/cinnamon/config_meta/packages @@ -0,0 +1,16 @@ +xserver-xorg xserver-xorg-video-fbdev xfonts-base xinit x11-xserver-utils gvfs gvfs-backends gvfs-fuse gvfs-bin gvfs-libs gvfs-daemons +cinnamon cinnamon-desktop-environment cinnamon-common cinnamon-core cinnamon-control-center cinnamon-control-center-data cinnamon-desktop-data +cinnamon-screensaver cinnamon-session cinnamon-screensaver cinnamon-session-common cinnamon-settings-daemon cinnamon-control-center-goa +nemo nemo-data gir1.2-cinnamondesktop-3.0 gir1.2-cmenu-3.0 gir1.2-cvc-1.0 libcinnamon-desktop4 libcinnamon-menu-3-0 libcscreensaver0 libcvc0 +gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf libgtk2.0-bin lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings numix-gtk-theme +xorg-docs-core x11-apps xorg-docs xscreensaver xfonts-100dpi xfonts-75dpi xfonts-scalable xcursor-themes xdg-user-dirs xdg-user-dirs-gtk +ubuntu-drivers-common ubuntu-minimal keyutils redshift bluez-tools bluez-cups brltty orca policykit-desktop-privileges network-manager-pptp +network-manager-l2tp network-manager-openconnect network-manager-openvpn network-manager-openvpn-gnome network-manager-vpnc cups cups-bsd +cups-filters liblouisutdml-bin liblouis-bin blueman pamix pasystray pavucontrol pavumeter pavucontrol-qt gstreamer1.0-packagekit +gstreamer1.0-plugins-base-apps libproxy1-plugin-gsettings libproxy1-plugin-networkmanager libu2f-udev libwmf0.2-7-gtk openprinting-ppds +p7zip-full policykit-desktop-privileges anacron doc-base foomatic-db-compressed-ppds ghostscript-x inputattach kerneloops language-pack-en +libatk-adaptor libgail-common libnotify-bin software-properties-gtk speech-dispatcher spice-vdagent zip orca bubblewrap dbus-x11 +dictionaries-common hunspell-en-us tracker tracker-extract tracker-miner-fs update-manager update-manager-core update-notifier +update-notifier-common libgl1-mesa-dri policykit-1 profile-sync-daemon system-config-printer system-config-printer-common printer-driver-all +software-properties-common samba smbclient cifs-utils gnome-power-manager powermgmt-base libupower-glib3 ruby-power-assert plank +libplank-common libplank1 diff --git a/config/desktop/focal/environments/cinnamon/config_meta/packages.uninstall b/config/desktop/focal/environments/cinnamon/config_meta/packages.uninstall new file mode 100644 index 000000000..4b622d4aa --- /dev/null +++ b/config/desktop/focal/environments/cinnamon/config_meta/packages.uninstall @@ -0,0 +1 @@ +gdm3 diff --git a/config/desktop/focal/environments/cinnamon/debian/postinst b/config/desktop/focal/environments/cinnamon/debian/postinst new file mode 100755 index 000000000..4a1b4be32 --- /dev/null +++ b/config/desktop/focal/environments/cinnamon/debian/postinst @@ -0,0 +1,51 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi + +# set wallpapper to armbian + +keys=/etc/dconf/db/local.d/00-bg +locks=/etc/dconf/db/local.d/locks/background +profile=/etc/dconf/profile/user + +install -Dv /dev/null $keys +install -Dv /dev/null $locks +install -Dv /dev/null $profile + +echo "[org/cinnamon/desktop/background] +picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg' +picture-options='zoom' +primary-color='#456789' +secondary-color='#FFFFFF' + +[org/cinnamon/desktop/screensaver] +picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-blurred-3840x2160.jpg' +picture-options='zoom' +primary-color='#456789' +secondary-color='#FFFFFF'" >> $keys + +echo "/org/cinnamon/desktop/background/picture-uri +/org/cinnamon/desktop/background/picture-options +/org/cinnamon/desktop/background/primary-color +/org/cinnamon/desktop/background/secondary-color + +/org/cinnamon/desktop/screensaver/picture-uri +/org/cinnamon/desktop/screensaver/picture-options +/org/cinnamon/desktop/screensaver/primary-color +/org/cinnamon/desktop/screensaver/secondary-color" >> $locks + +echo "user-db:user +system-db:local" >> $profile + +dconf update + +#sudo apt-get -y remove cinnamon-shell-extension-desktop-icons + +#compile schemas +if [ -d /usr/share/glib-2.0/schemas ]; then + glib-compile-schemas /usr/share/glib-2.0/schemas +fi + + diff --git a/config/desktop/focal/environments/cinnamon/only_for b/config/desktop/focal/environments/cinnamon/only_for new file mode 100644 index 000000000..d40006758 --- /dev/null +++ b/config/desktop/focal/environments/cinnamon/only_for @@ -0,0 +1 @@ +arm64 diff --git a/config/desktop/focal/environments/cinnamon/support b/config/desktop/focal/environments/cinnamon/support new file mode 100644 index 000000000..a23e5fb94 --- /dev/null +++ b/config/desktop/focal/environments/cinnamon/support @@ -0,0 +1 @@ +supported diff --git a/config/desktop/focal/environments/deepin/armbian/create_desktop_package.sh b/config/desktop/focal/environments/deepin/armbian/create_desktop_package.sh new file mode 100644 index 000000000..6eb54a077 --- /dev/null +++ b/config/desktop/focal/environments/deepin/armbian/create_desktop_package.sh @@ -0,0 +1,10 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + +# install logo for login screen +mkdir -p "${destination}"/usr/share/pixmaps/armbian +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install backgrounds +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/*.jpg "${destination}"/usr/share/backgrounds/armbian/ diff --git a/config/desktop/focal/environments/deepin/config_base/armbian/create_desktop_package.sh b/config/desktop/focal/environments/deepin/config_base/armbian/create_desktop_package.sh new file mode 100644 index 000000000..8cfffc068 --- /dev/null +++ b/config/desktop/focal/environments/deepin/config_base/armbian/create_desktop_package.sh @@ -0,0 +1 @@ +# add config specific tweaks here diff --git a/config/desktop/focal/environments/deepin/config_base/packages b/config/desktop/focal/environments/deepin/config_base/packages new file mode 100644 index 000000000..9dac035f9 --- /dev/null +++ b/config/desktop/focal/environments/deepin/config_base/packages @@ -0,0 +1,18 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs gvfs-backends gvfs-fuse gvfs-bin gvfs-libs gvfs-daemons xfonts-base xinit x11-xserver-utils +deepin-desktop-base dde-desktop dde-api dde-dock dde-dock-onboard-plugin dde-launcher dde-control-center deepin-metacity deepin-wm +startdde dde-session-ui dde-file-manager dde-qt5integration dde-disk-mount-plugin deepin-gtk-theme deepin-sound-theme deepin-icon-theme +deepin-menu dde-daemon dde-account-faces deepin-desktop-schemas deepin-mutter dde-polkit-agent deepin-wm deepin-turbo deepin-turbo-booster +ubuntudde-default-settings ubuntudde-icon-theme deepin-voice-recorder deepin-screenshot dde-calendar deepin-music deepin-picker +deepin-gettext-tools deepin-image-viewer deepin-movie deepin-calculator deepin-shortcut-viewer deepin-system-monitor deepin-terminal +deepin-topbar deepin-deb-installer deepin-screensaver deepin-anything-server eject fonts-noto fonts-noto-color-emoji libdtkgui-bin +libdtkgui2 libdtkcore-bin gir1.2-deepin-mutter-3.0 lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings numix-gtk-theme xinit +xorg-docs-core x11-apps xorg-docs xscreensaver xfonts-100dpi xfonts-75dpi xfonts-scalable xcursor-themes xdg-user-dirs xdg-user-dirs-gtk +ubuntu-drivers-common ubuntu-minimal keyutils redshift bluez-tools bluez-cups brltty orca policykit-desktop-privileges network-manager-pptp +network-manager-l2tp network-manager-openconnect network-manager-openvpn network-manager-openvpn-gnome network-manager-vpnc cups cups-bsd +cups-filters liblouisutdml-bin liblouis-bin blueman pamix pasystray pavucontrol pavumeter pavucontrol-qt gstreamer1.0-packagekit +gstreamer1.0-plugins-base-apps libproxy1-plugin-gsettings libproxy1-plugin-networkmanager libu2f-udev libwmf0.2-7-gtk openprinting-ppds +p7zip-full policykit-desktop-privileges anacron doc-base foomatic-db-compressed-ppds ghostscript-x inputattach kerneloops language-pack-en +libatk-adaptor libgail-common libnotify-bin software-properties-gtk speech-dispatcher spice-vdagent zip orca bubblewrap dbus-x11 +dictionaries-common hunspell-en-us tracker tracker-extract tracker-miner-fs update-manager update-manager-core update-notifier +update-notifier-common libgl1-mesa-dri policykit-1 profile-sync-daemon system-config-printer system-config-printer-common printer-driver-all +software-properties-common samba smbclient cifs-utils gnome-power-manager powermgmt-base libupower-glib3 ruby-power-assert gdebi diff --git a/config/desktop/focal/environments/deepin/config_base/packages.uninstall b/config/desktop/focal/environments/deepin/config_base/packages.uninstall new file mode 100644 index 000000000..ec0762d75 --- /dev/null +++ b/config/desktop/focal/environments/deepin/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 \ No newline at end of file diff --git a/config/desktop/focal/environments/deepin/debian/postinst b/config/desktop/focal/environments/deepin/debian/postinst new file mode 100644 index 000000000..2b6769b58 --- /dev/null +++ b/config/desktop/focal/environments/deepin/debian/postinst @@ -0,0 +1,9 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi + +#remove linked file +rm /etc/alternatives/deepin-default-background +ln -s /usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg /etc/alternatives/deepin-default-background diff --git a/config/desktop/focal/environments/deepin/only_for b/config/desktop/focal/environments/deepin/only_for new file mode 100644 index 000000000..d40006758 --- /dev/null +++ b/config/desktop/focal/environments/deepin/only_for @@ -0,0 +1 @@ +arm64 diff --git a/config/desktop/focal/environments/deepin/support b/config/desktop/focal/environments/deepin/support new file mode 100644 index 000000000..03cd47015 --- /dev/null +++ b/config/desktop/focal/environments/deepin/support @@ -0,0 +1 @@ +csc diff --git a/config/desktop/focal/environments/gnome/armbian/create_desktop_package.sh b/config/desktop/focal/environments/gnome/armbian/create_desktop_package.sh new file mode 100644 index 000000000..8c3701c25 --- /dev/null +++ b/config/desktop/focal/environments/gnome/armbian/create_desktop_package.sh @@ -0,0 +1,35 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + +# install default desktop settings +mkdir -p "${destination}"/etc/skel +cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + +# install logo for login screen +mkdir -p "${destination}"/usr/share/pixmaps/armbian +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install wallpapers +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/armbian*.jpg "${destination}"/usr/share/backgrounds/armbian/ +mkdir -p "${destination}"/usr/share/gnome-background-properties +cat <<-EOF > "${destination}"/usr/share/gnome-background-properties/armbian.xml + + + + + Armbian light + /usr/share/backgrounds/armbian/armbian18-Dre0x-Minum-light-3840x2160.jpg + zoom + #ffffff + #000000 + + + Armbian dark + /usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg + zoom + #ffffff + #000000 + + +EOF diff --git a/config/desktop/focal/environments/gnome/config_base/packages b/config/desktop/focal/environments/gnome/config_base/packages new file mode 100644 index 000000000..f22396f0a --- /dev/null +++ b/config/desktop/focal/environments/gnome/config_base/packages @@ -0,0 +1,26 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs-backends xfonts-base xinit bubblewrap dbus-x11 dictionaries-common evolution-data-server +evolution-data-server-common gcr geoclue-2.0 gir1.2-accountsservice-1.0 gir1.2-atspi-2.0 gir1.2-gck-1 gir1.2-gcr-3 gir1.2-gdesktopenums-3.0 +gir1.2-gdm-1.0 gir1.2-geoclue-2.0 gir1.2-gnomebluetooth-1.0 gir1.2-gnomedesktop-3.0 gir1.2-graphene-1.0 gir1.2-gweather-3.0 gir1.2-ibus-1.0 +gir1.2-json-1.0 gir1.2-mutter-6 gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-polkit-1.0 gir1.2-rsvg-2.0 gir1.2-soup-2.4 gir1.2-upowerglib-1.0 gjs +gnome-desktop3-data gnome-keyring gnome-session-bin gnome-session-common gnome-settings-daemon gnome-settings-daemon-common gnome-shell +gnome-shell-common hunspell-en-us libaccountsservice0 libaspell15 libcamel-1.2-62 libebackend-1.2-10 libebook-1.2-20 libebook-contacts-1.2-3 +libecal-2.0-1 libedata-book-1.2-26 libedata-cal-2.0-1 libedataserver-1.2-24 libedataserverui-1.2-2 libenchant-2-2 libfontenc1 libgck-1-0 +libgcr-base-3-1 libgcr-ui-3-1 libgdata-common libgdata22 libgdm1 libgeoclue-2-0 libgeocode-glib0 libgjs0g libgnome-autoar-0-0 libgnome-bluetooth13 +libgnome-desktop-3-19 libgoa-1.0-0b libgoa-1.0-common libgraphene-1.0-0 libgweather-3-16 libgweather-common libibus-1.0-5 libical3 libimobiledevice6 +libjavascriptcoregtk-4.0-18 libmutter-6-0 libnma0 libphonenumber7 libplist3 libprotobuf17 libtext-iconv-perl libunwind8 libupower-glib3 libusbmuxd6 +libwebkit2gtk-4.0-37 libxaw7 libxfont2 libxkbfile1 libxmu6 libxmuu1 libxtst6 mutter mutter-common p11-kit p11-kit-modules pinentry-gnome3 upower +x11-xkb-utils x11-xserver-utils xdg-dbus-proxy xserver-common xwayland zenity zenity-common gnome-session gdm3 terminator gnome-control-center +alsa-base anacron at-spi2-core dmz-cursor-theme fonts-freefont-ttf fonts-urw-base35 foomatic-db-compressed-ppds genisoimage ghostscript ghostscript-x +gir1.2-goa-1.0 gir1.2-snapd-1 gnome-menus gnome-shell-extension-appindicator gnome-shell-extension-desktop-icons gvfs-bin inputattach +libasound2-plugins libatk-adaptor libcairo-gobject-perl libcairo-perl libcue2 libdee-1.0-4 libexempi8 libexiv2-27 libextutils-depends-perl +libextutils-pkgconfig-perl libgexiv2-2 libglib-object-introspection-perl libglib-perl libglu1-mesa libgs9 libgs9-common libgsf-1-114 +libgsf-1-common libgtk3-perl libgxps2 libidn11 libijs-0.35 libjbig2dec0 libnautilus-extension1a libnotify-bin libpaper1 libpoppler-glib8 +libpulsedsp libsasl2-modules libspeexdsp1 libtotem-plparser-common libtotem-plparser18 libtracker-control-2.0-0 libtracker-miner-2.0-0 +libtracker-sparql-2.0-0 libu2f-udev libunity-protocol-private0 libunity-scopes-json-def-desktop libunity9 libxxf86dga1 libyelp0 linux-sound-base +nautilus nautilus-data openprinting-ppds poppler-data printer-driver-pnm2ppa pulseaudio pulseaudio-utils python3-click python3-colorama +python3-dateutil python3-debconf python3-debian python3-distupgrade python3-update-manager python3-xkit python3-yaml software-properties-gtk +spice-vdagent tracker tracker-extract tracker-miner-fs update-manager update-manager-core update-notifier update-notifier-common x11-apps +x11-session-utils x11-utils xdg-desktop-portal xdg-user-dirs xdg-user-dirs-gtk xinput xorg xorg-docs-core yaru-theme-gnome-shell yelp yelp-xsl +pulseaudio-module-bluetooth pavucontrol gnome-shell-extension-trash cups system-config-printer-gnome ubuntu-desktop-minimal ubuntu-session +ubuntu-settings gnome-terminal synaptic gnome-packagekit gnome-system-tools gnome-tweak-tool gedit gpaste gnome-tweaks gnome-system-log +gnome-power-manager gnome-screensaver gnome-screenshot gnome-todo gnome-photos gpaint lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings gdebi gnome-screenshot diff --git a/config/desktop/focal/environments/gnome/config_base/packages.uninstall b/config/desktop/focal/environments/gnome/config_base/packages.uninstall new file mode 100644 index 000000000..ec0762d75 --- /dev/null +++ b/config/desktop/focal/environments/gnome/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 \ No newline at end of file diff --git a/config/desktop/focal/environments/gnome/debian/postinst b/config/desktop/focal/environments/gnome/debian/postinst new file mode 100644 index 000000000..70a21226f --- /dev/null +++ b/config/desktop/focal/environments/gnome/debian/postinst @@ -0,0 +1,49 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi + +# set wallpapper to armbian + +keys=/etc/dconf/db/local.d/00-bg +locks=/etc/dconf/db/local.d/locks/background +profile=/etc/dconf/profile/user + +install -Dv /dev/null $keys +install -Dv /dev/null $locks +install -Dv /dev/null $profile + +echo "[org/gnome/desktop/background] +picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg' +picture-options='zoom' +primary-color='#456789' +secondary-color='#FFFFFF' + +[org/gnome/desktop/screensaver] +picture-uri='file:///usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-blurred-3840x2160.jpg' +picture-options='zoom' +primary-color='#456789' +secondary-color='#FFFFFF'" >> $keys + +echo "/org/gnome/desktop/background/picture-uri +/org/gnome/desktop/background/picture-options +/org/gnome/desktop/background/primary-color +/org/gnome/desktop/background/secondary-color + +/org/gnome/desktop/screensaver/picture-uri +/org/gnome/desktop/screensaver/picture-options +/org/gnome/desktop/screensaver/primary-color +/org/gnome/desktop/screensaver/secondary-color" >> $locks + +echo "user-db:user +system-db:local" >> $profile + +dconf update + +#sudo apt-get -y remove gnome-shell-extension-desktop-icons + +#compile schemas +if [ -d /usr/share/glib-2.0/schemas ]; then + glib-compile-schemas /usr/share/glib-2.0/schemas +fi \ No newline at end of file diff --git a/config/desktop/focal/environments/gnome/only_for b/config/desktop/focal/environments/gnome/only_for new file mode 100644 index 000000000..d40006758 --- /dev/null +++ b/config/desktop/focal/environments/gnome/only_for @@ -0,0 +1 @@ +arm64 diff --git a/config/desktop/focal/environments/gnome/support b/config/desktop/focal/environments/gnome/support new file mode 100644 index 000000000..a23e5fb94 --- /dev/null +++ b/config/desktop/focal/environments/gnome/support @@ -0,0 +1 @@ +supported diff --git a/config/desktop/focal/environments/mate/armbian/create_desktop_package.sh b/config/desktop/focal/environments/mate/armbian/create_desktop_package.sh new file mode 100644 index 000000000..c17d6e4b5 --- /dev/null +++ b/config/desktop/focal/environments/mate/armbian/create_desktop_package.sh @@ -0,0 +1,49 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian +# install default desktop settings + +mkdir -p "${destination}"/etc/skel +cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + +# install logo for login screen +mkdir -p "${destination}"/usr/share/pixmaps/armbian +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install wallpapers +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/*.jpg "${destination}"/usr/share/backgrounds/armbian/ +mkdir -p "${destination}"/usr/share/mate-background-properties +cat <<-EOF > "${destination}"/usr/share/mate-background-properties/armbian.xml + + + + + Armbian light + /usr/share/backgrounds/armbian/armbian18-Dre0x-Minum-light-3840x2160.jpg + zoom + #ffffff + #000000 + + + Armbian dark + /usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg + zoom + #ffffff + #000000 + + + Armbian uc + /usr/share/backgrounds/armbian/armbian-full-undeer-construction-3840-2160.jpg + zoom + #ffffff + #000000 + + + Armbian clear + /usr/share/backgrounds/armbian/Armbian-clear-rounded-bakcground-3840-2160.jpg + zoom + #ffffff + #000000 + + +EOF diff --git a/config/desktop/focal/environments/mate/config_base/packages b/config/desktop/focal/environments/mate/config_base/packages new file mode 100644 index 000000000..0fac15228 --- /dev/null +++ b/config/desktop/focal/environments/mate/config_base/packages @@ -0,0 +1,17 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs-backends gvfs-fuse xfonts-base xinit x11-xserver-utils mate-accessibility-profiles +mate-applet-appmenu mate-applet-brisk-menu mate-applets mate-applets-common mate-backgrounds mate-calc mate-calc-common +mate-common mate-control-center mate-control-center-common mate-core mate-desktop mate-desktop-common mate-desktop-environment +mate-desktop-environment-core mate-desktop-environment-extra mate-desktop-environment-extras mate-dock-applet mate-equake-applet +mate-hud mate-icon-theme mate-indicator-applet mate-indicator-applet-common mate-media mate-media-common mate-menu mate-menus +mate-notification-daemon mate-notification-daemon-common mate-panel mate-panel-common mate-polkit mate-polkit-bin +mate-polkit-common mate-power-manager mate-power-manager-common mate-screensaver mate-screensaver-common mate-sensors-applet +mate-sensors-applet-common mate-session-manager mate-settings-daemon mate-settings-daemon-common mate-sntray-plugin +mate-system-monitor mate-system-monitor-common mate-terminal mate-terminal-common mate-themes mate-tweak mate-user-guide mate-user-share +mate-user-share-common mate-utils mate-utils-common mate-window-applets-common mate-window-buttons-applet mate-window-menu-applet +mate-window-title-applet gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf libgtk2.0-bin network-manager-gnome gnome-keyring gcr +libgck-1-0 p11-kit pasystray pavucontrol pulseaudio pavumeter bluez bluez-tools pulseaudio-module-bluetooth blueman libpam-gnome-keyring +libgl1-mesa-dri profile-sync-daemon gnome-orca numix-gtk-theme synaptic apt-xapian-index lightdm lightdm-gtk-greeter lightdm-settings +lightdm-gtk-greeter-settings numix-gtk-theme dbus-x11 dictionaries-common hunspell-en-us tracker tracker-extract tracker-miner-fs +update-manager update-manager-core update-notifier update-notifier-common policykit-1 profile-sync-daemon software-properties-common +system-config-printer system-config-printer-common printer-driver-all smbclient cifs-utils gdebi + diff --git a/config/desktop/focal/environments/mate/config_base/packages.uninstall b/config/desktop/focal/environments/mate/config_base/packages.uninstall new file mode 100644 index 000000000..ec0762d75 --- /dev/null +++ b/config/desktop/focal/environments/mate/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 \ No newline at end of file diff --git a/config/desktop/focal/environments/mate/debian/postinst b/config/desktop/focal/environments/mate/debian/postinst new file mode 100644 index 000000000..d6427ac98 --- /dev/null +++ b/config/desktop/focal/environments/mate/debian/postinst @@ -0,0 +1,47 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi + +# set wallpapper to armbian + +keys=/etc/dconf/db/local.d/00-bg +locks=/etc/dconf/db/local.d/locks/background +profile=/etc/dconf/profile/user + +install -Dv /dev/null $keys +install -Dv /dev/null $locks +install -Dv /dev/null $profile + +echo "[org/mate/desktop/background] +picture-filename='/usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg' +picture-options='zoom' +primary-color='#456789' +secondary-color='#FFFFFF' + +[org/mate/desktop/screensaver] +picture-filename='/usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-blurred-3840x2160.jpg' +picture-options='zoom' +primary-color='#456789' +secondary-color='#FFFFFF'" >> $keys + +echo "/org/mate/desktop/background/picture-filename +/org/mate/desktop/background/picture-options +/org/mate/desktop/background/primary-color +/org/mate/desktop/background/secondary-color + +/org/mate/screensaver/picture-filename +/org/mate/screensaver/picture-options +/org/mate/screensaver/primary-color +/org/mate/screensaver/secondary-color" >> $locks + +echo "user-db:user +system-db:local" >> $profile + +dconf update + +#compile schemas +if [ -d /usr/share/glib-2.0/schemas ]; then + glib-compile-schemas /usr/share/glib-2.0/schemas +fi \ No newline at end of file diff --git a/config/desktop/focal/environments/mate/only_for b/config/desktop/focal/environments/mate/only_for new file mode 100644 index 000000000..d40006758 --- /dev/null +++ b/config/desktop/focal/environments/mate/only_for @@ -0,0 +1 @@ +arm64 diff --git a/config/desktop/focal/environments/mate/support b/config/desktop/focal/environments/mate/support new file mode 100644 index 000000000..a23e5fb94 --- /dev/null +++ b/config/desktop/focal/environments/mate/support @@ -0,0 +1 @@ +supported diff --git a/config/desktop/focal/environments/xfce/appgroups/programming/packages b/config/desktop/focal/environments/xfce/appgroups/programming/packages new file mode 100644 index 000000000..f9858e1ca --- /dev/null +++ b/config/desktop/focal/environments/xfce/appgroups/programming/packages @@ -0,0 +1 @@ +gnome-builder geany diff --git a/config/desktop/focal/environments/xfce/armbian/create_desktop_package.sh b/config/desktop/focal/environments/xfce/armbian/create_desktop_package.sh new file mode 100644 index 000000000..4b1167fed --- /dev/null +++ b/config/desktop/focal/environments/xfce/armbian/create_desktop_package.sh @@ -0,0 +1,22 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + +# install default desktop settings +mkdir -p "${destination}"/etc/skel +cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + +# using different icon pack. Workaround due to this bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867779 +sed -i 's//g' \ +"${destination}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml + +# install dedicated startup icons +mkdir -p "${destination}"/usr/share/pixmaps/armbian "${destination}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/ +cp "${SRC}/packages/blobs/desktop/icons/${DISTRIBUTION,,}.png" "${destination}"/usr/share/pixmaps/armbian +sed 's/xenial.png/'"${DISTRIBUTION,,}"'.png/' -i "${destination}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml + +# install logo for login screen +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install wallpapers +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/armbian*.jpg "${destination}"/usr/share/backgrounds/armbian/ diff --git a/config/desktop/focal/environments/xfce/config_base/packages b/config/desktop/focal/environments/xfce/config_base/packages new file mode 100644 index 000000000..49438868e --- /dev/null +++ b/config/desktop/focal/environments/xfce/config_base/packages @@ -0,0 +1,8 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs-backends gvfs-fuse xfonts-base xinit x11-xserver-utils xfce4 lxtask xfce4-terminal thunar-volman +gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf libgtk2.0-bin network-manager-gnome xfce4-notifyd gnome-keyring gcr libgck-1-0 p11-kit +pasystray pavucontrol pulseaudio pavumeter bluez bluez-tools pulseaudio-module-bluetooth blueman libpam-gnome-keyring libgl1-mesa-dri policykit-1 +profile-sync-daemon gnome-orca numix-gtk-theme synaptic apt-xapian-index lightdm lightdm-gtk-greeter lightdm-settings lightdm-gtk-greeter-settings +numix-gtk-theme system-config-printer system-config-printer-common printer-driver-all dbus-x11 dbus-x11 dictionaries-common hunspell-en-us tracker +tracker-extract tracker-miner-fs update-manager update-manager-core update-notifier update-notifier-common policykit-1 profile-sync-daemon +software-properties-common samba smbclient cifs-utils xfce4-screenshooter gdebi + diff --git a/config/desktop/focal/environments/xfce/config_base/packages.uninstall b/config/desktop/focal/environments/xfce/config_base/packages.uninstall new file mode 100644 index 000000000..ec0762d75 --- /dev/null +++ b/config/desktop/focal/environments/xfce/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 \ No newline at end of file diff --git a/config/desktop/focal/environments/xfce/debian/postinst b/config/desktop/focal/environments/xfce/debian/postinst new file mode 100644 index 000000000..07717295c --- /dev/null +++ b/config/desktop/focal/environments/xfce/debian/postinst @@ -0,0 +1,19 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Adjust menu +if [ -f /etc/xdg/menus/xfce-applications.menu ]; then +sed -i -n '/Settings<\/Menuname>/{p;:a;N;/xfce4-session-logout.desktop<\/Filename>/!ba;s/.*\n/\ +\t\n\t\n \n armbian-donate.desktop<\/Filename>\ +\n armbian-support.desktop<\/Filename>\n/};p' /etc/xdg/menus/xfce-applications.menu +fi + +# Hide few items +if [ -f /usr/share/applications/display-im6.q16.desktop ]; then mv /usr/share/applications/display-im6.q16.desktop /usr/share/applications/display-im6.q16.desktop.hidden; fi +if [ -f /usr/share/applications/display-im6.desktop ]]; then mv /usr/share/applications/display-im6.desktop /usr/share/applications/display-im6.desktop.hidden; fi +if [ -f /usr/share/applications/vim.desktop ]]; then mv /usr/share/applications/vim.desktop /usr/share/applications/vim.desktop.hidden; fi +if [ -f /usr/share/applications/libreoffice-startcenter.desktop ]]; then mv /usr/share/applications/libreoffice-startcenter.desktop /usr/share/applications/libreoffice-startcenter.desktop.hidden; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi + diff --git a/config/desktop/focal/environments/xfce/support b/config/desktop/focal/environments/xfce/support new file mode 100644 index 000000000..a23e5fb94 --- /dev/null +++ b/config/desktop/focal/environments/xfce/support @@ -0,0 +1 @@ +supported diff --git a/config/desktop/hirsute/appgroups b/config/desktop/hirsute/appgroups new file mode 120000 index 000000000..97784daa0 --- /dev/null +++ b/config/desktop/hirsute/appgroups @@ -0,0 +1 @@ +../focal/appgroups \ No newline at end of file diff --git a/config/desktop/hirsute/environments/budgie b/config/desktop/hirsute/environments/budgie new file mode 120000 index 000000000..03309a752 --- /dev/null +++ b/config/desktop/hirsute/environments/budgie @@ -0,0 +1 @@ +../../focal/environments/budgie \ No newline at end of file diff --git a/config/desktop/hirsute/environments/deepin/armbian/create_desktop_package.sh b/config/desktop/hirsute/environments/deepin/armbian/create_desktop_package.sh new file mode 100644 index 000000000..6eb54a077 --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/armbian/create_desktop_package.sh @@ -0,0 +1,10 @@ +# install lightdm greeter +cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + +# install logo for login screen +mkdir -p "${destination}"/usr/share/pixmaps/armbian +cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps/armbian + +# install backgrounds +mkdir -p "${destination}"/usr/share/backgrounds/armbian/ +cp "${SRC}"/packages/blobs/desktop/wallpapers/*.jpg "${destination}"/usr/share/backgrounds/armbian/ diff --git a/config/desktop/hirsute/environments/deepin/config_base/armbian/create_desktop_package.sh b/config/desktop/hirsute/environments/deepin/config_base/armbian/create_desktop_package.sh new file mode 100644 index 000000000..8cfffc068 --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/config_base/armbian/create_desktop_package.sh @@ -0,0 +1 @@ +# add config specific tweaks here diff --git a/config/desktop/hirsute/environments/deepin/config_base/custom/boards/pinebook-pro/armbian/create_desktop_package.sh b/config/desktop/hirsute/environments/deepin/config_base/custom/boards/pinebook-pro/armbian/create_desktop_package.sh new file mode 100644 index 000000000..87d271740 --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/config_base/custom/boards/pinebook-pro/armbian/create_desktop_package.sh @@ -0,0 +1,5 @@ +# install custom xorg for pinebook-pro +cp -R "${SRC}"/packages/bsp/pinebook-pro/xorg.conf "${destination}"/etc/X11/xorg.conf.d/ + +# install custom asound state for pinebook-pro +cp -R "${SRC}"/packages/asound.state/ "${destination}"/etc/ \ No newline at end of file diff --git a/config/desktop/hirsute/environments/deepin/config_base/packages b/config/desktop/hirsute/environments/deepin/config_base/packages new file mode 100644 index 000000000..cb03de4a2 --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/config_base/packages @@ -0,0 +1,18 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs gvfs-backends gvfs-fuse gvfs-bin gvfs-libs gvfs-daemons xfonts-base xinit x11-xserver-utils +deepin-desktop-base dde-desktop dde-api dde-dock dde-dock-onboard-plugin dde-launcher dde-control-center deepin-metacity deepin-wm +startdde dde-session-ui dde-file-manager dde-qt5integration dde-disk-mount-plugin deepin-gtk-theme deepin-sound-theme deepin-icon-theme +deepin-menu dde-daemon dde-account-faces deepin-desktop-schemas deepin-mutter dde-polkit-agent deepin-wm deepin-turbo deepin-turbo-booster +ubuntudde-default-settings ubuntudde-icon-theme deepin-voice-recorder deepin-screenshot dde-calendar deepin-music deepin-picker +deepin-gettext-tools deepin-image-viewer deepin-movie deepin-calculator deepin-shortcut-viewer deepin-system-monitor deepin-terminal +deepin-topbar deepin-deb-installer deepin-screensaver deepin-anything-server eject fonts-noto fonts-noto-color-emoji libdtkgui-bin +libdtkgui2 libdtkcore-bin gir1.2-deepin-mutter-3.0 lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings numix-gtk-theme xinit +xorg-docs-core x11-apps xorg-docs xscreensaver xfonts-100dpi xfonts-75dpi xfonts-scalable xcursor-themes xdg-user-dirs xdg-user-dirs-gtk +ubuntu-drivers-common ubuntu-minimal keyutils redshift bluez-tools bluez-cups brltty orca policykit-desktop-privileges network-manager-pptp +network-manager-l2tp network-manager-openconnect network-manager-openvpn network-manager-openvpn-gnome network-manager-vpnc cups cups-bsd +cups-filters liblouisutdml-bin liblouis-bin blueman pamix pasystray pavucontrol pavumeter pavucontrol-qt gstreamer1.0-packagekit +gstreamer1.0-plugins-base-apps libproxy1-plugin-gsettings libproxy1-plugin-networkmanager libu2f-udev libwmf0.2-7-gtk openprinting-ppds +p7zip-full policykit-desktop-privileges anacron doc-base foomatic-db-compressed-ppds ghostscript-x inputattach kerneloops language-pack-en +libatk-adaptor libgail-common libnotify-bin software-properties-gtk speech-dispatcher spice-vdagent zip orca bubblewrap dbus-x11 +dictionaries-common hunspell-en-us tracker tracker-extract tracker-miner-fs update-manager update-manager-core update-notifier +update-notifier-common libgl1-mesa-dri policykit-1 profile-sync-daemon system-config-printer system-config-printer-common printer-driver-all +software-properties-common samba smbclient cifs-utils gnome-power-manager powermgmt-base libupower-glib3 ruby-power-assert diff --git a/config/desktop/hirsute/environments/deepin/config_base/packages.uninstall b/config/desktop/hirsute/environments/deepin/config_base/packages.uninstall new file mode 100644 index 000000000..ec0762d75 --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/config_base/packages.uninstall @@ -0,0 +1 @@ +gdm3 \ No newline at end of file diff --git a/config/desktop/hirsute/environments/deepin/config_base/sources/apt/deepin-dev.source b/config/desktop/hirsute/environments/deepin/config_base/sources/apt/deepin-dev.source new file mode 100644 index 000000000..811a447cc --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/config_base/sources/apt/deepin-dev.source @@ -0,0 +1 @@ +add-apt-repository ppa:ubuntudde-dev/unstable \ No newline at end of file diff --git a/config/desktop/hirsute/environments/deepin/custom/boards/nanopct4_/armbian/create_desktop_package.sh b/config/desktop/hirsute/environments/deepin/custom/boards/nanopct4_/armbian/create_desktop_package.sh new file mode 100644 index 000000000..ce65d596c --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/custom/boards/nanopct4_/armbian/create_desktop_package.sh @@ -0,0 +1,9 @@ +# install custom xorg for pinebook-pro +mkdir -p "${destination}"/etc/X11/ +cp -R "${SRC}"/packages/bsp/rk3399/xorg.conf "${destination}"/etc/X11/ + +# install custom asound state for pinebook-pro +mkdir -p "${destination}"/etc/ +cp -R "${SRC}"/packages/blobs/asound.state/ "${destination}"/etc/ + + diff --git a/config/desktop/hirsute/environments/deepin/custom/boards/pinebook-pro_/armbian/create_desktop_package.sh b/config/desktop/hirsute/environments/deepin/custom/boards/pinebook-pro_/armbian/create_desktop_package.sh new file mode 100644 index 000000000..7f724faeb --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/custom/boards/pinebook-pro_/armbian/create_desktop_package.sh @@ -0,0 +1,14 @@ +# install custom xorg for pinebook-pro +cp -R "${SRC}"/packages/bsp/pinebook-pro/xorg.conf "${destination}"/etc/X11/ + +## touchpad and keyboard tweaks +# from https://github.com/ayufan-rock64/linux-package/tree/master/root-pinebookpro +cp $SRC/packages/bsp/pinebook-pro/40-pinebookpro-touchpad.conf $destination/etc/X11/xorg.conf.d/ +#keybord +mkdir -p $destination/etc/udev/hwdb.d/ +cp $SRC/packages/bsp/pinebook-pro/10-usb-kbd.hwdb $destination/etc/udev/hwdb.d/ + +# install custom asound state for pinebook-pro +cp -R "${SRC}"/packages/asound.state/ "${destination}"/etc/ + + diff --git a/config/desktop/hirsute/environments/deepin/custom/boards/pinebook-pro_/debian/postinst b/config/desktop/hirsute/environments/deepin/custom/boards/pinebook-pro_/debian/postinst new file mode 100644 index 000000000..93930e277 --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/custom/boards/pinebook-pro_/debian/postinst @@ -0,0 +1 @@ +echo "Hello from debian/postinst in the DDE for PineBook-Pro !" diff --git a/config/desktop/hirsute/environments/deepin/debian/postinst b/config/desktop/hirsute/environments/deepin/debian/postinst new file mode 100644 index 000000000..2b6769b58 --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/debian/postinst @@ -0,0 +1,9 @@ +# overwrite stock lightdm greeter configuration +if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + +# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver +if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi + +#remove linked file +rm /etc/alternatives/deepin-default-background +ln -s /usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-3840x2160.jpg /etc/alternatives/deepin-default-background diff --git a/config/desktop/hirsute/environments/deepin/only_for b/config/desktop/hirsute/environments/deepin/only_for new file mode 100644 index 000000000..d40006758 --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/only_for @@ -0,0 +1 @@ +arm64 diff --git a/config/desktop/hirsute/environments/deepin/support b/config/desktop/hirsute/environments/deepin/support new file mode 100644 index 000000000..03cd47015 --- /dev/null +++ b/config/desktop/hirsute/environments/deepin/support @@ -0,0 +1 @@ +csc diff --git a/config/desktop/hirsute/environments/gnome/armbian b/config/desktop/hirsute/environments/gnome/armbian new file mode 120000 index 000000000..3adcf2a0e --- /dev/null +++ b/config/desktop/hirsute/environments/gnome/armbian @@ -0,0 +1 @@ +../../../focal/environments/gnome/armbian \ No newline at end of file diff --git a/config/desktop/hirsute/environments/gnome/config_base/packages b/config/desktop/hirsute/environments/gnome/config_base/packages new file mode 100644 index 000000000..f8b190aec --- /dev/null +++ b/config/desktop/hirsute/environments/gnome/config_base/packages @@ -0,0 +1,24 @@ +xserver-xorg xserver-xorg-video-fbdev gvfs-backends xfonts-base xinit bubblewrap dbus-x11 dictionaries-common evolution-data-server +evolution-data-server-common gcr geoclue-2.0 gir1.2-accountsservice-1.0 gir1.2-atspi-2.0 gir1.2-gck-1 gir1.2-gcr-3 gir1.2-gdesktopenums-3.0 +gir1.2-gdm-1.0 gir1.2-geoclue-2.0 gir1.2-gnomebluetooth-1.0 gir1.2-gnomedesktop-3.0 gir1.2-graphene-1.0 gir1.2-gweather-3.0 gir1.2-ibus-1.0 +gir1.2-json-1.0 gir1.2-mutter-7 gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-polkit-1.0 gir1.2-rsvg-2.0 gir1.2-soup-2.4 gir1.2-upowerglib-1.0 gjs +gnome-desktop3-data gnome-keyring gnome-session-bin gnome-session-common gnome-settings-daemon gnome-settings-daemon-common gnome-shell +gnome-shell-common hunspell-en-us libaccountsservice0 libaspell15 libcamel-1.2-62 libebackend-1.2-10 libebook-1.2-20 libebook-contacts-1.2-3 +libecal-2.0-1 libedata-book-1.2-26 libedata-cal-2.0-1 libedataserver-1.2-25 libedataserverui-1.2-2 libenchant-2-2 libfontenc1 libgck-1-0 +libgcr-base-3-1 libgcr-ui-3-1 libgdata-common libgdata22 libgdm1 libgeoclue-2-0 libgeocode-glib0 libgjs0g libgnome-autoar-0-0 libgnome-bluetooth13 +libgnome-desktop-3-19 libgoa-1.0-0b libgoa-1.0-common libgraphene-1.0-0 libgweather-3-16 libgweather-common libibus-1.0-5 libical3 libimobiledevice6 +libjavascriptcoregtk-4.0-18 libmutter-7-0 libnma0 libphonenumber8 libplist3 libprotobuf23 libtext-iconv-perl libunwind8 libupower-glib3 libusbmuxd6 +libwebkit2gtk-4.0-37 libxaw7 libxfont2 libxkbfile1 libxmu6 libxmuu1 libxtst6 mutter mutter-common p11-kit p11-kit-modules pinentry-gnome3 upower +x11-xkb-utils x11-xserver-utils xdg-dbus-proxy xserver-common xwayland zenity zenity-common gnome-session gdm3 terminator gnome-control-center +alsa-base anacron at-spi2-core dmz-cursor-theme fonts-freefont-ttf fonts-urw-base35 foomatic-db-compressed-ppds genisoimage ghostscript ghostscript-x +gir1.2-goa-1.0 gir1.2-snapd-1 gnome-menus gnome-shell-extension-appindicator gnome-shell-extension-desktop-icons inputattach libasound2-plugins +libatk-adaptor libcairo-gobject-perl libcairo-perl libcue2 libdee-1.0-4 libexempi8 libexiv2-27 libextutils-depends-perl libextutils-pkgconfig-perl +libgexiv2-2 libglib-object-introspection-perl libglib-perl libglu1-mesa libgs9 libgs9-common libgsf-1-114 libgsf-1-common libgtk3-perl libgxps2 +libidn11 libijs-0.35 libjbig2dec0 libnautilus-extension1a libnotify-bin libpaper1 libpoppler-glib8 libpulsedsp libsasl2-modules libspeexdsp1 +libtotem-plparser-common libtotem-plparser18 libtracker-control-2.0-0 libtracker-miner-2.0-0 libtracker-sparql-2.0-0 libu2f-udev +libunity-protocol-private0 libunity-scopes-json-def-desktop libunity9 libxxf86dga1 libyelp0 linux-sound-base nautilus nautilus-data openprinting-ppds +poppler-data printer-driver-pnm2ppa pulseaudio pulseaudio-utils python3-click python3-colorama python3-dateutil python3-debconf python3-debian +python3-distupgrade python3-update-manager python3-xkit python3-yaml software-properties-gtk spice-vdagent tracker tracker-extract tracker-miner-fs +update-manager update-manager-core update-notifier update-notifier-common x11-apps x11-session-utils x11-utils xdg-desktop-portal xdg-user-dirs +xdg-user-dirs-gtk xinput xorg xorg-docs-core yaru-theme-gnome-shell yelp yelp-xsl pulseaudio-module-bluetooth pavucontrol gnome-shell-extension-trash +cups system-config-printer-gnome ubuntu-desktop-minimal ubuntu-session ubuntu-settings ubuntu-business-defaults gconf2 gdebi diff --git a/config/desktop/hirsute/environments/gnome/debian b/config/desktop/hirsute/environments/gnome/debian new file mode 120000 index 000000000..68b05869b --- /dev/null +++ b/config/desktop/hirsute/environments/gnome/debian @@ -0,0 +1 @@ +../../../focal/environments/gnome/debian \ No newline at end of file diff --git a/config/desktop/hirsute/environments/gnome/only_for b/config/desktop/hirsute/environments/gnome/only_for new file mode 120000 index 000000000..6b2dee246 --- /dev/null +++ b/config/desktop/hirsute/environments/gnome/only_for @@ -0,0 +1 @@ +../../../focal/environments/gnome/only_for \ No newline at end of file diff --git a/config/desktop/hirsute/environments/gnome/support b/config/desktop/hirsute/environments/gnome/support new file mode 120000 index 000000000..fe28f381d --- /dev/null +++ b/config/desktop/hirsute/environments/gnome/support @@ -0,0 +1 @@ +../../../focal/environments/gnome/support \ No newline at end of file diff --git a/config/desktop/hirsute/environments/mate b/config/desktop/hirsute/environments/mate new file mode 120000 index 000000000..1defe21ee --- /dev/null +++ b/config/desktop/hirsute/environments/mate @@ -0,0 +1 @@ +../../focal/environments/mate \ No newline at end of file diff --git a/config/desktop/hirsute/environments/xfce b/config/desktop/hirsute/environments/xfce new file mode 120000 index 000000000..e48eb6dc1 --- /dev/null +++ b/config/desktop/hirsute/environments/xfce @@ -0,0 +1 @@ +../../focal/environments/xfce \ No newline at end of file diff --git a/config/desktop/sid b/config/desktop/sid new file mode 120000 index 000000000..766a99ab6 --- /dev/null +++ b/config/desktop/sid @@ -0,0 +1 @@ +buster \ No newline at end of file diff --git a/config/distributions/bionic/name b/config/distributions/bionic/name new file mode 100644 index 000000000..6e4b58986 --- /dev/null +++ b/config/distributions/bionic/name @@ -0,0 +1 @@ +Ubuntu Bionic 18.04 LTS diff --git a/config/distributions/bionic/support b/config/distributions/bionic/support new file mode 100644 index 000000000..03cd47015 --- /dev/null +++ b/config/distributions/bionic/support @@ -0,0 +1 @@ +csc diff --git a/config/distributions/bullseye/name b/config/distributions/bullseye/name new file mode 100644 index 000000000..81a0632a5 --- /dev/null +++ b/config/distributions/bullseye/name @@ -0,0 +1 @@ +Debian 11 Bullseye diff --git a/config/distributions/bullseye/support b/config/distributions/bullseye/support new file mode 100644 index 000000000..03cd47015 --- /dev/null +++ b/config/distributions/bullseye/support @@ -0,0 +1 @@ +csc diff --git a/config/distributions/buster/name b/config/distributions/buster/name new file mode 100644 index 000000000..fd7da05fe --- /dev/null +++ b/config/distributions/buster/name @@ -0,0 +1 @@ +Debian 10 Buster diff --git a/config/distributions/buster/support b/config/distributions/buster/support new file mode 100644 index 000000000..a23e5fb94 --- /dev/null +++ b/config/distributions/buster/support @@ -0,0 +1 @@ +supported diff --git a/config/distributions/focal/name b/config/distributions/focal/name new file mode 100644 index 000000000..65d22abf2 --- /dev/null +++ b/config/distributions/focal/name @@ -0,0 +1 @@ +Ubuntu Focal 20.04 LTS diff --git a/config/distributions/focal/support b/config/distributions/focal/support new file mode 100644 index 000000000..a23e5fb94 --- /dev/null +++ b/config/distributions/focal/support @@ -0,0 +1 @@ +supported diff --git a/config/distributions/hirsute/name b/config/distributions/hirsute/name new file mode 100644 index 000000000..16f6ce4f1 --- /dev/null +++ b/config/distributions/hirsute/name @@ -0,0 +1 @@ +Ubuntu Hirsute 21.04 diff --git a/config/distributions/hirsute/support b/config/distributions/hirsute/support new file mode 100644 index 000000000..03cd47015 --- /dev/null +++ b/config/distributions/hirsute/support @@ -0,0 +1 @@ +csc diff --git a/config/distributions/sid/name b/config/distributions/sid/name new file mode 100644 index 000000000..faba7461a --- /dev/null +++ b/config/distributions/sid/name @@ -0,0 +1 @@ +Debian 12 Sid diff --git a/config/distributions/sid/support b/config/distributions/sid/support new file mode 100644 index 000000000..03cd47015 --- /dev/null +++ b/config/distributions/sid/support @@ -0,0 +1 @@ +csc diff --git a/config/distributions/stretch/name b/config/distributions/stretch/name new file mode 100644 index 000000000..b095b99be --- /dev/null +++ b/config/distributions/stretch/name @@ -0,0 +1 @@ +Debian 9 Stretch diff --git a/config/distributions/stretch/support b/config/distributions/stretch/support new file mode 100644 index 000000000..bc2264ca1 --- /dev/null +++ b/config/distributions/stretch/support @@ -0,0 +1 @@ +eos diff --git a/config/distributions/xenial/name b/config/distributions/xenial/name new file mode 100644 index 000000000..5775788f6 --- /dev/null +++ b/config/distributions/xenial/name @@ -0,0 +1 @@ +Ubuntu Xenial 16.04 LTS diff --git a/config/distributions/xenial/support b/config/distributions/xenial/support new file mode 100644 index 000000000..bc2264ca1 --- /dev/null +++ b/config/distributions/xenial/support @@ -0,0 +1 @@ +eos diff --git a/config/optional/boards/nanopct4/_config/desktop/_all_distributions/environments/_all_environments/armbian/create_desktop_package.sh b/config/optional/boards/nanopct4/_config/desktop/_all_distributions/environments/_all_environments/armbian/create_desktop_package.sh new file mode 100644 index 000000000..73de3e907 --- /dev/null +++ b/config/optional/boards/nanopct4/_config/desktop/_all_distributions/environments/_all_environments/armbian/create_desktop_package.sh @@ -0,0 +1,7 @@ +# install custom asound state for pinebook-pro +mkdir -p "${destination}"/etc/ +cp -R "${SRC}"/packages/blobs/asound.state/ "${destination}"/etc/ + +# install custom xorg for pinebook-pro +mkdir -p "${destination}"/etc/X11/ +cp -R "${SRC}"/packages/bsp/rk3399/xorg.conf "${destination}"/etc/X11/ diff --git a/config/optional/boards/pinebook-pro/_config/desktop/_all_distributions/environments/_all_environments/armbian/create_desktop_package.sh b/config/optional/boards/pinebook-pro/_config/desktop/_all_distributions/environments/_all_environments/armbian/create_desktop_package.sh new file mode 100644 index 000000000..99c4057f1 --- /dev/null +++ b/config/optional/boards/pinebook-pro/_config/desktop/_all_distributions/environments/_all_environments/armbian/create_desktop_package.sh @@ -0,0 +1,11 @@ +# install custom xorg for pinebook-pro +cp -R "${SRC}"/packages/bsp/pinebook-pro/xorg.conf "${destination}"/etc/X11/xorg.conf.d/ + +# install custom asound state for pinebook-pro +cp -R "${SRC}"/packages/asound.state/ "${destination}"/etc/ + +## touchpad and keyboard tweaks +# from https://github.com/ayufan-rock64/linux-package/tree/master/root-pinebookpro +cp $SRC/packages/bsp/pinebook-pro/40-pinebookpro-touchpad.conf $destination/etc/X11/xorg.conf.d/ +mkdir -p $destination/etc/udev/hwdb.d/ +cp $SRC/packages/bsp/pinebook-pro/10-usb-kbd.hwdb $destination/etc/udev/hwdb.d/ diff --git a/config/optional/boards/pinebook-pro/_config/desktop/_all_distributions/environments/xfce/armbian/create_desktop_package.sh b/config/optional/boards/pinebook-pro/_config/desktop/_all_distributions/environments/xfce/armbian/create_desktop_package.sh new file mode 100644 index 000000000..355908f17 --- /dev/null +++ b/config/optional/boards/pinebook-pro/_config/desktop/_all_distributions/environments/xfce/armbian/create_desktop_package.sh @@ -0,0 +1,4 @@ +# powerconfig, touchpad, and special keys +cp $SRC/packages/bsp/pinebook-pro/xfce4-power-manager.xml ${SDCARD}/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/ +cp $SRC/packages/bsp/pinebook-pro/pointers.xml ${SDCARD}/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/ +cp $SRC/packages/bsp/pinebook-pro/xfce4-keyboard-shortcuts.xml ${SDCARD}/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/ diff --git a/config/sources/arm64.conf b/config/sources/arm64.conf index 2ced54e48..4a5125c2c 100644 --- a/config/sources/arm64.conf +++ b/config/sources/arm64.conf @@ -5,23 +5,30 @@ ARCH=arm64 KERNEL_IMAGE_TYPE=Image CAN_BUILD_STRETCH=yes -[[ $ATF_COMPILE != "no" && -z $ATF_COMPILER ]] && ATF_COMPILER="aarch64-none-linux-gnu-" +if [ "$(uname -m)" = "aarch64" ]; then + [[ $ATF_COMPILE != "no" && -z $ATF_COMPILER ]] && ATF_COMPILER="aarch64-linux-gnu-" + [[ -z $UBOOT_COMPILER ]] && UBOOT_COMPILER="aarch64-linux-gnu-" + [[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="aarch64-linux-gnu-" + [[ -z $KERNEL_USE_GCC ]] && KERNEL_USE_GCC='> 8.0' +else + [[ $ATF_COMPILE != "no" && -z $ATF_COMPILER ]] && ATF_COMPILER="aarch64-none-linux-gnu-" + [[ -z $UBOOT_COMPILER ]] && UBOOT_COMPILER="aarch64-none-linux-gnu-" + # > 9.2 https://armbian.atlassian.net/browse/AR-557 + # [[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="aarch64-none-linux-gnu-" + [[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="aarch64-linux-gnu-" + [[ -z $KERNEL_USE_GCC ]] && KERNEL_USE_GCC='< 9.2' +fi + [[ $ATF_COMPILE != "no" && -z $ATFSOURCE ]] && ATFSOURCE='https://github.com/ARM-software/arm-trusted-firmware' [[ $ATF_COMPILE != "no" && -z $ATFDIR ]] && ATFDIR='arm-trusted-firmware-sunxi-mainline' [[ $ATF_COMPILE != "no" && -z $ATFBRANCH ]] && ATFBRANCH='branch:master' [[ $ATF_COMPILE != "no" && -z $ATF_USE_GCC ]] && ATF_USE_GCC='> 8.0' -[[ -z $UBOOT_COMPILER ]] && UBOOT_COMPILER="aarch64-none-linux-gnu-" -[[ -z $UBOOT_USE_GCC ]] && UBOOT_USE_GCC='> 8.0' +[[ -z $UBOOT_USE_GCC ]] && UBOOT_USE_GCC='> 8.0' [[ -z $BOOTSOURCE ]] && BOOTSOURCE=$MAINLINE_UBOOT_SOURCE [[ -z $BOOTDIR ]] && BOOTDIR=$MAINLINE_UBOOT_DIR [[ -z $BOOTBRANCH ]] && BOOTBRANCH='tag:v2020.04' -# > 9.2 https://armbian.atlassian.net/browse/AR-557 -# [[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="aarch64-none-linux-gnu-" -[[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="aarch64-linux-gnu-" -[[ -z $KERNEL_USE_GCC ]] && KERNEL_USE_GCC='< 9.2' [[ -z $KERNELDIR ]] && KERNELDIR=$MAINLINE_KERNEL_DIR [[ -z $KERNELSOURCE ]] && KERNELSOURCE=$MAINLINE_KERNEL_SOURCE [[ -z $KERNELBRANCH ]] && KERNELBRANCH='branch:linux-5.4.y' - diff --git a/config/sources/armhf.conf b/config/sources/armhf.conf index 09b341037..3b26b58f3 100644 --- a/config/sources/armhf.conf +++ b/config/sources/armhf.conf @@ -4,17 +4,25 @@ ARCHITECTURE=arm ARCH=armhf KERNEL_IMAGE_TYPE=Image CAN_BUILD_STRETCH=yes -[[ -z $UBOOT_COMPILER ]] && UBOOT_COMPILER="arm-none-linux-gnueabihf-" -[[ -z $UBOOT_USE_GCC ]] && UBOOT_USE_GCC='> 8.0' +if [ "$(uname -m)" = "aarch64" ]; then + [[ -z $UBOOT_COMPILER ]] && UBOOT_COMPILER="arm-linux-gnueabihf-" +else + [[ -z $UBOOT_COMPILER ]] && UBOOT_COMPILER="arm-none-linux-gnueabihf-" +fi +[[ -z $UBOOT_USE_GCC ]] && UBOOT_USE_GCC='> 8.0' [[ -z $BOOTSOURCE ]] && BOOTSOURCE=$MAINLINE_UBOOT_SOURCE [[ -z $BOOTDIR ]] && BOOTDIR=$MAINLINE_UBOOT_DIR [[ -z $BOOTBRANCH ]] && BOOTBRANCH='tag:v2020.04' -# > 9.2 https://armbian.atlassian.net/browse/AR-557 -#[[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="arm-none-linux-gnueabihf-" -[[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="arm-linux-gnueabihf-" -[[ -z $KERNEL_USE_GCC ]] && KERNEL_USE_GCC='< 9.2' +if [ "$(uname -m)" = "aarch64" ]; then + [[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="arm-linux-gnueabihf-" + [[ -z $KERNEL_USE_GCC ]] && KERNEL_USE_GCC='> 8.0' +else + # > 9.2 https://armbian.atlassian.net/browse/AR-557 + #[[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="arm-none-linux-gnueabihf-" + [[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="arm-linux-gnueabihf-" + [[ -z $KERNEL_USE_GCC ]] && KERNEL_USE_GCC='< 9.2' +fi [[ -z $KERNELDIR ]] && KERNELDIR=$MAINLINE_KERNEL_DIR [[ -z $KERNELSOURCE ]] && KERNELSOURCE=$MAINLINE_KERNEL_SOURCE [[ -z $KERNELBRANCH ]] && KERNELBRANCH='branch:linux-5.4.y' - diff --git a/config/sources/families/include/meson64_common.inc b/config/sources/families/include/meson64_common.inc index 164dc6b8f..18e22228f 100644 --- a/config/sources/families/include/meson64_common.inc +++ b/config/sources/families/include/meson64_common.inc @@ -39,6 +39,16 @@ case $BRANCH in esac +if [ "$(uname -m)" = "aarch64" ]; then + if [ "$(lsb_release -sc)" = "focal" ]; then + PKG_PREFIX="qemu-x86_64-static " + else + PKG_PREFIX="qemu-x86_64 " + fi +else + PKG_PREFIX="" +fi + # this helper function includes postprocess for p212 and its variants. # $1 PATH for uboot blob repo # $2 dir name in uboot blob repo @@ -64,14 +74,14 @@ uboot_gxl_postprocess() $1/$2/bl21_zero.bin \ $1/$2/bl2_new.bin bl2 - $1/$2/aml_encrypt_gxl --bl3enc --input $1/$2/bl30_new.bin - $1/$2/aml_encrypt_gxl --bl3enc --input $1/$2/bl31.img - $1/$2/aml_encrypt_gxl --bl3enc --input bl33.bin + $PKG_PREFIX$1/$2/aml_encrypt_gxl --bl3enc --input $1/$2/bl30_new.bin + $PKG_PREFIX$1/$2/aml_encrypt_gxl --bl3enc --input $1/$2/bl31.img + $PKG_PREFIX$1/$2/aml_encrypt_gxl --bl3enc --input bl33.bin - $1/$2/aml_encrypt_gxl --bl2sig --input $1/$2/bl2_new.bin \ + $PKG_PREFIX$1/$2/aml_encrypt_gxl --bl2sig --input $1/$2/bl2_new.bin \ --output bl2.n.bin.sig - $1/$2/aml_encrypt_gxl --bootmk \ + $PKG_PREFIX$1/$2/aml_encrypt_gxl --bootmk \ --output u-boot.bin \ --bl2 bl2.n.bin.sig \ --bl30 $1/$2/bl30_new.bin.enc \ @@ -100,29 +110,29 @@ uboot_g12_postprocess() bl21_zero.bin \ bl2_new.bin bl2 - $1/aml_encrypt_$2 --bl30sig \ + $PKG_PREFIX$1/aml_encrypt_$2 --bl30sig \ --input bl30_new.bin \ --output bl30_new.bin.g12.enc \ --level v3 - $1/aml_encrypt_$2 --bl3sig \ + $PKG_PREFIX$1/aml_encrypt_$2 --bl3sig \ --input bl30_new.bin.g12.enc \ --output bl30_new.bin.enc \ --level v3 --type bl30 - $1/aml_encrypt_$2 --bl3sig \ + $PKG_PREFIX$1/aml_encrypt_$2 --bl3sig \ --input $1/bl31.img \ --output bl31.img.enc \ --level v3 --type bl31 - $1/aml_encrypt_$2 --bl3sig \ + $PKG_PREFIX$1/aml_encrypt_$2 --bl3sig \ --input bl33.bin \ --compress lz4 \ --output bl33.bin.enc \ --level v3 --type bl33 - $1/aml_encrypt_$2 --bl2sig \ + $PKG_PREFIX$1/aml_encrypt_$2 --bl2sig \ --input bl2_new.bin \ --output bl2.n.bin.sig if [ -e $1/lpddr3_1d.fw ] then - $1/aml_encrypt_$2 --bootmk --output u-boot.bin \ + $PKG_PREFIX$1/aml_encrypt_$2 --bootmk --output u-boot.bin \ --bl2 bl2.n.bin.sig \ --bl30 bl30_new.bin.enc \ --bl31 bl31.img.enc \ @@ -138,7 +148,7 @@ uboot_g12_postprocess() --ddrfw9 $1/lpddr3_1d.fw \ --level v3 else - $1/aml_encrypt_$2 --bootmk --output u-boot.bin \ + $PKG_PREFIX$1/aml_encrypt_$2 --bootmk --output u-boot.bin \ --bl2 bl2.n.bin.sig \ --bl30 bl30_new.bin.enc \ --bl31 bl31.img.enc \ @@ -206,11 +216,43 @@ family_tweaks_bsp() install -m 755 $SRC/packages/bsp/rockchip/hdmi-hotplug $destination/usr/local/bin mkdir -p "$destination"/etc/X11/xorg.conf.d + if [[ $BOARD == odroidc2 || $BOARD == nanopik2 || $BOARD == lepatato || $BOARD == lafrite || $BOARD == vim1 ]]; then + cat <<-EOF > "$destination"/etc/X11/xorg.conf.d/02-driver.conf # set fbdev as default driver. Section "Device" - Identifier "NOGPU" - Driver "fbdev" - EndSection + Identifier "NOGPU" + Driver "fbdev" + EndSection EOF + + elif [[ $BOARD == odroidn2 || $BOARD == odroidc4 || $BOARD == vim2 ]]; then + + cat <<-EOF > "$destination"/etc/X11/xorg.conf + Section "Device" + Identifier "Armsoc Graphics" + + ## Use armsoc driver + # Driver "armsoc" + ## End armsoc configuration + + ## Use modesetting and glamor + Driver "modesetting" + Option "AccelMethod" "glamor" ### "glamor" to enable 3D acceleration, "none" to disable. + Option "DRI" "2" + Option "Dri2Vsync" "true" + Option "TripleBuffer" "True" + ## End glamor configuration + + EndSection + + Section "Screen" + Identifier "Default Screen" + SubSection "Display" + Depth 24 + EndSubSection + EndSection + EOF + + fi } diff --git a/config/sources/families/include/rockchip64_common.inc b/config/sources/families/include/rockchip64_common.inc index b6c4751c8..d825093de 100644 --- a/config/sources/families/include/rockchip64_common.inc +++ b/config/sources/families/include/rockchip64_common.inc @@ -181,6 +181,18 @@ legacy_uboot_locations() uboot_custom_postprocess() { + if [ "$(uname -m)" = "aarch64" ]; then + if [ "$(lsb_release -sc)" = "focal" ]; then + PKG_PREFIX="qemu-x86_64-static -L /usr/x86_64-linux-gnu " + else + PKG_PREFIX="qemu-x86_64 -L /usr/x86_64-linux-gnu " + fi + else + PKG_PREFIX="" + fi + + RKBIN_DIR="$SRC/cache/sources/rkbin-tools" + if [[ $BOOT_USE_MAINLINE_ATF == yes || $BOOT_USE_TPL_SPL_BLOB == yes ]]; then : elif [[ $BOOT_USE_BLOBS == yes ]]; then @@ -188,8 +200,8 @@ uboot_custom_postprocess() local tempfile=$(mktemp) tools/mkimage -n $BOOT_SOC -T rksd -d $RKBIN_DIR/$DDR_BLOB idbloader.bin cat $RKBIN_DIR/$MINILOADER_BLOB >> idbloader.bin - loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000 - trust_merger --replace bl31.elf $RKBIN_DIR/$BL31_BLOB trust.ini + $PKG_PREFIX$RKBIN_DIR/tools/loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000 + $PKG_PREFIX$RKBIN_DIR/tools/trust_merger --replace bl31.elf $RKBIN_DIR/$BL31_BLOB trust.ini elif [[ $BOOT_RK3399_LEGACY_HYBRID == yes ]]; then @@ -210,7 +222,7 @@ uboot_custom_postprocess() # 3328 tools/mkimage -n rk3328 -T rksd -d $SRC/cache/sources/rkbin-tools/rk33/rk3328_ddr_786MHz_v1.13.bin idbloader.bin cat $SRC/cache/sources/rkbin-tools/rk33/rk3328_miniloader_v2.46.bin >> idbloader.bin - loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000 + $PKG_PREFIX$RKBIN_DIR/tools/loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000 else echo "Unsupported u-boot processing configuration!" @@ -286,7 +298,7 @@ atf_custom_postprocess() # remove bl31.bin which can be 4+GiB in size and thus may fill the tmpfs mount rm -f build/rk322xh/debug/bl31.bin # ATF - trust_merger trust.ini + $PKG_PREFIX$RKBIN_DIR/tools/trust_merger trust.ini } diff --git a/config/sources/families/meson-gxbb.conf b/config/sources/families/meson-gxbb.conf index b4ac6dedb..f7fc5025e 100644 --- a/config/sources/families/meson-gxbb.conf +++ b/config/sources/families/meson-gxbb.conf @@ -7,15 +7,15 @@ uboot_custom_postprocess() { if [[ $BOARD == odroidc2 ]]; then local t=$SRC/cache/sources/odroidc2-blobs/ - $t/fip_create --bl30 $t/gxb/bl30.bin \ + $PKG_PREFIX$t/fip_create --bl30 $t/gxb/bl30.bin \ --bl301 $t/gxb/bl301.bin \ --bl31 $t/gxb/bl31.bin \ --bl33 u-boot.bin \ fip.bin - $t/fip_create --dump fip.bin + $PKG_PREFIX$t/fip_create --dump fip.bin cat $t/gxb/bl2.package fip.bin > boot_new.bin rm -f u-boot.img - $t/gxb/aml_encrypt_gxb --bootsig \ + $PKG_PREFIX$t/gxb/aml_encrypt_gxb --bootsig \ --input boot_new.bin \ --output u-boot.img rm -f u-boot.bin @@ -33,12 +33,12 @@ uboot_custom_postprocess() $t/k2/bl301_zero.bin \ $t/k2/bl30_new.bin bl30 - $t/k2/fip_create --bl30 $t/k2/bl30_new.bin \ + $PKG_PREFIX$t/k2/fip_create --bl30 $t/k2/bl30_new.bin \ --bl31 $t/k2/bl31.img \ --bl33 bl33.bin \ $t/k2/fip.bin - $t/k2/fip_create --dump $t/k2/fip.bin + $PKG_PREFIX$t/k2/fip_create --dump $t/k2/fip.bin python $t/acs_tool.pyc $t/k2/bl2.bin \ $t/k2/bl2_acs.bin \ @@ -53,7 +53,7 @@ uboot_custom_postprocess() cat $t/k2/bl2_new.bin $t/k2/fip.bin > boot_new.bin - $t/k2/aml_encrypt_gxb --bootsig \ + $PKG_PREFIX$t/k2/aml_encrypt_gxb --bootsig \ --input boot_new.bin \ --output u-boot.bin diff --git a/config/targets-cli-beta.conf b/config/targets-cli-beta.conf new file mode 100644 index 000000000..ea111fde8 --- /dev/null +++ b/config/targets-cli-beta.conf @@ -0,0 +1,392 @@ +###################################################################################################### +# board branch release desktop|cli|minimal stable|beta create images # +###################################################################################################### + +# Bananapi M1 / M1+ A20 +bananapi current hirsute cli beta yes +bananapi legacy hirsute cli beta no + + +# Bananapi Pro A20 +bananapi current hirsute cli beta yes + + +# Bananapi M2+ H3 +bananapim2plus current hirsute cli beta yes + + +# Bananapi M2 Zero H2+ +bananapim2zero current hirsute cli beta yes + + +# Bananapi M2U R40 +bananapim2ultra current hirsute cli beta yes + + +# Bananapi M64 +bananapim64 current hirsute cli beta yes + + +# Bananapi R2 +bananapir2 legacy hirsute cli beta no + + +# Helios4 +helios4 current hirsute cli beta yes +helios4 dev hirsute cli beta no + + +# Helios64 +helios64 current hirsute cli beta yes + + +# Clearfog Base +clearfogbase current hirsute cli beta yes + + +# Clearfog Pro +clearfogpro current hirsute cli beta yes + + +# Cubieboard1 +cubieboard current hirsute cli beta yes + + +# Cubieboard2 +cubieboard2 current hirsute cli beta yes + + +# Cubietruck +cubietruck current hirsute cli beta yes + + +# Cubox-i +cubox-i current hirsute cli beta yes + + +# Espressobin +espressobin current hirsute cli beta yes + + +# Friendlyelec fe-som-rk3399 +fe-som-rk3399 current hirsute cli beta yes + + +# Firefly rk3399 +firefly-rk3399 current hirsute cli beta yes + + +# Khadas Vim1 +kvim1 current hirsute cli beta yes + + +# Khadas Vim2 +kvim1 current hirsute cli beta yes + + +# La frite +lafrite current hirsute cli beta yes + + +# Lepotato +lepotato current hirsute cli beta yes + + +# Olimex Lime +lime current hirsute cli beta yes + + +# Olimex Lime A-10 +lime-a10 current hirsute cli beta yes + + +# Olimex Micro +micro current hirsute cli beta yes + + +# Olimex Lime2 +lime2 current hirsute cli beta yes + + +# Olimex Lime A64 +lime-a64 current hirsute cli beta yes + + +# MiQi +miqi current hirsute cli beta yes + + +# nanopct4 +nanopct4 current hirsute cli beta yes + + +# nanopi-r1 +nanopi-r1 current hirsute cli beta yes + + +# nanopi-r2s +nanopi-r2s current hirsute cli beta yes + + +# nanopi-r4s +nanopi-r4s current hirsute cli beta yes + + +# nanopiair +nanopiair current hirsute cli beta yes + + +# nanopiduo +nanopiduo current hirsute cli beta yes + + +# nanopiduo2 +nanopiduo2 current hirsute cli beta yes + + +# nanopik1plus +nanopik1plus current hirsute cli beta yes + + +# nanopik2-905 +nanopik2-s905 current hirsute cli beta yes + + +# nanopim1 +nanopim1 current hirsute cli beta yes + + +# nanopim1plus +nanopim1plus current hirsute cli beta yes + + +# nanopim4 +nanopim4 current hirsute cli beta yes + + +# nanopim4v2 +nanopim4v2 current hirsute cli beta yes + + +# nanopineo +nanopineo current hirsute cli beta yes + + +# nanopineocore2 +nanopineo2 current hirsute cli beta yes + + +# nanopineo2black +nanopineo2black current hirsute cli beta yes + + +# nanopineo3 +nanopineo3 current hirsute cli beta yes + + +# nanopineo4 +nanopineo4 current hirsute cli beta yes + + +# nanopineocore2 +nanopineocore2 current hirsute cli beta yes + + +# nanopineoplus2 +nanopineoplus2 current hirsute cli beta yes + + +# nanopia64 +nanopia64 current hirsute cli beta yes + + +# Odroid C1 +odroidc1 current hirsute cli beta yes + + +# Odroid C2 +odroidc2 current hirsute cli beta yes + + +# Odroid N2 / N2+ +odroidn2 current hirsute cli beta yes + + +# Odroid C4 +odroidc4 current hirsute cli beta yes + + +# Odroid HC4 +odroidhc4 current hirsute cli beta yes + + +# Odroid XU4 +odroidxu4 current hirsute cli beta yes + + +# orangepi2 +orangepi2 current hirsute cli beta yes + + +# orangepi 3 +orangepi3 current hirsute cli beta yes + + +# Orangepi 4 +orangepi4 current hirsute cli beta yes + + +# orangepi-r1 +orangepi-r1 current hirsute cli beta yes + + +# Orangepi rk3399 +orangepi-rk3399 current hirsute cli beta yes + + +# orangepilite +orangepilite current hirsute cli beta yes + + +# orangepilite2 +orangepilite2 current hirsute cli beta yes + + +# orangepioneplus +orangepioneplus current hirsute cli beta yes + + +# orangepione +orangepione current hirsute cli beta yes + + +# orangepipc +orangepipc current hirsute cli beta yes + + +# orangepipc2 +orangepipc2 current hirsute cli beta yes + + +# orangepipcplus +orangepipcplus current hirsute cli beta yes + + +# orangepiplus +orangepiplus current hirsute cli beta yes + + +# orangepiplus2e +orangepiplus2e current hirsute cli beta yes + + +# Orangepi Prime +orangepiprime current hirsute cli beta yes + + +# Orangepi Win +orangepiwin current hirsute cli beta yes + + +# orangepizero +orangepizero current hirsute cli beta yes + + +# orangepizero2 +orangepizero2 dev hirsute cli beta yes + + +# orangepizeroplus +orangepizeroplus current hirsute cli beta yes + + +# orangepizeroplus2-h3 +orangepizeroplus2-h3 current hirsute cli beta yes + + +# orangepizeroplus2-h5 +orangepizeroplus2-h5 current hirsute cli beta yes + + +# Pine64 +pine64 current hirsute cli beta yes + + +# Pine64so +pine64so current hirsute cli beta yes + + +# Pine H64 +pineh64 current hirsute cli beta yes + + +# Pine H64 B +pineh64-b current hirsute cli beta yes + + +# Renegade +renegade current hirsute cli beta yes + + +# rk322x-box +rk322x-box current hirsute cli beta yes + + +# Rock64 +rock64 current hirsute cli beta yes + + +# Rockpi 4a +rockpi-4a current hirsute cli beta yes + + +# Rockpi 4b +rockpi-4b current hirsute cli beta yes + + +# Rockpi 4c +rockpi-4c current hirsute cli beta yes + + +# Rockpi S +rockpi-s current hirsute minimal beta yes + + +# Rockpi E +rockpi-e current hirsute cli beta yes + + +# Rock64pro +rockpro64 current hirsute cli beta yes + + +# Tinkerboard +tinkerboard current hirsute cli beta yes + + +# Station M1 +station-m1 current hirsute cli beta yes + + +# Station P1 +station-p1 current hirsute cli beta yes + + +# tritium-h3 +tritium-h3 current hirsute cli beta yes + + +# tritium-h5 +tritium-h5 current hirsute cli beta yes + + +# Udoo +udoo current hirsute cli beta yes + + +# Z28 pro +z28pro legacy hirsute cli beta yes + + +# zeropi +zeropi current hirsute cli beta yes diff --git a/config/targets-desktop-beta.conf b/config/targets-desktop-beta.conf new file mode 100644 index 000000000..e320aae43 --- /dev/null +++ b/config/targets-desktop-beta.conf @@ -0,0 +1,159 @@ +######################################################################################################################################################### +# board branch release desktop|cli|minimal stable|beta create images DE DE config Comma delimited app groups # +######################################################################################################################################################### + +#Friendlyelec FE-SOM-RK3399 +fe-som-rk3399 current focal desktop beta yes budgie config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +fe-som-rk3399 current focal desktop beta yes cinnamon config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +fe-som-rk3399 current focal desktop beta yes gnome config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +fe-som-rk3399 current focal desktop beta yes mate config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +fe-som-rk3399 current focal desktop beta yes xfce config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop + + +# Khadas Vim1 +kvim1 current focal desktop beta yes gnome config_base + + +# La frite +lafrite current focal desktop beta yes gnome config_base + + +# Lepotato +lepotato current focal desktop beta yes gnome config_base + + +# Olimex Lime A64 +lime-a64 current focal desktop beta yes gnome config_base + + +# nanopct4 +nanopct4 current focal desktop beta yes budgie config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +nanopct4 current focal desktop beta yes cinnamon config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +nanopct4 current focal desktop beta yes gnome config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +nanopct4 current focal desktop beta yes mate config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +nanopct4 current focal desktop beta yes xfce config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop + + +# nanopik1plus +nanopik1plus current focal desktop beta yes gnome config_base + + +# nanopik2-905 +nanopik2-s905 current focal desktop beta yes gnome config_base + + +# nanopim4 +nanopim4 current focal desktop beta yes gnome config_base + + +# nanopim4v2 +nanopim4v2 current focal desktop beta yes gnome config_base +nanopim4v2 current focal desktop beta yes xfce config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop + +# Odroid C2 +odroidc2 current focal desktop beta yes gnome config_base + + +# Odroid N2 +odroidn2 current focal desktop beta yes budgie config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +odroidn2 current focal desktop beta yes cinnamon config_base +odroidn2 current focal desktop beta yes gnome config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +odroidn2 current focal desktop beta yes mate config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +odroidn2 current focal desktop beta yes xfce config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop + +# Odroid C4 +odroidc4 current focal desktop beta yes budgie config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +odroidc4 current focal desktop beta yes cinnamon config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +odroidc4 current focal desktop beta yes gnome config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +odroidc4 current focal desktop beta yes mate config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +odroidc4 current focal desktop beta yes xfce config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop + + +# Odroid HC4 +odroidhc4 current focal desktop beta yes cinnamon config_base + + +# Odroid XU4 +odroidxu4 current focal desktop beta yes xfce config_base + + +# orangepi 3 +orangepi3 current focal desktop beta yes gnome config_base + + +# Orangepi 4 +orangepi4 current focal desktop beta yes gnome config_base + + +# orangepilite2 +orangepilite2 current focal desktop beta yes gnome config_base + + +# orangepipc2 +orangepipc2 current focal desktop beta yes gnome config_base + + +# Orangepi Prime +orangepiprime current focal desktop beta yes gnome config_base + + +# Orangepi Win +orangepiwin current focal desktop beta yes gnome config_base + + +# Pine64 +pine64 current focal desktop beta yes gnome config_base + +# Pinebook A64 +pinebook-a64 current focal desktop beta yes gnome config_base + + +# Pinebook PRO +pinebook-pro current focal desktop beta yes budgie config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +pinebook-pro current focal desktop beta yes cinnamon config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +pinebook-pro current focal desktop beta yes gnome config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +pinebook-pro current focal desktop beta yes mate config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +pinebook-pro current focal desktop beta yes xfce config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop + + +# Pine H64 +pineh64 current focal desktop beta yes gnome config_base + + +# Pine H64 B +pineh64-b current focal desktop beta yes gnome config_base + + +# Renegade +renegade current focal desktop beta yes gnome config_base + + +# Rockpi 4a +rockpi-4a current focal desktop beta yes gnome config_base + +# Rockpi 4b +rockpi-4b current focal desktop beta yes gnome config_base + + +# Rockpi 4c +rockpi-4c current focal desktop beta yes gnome config_base + + +# Rock64pro + +rockpro64 current focal desktop beta yes budgie config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +rockpro64 current focal desktop beta yes cinnamon config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +rockpro64 current focal desktop beta yes gnome config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +rockpro64 current focal desktop beta yes mate config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop +rockpro64 current focal desktop beta yes xfce config_base browsers,chat,desktop_tools,editors,email,internet,internet-tools,multimedia,office,programming,remote_desktop + +# Teres A64 +teres-a64 current focal desktop beta yes gnome config_base + + +# Tinkerboard +tinkerboard current focal desktop beta yes xfce config_base + + +# tritium-h5 +tritium-h5 current focal desktop beta yes gnome config_base diff --git a/config/targets.conf b/config/targets.conf index 3deb4fbef..f9823758a 100644 --- a/config/targets.conf +++ b/config/targets.conf @@ -1,919 +1,684 @@ -# targets are delimited with tabs -# -# boardname - legacy|current|dev - upstream release name - desktop|cli|minimal - stable|beta - yes, images -# +######################################################################################################################################################### +# board branch release desktop|cli|minimal stable|beta create images DE DE config Comma delimited app groups # +######################################################################################################################################################### -# Bananapi A20 +# Bananapi M1 / M1+ A20 +bananapi current buster cli stable yes +bananapi current buster desktop stable yes xfce config_base browsers,chat +bananapi current focal cli stable yes +bananapi current focal desktop stable yes xfce config_base browsers,chat +bananapi current buster minimal stable yes +bananapi current focal minimal stable yes +bananapi legacy buster cli stable no +bananapi dev hirsute cli stable no + + +# Bananapi Pro A20 +bananapi current buster cli stable yes +bananapi current buster desktop stable yes xfce config_base browsers,chat +bananapi current focal cli stable yes +bananapi current focal desktop stable yes xfce config_base browsers,chat +bananapi current buster minimal stable yes +bananapi current focal minimal stable yes +bananapi legacy buster cli stable no -bananapi legacy buster cli stable no -bananapi current buster desktop stable yes -bananapi current buster cli stable yes -bananapi current bionic cli stable yes -bananapi current bullseye cli stable yes -bananapi current focal cli stable yes -bananapi current buster minimal stable yes -bananapi current focal desktop stable yes -bananapi current focal cli beta yes # Bananapi M2+ H3 +bananapim2plus current buster cli stable yes +bananapim2plus current buster desktop stable yes xfce config_base browsers,chat +bananapim2plus current focal cli stable yes +bananapim2plus current focal desktop stable yes xfce config_base browsers,chat +bananapim2plus current buster minimal stable yes +bananapim2plus current focal minimal stable yes +bananapim2plus legacy buster cli stable no -bananapim2plus current buster desktop stable yes -bananapim2plus current bionic cli stable yes -bananapim2plus current bullseye cli stable yes -bananapim2plus current focal cli stable yes -bananapim2plus current focal desktop stable yes -bananapim2plus current focal cli beta yes -# Bananapi M2 Zero H3 +# Bananapi M2 Zero H2+ +bananapim2zero current buster cli stable yes +bananapim2zero current focal cli stable yes +bananapim2zero current buster minimal stable yes +bananapim2zero current focal minimal stable yes +bananapim2zero legacy buster cli stable no -bananapim2zero current buster desktop stable yes -bananapim2zero current bionic cli stable yes -bananapim2zero current bullseye cli stable yes -bananapim2zero current focal cli stable yes -bananapim2zero current focal cli beta yes # Bananapi M2U R40 +bananapim2ultra current buster cli stable yes +bananapim2ultra current focal cli stable yes -bananapim2ultra current buster minimal stable yes -bananapim2ultra current bullseye cli stable yes -bananapim2ultra current focal minimal stable yes # Bananapi M3 +bananapim3 current buster cli stable yes +bananapim3 current focal cli stable yes -bananapim3 current buster minimal stable yes -bananapim3 current bionic desktop stable yes -bananapim3 current bullseye cli stable yes -bananapim3 current focal cli stable yes -bananapim3 current focal desktop stable yes # Bananapi M64 +bananapim64 current buster cli stable yes +bananapim64 current focal cli stable yes +bananapim64 dev hirsute cli stable no -bananapim64 current bionic minimal stable yes -bananapim64 current buster minimal stable yes -bananapim64 current bullseye cli stable yes -bananapim64 current focal cli stable yes -bananapim64 current focal desktop stable yes # Bananapi R2 +bananapir2 legacy buster cli stable yes +bananapir2 legacy focal cli stable yes -bananapir2 legacy buster minimal stable yes -bananapir2 legacy focal minimal stable yes - -# Bananapi pro A20 - -bananapipro current buster desktop stable yes -bananapipro current buster cli stable yes -bananapipro current bionic cli stable yes -bananapipro current bullseye cli stable yes -bananapipro current focal cli stable yes -bananapipro current buster minimal stable yes -bananapipro current focal desktop stable yes -bananapipro current focal cli beta yes # Helios4 -helios4 current buster cli stable yes -helios4 current bionic cli stable yes -helios4 current focal cli stable yes -helios4 current bullseye cli stable yes -helios4 current focal cli beta yes +helios4 current buster cli stable yes +helios4 current focal cli stable yes # Helios64 -helios64 legacy buster cli stable yes -helios64 current buster cli stable yes -helios64 current bionic cli stable yes -helios64 current focal cli stable yes -helios64 current bullseye cli stable yes +helios64 current buster cli stable yes +helios64 current focal cli stable yes +helios64 legacy buster cli stable yes + # Clearfog Base -clearfogbase current buster cli stable yes -clearfogbase current bionic cli stable yes -clearfogbase current focal cli stable yes -clearfogbase current bullseye cli stable yes -clearfogbase current focal cli beta yes +clearfogbase current buster cli stable yes +clearfogbase current focal cli stable yes # Clearfog Pro -clearfogpro current buster cli stable yes -clearfogpro current bionic cli stable yes -clearfogpro current focal cli stable yes -clearfogpro current bullseye cli stable yes -clearfogpro dev buster cli stable no -clearfogpro current focal cli beta yes +clearfogpro current buster cli stable yes +clearfogpro current focal cli stable yes # Cubieboard1 +cubieboard current buster cli stable yes +cubieboard current focal cli stable yes -cubieboard current bionic cli stable yes -cubieboard current buster cli stable yes -cubieboard current focal cli stable yes -cubieboard current bullseye cli stable yes # Cubieboard2 +cubieboard2 current buster cli stable yes +cubieboard2 current buster desktop stable yes xfce config_base browsers,chat +cubieboard2 current focal cli stable yes +cubieboard2 current focal desktop stable yes xfce config_base browsers,chat -cubieboard2 current bionic cli stable yes -cubieboard2 current buster cli stable yes -cubieboard2 current focal cli stable yes -cubieboard2 current focal desktop stable yes # Cubietruck -cubietruck current buster desktop stable yes -cubietruck current buster cli stable yes -cubietruck current bionic cli stable yes -cubietruck current bullseye cli stable yes -cubietruck current focal cli stable yes -cubietruck current focal desktop stable yes -cubietruck current focal cli beta yes +cubietruck current buster cli stable yes +cubietruck current buster desktop stable yes xfce config_base browsers,chat +cubietruck current focal cli stable yes +cubietruck current focal desktop stable yes xfce config_base browsers,chat + # Cubox-i -cubox-i current buster cli stable yes -cubox-i current bionic desktop stable yes -cubox-i current buster minimal stable yes -cubox-i current bullseye cli stable yes -cubox-i current focal cli stable yes -cubox-i current focal desktop stable yes +cubox-i current buster cli stable yes +cubox-i current buster desktop stable yes xfce config_base browsers,chat +cubox-i current focal cli stable yes +cubox-i current focal desktop stable yes xfce config_base browsers,chat -# Udoo -udoo current buster cli stable yes -udoo current bionic desktop stable yes -udoo current buster minimal stable yes -udoo current bullseye cli stable yes -udoo current focal cli stable yes -udoo current focal desktop stable yes - -# Khadas Vim1 -kvim1 current buster desktop stable yes -kvim1 current groovy cli stable yes -kvim1 current bionic cli stable yes -kvim1 current bullseye cli stable yes -kvim1 current focal desktop stable yes - -# Khadas Vim2 -kvim2 current buster desktop stable yes -kvim2 current groovy cli stable yes -kvim2 current bionic cli stable yes -kvim2 current bullseye cli stable yes -kvim2 current focal desktop stable yes - -# La frite - -lafrite current buster cli stable yes -lafrite current groovy cli stable yes -lafrite current bionic desktop stable yes -lafrite current bullseye minimal stable yes -lafrite current focal cli stable yes -lafrite current focal desktop stable yes - -# Lepotato - -lepotato current buster cli stable yes -lepotato current groovy cli stable yes -lepotato current bionic desktop stable yes -lepotato current bullseye minimal stable yes -lepotato current focal desktop stable yes -lepotato current focal cli beta yes - -# Olimex Lime - -lime current buster cli stable yes -lime current bionic cli stable yes -lime current focal cli stable yes - -# Olimex Lime A-10 - -lime-a10 current buster cli stable yes -lime-a10 current focal cli stable yes - -# Olimex Micro - -micro current buster cli stable yes -micro current bionic cli stable yes -micro current focal cli stable yes - -# Olimex Lime2 -lime2 current buster desktop stable yes -lime2 current buster cli stable yes -lime2 current bionic cli stable yes -lime2 current bullseye cli stable yes -lime2 current focal cli stable yes -lime2 current focal desktop stable yes - -# lime-a64 - -lime-a64 current bionic minimal stable yes -lime-a64 current buster minimal stable yes -lime-a64 current bionic cli stable yes -lime-a64 current buster cli stable yes -lime-a64 current bullseye cli stable yes -lime-a64 current focal cli stable yes -lime-a64 current focal desktop stable yes -lime-a64 current focal cli beta yes - -# MACCHIATObin Double Shot - -macchiatobin-doubleshot legacy buster cli stable yes -macchiatobin-doubleshot legacy bionic cli stable yes -macchiatobin-doubleshot legacy focal cli stable yes # Espressobin +espressobin current buster cli stable yes +espressobin current focal cli stable yes +espressobin dev hirsute cli stable no -espressobin current buster cli stable yes -espressobin current bionic cli stable yes -espressobin current focal cli stable yes -espressobin current bullseye cli stable yes -espressobin current focal cli beta yes - -# nanopct3 - -nanopct3 legacy buster minimal stable yes -nanopct3 legacy buster cli stable yes -nanopct3 legacy bionic desktop stable yes -nanopct3 legacy bionic minimal stable yes -nanopct3 legacy bullseye cli stable yes -nanopct3 legacy focal cli stable yes - -# nanopct3plus - -nanopct3plus legacy buster cli stable yes -nanopct3plus legacy buster minimal stable yes -nanopct3plus legacy bionic desktop stable yes -nanopct3plus legacy bionic minimal stable yes -nanopct3plus legacy bullseye cli stable yes -nanopct3plus legacy focal cli stable yes - -# nanopct4 - -nanopct4 legacy buster cli stable yes -nanopct4 legacy buster desktop stable yes -nanopct4 legacy bionic desktop stable yes -nanopct4 current buster cli stable yes -nanopct4 current buster desktop stable yes -nanopct4 current bionic cli stable yes -nanopct4 current focal cli stable yes -nanopct4 current focal desktop stable yes -nanopct4 current focal cli beta yes - -# nanopi-r1 - -nanopi-r1 current buster cli stable yes -nanopi-r1 current bionic cli stable yes -nanopi-r1 current bullseye cli stable yes -nanopi-r1 current focal cli stable yes -nanopi-r1 dev focal cli stable no -nanopi-r1 current focal cli beta yes - -# nanopi-r2s - -nanopi-r2s current buster cli stable yes -nanopi-r2s current bionic cli stable yes -nanopi-r2s current bullseye minimal stable yes -nanopi-r2s current focal minimal stable yes -nanopi-r2s current focal cli beta yes - -# nanopi-r4s - -nanopi-r4s current buster cli stable yes -nanopi-r4s current focal cli stable yes - -# nanopiair - -nanopiair current buster cli stable yes -nanopiair current bionic cli stable yes -nanopiair current bullseye cli stable yes -nanopiair current focal cli stable yes -nanopiair current focal cli beta yes - -# nanopiduo - -nanopiduo current buster cli stable yes -nanopiduo current bionic cli stable yes -nanopiduo current bullseye minimal stable yes -nanopiduo current focal cli stable yes - -# nanopiduo2 - -nanopiduo2 current buster cli stable yes -nanopiduo2 current bionic cli stable yes -nanopiduo2 current bullseye cli stable yes -nanopiduo2 current focal cli stable yes - -# nanopifire3 - -nanopifire3 legacy buster cli stable yes -nanopifire3 legacy buster minimal stable yes -nanopifire3 legacy buster desktop stable yes -nanopifire3 legacy bionic cli stable yes -nanopifire3 legacy bullseye cli stable yes -nanopifire3 legacy focal cli stable yes - -# nanopik1plus - -nanopik1plus current buster desktop stable yes -nanopik1plus current buster cli stable yes -nanopik1plus current bionic cli stable yes -nanopik1plus current bullseye cli stable yes -nanopik1plus current focal cli stable yes -nanopik1plus current focal desktop stable yes - -# nanopik2-905 - -nanopik2-s905 current buster cli stable yes -nanopik2-s905 current bionic desktop stable yes -nanopik2-s905 current bullseye cli stable yes -nanopik2-s905 current focal cli stable yes -nanopik2-s905 current focal desktop stable yes - -# nanopim1 - -nanopim1 current buster desktop stable yes -nanopim1 current buster cli stable yes -nanopim1 current bionic cli stable yes -nanopim1 current bullseye cli stable yes -nanopim1 current focal cli stable yes - -# nanopim1plus - -nanopim1plus current buster desktop stable yes -nanopim1plus current buster cli stable yes -nanopim1plus current bionic cli stable yes -nanopim1plus current bullseye cli stable yes -nanopim1plus current focal cli stable yes - -# zeropi -zeropi current buster minimal stable yes -zeropi current bionic cli stable yes -zeropi current bullseye cli stable yes -zeropi current focal cli stable yes - -# nanopim3 - -nanopim3 legacy buster cli stable yes -nanopim3 legacy buster minimal stable yes -nanopim3 legacy bionic desktop stable yes -nanopim3 legacy bullseye cli stable yes -nanopim3 legacy focal cli stable yes - -# nanopim4 - -nanopim4 legacy buster cli stable yes -nanopim4 legacy buster desktop stable yes -nanopim4 legacy bionic desktop stable yes -nanopim4 current buster cli stable yes -nanopim4 current buster desktop stable yes -nanopim4 current bionic cli stable yes -nanopim4 current bullseye cli stable yes -nanopim4 current focal cli stable yes -nanopim4 current focal desktop stable yes -nanopim4 current focal cli beta yes - -# nanopim4v2 - -nanopim4v2 legacy buster cli stable yes -nanopim4v2 legacy buster desktop stable yes -nanopim4v2 legacy bionic desktop stable yes -nanopim4v2 current buster cli stable yes -nanopim4v2 current buster desktop stable yes -nanopim4v2 current bionic cli stable yes -nanopim4v2 current bullseye cli stable yes -nanopim4v2 current focal cli stable yes -nanopim4v2 current focal desktop stable yes -nanopim4v2 current focal cli beta yes - -# nanopineo - -nanopineo current buster cli stable yes -nanopineo current bionic cli stable yes -nanopineo current bullseye cli stable yes -nanopineo current focal cli stable yes - -# nanopineocore2 - -nanopineo2 current buster cli stable yes -nanopineo2 current bionic cli stable yes -nanopineo2 current buster minimal stable yes -nanopineo2 current bullseye cli stable yes -nanopineo2 current focal cli stable yes - -# nanopineo2black - -nanopineo2black current buster cli stable yes -nanopineo2black current bionic cli stable yes -nanopineo2black current bullseye cli stable yes -nanopineo2black current focal cli stable yes -nanopineo2black dev focal cli stable no - -# nanopineo3 - -nanopineo3 current buster cli stable yes -nanopineo3 current bionic cli stable yes -nanopineo3 current bullseye minimal stable yes -nanopineo3 current focal minimal stable yes - -# nanopineo4 - -nanopineo4 legacy buster cli stable yes -nanopineo4 legacy buster minimal stable yes -nanopineo4 legacy bionic desktop stable yes -nanopineo4 current buster desktop stable yes -nanopineo4 current bionic cli stable yes -nanopineo4 current bullseye cli stable yes -nanopineo4 current focal cli stable yes -nanopineo4 current focal desktop stable yes - -# nanopineocore2 - -nanopineocore2 current buster cli stable yes -nanopineocore2 current bionic cli stable yes -nanopineocore2 current bullseye minimal stable yes -nanopineocore2 current focal minimal stable yes - -# nanopineoplus2 - -nanopineoplus2 current buster cli stable yes -nanopineoplus2 current bullseye minimal stable yes -nanopineoplus2 current focal minimal stable yes - -# nanopia64 - -nanopia64 current buster cli stable yes -nanopia64 current buster desktop stable yes -nanopia64 current bionic cli stable yes -nanopia64 current bullseye cli stable yes -nanopia64 current focal cli stable yes - -# Odroid C1 - -odroidc1 current focal cli stable yes -odroidc1 current buster cli stable yes -odroidc1 current groovy cli stable yes -odroidc1 current bullseye cli stable yes - -# Odroid C2 - -odroidc2 current buster cli stable yes -odroidc2 current buster desktop stable yes -odroidc2 current bullseye cli stable yes -odroidc2 current focal cli stable yes -odroidc2 current focal desktop stable yes -odroidc2 current groovy cli stable yes - -# Odroid N2 - -odroidn2 legacy buster cli stable yes -odroidn2 current buster cli stable yes -odroidn2 current buster desktop stable yes -odroidn2 current focal desktop stable yes -odroidn2 current focal cli stable yes - -# Odroid C4 - -odroidc4 legacy focal desktop stable yes -odroidc4 legacy buster cli stable yes -odroidc4 current focal desktop stable yes -odroidc4 current buster cli stable yes -odroidc4 current bullseye cli stable yes -odroidc4 current focal cli stable yes -odroidc4 current groovy cli stable yes - -# Odroid HC4 -odroidhc4 legacy focal cli stable yes -odroidhc4 legacy buster cli stable yes -odroidhc4 current buster cli stable yes -odroidhc4 current focal cli stable yes -odroidhc4 current groovy cli stable yes - -# Odroid XU4 - -odroidxu4 legacy buster cli stable yes -odroidxu4 legacy buster desktop stable yes -odroidxu4 legacy focal desktop stable yes -odroidxu4 legacy focal cli stable yes -odroidxu4 current bionic desktop stable yes -odroidxu4 current buster minimal stable yes -odroidxu4 current bullseye cli stable yes -odroidxu4 current focal cli stable yes -odroidxu4 dev focal cli stable no -odroidxu4 current focal cli beta yes - -# orangepi2 - -orangepi2 current buster desktop stable yes -orangepi2 current buster cli stable yes -orangepi2 current bionic cli stable yes -orangepi2 current bullseye cli stable yes -orangepi2 current focal cli stable yes -orangepi2 current focal desktop stable yes - -# orangepi 3 - -orangepi3 current buster cli stable yes -orangepi3 current bionic desktop stable yes -orangepi3 current bullseye cli stable yes -orangepi3 current focal cli stable yes -orangepi3 current focal desktop stable yes -orangepi3 current focal cli beta yes - -# Orangepi 4 - -orangepi4 legacy buster desktop stable yes -orangepi4 legacy bullseye cli stable yes -orangepi4 legacy bionic desktop stable yes -orangepi4 current buster cli stable yes -orangepi4 current bionic minimal stable yes -orangepi4 current focal cli stable yes -orangepi4 current focal desktop stable yes -orangepi4 current focal cli beta yes - -# orangepi-r1 - -orangepi-r1 current buster cli stable yes -orangepi-r1 current bionic cli stable yes -orangepi-r1 current buster minimal stable yes -orangepi-r1 current bionic minimal stable yes -orangepi-r1 current focal cli stable yes -orangepi-r1 current bullseye minimal stable yes - -# Orangepi rk3399 - -orangepi-rk3399 legacy buster desktop stable yes -orangepi-rk3399 legacy bullseye cli stable yes -orangepi-rk3399 legacy bionic desktop stable yes -orangepi-rk3399 current buster cli stable yes -orangepi-rk3399 current bionic minimal stable yes -orangepi-rk3399 current bullseye cli stable yes -orangepi-rk3399 current focal cli stable yes # Firefly rk3399 +firefly-rk3399 current buster cli stable yes +firefly-rk3399 legacy buster desktop stable yes xfce config_base browsers,chat +firefly-rk3399 current focal cli stable yes +firefly-rk3399 current focal desktop stable yes xfce config_base browsers,chat + + +# Khadas Vim1 +kvim1 current buster cli stable yes +kvim1 current buster desktop stable yes xfce config_base browsers,chat +kvim1 current focal cli stable yes +kvim1 current focal desktop stable yes xfce config_base browsers,chat + + +# Khadas Vim2 +kvim1 current buster cli stable yes +kvim1 current buster desktop stable yes xfce config_base browsers,chat +kvim1 current focal cli stable yes +kvim1 current focal desktop stable yes xfce config_base browsers,chat + + +# La frite +lafrite current buster cli stable yes +lafrite current buster desktop stable yes xfce config_base browsers,chat +lafrite current focal cli stable yes +lafrite current focal desktop stable yes xfce config_base browsers,chat +lafrite current buster minimal stable yes +lafrite current focal minimal stable yes + + +# Lepotato +lepotato current buster cli stable yes +lepotato current buster desktop stable yes xfce config_base browsers,chat +lepotato current focal cli stable yes +lepotato current focal desktop stable yes xfce config_base browsers,chat +lepotato current buster minimal stable yes +lepotato current focal minimal stable yes + + +# Olimex Lime +lime current buster cli stable yes +lime current focal cli stable yes + + +# Olimex Lime A-10 +lime-a10 current buster cli stable yes +lime-a10 current focal cli stable yes + + +# Olimex Micro +micro current buster cli stable yes +micro current focal cli stable yes + + +# Olimex Lime2 +lime2 current buster cli stable yes +lime2 current buster desktop stable yes xfce config_base browsers,chat +lime2 current focal cli stable yes +lime2 current focal desktop stable yes xfce config_base browsers,chat +lime2 current buster minimal stable yes +lime2 current focal minimal stable yes + + +# Olimex Lime A64 +lime-a64 current buster cli stable yes +lime-a64 current buster desktop stable yes xfce config_base browsers,chat +lime-a64 current focal cli stable yes +lime-a64 current focal desktop stable yes xfce config_base browsers,chat +lime-a64 current buster minimal stable yes +lime-a64 current focal minimal stable yes + + +# MACCHIATObin Double Shot +macchiatobin-doubleshot legacy buster cli stable yes +macchiatobin-doubleshot legacy focal cli stable yes + + +# MiQi +miqi current buster cli stable yes +miqi current buster desktop stable yes xfce config_base browsers,chat +miqi current focal cli stable yes +miqi current focal desktop stable yes xfce config_base browsers,chat + + +# nanopct4 +nanopct4 legacy buster cli stable yes +nanopct4 legacy buster desktop stable yes xfce config_base browsers,chat +nanopct4 current buster cli stable yes +nanopct4 current buster desktop stable yes xfce config_base browsers,chat +nanopct4 current focal cli stable yes +nanopct4 current focal desktop stable yes xfce config_base browsers,chat + + +# nanopi-r1 +nanopi-r1 current buster cli stable yes +nanopi-r1 current focal cli stable yes + + +# nanopi-r2s +nanopi-r2s current buster cli stable yes +nanopi-r2s current focal cli stable yes + + +# nanopi-r4s +nanopi-r4s current buster cli stable yes +nanopi-r4s current focal cli stable yes + + +# nanopiair +nanopiair current buster cli stable yes +nanopiair current focal cli stable yes + + +# nanopiduo +nanopiduo current buster cli stable yes +nanopiduo current focal cli stable yes + + +# nanopiduo2 +nanopiduo2 current buster cli stable yes +nanopiduo2 current focal cli stable yes + + +# nanopik1plus +nanopik1plus current buster cli stable yes +nanopik1plus current buster desktop stable yes xfce config_base browsers,chat +nanopik1plus current focal cli stable yes +nanopik1plus current focal desktop stable yes xfce config_base browsers,chat + + +# nanopik2-905 +nanopik2-s905 current buster cli stable yes +nanopik2-s905 current buster desktop stable yes xfce config_base browsers,chat +nanopik2-s905 current focal cli stable yes +nanopik2-s905 current focal desktop stable yes xfce config_base browsers,chat + + +# nanopim1 +nanopim1 current buster cli stable yes +nanopim1 current buster desktop stable yes xfce config_base browsers,chat +nanopim1 current focal cli stable yes + + +# nanopim1plus +nanopim1plus current buster cli stable yes +nanopim1plus current buster desktop stable yes xfce config_base browsers,chat +nanopim1plus current focal cli stable yes + + +# nanopim4 +nanopim4 legacy buster cli stable yes +nanopim4 legacy buster desktop stable yes xfce config_base browsers,chat +nanopim4 current buster cli stable yes +nanopim4 current buster desktop stable yes xfce config_base browsers,chat +nanopim4 current focal cli stable yes +nanopim4 current focal desktop stable yes xfce config_base browsers,chat + + +# nanopim4v2 +nanopim4v2 legacy buster cli stable yes +nanopim4v2 legacy buster desktop stable yes xfce config_base browsers,chat +nanopim4v2 current buster cli stable yes +nanopim4v2 current buster desktop stable yes xfce config_base browsers,chat +nanopim4v2 current focal cli stable yes +nanopim4v2 current focal desktop stable yes xfce config_base browsers,chat + + +# nanopineo +nanopineo current buster cli stable yes +nanopineo current focal cli stable yes + + +# nanopineocore2 +nanopineo2 current buster cli stable yes +nanopineo2 current focal cli stable yes + + +# nanopineo2black +nanopineo2black current buster cli stable yes +nanopineo2black dev focal cli stable no + + +# nanopineo3 +nanopineo3 current buster cli stable yes +nanopineo3 current focal cli stable yes + + +# nanopineo4 +nanopineo4 legacy buster cli stable yes +nanopineo4 current buster desktop stable yes xfce config_base browsers,chat +nanopineo4 current focal cli stable yes +nanopineo4 current focal desktop stable yes xfce config_base browsers,chat + + +# nanopineocore2 +nanopineocore2 current buster cli stable yes +nanopineocore2 current focal cli stable yes + + +# nanopineoplus2 +nanopineoplus2 current buster cli stable yes +nanopineoplus2 current focal cli stable yes + + +# nanopia64 +nanopia64 current buster cli stable yes +nanopia64 current buster desktop stable yes xfce config_base browsers,chat +nanopia64 current focal cli stable yes + + +# Odroid C1 +odroidc1 current focal cli stable yes +odroidc1 current buster cli stable yes + + +# Odroid C2 +odroidc2 current buster cli stable yes +odroidc2 current buster desktop stable yes xfce config_base browsers,chat +odroidc2 current focal cli stable yes +odroidc2 current focal desktop stable yes xfce config_base browsers,chat + + +# Odroid N2 / N2+ +odroidn2 legacy buster cli stable yes +odroidn2 current buster cli stable yes +odroidn2 current buster desktop stable yes xfce config_base browsers,chat +odroidn2 current focal desktop stable yes xfce config_base browsers,chat +odroidn2 current focal cli stable yes +odroidn2 dev hirsute cli stable no + + +# Odroid C4 +odroidc4 legacy focal desktop stable yes xfce config_base browsers,chat +odroidc4 legacy buster cli stable yes +odroidc4 current focal desktop stable yes xfce config_base browsers,chat +odroidc4 current buster cli stable yes +odroidc4 current focal cli stable yes + + +# Odroid HC4 +odroidhc4 legacy focal cli stable yes +odroidhc4 legacy buster cli stable yes +odroidhc4 current buster cli stable yes +odroidhc4 current focal cli stable yes +odroidhc4 current focal desktop stable yes xfce config_base browsers,chat + + +# Odroid XU4 +odroidxu4 legacy buster cli stable yes +odroidxu4 legacy buster desktop stable yes xfce config_base browsers,chat +odroidxu4 legacy focal cli stable yes +odroidxu4 legacy focal desktop stable yes xfce config_base browsers,chat +odroidxu4 current focal cli stable yes +odroidxu4 current focal desktop stable yes +odroidxu4 dev hirsute cli stable no + + +# orangepi2 +orangepi2 current buster cli stable yes +orangepi2 current buster desktop stable yes xfce config_base browsers,chat +orangepi2 current focal cli stable yes +orangepi2 current focal desktop stable yes xfce config_base browsers,chat + + +# orangepi 3 +orangepi3 current buster cli stable yes +orangepi3 current buster desktop stable yes xfce config_base browsers,chat +orangepi3 current focal cli stable yes +orangepi3 current focal desktop stable yes xfce config_base browsers,chat + + +# Orangepi 4 +orangepi4 legacy buster desktop stable yes xfce config_base browsers,chat +orangepi4 current buster cli stable yes +orangepi4 current focal cli stable yes +orangepi4 current focal desktop stable yes xfce config_base browsers,chat + + +# orangepi-r1 +orangepi-r1 current buster cli stable yes +orangepi-r1 current focal cli stable yes + + +# Orangepi rk3399 +orangepi-rk3399 legacy buster desktop stable yes xfce config_base browsers,chat +orangepi-rk3399 current buster cli stable yes +orangepi-rk3399 current focal cli stable yes +orangepi-rk3399 current focal desktop stable yes xfce config_base browsers,chat -firefly-rk3399 legacy buster desktop stable yes -firefly-rk3399 legacy bullseye cli stable yes -firefly-rk3399 legacy bionic desktop stable yes -firefly-rk3399 current buster cli stable yes -firefly-rk3399 current bionic minimal stable yes -firefly-rk3399 current bullseye cli stable yes -firefly-rk3399 current focal cli stable yes -firefly-rk3399 current focal desktop stable yes # orangepilite +orangepilite current buster cli stable yes +orangepilite current buster desktop stable yes xfce config_base browsers,chat +orangepilite current focal cli stable yes -orangepilite current buster desktop stable yes -orangepilite current buster cli stable yes -orangepilite current bionic cli stable yes -orangepilite current bullseye cli stable yes -orangepilite current focal cli stable yes # orangepilite2 +orangepilite2 current buster cli stable yes +orangepilite2 current buster desktop stable yes xfce config_base browsers,chat +orangepilite2 current focal cli stable yes -orangepilite2 current buster cli stable yes -orangepilite2 current bionic cli stable yes -orangepilite2 current buster minimal stable yes -orangepilite2 current bullseye cli stable yes -orangepilite2 current focal cli stable yes # orangepioneplus +orangepioneplus current buster cli stable yes +orangepioneplus current buster desktop stable yes xfce config_base browsers,chat +orangepioneplus current focal cli stable yes -orangepioneplus current buster cli stable yes -orangepioneplus current bionic desktop stable yes -orangepioneplus current bionic cli stable yes -orangepioneplus current buster minimal stable yes -orangepioneplus current bullseye cli stable yes -orangepioneplus current focal cli stable yes # orangepione +orangepione current buster cli stable yes +orangepione current buster desktop stable yes xfce config_base browsers,chat +orangepione current focal cli stable yes -orangepione current buster desktop stable yes -orangepione current buster cli stable yes -orangepione current bionic cli stable yes -orangepione current bullseye cli stable yes -orangepione current focal cli stable yes -orangepione current focal cli beta yes # orangepipc +orangepipc current buster cli stable yes +orangepipc current buster desktop stable yes xfce config_base browsers,chat +orangepipc current focal cli stable yes +orangepipc current focal desktop stable yes xfce config_base browsers,chat -orangepipc current buster desktop stable yes -orangepipc current buster cli stable yes -orangepipc current bionic cli stable yes -orangepipc current bullseye cli stable yes -orangepipc current focal cli stable yes -orangepipc current focal desktop stable yes -orangepipc current focal cli beta yes # orangepipc2 +orangepipc2 current buster cli stable yes +orangepipc2 current buster desktop stable yes xfce config_base browsers,chat +orangepipc2 current focal cli stable yes +orangepipc2 current focal desktop stable yes xfce config_base browsers,chat -orangepipc2 current buster desktop stable yes -orangepipc2 current buster cli stable yes -orangepipc2 current bionic cli stable yes -orangepipc2 current bullseye cli stable yes -orangepipc2 current focal cli stable yes -orangepipc2 current focal desktop stable yes -orangepipc2 current focal cli beta yes # orangepipcplus +orangepipcplus current buster cli stable yes +orangepipcplus current buster desktop stable yes xfce config_base browsers,chat +orangepipcplus current focal cli stable yes +orangepipcplus current focal desktop stable yes xfce config_base browsers,chat -orangepipcplus current buster desktop stable yes -orangepipcplus current buster cli stable yes -orangepipcplus current bionic cli stable yes -orangepipcplus current bullseye cli stable yes -orangepipcplus current focal cli stable yes -orangepipcplus current focal desktop stable yes -orangepipcplus current focal cli beta yes # orangepiplus +orangepiplus current buster cli stable yes +orangepiplus current buster desktop stable yes xfce config_base browsers,chat +orangepiplus current focal cli stable yes +orangepiplus current focal desktop stable yes xfce config_base browsers,chat -orangepiplus current buster desktop stable yes -orangepiplus current buster cli stable yes -orangepiplus current bionic cli stable yes -orangepiplus current bullseye cli stable yes -orangepiplus current focal cli stable yes -orangepiplus current focal desktop stable yes # orangepiplus2e +orangepiplus2e current buster cli stable yes +orangepiplus2e current buster desktop stable yes xfce config_base browsers,chat +orangepiplus2e current focal cli stable yes +orangepiplus2e current focal desktop stable yes xfce config_base browsers,chat -orangepiplus2e current buster desktop stable yes -orangepiplus2e current buster cli stable yes -orangepiplus2e current bionic cli stable yes -orangepiplus2e current bullseye cli stable yes -orangepiplus2e current focal cli stable yes -orangepiplus2e current focal desktop stable yes # Orangepi Prime +orangepiprime current buster cli stable yes +orangepiprime current buster desktop stable yes xfce config_base browsers,chat +orangepiprime current focal cli stable yes +orangepiprime current focal desktop stable yes xfce config_base browsers,chat -orangepiprime current buster cli stable yes -orangepiprime current buster desktop stable yes -orangepiprime current bionic desktop stable yes -orangepiprime current bullseye cli stable yes -orangepiprime current focal cli stable yes -orangepiprime current focal desktop stable yes # Orangepi Win +orangepiwin current buster cli stable yes +orangepiwin current buster desktop stable yes xfce config_base browsers,chat +orangepiwin current focal cli stable yes +orangepiwin current focal desktop stable yes xfce config_base browsers,chat -orangepiwin current buster cli stable yes -orangepiwin current buster desktop stable yes -orangepiwin current bionic cli stable yes -orangepiwin current bullseye cli stable yes -orangepiwin current focal cli stable yes -orangepiwin current focal desktop stable yes # orangepizero +orangepizero current buster cli stable yes +orangepizero current focal cli stable yes -orangepizero current buster cli stable yes -orangepizero current bionic cli stable yes -orangepizero current bullseye cli stable yes -orangepizero current focal cli stable yes -orangepizero current focal cli beta yes # orangepizero2 - -orangepizero2 current buster cli stable yes -orangepizero2 current focal cli stable yes +orangepizero2 current buster cli stable yes +orangepizero2 current focal cli stable yes # orangepizeroplus +orangepizeroplus current buster cli stable yes +orangepizeroplus current focal cli stable yes -orangepizeroplus current buster cli stable yes -orangepizeroplus current bullseye cli stable yes -orangepizeroplus current bionic cli stable yes -orangepizeroplus current focal cli stable yes # orangepizeroplus2-h3 +orangepizeroplus2-h3 current buster cli stable yes +orangepizeroplus2-h3 current focal cli stable yes -orangepizeroplus2-h3 current buster cli stable yes -orangepizeroplus2-h3 current bionic minimal stable yes -orangepizeroplus2-h3 current bullseye cli stable yes -orangepizeroplus2-h3 current focal cli stable yes -orangepizeroplus2-h3 current focal cli beta yes # orangepizeroplus2-h5 +orangepizeroplus2-h5 current buster cli stable yes +orangepizeroplus2-h5 current focal cli stable yes -orangepizeroplus2-h5 current buster cli stable yes -orangepizeroplus2-h5 current bionic minimal stable yes -orangepizeroplus2-h5 current bullseye cli stable yes -orangepizeroplus2-h5 current focal cli stable yes -orangepizeroplus2-h5 current focal cli beta yes # LinkSprite pcDuino3 +pcduino3 current buster cli stable yes +pcduino3 current focal cli stable yes -pcduino3 current bionic cli stable yes -pcduino3 current buster cli stable yes -pcduino3 current focal cli stable yes # Pine64 +pine64 current buster cli stable yes +pine64 current buster desktop stable yes xfce config_base browsers,chat +pine64 current focal cli stable yes +pine64 current focal desktop stable yes xfce config_base browsers,chat -pine64 current buster cli stable yes -pine64 current buster desktop stable yes -pine64 current bionic cli stable yes -pine64 current bullseye cli stable yes -pine64 current focal cli stable yes -pine64 current focal desktop stable yes -pine64 current focal cli beta yes # Pine64so +pine64so current buster cli stable yes +pine64so current focal cli stable yes -pine64so current buster cli stable yes -pine64so current bionic cli stable yes -pine64so current bullseye cli stable yes -pine64so current focal cli stable yes # Pinecube +pinecube current focal minimal stable yes +pinecube current buster minimal stable yes -pinecube current focal minimal stable yes -pinecube current buster minimal stable yes # Pinebook A64 +pinebook-a64 legacy buster desktop stable yes xfce config_base browsers,chat +pinebook-a64 legacy focal desktop stable yes xfce config_base browsers,chat -pinebook-a64 legacy focal desktop stable yes -pinebook-a64 legacy buster desktop stable yes -pinebook-a64 current focal desktop beta yes # Pinebook PRO - -pinebook-pro legacy bionic desktop stable yes -pinebook-pro legacy buster desktop stable yes -pinebook-pro legacy focal desktop stable yes -pinebook-pro current focal desktop stable yes -pinebook-pro current focal desktop beta yes -pinebook-pro current bullseye desktop beta yes +pinebook-pro legacy buster desktop stable yes xfce config_base browsers,chat +pinebook-pro legacy focal desktop stable yes xfce config_base browsers,chat +pinebook-pro current buster desktop stable yes xfce config_base browsers,chat +pinebook-pro current focal desktop stable yes xfce config_base browsers,chat # Pine H64 +pineh64 current buster cli stable yes +pineh64 current buster desktop stable yes xfce config_base browsers,chat +pineh64 current focal cli stable yes +pineh64 current focal desktop stable yes xfce config_base browsers,chat -pineh64 current buster cli stable yes -pineh64 current bionic cli stable yes -pineh64 current bullseye cli stable yes -pineh64 current focal cli stable yes -pineh64 current buster desktop stable yes -pineh64 current focal desktop stable yes -pineh64 current focal cli beta yes # Pine H64 B +pineh64-b current buster cli stable yes +pineh64-b current buster desktop stable yes xfce config_base browsers,chat +pineh64-b current focal cli stable yes +pineh64-b current focal desktop stable yes xfce config_base browsers,chat -pineh64-b current buster cli stable yes -pineh64-b current bullseye cli stable yes -pineh64-b current focal cli stable yes -pineh64-b current buster desktop stable yes -pineh64-b current focal desktop stable yes -pineh64-b current focal cli beta yes # Renegade +renegade legacy buster desktop stable yes xfce config_base browsers,chat +renegade current buster cli stable yes +renegade current focal cli stable yes +renegade current focal desktop stable yes xfce config_base browsers,chat -renegade legacy buster desktop stable yes -renegade current buster cli stable yes -renegade legacy focal cli stable yes -renegade current focal cli stable yes -renegade current focal desktop stable yes -renegade legacy bionic desktop stable yes -renegade current bionic desktop stable yes # rk322x-box +rk322x-box legacy buster cli stable yes +rk322x-box legacy focal desktop stable yes xfce config_base browsers,chat +rk322x-box current buster minimal stable yes +rk322x-box current focal desktop stable yes xfce config_base browsers,chat +rk322x-box dev hirsute cli stable no -rk322x-box legacy buster cli stable yes -rk322x-box legacy focal desktop stable yes -rk322x-box current buster minimal stable yes -rk322x-box current focal desktop stable yes # Rock64 +rock64 legacy buster desktop stable yes xfce config_base browsers,chat +rock64 current buster cli stable yes +rock64 current focal cli stable yes +rock64 current focal desktop stable yes xfce config_base browsers,chat -rock64 legacy buster desktop stable yes -rock64 current buster cli stable yes -rock64 legacy focal cli stable yes -rock64 current focal cli stable yes -rock64 legacy bionic desktop stable yes -rock64 current bionic desktop stable yes -rock64 current focal desktop stable yes -rock64 current focal cli beta yes # Rockpi 4a +rockpi-4a legacy buster cli stable yes +rockpi-4a legacy buster desktop stable yes xfce config_base browsers,chat +rockpi-4a current buster cli stable yes +rockpi-4a current buster desktop stable yes xfce config_base browsers,chat +rockpi-4a current focal cli stable yes +rockpi-4a current focal desktop stable yes xfce config_base browsers,chat -rockpi-4a legacy buster desktop stable yes -rockpi-4a current buster cli stable yes -rockpi-4a legacy focal cli stable yes -rockpi-4a current focal cli stable yes -rockpi-4a current bionic minimal stable yes -rockpi-4a legacy bionic minimal stable yes -rockpi-4a legacy bionic desktop stable yes -rockpi-4a current buster desktop stable yes -rockpi-4a current focal desktop stable yes -rockpi-4a current buster cli beta yes # Rockpi 4b +rockpi-4b legacy buster cli stable yes +rockpi-4b legacy buster desktop stable yes xfce config_base browsers,chat +rockpi-4b current buster cli stable yes +rockpi-4b current buster desktop stable yes xfce config_base browsers,chat +rockpi-4b current focal cli stable yes +rockpi-4b current focal desktop stable yes xfce config_base browsers,chat -rockpi-4b legacy buster desktop stable yes -rockpi-4b current buster cli stable yes -rockpi-4b legacy focal cli stable yes -rockpi-4b current focal cli stable yes -rockpi-4b current bionic minimal stable yes -rockpi-4b legacy bionic minimal stable yes -rockpi-4b legacy bionic desktop stable yes -rockpi-4b current buster desktop stable yes -rockpi-4b current focal desktop stable yes -rockpi-4b current buster cli beta yes # Rockpi 4c +rockpi-4c legacy buster cli stable yes +rockpi-4c legacy buster desktop stable yes xfce config_base browsers,chat +rockpi-4c current buster cli stable yes +rockpi-4c current buster desktop stable yes xfce config_base browsers,chat +rockpi-4c current focal cli stable yes +rockpi-4c current focal desktop stable yes xfce config_base browsers,chat -rockpi-4c legacy buster desktop stable yes -rockpi-4c current buster cli stable yes -rockpi-4c legacy focal cli stable yes -rockpi-4c current focal cli stable yes -rockpi-4c current bionic minimal stable yes -rockpi-4c legacy bionic minimal stable yes -rockpi-4c legacy bionic desktop stable yes -rockpi-4c current buster desktop stable yes -rockpi-4c current focal desktop stable yes -rockpi-4c current buster cli beta yes # Rockpi S +rockpi-s legacy buster minimal stable yes +rockpi-s legacy focal minimal stable yes +rockpi-s current buster minimal stable yes +rockpi-s current focal minimal stable yes -rockpi-s legacy buster minimal stable yes -rockpi-s legacy focal minimal stable yes -rockpi-s current buster minimal stable yes -rockpi-s current focal minimal stable yes # Rockpi E -rockpi-e current buster cli stable yes -rockpi-e current focal cli stable yes -rockpi-e dev buster cli stable yes -rockpi-e dev focal cli stable yes -rockpi-e current focal cli beta yes +rockpi-e current buster cli stable yes +rockpi-e current focal cli stable yes + # Rock64pro +rockpro64 legacy buster cli stable yes +rockpro64 legacy buster desktop stable yes xfce config_base browsers,chat +rockpro64 current buster cli stable yes +rockpro64 current buster desktop stable yes xfce config_base browsers,chat +rockpro64 current focal cli stable yes +rockpro64 current focal desktop stable yes xfce config_base browsers,chat -rockpro64 legacy buster desktop stable yes -rockpro64 legacy bionic desktop stable yes -rockpro64 current buster cli stable yes -rockpro64 current bionic cli stable yes -rockpro64 current bullseye cli stable yes -rockpro64 current focal cli stable yes -rockpro64 current focal desktop stable yes # Teres A64 +teres-a64 current buster desktop stable yes xfce config_base browsers,chat +teres-a64 current focal desktop stable yes xfce config_base browsers,chat -teres-a64 current bionic desktop stable yes -teres-a64 current buster desktop stable yes -teres-a64 current focal cli stable yes -teres-a64 current focal desktop stable yes -teres-a64 current focal desktop beta yes # Tinkerboard +tinkerboard legacy buster cli stable yes +tinkerboard legacy buster desktop stable yes xfce config_base browsers,chat +tinkerboard current buster cli stable yes +tinkerboard current buster desktop stable yes xfce config_base browsers,chat +tinkerboard current focal cli stable yes +tinkerboard current focal desktop stable yes xfce config_base browsers,chat +tinkerboard dev hirsute cli stable no -tinkerboard legacy buster desktop stable yes -tinkerboard legacy bionic desktop stable yes -tinkerboard legacy buster cli stable yes -tinkerboard current bionic desktop stable yes -tinkerboard current buster minimal stable yes -tinkerboard current bullseye cli stable yes -tinkerboard current focal cli stable yes -tinkerboard current focal desktop stable yes -tinkerboard current focal cli beta yes - -# MiQi - -miqi current buster cli stable yes -miqi current buster desktop stable yes -miqi current focal minimal stable yes -miqi current bionic desktop stable yes - -# tritium-h3 - -tritium-h3 current buster desktop stable yes -tritium-h3 current buster cli stable yes -tritium-h3 current bionic desktop stable yes -tritium-h3 current bionic cli stable yes -tritium-h3 current focal desktop stable yes -tritium-h3 current focal cli stable yes -tritium-h3 current focal cli beta yes - -# tritium-h5 - -tritium-h5 current buster desktop stable yes -tritium-h5 current buster cli stable yes -tritium-h5 current bionic desktop stable yes -tritium-h5 current bionic cli stable yes -tritium-h5 current focal desktop stable yes -tritium-h5 current focal cli stable yes -tritium-h5 current focal cli beta yes - -# xt-q8l-v10 - -xt-q8l-v10 current buster desktop stable yes -xt-q8l-v10 current bionic desktop stable yes -xt-q8l-v10 current buster minimal stable yes -xt-q8l-v10 current focal cli stable yes - -# Z28 pro - -z28pro legacy buster desktop stable yes -z28pro legacy buster cli stable yes -z28pro legacy focal cli stable yes -z28pro current focal desktop stable yes # Station M1 +station-m1 legacy buster desktop stable yes xfce config_base browsers,chat +station-m1 current focal cli stable yes +station-m1 current focal desktop stable yes xfce config_base browsers,chat -station-m1 legacy buster desktop stable yes -station-m1 current bullseye cli stable yes -station-m1 current focal cli stable yes -station-m1 current bullseye desktop stable yes -station-m1 current focal desktop stable yes # Station P1 +station-p1 legacy buster desktop stable yes xfce config_base browsers,chat +station-p1 current focal cli stable yes +station-p1 current focal desktop stable yes xfce config_base browsers,chat -station-p1 legacy buster desktop stable yes -station-p1 current bullseye cli stable yes -station-p1 current focal cli stable yes -station-p1 current bullseye desktop stable yes -station-p1 current focal desktop stable yes + +# tritium-h3 +tritium-h3 current buster desktop stable yes xfce config_base browsers,chat +tritium-h3 current buster cli stable yes +tritium-h3 current focal desktop stable yes xfce config_base browsers,chat +tritium-h3 current focal cli stable yes + + +# tritium-h5 +tritium-h5 current buster desktop stable yes xfce config_base browsers,chat +tritium-h5 current buster cli stable yes +tritium-h5 current focal desktop stable yes xfce config_base browsers,chat +tritium-h5 current focal cli stable yes + + +# Udoo +udoo current buster cli stable yes +udoo current buster desktop stable yes xfce config_base browsers,chat +udoo current focal cli stable yes +udoo current focal desktop stable yes xfce config_base browsers,chat + + +# xt-q8l-v10 +xt-q8l-v10 current buster desktop stable yes xfce config_base browsers,chat +xt-q8l-v10 current bionic desktop stable yes xfce config_base browsers,chat +xt-q8l-v10 current buster minimal stable yes +xt-q8l-v10 current focal cli stable yes + + +# Z28 pro +z28pro legacy buster desktop stable yes xfce config_base browsers,chat +z28pro legacy buster cli stable yes +z28pro legacy focal cli stable yes +z28pro current focal desktop stable yes xfce config_base browsers,chat + + +# zeropi +zeropi current buster cli stable yes +zeropi current focal cli stable yes diff --git a/config/templates/customize-image.sh.template b/config/templates/customize-image.sh.template index 2a99456b6..eebf10637 100644 --- a/config/templates/customize-image.sh.template +++ b/config/templates/customize-image.sh.template @@ -235,7 +235,7 @@ UnattendedStorageBenchmark() { InstallAdvancedDesktop() { - apt install -yy transmission libreoffice libreoffice-style-tango meld remmina thunderbird kazam avahi-daemon + apt-get install -yy transmission libreoffice libreoffice-style-tango meld remmina thunderbird kazam avahi-daemon [[ -f /usr/share/doc/avahi-daemon/examples/sftp-ssh.service ]] && cp /usr/share/doc/avahi-daemon/examples/sftp-ssh.service /etc/avahi/services/ [[ -f /usr/share/doc/avahi-daemon/examples/ssh.service ]] && cp /usr/share/doc/avahi-daemon/examples/ssh.service /etc/avahi/services/ apt clean diff --git a/lib/build-all-ng.sh b/lib/build-all-ng.sh index 006b388b4..a1f3df781 100644 --- a/lib/build-all-ng.sh +++ b/lib/build-all-ng.sh @@ -60,7 +60,10 @@ unset LINUXFAMILY LINUXCONFIG KERNELDIR KERNELSOURCE KERNELBRANCH BOOTDIR BOOTSO PACKAGE_LIST_BOARD PACKAGE_LIST_FAMILY PACKAGE_LIST_DESKTOP_BOARD PACKAGE_LIST_DESKTOP_FAMILY ATF_COMPILE ATFPATCHDIR OFFSET BOOTSOURCEDIR BOOT_USE_BLOBS \ BOOT_SOC DDR_BLOB MINILOADER_BLOB BL31_BLOB BOOT_RK3328_USE_AYUFAN_ATF BOOT_USE_BLOBS BOOT_RK3399_LEGACY_HYBRID \ BOOT_USE_MAINLINE_ATF BOOT_USE_TPL_SPL_BLOB BOOT_SUPPORT_SPI OFFLINE_WORK IMAGE_PARTITION_TABLE BOOT_LOGO UPSTREM_VER FORCED_MONTH_OFFSET \ - PACKAGE_LIST_BOARD_REMOVE PACKAGE_LIST_FAMILY_REMOVE PACKAGE_LIST_DESKTOP_BOARD_REMOVE PACKAGE_LIST_DESKTOP_FAMILY_REMOVE BOOTCONFIG_DEV USE_OVERLAYFS + PACKAGE_LIST_BOARD_REMOVE PACKAGE_LIST_FAMILY_REMOVE PACKAGE_LIST_DESKTOP_BOARD_REMOVE PACKAGE_LIST_DESKTOP_FAMILY_REMOVE BOOTCONFIG_DEV \ + DESKTOP_ENVIRONMENT DESKTOP_ENVIRONMENT_CONFIG_NAME DESKTOP_APPGROUPS_SELECTED DESKTOP_APT_FLAGS_SELECTED \ + DESKTOP_ENVIRONMENT_DIRPATH DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH DESKTOP_ENVIRONMENT_DIRPATH DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH \ + DESKTOP_CONFIG_PREFIX DESKTOP_CONFIGS_DIR DESKTOP_APPGROUPS_DIR DEBIAN_RECOMMENDS USE_OVERLAYFS aggregated_content DEBOOTSTRAP_COMPONENTS } pack_upload () @@ -69,7 +72,7 @@ pack_upload () # pack and upload to server or just pack display_alert "Signing" "Please wait!" "info" - local version="Armbian_${REVISION}_${BOARD^}_${RELEASE}_${BRANCH}_${VER/-$LINUXFAMILY/}" + local version="Armbian_${REVISION}_${BOARD^}_${RELEASE}_${BRANCH}_${VER/-$LINUXFAMILY/}${DESKTOP_ENVIRONMENT:+_$DESKTOP_ENVIRONMENT}" local subdir="archive" compression_type="" @@ -145,7 +148,7 @@ build_main () [[ $BUILD_MINIMAL == yes ]] && upload_image=${upload_image}_minimal [[ $BETA == yes ]] && local upload_subdir=nightly - touch "/run/armbian/Armbian_${BOARD^}_${BRANCH}_${RELEASE}_${BUILD_DESKTOP}_${BUILD_MINIMAL}.pid"; + touch "/run/armbian/Armbian_${BOARD^}_${BRANCH}_${RELEASE}_${DESKTOP_ENVIRONMENT}_${BUILD_DESKTOP}_${BUILD_MINIMAL}.pid"; if [[ $KERNEL_ONLY != yes ]]; then #if ssh ${SEND_TO_SERVER} stat ${SEND_TO_LOCATION}${BOARD}/${upload_subdir}/${upload_image}* \> /dev/null 2\>\&1; then @@ -161,8 +164,9 @@ build_main () source "${SRC}"/lib/main.sh fi + cd "${SRC}" - rm "/run/armbian/Armbian_${BOARD^}_${BRANCH}_${RELEASE}_${BUILD_DESKTOP}_${BUILD_MINIMAL}.pid" + rm "/run/armbian/Armbian_${BOARD^}_${BRANCH}_${RELEASE}_${DESKTOP_ENVIRONMENT}_${BUILD_DESKTOP}_${BUILD_MINIMAL}.pid" } @@ -209,7 +213,7 @@ function check_hash() [[ -z ${KERNELPATCHDIR} ]] && KERNELPATCHDIR=$LINUXFAMILY-$BRANCH [[ -z ${LINUXCONFIG} ]] && LINUXCONFIG=linux-$LINUXFAMILY-$BRANCH hash_watch_1=$(find "${SRC}/patch/kernel/${KERNELPATCHDIR}" -maxdepth 1 -printf '%s %P\n' 2> /dev/null | sort) - hash_watch_2=$(cat "${SRC}/config/kernel/${LINUXCONFIG}.config") + hash_watch_2=$(cat "${SRC}/config/kernel/${LINUXCONFIG}.config" 2> /dev/null) patch_hash=$(echo "${hash_watch_1}${hash_watch_2}" | improved_git hash-object --stdin) case $ref_type in @@ -267,10 +271,10 @@ function build_all() # unset also board related variables unset BOARDFAMILY DESKTOP_AUTOLOGIN DEFAULT_CONSOLE FULL_DESKTOP MODULES MODULES_CURRENT MODULES_LEGACY MODULES_DEV \ BOOTCONFIG MODULES_BLACKLIST MODULES_BLACKLIST_LEGACY MODULES_BLACKLIST_CURRENT MODULES_BLACKLIST_DEV DEFAULT_OVERLAYS SERIALCON \ - BUILD_MINIMAL RELEASE ATFBRANCH BOOT_FDT_FILE BOOTCONFIG_DEV - - read -r BOARD BRANCH RELEASE BUILD_TARGET BUILD_STABILITY BUILD_IMAGE <<< "${line}" + BUILD_MINIMAL RELEASE ATFBRANCH BOOT_FDT_FILE BOOTCONFIG_DEV BOOTSOURCEDIR + read -r BOARD BRANCH RELEASE BUILD_TARGET BUILD_STABILITY BUILD_IMAGE DESKTOP_ENVIRONMENT DESKTOP_ENVIRONMENT_CONFIG_NAME DESKTOP_APPGROUPS_SELECTED<<< "${line}" + DESKTOP_APPGROUPS_SELECTED="${DESKTOP_APPGROUPS_SELECTED//,/ }" # read all possible configurations # shellcheck source=/dev/null source "${SRC}/config/boards/${BOARD}".eos 2> /dev/null @@ -315,6 +319,7 @@ function build_all() [[ ${BUILD_TARGET} == "desktop" ]] && BUILD_DESKTOP="yes" [[ ${BUILD_TARGET} == "minimal" ]] && BUILD_MINIMAL="yes" + [[ ${BSP_BUILD} == yes ]] && BUILD_STABILITY=$STABILITY # create beta or stable if [[ "${BUILD_STABILITY}" == "${STABILITY}" ]]; then @@ -364,7 +369,7 @@ function build_all() IFS=',' read -r -a RELBRANCH <<< "${KERNEL_TARGET}" for BRANCH in "${RELBRANCH[@]}" do - RELTARGETS=(xenial stretch buster bullseye bionic groovy focal) + RELTARGETS=(xenial stretch buster bullseye bionic groovy focal hirsute sid) for RELEASE in "${RELTARGETS[@]}" do display_alert "BSP for ${BOARD} ${BRANCH} ${RELEASE}." @@ -387,8 +392,8 @@ function build_all() else ((n+=1)) # In dryrun it only prints out what will be build - printf "%s\t%-32s\t%-8s\t%-14s\t%-6s\t%-6s\t%-6s\n" "${n}." \ - "$BOARD (${BOARDFAMILY})" "${BRANCH}" "${RELEASE}" "${BUILD_DESKTOP}" "${BUILD_MINIMAL}" + printf "%s\t%-32s\t%-8s\t%-14s\t%-6s\t%-6s\t%-6s\t%-6s\n" "${n}." \ + "$BOARD (${BOARDFAMILY})" "${BRANCH}" "${RELEASE}" "${DESKTOP_ENVIRONMENT}" "${BUILD_DESKTOP}" "${BUILD_MINIMAL}" "${DESKTOP_APPGROUPS_SELECTED}" fi fi @@ -426,7 +431,7 @@ echo "" display_alert "Building all targets" "$STABILITY $(if [[ $KERNEL_ONLY == "yes" ]] ; then echo "kernels"; \ else echo "images"; fi)" "info" -printf "\n%s\t%-32s\t%-8s\t%-14s\t%-6s\t%-6s\t%-6s\n\n" "" "board" "branch" "release" "XFCE" "minimal" +printf "\n%s\t%-32s\t%-8s\t%-14s\t%-6s\t%-6s\t%-6s\t%-6s\n\n" "" "board" "branch" "release" "DE" "desktop" "minimal" "DE app groups" # display what we will build build_all "dryrun" diff --git a/lib/chroot-buildpackages.sh b/lib/chroot-buildpackages.sh index 522080bdf..4318c2c7f 100644 --- a/lib/chroot-buildpackages.sh +++ b/lib/chroot-buildpackages.sh @@ -33,17 +33,20 @@ create_chroot() apt_mirror['bionic']="$UBUNTU_MIRROR" apt_mirror['focal']="$UBUNTU_MIRROR" apt_mirror['groovy']="$UBUNTU_MIRROR" + apt_mirror['hirsute']="$UBUNTU_MIRROR" components['stretch']='main,contrib' components['buster']='main,contrib' components['bullseye']='main,contrib' + components['sid']='main,contrib' components['xenial']='main,universe,multiverse' components['bionic']='main,universe,multiverse' components['focal']='main,universe,multiverse' components['groovy']='main,universe,multiverse' + components['hirsute']='main,universe,multiverse' display_alert "Creating build chroot" "$release/$arch" "info" local includes="ccache,locales,git,ca-certificates,devscripts,libfile-fcntllock-perl,debhelper,rsync,python3,distcc" # perhaps a temporally workaround - [[ $release == buster || $release == bullseye || $release == focal || $release == groovy ]] && includes=${includes}",perl-openssl-defaults,libnet-ssleay-perl" + [[ $release == buster || $release == bullseye || $release == focal || $release == groovy || $release == hirsute || $release == sid ]] && includes=${includes}",perl-openssl-defaults,libnet-ssleay-perl" if [[ $NO_APT_CACHER != yes ]]; then local mirror_addr="http://localhost:3142/${apt_mirror[${release}]}" else @@ -78,7 +81,7 @@ create_chroot() mkdir -p "${target_dir}"/var/lock fi chroot "${target_dir}" /bin/bash -c "/usr/sbin/update-ccache-symlinks" - [[ $release == focal ]] && chroot "${target_dir}" /bin/bash -c "ln -s /usr/bin/python3 /usr/bin/python" + [[ $release == focal || $release == groovy || $release == hirsute || $release == sid ]] && chroot "${target_dir}" /bin/bash -c "ln -s /usr/bin/python3 /usr/bin/python" touch "${target_dir}"/root/.debootstrap-complete display_alert "Debootstrap complete" "${release}/${arch}" "info" } ############################################################################# @@ -99,6 +102,8 @@ chroot_prepare_distccd() gcc_version['bionic']='5.4' gcc_version['focal']='9.2' gcc_version['groovy']='10.2' + gcc_version['hirsute']='10.2' + gcc_version['sid']='10.2' gcc_type['armhf']='arm-linux-gnueabihf-' gcc_type['arm64']='aarch64-linux-gnu-' rm -f "${dest}"/cmdlist @@ -132,7 +137,7 @@ chroot_build_packages() target_arch="${ARCH}" else # only make packages for recent releases. There are no changes on older - target_release="stretch bionic buster bullseye groovy focal" + target_release="stretch bionic buster bullseye groovy focal hirsute sid" target_arch="armhf arm64" fi diff --git a/lib/compilation.sh b/lib/compilation.sh index 8c5e6ec5d..0f44061fa 100644 --- a/lib/compilation.sh +++ b/lib/compilation.sh @@ -41,6 +41,9 @@ compile_atf() display_alert "Compiling ATF" "" "info" +# build aarch64 + if [[ $(dpkg --print-architecture) == amd64 ]]; then + local toolchain toolchain=$(find_toolchain "$ATF_COMPILER" "$ATF_USE_GCC") [[ -z $toolchain ]] && exit_with_error "Could not find required toolchain" "${ATF_COMPILER}gcc $ATF_USE_GCC" @@ -53,6 +56,9 @@ compile_atf() [[ -z $toolchain2 ]] && exit_with_error "Could not find required toolchain" "${toolchain2_type}gcc $toolchain2_ver" fi +# build aarch64 + fi + display_alert "Compiler version" "${ATF_COMPILER}gcc $(eval env PATH="${toolchain}:${PATH}" "${ATF_COMPILER}gcc" -dumpversion)" "info" local target_make target_patchdir target_files @@ -128,6 +134,9 @@ compile_uboot() display_alert "Compiling u-boot" "$version" "info" +# build aarch64 + if [[ $(dpkg --print-architecture) == amd64 ]]; then + local toolchain toolchain=$(find_toolchain "$UBOOT_COMPILER" "$UBOOT_USE_GCC") [[ -z $toolchain ]] && exit_with_error "Could not find required toolchain" "${UBOOT_COMPILER}gcc $UBOOT_USE_GCC" @@ -140,6 +149,8 @@ compile_uboot() [[ -z $toolchain2 ]] && exit_with_error "Could not find required toolchain" "${toolchain2_type}gcc $toolchain2_ver" fi +# build aarch64 + fi display_alert "Compiler version" "${UBOOT_COMPILER}gcc $(eval env PATH="${toolchain}:${toolchain2}:${PATH}" "${UBOOT_COMPILER}gcc" -dumpversion)" "info" [[ -n $toolchain2 ]] && display_alert "Additional compiler version" "${toolchain2_type}gcc $(eval env PATH="${toolchain}:${toolchain2}:${PATH}" "${toolchain2_type}gcc" -dumpversion)" "info" @@ -338,10 +349,16 @@ compile_kernel() fi display_alert "Compiling $BRANCH kernel" "$version" "info" +# build aarch64 + if [[ $(dpkg --print-architecture) == amd64 ]]; then + local toolchain toolchain=$(find_toolchain "$KERNEL_COMPILER" "$KERNEL_USE_GCC") [[ -z $toolchain ]] && exit_with_error "Could not find required toolchain" "${KERNEL_COMPILER}gcc $KERNEL_USE_GCC" +# build aarch64 + fi + display_alert "Compiler version" "${KERNEL_COMPILER}gcc $(eval env PATH="${toolchain}:${PATH}" "${KERNEL_COMPILER}gcc" -dumpversion)" "info" # copy kernel config diff --git a/lib/configuration.sh b/lib/configuration.sh index 47dbb41f0..b13947d38 100644 --- a/lib/configuration.sh +++ b/lib/configuration.sh @@ -21,11 +21,11 @@ USEALLCORES=yes # Use all CPU cores for compiling [[ -z $EXIT_PATCHING_ERROR ]] && EXIT_PATCHING_ERROR="" # exit patching if failed [[ -z $HOST ]] && HOST="$BOARD" # set hostname to the board cd "${SRC}" || exit -ROOTFSCACHE_VERSION=2 +ROOTFSCACHE_VERSION=3 CHROOT_CACHE_VERSION=7 BUILD_REPOSITORY_URL=$(improved_git remote get-url $(improved_git remote 2>/dev/null | grep origin) 2>/dev/null) BUILD_REPOSITORY_COMMIT=$(improved_git describe --match=d_e_a_d_b_e_e_f --always --dirty 2>/dev/null) -ROOTFS_CACHE_MAX=42 # max number of rootfs cache, older ones will be cleaned up +ROOTFS_CACHE_MAX=200 # max number of rootfs cache, older ones will be cleaned up if [[ $BETA == yes ]]; then DEB_STORAGE=$DEST/debs-beta @@ -95,12 +95,6 @@ ATF_COMPILE=yes # single ext4 partition is the default and preferred configuration #BOOTFS_TYPE='' - -# set unique mounting directory -SDCARD="${SRC}/.tmp/rootfs-${BRANCH}-${BOARD}-${RELEASE}-${BUILD_DESKTOP}-${BUILD_MINIMAL}" -MOUNT="${SRC}/.tmp/mount-${BRANCH}-${BOARD}-${RELEASE}-${BUILD_DESKTOP}-${BUILD_MINIMAL}" -DESTIMG="${SRC}/.tmp/image-${BRANCH}-${BOARD}-${RELEASE}-${BUILD_DESKTOP}-${BUILD_MINIMAL}" - [[ ! -f ${SRC}/config/sources/families/$LINUXFAMILY.conf ]] && \ exit_with_error "Sources configuration not found" "$LINUXFAMILY" @@ -114,6 +108,213 @@ fi # load architecture defaults source "${SRC}/config/sources/${ARCH}.conf" +# Myy : Menu configuration for choosing desktop configurations + +show_menu() { + provided_title=$1 + provided_backtitle=$2 + provided_menuname=$3 + # Myy : I don't know why there's a TTY_Y - 8... + #echo "Provided title : $provided_title" + #echo "Provided backtitle : $provided_backtitle" + #echo "Provided menuname : $provided_menuname" + #echo "Provided options : " "${@:4}" + #echo "TTY X: $TTY_X Y: $TTY_Y" + dialog --stdout --title "$provided_title" --backtitle "${provided_backtitle}" \ + --menu "$provided_menuname" $TTY_Y $TTY_X $((TTY_Y - 8)) "${@:4}" +} + +# Myy : FIXME Factorize +show_select_menu() { + provided_title=$1 + provided_backtitle=$2 + provided_menuname=$3 + dialog --stdout --title "${provided_title}" --backtitle "${provided_backtitle}" \ + --checklist "${provided_menuname}" $TTY_Y $TTY_X $((TTY_Y - 8)) "${@:4}" +} + +# Myy : Once we got a list of selected groups, parse the PACKAGE_LIST inside configuration.sh + +DESKTOP_ELEMENTS_DIR="${SRC}/config/desktop/${RELEASE}" +DESKTOP_CONFIGS_DIR="${DESKTOP_ELEMENTS_DIR}/environments" +DESKTOP_CONFIG_PREFIX="config_" +DESKTOP_APPGROUPS_DIR="${DESKTOP_ELEMENTS_DIR}/appgroups" + +desktop_element_available_for_arch() { + local desktop_element_path="${1}" + local targeted_arch="${2}" + + local arch_limitation_file="${1}/only_for" + + echo "Checking if ${desktop_element_path} is available for ${targeted_arch} in ${arch_limitation_file}" >> "${DEST}"/debug/output.log + if [[ -f "${arch_limitation_file}" ]]; then + grep -- "${targeted_arch}" "${arch_limitation_file}" + return $? + else + return 0 + fi +} + +desktop_element_supported() { + + local desktop_element_path="${1}" + + local support_level_filepath="${desktop_element_path}/support" + if [[ -f "${support_level_filepath}" ]]; then + local support_level="$(cat "${support_level_filepath}")" + if [[ "${support_level}" != "supported" && "${EXPERT}" != "yes" ]]; then + return 65 + fi + + desktop_element_available_for_arch "${desktop_element_path}" "${ARCH}" + if [[ $? -ne 0 ]]; then + return 66 + fi + else + return 64 + fi + + return 0 + +} + +if [[ $BUILD_DESKTOP == "yes" && -z $DESKTOP_ENVIRONMENT ]]; then + + desktop_environments_prepare_menu() { + for desktop_env_dir in "${DESKTOP_CONFIGS_DIR}/"*; do + local desktop_env_name=$(basename ${desktop_env_dir}) + local expert_infos="" + [[ "${EXPERT}" == "yes" ]] && expert_infos="[$(cat "${desktop_env_dir}/support" 2> /dev/null)]" + desktop_element_supported "${desktop_env_dir}" "${ARCH}" && options+=("${desktop_env_name}" "${desktop_env_name^} desktop environment ${expert_infos}") + done + } + + options=() + desktop_environments_prepare_menu + + if [[ "${options[0]}" == "" ]]; then + exit_with_error "No desktop environment seems to be available for your board ${BOARD} (ARCH : ${ARCH} - EXPERT : ${EXPERT})" + fi + + DESKTOP_ENVIRONMENT=$(show_menu "Choose a desktop environment" "$backtitle" "Select the default desktop environment to bundle with this image" "${options[@]}") + + unset options + + if [[ -z "${DESKTOP_ENVIRONMENT}" ]]; then + exit_with_error "No desktop environment selected..." + fi + +fi + +if [[ $BUILD_DESKTOP == "yes" ]]; then + # Expected environment variables : + # - options + # - ARCH + + desktop_environment_check_if_valid() { + + local error_msg="" + desktop_element_supported "${DESKTOP_ENVIRONMENT_DIRPATH}" "${ARCH}" + local retval=$? + + if [[ ${retval} == 0 ]]; then + return + elif [[ ${retval} == 64 ]]; then + error_msg+="Either the desktop environment ${DESKTOP_ENVIRONMENT} does not exist " + error_msg+="or the file ${DESKTOP_ENVIRONMENT_DIRPATH}/support is missing" + elif [[ ${retval} == 65 ]]; then + error_msg+="Only experts can build an image with the desktop environment \"${DESKTOP_ENVIRONMENT}\", since the Armbian team won't offer any support for it (EXPERT=${EXPERT})" + elif [[ ${retval} == 66 ]]; then + error_msg+="The desktop environment \"${DESKTOP_ENVIRONMENT}\" has no packages for your targeted board architecture (BOARD=${BOARD} ARCH=${ARCH}). " + error_msg+="The supported boards architectures are : " + error_msg+="$(cat "${DESKTOP_ENVIRONMENT_DIRPATH}/only_for")" + fi + + exit_with_error "${error_msg}" + } + + DESKTOP_ENVIRONMENT_DIRPATH="${DESKTOP_CONFIGS_DIR}/${DESKTOP_ENVIRONMENT}" + + desktop_environment_check_if_valid +fi + +if [[ $BUILD_DESKTOP == "yes" && -z $DESKTOP_ENVIRONMENT_CONFIG_NAME ]]; then + # FIXME Check for empty folders, just in case the current maintainer + # messed up + # Note, we could also ignore it and don't show anything in the previous + # menu, but that hides information and make debugging harder, which I + # don't like. Adding desktop environments as a maintainer is not a + # trivial nor common task. + + options=() + for configuration in "${DESKTOP_ENVIRONMENT_DIRPATH}/${DESKTOP_CONFIG_PREFIX}"*; do + config_filename=$(basename ${configuration}) + config_name=${config_filename#"${DESKTOP_CONFIG_PREFIX}"} + options+=("${config_filename}" "${config_name} configuration") + done + + DESKTOP_ENVIRONMENT_CONFIG_NAME=$(show_menu "Choose the desktop environment config" "$backtitle" "Select the configuration for this environment.\nThese are sourced from ${desktop_environment_config_dir}" "${options[@]}") + unset options + + if [[ -z $DESKTOP_ENVIRONMENT_CONFIG_NAME ]]; then + exit_with_error "No desktop configuration selected... Do you really want a desktop environment ?" + fi +fi + +if [[ $BUILD_DESKTOP == "yes" ]]; then + DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH="${DESKTOP_ENVIRONMENT_DIRPATH}/${DESKTOP_ENVIRONMENT_CONFIG_NAME}" + DESKTOP_ENVIRONMENT_PACKAGE_LIST_FILEPATH="${DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH}/packages" +fi + +# "-z ${VAR+x}" allows to check for unset variable +# Technically, someone might want to build a desktop with no additional +# appgroups. +if [[ $BUILD_DESKTOP == "yes" && -z ${DESKTOP_APPGROUPS_SELECTED+x} ]]; then + + options=() + for appgroup_path in "${DESKTOP_APPGROUPS_DIR}/"*; do + appgroup="$(basename "${appgroup_path}")" + options+=("${appgroup}" "${appgroup^}" off) + done + + DESKTOP_APPGROUPS_SELECTED=$(\ + show_select_menu \ + "Choose desktop softwares to add" \ + "$backtitle" \ + "Select which kind of softwares you'd like to add to your build" \ + "${options[@]}") + + unset options +fi + +#exit_with_error 'Testing' + +# Expected variables +# - aggregated_content +# - potential_paths +# - separator +# Write to variables : +# - aggregated_content +aggregate_content() { + echo -e "Potential paths : ${potential_paths}\n" >> "${DEST}"/debug/output.log + for filepath in ${potential_paths}; do + if [[ -f "${filepath}" ]]; then + echo -e "${filepath/"$SRC"\//} yes\n" >> "${DEST}"/debug/output.log + aggregated_content+=$(cat "${filepath}") + aggregated_content+="${separator}" + else + echo -e "${filepath/"$SRC"\//} no\n" >> "${DEST}"/debug/output.log + fi + + done +} + +# set unique mounting directory +MOUNT_UUID=$(uuidgen) +SDCARD="${SRC}/.tmp/rootfs-${MOUNT_UUID}" +MOUNT="${SRC}/.tmp/mount-${MOUNT_UUID}" +DESTIMG="${SRC}/.tmp/image-${MOUNT_UUID}" + # dropbear needs to be configured differently [[ $CRYPTROOT_ENABLE == yes && $RELEASE == xenial ]] && exit_with_error "Encrypted rootfs is not supported in Xenial" [[ $RELEASE == stretch && $CAN_BUILD_STRETCH != yes ]] && exit_with_error "Building Debian Stretch images with selected kernel is not supported" @@ -131,147 +332,160 @@ BOOTCONFIG_VAR_NAME=BOOTCONFIG_${BRANCH^^} [[ -z $ATFPATCHDIR ]] && ATFPATCHDIR="atf-$LINUXFAMILY" [[ -z $KERNELPATCHDIR ]] && KERNELPATCHDIR="$LINUXFAMILY-$BRANCH" -if [[ $RELEASE == xenial || $RELEASE == bionic || $RELEASE == focal || $RELEASE == groovy ]]; then +if [[ "$RELEASE" =~ ^(xenial|bionic|focal|groovy|hirsute)$ ]]; then DISTRIBUTION="Ubuntu" else DISTRIBUTION="Debian" fi -# Base system dependencies. Since adding MINIMAL_IMAGE we rely on "variant=minbase" which has very basic package set -DEBOOTSTRAP_LIST="locales gnupg ifupdown apt-utils apt-transport-https ca-certificates bzip2 console-setup cpio cron \ - dbus init initramfs-tools iputils-ping isc-dhcp-client kmod less libpam-systemd \ - linux-base logrotate netbase netcat-openbsd rsyslog systemd sudo ucf udev whiptail \ - wireless-regdb crda dmsetup rsync tzdata" +CLI_CONFIG_PATH="${SRC}/config/cli/${RELEASE}" +DEBOOTSTRAP_CONFIG_PATH="${CLI_CONFIG_PATH}/debootstrap" -[[ $BUILD_DESKTOP == yes ]] && DEBOOTSTRAP_LIST+=" libgtk2.0-bin" - -# tab cleanup is mandatory -DEBOOTSTRAP_LIST=$(echo $DEBOOTSTRAP_LIST | sed -e 's,\\[trn],,g') - -# For minimal build different set of packages is needed -# Essential packages for minimal build -PACKAGE_LIST="bc cpufrequtils device-tree-compiler fping fake-hwclock psmisc chrony parted dialog \ - ncurses-term sysfsutils toilet figlet u-boot-tools usbutils openssh-server \ - nocache debconf-utils python3-apt" - -[[ $ROOTFS_TYPE == xfs ]] && PACKAGE_LIST="$PACKAGE_LIST xfsprogs" - -# Non-essential packages for minimal build -PACKAGE_LIST_ADDITIONAL="network-manager wireless-tools lsof htop mmc-utils wget nano sysstat net-tools resolvconf iozone3 jq libcrack2 cracklib-runtime curl" - -if [[ "$BUILD_MINIMAL" != "yes" ]]; then - # Essential packages - PACKAGE_LIST="$PACKAGE_LIST bridge-utils build-essential fbset \ - iw wpasupplicant sudo linux-base crda \ - wireless-regdb unattended-upgrades \ - console-setup unicode-data initramfs-tools \ - ca-certificates expect iptables automake html2text \ - bison flex libwrap0-dev libssl-dev libnl-3-dev libnl-genl-3-dev keyboard-configuration" - - - # Non-essential packages - PACKAGE_LIST_ADDITIONAL="$PACKAGE_LIST_ADDITIONAL alsa-utils btrfs-progs dosfstools iotop stress screen \ - ntfs-3g vim pciutils evtest pv libfuse2 libdigest-sha-perl \ - libproc-processtable-perl aptitude dnsutils f3 haveged hdparm rfkill vlan bash-completion \ - hostapd git ethtool unzip ifenslave libpam-systemd iperf3 \ - software-properties-common libnss-myhostname f2fs-tools avahi-autoipd iputils-arping qrencode sunxi-tools" +if [[ $? != 0 ]]; then + exit_with_error "The desktop environment ${DESKTOP_ENVIRONMENT} is not available for your architecture ${ARCH}" fi +AGGREGATION_SEARCH_ROOT_ABSOLUTE_DIRS=" +${SRC}/config +${SRC}/config/optional/_any_board/_configs +${SRC}/config/optional/architectures/${ARCH}/_config +${SRC}/config/optional/families/${LINUXFAMILY}/_config +${SRC}/config/optional/boards/${BOARD}/_config +" + +DEBOOTSTRAP_SEARCH_RELATIVE_DIRS=" +cli/_all_distributions/debootstrap +cli/${RELEASE}/debootstrap +" + +CLI_SEARCH_RELATIVE_DIRS=" +cli/_all_distributions/main +cli/${RELEASE}/main +" + +DESKTOP_ENVIRONMENTS_SEARCH_RELATIVE_DIRS=" +desktop/_all_distributions/environments/_all_environments +desktop/_all_distributions/environments/${DESKTOP_ENVIRONMENT} +desktop/_all_distributions/environments/${DESKTOP_ENVIRONMENT}/${DESKTOP_ENVIRONMENT_CONFIG_NAME} +desktop/${RELEASE}/environments/_all_environments +desktop/${RELEASE}/environments/${DESKTOP_ENVIRONMENT} +desktop/${RELEASE}/environments/${DESKTOP_ENVIRONMENT}/${DESKTOP_ENVIRONMENT_CONFIG_NAME} +" + +DESKTOP_APPGROUPS_SEARCH_RELATIVE_DIRS=" +desktop/_all_distributions/appgroups +desktop/_all_distributions/environments/${DESKTOP_ENVIRONMENT}/appgroups +desktop/${RELEASE}/appgroups +desktop/${RELEASE}/environments/${DESKTOP_ENVIRONMENT}/appgroups +" + +get_all_potential_paths() { + local root_dirs="${AGGREGATION_SEARCH_ROOT_ABSOLUTE_DIRS}" + local rel_dirs="${1}" + local sub_dirs="${2}" + local looked_up_subpath="${3}" + for root_dir in ${root_dirs}; do + for rel_dir in ${rel_dirs}; do + for sub_dir in ${sub_dirs}; do + potential_paths+="${root_dir}/${rel_dir}/${sub_dir}/${looked_up_subpath} " + done + done + done + # for ppath in ${potential_paths}; do + # echo "Checking for ${ppath}" + # if [[ -f "${ppath}" ]]; then + # echo "OK !|" + # else + # echo "Nope|" + # fi + # done +} + +# Environment variables expected : +# - aggregated_content +# Arguments : +# 1. File to look up in each directory +# 2. The separator to add between each concatenated file +# 3. Relative directories paths added to ${3} +# 4. Relative directories paths added to ${4} +# +# The function will basically generate a list of potential paths by +# generating all the potential paths combinations leading to the +# looked up file +# ${AGGREGATION_SEARCH_ROOT_ABSOLUTE_DIRS}/${3}/${4}/${1} +# Then it will concatenate the content of all the available files +# into ${aggregated_content} +# +# TODO : +# ${4} could be removed by just adding the appropriate paths to ${3} +# dynamically for each case +# (debootstrap, cli, desktop environments, desktop appgroups, ...) + +aggregate_all_root_rel_sub() { + local separator="${2}" + + local potential_paths="" + get_all_potential_paths "${3}" "${4}" "${1}" + + aggregate_content +} + +aggregate_all_debootstrap() { + local sub_dirs_to_check=". " + if [[ ! -z "${SELECTED_CONFIGURATION+x}" ]]; then + sub_dirs_to_check+="config_${SELECTED_CONFIGURATION}" + fi + aggregate_all_root_rel_sub "${1}" "${2}" "${DEBOOTSTRAP_SEARCH_RELATIVE_DIRS}" "${sub_dirs_to_check}" +} + +aggregate_all_cli() { + local sub_dirs_to_check=". " + if [[ ! -z "${SELECTED_CONFIGURATION+x}" ]]; then + sub_dirs_to_check+="config_${SELECTED_CONFIGURATION}" + fi + aggregate_all_root_rel_sub "${1}" "${2}" "${CLI_SEARCH_RELATIVE_DIRS}" "${sub_dirs_to_check}" +} + +aggregate_all_desktop() { + aggregate_all_root_rel_sub "${1}" "${2}" "${DESKTOP_ENVIRONMENTS_SEARCH_RELATIVE_DIRS}" "." + aggregate_all_root_rel_sub "${1}" "${2}" "${DESKTOP_APPGROUPS_SEARCH_RELATIVE_DIRS}" "${DESKTOP_APPGROUPS_SELECTED}" +} + +one_line() { + local aggregate_func_name="${1}" + local aggregated_content="" + shift 1 + $aggregate_func_name "${@}" + cleanup_list aggregated_content +} + +DEBOOTSTRAP_LIST="$(one_line aggregate_all_debootstrap "packages" " ")" +DEBOOTSTRAP_COMPONENTS="$(one_line aggregate_all_debootstrap "components" " ")" +DEBOOTSTRAP_COMPONENTS="${DEBOOTSTRAP_COMPONENTS// /,}" +PACKAGE_LIST="$(one_line aggregate_all_cli "packages" " ")" +PACKAGE_LIST_ADDITIONAL="$(one_line aggregate_all_cli "packages.additional" " ")" + +echo "DEBOOTSTRAP LIST : ${DEBOOTSTRAP_LIST}" >> "${DEST}"/debug/output.log +echo "DEBOOTSTRAP_COMPONENTS : ${DEBOOTSTRAP_COMPONENTS}" >> "${DEST}"/debug/output.log +echo "CLI PACKAGE_LIST : ${PACKAGE_LIST}" >> "${DEST}"/debug/output.log +echo "CLI PACKAGE_LIST_ADDITIONAL : ${PACKAGE_LIST_ADDITIONAL}" >> "${DEST}"/debug/output.log # Dependent desktop packages -PACKAGE_LIST_DESKTOP="xserver-xorg xserver-xorg-video-fbdev gvfs-backends gvfs-fuse xfonts-base xinit \ - x11-xserver-utils xfce4 lxtask xfce4-terminal thunar-volman gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf \ - libgtk2.0-bin network-manager-gnome xfce4-notifyd gnome-keyring gcr libgck-1-0 p11-kit pasystray pavucontrol \ - pulseaudio pavumeter bluez bluez-tools pulseaudio-module-bluetooth blueman libpam-gnome-keyring \ - libgl1-mesa-dri policykit-1 profile-sync-daemon gnome-orca numix-gtk-theme synaptic apt-xapian-index lightdm lightdm-gtk-greeter" +# Myy : Sources packages from file here +# Myy : FIXME Rename aggregate_all to aggregate_all_desktop +if [[ $BUILD_DESKTOP == "yes" ]]; then + PACKAGE_LIST_DESKTOP+="$(one_line aggregate_all_desktop "packages" " ")" + echo "Groups selected ${DESKTOP_APPGROUPS_SELECTED} -> PACKAGES : ${PACKAGE_LIST_DESKTOP}" >> "${DEST}"/debug/output.log +fi -# Recommended desktop packages -PACKAGE_LIST_DESKTOP_RECOMMENDS="galculator hexchat xfce4-screenshooter network-manager-openvpn-gnome mpv fbi \ - cups-pk-helper cups geany atril xarchiver" - -# Full desktop packages -PACKAGE_LIST_DESKTOP_FULL="libreoffice libreoffice-style-breeze meld remmina kazam avahi-daemon transmission" - -# Packages installed before desktop. -PACKAGE_LIST_PREDEPENDS="" - -# Release specific packages -case $RELEASE in - - xenial) - DEBOOTSTRAP_COMPONENTS="main" - DEBOOTSTRAP_LIST+=" btrfs-tools" - [[ -z $BUILD_MINIMAL || $BUILD_MINIMAL == no ]] && PACKAGE_LIST_RELEASE="man-db sysbench command-not-found selinux-policy-default" - PACKAGE_LIST_DESKTOP+=" paman libgcr-3-common gcj-jre-headless paprefs numix-icon-theme libgnome2-perl \ - pulseaudio-module-gconf onboard" - PACKAGE_LIST_DESKTOP_RECOMMENDS+=" chromium-browser language-selector-gnome system-config-printer-common \ - system-config-printer-gnome leafpad mirage" - PACKAGE_LIST_DESKTOP_FULL+=" thunderbird" - ;; - - stretch) - DEBOOTSTRAP_COMPONENTS="main" - DEBOOTSTRAP_LIST+=" rng-tools" - [[ -z $BUILD_MINIMAL || $BUILD_MINIMAL == no ]] && PACKAGE_LIST_RELEASE="man-db kbd net-tools gnupg2 dirmngr sysbench command-not-found selinux-policy-default" - PACKAGE_LIST_DESKTOP+=" paman libgcr-3-common gcj-jre-headless paprefs dbus-x11 libgnome2-perl pulseaudio-module-gconf onboard" - PACKAGE_LIST_DESKTOP_RECOMMENDS+=" chromium system-config-printer-common system-config-printer leafpad mirage" - PACKAGE_LIST_DESKTOP_FULL+=" thunderbird" - ;; - - bionic) - DEBOOTSTRAP_COMPONENTS="main,universe" - DEBOOTSTRAP_LIST+=" rng-tools fdisk" - [[ -z $BUILD_MINIMAL || $BUILD_MINIMAL == no ]] && PACKAGE_LIST_RELEASE="man-db kbd net-tools gnupg2 dirmngr networkd-dispatcher command-not-found selinux-policy-default" - PACKAGE_LIST_DESKTOP+=" xserver-xorg-input-all paprefs dbus-x11 libgnome2-perl pulseaudio-module-gconf onboard" - PACKAGE_LIST_DESKTOP_RECOMMENDS+=" chromium-browser system-config-printer-common system-config-printer \ - language-selector-gnome leafpad mirage" - PACKAGE_LIST_DESKTOP_FULL+=" thunderbird" - ;; - - buster) - DEBOOTSTRAP_COMPONENTS="main" - DEBOOTSTRAP_LIST+=" rng-tools fdisk" - [[ -z $BUILD_MINIMAL || $BUILD_MINIMAL == no ]] && PACKAGE_LIST_RELEASE="man-db kbd net-tools gnupg2 dirmngr networkd-dispatcher command-not-found selinux-policy-default" - PACKAGE_LIST_DESKTOP+=" paprefs dbus-x11 numix-icon-theme onboard" - PACKAGE_LIST_DESKTOP_RECOMMENDS+=" chromium system-config-printer-common system-config-printer mirage" - PACKAGE_LIST_DESKTOP_FULL+=" thunderbird" - ;; - - bullseye) - DEBOOTSTRAP_COMPONENTS="main" - DEBOOTSTRAP_LIST+=" haveged fdisk" - [[ -z $BUILD_MINIMAL || $BUILD_MINIMAL == no ]] && PACKAGE_LIST_RELEASE="man-db kbd net-tools gnupg2 dirmngr networkd-dispatcher command-not-found" - PACKAGE_LIST_DESKTOP+=" paprefs dbus-x11 numix-icon-theme" - PACKAGE_LIST_DESKTOP_RECOMMENDS+=" firefox-esr system-config-printer-common system-config-printer" - PACKAGE_LIST_DESKTOP_FULL+="" - ;; - - - focal) - DEBOOTSTRAP_COMPONENTS="main,universe" - DEBOOTSTRAP_LIST+=" rng-tools fdisk" - [[ -z $BUILD_MINIMAL || $BUILD_MINIMAL == no ]] && PACKAGE_LIST_RELEASE="man-db kbd net-tools gnupg2 dirmngr networkd-dispatcher selinux-policy-default" - PACKAGE_LIST_DESKTOP+=" xserver-xorg-input-all paprefs dbus-x11 pulseaudio-module-gsettings onboard" - PACKAGE_LIST_DESKTOP_RECOMMENDS+=" firefox system-config-printer-common system-config-printer \ - language-selector-gnome viewnior" - PACKAGE_LIST_DESKTOP_FULL+=" thunderbird" - PACKAGE_LIST_PREDEPENDS="policykit-1-gnome notification-daemon" - ;; - - groovy) - DEBOOTSTRAP_COMPONENTS="main,universe" - DEBOOTSTRAP_LIST+=" rng-tools fdisk" - [[ -z $BUILD_MINIMAL || $BUILD_MINIMAL == no ]] && PACKAGE_LIST_RELEASE="man-db kbd net-tools gnupg2 dirmngr networkd-dispatcher selinux-policy-default" - PACKAGE_LIST_DESKTOP+=" xserver-xorg-input-all paprefs dbus-x11 pulseaudio-module-gsettings onboard" - PACKAGE_LIST_DESKTOP_RECOMMENDS+=" firefox system-config-printer-common system-config-printer \ - language-selector-gnome mirage" - PACKAGE_LIST_DESKTOP_FULL+=" thunderbird" - PACKAGE_LIST_PREDEPENDS="policykit-1-gnome notification-daemon" - ;; - -esac - +display_alert "Deboostrap" >> "${DEST}"/debug/output.log +display_alert "Components ${DEBOOTSTRAP_COMPONENTS}" >> "${DEST}"/debug/output.log +display_alert "Packages ${DEBOOTSTRAP_LIST}" >> "${DEST}"/debug/output.log +display_alert "----" >> "${DEST}"/debug/output.log +display_alert "CLI packages" >> "${DEST}"/debug/output.log +display_alert "Standard : ${PACKAGE_LIST}" >> "${DEST}"/debug/output.log +display_alert "Additional : ${PACKAGE_LIST_ADDITIONAL}" >> "${DEST}"/debug/output.log DEBIAN_MIRROR='deb.debian.org/debian' DEBIAN_SECURTY='security.debian.org/' @@ -307,13 +521,56 @@ fi # Build final package list after possible override PACKAGE_LIST="$PACKAGE_LIST $PACKAGE_LIST_RELEASE $PACKAGE_LIST_ADDITIONAL" -[[ $BUILD_DESKTOP == yes ]] && PACKAGE_LIST="$PACKAGE_LIST $PACKAGE_LIST_DESKTOP $PACKAGE_LIST_DESKTOP_RECOMMENDS" +PACKAGE_MAIN_LIST="$(cleanup_list PACKAGE_LIST)" + +[[ $BUILD_DESKTOP == yes ]] && PACKAGE_LIST="$PACKAGE_LIST $PACKAGE_LIST_DESKTOP" +PACKAGE_LIST="$(cleanup_list PACKAGE_LIST)" # remove any packages defined in PACKAGE_LIST_RM in lib.config +aggregated_content="${PACKAGE_LIST_RM} " +aggregate_all_cli "packages.remove" " " +aggregate_all_desktop "packages.remove" " " +PACKAGE_LIST_RM="$(cleanup_list aggregated_content)" +unset aggregated_content + +aggregated_content="" +aggregate_all_cli "packages.uninstall" " " +aggregate_all_desktop "packages.uninstall" " " +PACKAGE_LIST_UNINSTALL="$(cleanup_list aggregated_content)" +unset aggregated_content + +display_alert "PACKAGE_MAIN_LIST : ${PACKAGE_MAIN_LIST}" >> "${DEST}"/debug/output.log +display_alert "PACKAGE_LIST : ${PACKAGE_LIST}" >> "${DEST}"/debug/output.log +display_alert "PACKAGE_LIST_RM : ${PACKAGE_LIST_RM}" >> "${DEST}"/debug/output.log +display_alert "PACKAGE_LIST_UNINSTALL : ${PACKAGE_LIST_UNINSTALL}" >> "${DEST}"/debug/output.log + if [[ -n $PACKAGE_LIST_RM ]]; then - PACKAGE_LIST=$(sed -r "s/\b($(tr ' ' '|' <<< ${PACKAGE_LIST_RM}))\b//g" <<< "${PACKAGE_LIST}") + display_alert "Remove filter : $(tr ' ' '|' <<< ${PACKAGE_LIST_RM})" + # Turns out that \b can be tricked by dashes. + # So if you remove mesa-utils but still want to install "mesa-utils-extra" + # a "\b(mesa-utils)\b" filter will convert "mesa-utils-extra" to "-extra". + # \W is not tricked by this but consumes the surrounding spaces, so we + # replace the occurence by one space, to avoid sticking the next word to + # the previous one after consuming the spaces. + PACKAGE_LIST=$(sed -r "s/\W($(tr ' ' '|' <<< ${PACKAGE_LIST_RM}))\W/ /g" <<< " ${PACKAGE_LIST} ") + PACKAGE_MAIN_LIST=$(sed -r "s/\W($(tr ' ' '|' <<< ${PACKAGE_LIST_RM}))\W/ /g" <<< " ${PACKAGE_MAIN_LIST} ") + if [[ $BUILD_DESKTOP == "yes" ]]; then + PACKAGE_LIST_DESKTOP=$(sed -r "s/\W($(tr ' ' '|' <<< ${PACKAGE_LIST_RM}))\W/ /g" <<< " ${PACKAGE_LIST_DESKTOP} ") + # Removing double spaces... AGAIN, since we might have used a sed on them + # Do not quote the variables. This would defeat the trick. + PACKAGE_LIST_DESKTOP="$(echo ${PACKAGE_LIST_DESKTOP})" + fi + + # Removing double spaces... AGAIN, since we might have used a sed on them + # Do not quote the variables. This would defeat the trick. + PACKAGE_LIST="$(echo ${PACKAGE_LIST})" + PACKAGE_MAIN_LIST="$(echo ${PACKAGE_MAIN_LIST})" fi +display_alert "After removal of packages.remove packages" >> "${DEST}"/debug/output.log +display_alert "PACKAGE_MAIN_LIST : \"${PACKAGE_MAIN_LIST}\"" >> "${DEST}"/debug/output.log +display_alert "PACKAGE_LIST : \"${PACKAGE_LIST}\"" >> "${DEST}"/debug/output.log + # Give the option to configure DNS server used in the chroot during the build process [[ -z $NAMESERVER ]] && NAMESERVER="1.0.0.1" # default is cloudflare alternate @@ -347,6 +604,8 @@ Board: $BOARD Branch: $BRANCH Minimal: $BUILD_MINIMAL Desktop: $BUILD_DESKTOP +Desktop Environment: $DESKTOP_ENVIRONMENT +Software groups: $DESKTOP_APPGROUPS_SELECTED Kernel configuration: Repository: $KERNELSOURCE diff --git a/lib/debootstrap.sh b/lib/debootstrap.sh index 3b7116de0..b43687c04 100644 --- a/lib/debootstrap.sh +++ b/lib/debootstrap.sh @@ -18,7 +18,7 @@ # debootstrap_ng() { - display_alert "Starting rootfs and image building process for" "$BOARD $RELEASE" "info" + display_alert "Starting rootfs and image building process for" "${BRANCH} ${BOARD} ${RELEASE} ${DESKTOP_APPGROUPS_SELECTED} ${DESKTOP_ENVIRONMENT} ${BUILD_MINIMAL}" "info" [[ $ROOTFS_TYPE != ext4 ]] && display_alert "Assuming $BOARD $BRANCH kernel supports $ROOTFS_TYPE" "" "wrn" @@ -110,7 +110,10 @@ create_rootfs_cache() local packages_hash=$(get_package_list_hash "$(($ROOTFSCACHE_VERSION - $n))") [[ -z ${FORCED_MONTH_OFFSET} ]] && FORCED_MONTH_OFFSET=${n} local packages_hash=$(get_package_list_hash "$(date -d "$D +${FORCED_MONTH_OFFSET} month" +"%Y-%m-module$ROOTFSCACHE_VERSION" | sed 's/^0*//')") - local cache_type=$(if [[ ${BUILD_DESKTOP} == yes ]]; then echo "xfce-desktop"; elif [[ ${BUILD_MINIMAL} == yes ]]; then echo "minimal"; else echo "cli";fi) + local cache_type="cli" + [[ ${BUILD_DESKTOP} == yes ]] && local cache_type="xfce-desktop" + [[ -n ${DESKTOP_ENVIRONMENT} ]] && local cache_type="${DESKTOP_ENVIRONMENT}" + [[ ${BUILD_MINIMAL} == yes ]] && local cache_type="minimal" local cache_name=${RELEASE}-${cache_type}-${ARCH}.$packages_hash.tar.lz4 local cache_fname=${SRC}/cache/rootfs/${cache_name} local display_name=${RELEASE}-${cache_type}-${ARCH}.${packages_hash:0:3}...${packages_hash:29}.tar.lz4 @@ -161,7 +164,7 @@ create_rootfs_cache() ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Debootstrap (stage 1/2)..." $TTY_Y $TTY_X'} \ ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} - [[ ${PIPESTATUS[0]} -ne 0 || ! -f $SDCARD/debootstrap/debootstrap ]] && exit_with_error "Debootstrap base system first stage failed" + [[ ${PIPESTATUS[0]} -ne 0 || ! -f $SDCARD/debootstrap/debootstrap ]] && exit_with_error "Debootstrap base system for ${BRANCH} ${BOARD} ${RELEASE} ${DESKTOP_APPGROUPS_SELECTED} ${DESKTOP_ENVIRONMENT} ${BUILD_MINIMAL} first stage failed" cp /usr/bin/$QEMU_BINARY $SDCARD/usr/bin/ @@ -174,7 +177,7 @@ create_rootfs_cache() ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Debootstrap (stage 2/2)..." $TTY_Y $TTY_X'} \ ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} - [[ ${PIPESTATUS[0]} -ne 0 || ! -f $SDCARD/bin/bash ]] && exit_with_error "Debootstrap base system second stage failed" + [[ ${PIPESTATUS[0]} -ne 0 || ! -f $SDCARD/bin/bash ]] && exit_with_error "Debootstrap base system for ${BRANCH} ${BOARD} ${RELEASE} ${DESKTOP_APPGROUPS_SELECTED} ${DESKTOP_ENVIRONMENT} ${BUILD_MINIMAL} second stage failed" mount_chroot "$SDCARD" @@ -228,14 +231,60 @@ create_rootfs_cache() ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Upgrading base packages..." $TTY_Y $TTY_X'} \ ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} + # Myy: Dividing the desktop packages installation steps into multiple + # ones. We first install the "ADDITIONAL_PACKAGES" in order to get + # access to software-common-properties installation. + # THEN we add the APT sources and install the Desktop packages. + # TODO : Find a way to add APT sources WITHOUT software-common-properties + [[ ${PIPESTATUS[0]} -ne 0 ]] && display_alert "Upgrading base packages" "failed" "wrn" # stage: install additional packages - display_alert "Installing packages for" "Armbian" "info" + display_alert "Installing the main packages for" "Armbian" "info" eval 'LC_ALL=C LANG=C chroot $SDCARD /bin/bash -c "DEBIAN_FRONTEND=noninteractive apt-get -y -q \ - $apt_extra $apt_extra_progress --no-install-recommends install $PACKAGE_LIST"' \ + $apt_extra $apt_extra_progress --no-install-recommends install $PACKAGE_MAIN_LIST"' \ ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/debootstrap.log'} \ - ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Installing Armbian system..." $TTY_Y $TTY_X'} \ + ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Installing Armbian main packages..." $TTY_Y $TTY_X'} \ + ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} + + [[ ${PIPESTATUS[0]} -ne 0 ]] && exit_with_error "Installation of Armbian main packages for ${BRANCH} ${BOARD} ${RELEASE} ${DESKTOP_APPGROUPS_SELECTED} ${DESKTOP_ENVIRONMENT} ${BUILD_MINIMAL} failed" + + if [[ $BUILD_DESKTOP == "yes" ]]; then + # FIXME Myy : Are we keeping this only for Desktop users, + # or should we extend this to CLI users too ? + # There might be some clunky boards that require Debian packages from + # specific repos... + display_alert "Adding apt sources for Desktop packages" + add_desktop_package_sources + + local apt_desktop_install_flags="" + if [[ ! -z ${DESKTOP_APT_FLAGS_SELECTED+x} ]]; then + for flag in ${DESKTOP_APT_FLAGS_SELECTED}; do + apt_desktop_install_flags+=" --install-${flag}" + done + else + # Myy : Using the previous default option, if the variable isn't defined + # And ONLY if it's not defined ! + apt_desktop_install_flags+=" --no-install-recommends" + fi + + display_alert "Installing the desktop packages for" "Armbian" "info" + eval 'LC_ALL=C LANG=C chroot $SDCARD /bin/bash -c "DEBIAN_FRONTEND=noninteractive apt-get -y -q \ + $apt_extra $apt_extra_progress install ${apt_desktop_install_flags} $PACKAGE_LIST_DESKTOP"' \ + ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/debootstrap.log'} \ + ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Installing Armbian desktop packages..." $TTY_Y $TTY_X'} \ + ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} + + [[ ${PIPESTATUS[0]} -ne 0 ]] && exit_with_error "Installation of Armbian desktop packages for ${BRANCH} ${BOARD} ${RELEASE} ${DESKTOP_APPGROUPS_SELECTED} ${DESKTOP_ENVIRONMENT} ${BUILD_MINIMAL} failed" + fi + + # Remove packages from packages.uninstall + + display_alert "Uninstall packages" "$PACKAGE_LIST_UNINSTALL" "info" + eval 'LC_ALL=C LANG=C chroot $SDCARD /bin/bash -c "DEBIAN_FRONTEND=noninteractive apt-get -y -qq \ + $apt_extra $apt_extra_progress purge $PACKAGE_LIST_UNINSTALL"' \ + ${PROGRESS_LOG_TO_FILE:+' >> $DEST/debug/debootstrap.log'} \ + ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Removing packages.uninstall packages..." $TTY_Y $TTY_X'} \ ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} [[ ${PIPESTATUS[0]} -ne 0 ]] && exit_with_error "Installation of Armbian packages failed" @@ -266,7 +315,7 @@ create_rootfs_cache() # creating xapian index that synaptic runs faster if [[ $BUILD_DESKTOP == yes ]]; then display_alert "Recreating Synaptic search index" "Please wait" "info" - chroot $SDCARD /bin/bash -c "/usr/sbin/update-apt-xapian-index -u" + chroot $SDCARD /bin/bash -c "[[ -f /usr/sbin/update-apt-xapian-index ]] && /usr/sbin/update-apt-xapian-index -u" fi # this is needed for the build process later since resolvconf generated file in /run is not saved @@ -281,7 +330,7 @@ create_rootfs_cache() umount_chroot "$SDCARD" tar cp --xattrs --directory=$SDCARD/ --exclude='./dev/*' --exclude='./proc/*' --exclude='./run/*' --exclude='./tmp/*' \ - --exclude='./sys/*' . | pv -p -b -r -s $(du -sb $SDCARD/ | cut -f1) -N "$display_name" | lz4 -c > $cache_fname + --exclude='./sys/*' . | pv -p -b -r -s $(du -sb $SDCARD/ | cut -f1) -N "$display_name" | lz4 -5 -c > $cache_fname # sign rootfs cache archive that it can be used for web cache once. Internal purposes if [[ -n $GPG_PASS ]]; then @@ -332,7 +381,7 @@ prepare_partitions() # parttype[nfs] is empty # metadata_csum and 64bit may need to be disabled explicitly when migrating to newer supported host OS releases - if [[ $(lsb_release -sc) =~ bionic|buster|bullseye|cosmic|groovy|focal ]]; then + if [[ $(lsb_release -sc) =~ bionic|buster|bullseye|cosmic|groovy|focal|hirsute|sid ]]; then mkopts[ext4]='-q -m 2 -O ^64bit,^metadata_csum' elif [[ $(lsb_release -sc) == xenial ]]; then mkopts[ext4]='-q -m 2' @@ -466,7 +515,6 @@ prepare_partitions() check_loop_device "$LOOP" - # NOTE: losetup -P option is not available in Trusty losetup $LOOP ${SDCARD}.raw # loop device was grabbed here, unlock @@ -601,7 +649,7 @@ update_initramfs() create_image() { # stage: create file name - local version="Armbian_${REVISION}_${BOARD^}_${RELEASE}_${BRANCH}_${VER/-$LINUXFAMILY/}" + local version="Armbian_${REVISION}_${BOARD^}_${RELEASE}_${BRANCH}_${VER/-$LINUXFAMILY/}${DESKTOP_ENVIRONMENT:+_$DESKTOP_ENVIRONMENT}" [[ $BUILD_DESKTOP == yes ]] && version=${version}_desktop [[ $BUILD_MINIMAL == yes ]] && version=${version}_minimal [[ $ROOTFS_TYPE == nfs ]] && version=${version}_nfsboot @@ -689,7 +737,7 @@ create_image() if [[ $COMPRESS_OUTPUTIMAGE == *xz* ]]; then display_alert "Compressing" "${FINALDEST}/${version}.img.xz" "info" # compressing consumes a lot of memory we don't have. Waiting for previous packing job to finish helps to run a lot more builds in parallel - [[ ${BUILD_ALL} == yes ]] && while [[ $(ps -uax | grep "pixz" | wc -l) -gt 3 ]]; do echo -en "#"; sleep 2; done + [[ ${BUILD_ALL} == yes && $(free | grep Mem | awk '{print $4/$2 * 100}' | awk '{print int($1+0.5)}') -lt 50 ]] && while [[ $(ps -uax | grep "pixz" | wc -l) -gt 5 ]]; do echo -en "#"; sleep 2; done pixz -9 < $DESTIMG/${version}.img > ${FINALDEST}/${version}.img.xz compression_type=".xz" fi diff --git a/lib/desktop.sh b/lib/desktop.sh index 361ec9ddb..18016453a 100644 --- a/lib/desktop.sh +++ b/lib/desktop.sh @@ -9,14 +9,40 @@ # This file is a part of the Armbian build script # https://github.com/armbian/build/ +# Functions: +# create_desktop_package +# run_on_sdcard +# install_ppa_prerequisites +# add_apt_sources +# add_desktop_package_sources +# desktop_postinstall + + + + create_desktop_package () { - # join and cleanup package list - PACKAGE_LIST_DESKTOP+=" "${PACKAGE_LIST_DESKTOP_RECOMMENDS} - PACKAGE_LIST_DESKTOP=${PACKAGE_LIST_DESKTOP// /,}; - PACKAGE_LIST_DESKTOP=${PACKAGE_LIST_DESKTOP//[[:space:]]/} + # join and cleanup package list + # Remove leading and trailing whitespaces + echo "Showing PACKAGE_LIST_DESKTOP before postprocessing" >> "${DEST}"/debug/output.log + # Use quotes to show leading and trailing spaces + echo "\"$PACKAGE_LIST_DESKTOP\"" >> "${DEST}"/debug/output.log + + # Remove leading and trailing spaces with some bash monstruosity + # https://stackoverflow.com/questions/369758/how-to-trim-whitespace-from-a-bash-variable#12973694 + DEBIAN_RECOMMENDS="${PACKAGE_LIST_DESKTOP#"${PACKAGE_LIST_DESKTOP%%[![:space:]]*}"}" + DEBIAN_RECOMMENDS="${DEBIAN_RECOMMENDS%"${DEBIAN_RECOMMENDS##*[![:space:]]}"}" + # Replace whitespace characters by commas + DEBIAN_RECOMMENDS=${DEBIAN_RECOMMENDS// /,}; + # Remove others 'spacing characters' (like tabs) + DEBIAN_RECOMMENDS=${DEBIAN_RECOMMENDS//[[:space:]]/} + + echo "DEBIAN_RECOMMENDS : ${DEBIAN_RECOMMENDS}" >> "${DEST}"/debug/output.log + + # Replace whitespace characters by commas PACKAGE_LIST_PREDEPENDS=${PACKAGE_LIST_PREDEPENDS// /,}; + # Remove others 'spacing characters' (like tabs) PACKAGE_LIST_PREDEPENDS=${PACKAGE_LIST_PREDEPENDS//[[:space:]]/} local destination tmp_dir @@ -25,6 +51,8 @@ create_desktop_package () rm -rf "${destination}" mkdir -p "${destination}"/DEBIAN + echo "${PACKAGE_LIST_PREDEPENDS}" >> "${DEST}"/debug/output.log + # set up control file cat <<-EOF > "${destination}"/DEBIAN/control Package: ${CHOSEN_DESKTOP} @@ -34,85 +62,43 @@ create_desktop_package () Installed-Size: 1 Section: xorg Priority: optional - Recommends: ${PACKAGE_LIST_DESKTOP//[:space:]+/,} - Provides: ${CHOSEN_DESKTOP} + Recommends: ${DEBIAN_RECOMMENDS//[:space:]+/,} + Provides: ${CHOSEN_DESKTOP}, armbian-${RELEASE}-desktop Pre-Depends: ${PACKAGE_LIST_PREDEPENDS//[:space:]+/,} Description: Armbian desktop for ${DISTRIBUTION} ${RELEASE} EOF - cat <<-EOF > "${destination}"/DEBIAN/postinst - #!/bin/sh -e + #display_alert "Showing ${destination}/DEBIAN/control" + cat "${destination}"/DEBIAN/control >> "${DEST}"/debug/install.log - # overwrite stock chromium and firefox configuration - if [ -d /etc/chromium-browser/ ]; then ln -sf /etc/armbian/chromium.conf /etc/chromium-browser/default; fi - if [ -d /etc/chromium.d/ ]; then ln -sf /etc/armbian/chromium.conf /etc/chromium.d/chromium.conf; fi - cp -R /etc/armbian/chromium /usr/share - # overwrite stock lightdm greeter configuration - if [ -d /etc/armbian/lightdm ]; then cp -R /etc/armbian/lightdm /etc/; fi + # Recreating the DEBIAN/postinst file + echo "#!/bin/sh -e" > "${destination}/DEBIAN/postinst" - if [ -d /etc/firefox/ ]; then ln -sf /etc/armbian/firefox.conf /etc/firefox/syspref.js; fi + local aggregated_content="" + aggregate_all_desktop "debian/postinst" $'\n' - if [ -d /usr/lib/firefox-esr/ ]; then - ln -sf /etc/armbian/firefox.conf /usr/lib/firefox-esr/mozilla.cfg - echo 'pref("general.config.obscure_value", 0);' > /usr/lib/firefox-esr/defaults/pref/local-settings.js - echo 'pref("general.config.filename", "mozilla.cfg");' >> /usr/lib/firefox-esr/defaults/pref/local-settings.js - fi + echo "${aggregated_content}" >> "${destination}/DEBIAN/postinst" + echo "exit 0" >> "${destination}/DEBIAN/postinst" - # Adjust menu - if [ -f /etc/xdg/menus/xfce-applications.menu ]; then - sed -i -n '/Settings<\/Menuname>/{p;:a;N;/xfce4-session-logout.desktop<\/Filename>/!ba;s/.*\n/\ - \t\n\t\n \n armbian-donate.desktop<\/Filename>\ - \n armbian-support.desktop<\/Filename>\n/};p' /etc/xdg/menus/xfce-applications.menu - fi - - # Hide few items - if [ -f /usr/share/applications/display-im6.q16.desktop ]; then mv /usr/share/applications/display-im6.q16.desktop /usr/share/applications/display-im6.q16.desktop.hidden; fi - if [ -f /usr/share/applications/display-im6.desktop ]]; then mv /usr/share/applications/display-im6.desktop /usr/share/applications/display-im6.desktop.hidden; fi - if [ -f /usr/share/applications/vim.desktop ]]; then mv /usr/share/applications/vim.desktop /usr/share/applications/vim.desktop.hidden; fi - if [ -f /usr/share/applications/libreoffice-startcenter.desktop ]]; then mv /usr/share/applications/libreoffice-startcenter.desktop /usr/share/applications/libreoffice-startcenter.desktop.hidden; fi - - # Disable Pulseaudio timer scheduling which does not work with sndhdmi driver - if [ -f /etc/pulse/default.pa ]; then sed "s/load-module module-udev-detect$/& tsched=0/g" -i /etc/pulse/default.pa; fi - - exit 0 - EOF chmod 755 "${destination}"/DEBIAN/postinst - # add loading desktop splash service - mkdir -p "${destination}"/etc/systemd/system/ - cp "${SRC}"/packages/blobs/desktop/desktop-splash/desktop-splash.service "${destination}"/etc/systemd/system/desktop-splash.service + #display_alert "Showing ${destination}/DEBIAN/postinst" + cat "${destination}/DEBIAN/postinst" >> "${DEST}"/debug/install.log - # install optimized browser configurations + # Armbian create_desktop_package scripts + + unset aggregated_content + + # Myy : I'm preparing the common armbian folders, in advance, since the scripts are now splitted mkdir -p "${destination}"/etc/armbian - cp "${SRC}"/packages/blobs/desktop/chromium.conf "${destination}"/etc/armbian - cp "${SRC}"/packages/blobs/desktop/firefox.conf "${destination}"/etc/armbian - cp -R "${SRC}"/packages/blobs/desktop/chromium "${destination}"/etc/armbian - # install lightdm greeter - cp -R "${SRC}"/packages/blobs/desktop/lightdm "${destination}"/etc/armbian + local aggregated_content="" - # install default desktop settings - mkdir -p "${destination}"/etc/skel - cp -R "${SRC}"/packages/blobs/desktop/skel/. "${destination}"/etc/skel + aggregate_all_desktop "armbian/create_desktop_package.sh" $'\n' - - # using different icon pack. Workaround due to this bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867779 - if [[ ${RELEASE} == bionic || ${RELEASE} == stretch || ${RELEASE} == buster || ${RELEASE} == bullseye || ${RELEASE} == focal || ${RELEASE} == groovy ]]; then - sed -i 's//g' \ - "${destination}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml - fi - - # install dedicated startup icons - mkdir -p "${destination}"/usr/share/pixmaps "${destination}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/ - cp "${SRC}/packages/blobs/desktop/icons/${DISTRIBUTION,,}.png" "${destination}"/usr/share/pixmaps - sed 's/xenial.png/'"${DISTRIBUTION,,}"'.png/' -i "${destination}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml - - # install logo for login screen - cp "${SRC}"/packages/blobs/desktop/icons/armbian.png "${destination}"/usr/share/pixmaps - - # install wallpapers - mkdir -p "${destination}"/usr/share/backgrounds/xfce/ - cp "${SRC}"/packages/blobs/desktop/wallpapers/armbian*.jpg "${destination}"/usr/share/backgrounds/xfce/ + # display_alert "Showing the user scripts executed in create_desktop_package" + echo "${aggregated_content}" >> "${DEST}"/debug/install.log + eval "${aggregated_content}" # create board DEB file display_alert "Building desktop package" "${CHOSEN_DESKTOP}_${REVISION}_all" "info" @@ -120,40 +106,119 @@ create_desktop_package () mkdir -p "${DEB_STORAGE}/${RELEASE}" cd "${destination}"; cd .. fakeroot dpkg-deb -b "${destination}" "${DEB_STORAGE}/${RELEASE}/${CHOSEN_DESKTOP}_${REVISION}_all.deb" >/dev/null + # cleanup rm -rf "${tmp_dir}" + + unset aggregated_content + } + + + +run_on_sdcard() { + + # Myy : The lack of quotes is deliberate here + # This allows for redirections and pipes easily. + chroot "${SDCARD}" /bin/bash -c "${@}" >> "${DEST}"/debug/install.log + +} + + + + +install_ppa_prerequisites() { + + # Myy : So... The whole idea is that, a good bunch of external sources + # are PPA. + # Adding PPA without add-apt-repository is poorly conveninent since + # you need to reconstruct the URL by hand, and find the GPG key yourself. + # add-apt-repository does that automatically, and in a way that allows you + # to remove it cleanly through the same tool. + + # Myy : TODO Try to find a way to install this package only when + # we encounter a PPA. + run_on_sdcard "DEBIAN_FRONTEND=noninteractive apt install -yqq software-properties-common" + +} + +add_apt_sources() { + + local potential_paths="" + local sub_dirs_to_check=". " + if [[ ! -z "${SELECTED_CONFIGURATION+x}" ]]; then + sub_dirs_to_check+="config_${SELECTED_CONFIGURATION}" + fi + get_all_potential_paths "${DEBOOTSTRAP_SEARCH_RELATIVE_DIRS}" "${sub_dirs_to_check}" "sources/apt" + get_all_potential_paths "${CLI_SEARCH_RELATIVE_DIRS}" "${sub_dirs_to_check}" "sources/apt" + get_all_potential_paths "${DESKTOP_ENVIRONMENTS_SEARCH_RELATIVE_DIRS}" "." "sources/apt" + get_all_potential_paths "${DESKTOP_APPGROUPS_SEARCH_RELATIVE_DIRS}" "${DESKTOP_APPGROUPS_SELECTED}" "sources/apt" + + display_alert "ADDING ADDITIONAL APT SOURCES" + + for apt_sources_dirpath in ${potential_paths}; do + if [[ -d "${apt_sources_dirpath}" ]]; then + for apt_source_filepath in "${apt_sources_dirpath}/"*.source; do + local new_apt_source="$(cat "${apt_source_filepath}")" + display_alert "Adding APT Source ${new_apt_source}" + # -y -> Assumes yes to all queries + # -n -> Do not update package cache after adding + run_on_sdcard "add-apt-repository -y -n \"${new_apt_source}\"" + display_alert "Return code : $?" + + local apt_source_gpg_filepath="${apt_source_filepath}.gpg" + + # PPA provide GPG keys automatically, it seems. + # But other repositories (Docker for example) require the + # user to import GPG keys manually + # Myy : FIXME We need some automatic Git warnings when someone + # add a GPG key, since trusting the wrong keys could lead to + # serious issues. + if [[ -f "${apt_source_gpg_filepath}" ]]; then + display_alert "Adding GPG Key ${apt_source_gpg_filepath}" + local apt_source_gpg_filename="$(basename ${apt_source_gpg_filepath})" + cp "${apt_source_gpg_filepath}" "${SDCARD}/tmp/${apt_source_gpg_filename}" + run_on_sdcard "apt-key add \"/tmp/${apt_source_gpg_filename}\"" + echo "APT Key returned : $?" + fi + done + fi + done + +} + + + + +add_desktop_package_sources() { + + # Myy : I see Snap and Flatpak coming up in the next releases + # so... let's prepare for that + add_apt_sources + run_on_sdcard "apt -y -q update" + ls -l "${SDCARD}/etc/apt/sources.list.d" >> "${DEST}"/debug/install.log + cat "${SDCARD}/etc/apt/sources.list" >> "${DEST}"/debug/install.log + +} + + + + desktop_postinstall () { - # disable display manager for first run - chroot "${SDCARD}" /bin/bash -c "systemctl --no-reload disable lightdm.service >/dev/null 2>&1" - chroot "${SDCARD}" /bin/bash -c "DEBIAN_FRONTEND=noninteractive apt-get update" >> "${DEST}"/debug/install.log - if [[ ${FULL_DESKTOP} == yes ]]; then - chroot "${SDCARD}" /bin/bash -c "DEBIAN_FRONTEND=noninteractive apt-get -yqq --no-install-recommends install $PACKAGE_LIST_DESKTOP_FULL" >> "${DEST}"/debug/install.log - fi + + # disable display manager for the first run + run_on_sdcard "systemctl --no-reload disable lightdm.service >/dev/null 2>&1" + run_on_sdcard "systemctl --no-reload disable gdm3.service >/dev/null 2>&1" + run_on_sdcard "DEBIAN_FRONTEND=noninteractive apt-get update" >> "${DEST}"/debug/install.log if [[ -n ${PACKAGE_LIST_DESKTOP_BOARD} ]]; then - chroot "${SDCARD}" /bin/bash -c "DEBIAN_FRONTEND=noninteractive apt-get -yqq --no-install-recommends install $PACKAGE_LIST_DESKTOP_BOARD" >> "${DEST}"/debug/install.log + run_on_sdcard "DEBIAN_FRONTEND=noninteractive apt-get -yqq --no-install-recommends install $PACKAGE_LIST_DESKTOP_BOARD" fi if [[ -n ${PACKAGE_LIST_DESKTOP_FAMILY} ]]; then - chroot "${SDCARD}" /bin/bash -c "DEBIAN_FRONTEND=noninteractive apt-get -yqq --no-install-recommends install $PACKAGE_LIST_DESKTOP_FAMILY" >> "${DEST}"/debug/install.log + run_on_sdcard "DEBIAN_FRONTEND=noninteractive apt-get -yqq --no-install-recommends install $PACKAGE_LIST_DESKTOP_FAMILY" fi - # Compile Turbo Frame buffer for sunxi - if [[ $LINUXFAMILY == sun* && $BRANCH == default ]]; then - sed 's/name="use_compositing" type="bool" value="true"/name="use_compositing" type="bool" value="false"/' -i "${SDCARD}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml - - # enable memory reservations - echo "disp_mem_reserves=on" >> "${SDCARD}"/boot/armbianEnv.txt - echo "extraargs=cma=96M" >> "${SDCARD}"/boot/armbianEnv.txt - fi - - if [[ $BOARD == "pinebook-pro" ]]; then - # powerconfig, touchpad, and special keys - cp $SRC/packages/bsp/pinebook-pro/xfce4-power-manager.xml ${SDCARD}/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/ - cp $SRC/packages/bsp/pinebook-pro/pointers.xml ${SDCARD}/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/ - cp $SRC/packages/bsp/pinebook-pro/xfce4-keyboard-shortcuts.xml ${SDCARD}/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/ - fi -} +} \ No newline at end of file diff --git a/lib/distributions.sh b/lib/distributions.sh index f52425a7d..bad3d063b 100644 --- a/lib/distributions.sh +++ b/lib/distributions.sh @@ -58,7 +58,7 @@ install_common() # /usr/share/initramfs-tools/hooks/dropbear will automatically add 'id_ecdsa.pub' to authorized_keys file # during mkinitramfs of update-initramfs #cat "${SDCARD}"/etc/dropbear-initramfs/id_ecdsa.pub > "${SDCARD}"/etc/dropbear-initramfs/authorized_keys - CRYPTROOT_SSH_UNLOCK_KEY_NAME="Armbian_${REVISION}_${BOARD^}_${RELEASE}_${BRANCH}_${VER/-$LINUXFAMILY/}".key + CRYPTROOT_SSH_UNLOCK_KEY_NAME="Armbian_${REVISION}_${BOARD^}_${RELEASE}_${BRANCH}_${VER/-$LINUXFAMILY/}_${DESKTOP_ENVIRONMENT}".key # copy dropbear ssh key to image output dir for convenience cp "${SDCARD}"/etc/dropbear-initramfs/id_ecdsa "${DEST}/images/${CRYPTROOT_SSH_UNLOCK_KEY_NAME}" display_alert "SSH private key for dropbear (initramfs) has been copied to:" \ @@ -277,13 +277,13 @@ install_common() # install armbian-desktop if [[ "${REPOSITORY_INSTALL}" != *armbian-desktop* ]]; then if [[ $BUILD_DESKTOP == yes ]]; then - install_deb_chroot "${DEB_STORAGE}/$RELEASE/armbian-${RELEASE}-desktop_${REVISION}_all.deb" + install_deb_chroot "${DEB_STORAGE}/$RELEASE/${CHOSEN_DESKTOP}_${REVISION}_all.deb" # install display manager and PACKAGE_LIST_DESKTOP_FULL packages if enabled per board desktop_postinstall fi else if [[ $BUILD_DESKTOP == yes ]]; then - install_deb_chroot "armbian-${RELEASE}-desktop" "remote" + install_deb_chroot "${CHOSEN_DESKTOP}" "remote" # install display manager and PACKAGE_LIST_DESKTOP_FULL packages if enabled per board desktop_postinstall fi @@ -478,9 +478,6 @@ install_common() } - - - install_rclocal() { @@ -504,9 +501,6 @@ install_rclocal() } - - - install_distribution_specific() { @@ -527,7 +521,7 @@ install_distribution_specific() ;; - stretch|buster) + stretch|buster|sid) # remove doubled uname from motd [[ -f "${SDCARD}"/etc/update-motd.d/10-uname ]] && rm "${SDCARD}"/etc/update-motd.d/10-uname @@ -550,7 +544,7 @@ install_distribution_specific() sed '/security/ d' -i "${SDCARD}"/etc/apt/sources.list ;; - bionic|groovy|focal) + bionic|groovy|focal|hirsute) # by using default lz4 initrd compression leads to corruption, go back to proven method sed -i "s/^COMPRESS=.*/COMPRESS=gzip/" "${SDCARD}"/etc/initramfs-tools/initramfs.conf diff --git a/lib/general.sh b/lib/general.sh index d932513af..6ff5255d7 100644 --- a/lib/general.sh +++ b/lib/general.sh @@ -129,7 +129,7 @@ get_package_list_hash() # create_sources_list # -# : stretch|buster|bullseye|xenial|bionic|groovy|focal +# : stretch|buster|bullseye|xenial|bionic|groovy|focal|groovy|hirsute|sid # : path to root directory # create_sources_list() @@ -139,7 +139,7 @@ create_sources_list() [[ -z $basedir ]] && exit_with_error "No basedir passed to create_sources_list" case $release in - stretch|buster|bullseye) + stretch|buster|bullseye|sid) cat <<-EOF > "${basedir}"/etc/apt/sources.list deb http://${DEBIAN_MIRROR} $release main contrib non-free #deb-src http://${DEBIAN_MIRROR} $release main contrib non-free @@ -155,7 +155,7 @@ create_sources_list() EOF ;; - xenial|bionic|groovy|focal) + xenial|bionic|groovy|focal|groovy|hirsute) cat <<-EOF > "${basedir}"/etc/apt/sources.list deb http://${UBUNTU_MIRROR} $release main restricted universe multiverse #deb-src http://${UBUNTU_MIRROR} $release main restricted universe multiverse @@ -598,30 +598,48 @@ display_alert "Building kernel splash logo" "$RELEASE" "info" +DISTRIBUTIONS_DESC_DIR="config/distributions" + function distro_menu () { # create a select menu for choosing a distribution based EXPERT status -# also sets DISTRIBUTION_STATUS which goes to BSP package / armbian-release - for i in "${!distro_name[@]}" - do - if [[ "${i}" == "${1}" ]]; then - if [[ "${distro_support[$i]}" != "supported" && $EXPERT != "yes" ]]; then - : - else - local text="" - [[ $EXPERT == "yes" ]] && local text="(${distro_support[$i]})" - options+=("$i" "${distro_name[$i]} $text") - fi - DISTRIBUTION_STATUS=${distro_support[$i]} - break + local distrib_dir="${1}" + + if [[ -d "${distrib_dir}" && -f "${distrib_dir}/support" ]]; then + local support_level="$(cat "${distrib_dir}/support")" + if [[ "${support_level}" != "supported" && $EXPERT != "yes" ]]; then + : + else + local distro_codename="$(basename "${distrib_dir}")" + local distro_fullname="$(cat "${distrib_dir}/name")" + local expert_infos="" + [[ $EXPERT == "yes" ]] && expert_infos="(${support_level})" + options+=("${distro_codename}" "${distro_fullname} ${expert_infos}") fi - done + fi } +function distros_options() { + for distrib_dir in "${DISTRIBUTIONS_DESC_DIR}/"*; do + distro_menu "${distrib_dir}" + done +} +function set_distribution_status() { + + local distro_support_desc_filepath="${DISTRIBUTIONS_DESC_DIR}/${RELEASE}/support" + if [[ ! -f "${distro_support_desc_filepath}" ]]; then + exit_with_error "Distribution ${distribution_name} does not exist" + else + DISTRIBUTION_STATUS="$(cat "${distro_support_desc_filepath}")" + fi + + [[ "${DISTRIBUTION_STATUS}" != "supported" ]] && [[ "${EXPERT}" != "yes" ]] && exit_with_error "Armbian ${RELEASE} is unsupported and, therefore, only available to experts (EXPERT=yes)" + +} adding_packages() { @@ -654,7 +672,7 @@ addtorepo() # parameter "delete" remove incoming directory if publishing is succesful # function: cycle trough distributions - local distributions=("xenial" "stretch" "bionic" "buster" "bullseye" "groovy" "focal") + local distributions=("xenial" "stretch" "bionic" "buster" "bullseye" "groovy" "focal" "hirsute" "sid") local errors=0 for release in "${distributions[@]}"; do @@ -766,7 +784,7 @@ addtorepo() repo-manipulate() { - local DISTROS=("xenial" "stretch" "bionic" "buster" "bullseye" "groovy" "focal") + local DISTROS=("xenial" "stretch" "bionic" "buster" "bullseye" "groovy" "focal" "hirsute" "sid") case $@ in serve) # display repository content @@ -951,6 +969,8 @@ prepare_host() else local offline=false fi +# build aarch64 + if [[ $(dpkg --print-architecture) != arm64 ]]; then if [[ $(dpkg --print-architecture) != amd64 ]]; then display_alert "Please read documentation to set up proper compilation environment" @@ -958,6 +978,9 @@ prepare_host() exit_with_error "Running this tool on non x86-x64 build host is not supported" fi +# build aarch64 + fi + # wait until package manager finishes possible system maintanace wait_for_package_manager @@ -966,6 +989,10 @@ prepare_host() # packages list for host # NOTE: please sync any changes here with the Dockerfile and Vagrantfile + +# build aarch64 + if [[ $(dpkg --print-architecture) == amd64 ]]; then + local hostdeps="wget ca-certificates device-tree-compiler pv bc lzop zip binfmt-support build-essential ccache debootstrap ntpdate \ gawk gcc-arm-linux-gnueabihf qemu-user-static u-boot-tools uuid-dev zlib1g-dev unzip libusb-1.0-0-dev fakeroot \ parted pkg-config libncurses5-dev whiptail debian-keyring debian-archive-keyring f2fs-tools libfile-fcntllock-perl rsync libssl-dev \ @@ -974,6 +1001,20 @@ prepare_host() locales ncurses-base pixz dialog systemd-container udev lib32stdc++6 libc6-i386 lib32ncurses5 lib32tinfo5 \ bison libbison-dev flex libfl-dev cryptsetup gpg gnupg1 cpio aria2 pigz dirmngr python3-distutils jq" +# build aarch64 + else + + local hostdeps="wget ca-certificates device-tree-compiler pv bc lzop zip binfmt-support build-essential ccache debootstrap ntpdate \ + gawk gcc-arm-linux-gnueabihf qemu-user-static u-boot-tools uuid-dev zlib1g-dev unzip libusb-1.0-0-dev fakeroot \ + parted pkg-config libncurses5-dev whiptail debian-keyring debian-archive-keyring f2fs-tools libfile-fcntllock-perl rsync libssl-dev \ + nfs-kernel-server btrfs-progs ncurses-term p7zip-full kmod dosfstools libc6-dev-armhf-cross imagemagick \ + curl patchutils liblz4-tool libpython2.7-dev linux-base swig aptly acl python3-dev \ + locales ncurses-base pixz dialog systemd-container udev libc6 qemu\ + bison libbison-dev flex libfl-dev cryptsetup gpg gnupg1 cpio aria2 pigz dirmngr python3-distutils" + +# build aarch64 + fi + local codename=$(lsb_release -sc) # Add support for Ubuntu 20.04, 21.04 and Mint Ulyana @@ -987,12 +1028,11 @@ prepare_host() display_alert "Build host OS release" "${codename:-(unknown)}" "info" - # Ubuntu Focal x86_64 is the only fully supported host OS release - # Ubuntu Bionic x86_64 support is no longer supported + # Ubuntu 20.04.x (Focal) x86_64 is the only fully supported host OS release # Using Docker/VirtualBox/Vagrant is the only supported way to run the build script on other Linux distributions # # NO_HOST_RELEASE_CHECK overrides the check for a supported host system - # Disable host OS check at your own risk, any issues reported with unsupported releases will be closed without a discussion + # Disable host OS check at your own risk. Any issues reported with unsupported releases will be closed without discussion if [[ -z $codename || "buster groovy focal hirsute debbie tricia ulyana" != *"$codename"* ]]; then if [[ $NO_HOST_RELEASE_CHECK == yes ]]; then display_alert "You are running on an unsupported system" "${codename:-(unknown)}" "wrn" @@ -1006,6 +1046,8 @@ prepare_host() exit_with_error "Windows subsystem for Linux is not a supported build environment" fi +# build aarch64 + if [[ $(dpkg --print-architecture) == amd64 ]]; then if [[ -z $codename || $codename =~ ^(focal|groovy|debbie|buster|hirsute|ulyana)$ ]]; then hostdeps="${hostdeps/lib32ncurses5 lib32tinfo5/lib32ncurses6 lib32tinfo6}" @@ -1028,6 +1070,9 @@ prepare_host() SYNC_CLOCK=no fi +# build aarch64 + fi + # Skip verification if you are working offline if ! $offline; then @@ -1043,6 +1088,10 @@ prepare_host() done # distribution packages are buggy, download from author + +# build aarch64 + if [[ $(dpkg --print-architecture) == amd64 ]]; then + if [[ ! -f /etc/apt/sources.list.d/aptly.list ]]; then display_alert "Updating from external repository" "aptly" "info" if [ x"" != x"${http_proxy}" ]; then @@ -1057,6 +1106,9 @@ prepare_host() sed "s/squeeze/nightly/" -i /etc/apt/sources.list.d/aptly.list fi +# build aarch64 + fi + if [[ ${#deps[@]} -gt 0 ]]; then display_alert "Installing build dependencies" apt-get -q update @@ -1071,10 +1123,16 @@ prepare_host() ntpdate -s "${NTP_SERVER:-pool.ntp.org}" fi +# build aarch64 + if [[ $(dpkg --print-architecture) == amd64 ]]; then + if [[ $(dpkg-query -W -f='${db:Status-Abbrev}\n' 'zlib1g:i386' 2>/dev/null) != *ii* ]]; then apt-get install -qq -y --no-install-recommends zlib1g:i386 >/dev/null 2>&1 fi +# build aarch64 + fi + # create directory structure mkdir -p "${SRC}"/{cache,output} "${USERPATCHES_PATH}" if [[ -n $SUDO_USER ]]; then @@ -1087,6 +1145,9 @@ prepare_host() fi mkdir -p "${DEST}"/debs-beta/extra "${DEST}"/debs/extra "${DEST}"/{config,debug,patch} "${USERPATCHES_PATH}"/overlay "${SRC}"/cache/{sources,hash,hash-beta,toolchain,utility,rootfs} "${SRC}"/.tmp +# build aarch64 + if [[ $(dpkg --print-architecture) == amd64 ]]; then + display_alert "Checking for external GCC compilers" "" "info" # download external Linaro compiler and missing special dependencies since they are needed for certain sources @@ -1134,6 +1195,9 @@ prepare_host() test -e /proc/sys/fs/binfmt_misc/qemu-aarch64 || update-binfmts --enable qemu-aarch64 fi +# build aarch64 + fi + [[ ! -f "${USERPATCHES_PATH}"/customize-image.sh ]] && cp "${SRC}"/config/templates/customize-image.sh.template "${USERPATCHES_PATH}"/customize-image.sh if [[ ! -f "${USERPATCHES_PATH}"/README ]]; then diff --git a/lib/image-helpers.sh b/lib/image-helpers.sh index 595cabff6..c2b5d64aa 100644 --- a/lib/image-helpers.sh +++ b/lib/image-helpers.sh @@ -19,7 +19,6 @@ # customize_image # install_deb_chroot - # mount_chroot # # helper to reduce code duplication @@ -116,7 +115,7 @@ customize_image() # util-linux >= 2.27 required mount -o bind,ro "$USERPATCHES_PATH"/overlay "${SDCARD}"/tmp/overlay display_alert "Calling image customization script" "customize-image.sh" "info" - chroot "${SDCARD}" /bin/bash -c "/tmp/customize-image.sh $RELEASE $LINUXFAMILY $BOARD $BUILD_DESKTOP" + chroot "${SDCARD}" /bin/bash -c "/tmp/customize-image.sh $RELEASE $LINUXFAMILY $BOARD $BUILD_DESKTOP $ARCH" CUSTOMIZE_IMAGE_RC=$? umount -i "${SDCARD}"/tmp/overlay >/dev/null 2>&1 mountpoint -q "${SDCARD}"/tmp/overlay || rm -r "${SDCARD}"/tmp/overlay diff --git a/lib/main.sh b/lib/main.sh index c6100b292..72bb74960 100644 --- a/lib/main.sh +++ b/lib/main.sh @@ -12,6 +12,14 @@ # Main program # +cleanup_list() { + local varname="${1}" + local list_to_clean="${!varname}" + list_to_clean="${list_to_clean#"${list_to_clean%%[![:space:]]*}"}" + list_to_clean="${list_to_clean%"${list_to_clean##*[![:space:]]}"}" + echo ${list_to_clean} +} + if [[ $(basename "$0") == main.sh ]]; then echo "Please use compile.sh to start the build process" @@ -159,8 +167,6 @@ if [[ -z $KERNEL_CONFIGURE ]]; then fi -[[ ${KERNEL_CONFIGURE} == prebuilt ]] && REPOSITORY_INSTALL="u-boot,kernel,bsp,armbian-zsh,armbian-config,armbian-firmware" - if [[ -z $BOARD ]]; then WIP_STATE=supported @@ -281,50 +287,28 @@ else fi -# define distribution support status -declare -A distro_name distro_support -distro_name['stretch']="Debian 9 Stretch" -distro_support['stretch']="eos" -distro_name['buster']="Debian 10 Buster" -distro_support['buster']="supported" -distro_name['bullseye']="Debian 11 Bullseye" -distro_support['bullseye']="csc" -distro_name['xenial']="Ubuntu Xenial 16.04 LTS" -distro_support['xenial']="eos" -distro_name['bionic']="Ubuntu Bionic 18.04 LTS" -distro_support['bionic']="supported" -distro_name['focal']="Ubuntu Focal 20.04 LTS" -distro_support['focal']="supported" -distro_name['groovy']="Ubuntu Groovy 20.10" -distro_support['groovy']="csc" - if [[ $KERNEL_ONLY != yes && -z $RELEASE ]]; then options=() - distro_menu "focal" - distro_menu "buster" - distro_menu "bionic" - distro_menu "bullseye" - distro_menu "groovy" - distro_menu "stretch" - distro_menu "xenial" + distros_options - RELEASE=$(dialog --stdout --title "Choose a release package base" --backtitle "$backtitle" \ - --menu "Select the target OS release package base" $TTY_Y $TTY_X $((TTY_Y - 8)) "${options[@]}") - [[ -z $RELEASE ]] && exit_with_error "No release selected" + RELEASE=$(dialog --stdout --title "Choose a release package base" --backtitle "$backtitle" \ + --menu "Select the target OS release package base" $TTY_Y $TTY_X $((TTY_Y - 8)) "${options[@]}") + echo "options : ${options}" + [[ -z $RELEASE ]] && exit_with_error "No release selected" + unset options fi -# read distribution support status which is written to the armbian-release file -distro_menu "$RELEASE" -unset options - # don't show desktop option if we choose minimal build [[ $BUILD_MINIMAL == yes ]] && BUILD_DESKTOP=no if [[ $KERNEL_ONLY != yes && -z $BUILD_DESKTOP ]]; then + # read distribution support status which is written to the armbian-release file + set_distribution_status + options=() options+=("no" "Image with console interface (server)") options+=("yes" "Image with desktop environment") @@ -332,7 +316,10 @@ if [[ $KERNEL_ONLY != yes && -z $BUILD_DESKTOP ]]; then --menu "Select the target image type" $TTY_Y $TTY_X $((TTY_Y - 8)) "${options[@]}") unset options [[ -z $BUILD_DESKTOP ]] && exit_with_error "No option selected" - [[ $BUILD_DESKTOP == yes ]] && BUILD_MINIMAL=no + if [[ ${BUILD_DESKTOP} == "yes" ]]; then + BUILD_MINIMAL=no + SELECTED_CONFIGURATION="desktop" + fi fi @@ -345,13 +332,31 @@ if [[ $KERNEL_ONLY != yes && $BUILD_DESKTOP == no && -z $BUILD_MINIMAL ]]; then --menu "Select the target image type" $TTY_Y $TTY_X $((TTY_Y - 8)) "${options[@]}") unset options [[ -z $BUILD_MINIMAL ]] && exit_with_error "No option selected" + if [[ $BUILD_MINIMAL == "yes" ]]; then + SELECTED_CONFIGURATION="cli_minimal" + else + SELECTED_CONFIGURATION="cli_standard" + fi fi #prevent conflicting setup -[[ $BUILD_DESKTOP == yes ]] && BUILD_MINIMAL=no +if [[ $BUILD_DESKTOP == "yes" ]]; then + BUILD_MINIMAL=no + SELECTED_CONFIGURATION="desktop" +elif [[ $BUILD_MINIMAL != "yes" || -z "${BUILD_MINIMAL}" ]]; then + BUILD_MINIMAL=no # Just in case BUILD_MINIMAL is not defined + BUILD_DESKTOP=no + SELECTED_CONFIGURATION="cli_standard" +elif [[ $BUILD_MINIMAL == "yes" ]]; then + BUILD_DESKTOP=no + SELECTED_CONFIGURATION="cli_minimal" +fi + [[ $BUILD_MINIMAL == yes ]] && EXTERNAL=no +[[ ${KERNEL_CONFIGURE} == prebuilt ]] && [[ -z ${REPOSITORY_INSTALL} ]] && REPOSITORY_INSTALL="u-boot,kernel,bsp,armbian-zsh,armbian-config,armbian-firmware${BUILD_DESKTOP:+,armbian-desktop}" + #shellcheck source=configuration.sh source "${SRC}"/lib/configuration.sh @@ -390,7 +395,7 @@ DEB_BRANCH=${DEB_BRANCH:+${DEB_BRANCH}-} CHOSEN_UBOOT=linux-u-boot-${DEB_BRANCH}${BOARD} CHOSEN_KERNEL=linux-image-${DEB_BRANCH}${LINUXFAMILY} CHOSEN_ROOTFS=linux-${RELEASE}-root-${DEB_BRANCH}${BOARD} -CHOSEN_DESKTOP=armbian-${RELEASE}-desktop +CHOSEN_DESKTOP=armbian-${RELEASE}-desktop-${DESKTOP_ENVIRONMENT} CHOSEN_KSRC=linux-source-${BRANCH}-${LINUXFAMILY} do_default() { @@ -486,7 +491,7 @@ overlayfs_wrapper "cleanup" [[ -n $RELEASE && ! -f ${DEB_STORAGE}/$RELEASE/${CHOSEN_ROOTFS}_${REVISION}_${ARCH}.deb ]] && create_board_package # create desktop package -[[ -n $RELEASE && ! -f ${DEB_STORAGE}/$RELEASE/${CHOSEN_DESKTOP}_${REVISION}_all.deb ]] && create_desktop_package +[[ -n $RELEASE && $DESKTOP_ENVIRONMENT && ! -f ${DEB_STORAGE}/$RELEASE/${CHOSEN_DESKTOP}_${REVISION}_all.deb ]] && create_desktop_package # build additional packages [[ $EXTERNAL_NEW == compile ]] && chroot_build_packages @@ -515,6 +520,10 @@ $([[ -n $BUILD_MINIMAL ]] && echo "BUILD_MINIMAL=${BUILD_MINIMAL} ")\ $([[ -n $BUILD_DESKTOP ]] && echo "BUILD_DESKTOP=${BUILD_DESKTOP} ")\ $([[ -n $KERNEL_ONLY ]] && echo "KERNEL_ONLY=${KERNEL_ONLY} ")\ $([[ -n $KERNEL_CONFIGURE ]] && echo "KERNEL_CONFIGURE=${KERNEL_CONFIGURE} ")\ +$([[ -n $DESKTOP_ENVIRONMENT ]] && echo "DESKTOP_ENVIRONMENT=${DESKTOP_ENVIRONMENT} ")\ +$([[ -n $DESKTOP_ENVIRONMENT_CONFIG_NAME ]] && echo "DESKTOP_ENVIRONMENT_CONFIG_NAME=${DESKTOP_ENVIRONMENT_CONFIG_NAME} ")\ +$([[ -n $DESKTOP_APPGROUPS_SELECTED ]] && echo "DESKTOP_APPGROUPS_SELECTED=\"${DESKTOP_APPGROUPS_SELECTED}\" ")\ +$([[ -n $DESKTOP_APT_FLAGS_SELECTED ]] && echo "DESKTOP_APT_FLAGS_SELECTED=\"${DESKTOP_APT_FLAGS_SELECTED}\" ")\ $([[ -n $COMPRESS_OUTPUTIMAGE ]] && echo "COMPRESS_OUTPUTIMAGE=${COMPRESS_OUTPUTIMAGE} ")\ " "ext" diff --git a/lib/makeboarddeb.sh b/lib/makeboarddeb.sh index cfa1abbfb..095ec55b8 100644 --- a/lib/makeboarddeb.sh +++ b/lib/makeboarddeb.sh @@ -286,6 +286,12 @@ fi KERNEL_IMAGE_TYPE=$KERNEL_IMAGE_TYPE EOF + if [[ $BUILD_DESKTOP == yes ]]; then + cat <<-EOF >> "${destination}"/etc/armbian-release + DESKTOP=$DESKTOP_ENVIRONMENT + EOF + fi + # this is required for NFS boot to prevent deconfiguring the network on shutdown sed -i 's/#no-auto-down/no-auto-down/g' "${destination}"/etc/network/interfaces.default diff --git a/packages/blobs/asound.state/asound.state.rk3399 b/packages/blobs/asound.state/asound.state.rk3399 new file mode 100644 index 000000000..202b7dfde --- /dev/null +++ b/packages/blobs/asound.state/asound.state.rk3399 @@ -0,0 +1,440 @@ +state.rockchipes8316c { + control.1 { + iface CARD + name 'Headphones Jack' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.2 { + iface MIXER + name 'Headphone Playback Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 3' + dbmin -4800 + dbmax 0 + dbvalue.0 -4800 + dbvalue.1 -4800 + } + } + control.3 { + iface MIXER + name 'Headphone Mixer Volume' + value.0 11 + value.1 11 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 11' + dbmin -1200 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.4 { + iface MIXER + name 'Playback Polarity' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 'R Invert' + item.2 'L Invert' + item.3 'L + R Invert' + } + } + control.5 { + iface MIXER + name 'DAC Playback Volume' + value.0 192 + value.1 192 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 192' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.6 { + iface MIXER + name 'DAC Soft Ramp Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.7 { + iface MIXER + name 'DAC Soft Ramp Rate' + value 4 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 4' + } + } + control.8 { + iface MIXER + name 'DAC Notch Filter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.9 { + iface MIXER + name 'DAC Double Fs Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.10 { + iface MIXER + name 'DAC Stereo Enhancement' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.11 { + iface MIXER + name 'DAC Mono Mix Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'Capture Polarity' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 Invert + } + } + control.13 { + iface MIXER + name 'Mic Boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.14 { + iface MIXER + name 'ADC Capture Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 192' + dbmin -9999999 + dbmax 0 + dbvalue.0 -9999999 + } + } + control.15 { + iface MIXER + name 'ADC PGA Gain Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.16 { + iface MIXER + name 'ADC Soft Ramp Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.17 { + iface MIXER + name 'ADC Double Fs Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'ALC Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.19 { + iface MIXER + name 'ALC Capture Max Volume' + value 28 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 28' + dbmin -650 + dbmax 3550 + dbvalue.0 3550 + } + } + control.20 { + iface MIXER + name 'ALC Capture Min Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 28' + dbmin -1200 + dbmax 3000 + dbvalue.0 -1200 + } + } + control.21 { + iface MIXER + name 'ALC Capture Target Volume' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + dbmin -1650 + dbmax -150 + dbvalue.0 0 + } + } + control.22 { + iface MIXER + name 'ALC Capture Hold Time' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.23 { + iface MIXER + name 'ALC Capture Decay Time' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.24 { + iface MIXER + name 'ALC Capture Attack Time' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.25 { + iface MIXER + name 'ALC Capture Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'ALC Capture Noise Gate Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + } + } + control.27 { + iface MIXER + name 'ALC Capture Noise Gate Type' + value 'Constant PGA Gain' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Constant PGA Gain' + item.1 'Mute ADC Output' + } + } + control.28 { + iface MIXER + name 'Speaker Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.29 { + iface MIXER + name 'Differential Mux' + value lin1-rin1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 lin1-rin1 + item.1 lin2-rin2 + item.2 'lin1-rin1 with 20db Boost' + item.3 'lin2-rin2 with 20db Boost' + } + } + control.30 { + iface MIXER + name 'Digital Mic Mux' + value 'dmic disable' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'dmic disable' + item.1 'dmic data at high level' + item.2 'dmic data at low level' + } + } + control.31 { + iface MIXER + name 'DAC Source Mux' + value 'LDATA TO LDAC, RDATA TO RDAC' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'LDATA TO LDAC, RDATA TO RDAC' + item.1 'LDATA TO LDAC, LDATA TO RDAC' + item.2 'RDATA TO LDAC, RDATA TO RDAC' + item.3 'RDATA TO LDAC, LDATA TO RDAC' + } + } + control.32 { + iface MIXER + name 'Left Headphone Mux' + value lin2-rin2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 lin1-rin1 + item.1 lin2-rin2 + item.2 'lin-rin with Boost' + item.3 'lin-rin with Boost and PGA' + } + } + control.33 { + iface MIXER + name 'Right Headphone Mux' + value lin1-rin1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 lin1-rin1 + item.1 lin2-rin2 + item.2 'lin-rin with Boost' + item.3 'lin-rin with Boost and PGA' + } + } + control.34 { + iface MIXER + name 'Left Headphone Mixer LLIN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.35 { + iface MIXER + name 'Left Headphone Mixer Left DAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'Right Headphone Mixer RLIN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.37 { + iface MIXER + name 'Right Headphone Mixer Right DAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} \ No newline at end of file diff --git a/packages/blobs/desktop/firefox.conf b/packages/blobs/desktop/firefox.conf index 0db946c4d..eadf690fb 100644 --- a/packages/blobs/desktop/firefox.conf +++ b/packages/blobs/desktop/firefox.conf @@ -12,4 +12,4 @@ pref("toolkit.telemetry.rejected", true); pref("reader.parse-on-load.enabled", false); pref("browser.cache.disk.enable", false); pref("browser.cache.memory.enable", true); -pref("browser.cache.memory.capacity", "-1"); \ No newline at end of file +// pref("browser.cache.memory.capacity", "-1"); diff --git a/packages/blobs/desktop/lightdm/lightdm-gtk-greeter.conf b/packages/blobs/desktop/lightdm/lightdm-gtk-greeter.conf index 2b8aabc7f..114190261 100644 --- a/packages/blobs/desktop/lightdm/lightdm-gtk-greeter.conf +++ b/packages/blobs/desktop/lightdm/lightdm-gtk-greeter.conf @@ -1,10 +1,12 @@ [greeter] -background = #888a85 +background = /usr/share/backgrounds/armbian/armbian03-Dre0x-Minum-dark-blurred-3840x2160.jpg theme-name = Numix icon-theme-name = Numix -default-user-image=/usr/share/pixmaps/armbian.png -indicators = ~session;~language;~power;~a11y -screensaver-timeout = 0 font-name = Sans 11 +indicators = ~session;~host;~spacer;~a11y;~language;~clock;~power +default-user-image = /usr/share/pixmaps/armbian/armbian.png +screensaver-timeout = 20 user-background = false keyboard = onboard --theme=ModelM +reader = orca +position = -97%,start -50%,center diff --git a/packages/blobs/desktop/lightdm/lightdm.conf.d/11-armbian.conf b/packages/blobs/desktop/lightdm/lightdm.conf.d/11-armbian.conf index 9b14b9557..3c1eabbc1 100644 --- a/packages/blobs/desktop/lightdm/lightdm.conf.d/11-armbian.conf +++ b/packages/blobs/desktop/lightdm/lightdm.conf.d/11-armbian.conf @@ -1,5 +1,5 @@ -[SeatDefaults] -user-session=ubuntu +[Seat:*] +user-session=xfce greeter-show-manual-login=false greeter-hide-users=false allow-guest=false diff --git a/packages/blobs/desktop/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml b/packages/blobs/desktop/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml index b704f5fd7..fa0777e8a 100644 --- a/packages/blobs/desktop/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml +++ b/packages/blobs/desktop/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml @@ -7,52 +7,52 @@ - - + + - - + + - - + + - - + + - + - + - + - + diff --git a/packages/blobs/desktop/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml b/packages/blobs/desktop/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml index e5e76c17e..897bf2db7 100644 --- a/packages/blobs/desktop/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml +++ b/packages/blobs/desktop/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml @@ -23,7 +23,7 @@ - + diff --git a/packages/blobs/desktop/wallpapers/Armbian-clear-rounded-bakcground-3840-2160.jpg b/packages/blobs/desktop/wallpapers/Armbian-clear-rounded-bakcground-3840-2160.jpg new file mode 100644 index 000000000..3cacd7b25 Binary files /dev/null and b/packages/blobs/desktop/wallpapers/Armbian-clear-rounded-bakcground-3840-2160.jpg differ diff --git a/packages/blobs/desktop/wallpapers/Armbian-clear-rounded-bakcground-blur-3840-2160.jpg b/packages/blobs/desktop/wallpapers/Armbian-clear-rounded-bakcground-blur-3840-2160.jpg new file mode 100644 index 000000000..c3ef01139 Binary files /dev/null and b/packages/blobs/desktop/wallpapers/Armbian-clear-rounded-bakcground-blur-3840-2160.jpg differ diff --git a/packages/blobs/desktop/wallpapers/armbian-full-undeer-construction-3840-2160.jpg b/packages/blobs/desktop/wallpapers/armbian-full-undeer-construction-3840-2160.jpg new file mode 100644 index 000000000..a29a456b7 Binary files /dev/null and b/packages/blobs/desktop/wallpapers/armbian-full-undeer-construction-3840-2160.jpg differ diff --git a/packages/blobs/desktop/wallpapers/armbian-full-undeer-construction-blur-3840-2160.jpg b/packages/blobs/desktop/wallpapers/armbian-full-undeer-construction-blur-3840-2160.jpg new file mode 100644 index 000000000..a683803c8 Binary files /dev/null and b/packages/blobs/desktop/wallpapers/armbian-full-undeer-construction-blur-3840-2160.jpg differ diff --git a/packages/blobs/desktop/wallpapers/armbian03-Dre0x-Minum-dark-blurred-3840x2160.jpg b/packages/blobs/desktop/wallpapers/armbian03-Dre0x-Minum-dark-blurred-3840x2160.jpg new file mode 100644 index 000000000..886700d3a Binary files /dev/null and b/packages/blobs/desktop/wallpapers/armbian03-Dre0x-Minum-dark-blurred-3840x2160.jpg differ diff --git a/packages/blobs/desktop/wallpapers/armbian18-Dre0x-Minum-light-blurred-3840x2160.jpg b/packages/blobs/desktop/wallpapers/armbian18-Dre0x-Minum-light-blurred-3840x2160.jpg new file mode 100644 index 000000000..a498136f3 Binary files /dev/null and b/packages/blobs/desktop/wallpapers/armbian18-Dre0x-Minum-light-blurred-3840x2160.jpg differ diff --git a/packages/bsp/common/usr/lib/armbian/armbian-firstlogin b/packages/bsp/common/usr/lib/armbian/armbian-firstlogin index dd2b7114d..9fcda3dd2 100755 --- a/packages/bsp/common/usr/lib/armbian/armbian-firstlogin +++ b/packages/bsp/common/usr/lib/armbian/armbian-firstlogin @@ -8,8 +8,10 @@ . /etc/armbian-release + check_abort() { + echo -e "\nDisabling user account creation procedure\n" rm -f /root/.not_logged_in_yet if [[ ${USER_SHELL} == zsh ]]; then @@ -17,24 +19,28 @@ check_abort() fi trap - INT exit 0 + } -function read_password() +read_password() { -unset password -prompt="$1 password: " -while IFS= read -p "$prompt" -r -s -n 1 char -do - if [[ $char == $'\0' ]] - then - break - fi - prompt='*' - password+="$char" -done + + unset password + prompt="$1 password: " + while IFS= read -p "$prompt" -r -s -n 1 char + do + if [[ $char == $'\0' ]] + then + break + fi + prompt='*' + password+="$char" + done + } + set_shell() { @@ -90,9 +96,11 @@ set_timezone_and_locales() STATE=$(echo ${RES} | cut -d"," -f2) CCODE=$(echo ${RES} | cut -d"," -f3 | xargs) KEYBOARD="${CCODE,,}" - LOCALES=$(grep territory /usr/share/i18n/locales/* | grep "$CCODE" | cut -d ":" -f 1 | cut -d "/" -f 6 | xargs -I{} grep {} /usr/share/i18n/SUPPORTED | grep "\.UTF-8" | cut -d " " -f 1) + LOCALES=$(grep territory /usr/share/i18n/locales/* | grep "$CCODE" | cut -d ":" -f 1 | cut -d "/" -f 6 | \ + xargs -I{} grep {} /usr/share/i18n/SUPPORTED | grep "\.UTF-8" | cut -d " " -f 1) # UTF8 is not present everywhere so check again in case it returns empty value - [[ -z "$LOCALES" ]] && LOCALES=$(grep territory /usr/share/i18n/locales/* | grep "$CCODE" | cut -d ":" -f 1 | cut -d "/" -f 6 | xargs -I{} grep {} /usr/share/i18n/SUPPORTED | cut -d " " -f 1) + [[ -z "$LOCALES" ]] && LOCALES=$(grep territory /usr/share/i18n/locales/* | grep "$CCODE" | cut -d ":" -f 1 | cut -d "/" -f 6 | \ + xargs -I{} grep {} /usr/share/i18n/SUPPORTED | cut -d " " -f 1) echo -e "Detected timezone: \x1B[92m$TZDATA\x1B[0m" echo "" read -n1 -s -r -p "Set user language based on your location? [Y/n] " response @@ -154,6 +162,7 @@ set_timezone_and_locales() + add_profile_sync_settings() { /usr/bin/psd >/dev/null 2>&1 @@ -178,6 +187,7 @@ add_profile_sync_settings() + add_user() { read -t 0 temp @@ -197,12 +207,13 @@ add_user() read_password "Repeat" second_input=$password echo "" - if [[ $first_input == $second_input ]]; then - result="$(cracklib-check <<<"$password")" - okay="$(awk -F': ' '{ print $2}' <<<"$result")" - if [[ "$okay" == "OK" ]]; then + if [[ $first_input == $second_input ]]; then + result="$(cracklib-check <<<"$password")" + okay="$(awk -F': ' '{ print $2}' <<<"$result")" + if [[ "$okay" == "OK" ]]; then echo -e "" read -e -p "Please provide your real name: " -i "${RealUserName^}" RealName + adduser --quiet --disabled-password --home /home/"$RealUserName" --gecos "$RealName" "$RealUserName" (echo $first_input;echo $second_input;) | passwd "$RealUserName" >/dev/null 2>&1 for additionalgroup in sudo netdev audio video disk tty users games dialout plugdev input bluetooth systemd-journal ssh; do @@ -225,14 +236,14 @@ add_user() touch /home/${RealUserName}/.activate_psd chown $RealUserName:$RealUserName /home/${RealUserName}/.activate_psd fi - break + break else - echo -e "Rejected - \e[0;31m$okay.\x1B[0m Try again." - fi - elif [[ -n $password ]]; then - echo -e "Rejected - \e[0;31mpasswords do not match.\x1B[0m Try again." - fi - done + echo -e "Rejected - \e[0;31m$okay.\x1B[0m Try again." + fi + elif [[ -n $password ]]; then + echo -e "Rejected - \e[0;31mpasswords do not match.\x1B[0m Try again." + fi + done } @@ -242,8 +253,9 @@ if [[ -f /root/.not_logged_in_yet && -n $(tty) ]]; then rm -f /etc/systemd/system/serial-getty@.service.d/override.conf systemctl daemon-reload - # detect lightdm + # detect display manager desktop_lightdm=$(dpkg-query -W -f='${db:Status-Abbrev}\n' lightdm 2>/dev/null) + desktop_gdm3=$(dpkg-query -W -f='${db:Status-Abbrev}\n' gdm3 2>/dev/null) if [ "$IMAGE_TYPE" != "nightly" ]; then if [ "$BRANCH" == "dev" ]; then @@ -328,30 +340,87 @@ if [[ -f /root/.not_logged_in_yet && -n $(tty) ]]; then user-session=xfce EOF + # select gnome session (has to be first or it breaks budgie/cinnamon desktop autologin and user-session) + [[ -x $(which gnome-session) ]] && sed -i "s/user-session.*/user-session=ubuntu/" /etc/lightdm/lightdm.conf.d/11-armbian.conf + [[ -x $(which gnome-session) ]] && sed -i "s/user-session.*/user-session=ubuntu/" /etc/lightdm/lightdm.conf.d/22-armbian-autologin.conf + + # select budgie session + [[ -x $(which budgie-desktop) ]] && sed -i "s/user-session.*/user-session=budgie-desktop/" /etc/lightdm/lightdm.conf.d/11-armbian.conf + [[ -x $(which budgie-desktop) ]] && sed -i "s/user-session.*/user-session=budgie-desktop/" /etc/lightdm/lightdm.conf.d/22-armbian-autologin.conf + + # select deepin session + [[ -x $(which deepin-wm) ]] && sed -i "s/user-session.*/user-session=deepin/" /etc/lightdm/lightdm.conf.d/11-armbian.conf + [[ -x $(which deepin-wm) ]] && sed -i "s/user-session.*/user-session=deepin/" /etc/lightdm/lightdm.conf.d/22-armbian-autologin.conf + + # select cinnamon session + [[ -x $(which cinnamon) ]] && sed -i "s/user-session.*/user-session=cinnamon/" /etc/lightdm/lightdm.conf.d/11-armbian.conf + [[ -x $(which cinnamon) ]] && sed -i "s/user-session.*/user-session=cinnamon/" /etc/lightdm/lightdm.conf.d/22-armbian-autologin.conf + + # select mate session + [[ -x $(which mate-wm) ]] && sed -i "s/user-session.*/user-session=mate/" /etc/lightdm/lightdm.conf.d/11-armbian.conf + [[ -x $(which mate-wm) ]] && sed -i "s/user-session.*/user-session=mate/" /etc/lightdm/lightdm.conf.d/22-armbian-autologin.conf + ln -sf /lib/systemd/system/lightdm.service /etc/systemd/system/display-manager.service - if [[ -f /var/run/resize2fs-reboot ]]; then - # Let the user reboot now otherwise start desktop environment - printf "\n\n\e[0;91mWarning: a reboot is needed to finish resizing the filesystem \x1B[0m \n" - printf "\e[0;91mPlease reboot the system now \x1B[0m \n\n" - elif [ -z "$ConfigureDisplay" ] || [ "$ConfigureDisplay" = "n" ] || [ "$ConfigureDisplay" = "N" ]; then - echo -e "\n\e[1m\e[39mNow starting desktop environment...\x1B[0m\n" - sleep 1 - service lightdm start 2>/dev/null - if [ -f /root/.desktop_autologin ]; then - rm /root/.desktop_autologin - else - systemctl -q enable armbian-disable-autologin.timer - systemctl start armbian-disable-autologin.timer + + if [[ -f /var/run/resize2fs-reboot ]]; then + # Let the user reboot now otherwise start desktop environment + printf "\n\n\e[0;91mWarning: a reboot is needed to finish resizing the filesystem \x1B[0m \n" + printf "\e[0;91mPlease reboot the system now \x1B[0m \n\n" + elif [ -z "$ConfigureDisplay" ] || [ "$ConfigureDisplay" = "n" ] || [ "$ConfigureDisplay" = "N" ]; then + echo -e "\n\e[1m\e[39mNow starting desktop environment...\x1B[0m\n" + sleep 1 + service lightdm start 2>/dev/null + if [ -f /root/.desktop_autologin ]; then + rm /root/.desktop_autologin + else + systemctl -q enable armbian-disable-autologin.timer + systemctl start armbian-disable-autologin.timer + fi + # logout if logged at console + [[ -n $(who -la | grep root | grep tty1) ]] && exit 1 fi - # logout if logged at console - [[ -n $(who -la | grep root | grep tty1) ]] && exit 1 - fi + + elif [ -n "$desktop_gdm3" ] && [ -n "$RealName" ] ; then + + # 1st run goes without login + mkdir -p /etc/gdm3 + cat <<-EOF > /etc/gdm3/custom.conf + [daemon] + AutomaticLoginEnable = true + AutomaticLogin = $RealUserName + EOF + + ln -sf /lib/systemd/system/gdm3.service /etc/systemd/system/display-manager.service + + if [[ -f /var/run/resize2fs-reboot ]]; then + + # Let the user reboot now otherwise start desktop environment + printf "\n\n\e[0;91mWarning: a reboot is needed to finish resizing the filesystem \x1B[0m \n" + printf "\e[0;91mPlease reboot the system now \x1B[0m \n\n" + + elif [ -z "$ConfigureDisplay" ] || [ "$ConfigureDisplay" = "n" ] || [ "$ConfigureDisplay" = "N" ]; then + + echo -e "\n\e[1m\e[39mNow starting desktop environment...\x1B[0m\n" + sleep 1 + service gdm3 start 2>/dev/null + if [ -f /root/.desktop_autologin ]; then + rm /root/.desktop_autologin + else + (sleep 20; sed -i "s/AutomaticLoginEnable.*/AutomaticLoginEnable = false/" /etc/gdm3/custom.conf) & + fi + # logout if logged at console + [[ -n $(who -la | grep root | grep tty1) ]] && exit 1 + + fi + else + # Display reboot recommendation if necessary if [[ -f /var/run/resize2fs-reboot ]]; then printf "\n\n\e[0;91mWarning: a reboot is needed to finish resizing the filesystem \x1B[0m \n" printf "\e[0;91mPlease reboot the system now \x1B[0m \n\n" fi + fi fi diff --git a/packages/bsp/rk3399/xorg.conf b/packages/bsp/rk3399/xorg.conf new file mode 100644 index 000000000..8dc42e545 --- /dev/null +++ b/packages/bsp/rk3399/xorg.conf @@ -0,0 +1,24 @@ +Section "Device" + Identifier "Rockchip Graphics" + + ## Use armsoc driver + # Driver "armsoc" + ## End armsoc configuration + + ## Use modesetting and glamor + Driver "modesetting" + Option "AccelMethod" "glamor" ### "glamor" to enable 3D acceleration, "none" to disable. + Option "DRI" "2" + Option "Dri2Vsync" "true" + Option "TripleBuffer" "True" + ## End glamor configuration + + EndSection + + Section "Screen" + Identifier "Default Screen" + SubSection "Display" + Depth 24 + Modes "1920x1080" "1280x1024" "1024x768" "800x600" + EndSubSection + EndSection diff --git a/patch/kernel/rockchip-current/1007-RK3288-DTSI-rk3288-Add-missing-SPI2-pinctrl.patch b/patch/kernel/rockchip-current/1004-RK3288-DTSI-rk3288-Add-missing-SPI2-pinctrl.patch similarity index 100% rename from patch/kernel/rockchip-current/1007-RK3288-DTSI-rk3288-Add-missing-SPI2-pinctrl.patch rename to patch/kernel/rockchip-current/1004-RK3288-DTSI-rk3288-Add-missing-SPI2-pinctrl.patch diff --git a/patch/kernel/rockchip-current/1010-ARM-DTSI-rk3288-Adding-missing-EDP-power-domain.patch b/patch/kernel/rockchip-current/1005-ARM-DTSI-rk3288-Adding-missing-EDP-power-domain.patch similarity index 100% rename from patch/kernel/rockchip-current/1010-ARM-DTSI-rk3288-Adding-missing-EDP-power-domain.patch rename to patch/kernel/rockchip-current/1005-ARM-DTSI-rk3288-Adding-missing-EDP-power-domain.patch diff --git a/patch/kernel/rockchip-current/1012-ARM-DTSI-rk3288-Fixed-the-SPDIF-node-address.patch b/patch/kernel/rockchip-current/1006-ARM-DTSI-rk3288-Fixed-the-SPDIF-node-address.patch similarity index 100% rename from patch/kernel/rockchip-current/1012-ARM-DTSI-rk3288-Fixed-the-SPDIF-node-address.patch rename to patch/kernel/rockchip-current/1006-ARM-DTSI-rk3288-Fixed-the-SPDIF-node-address.patch diff --git a/patch/kernel/rockchip-current/1013-ARM-DTS-rk3288-tinker-Enabling-SDIO-and-Wifi.patch b/patch/kernel/rockchip-current/1007-ARM-DTS-rk3288-tinker-Enabling-SDIO-and-Wifi.patch similarity index 100% rename from patch/kernel/rockchip-current/1013-ARM-DTS-rk3288-tinker-Enabling-SDIO-and-Wifi.patch rename to patch/kernel/rockchip-current/1007-ARM-DTS-rk3288-tinker-Enabling-SDIO-and-Wifi.patch diff --git a/patch/kernel/rockchip-current/1014-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch b/patch/kernel/rockchip-current/1008-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch similarity index 100% rename from patch/kernel/rockchip-current/1014-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch rename to patch/kernel/rockchip-current/1008-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch diff --git a/patch/kernel/rockchip-current/1015-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch b/patch/kernel/rockchip-current/1009-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch similarity index 100% rename from patch/kernel/rockchip-current/1015-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch rename to patch/kernel/rockchip-current/1009-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch diff --git a/patch/kernel/rockchip-current/1017-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch b/patch/kernel/rockchip-current/1010-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch similarity index 100% rename from patch/kernel/rockchip-current/1017-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch rename to patch/kernel/rockchip-current/1010-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch diff --git a/patch/kernel/rockchip-current/1018-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch b/patch/kernel/rockchip-current/1011-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch similarity index 100% rename from patch/kernel/rockchip-current/1018-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch rename to patch/kernel/rockchip-current/1011-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch diff --git a/patch/kernel/rockchip-current/1019-ARM-DTSI-rk3288-tinker-Defining-SDMMC-properties.patch b/patch/kernel/rockchip-current/1012-ARM-DTSI-rk3288-tinker-Defining-SDMMC-properties.patch similarity index 100% rename from patch/kernel/rockchip-current/1019-ARM-DTSI-rk3288-tinker-Defining-SDMMC-properties.patch rename to patch/kernel/rockchip-current/1012-ARM-DTSI-rk3288-tinker-Defining-SDMMC-properties.patch diff --git a/patch/kernel/rockchip-current/1020-ARM-DTSI-rk3288-Set-the-VPU-MMU-power-domains.patch b/patch/kernel/rockchip-current/1013-ARM-DTSI-rk3288-Set-the-VPU-MMU-power-domains.patch similarity index 100% rename from patch/kernel/rockchip-current/1020-ARM-DTSI-rk3288-Set-the-VPU-MMU-power-domains.patch rename to patch/kernel/rockchip-current/1013-ARM-DTSI-rk3288-Set-the-VPU-MMU-power-domains.patch diff --git a/patch/kernel/rockchip-current/1023-dts-rk3288-support-for-dedicating-npll-to-a-vop.patch b/patch/kernel/rockchip-current/1014-dts-rk3288-support-for-dedicating-npll-to-a-vop.patch similarity index 100% rename from patch/kernel/rockchip-current/1023-dts-rk3288-support-for-dedicating-npll-to-a-vop.patch rename to patch/kernel/rockchip-current/1014-dts-rk3288-support-for-dedicating-npll-to-a-vop.patch diff --git a/patch/kernel/rockchip-current/1024-arm-dts-veyron-Added-a-flag-to-disable-cache-flush-d.patch b/patch/kernel/rockchip-current/1015-arm-dts-veyron-Added-a-flag-to-disable-cache-flush-d.patch similarity index 100% rename from patch/kernel/rockchip-current/1024-arm-dts-veyron-Added-a-flag-to-disable-cache-flush-d.patch rename to patch/kernel/rockchip-current/1015-arm-dts-veyron-Added-a-flag-to-disable-cache-flush-d.patch diff --git a/patch/kernel/rockchip-current/1025-ARM-DTSI-rk3288-disable-serial-dmas.patch b/patch/kernel/rockchip-current/1016-ARM-DTSI-rk3288-disable-serial-dmas.patch similarity index 100% rename from patch/kernel/rockchip-current/1025-ARM-DTSI-rk3288-disable-serial-dmas.patch rename to patch/kernel/rockchip-current/1016-ARM-DTSI-rk3288-disable-serial-dmas.patch