summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Ammerlaan <andrewammerlaan@gentoo.org>2024-03-22 21:53:17 +0100
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2024-03-22 21:54:55 +0100
commit618852ed64e5fbfc546bee4444c7663164646eac (patch)
tree0fd82f796d877f60b2ea05ef3a7ce88ede64f0e7
parentprofiles: drop mask on old caffe2/pytorch version dropped (diff)
downloadgentoo-618852ed64e5fbfc546bee4444c7663164646eac.tar.gz
gentoo-618852ed64e5fbfc546bee4444c7663164646eac.tar.bz2
gentoo-618852ed64e5fbfc546bee4444c7663164646eac.zip
app-admin/calamares: add 3.3.5
- adds (maksed) qt6 support - adds gentoo branding (read from /etc/os-release) - drop tests requiring toml Closes: https://bugs.gentoo.org/865265 Closes: https://bugs.gentoo.org/925724 Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
-rw-r--r--app-admin/calamares/Manifest1
-rw-r--r--app-admin/calamares/calamares-3.3.5.ebuild167
-rw-r--r--app-admin/calamares/files/calamares-gentoo-branding.desc239
-rw-r--r--profiles/base/package.use.mask4
4 files changed, 411 insertions, 0 deletions
diff --git a/app-admin/calamares/Manifest b/app-admin/calamares/Manifest
index 9301d4735645..30eda62874ab 100644
--- a/app-admin/calamares/Manifest
+++ b/app-admin/calamares/Manifest
@@ -1 +1,2 @@
DIST calamares-3.2.60.tar.gz 4260547 BLAKE2B edf300ce9d534cd506b2341b3ce314bbde7fcc6dac40ad2307e549bbeab7a63ddfe6d7ae8c8176ee1ad4e4b02c9eadcd5efc66872e1f464c39200d8d117dca80 SHA512 dfc01212f74694f10d40dd1d1ad61db384c83021dc9cd4753027a9cf40b92c8e8b2d5032df76533a8f22c05448aba546c9bb21c38c03fb0cb8d7de35fb79fb7f
+DIST calamares-3.3.5.tar.gz 4722988 BLAKE2B bc3270fbc2f804c46008f1f0a106719b779a07d7d5d3cc9f1ab17da7597ebb5dfebc8793036e19570b0048afb667df4b9fed55e813374d7465513ea048e00ffc SHA512 6846e13455e4fa38bd4d5061eece1baf5a972700f489dc1e35d988cfb5359650c63f79f9453431f1aff722af696260504c27f0c000490d781ab5fe03a5c46cf2
diff --git a/app-admin/calamares/calamares-3.3.5.ebuild b/app-admin/calamares/calamares-3.3.5.ebuild
new file mode 100644
index 000000000000..18227c7ccfcf
--- /dev/null
+++ b/app-admin/calamares/calamares-3.3.5.ebuild
@@ -0,0 +1,167 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_TEST="true"
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit ecm python-single-r1
+
+DESCRIPTION="Distribution-independent installer framework"
+HOMEPAGE="https://calamares.io"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="5"
+KEYWORDS="~amd64"
+IUSE="+networkmanager qt6 +upower"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+QT5_MIN="5.15.0"
+KF_QT5_MIN="5.78"
+QT6_MIN="6.5.0"
+KF_QT6_MIN="5.240"
+
+BDEPEND="
+ qt6? (
+ >=dev-qt/qttools-${QT6_MIN}:6[linguist]
+ >=kde-frameworks/extra-cmake-modules-${KF_QT6_MIN}
+ )
+ !qt6? (
+ >=dev-qt/linguist-tools-${QT5_MIN}:5
+ >=kde-frameworks/extra-cmake-modules-${KF_QT5_MIN}
+ )
+"
+COMMON_DEPEND="${PYTHON_DEPS}
+ dev-cpp/yaml-cpp:=
+ $(python_gen_cond_dep '
+ >=dev-libs/boost-1.72.0:=[python,${PYTHON_USEDEP}]
+ dev-libs/libpwquality[${PYTHON_USEDEP}]
+ ')
+ qt6? (
+ >=dev-qt/qtbase-${QT6_MIN}:6[concurrent,dbus,gui,network,widgets,xml]
+ >=dev-qt/qtdeclarative-${QT6_MIN}:6
+ >=dev-qt/qtsvg-${QT6_MIN}:6
+ >=dev-qt/qtwebengine-${QT6_MIN}:6[widgets]
+ dev-qt/kdsingleapplication[qt6]
+ >=kde-frameworks/kconfig-${KF_QT6_MIN}:6
+ >=kde-frameworks/kcoreaddons-${KF_QT6_MIN}:6
+ >=kde-frameworks/kcrash-${KF_QT6_MIN}:6
+ >=kde-frameworks/ki18n-${KF_QT6_MIN}:6
+ >=kde-frameworks/kpackage-${KF_QT6_MIN}:6
+ >=kde-frameworks/kparts-${KF_QT6_MIN}:6
+ >=kde-frameworks/kservice-${KF_QT6_MIN}:6
+ >=kde-frameworks/kwidgetsaddons-${KF_QT6_MIN}:6
+ sys-auth/polkit-qt[qt6(-)]
+ >=sys-libs/kpmcore-24.01.75:6=
+ )
+ !qt6? (
+ >=dev-qt/qtconcurrent-${QT5_MIN}:5
+ >=dev-qt/qtdbus-${QT5_MIN}:5
+ >=dev-qt/qtdeclarative-${QT5_MIN}:5
+ >=dev-qt/qtgui-${QT5_MIN}:5
+ >=dev-qt/qtnetwork-${QT5_MIN}:5
+ >=dev-qt/qtsvg-${QT5_MIN}:5
+ >=dev-qt/qtwebengine-${QT5_MIN}:5[widgets]
+ >=dev-qt/qtwidgets-${QT5_MIN}:5
+ >=dev-qt/qtxml-${QT5_MIN}:5
+ dev-qt/kdsingleapplication[-qt6]
+ >=kde-frameworks/kconfig-${KF_QT5_MIN}:5
+ >=kde-frameworks/kcoreaddons-${KF_QT5_MIN}:5
+ >=kde-frameworks/kcrash-${KF_QT5_MIN}:5
+ >=kde-frameworks/ki18n-${KF_QT5_MIN}:5
+ >=kde-frameworks/kpackage-${KF_QT5_MIN}:5
+ >=kde-frameworks/kparts-${KF_QT5_MIN}:5
+ >=kde-frameworks/kservice-${KF_QT5_MIN}:5
+ >=kde-frameworks/kwidgetsaddons-${KF_QT5_MIN}:5
+ sys-auth/polkit-qt[qt5(+)]
+ >=sys-libs/kpmcore-20.04.0:5=
+ )
+ sys-apps/dbus
+ sys-apps/dmidecode
+ virtual/libcrypt:=
+"
+DEPEND="${COMMON_DEPEND}
+ test? (
+ !qt6? ( dev-qt/qttest:5 )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ app-admin/sudo
+ dev-libs/libatasmart
+ net-misc/rsync
+ || (
+ sys-boot/grub:2
+ sys-apps/systemd[boot(-)]
+ sys-apps/systemd-utils[boot]
+ )
+ sys-boot/os-prober
+ sys-fs/squashfs-tools
+ sys-libs/timezone-data
+ virtual/udev
+ networkmanager? ( net-misc/networkmanager )
+ upower? ( sys-power/upower )
+"
+
+src_prepare() {
+ ecm_src_prepare
+ export PYTHON_INCLUDE_DIRS="$(python_get_includedir)" \
+ PYTHON_INCLUDE_PATH="$(python_get_library_path)"\
+ PYTHON_CFLAGS="$(python_get_CFLAGS)"\
+ PYTHON_LIBS="$(python_get_LIBS)"
+
+ sed -i -e 's:pkexec /usr/bin/calamares:calamares-pkexec:' \
+ calamares.desktop || die
+ sed -i -e 's:Icon=calamares:Icon=drive-harddisk:' \
+ calamares.desktop || die
+
+ cp "${FILESDIR}/calamares-gentoo-branding.desc" src/branding/default/branding.desc || die "Failed to overwrite branding file"
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DINSTALL_CONFIG=ON
+ -DINSTALL_COMPLETION=ON
+ -DINSTALL_POLKIT=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_LIBPARTED=ON
+ -DWITH_PYTHON=ON
+ # Use system instead
+ -DWITH_PYBIND11=OFF
+ -DBUILD_APPDATA=ON
+ -DWITH_QT6="$(usex qt6)"
+ )
+
+ ecm_src_configure
+}
+
+src_test() {
+ local myctestargs=(
+ # Skipped tests:
+ # load-dracut: tries and fails to find Dracut config
+ # libcalamaresnetworktest: needs network
+ # libcalamaresutilstest: inspects /tmp (expects namespace?)
+ #
+ # Need investigation:
+ # test_libcalamaresuipaste
+ # validate-netinstall
+ # validate-services-systemd
+ # localetest
+ # machineidtest
+ # packagechoosertest
+ #
+ # Requires removed dev-python/toml
+ # lint-displaymanager
+ #
+ # E1101
+ # lint-dummypython
+ -E "(load-dracut|libcalamaresnetworktest|libcalamaresutilstest|test_libcalamaresuipaste|validate-netinstall|validate-services-systemd|localetest|machineidtest|packagechoosertest|lint-displaymanager|lint-dummypython)"
+ )
+
+ cmake_src_test
+}
+
+src_install() {
+ ecm_src_install
+ dobin "${FILESDIR}"/calamares-pkexec
+}
diff --git a/app-admin/calamares/files/calamares-gentoo-branding.desc b/app-admin/calamares/files/calamares-gentoo-branding.desc
new file mode 100644
index 000000000000..9b107b45e3e2
--- /dev/null
+++ b/app-admin/calamares/files/calamares-gentoo-branding.desc
@@ -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: true
+
+# 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: ${PRETTY_NAME}
+ shortProductName: ${NAME}
+ version: ${VERSION_ID}
+ shortVersion: ${VERSION_ID}
+ versionedName: ${PRETTY_NAME} ${VERSION_ID}
+ shortVersionedName: ${NAME} ${VERSION_ID}
+ bootloaderEntryName: ${NAME}
+ productUrl: ${HOME_URL}
+ supportUrl: ${SUPPORT_URL}
+ knownIssuesUrl: ${BUG_REPORT_URL}
+ releaseNotesUrl: ${HOME_URL}
+ donateUrl: ${HOME_URL}
+
+# 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
diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask
index f7d287da3287..b65aebba34ee 100644
--- a/profiles/base/package.use.mask
+++ b/profiles/base/package.use.mask
@@ -6,6 +6,10 @@
# This file is only for generic masks. For arch-specific masks (i.e.
# mask everywhere, unmask on arch/*) use arch/base.
+# Andrew Ammerlaan <andrewammerlaan@gentoo.org> (2024-03-22)
+# Building with qt6 requires (masked) kde-frameworks:6
+app-admin/calamares qt6
+
# Viorel Munteanu <ceamac@gentoo.org> (2024-03-19)
# The live version needs a new BDEPEND for doc
=app-emulation/virtualbox-9999 doc