update calamares files and infra.py and inflate_bubble.py to improve the calamares files copy for deb, dev, debld, devld and ignore the other bases
This commit is contained in:
parent
ac604b12c0
commit
0f667914dc
Binary file not shown.
|
@ -0,0 +1,21 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=Install Peppermint
|
||||
Name[bg]=Инсталиране на Peppermint
|
||||
Name[es]=Instale Peppermint
|
||||
Name[fr]= Installer Peppermint
|
||||
Name[hu]=Telepítse a Peppermint
|
||||
Name[it]=Installare Peppermint
|
||||
Name[ja]=インストール Peppermint
|
||||
Name[pt]=Instalar Peppermint
|
||||
Name[pt_BR]=Instalar Peppermint
|
||||
Name[ru]=Установить Peppermint
|
||||
Exec=install-peppermint
|
||||
Icon=install-debian.png
|
||||
Terminal=false
|
||||
Categories=Settings
|
||||
Comment=Calamares — Installer for Peppermint Live
|
||||
Keywords=calamares;system;install;peppermint;installer
|
||||
StartupNotify=True
|
||||
StartupWMClass=calamares
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
componentName: peppermint
|
||||
welcomeStyleCalamares: false
|
||||
welcomeExpandingLogo: true
|
||||
windowExpanding: normal
|
||||
windowSize: 700,450
|
||||
windowPlacement: center
|
||||
|
||||
strings:
|
||||
productName: Peppermint
|
||||
shortProductName: Peppermint
|
||||
version: 00
|
||||
shortVersion: 00
|
||||
versionedName: Peppermint
|
||||
shortVersionedName: Peppermint
|
||||
bootloaderEntryName: Peppermint
|
||||
productUrl: https://peppermintos.com
|
||||
supportUrl: https://sourceforge.net/p/peppermintos/pepos/
|
||||
releaseNotesUrl: https://peppermintos.com
|
||||
|
||||
images:
|
||||
productLogo: "pep-logo.png"
|
||||
productIcon: "pep-logo.png"
|
||||
productWelcome: "welcome.png"
|
||||
|
||||
slideshow: "show.qml"
|
||||
|
||||
style:
|
||||
sidebarBackground: "#C0C0C0"
|
||||
sidebarText: "#000000"
|
||||
sidebarTextSelect: "#ffffff"
|
||||
sidebarTextHighlight: "#f62817"
|
||||
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
|
@ -0,0 +1,40 @@
|
|||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018-2019, Jonathan Carter <jcc@debian.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, or (at your option) any later version.
|
||||
*
|
||||
* Calamares is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import QtQuick 2.0;
|
||||
import calamares.slideshow 1.0;
|
||||
|
||||
Presentation
|
||||
{
|
||||
id: presentation
|
||||
Timer {
|
||||
interval: 20000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: presentation.goToNextSlide()
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: background5
|
||||
source: "s5.png"
|
||||
width: 2000; height: 2000
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,163 @@
|
|||
/*########Current Calamares Styles##########*/
|
||||
/* These "Q's" are master styles for overall colours */
|
||||
#mainApp {background-color: #C0C0C0;
|
||||
font-family: Cantarell;
|
||||
font-weight: bold;
|
||||
color: #000000
|
||||
}
|
||||
|
||||
/* Set the entire Font and Background color */
|
||||
QWidget { color: #000000 ;
|
||||
background-color: #C0C0C0;
|
||||
font-family: Cantarell;
|
||||
font: 14px; }
|
||||
|
||||
#globalStorageTab { background-color: #C0C0C0 }
|
||||
|
||||
/* Set Drop Down Font and Background color */
|
||||
QComboBox { font: 14px ;
|
||||
color: #000000 ;
|
||||
background-color: #ffffff ;
|
||||
padding: 2px ;
|
||||
border-radius: 10px
|
||||
}
|
||||
|
||||
#languageWidget { font: 14px ;
|
||||
color: #111111 ;
|
||||
background-color: #ffffff ;
|
||||
text-align: center ;
|
||||
border-radius: 6px
|
||||
}
|
||||
|
||||
/* Set the inline Text box edit Font and Background color */
|
||||
QLineEdit { font: 14px;
|
||||
color: #111111;
|
||||
background-color: #ffffff;
|
||||
border-color: #000000
|
||||
}
|
||||
|
||||
/* Set List box Font and Background color */
|
||||
QListView { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
alternate-background-color: #C0C0C0;
|
||||
padding: 2px;
|
||||
border-radius: 4px
|
||||
}
|
||||
|
||||
#layoutSelector {}
|
||||
|
||||
/* Set the TreeView Font and Background color */
|
||||
QTreeView { color: #000000;
|
||||
background-color: #ffffff;
|
||||
border-radius: 14px
|
||||
}
|
||||
|
||||
/* Set buttons Font and Background color */
|
||||
QPushButton { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #C0C0C0;
|
||||
border-color: #000000;
|
||||
border-width: 10px;}
|
||||
|
||||
#view-button-back { font: 14px;
|
||||
background-color: #C0C0C0
|
||||
}
|
||||
#view-button-back:hover { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
border-color: #000000
|
||||
}
|
||||
#view-button-next { font: 14px;
|
||||
background-color: #C0C0C0;
|
||||
border-color: #000000
|
||||
}
|
||||
#view-button-next:hover { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
border-color: #000000
|
||||
}
|
||||
#view-button-cancel { font: 14px;
|
||||
background-color: #C0C0C0;
|
||||
border-color: #000000
|
||||
}
|
||||
#view-button-cancel:hover { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
border-color: #000000;
|
||||
}
|
||||
#view-button-install { font: 14px;
|
||||
color: #C0C0C0;
|
||||
border-color: #000000
|
||||
}
|
||||
#view-button-done { font: 14px;
|
||||
color: #000000;
|
||||
border-color: #000000
|
||||
}
|
||||
|
||||
/* Set the color in the keyboard selection */
|
||||
#layoutSelector { selection-background-color: #F62817 }
|
||||
#variantSelector { selection-background-color: #F62817 }
|
||||
|
||||
/* Set the CheckBox size and Background color */
|
||||
QCheckBox { color: #000000;
|
||||
background-color: #C0C0C0;
|
||||
border-width: 2px;
|
||||
border-color: #000000
|
||||
}
|
||||
|
||||
m_encryptCheckBox { font: 14px;
|
||||
color: #F62817;
|
||||
background-color: #C0C0C0;
|
||||
border-radius: 4px;
|
||||
padding: 6px
|
||||
}
|
||||
|
||||
checkBoxDoAutoLogin { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #C0C0C0;
|
||||
padding: 4px
|
||||
}
|
||||
|
||||
restartCheckBox { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #C0C0C0;
|
||||
border-color: #000000;
|
||||
border-radius: 8px;
|
||||
height: 16px;
|
||||
width: 100px;
|
||||
padding: 4px
|
||||
}
|
||||
|
||||
#QCheckBox#restartCheckBox::indicator:checked { image: url(/usr/share/pixmaps/ckm.png) }
|
||||
|
||||
/* Set the color when selected */
|
||||
QRadioButton { color: #000000;
|
||||
background-color: #C0C0C0;
|
||||
padding: 4px;
|
||||
border-radius: 4px
|
||||
}
|
||||
QComboBoxPrivateContainer { background-color: #ffffff }
|
||||
QComboBoxListView { background-color: #ffffff }
|
||||
qt_scrollarea_hcontainer { background-color: #ffffff }
|
||||
qt_scrollarea_vcontainer { background-color: #ffffff }
|
||||
QRadioButton::indicator { width: 18px ; height: 18px }
|
||||
QRadioButton::indicator::checked { image: url(/usr/share/pixmaps/peppermint.png) }
|
||||
QRadioButton::indicator::checked:hover { image: url(/usr/share/pixmaps/peppermint-fm-20.png) }
|
||||
QRadioButton::indicator::unchecked:hover { image: url(/usr/share/pixmaps/peppermint-inst.png) }
|
||||
|
||||
/* Set the tip Font and Background color */
|
||||
QToolTip { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
padding: 4px;
|
||||
border-radius: 4px
|
||||
}
|
||||
|
||||
/* Set the Progress Bar alignment and load color */
|
||||
QProgressBar { text-align: center }
|
||||
QProgressBar::chunk { background-color: #F62817 }
|
||||
|
||||
#debugButton {font: }
|
||||
#sidebarMenuApp{ background-color: #C0C0C0 }
|
||||
#tabWidget { background-color: #C0C0C0 }
|
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
|
@ -0,0 +1,54 @@
|
|||
# Bootloader configuration. The bootloader is installed to allow
|
||||
# the system to start (and pick one of the installed operating
|
||||
# systems to run).
|
||||
---
|
||||
# Define which bootloader you want to use for EFI installations
|
||||
# Possible options are 'grub', 'sb-shim' and 'systemd-boot'.
|
||||
efiBootLoader: "grub"
|
||||
|
||||
# systemd-boot configuration files settings, set kernel and initramfs file names
|
||||
# and amount of time before default selection boots
|
||||
kernel: "/vmlinuz-linux"
|
||||
img: "/initramfs-linux.img"
|
||||
fallback: "/initramfs-linux-fallback.img"
|
||||
timeout: "10"
|
||||
|
||||
# Optionally set the menu entry name and kernel name to use in systemd-boot.
|
||||
# If not specified here, these settings will be taken from branding.desc.
|
||||
#
|
||||
# bootloaderEntryName: "Generic GNU/Linux"
|
||||
# kernelLine: ", with Stable-Kernel"
|
||||
# fallbackKernelLine: ", with Stable-Kernel (fallback initramfs)"
|
||||
|
||||
# GRUB 2 binary names and boot directory
|
||||
# Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names.
|
||||
# These names are also used when using sb-shim, since that needs some
|
||||
# GRUB functionality (notably grub-probe) to work. As needed, you may use
|
||||
# complete paths like `/usr/bin/efibootmgr` for the executables.
|
||||
#
|
||||
grubInstall: "grub-install"
|
||||
grubMkconfig: "grub-mkconfig"
|
||||
grubCfg: "/boot/grub/grub.cfg"
|
||||
grubProbe: "grub-probe"
|
||||
efiBootMgr: "efibootmgr"
|
||||
|
||||
# Optionally set the bootloader ID to use for EFI. This is passed to
|
||||
# grub-install --bootloader-id.
|
||||
#
|
||||
# If not set here, the value from bootloaderEntryName from branding.desc
|
||||
# is used, with problematic characters (space and slash) replaced.
|
||||
#
|
||||
# The ID is also used as a directory name within the EFI environment,
|
||||
# and the bootloader is copied from /boot/efi/EFI/<dirname>/ . When
|
||||
# setting the option here, keep in mind that the name is sanitized
|
||||
# (problematic characters, see above, are replaced).
|
||||
#
|
||||
efiBootloaderId: "peppermint"
|
||||
|
||||
# Optionally install a copy of the GRUB EFI bootloader as the EFI
|
||||
# fallback loader (either bootia32.efi or bootx64.efi depending on
|
||||
# the system). This may be needed on certain systems (Intel DH87MC
|
||||
# seems to be the only one). If you set this to false, take care
|
||||
# to add another module to optionally install the fallback on those
|
||||
# boards that need it.
|
||||
installEFIFallback: true
|
|
@ -0,0 +1,28 @@
|
|||
# Configure one or more display managers (e.g. SDDM)
|
||||
# with a "best effort" approach.
|
||||
---
|
||||
#The DM module attempts to set up all the DMs found in this list, in that precise order.
|
||||
#It also sets up autologin, if the feature is enabled in globalstorage.
|
||||
#The displaymanagers list can also be set in globalstorage, and in that case it overrides anything set up here.
|
||||
displaymanagers:
|
||||
- slim
|
||||
- sddm
|
||||
- lightdm
|
||||
- gdm
|
||||
- mdm
|
||||
- lxdm
|
||||
- kdm
|
||||
|
||||
#Enable the following settings to force a desktop environment in your displaymanager configuration file:
|
||||
#defaultDesktopEnvironment:
|
||||
# executable: "startkde"
|
||||
# desktopFile: "plasma"
|
||||
|
||||
#If true, try to ensure that the user, group, /var directory etc. for the
|
||||
#display manager are set up correctly. This is normally done by the distribution
|
||||
#packages, and best left to them. Therefore, it is disabled by default.
|
||||
basicSetup: false
|
||||
|
||||
#If true, setup autologin for openSUSE. This only makes sense on openSUSE
|
||||
#derivatives or other systems where /etc/sysconfig/displaymanager exists.
|
||||
sysconfigSetup: false
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
restartNowEnabled: true
|
||||
restartNowChecked: true
|
||||
restartNowCommand: "systemctl -i reboot"
|
|
@ -0,0 +1,27 @@
|
|||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configure fstab options
|
||||
#
|
||||
---
|
||||
mountOptions:
|
||||
default: defaults,noatime,nodiscard
|
||||
btrfs: defaults,noatime,noautodefrag,nodiscard
|
||||
btrfs_swap: defaults
|
||||
swap: defaults
|
||||
|
||||
crypttabOptions: luks,keyscript=/bin/cat
|
||||
|
||||
efiMountOptions: umask=0077
|
||||
|
||||
ssdExtraMountOptions:
|
||||
btrfs: ssd
|
||||
|
||||
tmpOptions:
|
||||
default:
|
||||
tmpfs: false
|
||||
options: ""
|
||||
ssd:
|
||||
tmpfs: true
|
||||
options: "defaults,noatime,mode=1777"
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
localeGenPath: "/etc/locale.gen"
|
||||
geoip:
|
||||
style: "json"
|
||||
url: "https://ipapi.co/json"
|
||||
selector: "timezone"
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# Writes an openswap configuration with LUKS settings to the given path
|
||||
---
|
||||
# Path of the configuration file to write (in the target system)
|
||||
configFilePath: /etc/openswap.conf
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
# Whether to create /etc/machine-id for systemd.
|
||||
systemd: true
|
||||
# Whether to create /var/lib/dbus/machine-id for D-Bus.
|
||||
dbus: true
|
||||
# Whether /var/lib/dbus/machine-id should be a symlink to /etc/machine-id
|
||||
# (ignored if dbus is false, or if there is no /etc/machine-id to point to).
|
||||
symlink: true
|
||||
# Whether to copy entropy from the host
|
||||
entropy-copy: true
|
||||
# Which files to write (paths in the target)
|
||||
entropy-files:
|
||||
- /var/lib/urandom/random-seed
|
||||
- /var/lib/systemd/random-seed
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Mount filesystems in the target (generally, before treating the
|
||||
# target as a usable chroot / "live" system).
|
||||
---
|
||||
|
||||
extraMounts:
|
||||
- device: proc
|
||||
fs: proc
|
||||
mountPoint: /proc
|
||||
- device: sys
|
||||
fs: sysfs
|
||||
mountPoint: /sys
|
||||
- device: /dev
|
||||
mountPoint: /dev
|
||||
options: bind
|
||||
- device: tmpfs
|
||||
fs: tmpfs
|
||||
mountPoint: /run
|
||||
- device: /run/udev
|
||||
mountPoint: /run/udev
|
||||
options: bind
|
||||
|
||||
extraMountsEfi:
|
||||
- device: efivarfs
|
||||
fs: efivarfs
|
||||
mountPoint: /sys/firmware/efi/efivars
|
||||
|
||||
btrfsSubvolumes:
|
||||
- mountPoint: /
|
||||
subvolume: /@
|
||||
- mountPoint: /home
|
||||
subvolume: /@home
|
||||
- mountPoint: /var/cache
|
||||
subvolume: /@cache
|
||||
- mountPoint: /var/log
|
||||
subvolume: /@log
|
|
@ -0,0 +1,7 @@
|
|||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration file for opendmcryptcfg module
|
||||
#
|
||||
---
|
||||
configFilePath: /etc/conf.d/dmcrypt
|
|
@ -0,0 +1,15 @@
|
|||
backend: apt
|
||||
|
||||
operations:
|
||||
- remove:
|
||||
- 'live-boot'
|
||||
- 'live-boot-doc'
|
||||
- 'live-config'
|
||||
- 'live-config-doc'
|
||||
- 'live-config-systemd'
|
||||
- 'live-config-systemd'
|
||||
- 'live-tools'
|
||||
- 'live-task-localisation'
|
||||
- 'live-task-recommended'
|
||||
- 'calamares-settings-debian'
|
||||
- 'calamares'
|
|
@ -0,0 +1,17 @@
|
|||
efiSystemPartition: "/boot/efi"
|
||||
efiSystemPartitionSize: 300M
|
||||
efiSystemPartitionName: EFI
|
||||
userSwapChoices:
|
||||
- none # Create no swap, use no swap
|
||||
- small # Up to 4GB
|
||||
- suspend # At least main memory size
|
||||
- file # To swap file instead of partition
|
||||
swapPartitionName: SWAP
|
||||
drawNestedPartitions: false
|
||||
alwaysShowPartitionLabels: true
|
||||
allowManualPartitioning: true
|
||||
initialPartitioningChoice: erase
|
||||
initialSwapChoice: none
|
||||
defaultFileSystemType: "ext4"
|
||||
availableFileSystemTypes: ["ext4","btrfs", "f2fs","xfs"]
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Systemd services manipulation.
|
||||
#
|
||||
# This module can enable services, timers and targets for systemd
|
||||
# (if packaging doesn't already do that). It can also
|
||||
# disable services and targets as well as mask units.
|
||||
|
||||
timers:
|
||||
- name: "fstrim"
|
||||
mandatory: false
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
unpack:
|
||||
- source: "/run/live/medium/live/filesystem.squashfs"
|
||||
sourcefs: "squashfs"
|
||||
destination: ""
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
userGroup: users
|
||||
defaultGroups:
|
||||
- cdrom
|
||||
- floppy
|
||||
- sudo
|
||||
- audio
|
||||
- dip
|
||||
- video
|
||||
- plugdev
|
||||
- netdev
|
||||
- lpadmin
|
||||
- scanner
|
||||
- bluetooth
|
||||
autologinGroup: autologin
|
||||
sudoersGroup: sudo
|
||||
setRootPassword: false
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
showSupportUrl: false
|
||||
showKnownIssuesUrl: false
|
||||
showReleaseNotesUrl: false
|
||||
|
||||
requirements:
|
||||
requiredStorage: 10
|
||||
requiredRam: 1.0
|
||||
check:
|
||||
- storage
|
||||
- ram
|
||||
- power
|
||||
- root
|
||||
required:
|
||||
- storage
|
||||
- ram
|
||||
- root
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
type: "job"
|
||||
name: "grub-defaults"
|
||||
interface: "process"
|
||||
command: "/usr/sbin/grub-defaults"
|
||||
timeout: 600
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
type: "job"
|
||||
name: "update-system"
|
||||
interface: "process"
|
||||
command: "/usr/sbin/update-system"
|
||||
timeout: 600
|
|
@ -0,0 +1,10 @@
|
|||
# Launcher icons
|
||||
[org.gnome.shell]
|
||||
favorite-apps=['install-peppermint.desktop', 'Welcome.desktop', firefox-esr.desktop', 'libreoffice-writer.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'yelp.desktop']
|
||||
|
||||
# We don't want the screensaver to enable on the live media while installing
|
||||
[org.gnome.desktop.lockdown]
|
||||
disable-lock-screen=true
|
||||
|
||||
[org.gnome.desktop.session]
|
||||
idle-delay=0
|
|
@ -0,0 +1,35 @@
|
|||
#!/bin/sh
|
||||
# Creates an "Install Debian" icon on the live session tested with:
|
||||
# Xfce, LXDE, LXqt, Gnome, KDE, Mate, Cinnamon
|
||||
|
||||
# We query xdg-user-dir because the Desktop directory has different
|
||||
# names for different languages
|
||||
DESKTOP=$(xdg-user-dir DESKTOP)
|
||||
|
||||
# Create ~/Desktop just in case this runs before the xdg folder
|
||||
# creation script.
|
||||
mkdir -p $DESKTOP
|
||||
|
||||
# Among the Debian desktop environments, LXDE is the only one
|
||||
# that behaves completely different.
|
||||
if [ -f /usr/bin/lxsession ]; then
|
||||
echo "[Desktop Entry]" > $DESKTOP/calamares-install-peppermint.desktop
|
||||
echo "Type=Link" >> $DESKTOP/calamares-install-peppermint.desktop
|
||||
echo "Name=Install Debian" >> $DESKTOP/calamares-install-peppermint.desktop
|
||||
echo "Icon=install-debian" >> $DESKTOP/calamares-install-peppermint.desktop
|
||||
echo "URL=/usr/share/applications/calamares-install-peppermint.desktop" \
|
||||
>> $DESKTOP/calamares-install-peppermint.desktop
|
||||
else
|
||||
cp /usr/share/applications/calamares-install-peppermint.desktop $DESKTOP
|
||||
# Xfce needs this executable otherwise it complains, everything
|
||||
# else doesn't seem to care either way.
|
||||
chmod +x $DESKTOP/calamares-install-peppermint.desktop
|
||||
fi
|
||||
|
||||
# Set desktop launcher as trusted under gnome/xfce (See: #1037299)
|
||||
gio set --type=string ~/Desktop/calamares-install-peppermint.desktop \
|
||||
metadata::trusted true
|
||||
gio set --type=string ~/Desktop/calamares-install-peppermint.desktop \
|
||||
metadata::xfce-exe-checksum \
|
||||
"$(sha256sum ~/Desktop/calamares-install-peppermint.desktop | cut -f1 -d' ')"
|
||||
touch ~/Desktop/calamares-install-peppermint.desktop
|
|
@ -0,0 +1,48 @@
|
|||
#!/bin/bash
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
# Install luks utilities if needed.
|
||||
# Also, set secure permissions for the initramfs if we're configuring
|
||||
# full-disk-encryption. The initramfs is re-generated later in the
|
||||
# installation process so we only set the permissions snippet without
|
||||
# regenerating the initramfs right now:
|
||||
if [ "$(mount | grep $CHROOT" " | cut -c -16)" = "/dev/mapper/luks" ]; then
|
||||
echo "UMASK=0077" > $CHROOT/etc/initramfs-tools/conf.d/initramfs-permissions
|
||||
chroot $CHROOT apt-get -y install cryptsetup-initramfs cryptsetup keyutils
|
||||
fi
|
||||
|
||||
chroot $CHROOT apt-get update
|
||||
|
||||
echo "Running bootloader-config..."
|
||||
|
||||
# Detect architecture and install the appropriate GRUB package
|
||||
ARCH=$(uname -m)
|
||||
case "$ARCH" in
|
||||
x86_64)
|
||||
if [ -d /sys/firmware/efi/efivars ]; then
|
||||
echo " * Installing grub-efi (uefi)..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-amd64
|
||||
else
|
||||
echo " * Installing grub-pc (bios)..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc
|
||||
fi
|
||||
;;
|
||||
i686)
|
||||
echo " * Installing grub-efi-ia32 (uefi 32-bit)..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-ia32
|
||||
;;
|
||||
aarch64)
|
||||
echo " * Installing grub-efi-arm64 (uefi arm64)..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-arm64
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported architecture: $ARCH"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Re-enable os-prober:
|
||||
sed -i "s/#GRUB_DISABLE_OS_PROBER=false/# OS_PROBER re-enabled by Debian Calamares installation:\nGRUB_DISABLE_OS_PROBER=false/g" $CHROOT/etc/default/grub
|
||||
chroot $CHROOT /usr/sbin/update-grub
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2023 PeppermintOS Team (peppermintosteam@proton.me)
|
||||
|
||||
# This script configures grub defaults after Debian installation.
|
||||
|
||||
# Define CHROOT
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
# Sets GRUB configuration.
|
||||
# Writes the configuration to the /etc/default/grub file.
|
||||
# Updates the bootloader.
|
||||
|
||||
# Check if CHROOT is set
|
||||
if [ -z "$CHROOT" ]; then
|
||||
echo "CHROOT not set. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Defines the variables
|
||||
GRUB_DEFAULT=0
|
||||
GRUB_TIMEOUT=5
|
||||
GRUB_DISTRIBUTOR="Peppermint"
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
|
||||
GRUB_CMDLINE_LINUX=""
|
||||
GRUB_GFXMODE=1360x768
|
||||
GRUB_THEME="/boot/grub/themes/peppermint/theme.txt"
|
||||
GRUB_DISABLE_OS_PROBER=false
|
||||
|
||||
# GRUB configuration file path
|
||||
GRUB_CONFIG_FILE="$CHROOT/etc/default/grub"
|
||||
|
||||
# Modify the GRUB file
|
||||
sed -i "s/^GRUB_DEFAULT=.*/GRUB_DEFAULT=$GRUB_DEFAULT/" $GRUB_CONFIG_FILE
|
||||
sed -i "s/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=$GRUB_TIMEOUT/" $GRUB_CONFIG_FILE
|
||||
sed -i "s/^GRUB_DISTRIBUTOR=.*/GRUB_DISTRIBUTOR=\"$GRUB_DISTRIBUTOR\"/" $GRUB_CONFIG_FILE
|
||||
sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT=\"$GRUB_CMDLINE_LINUX_DEFAULT\"/" $GRUB_CONFIG_FILE
|
||||
sed -i "s/^GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=\"$GRUB_CMDLINE_LINUX\"/" $GRUB_CONFIG_FILE
|
||||
sed -i "s/^#GRUB_GFXMODE=.*/GRUB_GFXMODE=$GRUB_GFXMODE/" $GRUB_CONFIG_FILE
|
||||
# Add GRUB_THEME if it doesn't exist
|
||||
if ! grep -q "^GRUB_THEME=" $GRUB_CONFIG_FILE; then
|
||||
echo "GRUB_THEME=\"$GRUB_THEME\"" >> $GRUB_CONFIG_FILE
|
||||
else
|
||||
sed -i "s#^GRUB_THEME=.*#GRUB_THEME=\"$GRUB_THEME\"#" $GRUB_CONFIG_FILE
|
||||
fi
|
||||
sed -i "s/^#GRUB_DISABLE_OS_PROBER=.*/GRUB_DISABLE_OS_PROBER=$GRUB_DISABLE_OS_PROBER/" $GRUB_CONFIG_FILE
|
||||
|
||||
# Run update-grub after modifying the file
|
||||
chroot $CHROOT update-grub
|
||||
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
#!/bin/sh
|
||||
###
|
||||
# Wrapper for running calamares on Debian live media
|
||||
###
|
||||
|
||||
# Stale file left behind by live-build that messes with partitioning
|
||||
sudo mv /etc/fstab /etc/fstab.orig.calamares
|
||||
|
||||
# Allow Calamares to scale the window for hidpi displays
|
||||
# This is fixed in the Calamares 3.3.0 series, so we can remove this
|
||||
# once we switch to that
|
||||
# Upstream commit that will make this obsolete:
|
||||
# https://github.com/calamares/calamares/commit/e9f011b686a0982fb7828e8ac02a8e0784d3b11f
|
||||
# Upstream bug:
|
||||
# https://github.com/calamares/calamares/issues/1945
|
||||
# Debian bug:
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992162
|
||||
export QT_AUTO_SCREEN_SCALE_FACTOR=1
|
||||
|
||||
# Access control to run calamares as root for xwayland
|
||||
xhost +si:localuser:root
|
||||
pkexec calamares -d
|
||||
xhost -si:localuser:root
|
||||
|
||||
# Restore stale fstab, for what it's worth
|
||||
sudo mv /etc/fstab.orig.calamares /etc/fstab
|
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Apply updates to the system
|
||||
|
||||
# Function to update the system
|
||||
function update_system() {
|
||||
# Define CHROOT
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
# Verifying CHROOT
|
||||
if [ -z "$CHROOT" ]; then
|
||||
echo "Error: CHROOT is not set."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Updating the system..."
|
||||
|
||||
# Update the package list
|
||||
chroot $CHROOT /usr/bin/apt update
|
||||
|
||||
# Update installed packages
|
||||
chroot $CHROOT /usr/bin/apt upgrade -y
|
||||
|
||||
# Remove unnecessary packages
|
||||
chroot $CHROOT /usr/bin/apt autoremove -y
|
||||
|
||||
# Clean the APT cache
|
||||
chroot $CHROOT /usr/bin/apt clean
|
||||
|
||||
echo "System successfully updated!"
|
||||
}
|
||||
|
||||
# Run the function to update the system
|
||||
update_system
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
# Configuration file for Calamares
|
||||
# Syntax is YAML 1.2
|
||||
---
|
||||
|
||||
# "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules
|
||||
modules-search: [ local, /usr/lib/calamares/modules ]
|
||||
|
||||
# YAML: list of maps of string:string key-value pairs.
|
||||
instances:
|
||||
#- id: packages
|
||||
# module: netinstall
|
||||
# config: netinstall-packages.conf
|
||||
#- id: system
|
||||
# module: netinstall
|
||||
# config: netinstall-system.conf
|
||||
#- id: pkgs
|
||||
# module: netinstall
|
||||
# config: netinstall-pkgs.conf
|
||||
|
||||
|
||||
sequence:
|
||||
|
||||
# Phase 1 - prepare.
|
||||
# View modules are shown as UI pages, jobs from job modules
|
||||
# are executed immediately in the background.
|
||||
# Jobs should be executed sparingly (if at all) in this phase.
|
||||
- show:
|
||||
- welcome
|
||||
- locale
|
||||
- keyboard
|
||||
- partition
|
||||
# - netinstall@packages
|
||||
- users
|
||||
- summary
|
||||
|
||||
# Phase 2 - install.
|
||||
# View modules are not shown. Only the view modules shown
|
||||
# in the previous phase are allowed, their names should be
|
||||
# added here as placeholders to specify the order in which
|
||||
# view module jobs should be enqueued. Job modules are
|
||||
# also allowed.
|
||||
- exec:
|
||||
- partition
|
||||
- mount
|
||||
- unpackfs
|
||||
- sources-media
|
||||
- machineid
|
||||
- fstab
|
||||
- locale
|
||||
- keyboard
|
||||
- localecfg
|
||||
- users
|
||||
- displaymanager
|
||||
- networkcfg
|
||||
- hwclock
|
||||
- services-systemd
|
||||
- bootloader-config
|
||||
- grubcfg
|
||||
- bootloader
|
||||
- packages
|
||||
- luksbootkeyfile
|
||||
- luksopenswaphookcfg
|
||||
- plymouthcfg
|
||||
- initramfscfg
|
||||
- initramfs
|
||||
- sources-media-unmount
|
||||
- sources-final
|
||||
- update-system
|
||||
- grub-defaults
|
||||
- shellprocess
|
||||
- umount
|
||||
|
||||
# Phase 3 - postinstall.
|
||||
# View modules are shown as UI pages, jobs from job modules are
|
||||
# executed immediately in the background.
|
||||
# Jobs should be executed sparingly (if at all) in this phase.
|
||||
- show:
|
||||
- finished
|
||||
|
||||
# A branding component is a directory, either in
|
||||
# SHARE/calamares/branding or in /etc/calamares/branding
|
||||
# (the latter takes precedence). The directory must contain a
|
||||
# YAML file branding.desc which may reference additional resources
|
||||
# (such as images) as paths relative to the current directory.
|
||||
# Only the name of the branding component (directory) should be
|
||||
# specified here, Calamares then takes care of finding it and
|
||||
# loading the contents.
|
||||
branding: peppermint
|
||||
|
||||
# If this is set to true, Calamares will show an "Are you sure?" prompt right
|
||||
# before each execution phase, i.e. at points of no return. If this is set to
|
||||
# false, no prompt is shown. Default is false.
|
||||
#
|
||||
# YAML: boolean.
|
||||
prompt-install: false
|
||||
|
||||
# If this is set to true, Calamares will execute all target environment
|
||||
# commands in the current environment, without chroot. This setting should
|
||||
# only be used when setting up Calamares as a post-install configuration tool,
|
||||
# as opposed to a full operating system installer.
|
||||
#
|
||||
# Some official Calamares modules are not expected to function with this
|
||||
# setting. (e.g. partitioning seems like a bad idea, since that is expected to
|
||||
# have been done already)
|
||||
#
|
||||
# Default is false (for a normal installer).
|
||||
#
|
||||
# YAML: boolean.
|
||||
dont-chroot: false
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Writes the final sources.list file
|
||||
#
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
RELEASE="bookworm"
|
||||
|
||||
cat << EOF > $CHROOT/etc/apt/sources.list
|
||||
# This system was installed using PeppermintOS removable media
|
||||
# (e.g. netinst, live or single CD). The matching "deb cdrom"
|
||||
# entries were removed at the end of the installation process.
|
||||
# For information about how to configure apt package sources,
|
||||
# See https://wiki.debian.org/SourcesList for more information.
|
||||
|
||||
# Main Repo - main contrib non-free
|
||||
deb http://deb.debian.org/debian $RELEASE main main contrib non-free non-free-firmware
|
||||
deb-src http://deb.debian.org/debian $RELEASE main contrib non-free non-free-firmware
|
||||
|
||||
# Updates Repo - main contrib non-free
|
||||
deb http://deb.debian.org/debian $RELEASE-updates main contrib non-free non-free-firmware
|
||||
deb-src http://deb.debian.org/debian $RELEASE-updates main contrib non-free non-free-firmware
|
||||
|
||||
# Security Repo - main contrib non-free
|
||||
deb http://security.debian.org/debian-security/ $RELEASE-security main contrib non-free non-free-firmware
|
||||
deb-src http://security.debian.org/debian-security/ $RELEASE-security main contrib non-free non-free-firmware
|
||||
|
||||
# Backports allow you to install newer versions of software made available for this release
|
||||
deb http://deb.debian.org/debian $RELEASE-backports main contrib non-free non-free-firmware
|
||||
deb-src http://deb.debian.org/debian $RELEASE-backports main contrib non-free non-free-firmware
|
||||
|
||||
EOF
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/sh
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
MEDIUM_PATH="/run/live/medium"
|
||||
RELEASE="bookworm"
|
||||
|
||||
if [ "$1" = "-u" ]; then
|
||||
umount $CHROOT/$MEDIUM_PATH
|
||||
rm $CHROOT/etc/apt/sources.list.d/debian-live-media.list
|
||||
chroot $CHROOT apt-get update
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Remove the base sources, we will configure sources in a later phase
|
||||
rm -f $CHROOT/etc/apt/sources.list.d/base.list
|
||||
|
||||
mkdir -p $CHROOT/$MEDIUM_PATH
|
||||
mount --bind $MEDIUM_PATH $CHROOT/$MEDIUM_PATH
|
||||
echo "deb [trusted=yes] file:$MEDIUM_PATH $RELEASE main" > $CHROOT/etc/apt/sources.list.d/debian-live-media.list
|
||||
chroot $CHROOT apt-get update
|
||||
# Attempt safest way to remove cruft
|
||||
rmdir $CHROOT/run/live/medium
|
||||
rmdir $CHROOT/run/live
|
||||
|
||||
exit 0
|
|
@ -0,0 +1 @@
|
|||
../deb/applications
|
|
@ -0,0 +1 @@
|
|||
../deb/branding
|
|
@ -0,0 +1 @@
|
|||
../deb/conf
|
|
@ -0,0 +1 @@
|
|||
../deb/modules
|
|
@ -0,0 +1 @@
|
|||
../deb/schemas
|
|
@ -0,0 +1 @@
|
|||
../deb/scripts
|
|
@ -0,0 +1 @@
|
|||
../deb/settings
|
|
@ -0,0 +1 @@
|
|||
../deb/sources
|
|
@ -0,0 +1,21 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=Install Peppermint
|
||||
Name[bg]=Инсталиране на Peppermint
|
||||
Name[es]=Instale Peppermint
|
||||
Name[fr]= Installer Peppermint
|
||||
Name[hu]=Telepítse a Peppermint
|
||||
Name[it]=Installare Peppermint
|
||||
Name[ja]=インストール Peppermint
|
||||
Name[pt]=Instalar Peppermint
|
||||
Name[pt_BR]=Instalar Peppermint
|
||||
Name[ru]=Установить Peppermint
|
||||
Exec=install-peppermint
|
||||
Icon=install-debian.png
|
||||
Terminal=false
|
||||
Categories=Settings
|
||||
Comment=Calamares — Installer for Peppermint Live
|
||||
Keywords=calamares;system;install;peppermint;installer
|
||||
StartupNotify=True
|
||||
StartupWMClass=calamares
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
componentName: peppermint
|
||||
welcomeStyleCalamares: false
|
||||
welcomeExpandingLogo: true
|
||||
windowExpanding: normal
|
||||
windowSize: 700,450
|
||||
windowPlacement: center
|
||||
|
||||
strings:
|
||||
productName: Peppermint
|
||||
shortProductName: Peppermint
|
||||
version: 00
|
||||
shortVersion: 00
|
||||
versionedName: Peppermint
|
||||
shortVersionedName: Peppermint
|
||||
bootloaderEntryName: Peppermint
|
||||
productUrl: https://peppermintos.com
|
||||
supportUrl: https://sourceforge.net/p/peppermintos/pepos/
|
||||
releaseNotesUrl: https://peppermintos.com
|
||||
|
||||
images:
|
||||
productLogo: "pep-logo.png"
|
||||
productIcon: "pep-logo.png"
|
||||
productWelcome: "welcome.png"
|
||||
|
||||
slideshow: "show.qml"
|
||||
|
||||
style:
|
||||
sidebarBackground: "#C0C0C0"
|
||||
sidebarText: "#000000"
|
||||
sidebarTextSelect: "#ffffff"
|
||||
sidebarTextHighlight: "#f62817"
|
||||
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
|
@ -0,0 +1,40 @@
|
|||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018-2019, Jonathan Carter <jcc@debian.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, or (at your option) any later version.
|
||||
*
|
||||
* Calamares is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import QtQuick 2.0;
|
||||
import calamares.slideshow 1.0;
|
||||
|
||||
Presentation
|
||||
{
|
||||
id: presentation
|
||||
Timer {
|
||||
interval: 20000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: presentation.goToNextSlide()
|
||||
}
|
||||
Slide {
|
||||
Image {
|
||||
id: background5
|
||||
source: "s5.png"
|
||||
width: 2000; height: 2000
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,163 @@
|
|||
/*########Current Calamares Styles##########*/
|
||||
/* These "Q's" are master styles for overall colours */
|
||||
#mainApp {background-color: #C0C0C0;
|
||||
font-family: Cantarell;
|
||||
font-weight: bold;
|
||||
color: #000000
|
||||
}
|
||||
|
||||
/* Set the entire Font and Background color */
|
||||
QWidget { color: #000000 ;
|
||||
background-color: #C0C0C0;
|
||||
font-family: Cantarell;
|
||||
font: 14px; }
|
||||
|
||||
#globalStorageTab { background-color: #C0C0C0 }
|
||||
|
||||
/* Set Drop Down Font and Background color */
|
||||
QComboBox { font: 14px ;
|
||||
color: #000000 ;
|
||||
background-color: #ffffff ;
|
||||
padding: 2px ;
|
||||
border-radius: 10px
|
||||
}
|
||||
|
||||
#languageWidget { font: 14px ;
|
||||
color: #111111 ;
|
||||
background-color: #ffffff ;
|
||||
text-align: center ;
|
||||
border-radius: 6px
|
||||
}
|
||||
|
||||
/* Set the inline Text box edit Font and Background color */
|
||||
QLineEdit { font: 14px;
|
||||
color: #111111;
|
||||
background-color: #ffffff;
|
||||
border-color: #000000
|
||||
}
|
||||
|
||||
/* Set List box Font and Background color */
|
||||
QListView { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
alternate-background-color: #C0C0C0;
|
||||
padding: 2px;
|
||||
border-radius: 4px
|
||||
}
|
||||
|
||||
#layoutSelector {}
|
||||
|
||||
/* Set the TreeView Font and Background color */
|
||||
QTreeView { color: #000000;
|
||||
background-color: #ffffff;
|
||||
border-radius: 14px
|
||||
}
|
||||
|
||||
/* Set buttons Font and Background color */
|
||||
QPushButton { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #C0C0C0;
|
||||
border-color: #000000;
|
||||
border-width: 10px;}
|
||||
|
||||
#view-button-back { font: 14px;
|
||||
background-color: #C0C0C0
|
||||
}
|
||||
#view-button-back:hover { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
border-color: #000000
|
||||
}
|
||||
#view-button-next { font: 14px;
|
||||
background-color: #C0C0C0;
|
||||
border-color: #000000
|
||||
}
|
||||
#view-button-next:hover { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
border-color: #000000
|
||||
}
|
||||
#view-button-cancel { font: 14px;
|
||||
background-color: #C0C0C0;
|
||||
border-color: #000000
|
||||
}
|
||||
#view-button-cancel:hover { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
border-color: #000000;
|
||||
}
|
||||
#view-button-install { font: 14px;
|
||||
color: #C0C0C0;
|
||||
border-color: #000000
|
||||
}
|
||||
#view-button-done { font: 14px;
|
||||
color: #000000;
|
||||
border-color: #000000
|
||||
}
|
||||
|
||||
/* Set the color in the keyboard selection */
|
||||
#layoutSelector { selection-background-color: #F62817 }
|
||||
#variantSelector { selection-background-color: #F62817 }
|
||||
|
||||
/* Set the CheckBox size and Background color */
|
||||
QCheckBox { color: #000000;
|
||||
background-color: #C0C0C0;
|
||||
border-width: 2px;
|
||||
border-color: #000000
|
||||
}
|
||||
|
||||
m_encryptCheckBox { font: 14px;
|
||||
color: #F62817;
|
||||
background-color: #C0C0C0;
|
||||
border-radius: 4px;
|
||||
padding: 6px
|
||||
}
|
||||
|
||||
checkBoxDoAutoLogin { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #C0C0C0;
|
||||
padding: 4px
|
||||
}
|
||||
|
||||
restartCheckBox { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #C0C0C0;
|
||||
border-color: #000000;
|
||||
border-radius: 8px;
|
||||
height: 16px;
|
||||
width: 100px;
|
||||
padding: 4px
|
||||
}
|
||||
|
||||
#QCheckBox#restartCheckBox::indicator:checked { image: url(/usr/share/pixmaps/ckm.png) }
|
||||
|
||||
/* Set the color when selected */
|
||||
QRadioButton { color: #000000;
|
||||
background-color: #C0C0C0;
|
||||
padding: 4px;
|
||||
border-radius: 4px
|
||||
}
|
||||
QComboBoxPrivateContainer { background-color: #ffffff }
|
||||
QComboBoxListView { background-color: #ffffff }
|
||||
qt_scrollarea_hcontainer { background-color: #ffffff }
|
||||
qt_scrollarea_vcontainer { background-color: #ffffff }
|
||||
QRadioButton::indicator { width: 18px ; height: 18px }
|
||||
QRadioButton::indicator::checked { image: url(/usr/share/pixmaps/peppermint.png) }
|
||||
QRadioButton::indicator::checked:hover { image: url(/usr/share/pixmaps/peppermint-fm-20.png) }
|
||||
QRadioButton::indicator::unchecked:hover { image: url(/usr/share/pixmaps/peppermint-inst.png) }
|
||||
|
||||
/* Set the tip Font and Background color */
|
||||
QToolTip { font: 14px;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
padding: 4px;
|
||||
border-radius: 4px
|
||||
}
|
||||
|
||||
/* Set the Progress Bar alignment and load color */
|
||||
QProgressBar { text-align: center }
|
||||
QProgressBar::chunk { background-color: #F62817 }
|
||||
|
||||
#debugButton {font: }
|
||||
#sidebarMenuApp{ background-color: #C0C0C0 }
|
||||
#tabWidget { background-color: #C0C0C0 }
|
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
|
@ -0,0 +1,54 @@
|
|||
# Bootloader configuration. The bootloader is installed to allow
|
||||
# the system to start (and pick one of the installed operating
|
||||
# systems to run).
|
||||
---
|
||||
# Define which bootloader you want to use for EFI installations
|
||||
# Possible options are 'grub', 'sb-shim' and 'systemd-boot'.
|
||||
efiBootLoader: "grub"
|
||||
|
||||
# systemd-boot configuration files settings, set kernel and initramfs file names
|
||||
# and amount of time before default selection boots
|
||||
kernel: "/vmlinuz-linux"
|
||||
img: "/initramfs-linux.img"
|
||||
fallback: "/initramfs-linux-fallback.img"
|
||||
timeout: "10"
|
||||
|
||||
# Optionally set the menu entry name and kernel name to use in systemd-boot.
|
||||
# If not specified here, these settings will be taken from branding.desc.
|
||||
#
|
||||
# bootloaderEntryName: "Generic GNU/Linux"
|
||||
# kernelLine: ", with Stable-Kernel"
|
||||
# fallbackKernelLine: ", with Stable-Kernel (fallback initramfs)"
|
||||
|
||||
# GRUB 2 binary names and boot directory
|
||||
# Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names.
|
||||
# These names are also used when using sb-shim, since that needs some
|
||||
# GRUB functionality (notably grub-probe) to work. As needed, you may use
|
||||
# complete paths like `/usr/bin/efibootmgr` for the executables.
|
||||
#
|
||||
grubInstall: "grub-install"
|
||||
grubMkconfig: "grub-mkconfig"
|
||||
grubCfg: "/boot/grub/grub.cfg"
|
||||
grubProbe: "grub-probe"
|
||||
efiBootMgr: "efibootmgr"
|
||||
|
||||
# Optionally set the bootloader ID to use for EFI. This is passed to
|
||||
# grub-install --bootloader-id.
|
||||
#
|
||||
# If not set here, the value from bootloaderEntryName from branding.desc
|
||||
# is used, with problematic characters (space and slash) replaced.
|
||||
#
|
||||
# The ID is also used as a directory name within the EFI environment,
|
||||
# and the bootloader is copied from /boot/efi/EFI/<dirname>/ . When
|
||||
# setting the option here, keep in mind that the name is sanitized
|
||||
# (problematic characters, see above, are replaced).
|
||||
#
|
||||
efiBootloaderId: "peppermint"
|
||||
|
||||
# Optionally install a copy of the GRUB EFI bootloader as the EFI
|
||||
# fallback loader (either bootia32.efi or bootx64.efi depending on
|
||||
# the system). This may be needed on certain systems (Intel DH87MC
|
||||
# seems to be the only one). If you set this to false, take care
|
||||
# to add another module to optionally install the fallback on those
|
||||
# boards that need it.
|
||||
installEFIFallback: true
|
|
@ -0,0 +1,28 @@
|
|||
# Configure one or more display managers (e.g. SDDM)
|
||||
# with a "best effort" approach.
|
||||
---
|
||||
#The DM module attempts to set up all the DMs found in this list, in that precise order.
|
||||
#It also sets up autologin, if the feature is enabled in globalstorage.
|
||||
#The displaymanagers list can also be set in globalstorage, and in that case it overrides anything set up here.
|
||||
displaymanagers:
|
||||
- slim
|
||||
- sddm
|
||||
- lightdm
|
||||
- gdm
|
||||
- mdm
|
||||
- lxdm
|
||||
- kdm
|
||||
|
||||
#Enable the following settings to force a desktop environment in your displaymanager configuration file:
|
||||
#defaultDesktopEnvironment:
|
||||
# executable: "startkde"
|
||||
# desktopFile: "plasma"
|
||||
|
||||
#If true, try to ensure that the user, group, /var directory etc. for the
|
||||
#display manager are set up correctly. This is normally done by the distribution
|
||||
#packages, and best left to them. Therefore, it is disabled by default.
|
||||
basicSetup: false
|
||||
|
||||
#If true, setup autologin for openSUSE. This only makes sense on openSUSE
|
||||
#derivatives or other systems where /etc/sysconfig/displaymanager exists.
|
||||
sysconfigSetup: false
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
restartNowEnabled: true
|
||||
restartNowChecked: true
|
||||
restartNowCommand: "reboot"
|
|
@ -0,0 +1,27 @@
|
|||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configure fstab options
|
||||
#
|
||||
---
|
||||
mountOptions:
|
||||
default: defaults,noatime,nodiscard
|
||||
btrfs: defaults,noatime,noautodefrag,nodiscard
|
||||
btrfs_swap: defaults
|
||||
swap: defaults
|
||||
|
||||
crypttabOptions: luks,keyscript=/bin/cat
|
||||
|
||||
efiMountOptions: umask=0077
|
||||
|
||||
ssdExtraMountOptions:
|
||||
btrfs: ssd
|
||||
|
||||
tmpOptions:
|
||||
default:
|
||||
tmpfs: false
|
||||
options: ""
|
||||
ssd:
|
||||
tmpfs: true
|
||||
options: "defaults,noatime,mode=1777"
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
localeGenPath: "/etc/locale.gen"
|
||||
geoip:
|
||||
style: "json"
|
||||
url: "https://ipapi.co/json"
|
||||
selector: "timezone"
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# Writes an openswap configuration with LUKS settings to the given path
|
||||
---
|
||||
# Path of the configuration file to write (in the target system)
|
||||
configFilePath: /etc/openswap.conf
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
# Whether to create /etc/machine-id for systemd.
|
||||
systemd: false
|
||||
# Whether to create /var/lib/dbus/machine-id for D-Bus.
|
||||
dbus: true
|
||||
# Whether /var/lib/dbus/machine-id should be a symlink to /etc/machine-id
|
||||
# (ignored if dbus is false, or if there is no /etc/machine-id to point to).
|
||||
symlink: true
|
||||
# Whether to copy entropy from the host
|
||||
entropy-copy: true
|
||||
# Which files to write (paths in the target)
|
||||
entropy-files:
|
||||
- /var/lib/urandom/random-seed
|
||||
- /var/lib/systemd/random-seed
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Mount filesystems in the target (generally, before treating the
|
||||
# target as a usable chroot / "live" system).
|
||||
---
|
||||
|
||||
extraMounts:
|
||||
- device: proc
|
||||
fs: proc
|
||||
mountPoint: /proc
|
||||
- device: sys
|
||||
fs: sysfs
|
||||
mountPoint: /sys
|
||||
- device: /dev
|
||||
mountPoint: /dev
|
||||
options: bind
|
||||
- device: tmpfs
|
||||
fs: tmpfs
|
||||
mountPoint: /run
|
||||
- device: /run/udev
|
||||
mountPoint: /run/udev
|
||||
options: bind
|
||||
|
||||
extraMountsEfi:
|
||||
- device: efivarfs
|
||||
fs: efivarfs
|
||||
mountPoint: /sys/firmware/efi/efivars
|
||||
|
||||
btrfsSubvolumes:
|
||||
- mountPoint: /
|
||||
subvolume: /@
|
||||
- mountPoint: /home
|
||||
subvolume: /@home
|
||||
- mountPoint: /var/cache
|
||||
subvolume: /@cache
|
||||
- mountPoint: /var/log
|
||||
subvolume: /@log
|
|
@ -0,0 +1,56 @@
|
|||
---
|
||||
# This is the URL that is retrieved to get the netinstall groups-and-packages
|
||||
# data (which should be in the format described in netinstall.yaml), e.g.:
|
||||
# groupsUrl: http://example.org/netinstall.php
|
||||
# or it can be a locally installed file:
|
||||
# groupsUrl: file:///usr/share/calamares/netinstall.yaml
|
||||
#
|
||||
# Note that the contents of the groups file is the **important**
|
||||
# part of the configuration of this module. It specifies what
|
||||
# the user may select and what commands are to be run.
|
||||
#
|
||||
# The format of the groups file is documented in `README.md`.
|
||||
#
|
||||
# As a special case, setting *groupsUrl* to the literal string
|
||||
# `local` means that the data is obtained from **this** config
|
||||
# file, under the key *groups*.
|
||||
#
|
||||
groupsUrl: file:///etc/calamares/modules/netinstall-packages.yaml
|
||||
|
||||
# If the installation can proceed without netinstall (e.g. the Live CD
|
||||
# can create a working installed system, but netinstall is preferred
|
||||
# to bring it up-to-date or extend functionality) leave this set to
|
||||
# false (the default). If set to true, the netinstall data is required.
|
||||
#
|
||||
# This only has an effect if the netinstall data cannot be retrieved,
|
||||
# or is corrupt: having "required" set, means the install cannot proceed.
|
||||
required: false
|
||||
|
||||
# To support multiple instances of this module,
|
||||
# some strings are configurable and translatable here.
|
||||
# - *sidebar* This is the name of the module in the progress-tree / sidebar
|
||||
# in Calamares.
|
||||
# - *title* This is displayed above the list of packages.
|
||||
# If no *sidebar* values are provided, defaults to "Package selection"
|
||||
# and existing translations. If no *title* values are provided, no string
|
||||
# is displayed.
|
||||
#
|
||||
# The following strings are already known to Calamares and can be
|
||||
# listed here in *untranslated* form (e.g. as value of *sidebar*)
|
||||
# without bothering with the translations: they are picked up from
|
||||
# the regular translation framework:
|
||||
# - "Package selection"
|
||||
# - "Office software"
|
||||
# - "Office package"
|
||||
# - "Browser software"
|
||||
# - "Browser package"
|
||||
# - "Web browser"
|
||||
label:
|
||||
sidebar: "Packages"
|
||||
sidebar[nl]: "Package selection"
|
||||
sidebar[pt]: "Seleção de pacotes"
|
||||
sidebar[ja]: "パッケージの選択"
|
||||
title: "Packages"
|
||||
title[nl]: "Package selection"
|
||||
title[pt]: "Seleção de pacotes"
|
||||
title[ja]: "パッケージの選択"
|
|
@ -0,0 +1,20 @@
|
|||
# Auto generated descriptions from netinstall-packages
|
||||
- name: " Select your init systems "
|
||||
description: "Choose an init system"
|
||||
critical: false
|
||||
selected: false
|
||||
hidden: false
|
||||
expanded: true
|
||||
subgroups:
|
||||
- name: " sysvinit-core"
|
||||
description: " System-V-like init"
|
||||
packages:
|
||||
- sysvinit-core
|
||||
- name: " runit-init"
|
||||
description: " system-wide service supervision (as init system)"
|
||||
packages:
|
||||
- runit-init
|
||||
- name: " openrc"
|
||||
description: " dependency based service manager (runlevel change mechanism)"
|
||||
packages:
|
||||
- openrc
|
|
@ -0,0 +1,7 @@
|
|||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration file for opendmcryptcfg module
|
||||
#
|
||||
---
|
||||
configFilePath: /etc/conf.d/dmcrypt
|
|
@ -0,0 +1,15 @@
|
|||
backend: apt
|
||||
|
||||
operations:
|
||||
- remove:
|
||||
- 'live-boot'
|
||||
- 'live-boot-doc'
|
||||
- 'live-config'
|
||||
- 'live-config-doc'
|
||||
- 'live-config-systemd'
|
||||
- 'live-config-systemd'
|
||||
- 'live-tools'
|
||||
- 'live-task-localisation'
|
||||
- 'live-task-recommended'
|
||||
- 'calamares-settings-debian'
|
||||
- 'calamares'
|
|
@ -0,0 +1,17 @@
|
|||
efiSystemPartition: "/boot/efi"
|
||||
efiSystemPartitionSize: 300M
|
||||
efiSystemPartitionName: EFI
|
||||
userSwapChoices:
|
||||
- none # Create no swap, use no swap
|
||||
- small # Up to 4GB
|
||||
- suspend # At least main memory size
|
||||
- file # To swap file instead of partition
|
||||
swapPartitionName: SWAP
|
||||
drawNestedPartitions: false
|
||||
alwaysShowPartitionLabels: true
|
||||
allowManualPartitioning: true
|
||||
initialPartitioningChoice: erase
|
||||
initialSwapChoice: none
|
||||
defaultFileSystemType: "ext4"
|
||||
availableFileSystemTypes: ["ext4","btrfs", "f2fs","xfs"]
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
unpack:
|
||||
- source: "/run/live/medium/live/filesystem.squashfs"
|
||||
sourcefs: "squashfs"
|
||||
destination: ""
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
userGroup: users
|
||||
defaultGroups:
|
||||
- cdrom
|
||||
- floppy
|
||||
- sudo
|
||||
- audio
|
||||
- dip
|
||||
- video
|
||||
- plugdev
|
||||
- netdev
|
||||
- lpadmin
|
||||
- scanner
|
||||
- bluetooth
|
||||
autologinGroup: autologin
|
||||
sudoersGroup: sudo
|
||||
setRootPassword: false
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
showSupportUrl: false
|
||||
showKnownIssuesUrl: false
|
||||
showReleaseNotesUrl: false
|
||||
|
||||
requirements:
|
||||
requiredStorage: 10
|
||||
requiredRam: 1.0
|
||||
check:
|
||||
- storage
|
||||
- ram
|
||||
- power
|
||||
- root
|
||||
required:
|
||||
- storage
|
||||
- ram
|
||||
- root
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
type: "job"
|
||||
name: "grub-defaults"
|
||||
interface: "process"
|
||||
command: "/usr/sbin/grub-defaults"
|
||||
timeout: 600
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
type: "job"
|
||||
name: "update-system"
|
||||
interface: "process"
|
||||
command: "/usr/sbin/update-system"
|
||||
timeout: 600
|
|
@ -0,0 +1,10 @@
|
|||
# Launcher icons
|
||||
[org.gnome.shell]
|
||||
favorite-apps=['install-peppermint.desktop', 'Welcome.desktop', firefox-esr.desktop', 'libreoffice-writer.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'yelp.desktop']
|
||||
|
||||
# We don't want the screensaver to enable on the live media while installing
|
||||
[org.gnome.desktop.lockdown]
|
||||
disable-lock-screen=true
|
||||
|
||||
[org.gnome.desktop.session]
|
||||
idle-delay=0
|
|
@ -0,0 +1,35 @@
|
|||
#!/bin/sh
|
||||
# Creates an "Install Debian" icon on the live session tested with:
|
||||
# Xfce, LXDE, LXqt, Gnome, KDE, Mate, Cinnamon
|
||||
|
||||
# We query xdg-user-dir because the Desktop directory has different
|
||||
# names for different languages
|
||||
DESKTOP=$(xdg-user-dir DESKTOP)
|
||||
|
||||
# Create ~/Desktop just in case this runs before the xdg folder
|
||||
# creation script.
|
||||
mkdir -p $DESKTOP
|
||||
|
||||
# Among the Debian desktop environments, LXDE is the only one
|
||||
# that behaves completely different.
|
||||
if [ -f /usr/bin/lxsession ]; then
|
||||
echo "[Desktop Entry]" > $DESKTOP/calamares-install-peppermint.desktop
|
||||
echo "Type=Link" >> $DESKTOP/calamares-install-peppermint.desktop
|
||||
echo "Name=Install Debian" >> $DESKTOP/calamares-install-peppermint.desktop
|
||||
echo "Icon=install-debian" >> $DESKTOP/calamares-install-peppermint.desktop
|
||||
echo "URL=/usr/share/applications/calamares-install-peppermint.desktop" \
|
||||
>> $DESKTOP/calamares-install-peppermint.desktop
|
||||
else
|
||||
cp /usr/share/applications/calamares-install-peppermint.desktop $DESKTOP
|
||||
# Xfce needs this executable otherwise it complains, everything
|
||||
# else doesn't seem to care either way.
|
||||
chmod +x $DESKTOP/calamares-install-peppermint.desktop
|
||||
fi
|
||||
|
||||
# Set desktop launcher as trusted under gnome/xfce (See: #1037299)
|
||||
gio set --type=string ~/Desktop/calamares-install-peppermint.desktop \
|
||||
metadata::trusted true
|
||||
gio set --type=string ~/Desktop/calamares-install-peppermint.desktop \
|
||||
metadata::xfce-exe-checksum \
|
||||
"$(sha256sum ~/Desktop/calamares-install-peppermint.desktop | cut -f1 -d' ')"
|
||||
touch ~/Desktop/calamares-install-peppermint.desktop
|
|
@ -0,0 +1,48 @@
|
|||
#!/bin/bash
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
# Install luks utilities if needed.
|
||||
# Also, set secure permissions for the initramfs if we're configuring
|
||||
# full-disk-encryption. The initramfs is re-generated later in the
|
||||
# installation process so we only set the permissions snippet without
|
||||
# regenerating the initramfs right now:
|
||||
if [ "$(mount | grep $CHROOT" " | cut -c -16)" = "/dev/mapper/luks" ]; then
|
||||
echo "UMASK=0077" > $CHROOT/etc/initramfs-tools/conf.d/initramfs-permissions
|
||||
chroot $CHROOT apt-get -y install cryptsetup-initramfs cryptsetup keyutils
|
||||
fi
|
||||
|
||||
chroot $CHROOT apt-get update
|
||||
|
||||
echo "Running bootloader-config..."
|
||||
|
||||
# Detect architecture and install the appropriate GRUB package
|
||||
ARCH=$(uname -m)
|
||||
case "$ARCH" in
|
||||
x86_64)
|
||||
if [ -d /sys/firmware/efi/efivars ]; then
|
||||
echo " * Installing grub-efi (uefi)..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-amd64
|
||||
else
|
||||
echo " * Installing grub-pc (bios)..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc
|
||||
fi
|
||||
;;
|
||||
i686)
|
||||
echo " * Installing grub-efi-ia32 (uefi 32-bit)..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-ia32
|
||||
;;
|
||||
aarch64)
|
||||
echo " * Installing grub-efi-arm64 (uefi arm64)..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-arm64
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported architecture: $ARCH"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Re-enable os-prober:
|
||||
sed -i "s/#GRUB_DISABLE_OS_PROBER=false/# OS_PROBER re-enabled by Debian Calamares installation:\nGRUB_DISABLE_OS_PROBER=false/g" $CHROOT/etc/default/grub
|
||||
chroot $CHROOT /usr/sbin/update-grub
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2023 PeppermintOS Team (peppermintosteam@proton.me)
|
||||
|
||||
# This script configures grub defaults after Debian installation.
|
||||
|
||||
# Define CHROOT
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
# Sets GRUB configuration.
|
||||
# Writes the configuration to the /etc/default/grub file.
|
||||
# Updates the bootloader.
|
||||
|
||||
# Check if CHROOT is set
|
||||
if [ -z "$CHROOT" ]; then
|
||||
echo "CHROOT not set. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Defines the variables
|
||||
GRUB_DEFAULT=0
|
||||
GRUB_TIMEOUT=5
|
||||
GRUB_DISTRIBUTOR="Peppermint"
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
|
||||
GRUB_CMDLINE_LINUX=""
|
||||
GRUB_GFXMODE=1360x768
|
||||
GRUB_THEME="/boot/grub/themes/peppermint/theme.txt"
|
||||
GRUB_DISABLE_OS_PROBER=false
|
||||
|
||||
# GRUB configuration file path
|
||||
GRUB_CONFIG_FILE="$CHROOT/etc/default/grub"
|
||||
|
||||
# Modify the GRUB file
|
||||
sed -i "s/^GRUB_DEFAULT=.*/GRUB_DEFAULT=$GRUB_DEFAULT/" $GRUB_CONFIG_FILE
|
||||
sed -i "s/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=$GRUB_TIMEOUT/" $GRUB_CONFIG_FILE
|
||||
sed -i "s/^GRUB_DISTRIBUTOR=.*/GRUB_DISTRIBUTOR=\"$GRUB_DISTRIBUTOR\"/" $GRUB_CONFIG_FILE
|
||||
sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT=\"$GRUB_CMDLINE_LINUX_DEFAULT\"/" $GRUB_CONFIG_FILE
|
||||
sed -i "s/^GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=\"$GRUB_CMDLINE_LINUX\"/" $GRUB_CONFIG_FILE
|
||||
sed -i "s/^#GRUB_GFXMODE=.*/GRUB_GFXMODE=$GRUB_GFXMODE/" $GRUB_CONFIG_FILE
|
||||
# Add GRUB_THEME if it doesn't exist
|
||||
if ! grep -q "^GRUB_THEME=" $GRUB_CONFIG_FILE; then
|
||||
echo "GRUB_THEME=\"$GRUB_THEME\"" >> $GRUB_CONFIG_FILE
|
||||
else
|
||||
sed -i "s#^GRUB_THEME=.*#GRUB_THEME=\"$GRUB_THEME\"#" $GRUB_CONFIG_FILE
|
||||
fi
|
||||
sed -i "s/^#GRUB_DISABLE_OS_PROBER=.*/GRUB_DISABLE_OS_PROBER=$GRUB_DISABLE_OS_PROBER/" $GRUB_CONFIG_FILE
|
||||
|
||||
# Run update-grub after modifying the file
|
||||
chroot $CHROOT update-grub
|
||||
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
#!/bin/sh
|
||||
###
|
||||
# Wrapper for running calamares on Debian live media
|
||||
###
|
||||
|
||||
# Stale file left behind by live-build that messes with partitioning
|
||||
sudo mv /etc/fstab /etc/fstab.orig.calamares
|
||||
|
||||
# Allow Calamares to scale the window for hidpi displays
|
||||
# This is fixed in the Calamares 3.3.0 series, so we can remove this
|
||||
# once we switch to that
|
||||
# Upstream commit that will make this obsolete:
|
||||
# https://github.com/calamares/calamares/commit/e9f011b686a0982fb7828e8ac02a8e0784d3b11f
|
||||
# Upstream bug:
|
||||
# https://github.com/calamares/calamares/issues/1945
|
||||
# Debian bug:
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992162
|
||||
export QT_AUTO_SCREEN_SCALE_FACTOR=1
|
||||
|
||||
# Access control to run calamares as root for xwayland
|
||||
xhost +si:localuser:root
|
||||
pkexec calamares -d
|
||||
xhost -si:localuser:root
|
||||
|
||||
# Restore stale fstab, for what it's worth
|
||||
sudo mv /etc/fstab.orig.calamares /etc/fstab
|
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Apply updates to the system
|
||||
|
||||
# Function to update the system
|
||||
function update_system() {
|
||||
# Define CHROOT
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
# Verifying CHROOT
|
||||
if [ -z "$CHROOT" ]; then
|
||||
echo "Error: CHROOT is not set."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Updating the system..."
|
||||
|
||||
# Update the package list
|
||||
chroot $CHROOT /usr/bin/apt update
|
||||
|
||||
# Update installed packages
|
||||
chroot $CHROOT /usr/bin/apt upgrade -y
|
||||
|
||||
# Remove unnecessary packages
|
||||
chroot $CHROOT /usr/bin/apt autoremove -y
|
||||
|
||||
# Clean the APT cache
|
||||
chroot $CHROOT /usr/bin/apt clean
|
||||
|
||||
echo "System successfully updated!"
|
||||
}
|
||||
|
||||
# Run the function to update the system
|
||||
update_system
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
# Configuration file for Calamares
|
||||
# Syntax is YAML 1.2
|
||||
---
|
||||
|
||||
# "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules
|
||||
modules-search: [ local, /usr/lib/calamares/modules ]
|
||||
|
||||
# YAML: list of maps of string:string key-value pairs.
|
||||
instances:
|
||||
- id: packages
|
||||
module: netinstall
|
||||
config: netinstall-packages.conf
|
||||
#- id: system
|
||||
# module: netinstall
|
||||
# config: netinstall-system.conf
|
||||
#- id: pkgs
|
||||
# module: netinstall
|
||||
# config: netinstall-pkgs.conf
|
||||
|
||||
|
||||
sequence:
|
||||
|
||||
# Phase 1 - prepare.
|
||||
# View modules are shown as UI pages, jobs from job modules
|
||||
# are executed immediately in the background.
|
||||
# Jobs should be executed sparingly (if at all) in this phase.
|
||||
- show:
|
||||
- welcome
|
||||
- locale
|
||||
- keyboard
|
||||
- partition
|
||||
- netinstall@packages
|
||||
- users
|
||||
- summary
|
||||
|
||||
# Phase 2 - install.
|
||||
# View modules are not shown. Only the view modules shown
|
||||
# in the previous phase are allowed, their names should be
|
||||
# added here as placeholders to specify the order in which
|
||||
# view module jobs should be enqueued. Job modules are
|
||||
# also allowed.
|
||||
- exec:
|
||||
- partition
|
||||
- mount
|
||||
- unpackfs
|
||||
- sources-media
|
||||
- machineid
|
||||
- fstab
|
||||
- locale
|
||||
- keyboard
|
||||
- localecfg
|
||||
- users
|
||||
- displaymanager
|
||||
- networkcfg
|
||||
- hwclock
|
||||
- services-systemd
|
||||
- bootloader-config
|
||||
- grubcfg
|
||||
- bootloader
|
||||
- packages
|
||||
- luksbootkeyfile
|
||||
- luksopenswaphookcfg
|
||||
- plymouthcfg
|
||||
- initramfscfg
|
||||
- initramfs
|
||||
- sources-media-unmount
|
||||
- sources-final
|
||||
- grub-defaults
|
||||
- update-system
|
||||
- shellprocess
|
||||
- umount
|
||||
|
||||
# Phase 3 - postinstall.
|
||||
# View modules are shown as UI pages, jobs from job modules are
|
||||
# executed immediately in the background.
|
||||
# Jobs should be executed sparingly (if at all) in this phase.
|
||||
- show:
|
||||
- finished
|
||||
|
||||
# A branding component is a directory, either in
|
||||
# SHARE/calamares/branding or in /etc/calamares/branding
|
||||
# (the latter takes precedence). The directory must contain a
|
||||
# YAML file branding.desc which may reference additional resources
|
||||
# (such as images) as paths relative to the current directory.
|
||||
# Only the name of the branding component (directory) should be
|
||||
# specified here, Calamares then takes care of finding it and
|
||||
# loading the contents.
|
||||
branding: peppermint
|
||||
|
||||
# If this is set to true, Calamares will show an "Are you sure?" prompt right
|
||||
# before each execution phase, i.e. at points of no return. If this is set to
|
||||
# false, no prompt is shown. Default is false.
|
||||
#
|
||||
# YAML: boolean.
|
||||
prompt-install: false
|
||||
|
||||
# If this is set to true, Calamares will execute all target environment
|
||||
# commands in the current environment, without chroot. This setting should
|
||||
# only be used when setting up Calamares as a post-install configuration tool,
|
||||
# as opposed to a full operating system installer.
|
||||
#
|
||||
# Some official Calamares modules are not expected to function with this
|
||||
# setting. (e.g. partitioning seems like a bad idea, since that is expected to
|
||||
# have been done already)
|
||||
#
|
||||
# Default is false (for a normal installer).
|
||||
#
|
||||
# YAML: boolean.
|
||||
dont-chroot: false
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Writes the final sources.list file
|
||||
#
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
RELEASE="daedalus"
|
||||
|
||||
cat << EOF > $CHROOT/etc/apt/sources.list
|
||||
# This system was installed using PeppermintOS removable media
|
||||
# (e.g. netinst, live or single CD). The matching "deb cdrom"
|
||||
# entries were removed at the end of the installation process.
|
||||
# For information about how to configure apt package sources,
|
||||
# See https://wiki.debian.org/SourcesList for more information.
|
||||
|
||||
# Main Repo - main contrib non-free
|
||||
deb http://deb.debian.org/debian $RELEASE main main contrib non-free non-free-firmware
|
||||
deb-src http://deb.debian.org/debian $RELEASE main contrib non-free non-free-firmware
|
||||
|
||||
# Updates Repo - main contrib non-free
|
||||
deb http://deb.debian.org/debian $RELEASE-updates main contrib non-free non-free-firmware
|
||||
deb-src http://deb.debian.org/debian $RELEASE-updates main contrib non-free non-free-firmware
|
||||
|
||||
# Security Repo - main contrib non-free
|
||||
deb http://security.debian.org/debian-security/ $RELEASE-security main contrib non-free non-free-firmware
|
||||
deb-src http://security.debian.org/debian-security/ $RELEASE-security main contrib non-free non-free-firmware
|
||||
|
||||
# Backports allow you to install newer versions of software made available for this release
|
||||
deb http://deb.debian.org/debian $RELEASE-backports main contrib non-free non-free-firmware
|
||||
deb-src http://deb.debian.org/debian $RELEASE-backports main contrib non-free non-free-firmware
|
||||
|
||||
EOF
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/sh
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
MEDIUM_PATH="/run/live/medium"
|
||||
RELEASE="daedalus"
|
||||
|
||||
if [ "$1" = "-u" ]; then
|
||||
umount $CHROOT/$MEDIUM_PATH
|
||||
rm $CHROOT/etc/apt/sources.list.d/debian-live-media.list
|
||||
chroot $CHROOT apt-get update
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Remove the base sources, we will configure sources in a later phase
|
||||
rm -f $CHROOT/etc/apt/sources.list.d/base.list
|
||||
|
||||
mkdir -p $CHROOT/$MEDIUM_PATH
|
||||
mount --bind $MEDIUM_PATH $CHROOT/$MEDIUM_PATH
|
||||
echo "deb [trusted=yes] file:$MEDIUM_PATH $RELEASE main" > $CHROOT/etc/apt/sources.list.d/debian-live-media.list
|
||||
chroot $CHROOT apt-get update
|
||||
# Attempt safest way to remove cruft
|
||||
rmdir $CHROOT/run/live/medium
|
||||
rmdir $CHROOT/run/live
|
||||
|
||||
exit 0
|
|
@ -0,0 +1 @@
|
|||
../dev/applications
|
|
@ -0,0 +1 @@
|
|||
../dev/branding
|
|
@ -0,0 +1 @@
|
|||
../dev/conf
|
|
@ -0,0 +1 @@
|
|||
../dev/modules
|
|
@ -0,0 +1 @@
|
|||
../dev/schemas
|
|
@ -0,0 +1 @@
|
|||
../dev/scripts
|
|
@ -0,0 +1 @@
|
|||
../dev/settings
|
|
@ -0,0 +1 @@
|
|||
../dev/sources
|
|
@ -0,0 +1,16 @@
|
|||
# Put this file inthis location
|
||||
# /etc/calamares/oem.conf
|
||||
|
||||
oem:
|
||||
# OEM mode
|
||||
enabled: truerrrrrrrrrrrrrrrrrrrrraserffewfrfesda sd f sdf sdf dsaf sdafa dsf sda fsd af
|
||||
|
||||
# OEM user account
|
||||
user:
|
||||
name: oemuser
|
||||
password: oempassword
|
||||
groups: [sudo, audio, video, plugdev]
|
||||
|
||||
# OEM system settings
|
||||
system:
|
||||
hostname: oemhostname
|
|
@ -0,0 +1,110 @@
|
|||
# Configuration file for Calamares
|
||||
# Syntax is YAML 1.2
|
||||
---
|
||||
|
||||
# "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules
|
||||
modules-search: [ local, /usr/lib/calamares/modules ]
|
||||
|
||||
# YAML: list of maps of string:string key-value pairs.
|
||||
instances:
|
||||
#- id: packages
|
||||
# module: netinstall
|
||||
# config: netinstall-packages.conf
|
||||
#- id: system
|
||||
# module: netinstall
|
||||
# config: netinstall-system.conf
|
||||
#- id: pkgs
|
||||
# module: netinstall
|
||||
# config: netinstall-pkgs.conf
|
||||
|
||||
|
||||
sequence:
|
||||
|
||||
# Phase 1 - prepare.
|
||||
# View modules are shown as UI pages, jobs from job modules
|
||||
# are executed immediately in the background.
|
||||
# Jobs should be executed sparingly (if at all) in this phase.
|
||||
- show:
|
||||
- welcome
|
||||
- locale
|
||||
- keyboard
|
||||
- partition
|
||||
# - netinstall@packages
|
||||
- users
|
||||
- summary
|
||||
|
||||
# Phase 2 - install.
|
||||
# View modules are not shown. Only the view modules shown
|
||||
# in the previous phase are allowed, their names should be
|
||||
# added here as placeholders to specify the order in which
|
||||
# view module jobs should be enqueued. Job modules are
|
||||
# also allowed.
|
||||
- exec:
|
||||
- partition
|
||||
- mount
|
||||
- unpackfs
|
||||
- sources-media
|
||||
- machineid
|
||||
- fstab
|
||||
- locale
|
||||
- keyboard
|
||||
- localecfg
|
||||
- users
|
||||
- displaymanager
|
||||
- networkcfg
|
||||
- hwclock
|
||||
- services-systemd
|
||||
- bootloader-config
|
||||
- grubcfg
|
||||
- bootloader
|
||||
- packages
|
||||
- luksbootkeyfile
|
||||
- luksopenswaphookcfg
|
||||
- plymouthcfg
|
||||
- initramfscfg
|
||||
- initramfs
|
||||
- sources-media-unmount
|
||||
- sources-final
|
||||
- shellprocess
|
||||
- umount
|
||||
|
||||
# Phase 3 - postinstall.
|
||||
# View modules are shown as UI pages, jobs from job modules are
|
||||
# executed immediately in the background.
|
||||
# Jobs should be executed sparingly (if at all) in this phase.
|
||||
- show:
|
||||
- finished
|
||||
|
||||
# A branding component is a directory, either in
|
||||
# SHARE/calamares/branding or in /etc/calamares/branding
|
||||
# (the latter takes precedence). The directory must contain a
|
||||
# YAML file branding.desc which may reference additional resources
|
||||
# (such as images) as paths relative to the current directory.
|
||||
# Only the name of the branding component (directory) should be
|
||||
# specified here, Calamares then takes care of finding it and
|
||||
# loading the contents.
|
||||
branding: peppermint
|
||||
|
||||
# If this is set to true, Calamares will show an "Are you sure?" prompt right
|
||||
# before each execution phase, i.e. at points of no return. If this is set to
|
||||
# false, no prompt is shown. Default is false.
|
||||
#
|
||||
# YAML: boolean.
|
||||
prompt-install: false
|
||||
|
||||
# If this is set to true, Calamares will execute all target environment
|
||||
# commands in the current environment, without chroot. This setting should
|
||||
# only be used when setting up Calamares as a post-install configuration tool,
|
||||
# as opposed to a full operating system installer.
|
||||
#
|
||||
# Some official Calamares modules are not expected to function with this
|
||||
# setting. (e.g. partitioning seems like a bad idea, since that is expected to
|
||||
# have been done already)
|
||||
#
|
||||
# Default is false (for a normal installer).
|
||||
#
|
||||
# YAML: boolean.
|
||||
dont-chroot: false
|
||||
|
||||
# include the OEM settings
|
||||
include_configuration("/etc/calamares/oem.conf")
|
|
@ -83,7 +83,7 @@ def hblock_setup():
|
|||
os.system('chmod 755 /usr/local/bin/hblock')
|
||||
os.system('hblock -S none -D none exit 0')
|
||||
|
||||
|
||||
## this function may not be necessary because the bug is already fixed in live-build.
|
||||
def manage_raspi_firmware():
|
||||
"""
|
||||
Manage when the raspi firmware, is removed.
|
||||
|
|
|
@ -71,7 +71,8 @@ class BuildBase:
|
|||
""" Get the build infrastucture ready """
|
||||
infra_methods = [infra.ChrootFolders, infra.BinaryFolders,
|
||||
infra.ArchitectureFiles, infra.Archive,
|
||||
infra.InstallerFiles, infra.FusatoConfigs
|
||||
infra.InstallerFiles, infra.FusatoConfigs,
|
||||
infra.ChrootInstallerFiles,
|
||||
]
|
||||
for method in infra_methods:
|
||||
method(self.sbase, self.sarch)
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
# inflate_bubble sets the configs files
|
||||
# infra copies the needed configs
|
||||
shared_setup_cmds = ('inflate_bubble.set_fusato_structure',
|
||||
'inflate_bubble.set_fusato_installer_structure',
|
||||
'inflate_bubble.set_general_shared',
|
||||
'inflate_bubble.set_grub_shared',
|
||||
'inflate_bubble.set_binary_shared',
|
||||
|
@ -273,8 +274,6 @@ LOADED_LIST = ('xfce4\n'
|
|||
'gnome-chess\n'
|
||||
'gnome-mahjongg\n'
|
||||
'gnome-sudoku\n'
|
||||
#'guvcview\n'
|
||||
#'vlc \n'
|
||||
'cheese\n'
|
||||
'parole \n'
|
||||
'qt5-style-plugins\n'
|
||||
|
@ -286,8 +285,6 @@ LOADED_LIST = ('xfce4\n'
|
|||
'baobab\n'
|
||||
'xdg-user-dirs-gtk\n'
|
||||
'squashfs-tools\n'
|
||||
#'calamares\n' ## These are in the GENERAL_SHARED_LIST
|
||||
#'calamares-settings-debian\n' ## in the GENERAL_SHARED_LIST
|
||||
)
|
||||
|
||||
SERVER_LIST = ('zonefstoolspep\n'
|
||||
|
@ -354,9 +351,9 @@ GENERAL_SHARED_LIST = ('alsa-utils\n'
|
|||
'libgtk2.0-0\n'
|
||||
'libgtk2.0-common\n'
|
||||
'nala\n'
|
||||
'neofetch\n'
|
||||
'network-manager-gnome\n'
|
||||
'ntp\n'
|
||||
'plank\n'
|
||||
'pulseaudio-module-bluetooth\n'
|
||||
'python3-pip\n'
|
||||
'python3-tk\n'
|
||||
|
|
|
@ -11,13 +11,13 @@ import os
|
|||
from pathlib import Path
|
||||
import conf
|
||||
|
||||
|
||||
# Set the home path used regardless the user logged in
|
||||
BSTRING_ISO_CONFIGS = '~/bubbles/iso_configs'
|
||||
HOME_FOLDER = str(Path(BSTRING_ISO_CONFIGS).expanduser())
|
||||
PACKAGE_LIST = "fusato/config/package-lists/"
|
||||
CHROOT_FOLDER = "fusato/config/includes.chroot/"
|
||||
INCLUDES_INSTALLER = "fusato/config/includes.installer/"
|
||||
CHROOT_INSTALLER = "fusato/config/includes.chroot/"
|
||||
INCLUDES_INSTALLER = "fusato/config/includes.installer/"
|
||||
BOOTSTRAP_FOLDER = 'fusato/config/includes.bootstrap/'
|
||||
FUSATO_ROOT = 'fusato'
|
||||
|
||||
|
@ -50,7 +50,6 @@ def set_fusato_structure():
|
|||
os.system(rm_cmd)
|
||||
os.makedirs('config')
|
||||
|
||||
|
||||
make_bootstrap = ['etc/apt']
|
||||
make_packages = ['package-lists/']
|
||||
make_chfldrs = make_chroot
|
||||
|
@ -59,7 +58,7 @@ def set_fusato_structure():
|
|||
for f_f in make_bootstrap:
|
||||
os.makedirs(os.path.join(HOME_FOLDER, BOOTSTRAP_FOLDER, f_f))
|
||||
for f_f in make_packages:
|
||||
os.makedirs(os.path.join(HOME_FOLDER,PACKAGE_LIST, f_f))
|
||||
os.makedirs(os.path.join(HOME_FOLDER, PACKAGE_LIST, f_f))
|
||||
|
||||
def set_fusato_server_structure():
|
||||
""" Make some needed folders for the fusato build process.
|
||||
|
@ -74,7 +73,6 @@ def set_fusato_server_structure():
|
|||
os.system(rm_cmd)
|
||||
os.makedirs('config')
|
||||
|
||||
|
||||
make_bootstrap = ['etc/apt']
|
||||
make_packages = ['package-lists/']
|
||||
make_chfldrs = make_chroot
|
||||
|
@ -83,19 +81,19 @@ def set_fusato_server_structure():
|
|||
for f_f in make_bootstrap:
|
||||
os.makedirs(os.path.join(HOME_FOLDER, BOOTSTRAP_FOLDER, f_f))
|
||||
for f_f in make_packages:
|
||||
os.makedirs(os.path.join(HOME_FOLDER,PACKAGE_LIST, f_f))
|
||||
os.makedirs(os.path.join(HOME_FOLDER, PACKAGE_LIST, f_f))
|
||||
|
||||
def set_fusato_server_installer_structure():
|
||||
""" Make some needed folders for the fusato build process.
|
||||
at the moment you deal with the installer
|
||||
"""
|
||||
# Define os diretórios a serem criados no includes-installer
|
||||
# Define the directories to be created in includes-installer
|
||||
installer_dirs = ['/preseed',
|
||||
'/usr/lib/finish-install.d/',
|
||||
'/usr/share/'
|
||||
]
|
||||
|
||||
# Cria os diretórios no includes-installer
|
||||
# Create the directories in includes-installer
|
||||
for installer_dir in installer_dirs:
|
||||
full_path = os.path.join(HOME_FOLDER, INCLUDES_INSTALLER, installer_dir.strip('/'))
|
||||
os.makedirs(full_path, exist_ok=True)
|
||||
|
@ -105,7 +103,7 @@ def set_fusato_mini_installer_structure():
|
|||
""" Make some needed folders for the fusato build process.
|
||||
at the moment you deal with the installer
|
||||
"""
|
||||
# Define os diretórios a serem criados no includes-installer
|
||||
# Define the directories to be created in includes-installer
|
||||
installer_dirs = ['/preseed',
|
||||
'/usr/lib/finish-install.d/',
|
||||
'/usr/share/',
|
||||
|
@ -137,12 +135,43 @@ def set_fusato_mini_installer_structure():
|
|||
'/etc/'
|
||||
]
|
||||
|
||||
# Cria os diretórios no includes-installer
|
||||
# Create the directories in includes-installer
|
||||
for installer_dir in installer_dirs:
|
||||
full_path = os.path.join(HOME_FOLDER, INCLUDES_INSTALLER, installer_dir.strip('/'))
|
||||
os.makedirs(full_path, exist_ok=True)
|
||||
print(f"Created directory: {full_path}")
|
||||
|
||||
def set_fusato_installer_structure():
|
||||
""" Make some needed folders for the fusato build process.
|
||||
at the moment you deal with chroot and bootstrap
|
||||
"""
|
||||
make_chroot = ['/etc/calamares/',
|
||||
'/etc/calamares/modules/',
|
||||
'/etc/calamares/branding/',
|
||||
'/usr/bin/',
|
||||
'/usr/sbin/',
|
||||
'/usr/lib/calamares/modules',
|
||||
'/usr/share/glib-2.0/schemas',
|
||||
]
|
||||
|
||||
# Change directory to the correct path
|
||||
try:
|
||||
os.chdir(os.path.join(HOME_FOLDER, FUSATO_ROOT))
|
||||
except Exception as e:
|
||||
print(f"Error changing directory: {e}")
|
||||
return
|
||||
|
||||
for f_f in make_chroot:
|
||||
full_path = os.path.join(HOME_FOLDER, CHROOT_FOLDER.strip('/'), f_f.strip('/'))
|
||||
try:
|
||||
os.makedirs(full_path, exist_ok=True)
|
||||
print(f"Created directory: {full_path}")
|
||||
except Exception as e:
|
||||
print(f"Error creating directory {full_path}: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
set_fusato_installer_structure()
|
||||
|
||||
# Commonly Shared
|
||||
def make_build_file(base, arch, extension, build_description):
|
||||
"""
|
||||
|
@ -154,32 +183,27 @@ def make_build_file(base, arch, extension, build_description):
|
|||
with open(file_path, 'w', encoding='UTF-8') as f_p:
|
||||
f_p.write(build_description)
|
||||
|
||||
|
||||
def make_bld_xfce(base,arch):
|
||||
def make_bld_xfce(base, arch):
|
||||
"""Write the xfce build file"""
|
||||
make_build_file(base, arch, 'xfc', 'XFCE Build')
|
||||
|
||||
|
||||
def make_bld_gnomeflashback(base,arch):
|
||||
def make_bld_gnomeflashback(base, arch):
|
||||
"""Write the gnome fb build file"""
|
||||
make_build_file(base, arch, 'gfb', 'Gnome Flash Back Build')
|
||||
|
||||
|
||||
def make_bld_openbox(base,arch):
|
||||
def make_bld_openbox(base, arch):
|
||||
"""Write the openbox build file"""
|
||||
make_build_file(base, arch, 'opb', 'OpenBox Build')
|
||||
|
||||
|
||||
def make_bld_loaded(base,arch):
|
||||
def make_bld_loaded(base, arch):
|
||||
"""Write the loaded build file"""
|
||||
make_build_file(base, arch, 'loaded', 'Loaded Build')
|
||||
|
||||
|
||||
def make_bld_server(base,arch):
|
||||
def make_bld_server(base, arch):
|
||||
"""Write the server build file"""
|
||||
make_build_file(base, arch, 'server', 'Server Build')
|
||||
|
||||
def make_bld_mini(base,arch):
|
||||
def make_bld_mini(base, arch):
|
||||
"""Write the mini build file"""
|
||||
make_build_file(base, arch, 'mini', 'Mini Build')
|
||||
|
||||
|
@ -198,29 +222,24 @@ def set_general_shared():
|
|||
""" Create the list for general shared list"""
|
||||
make_package_list('genshared.list.chroot', conf.GENERAL_SHARED_LIST, mode='x')
|
||||
|
||||
|
||||
def set_grub_shared():
|
||||
""" Create the list for shared grub list"""
|
||||
make_package_list('grub.list.chroot', conf.GRUB_LIST_SHARED, mode='x')
|
||||
|
||||
|
||||
def set_binary_shared():
|
||||
""" Create the shared list for grub binary"""
|
||||
make_package_list('installer.list.binary', conf.BINARY_LIST_SHARED, mode='x')
|
||||
|
||||
|
||||
# Light DM paklage list login window
|
||||
# Light DM package list login window
|
||||
def set_lightdm():
|
||||
""" Create the list for the light dm list """
|
||||
make_package_list('lightdm.list.chroot', conf.LIGHT_DM_LIST, mode='x')
|
||||
|
||||
|
||||
# Desktop Environments
|
||||
def set_xfce():
|
||||
""" Create the list for the xfce xfce list"""
|
||||
make_package_list('xfce.list.chroot', conf.XFCE_LIST, mode='x')
|
||||
|
||||
|
||||
def set_gfb():
|
||||
""" Create the list for the gnomeflashback list"""
|
||||
make_package_list('gfb.list.chroot', conf.GNOME_FLASHBACK_LIST, mode='x')
|
||||
|
@ -248,12 +267,10 @@ def set_chroot_grub_64():
|
|||
""" Append the grub list for 64 bit grub"""
|
||||
make_package_list('gfb.list.chroot', conf.GRUB_LIST_64)
|
||||
|
||||
|
||||
def set_chroot_grub_arm():
|
||||
""" Append the grub list for the ARM grub"""
|
||||
make_package_list('gfb.list.chroot', conf.GRUB_LIST_ARM64)
|
||||
|
||||
|
||||
def set_chroot_grub_32():
|
||||
""" Append the grub list for the 32 bit grub"""
|
||||
make_package_list('gfb.list.chroot', conf.GRUB_LIST_32)
|
||||
|
@ -279,3 +296,4 @@ def set_firmware():
|
|||
def set_firmware_arm():
|
||||
""" Create the list for the firmware support for arm ISOs"""
|
||||
make_package_list('firmware.list.chroot', conf.FIRMWARE_LIST_ARM, mode='x')
|
||||
|
||||
|
|
|
@ -95,6 +95,98 @@ class ChrootFolders:
|
|||
)
|
||||
logger.info(MSG_FIN + HOME_FOLDER + WPCHROOT + des)
|
||||
|
||||
class ChrootInstallerFiles:
|
||||
"""
|
||||
Copies all installer folders to CHROOT depending on the base.
|
||||
"""
|
||||
ALLOWED_BASES = {"deb", "dev", "debld", "devld"}
|
||||
|
||||
def __init__(self, base, sarch=None):
|
||||
self.base = base
|
||||
self.sarch = sarch
|
||||
if self.base not in self.ALLOWED_BASES:
|
||||
logger.warning(f"Base '{self.base}' is not allowed. Skipping.")
|
||||
return
|
||||
|
||||
logger.info(f"Copy Installer Files for base: {self.base}")
|
||||
calamares_path = '/calamares_settings/'
|
||||
self.src_paths = (
|
||||
f'{calamares_path}{self.base}/settings/settings.conf',
|
||||
f'{calamares_path}{self.base}/conf/modules/',
|
||||
f'{calamares_path}{self.base}/sources/sources-final',
|
||||
f'{calamares_path}{self.base}/sources/sources-media',
|
||||
f'{calamares_path}{self.base}/scripts/bootloader-config',
|
||||
f'{calamares_path}{self.base}/scripts/update-system',
|
||||
f'{calamares_path}{self.base}/scripts/grub-defaults',
|
||||
f'{calamares_path}{self.base}/scripts/add-calamares-desktop-icon',
|
||||
f'{calamares_path}{self.base}/scripts/install-peppermint',
|
||||
f'{calamares_path}{self.base}/modules/',
|
||||
f'{calamares_path}{self.base}/branding/peppermint/',
|
||||
f'{calamares_path}{self.base}/schemas/96_calamares-settings-debian.gschema.override/',
|
||||
f'{calamares_path}{self.base}/applications/calamares-install-peppermint.desktop'
|
||||
)
|
||||
self.des_paths = (
|
||||
'/etc/calamares/',
|
||||
'/etc/calamares/',
|
||||
'/usr/sbin/',
|
||||
'/usr/sbin/',
|
||||
'/usr/sbin/',
|
||||
'/usr/sbin/',
|
||||
'/usr/sbin/',
|
||||
'/usr/bin/',
|
||||
'/usr/bin/',
|
||||
'/usr/lib/calamares/',
|
||||
'/etc/calamares/branding/',
|
||||
'/usr/share/glib-2.0/schemas/',
|
||||
'/usr/share/applications/'
|
||||
)
|
||||
|
||||
self.copy_files()
|
||||
|
||||
def copy_files(self):
|
||||
# Ensure destination directories exist before copying
|
||||
for des in self.des_paths:
|
||||
full_des_path = os.path.join(HOME_FOLDER, WPCHROOT.strip('/'), des.strip('/'))
|
||||
try:
|
||||
os.makedirs(full_des_path, exist_ok=True)
|
||||
logger.info(f"Ensured directory exists: {full_des_path}")
|
||||
except Exception as e:
|
||||
logger.error(f"Error creating directory {full_des_path}: {e}")
|
||||
|
||||
# Copy files and directories to their CHROOT locations
|
||||
src_q = collections.deque(self.src_paths)
|
||||
des_q = collections.deque(self.des_paths)
|
||||
size_q = len(src_q)
|
||||
|
||||
for _ in range(size_q):
|
||||
source = src_q.popleft()
|
||||
des = des_q.popleft()
|
||||
full_src_path = os.path.join(HOME_FOLDER, source.strip('/'))
|
||||
full_des_path = os.path.join(HOME_FOLDER, WPCHROOT.strip('/'), des.strip('/'))
|
||||
logger.info(MSG_COPY + full_src_path)
|
||||
|
||||
try:
|
||||
if os.path.exists(full_src_path):
|
||||
if os.path.isdir(full_src_path):
|
||||
shutil.copytree(full_src_path, os.path.join(full_des_path, os.path.basename(full_src_path)), dirs_exist_ok=True)
|
||||
else:
|
||||
shutil.copy(full_src_path, full_des_path)
|
||||
logger.info(MSG_FIN + full_des_path)
|
||||
else:
|
||||
logger.error(f"Source path does not exist: {full_src_path}")
|
||||
except Exception as e:
|
||||
logger.error(f"Error copying {full_src_path} to {full_des_path}: {e}")
|
||||
|
||||
@classmethod
|
||||
def run_for_all_bases(cls):
|
||||
# Define the bases to be used
|
||||
bases = ["deb", "dev", "debld", "devld", "invalid_base"]
|
||||
for base in bases:
|
||||
cls(base)
|
||||
|
||||
# Execute the copy for all bases
|
||||
if __name__ == "__main__":
|
||||
ChrootInstallerFiles.run_for_all_bases()
|
||||
|
||||
class BinaryFolders:
|
||||
"""
|
||||
|
@ -232,7 +324,7 @@ def mini_shared_installer_files():
|
|||
for src, des in zip(src_paths, des_paths):
|
||||
src_path = HOME_FOLDER + src
|
||||
des_path = HOME_FOLDER + WPINSTALLER + des
|
||||
if os.path.isdir(src_path): # Verificar se o caminho de origem é um diretório
|
||||
if os.path.isdir(src_path): # Check if the source path is a directory.
|
||||
for root, dirs, files in os.walk(src_path):
|
||||
for file in files:
|
||||
source_file = os.path.join(root, file)
|
||||
|
@ -251,7 +343,7 @@ class ArchitectureFiles:
|
|||
Copy all the needed files to CHROOT Depending on the
|
||||
architecture it will, copy files as needed
|
||||
"""
|
||||
#another solution is necessary for the calamares files as they are not necessary in the server builds, the mini builds are not affected because the chroot is deleted during the binary phase.
|
||||
|
||||
def __init__(self, sbase, sarch):
|
||||
|
||||
logger.info("Copy Architecture")
|
||||
|
|
Loading…
Reference in New Issue