You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-admin/calamares/calamares-3.3.5.ebuild

168 lines
4.3 KiB

# 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
}