aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-laptop/framework_tool/framework_tool-9999.ebuild')
-rw-r--r--app-laptop/framework_tool/framework_tool-9999.ebuild119
1 files changed, 119 insertions, 0 deletions
diff --git a/app-laptop/framework_tool/framework_tool-9999.ebuild b/app-laptop/framework_tool/framework_tool-9999.ebuild
new file mode 100644
index 000000000..8dc90e32f
--- /dev/null
+++ b/app-laptop/framework_tool/framework_tool-9999.ebuild
@@ -0,0 +1,119 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+is_live() {
+ [[ ${PV} == 9999 ]]
+}
+
+CRATES="
+"
+
+if ! is_live; then
+ GIT_COMMIT_UEFI_RS="76130a0f1c1585012e598b8c514526bac09c68e0"
+ GIT_COMMIT_SMBIOS_LIB="b3e2fff8a6f4b8c2d729467cbbf0c8c41974cd1c"
+
+ declare -A GIT_CRATES=(
+ [uefi]="https://github.com/FrameworkComputer/uefi-rs;${GIT_COMMIT_UEFI_RS};uefi-rs-%commit%/uefi"
+ [uefi-services]="https://github.com/FrameworkComputer/uefi-rs;${GIT_COMMIT_UEFI_RS};uefi-rs-%commit%/uefi-services"
+ [smbios-lib]="https://github.com/FrameworkComputer/smbios-lib;${GIT_COMMIT_SMBIOS_LIB}"
+ )
+fi
+
+inherit cargo
+
+MY_PN="framework-system"
+
+if is_live; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/FrameworkComputer/framework-system.git"
+else
+ if [[ ${PV} == *_pre* || ${PV} == *_p* ]]; then
+ GIT_COMMIT=""
+ [[ -n ${GIT_COMMIT} ]] ||
+ die "GIT_COMMIT is not defined for snapshot ebuild"
+ MY_PV="${GIT_COMMIT}"
+ MY_P="${MY_PN}-${MY_PV}"
+ else
+ MY_PV="v${PV}"
+ MY_P="${MY_PN}-${PV}"
+ fi
+
+ SRC_URI="
+ https://github.com/FrameworkComputer/framework-system/archive/${MY_PV}.tar.gz -> ${MY_PN}-${PV}.tar.gz
+ ${CARGO_CRATE_URIS}
+ "
+ S="${WORKDIR}/${MY_P}"
+
+ KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Tool to interact with a Framework Laptop's hardware system"
+HOMEPAGE="https://github.com/FrameworkComputer/framework-system"
+
+LICENSE="BSD"
+# Crate licenses
+LICENSE+=" Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 Boost-1.0 MIT MPL-2.0 Unicode-DFS-2016 Unlicense ZLIB"
+
+SLOT="0"
+
+RDEPEND="
+ virtual/libudev:=
+ virtual/libusb:1
+"
+
+DEPEND="
+ ${RDEPEND}
+"
+
+DOCS=( README.md support-matrices.md )
+
+# Usual setting for a Rust package
+QA_FLAGS_IGNORED="usr/bin/framework_tool"
+
+src_unpack() {
+ if is_live; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Upstream uses [patch] on some dependencies in Cargo.toml,
+ # which are not patched by cargo.eclass's ${ECARGO_HOME}/config
+ local crate commit crate_uri crate_dir
+ local -a sed_scripts
+ for crate in "${!GIT_CRATES[@]}"; do
+ IFS=';' read -r \
+ crate_uri commit crate_dir <<< "${GIT_CRATES[${crate}]}"
+ # Taken from dev-util/difftastic::gentoo ebuilds
+ sed_scripts+=(
+ "s|^(${crate}[[:space:]]*=[[:space:]]*[{].*)([[:space:]]*git[[:space:]]*=[[:space:]]*['\"][[:graph:]]+['\"][[:space:]]*)(.*[}])|\1path = '${WORKDIR}/${crate_dir//%commit%/${commit}}'\3|;"
+ "s|^(${crate}[[:space:]]*=[[:space:]]*[{].*)([,][[:space:]]*branch[[:space:]]*=[[:space:]]*['\"][[:graph:]]+['\"][[:space:]]*)(.*[}])|\1\3|;"
+ )
+ done
+ sed -i -E -e "${sed_scripts[*]}" Cargo.toml ||
+ die "Failed to override dependencies in Cargo.toml"
+}
+
+src_install() {
+ dobin target/release/framework_tool
+ einstalldocs
+}
+
+pkg_postinst() {
+ [[ -n ${REPLACING_VERSIONS} ]] && return
+ elog "Framework Laptop 13 Ryzen 7040 Series users might need to"
+ elog "follow these steps to use most features of framework_tool:"
+ elog
+ elog "1. Disable kernel_lockdown(7)"
+ elog "2. Run 'framework_tool' with option '--driver portio'"
+ elog
+ elog "For more information, please consult:"
+ elog " https://github.com/FrameworkComputer/framework-system/issues/20"
+}