Merge pull request #18716 from Rmys/master

calamres ver. bump
This commit is contained in:
Rmys
2026-05-18 17:03:31 +03:00
committed by GitHub
12 changed files with 1362 additions and 6 deletions
+9 -3
View File
@@ -10,10 +10,13 @@ from pisi.actionsapi import shelltools
from pisi.actionsapi import get
def setup():
shelltools.system("""sed -i 's|Fancy GNU/Linux 2020.2 LTS "Turgid Tuba"|Pisi GNU/Linux 2.4.3 LTS "Pisi Linux"|g' src/branding/default/branding.desc""")
shelltools.system("sed -i 's|2020.2|2.4.3|g' src/branding/default/branding.desc")
shelltools.system("""sed -i 's|Fancy GNU/Linux 2023.3 LTS "Venomous Vole"|Pisi GNU/Linux 2.4.3 LTS "Pisi Linux"|g' src/branding/default/branding.desc""")
shelltools.system("sed -i 's|2023.3|2.4.3|g' src/branding/default/branding.desc")
shelltools.system("sed -i 's|FancyGL|Pisilinux|g' src/branding/default/branding.desc")
shelltools.system("sed -i 's|backend: dummy|backend: pisi|g' src/modules/packages/packages.conf")
shelltools.system("sed -i 's|systemctl -i reboot|shutdown -r now|g' src/modules/finished/finished.conf")
shelltools.makedirs("build")
shelltools.cd("build")
@@ -27,7 +30,8 @@ def setup():
-DWITH_KF5DBus=OFF \
-DWITH_CRASHREPORTER=ON", \
sourceDir=".." )
# -DSKIP_MODULES='bootldr bootloader license mnt notesqml oemid preservefiles partitionq' \
def build():
shelltools.cd("build")
@@ -44,6 +48,8 @@ def install():
pisitools.dosed("%s/usr/share/calamares/modules/machineid.conf" % get.installDIR(), "systemd: true", "systemd: false")
pisitools.dosed("%s/usr/share/calamares/modules/machineid.conf" % get.installDIR(), "symlink: true", "symlink: false")
pisitools.dosed("%s/usr/share/calamares/modules/removeuser.conf" % get.installDIR(), "username: live", "username: pisi")
pisitools.dosym("/usr/share/icons/hicolor/scalable/apps/calamares.svg", "/usr/share/pixmaps/calamares.svg")
@@ -0,0 +1,86 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Bootloader configuration. The bootloader is installed to allow
# the system to start (and pick one of the installed operating
# systems to run).
#
# Take note that Debian-derivatives that use unmodified GRUB EFI packages
# should specifically set *efiBootloaderId* to "debian" because that is
# hard-coded in `grubx64.efi`.
---
# A variable from global storage which overrides the value of efiBootLoader
#efiBootLoaderVar: "packagechooser_bootloader"
# Define which bootloader you want to use for EFI installations
# Possible options are 'grub', 'sb-shim', 'refind` and 'systemd-boot'.
efiBootLoader: "grub"
# systemd-boot configuration files settings
# kernelSearchPath is the path relative to the root of the install to search for kernels
# A kernel is identified by finding files which match regular expression, kernelPattern
kernelSearchPath: "/boot"
kernelPattern: "^kernel-*"
# loaderEntries is an array of options to add to loader.conf for systemd-boot
# please note that the "default" option is added programmatically
loaderEntries:
- "timeout 5"
- "console-mode keep"
# systemd-boot and refind support custom kernel params
kernelParams: [ "quiet" ]
# A list of kernel names that refind should accept as kernels
#refindKernelList: [ "linux","linux-lts","linux-zen","linux-hardened" ]
# 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: "grub2-install"
grubMkconfig: "grub2-mkconfig"
grubCfg: "/boot/grub2/grub.cfg"
grubProbe: "grub2-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).
#
# There are some special words possible at the end of *efiBootloaderId*:
# ${SERIAL} can be used to obtain a uniquely-numbered suffix
# that is added to the Id (yielding, e.g., `dirname1` or `dirname72`)
# ${RANDOM} can be used to obtain a unique 4-digit hex suffix
# ${PHRASE} can be used to obtain a unique 1-to-3-word suffix
# from a dictionary of space-themed words
# These words must be at the **end** of the *efiBootloaderId* value.
# There must also be at most one of them. If there is none, no suffix-
# processing is done and the *efiBootloaderId* is used unchanged.
#
# NOTE: Debian derivatives that use the unmodified Debian GRUB EFI
# packages may need to set this to "debian" because that is
# hard-coded in `grubx64.efi`.
#
efiBootloaderId: "pisi"
# 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
# Optionally install both BIOS and UEFI GRUB bootloaders.
installHybridGRUB: false
@@ -0,0 +1,239 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Product branding information. This influences some global
# user-visible aspects of Calamares, such as the product
# name, window behavior, and the slideshow during installation.
#
# Additional styling can be done using the stylesheet.qss
# file, also in the branding directory.
---
componentName: default
### WELCOME / OVERALL WORDING
#
# These settings affect some overall phrasing and looks,
# which are most visible in the welcome page.
# This selects between different welcome texts. When false, uses
# the traditional "Welcome to the %1 installer.", and when true,
# uses "Welcome to the Calamares installer for %1." This allows
# to distinguish this installer from other installers for the
# same distribution.
welcomeStyleCalamares: false
# Should the welcome image (productWelcome, below) be scaled
# up beyond its natural size? If false, the image does not grow
# with the window but remains the same size throughout (this
# may have surprising effects on HiDPI monitors).
welcomeExpandingLogo: true
### WINDOW CONFIGURATION
#
# The settings here affect the placement of the Calamares
# window through hints to the window manager and initial
# sizing of the Calamares window.
# Size and expansion policy for Calamares.
# - "normal" or unset, expand as needed, use *windowSize*
# - "fullscreen", start as large as possible, ignore *windowSize*
# - "noexpand", don't expand automatically, use *windowSize*
windowExpanding: normal
# Size of Calamares window, expressed as w,h. Both w and h
# may be either pixels (suffix px) or font-units (suffix em).
# e.g. "800px,600px"
# "60em,480px"
# This setting is ignored if "fullscreen" is selected for
# *windowExpanding*, above. If not set, use constants defined
# in CalamaresUtilsGui, 800x520.
windowSize: 800px,520px
# Placement of Calamares window. Either "center" or "free".
# Whether "center" actually works does depend on the window
# manager in use (and only makes sense if you're not using
# *windowExpanding* set to "fullscreen").
windowPlacement: center
### PANELS CONFIGURATION
#
# Calamares has a main content area, and two panels (navigation
# and progress / sidebar). The panels can be controlled individually,
# or switched off. If both panels are switched off, the layout of
# the main content area loses its margins, on the assumption that
# you're doing something special.
# Kind of sidebar (panel on the left, showing progress).
# - "widget" or unset, use traditional sidebar (logo, items)
# - "none", hide it entirely
# - "qml", use calamares-sidebar.qml from branding folder
# In addition, you **may** specify a side, separated by a comma,
# from the kind. Valid sides are:
# - "left" (if not specified, uses this)
# - "right"
# - "top"
# - "bottom"
# For instance, "widget,right" is valid; so is "qml", which defaults
# to putting the sidebar on the left. Also valid is "qml,top".
# While "widget,top" is valid, the widgets code is **not** flexible
# and results will be terrible.
sidebar: widget
# Kind of navigation (button panel on the bottom).
# - "widget" or unset, use traditional navigation
# - "none", hide it entirely
# - "qml", use calamares-navigation.qml from branding folder
# In addition, you **may** specify a side, separated by a comma,
# from the kind. The same sides are valid as for *sidebar*,
# except the default is *bottom*.
navigation: widget
### STRINGS, IMAGES AND COLORS
#
# This section contains the "branding proper" of names
# and images, rather than global-look settings.
# These are strings shown to the user in the user interface.
# There is no provision for translating them -- since they
# are names, the string is included as-is.
#
# The four Url strings are the Urls used by the buttons in
# the welcome screen, and are not shown to the user. Clicking
# on the "Support" button, for instance, opens the link supportUrl.
# If a Url is empty, the corresponding button is not shown.
#
# bootloaderEntryName is how this installation / distro is named
# in the boot loader (e.g. in the GRUB menu).
#
# These strings support substitution from /etc/os-release
# if KDE Frameworks 5.58 are available at build-time. When
# enabled, ${varname} is replaced by the equivalent value
# from os-release. All the supported var-names are in all-caps,
# and are listed on the FreeDesktop.org site,
# https://www.freedesktop.org/software/systemd/man/os-release.html
# Note that ANSI_COLOR and CPE_NAME don't make sense here, and
# are not supported (the rest are). Remember to quote the string
# if it contains substitutions, or you'll get YAML exceptions.
#
# The *Url* entries are used on the welcome page, and they
# are visible as buttons there if the corresponding *show* keys
# are set to "true" (they can also be overridden).
strings:
productName: Pisilinux
shortProductName: Pisilinux
version: 2.4.4
shortVersion: 2.4.4
versionedName: Pisilinux 2.4.4
shortVersionedName: Pisilinux 2.4.4
bootloaderEntryName: Pisilinux 2.4.4
productUrl: https://calamares.io/
supportUrl: https://github.com/calamares/calamares/wiki
knownIssuesUrl: https://github.com/calamares/calamares/issues
releaseNotesUrl: https://calamares.io/news/
donateUrl: https://kde.org/community/donations/index.php
# These images are loaded from the branding module directory.
#
# productBanner is an optional image, which if present, will be shown
# on the welcome page of the application, above the welcome text.
# It is intended to have a width much greater than height.
# It is displayed at 64px height (also on HiDPI).
# Recommended size is 64px tall, and up to 460px wide.
# productIcon is used as the window icon, and will (usually) be used
# by the window manager to represent the application. This image
# should be square, and may be displayed by the window manager
# as small as 16x16 (but possibly larger).
# productLogo is used as the logo at the top of the left-hand column
# which shows the steps to be taken. The image should be square,
# and is displayed at 80x80 pixels (also on HiDPI).
# productWallpaper is an optional image, which if present, will replace
# the normal solid background on every page of the application.
# It can be any size and proportion,
# and will be tiled to fit the entire window.
# For a non-tiled wallpaper, the size should be the same as
# the overall window, see *windowSize* above (800x520).
# productWelcome is shown on the welcome page of the application in
# the middle of the window, below the welcome text. It can be
# any size and proportion, and will be scaled to fit inside
# the window. Use `welcomeExpandingLogo` to make it non-scaled.
# Recommended size is 320x150.
#
# These filenames can also use substitutions from os-release (see above).
images:
# productBanner: "banner.png"
productIcon: "squid.png"
productLogo: "squid.png"
# productWallpaper: "wallpaper.png"
productWelcome: "languages.png"
# Colors for text and background components.
#
# - SidebarBackground is the background of the sidebar
# - SidebarText is the (foreground) text color
# - SidebarBackgroundCurrent sets the background of the current step.
# Optional, and defaults to the application palette.
# - SidebarTextCurrent is the text color of the current step.
#
# These colors can **also** be set through the stylesheet, if the
# branding component also ships a stylesheet.qss. Then they are
# the corresponding CSS attributes of #sidebarApp.
style:
SidebarBackground: "#292F34"
SidebarText: "#FFFFFF"
SidebarTextCurrent: "#292F34"
SidebarBackgroundCurrent: "#D35400"
### SLIDESHOW
#
# The slideshow is displayed during execution steps (e.g. when the
# installer is actually writing to disk and doing other slow things).
# The slideshow can be a QML file (recommended) which can display
# arbitrary things -- text, images, animations, or even play a game --
# during the execution step. The QML **is** abruptly stopped when the
# execution step is done, though, so maybe a game isn't a great idea.
#
# The slideshow can also be a sequence of images (not recommended unless
# you don't want QML at all in your Calamares). The images are displayed
# at a rate of 1 every 2 seconds during the execution step.
#
# To configure a QML file, list a single filename:
# slideshow: "show.qml"
# To configure images, like the filenames (here, as an inline list):
# slideshow: [ "/etc/calamares/slideshow/0.png", "/etc/logo.png" ]
slideshow: "show.qml"
# There are two available APIs for a QML slideshow:
# - 1 (the default) loads the entire slideshow when the installation-
# slideshow page is shown and starts the QML then. The QML
# is never stopped (after installation is done, times etc.
# continue to fire).
# - 2 loads the slideshow on startup and calls onActivate() and
# onLeave() in the root object. After the installation is done,
# the show is stopped (first by calling onLeave(), then destroying
# the QML components).
#
# An image slideshow does not need to have the API defined.
slideshowAPI: 2
# These options are to customize online uploading of logs to pastebins:
# - type : Defines the kind of pastebin service to be used. Currently
# it accepts two values:
# - none : disables the pastebin functionality
# - fiche : use fiche pastebin server
# - url : Defines the address of pastebin service to be used.
# Takes string as input. Important bits are the host and port,
# the scheme is not used.
# - sizeLimit : Defines maximum size limit (in KiB) of log file to be pasted.
# The option must be set, to have the log option work.
# Takes integer as input. If < 0, no limit will be forced,
# else only last (approximately) 'n' KiB of log file will be pasted.
# Please note that upload size may be slightly over the limit (due
# to last minute logging), so provide a suitable value.
uploadServer :
type : "fiche"
url : "http://termbin.com:9999"
sizeLimit : -1
@@ -0,0 +1,12 @@
# 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: "grub2-install"
grubMkconfig: "grub2-mkconfig"
grubCfg: "/boot/grub2/grub.cfg"
grubProbe: "grub2-probe"
@@ -0,0 +1,2 @@
# Replace 'LinuxDistribution' with your distribution name - for example with 'KaOS'
distributor: PisiLinux
@@ -0,0 +1,21 @@
diff -Nuar a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py
--- a/src/modules/initcpiocfg/main.py 2024-07-04 00:05:30.000000000 +0300
+++ b/src/modules/initcpiocfg/main.py 2026-04-19 21:46:24.678005799 +0300
@@ -34,7 +34,7 @@
@return True if plymouth exists in the target, False otherwise
"""
# Used to only check existence of path /usr/bin/plymouth in target
- return target_env_call(["sh", "-c", "which plymouth"]) == 0
+ return target_env_call(["sh", "-c", "which plymouth || test -f /bin/plymouth"]) == 0
class cpuinfo(object):
@@ -244,8 +244,6 @@
if uses_btrfs:
modules.append("crc32c-intel" if cpuinfo().is_intel else "crc32c")
- else:
- hooks.append("fsck")
# Modify according to the keys in the configuration
hooks = [h for h in (hooks_prepend + hooks + hooks_append) if h not in hooks_remove]
@@ -0,0 +1,213 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# The configuration for the package manager starts with the
# *backend* key, which picks one of the backends to use.
# In `main.py` there is a base class `PackageManager`.
# Implementations must subclass that and set a (class-level)
# property *backend* to the name of the backend (e.g. "dummy").
# That property is used to match against the *backend* key here.
#
# You will have to add such a class for your package manager.
# It is fairly simple Python code. The API is described in the
# abstract methods in class `PackageManager`. Mostly, the only
# trick is to figure out the correct commands to use, and in particular,
# whether additional switches are required or not. Some package managers
# have more installer-friendly defaults than others, e.g., DNF requires
# passing --disablerepo=* -C to allow removing packages without Internet
# connectivity, and it also returns an error exit code if the package did
# not exist to begin with.
---
#
# Which package manager to use, options are:
# - apk - Alpine Linux package manager
# - apt - APT frontend for DEB and RPM
# - dnf - DNF, the new RPM frontend
# - dnf5 - DNF5, the newer new RPM frontend
# - entropy - Sabayon package manager (is being deprecated)
# - luet - Sabayon package manager (next-gen)
# - packagekit - PackageKit CLI tool
# - pacman - Pacman
# - pamac - Manjaro package manager
# - portage - Gentoo package manager
# - yum - Yum RPM frontend
# - zypp - Zypp RPM frontend
#
# Not actually a package manager, but suitable for testing:
# - dummy - Dummy manager, only logs
#
backend: pisi
#
# Often package installation needs an internet connection.
# Since you may allow system installation without a connection
# and want to offer OPTIONAL package installation, it's
# possible to have no internet, yet have this packages module
# enabled in settings.
#
# You can skip the whole module when there is no internet
# by setting "skip_if_no_internet" to true.
#
# You can run a package-manager specific update procedure
# before installing packages (for instance, to update the
# list of packages and dependencies); this is done only if there
# is an internet connection.
#
# Set "update_db" to 'true' for refreshing the database on the
# target system. On target installations, which got installed by
# unsquashing, a full system update may be needed. Otherwise
# post-installing additional packages may result in conflicts.
# Therefore set also "update_system" to 'true'.
#
# If you want to ignore software database update failures, set
# "ignore_update_db_error" to 'true'.
#
skip_if_no_internet: false
update_db: true
ignore_update_db_error: false
update_system: false
# pacman specific options
#
# *num_retries* should be a positive integer which specifies the
# number of times the call to pacman will be retried in the event of a
# failure. If it is missing, it will be set to 0.
#
# *disable_download_timeout* is a boolean that, when true, includes
# the flag --disable-download-timeout on calls to pacman. When missing,
# false is assumed.
#
# *needed_only* is a boolean that includes the pacman argument --needed
# when set to true. If missing, false is assumed.
# pacman:
# num_retries: 0
# disable_download_timeout: false
# needed_only: false
#
# List of maps with package operations such as install or remove.
# Distro developers can provide a list of packages to remove
# from the installed system (for instance packages meant only
# for the live system).
#
# A job implementing a distro specific logic to determine other
# packages that need to be installed or removed can run before
# this one. Distro developers may want to install locale packages
# or remove drivers not needed on the installed system.
# Such a job would populate a list of dictionaries in the global
# storage called "packageOperations" and that list is processed
# after the static list in the job configuration (i.e. the list
# that is in this configuration file).
#
# Allowed package operations are:
# - *install*, *try_install*: will call the package manager to
# install one or more packages. The install target will
# abort the whole installation if package-installation
# fails, while try_install carries on. Packages may be
# listed as (localized) names, or as (localized) package-data.
# See below for the description of the format.
# - *localInstall*: this is used to call the package manager
# to install a package from a path-to-a-package. This is
# useful if you have a static package archive on the install media.
# The *pacman* package manager is the only one to specially support
# this operation (all others treat this the same as *install*).
# - *remove*, *try_remove*: will call the package manager to
# remove one or more packages. The remove target will
# abort the whole installation if package-removal fails,
# while try_remove carries on. Packages may be listed as
# (localized) names.
# One additional key is recognized, to help netinstall out:
# - *source*: ignored, does get logged
# Any other key is ignored, and logged as a warning.
#
# There are two formats for naming packages: as a name or as package-data,
# which is an object notation providing package-name, as well as pre- and
# post-install scripts.
#
# Here are both formats, for installing vi. The first one just names the
# package for vi (using the naming of the installed package manager), while
# the second contains three data-items; the pre-script is run before invoking
# the package manager, and the post-script runs once it is done.
#
# - install
# - vi
# - package: vi
# pre-script: touch /tmp/installing-vi
# post-script: rm -f /tmp/installing-vi
#
# The pre- and post-scripts are optional, but you cannot leave both out
# if you do use the *package* key: using "package: vi" with neither script
# option will trick Calamares into trying to install a package named
# "package: vi", which is unlikely to work.
#
# The pre- and post-scripts are **not** executed by a shell unless you
# explicitly invoke `/bin/sh` in them. The command-lines are passed
# to exec(), which does not understand shell syntax. In other words:
#
# pre-script: ls | wc -l
#
# Will fail, because `|` is passed as a command-line argument to ls,
# as are `wc`, and `-l`. No shell pipeline is set up, and ls is likely
# to complain. Invoke the shell explicitly:
#
# pre-script: /bin/sh -c \"ls | wc -l\"
#
# The above note on shell-expansion applies to versions up-to-and-including
# Calamares 3.2.12, but will change in future.
#
# Any package name may be localized; this is used to install localization
# packages for software based on the selected system locale. By including
# the string `LOCALE` in the package name, the following happens:
#
# - if the system locale is English (any variety), then the package is not
# installed at all,
# - otherwise `$LOCALE` or `${LOCALE}` is replaced by the 'lower-cased' BCP47
# name of the 'language' part of the selected system locale (not the
# country/region/dialect part), e.g. selecting "nl_BE" will use "nl"
# here.
#
# Take care that just plain `LOCALE` will not be replaced, so `foo-LOCALE` will
# be left unchanged, while `foo-$LOCALE` will be changed. However, `foo-LOCALE`
# **will** be removed from the list of packages (i.e. not installed), if
# English is selected. If a non-English locale is selected, then `foo-LOCALE`
# will be installed, unchanged (no language-name-substitution occurs).
#
# The following installs localizations for vi, if they are relevant; if
# there is no localization, installation continues normally.
#
# - install
# - vi-$LOCALE
# - package: vi-${LOCALE}
# pre-script: touch /tmp/installing-vi
# post-script: rm -f /tmp/installing-vi
#
# When installing packages, Calamares will invoke the package manager
# with a list of package names if it can; package-data prevents this because
# of the scripts that need to run. In other words, this:
#
# - install:
# - vi
# - binutils
# - package: wget
# pre-script: touch /tmp/installing-wget
#
# This will invoke the package manager three times, once for each package,
# because not all of them are simple package names. You can speed up the
# process if you have only a few pre-scripts, by using multiple install targets:
#
# - install:
# - vi
# - binutils
# - install:
# - package: wget
# pre-script: touch /tmp/installing-wget
#
# This will call the package manager once with the package-names "vi" and
# "binutils", and then a second time for "wget". When installing large numbers
# of packages, this can lead to a considerable time savings.
#
operations:
- try_remove:
- Calamares
- calamares-theme-pisilinux
- pisilinux-welcome
@@ -0,0 +1,117 @@
diff -Nuar a/src/modules/mudur/main.py b/src/modules/mudur/main.py
--- a/src/modules/mudur/main.py 1970-01-01 02:00:00.000000000 +0200
+++ b/src/modules/mudur/main.py 2026-04-20 15:56:24.861963739 +0300
@@ -0,0 +1,66 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# === This file is part of Calamares - <http://github.com/calamares> ===
+#
+# Copyright 2014, Anke Boersma <demm@kaosx.us>
+# Copyright 2015, Philip Müller <philm@manjaro.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, either version 3 of the License, 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 os
+import shutil
+
+import libcalamares
+
+
+
+def run():
+
+ install_path = libcalamares.globalstorage.value("rootMountPoint")
+
+
+ path = os.path.join(install_path, "etc/locale.conf")
+
+ mloc = open(path,"r")
+ a=mloc.readline()
+ b=a.split("=")[1]
+
+ languages = b.split("_")[0]
+
+
+ mudur_file_path = os.path.join(install_path, "etc/conf.d/mudur")
+ lines = []
+ for l in open(mudur_file_path, "r").readlines():
+ if l.strip().startswith('language=') or l.strip().startswith('# language='):
+ if languages == "pt":
+ l = 'language="pt_BR"\n'
+ else:
+ l = 'language="%s"\n' % languages
+ lines.append(l)
+
+ open(mudur_file_path, "w").writelines(lines)
+
+ if os.path.exists(os.path.join(install_path, "etc/sudoers")):
+ os.unlink(os.path.join(install_path, "etc/sudoers"))
+
+
+ source = os.path.join(install_path, "etc/sudoers.orig")
+ target = os.path.join(install_path, "etc/sudoers")
+
+ shutil.copy(source, target)
+
+ libcalamares.utils.target_env_call(['chmod', '440', '/etc/sudoers'])
+
+ return None
diff -Nuar a/src/modules/mudur/module.desc b/src/modules/mudur/module.desc
--- a/src/modules/mudur/module.desc 1970-01-01 02:00:00.000000000 +0200
+++ b/src/modules/mudur/module.desc 2026-04-20 15:56:24.862206368 +0300
@@ -0,0 +1,6 @@
+---
+type: "job"
+name: "mudur"
+interface: "python"
+script: "main.py"
+
diff -Nuar a/src/modules/packages/main.py b/src/modules/packages/main.py
--- a/src/modules/packages/main.py 2026-03-10 17:53:55.000000000 +0300
+++ b/src/modules/packages/main.py 2026-04-20 16:05:37.041208754 +0300
@@ -350,17 +350,17 @@
libcalamares.utils.debug("Dummy backend: Running script '" + str(script) + "'")
-class PMEntropy(PackageManager):
- backend = "entropy"
+class PMpisi(PackageManager):
+ backend = "pisi"
def install(self, pkgs, from_local=False):
- check_target_env_call(["equo", "i"] + pkgs)
+ check_target_env_call(["pisi", "it"] + pkgs)
def remove(self, pkgs):
- check_target_env_call(["equo", "rm"] + pkgs)
+ check_target_env_call(["pisi", "rm","--ignore-comar"] + pkgs)
def update_db(self):
- target_env_process_output(["equo", "update"])
+ pass
def update_system(self):
# Doesn't need to update the system explicitly
diff -Nuar a/src/modules/partition/gui/EncryptWidget.cpp b/src/modules/partition/gui/EncryptWidget.cpp
--- a/src/modules/partition/gui/EncryptWidget.cpp 2026-03-10 17:53:55.000000000 +0300
+++ b/src/modules/partition/gui/EncryptWidget.cpp 2026-04-20 16:07:22.220783827 +0300
@@ -47,6 +47,7 @@
m_ui->m_passphraseLineEdit->hide();
m_ui->m_confirmLineEdit->hide();
m_ui->m_iconLabel->hide();
+ m_ui->m_encryptCheckBox->hide();
// TODO: this deserves better rendering, an icon or something, but that will
// depend on having a non-bogus implementation of systemSupportsEncryptionAcceptably
if ( systemSupportsEncryptionAcceptably() )
@@ -0,0 +1,239 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration file for Calamares
#
# This is the top-level configuration file for Calamares.
# It specifies what modules will be used, as well as some
# overall characteristics -- is this a setup program, or
# an installer. More specific configuration is devolved
# to the branding file (for the UI) and the individual
# module configuration files (for functionality).
---
# Modules can be job modules (with different interfaces) and QtWidgets view
# modules. They could all be placed in a number of different paths.
# "modules-search" is a list of strings, each of these can either be a full
# path to a directory or the keyword "local".
#
# "local" means:
# - modules in $LIBDIR/calamares/modules, with
# - settings in SHARE/calamares/modules or /etc/calamares/modules.
# In debug-mode (e.g. calamares -d) "local" also adds some paths
# that make sense from inside the build-directory, so that you
# can build-and-run with the latest modules immediately.
#
# Strings other than "local" are taken as paths and interpreted
# relative to wherever Calamares is started. It is therefore **strongly**
# recommended to use only absolute paths here. This is mostly useful
# if your distro has forks of standard Calamares modules, but also
# uses some form of upstream packaging which might overwrite those
# forked modules -- then you can keep modules somewhere outside of
# the "regular" module tree.
#
#
# YAML: list of strings.
modules-search: [ local ]
# Instances section. This section is optional, and it defines custom instances
# for modules of any kind. An instance entry has these keys:
# - *module* name, which matches the module name from the module descriptor
# (usually the name of the directory under `src/modules/`, but third-
# party modules may diverge.
# - *id* (optional) an identifier to distinguish this instance from
# all the others. If none is given, the name of the module is used.
# Together, the module and id form an instance key (see below).
# - *config* (optional) a filename for the configuration. If none is
# given, *module*`.conf` is used (e.g. `welcome.conf` for the welcome
# module)
# - *weight* (optional) In the *exec* phase of the sequence, progress
# is reported as jobs are completed. The jobs from a single module
# together contribute the full weight of that module. The overall
# progress (0 .. 100%) is divided up according to the weight of each
# module. Give modules that take a lot of time to complete, a larger
# weight to keep the overall progress moving along steadily. This
# weight overrides a weight given in the module descriptor. If no weight
# is given, uses the value from the module descriptor, or 1 if there
# isn't one there either.
#
# The primary goal of this mechanism is to allow loading multiple instances
# of the same module, with different configuration. If you don't need this,
# the instances section can safely be left empty.
#
# Module name plus instance name makes an instance key, e.g.
# "packagechooserq@licenseq", where "packagechooserq" is the module name (for the packagechooserq
# viewmodule) and "licenseq" is the instance name. In the *sequence*
# section below, use instance-keys to name instances (instead of just
# a module name, for modules which have only a single instance).
#
# Every module implicitly has an instance with the instance name equal
# to its module name, e.g. "welcome@welcome". In the *sequence* section,
# mentioning a module without a full instance key (e.g. "welcome")
# means that implicit module.
#
# An instance may specify its configuration file (e.g. `webview-home.conf`).
# The implicit instances all have configuration files named `<module>.conf`.
# This (implict) way matches the source examples, where the welcome
# module contains an example `welcome.conf`. Specify a *config* for
# any module (also implicit instances) to change which file is used.
#
# For more information on running module instances, run Calamares in debug
# mode and check the Modules page in the Debug information interface.
#
# A module that is often used with instances is shellprocess, which will
# run shell commands specified in the configuration file. By configuring
# more than one instance of the module, multiple shell sessions can be run
# during install.
#
# YAML: list of maps of string:string key-value pairs.
#instances:
#- id: licenseq
# module: packagechooserq
# config: licenseq.conf
# Sequence section. This section describes the sequence of modules, both
# viewmodules and jobmodules, as they should appear and/or run.
#
# A jobmodule instance key (or name) can only appear in an exec phase, whereas
# a viewmodule instance key (or name) can appear in both exec and show phases.
# There is no limit to the number of show or exec phases. However, the same
# module instance key should not appear more than once per phase, and
# deployers should take notice that the global storage structure is persistent
# throughout the application lifetime, possibly influencing behavior across
# phases. A show phase defines a sequence of viewmodules (and therefore
# pages). These viewmodules can offer up jobs for the execution queue.
#
# An exec phase displays a progress page (with brandable slideshow). This
# progress page iterates over the modules listed in the *immediately
# preceding* show phase, and enqueues their jobs, as well as any other jobs
# from jobmodules, in the order defined in the current exec phase.
#
# It then executes the job queue and clears it. If a viewmodule offers up a
# job for execution, but the module name (or instance key) isn't listed in the
# immediately following exec phase, this job will not be executed.
#
# YAML: list of lists of strings.
sequence:
- show:
- welcome
# - notesqml
# - packagechooserq@licenseq
- locale
- keyboard
- partition
- users
# - tracking
- summary
- exec:
# - dummycpp
# - dummyprocess
# - dummypython
- partition
# - zfs
- mount
- unpackfs
- machineid
- fstab
- locale
- keyboard
- localecfg
- mudur
# - luksbootkeyfile
# - luksopenswaphookcfg
# - dracutlukscfg
# - plymouthcfg
# - zfshostid
# - initcpiocfg
- initcpio
- users
- displaymanager
- networkcfg
- hwclock
- services-systemd
# - dracut
# - initramfs
- grubcfg
- removeuser
- packages
- bootloader
- umount
- 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.
#
# A branding component can also ship a QML slideshow for execution pages,
# along with translation files.
#
# Only the name of the branding component (directory) should be specified
# here, Calamares then takes care of finding it and loading the contents.
#
# YAML: string.
branding: pisilinux
# 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, but Calamares will complain if
# this is not explicitly set.
#
# 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), but Calamares will complain if
# this is not explicitly set.
#
# YAML: boolean.
dont-chroot: false
# If this is set to true, Calamares refers to itself as a "setup program"
# rather than an "installer". Defaults to the value of dont-chroot, but
# Calamares will complain if this is not explicitly set.
oem-setup: false
# If this is set to true, the "Cancel" button will be disabled entirely.
# The button is also hidden from view.
#
# This can be useful if when e.g. Calamares is used as a post-install
# configuration tool and you require the user to go through all the
# configuration steps.
#
# Default is false, but Calamares will complain if this is not explicitly set.
#
# YAML: boolean.
disable-cancel: false
# If this is set to true, the "Cancel" button will be disabled once
# you start the 'Installation', meaning there won't be a way to cancel
# the Installation until it has finished or installation has failed.
#
# Default is false, but Calamares will complain if this is not explicitly set.
#
# YAML: boolean.
disable-cancel-during-exec: false
# If this is set to true, the "Next" and "Back" button will be hidden once
# you start the 'Installation'.
#
# Default is false, but Calamares will complain if this is not explicitly set.
#
# YAML: boolean.
hide-back-and-next-during-exec: false
# If this is set to true, then once the end of the sequence has
# been reached, the quit (done) button is clicked automatically
# and Calamares will close. Default is false: the user will see
# that the end of installation has been reached, and that things are ok.
#
#
quit-at-end: false
@@ -0,0 +1,94 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Unsquash / unpack a filesystem. Multiple sources are supported, and
# they may be squashed or plain filesystems.
#
# Configuration:
#
# from globalstorage: rootMountPoint
# from job.configuration: the path to where to mount the source image(s)
# for copying an ordered list of unpack mappings for image file <->
# target dir relative to rootMountPoint.
---
# Each list item is unpacked, in order, to the target system.
#
# Each list item has the following **mandatory** attributes:
# - *source* path relative to the live / intstalling system to the image
# - *sourcefs* the type of the source files; valid entries are
# - `ext4` (copies the filesystem contents)
# - `squashfs` (unsquashes)
# - `file` (copies a file or directory)
# - (may be others if mount supports it)
# - *destination* path relative to rootMountPoint (so in the target
# system) where this filesystem is unpacked. It may be an
# empty string, which effectively is / (the root) of the target
# system.
#
# Each list item **optionally** can include the following attributes:
# - *exclude* is a list of values that is expanded into --exclude
# arguments for rsync (each entry in exclude gets its own --exclude).
# - *excludeFile* is a single file that is passed to rsync as an
# --exclude-file argument. This should be a full pathname
# inside the **host** filesystem.
# - *weight* is useful when the entries take wildly different
# times to unpack (e.g. with a squashfs, and one single file)
# and the total weight of this module should be distributed
# differently between the entries. (This is only relevant when
# there is more than one entry; by default all the entries
# have the same weight, 1)
#
# EXAMPLES
#
# Usually you list a filesystem image to unpack; you can use
# squashfs or an ext4 image. An empty destination is equivalent to "/",
# the root of the target system. The destination directory must exist
# in the target system.
#
# - source: "/path/to/filesystem.sqfs"
# sourcefs: "squashfs"
# destination: ""
#
# Multiple entries are unpacked in-order; if there is more than one
# item then only the first must exist beforehand -- it's ok to
# create directories with one unsquash and then to use those
# directories as a target from a second unsquash.
#
# - source: "/path/to/another/filesystem.img"
# sourcefs: "ext4"
# destination: ""
# - source: "/path/to/another/filesystem2.img"
# sourcefs: "ext4"
# destination: "/usr/lib/extra"
#
# You can list filesystem source paths relative to the Calamares run
# directory, if you use -d (this is only useful for testing, though).
#
# - source: ./example.sqfs
# sourcefs: squashfs
# destination: ""
#
# You can list individual files (copied one-by-one), or directories
# (the files inside this directory are copied directly to the destination,
# so no "dummycpp/" subdirectory is created in this example).
# Do note that the target directory must exist already (e.g. from
# extracting some other filesystem).
#
# - source: ../CHANGES
# sourcefs: file
# destination: "/tmp/derp"
# - source: ../src/modules/dummycpp
# sourcefs: file
# destination: "/tmp/derp"
#
# The *destination* and *source* are handed off to rsync, so the semantics
# of trailing slashes apply. In order to *rename* a file as it is
# copied, specify one single file (e.g. CHANGES) and a full pathname
# for its destination name, as in the example below.
unpack:
- source: "/bootmnt/pisi/pisi.sqfs"
sourcefs: "squashfs"
destination: ""
# excludeFile: /etc/calamares/modules/unpackfs/exclude-list.txt
+312
View File
@@ -0,0 +1,312 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the one-user-system user module.
#
# Besides these settings, the users module also places the following
# keys into the Global Storage area, based on user input in the view step.
#
# - hostname
# - username
# - password (obscured)
# - autologinUser (if enabled, set to username)
#
# These Global Storage keys are set when the configuration for this module
# is read and when they are modified in the UI.
---
### GROUPS CONFIGURATION
#
# The system has groups of uses. Some special groups must be
# created during installation. Optionally, there are special
# groups for users who can use sudo and for supporting autologin.
# Used as default groups for the created user.
# Adjust to your Distribution defaults.
#
# Each entry in the *defaultGroups* list is either:
# - a string, naming a group; this is a **non**-system group
# which does not need to exist in the target system; if it
# does not exist, it will be created.
# - an entry with subkeys *name*, *must_exist* and *system*;
# if the group *must_exist* and does not, an error is thrown
# and the installation fails.
#
# The group is created if it does not exist, and it is
# created as a system group (GID < 1000) or user group
# (GID >= 1000) depending on the value of *system*.
defaultGroups:
- name: users
must_exist: true
system: true
- lp
- video
- network
- storage
- name: wheel
must_exist: false
system: true
- audio
- name: nopasswdlogin
must_exist: false
system: true
# When *sudoersGroup* is set to a non-empty string, Calamares creates a
# sudoers file for the user. This file is located at:
# `/etc/sudoers.d/10-installer`
# Remember to add the (value of) *sudoersGroup* to *defaultGroups*.
#
# If your Distribution already sets up a group of sudoers in its packaging,
# remove this setting (delete or comment out the line below). Otherwise,
# the setting will be duplicated in the `/etc/sudoers.d/10-installer` file,
# potentially confusing users.
sudoersGroup: wheel
# Some Distributions require a 'autologin' group for the user.
# Autologin causes a user to become automatically logged in to
# the desktop environment on boot.
# Disable when your Distribution does not require such a group.
#
# Remember to add the (value of) *autologinGroup* to *defaultGroups*.
autologinGroup: autologin
# See also *user.nopasswd_group* for another group that is optionally added to the user
### ROOT AND SUDO
#
# Some distributions have a root user enabled for login. Others
# rely entirely on sudo or similar mechanisms to raise privileges.
# If set to `false` (the default), writes a sudoers file with `ALL=(ALL)`
# so that commands can be run as any user. If set to `true`, writes
# `ALL=(ALL:ALL)` so that any user and any group can be chosen.
sudoersConfigureWithGroup: false
# Setting this to false, causes the root account to be disabled.
# When disabled, hides the "Use the same password for administrator"
# checkbox. Also hides the "Choose a password" and associated text-inputs.
setRootPassword: true
# You can control the initial state for the 'reuse password for root'
# checkbox here. Possible values are:
# - true to check or
# - false to uncheck
#
# When checked, the user password is used for the root account too.
#
# NOTE: *doReusePassword* requires *setRootPassword* to be enabled.
doReusePassword: false
### PASSWORDS AND LOGIN
#
# Autologin is convenient for single-user systems, but depends on
# the location of the machine if it is practical. "Password strength"
# measures measures might improve security by enforcing hard-to-guess
# passwords, or might encourage a post-it-under-the-keyboard approach.
# Distributions are free to steer their users to one kind of password
# or another. Weak(er) passwords may be allowed, may cause a warning,
# or may be forbidden entirely.
# Autologin choice can be display to the user.
# Possible values are:
# - true to display it
# - false to hide it
# By default, this value is set to false.
displayAutologin: false
# You can control the initial state for the 'autologin checkbox' here.
# Possible values are:
# - true to check or
# - false to uncheck
# These set the **initial** state of the checkbox.
doAutologin: false
# These are optional password-requirements that a distro can enforce
# on the user. The values given in this sample file set only very weak
# validation settings.
#
# Calamares itself supports two checks:
# - minLength
# - maxLength
# In this sample file, the values are set to -1 which means "no
# minimum", "no maximum". This allows any password at all.
# No effort is done to ensure that the checks are consistent
# (e.g. specifying a maximum length less than the minimum length
# will annoy users).
#
# Calamares supports password checking through libpwquality.
# The libpwquality check relies on the (optional) libpwquality library.
# The value for libpwquality is a list of configuration statements like
# those found in pwquality.conf. The statements are handed off to the
# libpwquality parser for evaluation. The check is ignored if
# libpwquality is not available at build time (generates a warning in
# the log). The Calamares password check rejects passwords with a
# score of < 40 with the given libpwquality settings.
#
# (additional checks may be implemented in CheckPWQuality.cpp and
# wired into UsersPage.cpp)
#
# To disable all password validations:
# - comment out the relevant 'passwordRequirements' keys below,
# or set minLength and maxLength to -1.
# - disable libpwquality at build-time.
# To allow all passwords, but provide warnings:
# - set both 'allowWeakPasswords' and 'allowWeakPasswordsDefault' to true.
# (That will show the box *Allow weak passwords* in the user-
# interface, and check it by default).
# - configure password-checking however you wish.
# To require specific password characteristics:
# - set 'allowWeakPasswords' to false (the default)
# - configure password-checking, e.g. with NIST settings
# These are very weak -- actually, none at all -- requirements
passwordRequirements:
# minLength: -1 # Password at least this many characters
# maxLength: -1 # Password at most this many characters
libpwquality:
- minlen=0
- minclass=0
# These are "you must have a password, any password" -- requirements
#
# passwordRequirements:
# minLength: 1
# These are requirements the try to follow the suggestions from
# https://pages.nist.gov/800-63-3/sp800-63b.html , "Digital Identity Guidelines".
# Note that requiring long and complex passwords has its own cost,
# because the user has to come up with one at install time.
# Setting 'allowWeakPasswords' to false and 'doAutologin' to false
# will require a strong password and prevent (graphical) login
# without the password. It is likely to be annoying for casual users.
#
# passwordRequirements:
# minLength: 8
# maxLength: 64
# libpwquality:
# - minlen=8
# - maxrepeat=3
# - maxsequence=3
# - usersubstr=4
# - badwords=linux
# You can control the visibility of the 'strong passwords' checkbox here.
# Possible values are:
# - true to show or
# - false to hide (default)
# the checkbox. This checkbox allows the user to choose to disable
# password-strength-checks. By default the box is **hidden**, so
# that you have to pick a password that satisfies the checks.
allowWeakPasswords: false
# You can control the initial state for the 'strong passwords' checkbox here.
# Possible values are:
# - true to uncheck or
# - false to check (default)
# the checkbox by default. Since the box is labeled to enforce strong
# passwords, in order to **allow** weak ones by default, the box needs
# to be unchecked.
allowWeakPasswordsDefault: false
# User settings
#
# The user can enter a username, but there are some other
# hidden settings for the user which are configurable in Calamares.
#
# Key *user* has the following sub-keys:
#
# - *shell* Shell to be used for the regular user of the target system.
# There are three possible kinds of settings:
# - unset (i.e. commented out, the default), act as if set to /bin/bash
# - empty (explicit), don't pass shell information to useradd at all
# and rely on a correct configuration file in /etc/default/useradd
# - set, non-empty, use that path as shell. No validation is done
# that the shell actually exists or is executable.
# - *forbidden_names* Login names that may not be used. This list always
# contains "root" and "nobody", but may be extended to list other special
# names for a given distro (eg. "video", or "mysql" might not be a valid
# end-user login name).
# - *home_permissions* Home directory of the user is given **approximately**
# this set of permissions. If not set, there is no default and no
# permission-setting is done (uses defaults of `useradd` in the target).
# A umask is computed from these permissions
# and passed to `useradd`.
#
# You may write permissions as:
# - write "NNN" (three octal digits) or
# - write "oNNN" (small 'o' and three octal digits) or
# - write "rwxrwxrwx" (like the output of ls, with a - for unset bits)
# The following permissions mean the same thing: "o750", "rwxr-x---" .
# - *nopasswd_group* If set, **and** the user sets no password, then
# the user is added to this group as well. Whether "no password" is
# allowed depends on other settings in this module; distributions that
# require a specific group for "no password" login should set this
# **and** configure the group in the *defaultGroups* section, above.
# The default is unset; this example configuration is non-default.
user:
shell: /bin/bash
forbidden_names: [ root ]
home_permissions: "o700"
nopasswd_group: "nopasswdlogin"
# Hostname settings
#
# The user can enter a hostname; this is configured into the system
# in some way. There are settings for how a hostname is guessed (as
# a default / suggestion) and where (or how) the hostname is set in
# the target system.
#
# Key *hostname* has the following sub-keys:
#
# - *location* How the hostname is set in the target system:
# - *None*, to not set the hostname at all
# - *EtcFile*, to write to `/etc/hostname` directly
# - *Etc*, identical to above
# - *Hostnamed*, to use systemd hostnamed(1) over DBus
# - *Transient*, to remove `/etc/hostname` from the target
# The default is *EtcFile*. Setting this to *None* or *Transient* will
# hide the hostname field.
# - *writeHostsFile* Should /etc/hosts be written with a hostname for
# this machine (also adds localhost and some ipv6 standard entries).
# Defaults to *true*.
# - *template* Is a simple template for making a suggestion for the
# hostname, based on user data. The default is "${first}-${product}".
# This is used only if the hostname field is shown. KMacroExpander is
# used; write `${key}` where `key` is one of the following:
# - *first* User's first name (whatever is first in the User Name field,
# which is first-in-order but not necessarily a "first name" as in
# "given name" or "name by which you call someone"; beware of western bias)
# - *name* All the text in the User Name field.
# - *login* The login name (which may be suggested based on User Name)
# - *product* The hardware product, based on DMI data
# - *product2* The product as described by Qt
# - *cpu* CPU name
# - *host* Current hostname (which may be a transient hostname)
# Literal text in the template is preserved. Calamares tries to map
# `${key}` values to something that will fit in a hostname, but does not
# apply the same to literal text in the template. Do not use invalid
# characters in the literal text, or no suggeston will be done.
# - *forbidden_names* lists hostnames that may not be used. This list
# always contains "localhost", but may list others that are unsuitable
# or broken in special ways.
hostname:
location: EtcFile
writeHostsFile: true
template: "derp-${cpu}"
forbidden_names: [ localhost ]
# Enable Active Directory enrollment support (opt-in)
#
# This uses realmd to enroll the machine in an Active Directory server
# It requires realmd as a runtime dependency of Calamares, if enabled
allowActiveDirectory: false
presets:
fullName:
# value: "OEM User"
editable: true
loginName:
# value: "oem"
editable: true
+18 -3
View File
@@ -11,7 +11,7 @@
<License>LGPLv2</License>
<Summary>A distribution independent installer framework</Summary>
<Description>Calamares is a distribution-independent system installer, with an advanced partitioning feature for both manual and automated partitioning operations.</Description>
<Archive sha1sum="0a89a031e963c37ac5641d6a0d429c3477f48d45" type="targz">https://github.com/calamares/calamares/archive/v3.3.8.tar.gz</Archive>
<Archive sha1sum="3ad270550be27a447ee9c9fff61a580ec526783a" type="targz">https://codeberg.org/Calamares/calamares/releases/download/v3.4.2/calamares-3.4.2.tar.gz</Archive>
<BuildDependencies>
<Dependency>gettext-devel</Dependency>
<Dependency>yaml-cpp</Dependency>
@@ -55,9 +55,9 @@
<Dependency>libplasma-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">pisilocalayar.patch</Patch>
<Patch level="1">pisi-ayar.patch</Patch>
<Patch level="1">pisi_set_hostname2.patch</Patch>
<Patch level="1">no_fsck_and_pymouth2.patch</Patch>
<!-- <Patch level="1">no_fsck_and_pymouth3.patch</Patch> -->
</Patches>
</Source>
@@ -131,10 +131,25 @@
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/share/applications/calamares.desktop">calamares.desktop</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/locale.conf">locale.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/calamares/modules/bootloader.conf">bootloader.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/calamares/modules/unpackfs.conf">unpackfs.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/calamares/modules/grub.conf">grub.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/calamares/modules/grubconf.conf">grubconf.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/calamares/modules/packages.conf">packages.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/calamares/modules/users.conf">users.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/calamares/settings.conf">settings.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/calamares/branding/default/branding.desc">branding.desc</AdditionalFile>
</AdditionalFiles>
</Package>
<History>
<Update release="23">
<Date>2026-04-20</Date>
<Version>3.4.2</Version>
<Comment>Version bump.</Comment>
<Name>Pisi Linux Community</Name>
<Email>admin@pisilinux.org</Email>
</Update>
<Update release="22">
<Date>2026-04-16</Date>
<Version>3.3.8</Version>