diff --git a/sys-libs/libcpuid/Manifest b/sys-libs/libcpuid/Manifest new file mode 100644 index 000000000..4bb95722d --- /dev/null +++ b/sys-libs/libcpuid/Manifest @@ -0,0 +1 @@ +DIST libcpuid-0.4.1.tar.gz 132126 BLAKE2B 9697ef1eda72a3412243c55c4695216fc6a82421a89b60f7c33d2405fe7bde727d95fd6bfb1d4b0ee216efd47fa03cac4f34815b0394c8ddb5e9d6821fd7f2f7 SHA512 2644d6f6c12f7290f2b562726fa66becb77f0ebcc415bac41458513b9f1b5b5a9afdaa5e68a6766b7fe3d7e242ada3c42ecae61ff111dc1f118e56a4edc3abb2 diff --git a/sys-libs/libcpuid/libcpuid-0.4.1.ebuild b/sys-libs/libcpuid/libcpuid-0.4.1.ebuild new file mode 100644 index 000000000..0794497fb --- /dev/null +++ b/sys-libs/libcpuid/libcpuid-0.4.1.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools + +DESCRIPTION="A small C library for x86 (and x86_64) CPU detection and feature extraction" +HOMEPAGE="http://libcpuid.sourceforge.net" +SRC_URI="https://github.com/anrieff/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +LICENSE="BSD-2" +SLOT="0/14" +KEYWORDS="-* amd64 x86" +IUSE="test" +RESTRICT="primaryuri" + +src_prepare() { + default + eautoreconf +} + +src_test() { + emake test +} diff --git a/sys-process/cpu-x/Manifest b/sys-process/cpu-x/Manifest new file mode 100644 index 000000000..9fedf3e9d --- /dev/null +++ b/sys-process/cpu-x/Manifest @@ -0,0 +1 @@ +DIST cpu-x-3.2.4.tar.gz 1834895 BLAKE2B 834e6a11bfcff24c19fb284c4e5769dcf57d6734094bdb9d4b29114d8838da9ff249758f20f21dc44adbae1e9669d3e1be061767605eb7a33f77342056ce28a4 SHA512 67b3d9f3fe29f1164bfb4ffcd686196974300feebf702b4c4bf45490a0c5107b7d32f5800a279fc7d570c9830cf8881df15c09e5ce5389fdf1e947a3c877fa0c diff --git a/sys-process/cpu-x/cpu-x-3.2.4.ebuild b/sys-process/cpu-x/cpu-x-3.2.4.ebuild new file mode 100644 index 000000000..eac749664 --- /dev/null +++ b/sys-process/cpu-x/cpu-x-3.2.4.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake-utils xdg + +MY_PN="CPU-X" +DESCRIPTION="A Free software that gathers information on CPU, motherboard and more" +HOMEPAGE="https://x0rg.github.io/CPU-X" +SRC_URI="https://github.com/X0rg/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="-* amd64 x86" +IUSE="+bandwidth check-update +dmidecode force-libstatgrab +gtk ignore-staticlibs +libcpuid +libpci +ncurses +nls portable" +REQUIRED_USE="ignore-staticlibs? ( portable )" +RESTRICT="primaryuri" + +DEPEND=" + check-update? ( + dev-libs/json-c:= + net-misc/curl + ) + !force-libstatgrab? ( sys-process/procps:= ) + force-libstatgrab? ( sys-libs/libstatgrab ) + gtk? ( >=x11-libs/gtk+-3.12:3 ) + libcpuid? ( >=sys-libs/libcpuid-0.3.0:= ) + libpci? ( sys-apps/pciutils ) + ncurses? ( sys-libs/ncurses:= ) +" + +BDEPEND=" + dev-lang/nasm + nls? ( sys-devel/gettext ) +" + +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${MY_PN}-${PV}" + +PATCHES=( + "${FILESDIR}/${P}-custom-build-fix.patch" + "${FILESDIR}/${P}-static-libs-fix.patch" +) + +src_prepare() { + cmake-utils_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DWITH_GTK=$(usex gtk) + -DWITH_NCURSES=$(usex ncurses) + -DWITH_GETTEXT=$(usex nls) + -DWITH_LIBCURL=$(usex check-update) + -DWITH_LIBJSONC=$(usex check-update) + -DWITH_LIBCPUID=$(usex libcpuid) + -DWITH_LIBPCI=$(usex libpci) + -DWITH_LIBSTATGRAB=OFF + -DWITH_DMIDECODE=$(usex dmidecode) + -DWITH_BANDWIDTH=$(usex bandwidth) + -DFORCE_LIBSTATGRAB=$(usex force-libstatgrab) + -DPORTABLE_BINARY=$(usex portable) + -DIGNORE_STATICLIBS=$(usex ignore-staticlibs) + ) + + cmake-utils_src_configure +} + +pkg_postinst() { + xdg_pkg_postinst + + ewarn "Please make sure that \`lm_sensors\` is correctly configured." + ewarn "Otherwise \`cpu-x\` may have some difficulty in obtaining the CPU temperature or voltage." + ewarn "For more information, see https://wiki.gentoo.org/wiki/Lm_sensors." +} diff --git a/sys-process/cpu-x/cpu-x-9999.ebuild b/sys-process/cpu-x/cpu-x-9999.ebuild new file mode 100644 index 000000000..b73d4907f --- /dev/null +++ b/sys-process/cpu-x/cpu-x-9999.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake-utils git-r3 xdg + +MY_PN="CPU-X" +DESCRIPTION="A Free software that gathers information on CPU, motherboard and more" +HOMEPAGE="https://x0rg.github.io/CPU-X" +EGIT_REPO_URI="https://github.com/X0rg/${MY_PN}.git" +LICENSE="GPL-3+" +SLOT="0" +IUSE="+bandwidth check-update +dmidecode force-libstatgrab +gtk +libcpuid +libpci +ncurses +nls" + +DEPEND=" + check-update? ( + dev-libs/json-c:= + net-misc/curl + ) + force-libstatgrab? ( sys-libs/libstatgrab ) + !force-libstatgrab? ( sys-process/procps:= ) + gtk? ( >=x11-libs/gtk+-3.12:3 ) + libcpuid? ( >=sys-libs/libcpuid-0.3.0:= ) + libpci? ( sys-apps/pciutils ) + ncurses? ( sys-libs/ncurses:= ) +" + +BDEPEND=" + dev-lang/nasm + nls? ( sys-devel/gettext ) +" + +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}/${P}-custom-build-fix.patch" +) + +src_prepare() { + cmake-utils_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DWITH_GTK=$(usex gtk) + -DWITH_NCURSES=$(usex ncurses) + -DWITH_GETTEXT=$(usex nls) + -DWITH_LIBCURL=$(usex check-update) + -DWITH_LIBJSONC=$(usex check-update) + -DWITH_LIBCPUID=$(usex libcpuid) + -DWITH_LIBPCI=$(usex libpci) + -DWITH_LIBSTATGRAB=OFF + -DWITH_DMIDECODE=$(usex dmidecode) + -DWITH_BANDWIDTH=$(usex bandwidth) + -DFORCE_LIBSTATGRAB=$(usex force-libstatgrab) + ) + + cmake-utils_src_configure +} + +pkg_postinst() { + xdg_pkg_postinst + + ewarn "Please make sure that \`lm_sensors\` is correctly configured." + ewarn "Otherwise \`cpu-x\` may have some difficulty in obtaining the CPU temperature or voltage." + ewarn "For more information, see https://wiki.gentoo.org/wiki/Lm_sensors." +} diff --git a/sys-process/cpu-x/files/cpu-x-3.2.4-custom-build-fix.patch b/sys-process/cpu-x/files/cpu-x-3.2.4-custom-build-fix.patch new file mode 100644 index 000000000..88f45f5ed --- /dev/null +++ b/sys-process/cpu-x/files/cpu-x-3.2.4-custom-build-fix.patch @@ -0,0 +1,81 @@ +diff --git a/src/core.c b/src/core.c +index 04da983..c275231 100644 +--- a/src/core.c ++++ b/src/core.c +@@ -75,10 +75,16 @@ int fill_labels(Labels *data) + int i, err = 0; + const uint8_t selected_page = opts->selected_page; + ++#if HAS_LIBCPUID + if(HAS_LIBCPUID) err += call_libcpuid_static (data); + if(HAS_LIBCPUID) err += call_libcpuid_msr_static(data); ++#endif ++#if HAS_DMIDECODE + if(HAS_DMIDECODE) err += call_dmidecode (data); ++#endif ++#if HAS_LIBPCI + if(HAS_LIBPCI) err += find_devices (data); ++#endif + casprintf(&data->tab_cpu[VALUE][BUSSPEED], true, "%.2f MHz", data->bus_freq); + + err += system_static (data); +@@ -103,15 +109,19 @@ int do_refresh(Labels *data) + switch(opts->selected_page) + { + case NO_CPU: ++#if HAS_LIBCPUID + if(HAS_LIBCPUID) err += err_func(call_libcpuid_dynamic, data); + if(HAS_LIBCPUID) err += err_func(call_libcpuid_msr_dynamic, data); ++#endif + err += err_func(cpu_usage, data); + err += fallback_mode_dynamic(data); + err += err_func(cputab_fill_multipliers, data); + break; ++#if HAS_BANDWIDTH + case NO_CACHES: + if(HAS_BANDWIDTH) err += err_func(call_bandwidth, data); + break; ++#endif + case NO_SYSTEM: + if(HAS_LIBSYSTEM) err += err_func(system_dynamic, data); + break; +@@ -1299,11 +1309,13 @@ static int fallback_mode_static(Labels *data) + { + int err = 0; + ++#if HAS_LIBCPUID + if(HAS_LIBCPUID && + (string_is_empty(data->tab_cpu[VALUE][PACKAGE]) || + strstr(data->tab_cpu[VALUE][PACKAGE], "CPU") != NULL || + strstr(data->tab_cpu[VALUE][PACKAGE], "Microprocessor") != NULL)) + err += cputab_package_fallback(data); ++#endif + + if(data->cpu_min_mult <= 0.0 || data->cpu_max_mult <= 0.0) + err += cputab_multipliers_fallback(data); +diff --git a/src/main.c b/src/main.c +index 6ed50f9..3674611 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -647,8 +647,10 @@ static void version(void) + { false, NULL, NULL } + }; + ++#if HAS_WEB_SUPPORT + if(HAS_WEB_SUPPORT) + check_new_version(); ++#endif + + MSG_STDOUT("%s %s %s", PRGNAME, PRGVER, new_version[1]); + MSG_STDOUT("%s\n", PRGCPRGHT); +@@ -972,8 +974,10 @@ int main(int argc, char *argv[]) + labels_setname(data); + fill_labels (data); + ++#if HAS_WEB_SUPPORT + if(HAS_WEB_SUPPORT) + check_new_version(); ++#endif + + /* Show data */ + if(HAS_GTK && (opts->output_type == OUT_GTK)) diff --git a/sys-process/cpu-x/files/cpu-x-3.2.4-static-libs-fix.patch b/sys-process/cpu-x/files/cpu-x-3.2.4-static-libs-fix.patch new file mode 100644 index 000000000..279fc31e1 --- /dev/null +++ b/sys-process/cpu-x/files/cpu-x-3.2.4-static-libs-fix.patch @@ -0,0 +1,22 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 9149a6c..cc1a03f 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -16,7 +16,7 @@ if(WITH_GTK) + set(GRESOURCES "gtk_resources.c") + include_directories(${CMAKE_BINARY_DIR}/src) + endif(PORTABLE_BINARY) +- add_library(gui_gtk ++ add_library(gui_gtk STATIC + gui_gtk.c + gui_gtk.h + gui_gtk_id.h +@@ -35,7 +35,7 @@ if(WITH_NCURSES) + if(NCURSES_FOUND) + include_directories(${NCURSES_INCLUDE_DIRS}) + link_directories(${NCURSES_LIBRARY_DIRS}) +- add_library(tui_ncurses ++ add_library(tui_ncurses STATIC + tui_ncurses.c + tui_ncurses.h + ) diff --git a/sys-process/cpu-x/files/cpu-x-9999-custom-build-fix.patch b/sys-process/cpu-x/files/cpu-x-9999-custom-build-fix.patch new file mode 100644 index 000000000..c78fcbdd1 --- /dev/null +++ b/sys-process/cpu-x/files/cpu-x-9999-custom-build-fix.patch @@ -0,0 +1,132 @@ +diff --git a/src/core.c b/src/core.c +index 18eef79..9974da9 100644 +--- a/src/core.c ++++ b/src/core.c +@@ -73,10 +73,16 @@ int fill_labels(Labels *data) + int i, err = 0; + const uint8_t selected_page = opts->selected_page; + ++#if HAS_LIBCPUID + if(HAS_LIBCPUID) err += call_libcpuid_static (data); + if(HAS_LIBCPUID && DAEMON_UP) err += call_libcpuid_msr_static(data); ++#endif ++#if HAS_DMIDECODE + if(HAS_DMIDECODE && DAEMON_UP) err += call_dmidecode (data); ++#endif ++#if HAS_LIBPCI + if(HAS_LIBPCI) err += find_devices (data); ++#endif + casprintf(&data->tab_cpu[VALUE][BUSSPEED], true, "%.2f MHz", data->bus_freq); + + err += system_static (data); +@@ -101,15 +107,19 @@ int do_refresh(Labels *data) + switch(opts->selected_page) + { + case NO_CPU: ++#if HAS_LIBCPUID + if(HAS_LIBCPUID) err += err_func(call_libcpuid_dynamic, data); + if(HAS_LIBCPUID && DAEMON_UP) err += err_func(call_libcpuid_msr_dynamic, data); ++#endif + err += err_func(cpu_usage, data); + err += fallback_mode_dynamic(data); + err += err_func(cputab_fill_multipliers, data); + break; ++#if HAS_BANDWIDTH + case NO_CACHES: + if(HAS_BANDWIDTH) err += err_func(call_bandwidth, data); + break; ++#endif + case NO_SYSTEM: + if(HAS_LIBSYSTEM) err += err_func(system_dynamic, data); + break; +@@ -1339,11 +1349,13 @@ static int fallback_mode_static(Labels *data) + { + int err = 0; + ++#if HAS_LIBCPUID + if(HAS_LIBCPUID && + (string_is_empty(data->tab_cpu[VALUE][PACKAGE]) || + strstr(data->tab_cpu[VALUE][PACKAGE], "CPU") != NULL || + strstr(data->tab_cpu[VALUE][PACKAGE], "Microprocessor") != NULL)) + err += cputab_package_fallback(data); ++#endif + + if(data->cpu_min_mult <= 0.0 || data->cpu_max_mult <= 0.0) + err += cputab_multipliers_fallback(data); +diff --git a/src/core.h b/src/core.h +index c461cf3..ab1a018 100644 +--- a/src/core.h ++++ b/src/core.h +@@ -54,21 +54,27 @@ static int cputab_fill_multipliers(Labels *data); + /* Required: none + Both normal and fallback mode provide CPU multipliers, need to be call after */ + ++#if HAS_DMIDECODE + /* Elements provided by dmidecode */ + static int call_dmidecode(Labels *data); + /* Required: HAS_DMIDECODE && DAEMON_UP */ ++#endif + ++#if HAS_BANDWIDTH + /* Compute CPU cache speed */ + static int call_bandwidth(Labels *data); + /* Required: HAS_BANDWIDTH */ ++#endif + + /* Calculate total CPU usage */ + static int cpu_usage(Labels *data); + /* Required: none */ + ++#if HAS_LIBPCI + /* Find some PCI devices, like chipset and GPU */ + static int find_devices(Labels *data); + /* Required: HAS_LIBPCI */ ++#endif + + /* Retrieve GPU temperature */ + static int gpu_temperature(Labels *data); +diff --git a/src/daemon.c b/src/daemon.c +index f4b77b8..ea9ef9b 100644 +--- a/src/daemon.c ++++ b/src/daemon.c +@@ -225,10 +225,16 @@ static void *request_handler(void *p_data) + + switch(cmd) + { ++#if HAS_LIBCPUID + case LIBCPUID_MSR_STATIC: if(HAS_LIBCPUID) __call_libcpuid_msr_static(&td->fd); break; + case LIBCPUID_MSR_DYNAMIC: if(HAS_LIBCPUID) __call_libcpuid_msr_dynamic(&td->fd); break; ++#endif ++#if HAS_DMIDECODE + case DMIDECODE: if(HAS_DMIDECODE) __call_dmidecode(&td->fd); break; ++#endif ++#if HAS_LIBPCI + case ACCESS_DEV_PCI: if(HAS_LIBPCI) __find_devices(&td->fd); break; ++#endif + case ACCESS_SYS_DEBUG: __sys_debug_ok(&td->fd); break; + case LOAD_MODULE: __load_module(&td->fd); break; + } +@@ -299,8 +305,10 @@ int main(void) + + /* Logs */ + unlink(LOG_FILE); ++#if HAS_LIBCPUID + if(HAS_LIBCPUID && getenv("CPUX_DAEMON_DEBUG")) + libcpuid_msr_serialize(); ++#endif + freopen(LOG_FILE, "a", stdout); + setvbuf(stdout, NULL, _IONBF, 0); + dup2(STDOUT_FILENO, STDERR_FILENO); +diff --git a/src/main.c b/src/main.c +index 1aba775..0ac605d 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -557,7 +557,7 @@ static void help(char *binary_name) + MSG_STDOUT(_("\nInfluenceable environment variables:")); + for(i = 0; cpux_env_vars[i].var_name != NULL; i++) + { +- if(!cpux_options[i].has_mod) ++ if(!cpux_env_vars[i].has_mod) + continue; + MSG_STDOUT(" %-20s %s", cpux_env_vars[i].var_name, _(cpux_env_vars[i].description)); + }