diff --git a/dev-cpp/usockets/Manifest b/dev-cpp/usockets/Manifest
index ddf126aa9d..773a4abf41 100644
--- a/dev-cpp/usockets/Manifest
+++ b/dev-cpp/usockets/Manifest
@@ -1 +1 @@
-DIST usockets-0.3.5.tar.gz 47939 BLAKE2B fc73f44adc19bd31b78832084a64f2ba3e7b463232056bf67370cf116bf43a0e63734a26fcc833b3d5f917c671cc6fb1983d52c4c92e2f7aae81500df5c5d12d SHA512 a76a469d10e10592b651aa6ccc5d25dfa89015d6b74c8d2268df8eee4206d9194de82ac79079f06f5277803ecfa13cf4bd9ff29bf0ccc98b6ee64798aada796e
+DIST usockets-0.4.0.tar.gz 48367 BLAKE2B 025b83bd1f9778c469ad29bde0f8cab7fbc5f9b86e5cd97261b9aee77c2d26a67d22a185a17011e9c067acb23e0341c4112a00dbf270510013e1e863b5678ff1 SHA512 c480c6fd4a87ebe7d9db1928185075d52da63482f4ecc37f684fe10654e92de540badf47d2ab8e6021266a87308496189b39e95830d11924da0023a222decf2d
diff --git a/dev-cpp/usockets/files/usockets-Makefile.patch b/dev-cpp/usockets/files/usockets-Makefile.patch
index 8d10a204da..a51f8b16bd 100644
--- a/dev-cpp/usockets/files/usockets-Makefile.patch
+++ b/dev-cpp/usockets/files/usockets-Makefile.patch
@@ -1,52 +1,62 @@
diff --git a/Makefile b/Makefile
-index fa6e2ff..9fdcf47 100644
+index fa6e2ff..529ed74 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,14 @@
+DESTDIR ?=
+
-+prefix ?= "/usr/local"
-+exec_prefix ?= "$(prefix)"
++prefix ?= "/usr/local"
++exec_prefix ?= "$(prefix)"
+libdir ?= "$(exec_prefix)/lib"
+includedir?= "$(exec_prefix)/include/uSockets"
+
-+VERSION = 0.3.5
-+LIBTARGET = libusockets.so
++# OpenBSD specific library version
++LIBTARGET = libusockets.so.$(LIBusockets_VERSION)
+
+
# WITH_OPENSSL=1 enables OpenSSL 1.1+ support
ifeq ($(WITH_OPENSSL),1)
override CFLAGS += -DLIBUS_USE_OPENSSL
-@@ -35,8 +46,27 @@ endif
+@@ -33,13 +44,33 @@ ifeq ($(WITH_ASAN),1)
+ endif
+
override CFLAGS += -std=c11 -Isrc
- override LDFLAGS += uSockets.a
+-override LDFLAGS += uSockets.a
-# By default we build the uSockets.a static library
-+# By default we build the libusockets.so shared library
- default:
-+ rm -f *.o
-+ $(CC) $(CFLAGS) $(CPPFLAGS) -fpic -c src/*.c src/eventing/*.c src/crypto/*.c
-+ $(CC) -shared -Wl,-soname,libusockets.so -o $(LIBTARGET) *.o
+-default:
++static:
+ rm -f *.o
+- $(CC) $(CFLAGS) -flto -O3 -c src/*.c src/eventing/*.c src/crypto/*.c
+- $(AR) rvs uSockets.a *.o
++ $(CC) $(CFLAGS) -c src/*.c src/eventing/*.c src/crypto/*.c
++ $(AR) rvs libusockets.a *.o
+
-+install: default
++dynamic:
++ rm -f *.o
++ $(CC) -fPIC -c src/*.c src/eventing/*.c src/crypto/*.c $(CFLAGS)
++ $(CC) -shared -fPIC -Wl,-soname,$(LIBTARGET) $(CFLAGS) -o $(LIBTARGET) *.o $(LDFLAGS)
++
++default: static dynamic
++
++install:
+ # install the folders needed (making sure that the exist)
+ install -d "$(DESTDIR)$(libdir)" \
+ "$(DESTDIR)$(includedir)/internal/eventing" \
+ "$(DESTDIR)$(includedir)/internal/networking"
-+ # install the library first, while making sure that the symlink is updated
-+ install -m 755 $(LIBTARGET) "$(DESTDIR)$(libdir)/$(LIBTARGET).$(VERSION)"
-+ @ cd "$(DESTDIR)$(libdir)" && ln -snf "$(LIBTARGET).$(VERSION)" "$(LIBTARGET)"
++ # OpenBSD specific library version
++ install -m 755 $(LIBTARGET) "$(DESTDIR)$(libdir)/"
++ # install static library
++ install -m 755 libusockets.a "$(DESTDIR)$(libdir)/"
+ # we also install all the header files
-+ install -m 644 src/*.h "$(DESTDIR)$(includedir)/"
++ install src/*.h "$(DESTDIR)$(includedir)/"
+ install -m 644 src/internal/*.h "$(DESTDIR)$(includedir)/internal/"
+ install -m 644 src/internal/eventing/*.h "$(DESTDIR)$(includedir)/internal/eventing/"
+ install -m 644 src/internal/networking/*.h "$(DESTDIR)$(includedir)/internal/networking/"
-+
-+static:
- rm -f *.o
- $(CC) $(CFLAGS) -flto -O3 -c src/*.c src/eventing/*.c src/crypto/*.c
- $(AR) rvs uSockets.a *.o
-@@ -52,4 +82,5 @@ swift_examples:
+
+ # Builds all examples
+ .PHONY: examples
+@@ -52,4 +83,5 @@ swift_examples:
clean:
rm -f *.o
rm -f *.a
diff --git a/dev-cpp/usockets/metadata.xml b/dev-cpp/usockets/metadata.xml
index 50cf8d2854..73dd5769c2 100644
--- a/dev-cpp/usockets/metadata.xml
+++ b/dev-cpp/usockets/metadata.xml
@@ -7,6 +7,5 @@
diff --git a/dev-cpp/usockets/usockets-0.3.5.ebuild b/dev-cpp/usockets/usockets-0.4.0.ebuild
similarity index 61%
rename from dev-cpp/usockets/usockets-0.3.5.ebuild
rename to dev-cpp/usockets/usockets-0.4.0.ebuild
index 72133f128c..0b4a1f0a53 100644
--- a/dev-cpp/usockets/usockets-0.3.5.ebuild
+++ b/dev-cpp/usockets/usockets-0.4.0.ebuild
@@ -19,22 +19,13 @@ fi
LICENSE="Apache-2.0"
SLOT="0"
-IUSE="libuv +openssl libressl debug"
+IUSE="libuv +ssl libressl static-libs"
-DEPEND="openssl? (
- libressl? ( >=dev-libs/libressl-3.0.0 )
- !libressl? ( >=dev-libs/openssl-1.1.0 )
- )
- libuv? ( dev-libs/libuv )
- debug? (
- || (
- >=sys-devel/gcc-7.4.0:*[sanitize]
- (
- sys-devel/clang-runtime:*[sanitize]
- sys-libs/compiler-rt-sanitizers:*[sanitize]
- )
- )
+DEPEND="ssl? (
+ libressl? ( >=dev-libs/libressl-3.0.0:=[static-libs?] )
+ !libressl? ( >=dev-libs/openssl-1.1.0:=[static-libs?] )
)
+ libuv? ( dev-libs/libuv[static-libs?] )
"
BDEPEND="${DEPEND}"
RDEPEND="${DEPEND}"
@@ -45,13 +36,21 @@ PATCHES=(
src_compile() {
# the Makefile uses environment variables
- emake WITH_OPENSSL=$(usex openssl 1 0) \
+ emake -j1 \
+ LIBusockets_VERSION=${PV} \
+ WITH_OPENSSL=$(usex ssl 1 0) \
WITH_LIBUV=$(usex libuv 1 0) \
- WITH_ASAN=$(usex debug 1 0) \
default
}
src_install() {
- emake libdir="/usr/$(get_libdir)" prefix="/usr" DESTDIR="${D}" install
+ emake -j1 \
+ libdir="/usr/$(get_libdir)" \
+ prefix="/usr" DESTDIR="${D}" \
+ LIBusockets_VERSION=${PV} \
+ install
einstalldocs
+ if ! use static-libs; then
+ rm "${D}/usr/$(get_libdir)/libusockets.a" || die
+ fi
}
diff --git a/dev-cpp/usockets/usockets-9999.ebuild b/dev-cpp/usockets/usockets-9999.ebuild
new file mode 100644
index 0000000000..0b4a1f0a53
--- /dev/null
+++ b/dev-cpp/usockets/usockets-9999.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib
+
+DESCRIPTION="tiny eventing, networking & crypto for async applications"
+HOMEPAGE="https://github.com/uNetworking/uSockets"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/uNetworking/uSockets.git"
+else
+ SRC_URI="https://github.com/uNetworking/uSockets/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+ S="${WORKDIR}/uSockets-${PV}"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="libuv +ssl libressl static-libs"
+
+DEPEND="ssl? (
+ libressl? ( >=dev-libs/libressl-3.0.0:=[static-libs?] )
+ !libressl? ( >=dev-libs/openssl-1.1.0:=[static-libs?] )
+ )
+ libuv? ( dev-libs/libuv[static-libs?] )
+"
+BDEPEND="${DEPEND}"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/usockets-Makefile.patch"
+)
+
+src_compile() {
+ # the Makefile uses environment variables
+ emake -j1 \
+ LIBusockets_VERSION=${PV} \
+ WITH_OPENSSL=$(usex ssl 1 0) \
+ WITH_LIBUV=$(usex libuv 1 0) \
+ default
+}
+
+src_install() {
+ emake -j1 \
+ libdir="/usr/$(get_libdir)" \
+ prefix="/usr" DESTDIR="${D}" \
+ LIBusockets_VERSION=${PV} \
+ install
+ einstalldocs
+ if ! use static-libs; then
+ rm "${D}/usr/$(get_libdir)/libusockets.a" || die
+ fi
+}
diff --git a/dev-cpp/uwebsockets/Manifest b/dev-cpp/uwebsockets/Manifest
index a34d17f33b..62cd730edf 100644
--- a/dev-cpp/uwebsockets/Manifest
+++ b/dev-cpp/uwebsockets/Manifest
@@ -1 +1 @@
-DIST uwebsockets-0.17.4.tar.gz 206285 BLAKE2B bf1394dc2c1e2bbb557238089443ab99e7de5fd73a2998ec5b1f392d80254ec0858a5ed58d94b98aeb0094ad0a1883772d41548583e3beafd12f263adbf4ccf1 SHA512 5d40003d69b0541e9f73b028ca1630f0840fc40495a88de23656829169088f7c5ce23ec2f6d0da07a9a1cd42b5be3a47fb719f4c98e546eb9a4a80e29010889d
+DIST uwebsockets-18.3.0.tar.gz 263300 BLAKE2B 7225df4c8ce3bc09a92505ee7559a0d69b0cab09da44e7f0ca5e03f6c29ae23474566a1f28ececa938403b34bae4d2a53254ecd1eb7aa4330a9dbd065d74e943 SHA512 e694de5f206e72aa1872f69fdcfa9551103b42cc480f0e34e83a8dccce35fc0ef4c6dcbbcc817871e8bb8f0439a345295eaaf17654dedf6e94c78852507485cc
diff --git a/dev-cpp/uwebsockets/uwebsockets-0.17.4.ebuild b/dev-cpp/uwebsockets/uwebsockets-18.3.0.ebuild
similarity index 84%
rename from dev-cpp/uwebsockets/uwebsockets-0.17.4.ebuild
rename to dev-cpp/uwebsockets/uwebsockets-18.3.0.ebuild
index 994c5699d3..17fcaa5c4a 100644
--- a/dev-cpp/uwebsockets/uwebsockets-0.17.4.ebuild
+++ b/dev-cpp/uwebsockets/uwebsockets-18.3.0.ebuild
@@ -17,18 +17,21 @@ fi
LICENSE="Apache-2.0"
SLOT="0"
-IUSE=""
-RDEPEND="~dev-cpp/usockets-0.3.5"
+RDEPEND="~dev-cpp/usockets-0.4.0"
PATCHES=(
- "${FILESDIR}/${PN}-Makefile.patch"
"${FILESDIR}/${PN}-src_Loop.h.patch"
)
+src_prepare() {
+ default
+ mv src uWebSockets
+}
+
src_compile() {
return 0
}
src_install() {
- emake prefix="/usr" DESTDIR="${D}" install
+ doheader -r uWebSockets
}
diff --git a/dev-cpp/uwebsockets/uwebsockets-9999.ebuild b/dev-cpp/uwebsockets/uwebsockets-9999.ebuild
new file mode 100644
index 0000000000..17fcaa5c4a
--- /dev/null
+++ b/dev-cpp/uwebsockets/uwebsockets-9999.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="ultra fast, simple, secure & standards compliant web I/O"
+HOMEPAGE="https://github.com/uNetworking/uWebSockets"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/uNetworking/uWebSockets.git"
+else
+ SRC_URI="https://github.com/uNetworking/uWebSockets/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+ S="${WORKDIR}/uWebSockets-${PV}"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+RDEPEND="~dev-cpp/usockets-0.4.0"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-src_Loop.h.patch"
+)
+
+src_prepare() {
+ default
+ mv src uWebSockets
+}
+
+src_compile() {
+ return 0
+}
+
+src_install() {
+ doheader -r uWebSockets
+}
diff --git a/games-util/legendary/Manifest b/games-util/legendary/Manifest
index d283edd913..f58a212bc1 100644
--- a/games-util/legendary/Manifest
+++ b/games-util/legendary/Manifest
@@ -1,2 +1,2 @@
-DIST legendary-0.0.17.tar.gz 72469 BLAKE2B e7f068cda589c1188068be0e9b18bfc5346d92a2a91a804faadcd856a192c2a49e00f268621573915f4502552a686702be5bdbdb23f9b062f5f4c2ab618d5b74 SHA512 4dbdb5605edbf43c1a16161436007d4d050dd7dcbfae35ace0ec03460db08f7bbe099d184af0aba0c6d8d26a592d9b3f7ea436c99c61fb9c2386211fdee02c3f
DIST legendary-0.0.18.tar.gz 73881 BLAKE2B de0f02a0691e1b7986793cfc67154122f8eef9a7de0ec416602cf1ea9d2257af8439ab77eb2cdee25fedb72196d9ccee9bf3de788e15c80950174c3ff6520c5f SHA512 71a7b67420cca0063b05e59c33eeab8f7b9e884799b7e021e34a19faf2c7bab5fd6c4c9d928957dd141814e1e42317e1e0e146a1f5123e77664a4ad93e0b420b
+DIST legendary-0.0.19.tar.gz 74292 BLAKE2B 96f43e43f09f46f3b843114c661b5857aee28fbc1fd8e5098bd426260c6df3b342e040e47ef8f0f5cfc16cac5e930a5e078ba1abed9183dd82562931523737e1 SHA512 36082e9876e84c83bc3aae2b7dca782a98c47435f3196b2def2e85372a506dd73ae654756d058518d8b4fc9b3f5067ba79d56fd33f381a09bc49dfde0f57a37c
diff --git a/games-util/legendary/legendary-0.0.17.ebuild b/games-util/legendary/legendary-0.0.19.ebuild
similarity index 100%
rename from games-util/legendary/legendary-0.0.17.ebuild
rename to games-util/legendary/legendary-0.0.19.ebuild
diff --git a/net-misc/gemserv/Manifest b/net-misc/gemserv/Manifest
index f26beb2061..4c414f7a8c 100644
--- a/net-misc/gemserv/Manifest
+++ b/net-misc/gemserv/Manifest
@@ -1,4 +1,5 @@
DIST arc-swap-0.4.6.crate 48658 BLAKE2B dfd3bc53d96ce508b4e7b500d412b106920551e2f75938c6425fb5d17dd248ba7e809c66dd6ba7158c764f0522cfb618a4d4117e9ce7b96f44eee99074edc39f SHA512 bc26f55054c4bd0a5d49a1ab3c00d84c6309604824b16b36d5323f5db06e0797ed0f1ad6fa4774472338e82a8d2f8c16d782b7ca32cf4ec6f38324998d772cbf
+DIST arc-swap-0.4.7.crate 48625 BLAKE2B 922c640ccc1665ea07968ca22f0b44003d6211b47cafb00c23707b85eed9bd3c689c0a2ed46ec74125a1ee9881f3f9044dd6254b7912a331125e0e51cb31f079 SHA512 7d3f8ebaf16353b1534770ccf2424d4efc0a5c96e19fb15c167e6dc15586abe5a992105a4b534f3bc245478a6159c0e099d6f6c2e260d4f53b861b6d317e3a92
DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9
DIST autocfg-1.0.0.crate 12870 BLAKE2B 79e495d53298574afd3b292da7c9c363dcb3ea434fd44258efaf3628e95ebfc731f03083f8a1060272a2a3478a6452cdc41539e2dac08465cc6e6283844bf260 SHA512 451fc63148792ba1952b884170e3481359b01bacca5ec0456f43ca58f8e092b8f81c9764f8b00d4104059ff608089be5858220ee868127c064cc890c767ec3a3
DIST bitflags-1.2.1.crate 16745 BLAKE2B 0fa6d3ce44aad7616d5cd02aad8c1d0b0fed4022650eb43067c4a72e6fc88da05442674fa51826e4858a47c9de233e1ba2229820af094197cd11bb416ceffb2b SHA512 ad89b3798845e23737a620bba581c2ff1ff3e15bac12555c765e201d2c0b90ecea0cdbc5b5b1a3fa9858c385e8e041f8226f5acfae5bbbe9925643fff2bf3f0b
@@ -15,7 +16,9 @@ DIST futures-core-0.3.5.crate 13541 BLAKE2B 5eaee458fffdc57105e33c17e7d2b8eab82d
DIST futures-macro-0.3.5.crate 9673 BLAKE2B 5ceee18ca00098ae9b44f909c0f96b1eb08978a3bcaa460c00683ac3c49727c94983faaa4618f747600e52ec4b8f43acb78fd261cad62d79d35b36b9fbfd20f2 SHA512 413acd01d2e8e849c9425646f0c7eca95972139b61d233bc615791ea4cbd0eac908c949e15587de7ac7c260837cc312b8b3d428011df23bd2e7c36875d4ade0d
DIST futures-task-0.3.5.crate 11030 BLAKE2B 272de7f0a923bab04071b705b3b39683022538a756ccc22a8582f048c83155d6da12ab804e70cd32767c318b94f0f71ea0e7aa6d1f77491aabfc6ebae08f710e SHA512 9affcfe1c64ff66cef77615d39c2e69e40480aa7fb0d1a0b136edeb9533b336e3e1156bc0bb14120a812f0f8d3d3266c556d9f0e4eec147fdcc175b3183dba52
DIST futures-util-0.3.5.crate 132197 BLAKE2B 07cf5f757cd9bc663266b18025efe200fc911c6d829bca139db4c5dcddce5f5e5dbe62968c6c7b328a63a5f23d0a232087e162f926716029ff52c24923bb7c53 SHA512 f71bd29e113fc8aa3795904b3130dd6f09076e6a19e52e34702973b6428a1834d300fdd3c48259e7f27fc1252dcefc80a4b104962fe7e6e4e536322d0aa9c5a2
+DIST gemserv-0.4.1.tar.gz 10721 BLAKE2B 7a8d23e0250480d56698150185235544cc7587f0ab652b6d885b627299dc4b7762e8705bbeeaf9ad94a1ce71a1e70822b31dc445201a07662c7594bf43927f95 SHA512 c4d81b08bc2ccea142d895acc4cf1ec77b15675c8fce9461edd53f81193a207476705115585d262cc629512311f90cb9328095dcebdae516e65149efa34f25c6
DIST hermit-abi-0.1.13.crate 9230 BLAKE2B 9591171d6f303a4a462d23edc2f8d493bdc23b6c2da4b464444718bfc89078e5a627e1543b7ab5be9d4e05f16c3508e55642360bb8d2cbd5edc2ce39b28d022e SHA512 ac424683ee3cfff9c63c735ac91008df722a2709d12744f009466574098433677266799e8ca817d3d3cad8f10f3c02e8081c67ff479701eabdc4543c0a79bd25
+DIST hermit-abi-0.1.14.crate 9556 BLAKE2B 03b27536c3a8ce98d26321439ea6d0b14785fa4dc1666f2bfc6142f4f79d003393aae4fa0e351f6eb3cee6719bdf14e32fc6e07f5aa6f75916cdd20d3c1f5be4 SHA512 a3b5eb8462f47d9a0d7342d45ded3c22578cc19bca05ea0856daf04f263d88b0ca1a4f4c1daec14708282dbc39efcc11e100a3a7fc2bdfa73522ce5575ee7b8d
DIST idna-0.2.0.crate 257203 BLAKE2B d26117124891f90b5e36af291c9038e2f4d46402c41380a6a89758459fd73839137e6faa401502be12dd81292cd9e12ec82fc611c0ff7a150510d19010767558 SHA512 375d6d73537a5c9cebfc850a2b561d57e748d80059ca27fe5e35c058cc12a5938cfbb39a76cfe57fbe589f7e36f89ccd91ccdb8899458c322e277c299293bc7d
DIST iovec-0.1.4.crate 8720 BLAKE2B aa1b4cd98ebe47901c0959cf1d8eb2586a803d0453e2a8bdd5c63442b32886dbcb37650aa218c748fd45c9fe3a7fdf20569eae5b19716487b139caae1526da4c SHA512 e23fcaac239807daea20ddcf2cdd4fb858ba1aa970ce6248f70f0fba5bff7ebdb27247c0997ac0ff2791178f86ff9657e473d8f64b86c644763e5b3474edd158
DIST kernel32-sys-0.2.2.crate 24537 BLAKE2B dfc4a1e31d3ec9e2ac62b890839919fb7fed1444070c1dcd75bb75acfb53556d6cf2eddf5a6639e7852a3df2a0cc715c5ce1d3fc898ef16a1687020d98f715bc SHA512 682bc7c629aefd035966a2873518fd60719121cca7d63d89d6c97ff5306f24d8b5055a3c91b4eedaec22b1d5dd3fb8b48ff7341a05bbd72d86e06c422dab473b
@@ -31,32 +34,45 @@ DIST mio-named-pipes-0.1.6.crate 14766 BLAKE2B a372fc2f2393917811bd56c35cfe6616b
DIST mio-uds-0.6.8.crate 11496 BLAKE2B e52d131f292c7c09fa116ec5c760d50e8389c27fd7b79a4418f0222ae124fba0e5943b5494866e9db75407ab9f6b1a9c7aa7fdf2c4d601e8c785dacd8166f6da SHA512 b6c752ae9f25c37fc7e23e06a8843089c5291d60e53a6e9093eed1d8baf64c9e0ff14bb2ea1c0c8815b00026b28fefab2aa34104bdbce7e99549786d0f507a73
DIST miow-0.2.1.crate 21133 BLAKE2B a60f04feb5bd98eaafe6123f7579ffb0287b0a3d1de0dbe1b504141d76dfbc247891eb6dd87753ce5d6e2ae0406387ccc8684a91980c5ef1ad6610c29ec9e3bc SHA512 b2639b1976274b7a01ec3ff7fd019087775e3bc5365101b24db480bf9c9b66e8a1aa34405d44db6c2be753265a5124054eb37870b84cae2c63fb6b36bd5c6d72
DIST miow-0.3.4.crate 23762 BLAKE2B 6be0d5270f1fbe4a948368b9790fd875976a1d6b8c93c125d2392426c2a6e6719c881515654e955320ce8a065d4f4c748a9a6d2593ad3bc350b72f8216b63619 SHA512 cd22acd9c3e846e25d6c9c634699bae22a8356ce07b6bdddb733395e222fd1840fff8475b34c1d449054c406e5eec746e4f40436e1fe7716385c618f4f98e07f
+DIST miow-0.3.5.crate 23796 BLAKE2B ead9b1483f93617a623df2c0d6d9be60eecf76c74f357ddd7bf6e097f93344aa4bcfc3368739f72dadabc2d36f725ee75522ba5202a5a7443b925b51213a1699 SHA512 32343bb12b70323f8771816c6be2a42d9b3a92757f65b606ab2e98f762ff0bf85cc30c7ba8e39d5519a8a12aaf22061f52ba537c290169d38f11ee96b41e4b95
DIST net2-0.2.34.crate 20620 BLAKE2B aee9aac0deb14a13c5f90793f1e439c94362403cb329e24607c1970c117bc379049da1b173d1bf827f0e3db38740a2d2e696981daf88c1b2302d81564be5433a SHA512 136ba95ad540545165fc2e34fdb5aab7da8f6b20e7682302ad5796b86cbf3d80b5364679c82caa19151b277f9d18de053968fda779ffff8ac88024940772709b
DIST num-integer-0.1.42.crate 19463 BLAKE2B 91ea6900dba5a38bc7ac4de0db8706f5335baab636937e9efdb1b82ff0e8ece4451503de3ac9e473a4dd7c70d599066f14840789fa88aeedafa585f0f98ed61a SHA512 8c7e0529888e18b872a634e8983034b0357143aa72914b45c02ee87447204296970e9b1ed078d9436ecc779f25360b1a1cfaae5a9bf7c8ffc68793d7c25593b2
+DIST num-integer-0.1.43.crate 21966 BLAKE2B 9e88ee3413965cc05fdfcfcbc7e10225ec52de4f22b7078b9974eaddcd26869d72a9c68f7f19b8e95cd6e3edea8c0066fcde80742cbd3873ad8a0c19c80b399a SHA512 e0b1efbde64ce150a20fb937efdb89cc702b90d71448227f0212bda06ff88dd6beaa02d3c973ae5430d20fcb5a2e4b611d4b2b225f5d9936a803e5e67ad96fd2
DIST num-traits-0.2.11.crate 42000 BLAKE2B 78584a3e8011391b47c7ce45c5a63da5fee88aebc2ee7ae8d788e22b1d6cf46e31e70b7bf6ae094d35ed8dd5ea4f91472e6050c526acff3f181ee383fee139a1 SHA512 12d73656db34456a30de7538daa1efb6e6f61353a0e274aca388bf184732402d8eb8ca19282fbf51975e0541b5c8d764a0148abe346061dc81922d5eb12592e9
+DIST num-traits-0.2.12.crate 43807 BLAKE2B 3913a6c73a928ccae330ae4592cbaf502bf3e6e43f1ba847a02d317003074a07d0d4334eac6e31a5a9220186c44e9ce80111d59203b78e50d4abfc6da4daeddc SHA512 98fe81a3747d619861c3b2789253465eed68c371d74f719885a4b5f09af1abdeb0a147baa52fe335dd4f471f82463aee65fdc9e44432dd67248d5f43e4b85377
DIST num_cpus-1.13.0.crate 14704 BLAKE2B e7a26e597ad5e45309393a9500b031ba64a77831320cbb96d7861139a2f7a453b7ba06a3255439b43ac1e2e36269b0a350d514020d3cd82c2513b57934b3ebbc SHA512 e75ec298fa682be84bf4efb6cf40126da9233ef25f07e887c2fa7421ee78790204564e6406c8219466651f47421e27f69eca690bb9cdfc982b644d78cc10de3f
DIST once_cell-1.4.0.crate 24625 BLAKE2B 6cfb6ffa2326fb53c4381d4b6a462928f96ad4133c653335c34265a1475c4f50067fcd2a6d9bb0660aab4406401edf02776ceff8d2b43c9d6b443998d2e3cdb7 SHA512 8debf21169653719820c4892ebceda67fedcc3c86e958aec42ade0d38247e12265a0152846f9284c37faa183e452ddf666b117e7ec5c066893cd33ec407dfaa6
DIST openssl-0.10.29.crate 189956 BLAKE2B e229d813143abb14529f82d1ed7d55dfbcba7903fe8f0676b24b623183a11fafb57d3d1c8e16e055f3423da189b64550c0319201f87ec83edec6618bbe2f45f6 SHA512 dd6986abe65cdf2e9c3d4b54c1a8dbb279bb002119e8d9faa5cca3b9a6a7d8512a1c3b5f72803bd98d46c855da54dde63041119db1106ec62b9b67f1ade79c9d
DIST openssl-sys-0.9.57.crate 46589 BLAKE2B e0cf96dfb7542b020eb7c2c4819d68b0260b80266b0de7917ade7f28717ff355a07eda7727a3d10585489b434d382a5d754e767e22761cd0152a605b64f94afe SHA512 5e19b689bfc2268853f8616a47f17a9b46ba0de64d108553ae0b276accee4ec39d9a8c9278da0491fc3978843a386f4c3d383f698f2b57aa28014c8bdbe03d26
+DIST openssl-sys-0.9.58.crate 47014 BLAKE2B a66f90a5cd9fc82ff22ad7481ca9e4a92c78852d25ee4151c09d5a4d23823942c28bed5d96d5130eeae005573d7120e7e5187a071ae81ff10572cebcc7db8b3f SHA512 098993619ea8effaa03ab61a0eaebc938d23cb8e5284b2dd45499972ae4c79abc36cbeeb51f34861a36816de9d02e2cece673f32fd042880669e99cfff181481
DIST percent-encoding-2.1.0.crate 9748 BLAKE2B f3ff35ac683724b15e40c85e0fb8ececb07b61beeea82b7020f02d27df05a8a3535f157b3cd688533e414d6541de7de8640ef4756706d8061af0fec94ba04ab3 SHA512 98af4dfa7c6a3cf0d5aa929c436f9eb1ba1b576a944513f1284e6df2ad06be7cab9eba145d888d50af88f8c970bacc702b323041bec6d4fa1dc34095186c628a
DIST pin-project-0.4.17.crate 45385 BLAKE2B 4ac2b5747344a462529812b28b824ca50af2cd2a5dca5c9f84baf847b9f31d5996aa98d3d3c213abdd1ba520de6bbae7d717acf76ac297970c234b6d9d210ebc SHA512 e73b8cc2385a8b8fcb02d2b0fbf3b50c918417fba7f2509ef085f70cea373c8d0d69ef222240fba96a23c4333317b3103d1e275bbf92694a6eb54d6e08763e98
+DIST pin-project-0.4.21.crate 53718 BLAKE2B 4d708b7eabd374030cb0ba089a3dc946252d2579bce03db4f1d64c107dda5b63b2a79bab20dbe25805a9e16ef394d231100867f5d08575d7a350ca5a312a2fb6 SHA512 da7b1594d81b4d6fa9915d7ca6b28936405fd180d4059d9fe2699f4d77c45cfdd165120dfc8b95f7e15de5f0fde3bbf85d83608572a1b8cec2c4b63a0205a532
DIST pin-project-internal-0.4.17.crate 27989 BLAKE2B dfb6284bf0f9fd0b222926e72f3ff8a839a58e4c9936f5d60b709d8f2a7a42f42cf0b6086a02d7b6f5520bf71f27bba429c18453d4e48ae8e6332167b0344116 SHA512 6697794c758b18be54a78cd561cc4cf3e0734577b877c40d8c9bb2f1c7bc9cdfbaaad260cf0940ff7644f8dcbc9ef4beff6f12948bbf4c01f1f0b9b973c11b26
+DIST pin-project-internal-0.4.21.crate 29569 BLAKE2B 5428cb35c8243ed3f265d0105c8a6978d2092652acaf008a661790acdca1196da8a7f7294b4ccf6533b21a90ad120f08e10968e980bf91fd661a8c66745681af SHA512 bb1c48884b381d50e98d401c6d270959cdff0d2ad7b33602f3808f30fb82299c1b961b866f1365c22df1c759c0bdea62bbc421127ec28769ad31147d1394946e
DIST pin-project-lite-0.1.5.crate 17009 BLAKE2B d80da0e83e153515ee1605b020bb8a53dec7b67f928d3f47bcf439407a4b6eb805ea26a0272454df7ecb46b98c7bc8ad46646d6303d4f6934b1e126976a811ac SHA512 9c93882648689c32006eb4f9d4c86b1f30db49f51771393072c0188ece62e6794ee569848f678d9ca71a78b057a2a99c46ff011b5396924524c8157677a21650
+DIST pin-project-lite-0.1.7.crate 23017 BLAKE2B 74fb5314d01232c24564095d8d34009189a0edb26d36a42a9f3abc35bcb669a96f6d45e078c7fd438f600e6c756acbc52e260ba509572ea5cfb59d8e9f63a15b SHA512 8987148688b3cf9b6d9928cd6bebe8e547412b87b11c23fa00236b8c5fc74dfbf200f03d219f0ed317ac0488cd2323fb09e576dbc17f1ade4e5e700bf077eddc
DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
DIST pkg-config-0.3.17.crate 14533 BLAKE2B 729b15209bbbee8a6d3854e30a89b3e6041ca3cf7b1460ff6008e37866e326d9ec8b4ac582c125676e31eefa048b143beda33432b95f00a8f51cc7fa33ee4986 SHA512 42be78556adc07dffa8933ab1436d5d6a776018898377d58dfdc9f961981f9f21397301b41536c55d8a3772bf74a38069899d1a5cddce5c24a032017137044bc
DIST proc-macro-hack-0.5.16.crate 14227 BLAKE2B c1aa49b3caed8ce1fb09a900b2d4ae60a6bba963945d329b65b048870fce6b4eb1b57ea492257fc95477c828e975b54f37e25e69e4460e578088b25270cc0a58 SHA512 d1de743aa7b29dad970c334bf81e477afd9c63e8f40338a6379d22901128b4b310ae9c09212ae913d6b10b51428a3c29c75337735266878979357023749bcb45
DIST proc-macro-nested-0.1.4.crate 6319 BLAKE2B 8d0cb4171ce4ccb36c2caaa57a18b68a8b322cb4aca16b5cdec7f8ce2d0b6664ed003a428216c30e90852f857f64e894fbfac80dee97fda9e555fe1c015c455b SHA512 b0895620606a8fdc4aff8f0cfdf6ba4d1946db799deead39ceedab6b9c0d4a5882b494a458cd134ccb6ec192629143c24b6eda0053c62541f0a3be9c3bc9eff0
+DIST proc-macro-nested-0.1.5.crate 6409 BLAKE2B 4475ba48fe7af63d4c4602b6d4dfe227e8cadbbf5249469d1602723b1251f8c1cf0847ad0f3d7fd72fc6774947bf10282db43530cfce0f9259c4acbd019e718a SHA512 87099ba887c9aea88728517e3be715a27a61b045792468890e7b4e796f0c68b971d425d84bf2ee8b79b626a64c0b972ae091239a3c8e5652c6c0da259d00a8a9
DIST proc-macro2-1.0.17.crate 35654 BLAKE2B 8728993d92facb86d5884a5716f697447d636ba28a3ac84e1ac7971fbe53b7fd960a5516989882eecccde20abfc9f1915c523277333ae98323b7dbc198c0fee6 SHA512 de34066c8f07ad5edaf2a7fb9b0e0e2b4d31e110a2280dce9960b20871cd69c4510ad7669634e734b3d4f06447277b62de028aad826f5a94697261a8bec2a0a9
+DIST proc-macro2-1.0.18.crate 36252 BLAKE2B f55674ba8294f48d72a71dbf36a2e464898b96e53ff32d8dfb6f66271a3427e59e5f8e868309aa6c15e3b718983806b35f65599afa119ab76b658af863f90e63 SHA512 3e7cf577bc3548e03a2f1bee620e3ef484dcaa45fbaf7858a8ea04f79d82d636b527584765ef43c92624e1a1afac50e60ad3f9dd8efc34e8e6b84cda20c864ef
DIST quote-1.0.6.crate 24225 BLAKE2B e8706bf2e19b89855d5636704253d674fc9804e0d9713d1c1dccd5fe06af273f8604f80b6727f788de6416e62dde67a13abc2f3aa81cd5ea45eb0c73069ee300 SHA512 1febd6748602d4d96fbacb1f37bbc93c71d9fbeb9be7e9c6be2e871614048a1b2921c1ae702bd8db5d449308e7946ebff095689ef0bafe52af37c04936a8115e
+DIST quote-1.0.7.crate 25170 BLAKE2B 9597c94ac365bb6e9d632738a88ece2da7818cb9f3fa0e755324e693eb513c76347032737025375a486319caad13c22ae13bcb257703eacdf2fdc755cbac0de2 SHA512 b7cb576c07419854f71072a88e4216f50d78196703d3d8a1068dfd0f2ccb1e417c3a865ec3be613b46e74e46654f64378f527800701f74d50352cb766a885953
DIST redox_syscall-0.1.56.crate 17117 BLAKE2B 57b1b01ef3cbc6f55def6c9a0dcde16bd98e83badcef993e26ae3ce849abcd1b1c10f4da931c605970d77f92471734764a537e7329291a221343fde23f3591eb SHA512 17a3044327aa733c830dd74e210d6bda32622617d1c5af9d70d7647232d8569ad0b04ccb14042cbabb5d97ad98e3f1f5a9968a75387354ffb4d175e9577115a1
DIST serde-1.0.110.crate 73947 BLAKE2B ceb9896bd205026825767951c6dd4c11aa5ce485ecded75eeae2f88627f4851c378c311d7ad8d06395f2ed976e342d31e11787ddf926dfeb0643ca0575b32ccf SHA512 508fc3195ba0deb75980a758a4392462068fdde9a87fe2f379ab9b28c573c5af45617b82e5fdd1e34cefa075888da7f533675b05d57757f0c0200b4fa5698863
+DIST serde-1.0.111.crate 74361 BLAKE2B 5d3bf28ac98321a3dc04971d17a0f51b669eda398ba31e1426bc0458ebf8e6aa6f298711459f02598d36991d03f56cad657c1595f969a6dc00ae323c4c21e915 SHA512 285c0786c4f60ee2356f1bdfa352a5e31560ffb71cb592a346000ecd4ab3d79aac64068cb43ed4a13ad3f529a4b22ff2cbab30c1bbee988542121a63f750d2fb
DIST serde_derive-1.0.110.crate 49751 BLAKE2B 14f3ffe6d6ce5aed13a800c2802459bca54546d3a77dd05c4c095f10ffabec8e66195cd69994b46162a96bd95fc5fb0d78a08864b7709a8f6c32643183cb90be SHA512 b02a831fced998388a39ad5e8ec12de5c7d09e18b69f15b112870d1e5976f74e0cfcd28a68dbcaef87c4be30001bd2cae076de234a59e8f39ea0be3014a395a5
+DIST serde_derive-1.0.111.crate 50174 BLAKE2B 649344753b58585f0ee3d7100422ad501c30f39cf7b9c30ab16e5fd16ed0fffbbb1922a82b5b9d5ea7bb9e33195f71eb66d8256c6c61813a468f4e34c50f3394 SHA512 ace6607e26bbde64ad3d604fb0d991f13705ab126d2288104a316301e9dd9fcdb816150a659968cdee12e4636186bacb9ae0a3ebab5ddbf7e20171783cf8e971
DIST signal-hook-registry-1.2.0.crate 14490 BLAKE2B 52c56376f5572787d78d4691201d51d219c623d2eedf912625128d6da8fb01f6930dbecbc5e5c021de098fb0a194fd6b35a9452f92a484095e9606ce96fac135 SHA512 f4552fbeb50f66a2ee1d9826fd74a8ecb3e6d242913c20ca7099d165afb55ecd359a44427b8c3eb73bfc4e3c887d972853b49a842472389454988060dd4aaa07
DIST simple_logger-1.6.0.crate 5054 BLAKE2B fe759ee7e5b329cc091731549686a7b8784622392ffde9c9e9cb3bcd7c2c8dd0e8a7aa78623a0e0687063bd8dc2f25d9e7a86b98a5d00de7151968521b040394 SHA512 0fe4f4712095600de902a5b211fb50781037604b83bd7afc893977265ab27c874ce0565513717be6d61dee5738d05ba5974f5472dac2b6f6f3fbaeb845396348
DIST slab-0.4.2.crate 10136 BLAKE2B e30cad459bbbb69c4b56a573c47f4188714e0da298d87015c35a86c9315dc2d4308f27d7758846069b0cf94c93f10c44b0f8895427cdf1c93ae20adbb21b5977 SHA512 f9fd70d0cc5180393cebbe87fe984de0c103db1c2c2648fb7a0ee22cdabf37a7338fd511538f00e9a5564365cce2879afe19bf77c435870197bd6cafef5d6661
DIST smallvec-1.4.0.crate 24645 BLAKE2B ff5102e2b3a03bf5a8e3e2325f93ffc96dccaf2a4c9ca50ccbe7837215eb356e21d2aa5c02e5130a657c166913e8c42cf9dfe50352b6301231b4bcd37225b6fb SHA512 32a56d7055655ee7d4a6556afd63db7200c269a109ec3bee29fefce8bc75363762c3cf625aa3edd3b06a93046b8c64fea2036403b63ac0e764e08af78c936a63
DIST socket2-0.3.12.crate 29253 BLAKE2B 0b5c48c90b45ddc6e98e2a9437f239e681acd1431684ad47a9386d437d3aa2fccbb7190ed601a6f3dae65715f1056a211004a071b0f6e71be8761165e18e2660 SHA512 b39014c4c48d0aead812d9310651f459654314163e9f7d059801ee6e56ee116eacb912738b1dd58b5b979997c7334811161257e9b7a024299a2422808445d6ad
DIST syn-1.0.27.crate 202231 BLAKE2B 8fe663765f40cfb611e6eae5d51744adfb22adeb43da799c000b9ba856117631428341ad352608334bd57ac18aad6076e4574591ce7aa7908af90637ee363dc9 SHA512 3a3f2f6e55edf003ce13dfa35c5d1a03d875335ddb3d0093fd20c86231a246a61655e6f74f751a9265a6be18af20e794522b7b83d303ee363b891ac9a89c72ae
+DIST syn-1.0.31.crate 203988 BLAKE2B c4cc691abc2590e361187984f627e5928015893987945b344d18bf449009081e789b14ed6f2c7ad889f63b34e0e6a632ccc7a801d146a0cb37727b252c6eda43 SHA512 9d7ffd4f7acc2790587934e0a99e2615a4292b03fb3701fb55795cd94722d7a757d5e94e7a224284496d812ef5007936164467917e6aacc428f5b45d2ae3fa79
DIST time-0.1.43.crate 28653 BLAKE2B 95fe69647e8d52784be1fd3457578896aa38279d00f51f1070eadab111d39450583c63854c73d4384f2e4349b0250f1c9bff9901529b776c596846c057c93335 SHA512 c3e0c68cab1ed2f33f41955f83e632c51924e4d3c1d22dd0c4ae98499e03f3cafde8b0c2d9e69b67a78d6e4055e464ee00d1ed6af5eb9fa75052405b43e24a25
DIST tokio-0.2.21.crate 391113 BLAKE2B 685b6786f329e32369d3e5636f7bc9da6a8b164b7287e96e048255cfdf21c25f55f4800eb0e6f6e3823d5654a38eb17d4b12d817fb490dd9664534cfaab924c0 SHA512 6756cf5490ea3d0993fe8a9d0ae70c2629cb2c77214fb39f635ee799496699662391745de7f3c49b0befd53fb238c274764ca23d7f3a1f278ed7d1eda34ae4bf
DIST tokio-openssl-0.4.0.crate 11790 BLAKE2B 3075b0e810b1fbf8a5f61b4fd9fe60617b5908949366b1a1ba012bc25927b1dea8e6172aa9842b07a5d1b7c013d25a9b5399ee5f5c02f218cc32aedf4d6094ea SHA512 8e59723bf080d6582e9b652ed263ad671dd0ea3b6f13ad7e4ab5c077cfcf7512b9b4bc64f305404d2844699d2a40e223f52be1af80abeffbe962e324dd14d807
@@ -66,6 +82,7 @@ DIST unicode-bidi-0.3.4.crate 32228 BLAKE2B 853a85b29d1ac2025b7a28af64ead9387e3b
DIST unicode-normalization-0.1.12.crate 91057 BLAKE2B d5b8354990e1911e093d63d9b3b3adeacb38142ac68637fbfe59c0822f34c743e348cae9f535421c12cc6a56db2112dd5ec75f96c173b1f34a68db66c8ad8dd7 SHA512 0e095a59ff965499a5d2c79bfd4826b793103bebb4d2666c09e675110a50f79d985eb29565e4c40bd8fddc30237f874324d8a24786ead697ee0698ef8f79a1b6
DIST unicode-xid-0.2.0.crate 14994 BLAKE2B e66b4255798f0ef1c81fb852613fee396a042d780d2158a171dbb5e7dedad0b3d2522f5401ae5d215f89ab8be4f5c371b046e4845693a65554c2a6eedc5d1e28 SHA512 590f727d8d8354023062ae5fe7ac5bed1bcf79d86b883effd7f33b3ea3b1c8922998a63d621ca6962a969e890fa6edd009871f21cd57b1969264f41ba3f78359
DIST url-2.1.1.crate 70383 BLAKE2B c4096cb1bd50e9ca97fcdae0ee8b58957e21507607eafa8d84ff71c3df1ba52c68299609776f7baa45c93b971f8b61162fd8afd4174a5c7b66f36dc673707fa0 SHA512 a16c3a625fa85be9305f8150d5711c3e3aaa1f33753e7ecb8368b176cf3ea96f51fde74598c8ea3a5db2effc338589fd2834b297a1fba4bed967fa39e670fabb
+DIST vcpkg-0.2.10.crate 11504 BLAKE2B ab7e64091fd2c12292282a0311716468bcf584dd3764cd0c4803d40702104a57ace0a138b06cb1429a166a61e069788b2c45c3286d3f4c5bbf6ac30e816add14 SHA512 4c790344fd3510eaaca5e1539cd676c60124b2ef157e85f89322f294ab6831c2acf6efed1529de4bb23d9abfd0b5f962eaf8d3221c827b0718834d152b28c141
DIST vcpkg-0.2.8.crate 11209 BLAKE2B e393dfbaabf1e47bc74fd89dc05e09f2dd9fd8b965a84f638edafcb2f5cf062005224d0c1b229394b40a3ecdf0fb34bfb3bf2c62a5d5b1016663e02d08bbcc8c SHA512 a239e969a02c8d8670178cc2be654bd12d6e6bb18be9eb70ec547212289fd2ef98859e6b3592aa6fbaf3178e0f2c27e2c8598d82990077a74896e739ae1374b9
DIST version_check-0.9.2.crate 11979 BLAKE2B 6568f8d4652fb470162bb2251be2260a6bf83e107a4f957ed91117938d5da48c42bedfb5e6622bcd6c37950805666b78984577bd8dae687dbb39e452078bd97c SHA512 b88a9d545ef103fe6d0eebe7ddcf328fc21fcb02c60828b347cfc35afd957669e652a94d880ef992450c167df3505838bc649e0d83896542fa13a149875acf26
DIST winapi-0.2.8.crate 455145 BLAKE2B 50f3c2a0cf4eeedd6891b11392e520c1cca139a71f8f736eabaf43aa7e4b1b5d57697918978220459572d373940edf971eb8302f292cbff832283e905076319a SHA512 115e6f027cdd4a56f77ca24f4ab249d2a6cac1e1f955c826a9b6ee05db4861790a533f5e674aebbb540370fff52ed41618c2cd7c906e73200e92df213109cebe
diff --git a/net-misc/gemserv/files/gemserv.initd b/net-misc/gemserv/files/gemserv.initd
deleted file mode 100644
index ac4451762c..0000000000
--- a/net-misc/gemserv/files/gemserv.initd
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-description="Gemini server"
-pidfile="/var/run/gemserv.pid"
-command="/usr/bin/gemserv"
-command_args="${GEMSERV_CONFIG:-/etc/gemserv/config.toml} > ${GEMSERV_LOGFILE:-/dev/null}"
-command_user="${GEMSERV_USER:-gemini}"
-command_background="true"
-
-depend() {
- need net
- use dns
-}
diff --git a/net-misc/gemserv/gemserv-0.3.1.ebuild b/net-misc/gemserv/gemserv-0.4.1.ebuild
similarity index 77%
rename from net-misc/gemserv/gemserv-0.3.1.ebuild
rename to net-misc/gemserv/gemserv-0.4.1.ebuild
index 94250ce0da..d88fd5cfda 100644
--- a/net-misc/gemserv/gemserv-0.3.1.ebuild
+++ b/net-misc/gemserv/gemserv-0.4.1.ebuild
@@ -4,7 +4,7 @@
EAPI=7
CRATES="
- arc-swap-0.4.6
+ arc-swap-0.4.7
atty-0.2.14
autocfg-1.0.0
bitflags-1.2.1
@@ -21,7 +21,7 @@ CRATES="
futures-macro-0.3.5
futures-task-0.3.5
futures-util-0.3.5
- hermit-abi-0.1.13
+ hermit-abi-0.1.14
idna-0.2.0
iovec-0.1.4
kernel32-sys-0.2.2
@@ -36,33 +36,33 @@ CRATES="
mio-named-pipes-0.1.6
mio-uds-0.6.8
miow-0.2.1
- miow-0.3.4
+ miow-0.3.5
net2-0.2.34
- num-integer-0.1.42
- num-traits-0.2.11
+ num-integer-0.1.43
+ num-traits-0.2.12
num_cpus-1.13.0
once_cell-1.4.0
openssl-0.10.29
- openssl-sys-0.9.57
+ openssl-sys-0.9.58
percent-encoding-2.1.0
- pin-project-0.4.17
- pin-project-internal-0.4.17
- pin-project-lite-0.1.5
+ pin-project-0.4.21
+ pin-project-internal-0.4.21
+ pin-project-lite-0.1.7
pin-utils-0.1.0
pkg-config-0.3.17
proc-macro-hack-0.5.16
- proc-macro-nested-0.1.4
- proc-macro2-1.0.17
- quote-1.0.6
+ proc-macro-nested-0.1.5
+ proc-macro2-1.0.18
+ quote-1.0.7
redox_syscall-0.1.56
- serde-1.0.110
- serde_derive-1.0.110
+ serde-1.0.111
+ serde_derive-1.0.111
signal-hook-registry-1.2.0
simple_logger-1.6.0
slab-0.4.2
smallvec-1.4.0
socket2-0.3.12
- syn-1.0.27
+ syn-1.0.31
time-0.1.43
tokio-0.2.21
tokio-openssl-0.4.0
@@ -72,7 +72,7 @@ CRATES="
unicode-normalization-0.1.12
unicode-xid-0.2.0
url-2.1.1
- vcpkg-0.2.8
+ vcpkg-0.2.10
version_check-0.9.2
winapi-0.2.8
winapi-0.3.8
@@ -82,17 +82,17 @@ CRATES="
ws2_32-sys-0.2.1
"
-inherit cargo git-r3 systemd
-
-EGIT_REPO_URI="https://git.sr.ht/~int80h/gemserv"
-EGIT_COMMIT="8ebe1becf124cf6143e3410d10cfb0fb760911e6"
+inherit cargo systemd
DESCRIPTION="A gemini Server written in rust"
HOMEPAGE="
gemini://80h.dev/projects/gemserv/
https://git.sr.ht/~int80h/gemserv
"
-SRC_URI="$(cargo_crate_uris ${CRATES})"
+SRC_URI="
+ https://git.sr.ht/~int80h/gemserv/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ $(cargo_crate_uris ${CRATES})
+"
LICENSE="Apache-2.0 BSD MIT MPL-2.0"
SLOT="0"
@@ -104,6 +104,8 @@ RDEPEND="
"
DEPEND="${RDEPEND}"
+S="${WORKDIR}/${PN}-v${PV}"
+
src_prepare() {
# Fix paths in systemd unit.
sed -i "s@/path/to/bin /path/to/config@${EPREFIX}/usr/bin/gemserv ${EPREFIX}/etc/gemserv/config.toml@" \
@@ -111,14 +113,13 @@ src_prepare() {
# Fix paths in config.
sed -Ei 's@/path/to/(key|cert)@/etc/gemserv/\1.pem@' config.toml || die
- # Fix typo in config.
- sed -Ei 's@^proxy@proxy =@' config.toml || die
+ sed -Ei 's@/path/to/serv@/var/gemini@' config.toml || die
default
}
src_unpack() {
- git-r3_src_unpack
+ unpack "${P}.tar.gz"
cargo_src_unpack
}
@@ -127,12 +128,12 @@ src_install() {
einstalldocs
+ diropts --group=gemini
insinto etc/gemserv
- insopts --group=gemini --mode=640
newins config.toml config.toml.example
systemd_dounit init-scripts/gemserv.service
- newinitd "${FILESDIR}/${PN}.initd" "${PN}"
+ newinitd "init-scripts/${PN}.openrc" "${PN}"
}
pkg_postinst() {
diff --git a/net-misc/purritobin/Manifest b/net-misc/purritobin/Manifest
index 2c34c541cc..a2c4a31095 100644
--- a/net-misc/purritobin/Manifest
+++ b/net-misc/purritobin/Manifest
@@ -1 +1 @@
-DIST purritobin-0.1.3.tar.gz 7561 BLAKE2B 0b476678e5f06b64741e3cff68822dc7c7f32af0c1313405ae8aa0b39af7e649f33b2405d63194e7634d2f2e75d1715524383f6c1b11170eac925fd814579674 SHA512 8b79fed4abd8412d04af7cf67792a8f6f658f4bc0c87b891275eb7ffb72c747c5174ed8556f6a57f160c6e6e4700bcc55b89ca1076d51d6d59b1fd906e2824a1
+DIST purritobin-0.2.1.tar.gz 9487 BLAKE2B 1aa4e44b5d79d4da6c05195ed5aa187e8c4c2864905b0f225d4e6a0c65b469c046b2172d8b2108588955930dbfc2ab01f6d01b191fd988ebdb7b5714cda2bbd9 SHA512 4dbcc473b2f4df399a572a9ae588c32564eb0d807411448a4da701d2982bc72d45dd2fb5256b9cf1b6d6b3c06b588a18ac7a2f980758763f699fe54d11207ddb
diff --git a/net-misc/purritobin/purritobin-0.1.3.ebuild b/net-misc/purritobin/purritobin-0.1.3.ebuild
deleted file mode 100644
index 210bf602c5..0000000000
--- a/net-misc/purritobin/purritobin-0.1.3.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2019-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="minimalistic commanline pastebin"
-HOMEPAGE="https://bsd.ac"
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/PurritoBin/PurritoBin.git"
- KEYWORDS=""
-else
- SRC_URI="https://github.com/PurritoBin/PurritoBin/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~x86"
- S="${WORKDIR}/PurritoBin-${PV}"
-fi
-
-LICENSE="ISC"
-SLOT="0"
-IUSE="libuv"
-
-DEPEND=">=dev-cpp/usockets-0.3.5:=[libuv?]
- >=dev-cpp/uwebsockets-0.17.4
- libuv? ( >=dev-libs/libuv-1.35.0 )
-"
-RDEPEND="${DEPEND}"
-
-src_compile() {
- if use libuv; then
- WITH_LIBUV=1 emake all
- else
- emake all
- fi
-}
-
-src_install() {
- emake prefix="/usr" DESTDIR="${D}" install
- einstalldocs
-}
diff --git a/net-misc/purritobin/purritobin-0.2.1.ebuild b/net-misc/purritobin/purritobin-0.2.1.ebuild
new file mode 100644
index 0000000000..2c9702ad7c
--- /dev/null
+++ b/net-misc/purritobin/purritobin-0.2.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="minimalistic commandline pastebin"
+HOMEPAGE="https://bsd.ac"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/PurritoBin/PurritoBin.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://github.com/PurritoBin/PurritoBin/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+ S="${WORKDIR}/PurritoBin-${PV}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="libuv static-libs"
+
+DEPEND="dev-cpp/usockets[libuv=,static-libs?]
+ libuv? ( >=dev-libs/libuv-1.35.0[static-libs?] )
+"
+BDEPEND="
+ dev-cpp/uwebsockets
+"
+
+src_prepare() {
+ sed -i -e "s:.ifdef:ifdef:g" \
+ -e "s:.else:else:g" \
+ -e "s:.endif:endif:g" \
+ Makefile
+ default
+}
+
+src_compile() {
+ env LDFLAGS="-L/usr/$(get_libdir)" \
+ emake $(usex libuv USE_DLIBUV=1 '') \
+ $(usex static-libs USE_STATIC=1 '') \
+ all
+}
+
+src_install() {
+ emake prefix="/usr" \
+ DESTDIR="${D}" \
+ install
+ einstalldocs
+}
diff --git a/net-misc/purritobin/purritobin-9999.ebuild b/net-misc/purritobin/purritobin-9999.ebuild
index 210bf602c5..2c9702ad7c 100644
--- a/net-misc/purritobin/purritobin-9999.ebuild
+++ b/net-misc/purritobin/purritobin-9999.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-DESCRIPTION="minimalistic commanline pastebin"
+DESCRIPTION="minimalistic commandline pastebin"
HOMEPAGE="https://bsd.ac"
if [[ ${PV} == 9999 ]]; then
@@ -16,25 +16,35 @@ else
S="${WORKDIR}/PurritoBin-${PV}"
fi
-LICENSE="ISC"
+LICENSE="GPL-2"
SLOT="0"
-IUSE="libuv"
+IUSE="libuv static-libs"
-DEPEND=">=dev-cpp/usockets-0.3.5:=[libuv?]
- >=dev-cpp/uwebsockets-0.17.4
- libuv? ( >=dev-libs/libuv-1.35.0 )
+DEPEND="dev-cpp/usockets[libuv=,static-libs?]
+ libuv? ( >=dev-libs/libuv-1.35.0[static-libs?] )
"
-RDEPEND="${DEPEND}"
+BDEPEND="
+ dev-cpp/uwebsockets
+"
+
+src_prepare() {
+ sed -i -e "s:.ifdef:ifdef:g" \
+ -e "s:.else:else:g" \
+ -e "s:.endif:endif:g" \
+ Makefile
+ default
+}
src_compile() {
- if use libuv; then
- WITH_LIBUV=1 emake all
- else
- emake all
- fi
+ env LDFLAGS="-L/usr/$(get_libdir)" \
+ emake $(usex libuv USE_DLIBUV=1 '') \
+ $(usex static-libs USE_STATIC=1 '') \
+ all
}
src_install() {
- emake prefix="/usr" DESTDIR="${D}" install
+ emake prefix="/usr" \
+ DESTDIR="${D}" \
+ install
einstalldocs
}
diff --git a/sys-process/nvtop/Manifest b/sys-process/nvtop/Manifest
new file mode 100644
index 0000000000..a58877589f
--- /dev/null
+++ b/sys-process/nvtop/Manifest
@@ -0,0 +1 @@
+DIST nvtop-1.0.0.tar.gz 95427 BLAKE2B d54c166adb250222d2a0c848b64b62677e63845aeb4598dfb330661f5951c21043897c170abef8e9d86ad6c89a6792f1238c4dd8d86faeb4d098bf16b19c1beb SHA512 904daef1ef87a9730bda62fbea18766840bd3d38d2b51715b42c8429737519b71d3857dc342f5cd9fb66763f42ee296e57825ca6aa67d2d0accd2b8f1c7e894b
diff --git a/sys-process/nvtop/files/nvtop-1.0.0-add-nvml.patch b/sys-process/nvtop/files/nvtop-1.0.0-add-nvml.patch
new file mode 100644
index 0000000000..a1c5cd1a79
--- /dev/null
+++ b/sys-process/nvtop/files/nvtop-1.0.0-add-nvml.patch
@@ -0,0 +1,1020 @@
+diff --git a/include/nvml.h b/include/nvml.h
+new file mode 100644
+index 0000000..ed7c3e0
+--- /dev/null
++++ b/include/nvml.h
+@@ -0,0 +1,1014 @@
++#ifndef __nvml_nvml_h__
++#define __nvml_nvml_h__
++#ifdef __cplusplus
++extern "C" {
++#endif
++#if defined _WINDOWS
++ #if !defined NVML_STATIC_IMPORT
++ #if defined NVML_LIB_EXPORT
++ #define DECLDIR __declspec(dllexport)
++ #else
++ #define DECLDIR __declspec(dllimport)
++ #endif
++ #else
++ #define DECLDIR
++ #endif
++#else
++ #define DECLDIR
++#endif
++#define NVML_API_VERSION 10
++#define NVML_API_VERSION_STR "10"
++#define nvmlInit nvmlInit_v2
++#define nvmlDeviceGetPciInfo nvmlDeviceGetPciInfo_v3
++#define nvmlDeviceGetCount nvmlDeviceGetCount_v2
++#define nvmlDeviceGetHandleByIndex nvmlDeviceGetHandleByIndex_v2
++#define nvmlDeviceGetHandleByPciBusId nvmlDeviceGetHandleByPciBusId_v2
++#define nvmlDeviceGetNvLinkRemotePciInfo nvmlDeviceGetNvLinkRemotePciInfo_v2
++#define nvmlDeviceRemoveGpu nvmlDeviceRemoveGpu_v2
++#define nvmlDeviceGetGridLicensableFeatures nvmlDeviceGetGridLicensableFeatures_v3
++#define NVML_VALUE_NOT_AVAILABLE (-1)
++typedef struct nvmlDevice_st* nvmlDevice_t;
++#define NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE 32
++#define NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE 16
++typedef struct nvmlPciInfo_st
++{
++ char busIdLegacy[NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE];
++ unsigned int domain;
++ unsigned int bus;
++ unsigned int device;
++ unsigned int pciDeviceId;
++ unsigned int pciSubSystemId;
++ char busId[NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE];
++} nvmlPciInfo_t;
++#define NVML_DEVICE_PCI_BUS_ID_LEGACY_FMT "%04X:%02X:%02X.0"
++#define NVML_DEVICE_PCI_BUS_ID_FMT "%08X:%02X:%02X.0"
++#define NVML_DEVICE_PCI_BUS_ID_FMT_ARGS(pciInfo) (pciInfo)->domain, \
++ (pciInfo)->bus, \
++ (pciInfo)->device
++typedef struct nvmlEccErrorCounts_st
++{
++ unsigned long long l1Cache;
++ unsigned long long l2Cache;
++ unsigned long long deviceMemory;
++ unsigned long long registerFile;
++} nvmlEccErrorCounts_t;
++typedef struct nvmlUtilization_st
++{
++ unsigned int gpu;
++ unsigned int memory;
++} nvmlUtilization_t;
++typedef struct nvmlMemory_st
++{
++ unsigned long long total;
++ unsigned long long free;
++ unsigned long long used;
++} nvmlMemory_t;
++typedef struct nvmlBAR1Memory_st
++{
++ unsigned long long bar1Total;
++ unsigned long long bar1Free;
++ unsigned long long bar1Used;
++}nvmlBAR1Memory_t;
++typedef struct nvmlProcessInfo_st
++{
++ unsigned int pid;
++ unsigned long long usedGpuMemory;
++} nvmlProcessInfo_t;
++typedef enum nvmlBridgeChipType_enum
++{
++ NVML_BRIDGE_CHIP_PLX = 0,
++ NVML_BRIDGE_CHIP_BRO4 = 1
++}nvmlBridgeChipType_t;
++#define NVML_NVLINK_MAX_LINKS 6
++typedef enum nvmlNvLinkUtilizationCountUnits_enum
++{
++ NVML_NVLINK_COUNTER_UNIT_CYCLES = 0,
++ NVML_NVLINK_COUNTER_UNIT_PACKETS = 1,
++ NVML_NVLINK_COUNTER_UNIT_BYTES = 2,
++ NVML_NVLINK_COUNTER_UNIT_RESERVED = 3,
++ NVML_NVLINK_COUNTER_UNIT_COUNT
++} nvmlNvLinkUtilizationCountUnits_t;
++typedef enum nvmlNvLinkUtilizationCountPktTypes_enum
++{
++ NVML_NVLINK_COUNTER_PKTFILTER_NOP = 0x1,
++ NVML_NVLINK_COUNTER_PKTFILTER_READ = 0x2,
++ NVML_NVLINK_COUNTER_PKTFILTER_WRITE = 0x4,
++ NVML_NVLINK_COUNTER_PKTFILTER_RATOM = 0x8,
++ NVML_NVLINK_COUNTER_PKTFILTER_NRATOM = 0x10,
++ NVML_NVLINK_COUNTER_PKTFILTER_FLUSH = 0x20,
++ NVML_NVLINK_COUNTER_PKTFILTER_RESPDATA = 0x40,
++ NVML_NVLINK_COUNTER_PKTFILTER_RESPNODATA = 0x80,
++ NVML_NVLINK_COUNTER_PKTFILTER_ALL = 0xFF
++} nvmlNvLinkUtilizationCountPktTypes_t;
++typedef struct nvmlNvLinkUtilizationControl_st
++{
++ nvmlNvLinkUtilizationCountUnits_t units;
++ nvmlNvLinkUtilizationCountPktTypes_t pktfilter;
++} nvmlNvLinkUtilizationControl_t;
++typedef enum nvmlNvLinkCapability_enum
++{
++ NVML_NVLINK_CAP_P2P_SUPPORTED = 0,
++ NVML_NVLINK_CAP_SYSMEM_ACCESS = 1,
++ NVML_NVLINK_CAP_P2P_ATOMICS = 2,
++ NVML_NVLINK_CAP_SYSMEM_ATOMICS= 3,
++ NVML_NVLINK_CAP_SLI_BRIDGE = 4,
++ NVML_NVLINK_CAP_VALID = 5,
++ NVML_NVLINK_CAP_COUNT
++} nvmlNvLinkCapability_t;
++typedef enum nvmlNvLinkErrorCounter_enum
++{
++ NVML_NVLINK_ERROR_DL_REPLAY = 0,
++ NVML_NVLINK_ERROR_DL_RECOVERY = 1,
++ NVML_NVLINK_ERROR_DL_CRC_FLIT = 2,
++ NVML_NVLINK_ERROR_DL_CRC_DATA = 3,
++ NVML_NVLINK_ERROR_COUNT
++} nvmlNvLinkErrorCounter_t;
++typedef enum nvmlGpuLevel_enum
++{
++ NVML_TOPOLOGY_INTERNAL = 0,
++ NVML_TOPOLOGY_SINGLE = 10,
++ NVML_TOPOLOGY_MULTIPLE = 20,
++ NVML_TOPOLOGY_HOSTBRIDGE = 30,
++ NVML_TOPOLOGY_NODE = 40,
++ NVML_TOPOLOGY_SYSTEM = 50,
++} nvmlGpuTopologyLevel_t;
++#define NVML_TOPOLOGY_CPU NVML_TOPOLOGY_NODE
++typedef enum nvmlGpuP2PStatus_enum
++{
++ NVML_P2P_STATUS_OK = 0,
++ NVML_P2P_STATUS_CHIPSET_NOT_SUPPORED,
++ NVML_P2P_STATUS_GPU_NOT_SUPPORTED,
++ NVML_P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED,
++ NVML_P2P_STATUS_DISABLED_BY_REGKEY,
++ NVML_P2P_STATUS_NOT_SUPPORTED,
++ NVML_P2P_STATUS_UNKNOWN
++} nvmlGpuP2PStatus_t;
++typedef enum nvmlGpuP2PCapsIndex_enum
++{
++ NVML_P2P_CAPS_INDEX_READ = 0,
++ NVML_P2P_CAPS_INDEX_WRITE,
++ NVML_P2P_CAPS_INDEX_NVLINK,
++ NVML_P2P_CAPS_INDEX_ATOMICS,
++ NVML_P2P_CAPS_INDEX_PROP,
++ NVML_P2P_CAPS_INDEX_UNKNOWN
++}nvmlGpuP2PCapsIndex_t;
++#define NVML_MAX_PHYSICAL_BRIDGE (128)
++typedef struct nvmlBridgeChipInfo_st
++{
++ nvmlBridgeChipType_t type;
++ unsigned int fwVersion;
++}nvmlBridgeChipInfo_t;
++typedef struct nvmlBridgeChipHierarchy_st
++{
++ unsigned char bridgeCount;
++ nvmlBridgeChipInfo_t bridgeChipInfo[NVML_MAX_PHYSICAL_BRIDGE];
++}nvmlBridgeChipHierarchy_t;
++typedef enum nvmlSamplingType_enum
++{
++ NVML_TOTAL_POWER_SAMPLES = 0,
++ NVML_GPU_UTILIZATION_SAMPLES = 1,
++ NVML_MEMORY_UTILIZATION_SAMPLES = 2,
++ NVML_ENC_UTILIZATION_SAMPLES = 3,
++ NVML_DEC_UTILIZATION_SAMPLES = 4,
++ NVML_PROCESSOR_CLK_SAMPLES = 5,
++ NVML_MEMORY_CLK_SAMPLES = 6,
++ NVML_SAMPLINGTYPE_COUNT
++}nvmlSamplingType_t;
++typedef enum nvmlPcieUtilCounter_enum
++{
++ NVML_PCIE_UTIL_TX_BYTES = 0,
++ NVML_PCIE_UTIL_RX_BYTES = 1,
++ NVML_PCIE_UTIL_COUNT
++} nvmlPcieUtilCounter_t;
++typedef enum nvmlValueType_enum
++{
++ NVML_VALUE_TYPE_DOUBLE = 0,
++ NVML_VALUE_TYPE_UNSIGNED_INT = 1,
++ NVML_VALUE_TYPE_UNSIGNED_LONG = 2,
++ NVML_VALUE_TYPE_UNSIGNED_LONG_LONG = 3,
++ NVML_VALUE_TYPE_SIGNED_LONG_LONG = 4,
++ NVML_VALUE_TYPE_COUNT
++}nvmlValueType_t;
++typedef union nvmlValue_st
++{
++ double dVal;
++ unsigned int uiVal;
++ unsigned long ulVal;
++ unsigned long long ullVal;
++ signed long long sllVal;
++}nvmlValue_t;
++typedef struct nvmlSample_st
++{
++ unsigned long long timeStamp;
++ nvmlValue_t sampleValue;
++}nvmlSample_t;
++typedef enum nvmlPerfPolicyType_enum
++{
++ NVML_PERF_POLICY_POWER = 0,
++ NVML_PERF_POLICY_THERMAL = 1,
++ NVML_PERF_POLICY_SYNC_BOOST = 2,
++ NVML_PERF_POLICY_BOARD_LIMIT = 3,
++ NVML_PERF_POLICY_LOW_UTILIZATION = 4,
++ NVML_PERF_POLICY_RELIABILITY = 5,
++ NVML_PERF_POLICY_TOTAL_APP_CLOCKS = 10,
++ NVML_PERF_POLICY_TOTAL_BASE_CLOCKS = 11,
++ NVML_PERF_POLICY_COUNT
++}nvmlPerfPolicyType_t;
++typedef struct nvmlViolationTime_st
++{
++ unsigned long long referenceTime;
++ unsigned long long violationTime;
++}nvmlViolationTime_t;
++typedef enum nvmlEnableState_enum
++{
++ NVML_FEATURE_DISABLED = 0,
++ NVML_FEATURE_ENABLED = 1
++} nvmlEnableState_t;
++#define nvmlFlagDefault 0x00
++#define nvmlFlagForce 0x01
++typedef enum nvmlBrandType_enum
++{
++ NVML_BRAND_UNKNOWN = 0,
++ NVML_BRAND_QUADRO = 1,
++ NVML_BRAND_TESLA = 2,
++ NVML_BRAND_NVS = 3,
++ NVML_BRAND_GRID = 4,
++ NVML_BRAND_GEFORCE = 5,
++ NVML_BRAND_TITAN = 6,
++ NVML_BRAND_COUNT
++} nvmlBrandType_t;
++typedef enum nvmlTemperatureThresholds_enum
++{
++ NVML_TEMPERATURE_THRESHOLD_SHUTDOWN = 0,
++ NVML_TEMPERATURE_THRESHOLD_SLOWDOWN = 1,
++ NVML_TEMPERATURE_THRESHOLD_MEM_MAX = 2,
++ NVML_TEMPERATURE_THRESHOLD_GPU_MAX = 3,
++ NVML_TEMPERATURE_THRESHOLD_COUNT
++} nvmlTemperatureThresholds_t;
++typedef enum nvmlTemperatureSensors_enum
++{
++ NVML_TEMPERATURE_GPU = 0,
++ NVML_TEMPERATURE_COUNT
++} nvmlTemperatureSensors_t;
++typedef enum nvmlComputeMode_enum
++{
++ NVML_COMPUTEMODE_DEFAULT = 0,
++ NVML_COMPUTEMODE_EXCLUSIVE_THREAD = 1,
++ NVML_COMPUTEMODE_PROHIBITED = 2,
++ NVML_COMPUTEMODE_EXCLUSIVE_PROCESS = 3,
++ NVML_COMPUTEMODE_COUNT
++} nvmlComputeMode_t;
++#define nvmlEccBitType_t nvmlMemoryErrorType_t
++#define NVML_SINGLE_BIT_ECC NVML_MEMORY_ERROR_TYPE_CORRECTED
++#define NVML_DOUBLE_BIT_ECC NVML_MEMORY_ERROR_TYPE_UNCORRECTED
++typedef enum nvmlMemoryErrorType_enum
++{
++ NVML_MEMORY_ERROR_TYPE_CORRECTED = 0,
++ NVML_MEMORY_ERROR_TYPE_UNCORRECTED = 1,
++ NVML_MEMORY_ERROR_TYPE_COUNT
++} nvmlMemoryErrorType_t;
++typedef enum nvmlEccCounterType_enum
++{
++ NVML_VOLATILE_ECC = 0,
++ NVML_AGGREGATE_ECC = 1,
++ NVML_ECC_COUNTER_TYPE_COUNT
++} nvmlEccCounterType_t;
++typedef enum nvmlClockType_enum
++{
++ NVML_CLOCK_GRAPHICS = 0,
++ NVML_CLOCK_SM = 1,
++ NVML_CLOCK_MEM = 2,
++ NVML_CLOCK_VIDEO = 3,
++ NVML_CLOCK_COUNT
++} nvmlClockType_t;
++typedef enum nvmlClockId_enum
++{
++ NVML_CLOCK_ID_CURRENT = 0,
++ NVML_CLOCK_ID_APP_CLOCK_TARGET = 1,
++ NVML_CLOCK_ID_APP_CLOCK_DEFAULT = 2,
++ NVML_CLOCK_ID_CUSTOMER_BOOST_MAX = 3,
++ NVML_CLOCK_ID_COUNT
++} nvmlClockId_t;
++typedef enum nvmlDriverModel_enum
++{
++ NVML_DRIVER_WDDM = 0,
++ NVML_DRIVER_WDM = 1
++} nvmlDriverModel_t;
++typedef enum nvmlPStates_enum
++{
++ NVML_PSTATE_0 = 0,
++ NVML_PSTATE_1 = 1,
++ NVML_PSTATE_2 = 2,
++ NVML_PSTATE_3 = 3,
++ NVML_PSTATE_4 = 4,
++ NVML_PSTATE_5 = 5,
++ NVML_PSTATE_6 = 6,
++ NVML_PSTATE_7 = 7,
++ NVML_PSTATE_8 = 8,
++ NVML_PSTATE_9 = 9,
++ NVML_PSTATE_10 = 10,
++ NVML_PSTATE_11 = 11,
++ NVML_PSTATE_12 = 12,
++ NVML_PSTATE_13 = 13,
++ NVML_PSTATE_14 = 14,
++ NVML_PSTATE_15 = 15,
++ NVML_PSTATE_UNKNOWN = 32
++} nvmlPstates_t;
++typedef enum nvmlGom_enum
++{
++ NVML_GOM_ALL_ON = 0,
++ NVML_GOM_COMPUTE = 1,
++ NVML_GOM_LOW_DP = 2
++} nvmlGpuOperationMode_t;
++typedef enum nvmlInforomObject_enum
++{
++ NVML_INFOROM_OEM = 0,
++ NVML_INFOROM_ECC = 1,
++ NVML_INFOROM_POWER = 2,
++ NVML_INFOROM_COUNT
++} nvmlInforomObject_t;
++typedef enum nvmlReturn_enum
++{
++ NVML_SUCCESS = 0,
++ NVML_ERROR_UNINITIALIZED = 1,
++ NVML_ERROR_INVALID_ARGUMENT = 2,
++ NVML_ERROR_NOT_SUPPORTED = 3,
++ NVML_ERROR_NO_PERMISSION = 4,
++ NVML_ERROR_ALREADY_INITIALIZED = 5,
++ NVML_ERROR_NOT_FOUND = 6,
++ NVML_ERROR_INSUFFICIENT_SIZE = 7,
++ NVML_ERROR_INSUFFICIENT_POWER = 8,
++ NVML_ERROR_DRIVER_NOT_LOADED = 9,
++ NVML_ERROR_TIMEOUT = 10,
++ NVML_ERROR_IRQ_ISSUE = 11,
++ NVML_ERROR_LIBRARY_NOT_FOUND = 12,
++ NVML_ERROR_FUNCTION_NOT_FOUND = 13,
++ NVML_ERROR_CORRUPTED_INFOROM = 14,
++ NVML_ERROR_GPU_IS_LOST = 15,
++ NVML_ERROR_RESET_REQUIRED = 16,
++ NVML_ERROR_OPERATING_SYSTEM = 17,
++ NVML_ERROR_LIB_RM_VERSION_MISMATCH = 18,
++ NVML_ERROR_IN_USE = 19,
++ NVML_ERROR_MEMORY = 20,
++ NVML_ERROR_NO_DATA = 21,
++ NVML_ERROR_VGPU_ECC_NOT_SUPPORTED = 22,
++ NVML_ERROR_UNKNOWN = 999
++} nvmlReturn_t;
++typedef enum nvmlMemoryLocation_enum
++{
++ NVML_MEMORY_LOCATION_L1_CACHE = 0,
++ NVML_MEMORY_LOCATION_L2_CACHE = 1,
++ NVML_MEMORY_LOCATION_DRAM = 2,
++ NVML_MEMORY_LOCATION_DEVICE_MEMORY = 2,
++ NVML_MEMORY_LOCATION_REGISTER_FILE = 3,
++ NVML_MEMORY_LOCATION_TEXTURE_MEMORY = 4,
++ NVML_MEMORY_LOCATION_TEXTURE_SHM = 5,
++ NVML_MEMORY_LOCATION_CBU = 6,
++ NVML_MEMORY_LOCATION_SRAM = 7,
++ NVML_MEMORY_LOCATION_COUNT
++} nvmlMemoryLocation_t;
++typedef enum nvmlPageRetirementCause_enum
++{
++ NVML_PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS = 0,
++ NVML_PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR = 1,
++ NVML_PAGE_RETIREMENT_CAUSE_COUNT
++} nvmlPageRetirementCause_t;
++typedef enum nvmlRestrictedAPI_enum
++{
++ NVML_RESTRICTED_API_SET_APPLICATION_CLOCKS = 0,
++ NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS = 1,
++ NVML_RESTRICTED_API_COUNT
++} nvmlRestrictedAPI_t;
++typedef enum nvmlGpuVirtualizationMode {
++ NVML_GPU_VIRTUALIZATION_MODE_NONE = 0,
++ NVML_GPU_VIRTUALIZATION_MODE_PASSTHROUGH = 1,
++ NVML_GPU_VIRTUALIZATION_MODE_VGPU = 2,
++ NVML_GPU_VIRTUALIZATION_MODE_HOST_VGPU = 3,
++ NVML_GPU_VIRTUALIZATION_MODE_HOST_VSGA = 4,
++} nvmlGpuVirtualizationMode_t;
++typedef enum nvmlHostVgpuMode_enum
++{
++ NVML_HOST_VGPU_MODE_NON_SRIOV = 0,
++ NVML_HOST_VGPU_MODE_SRIOV = 1
++} nvmlHostVgpuMode_t;
++typedef enum nvmlVgpuVmIdType {
++ NVML_VGPU_VM_ID_DOMAIN_ID = 0,
++ NVML_VGPU_VM_ID_UUID = 1,
++} nvmlVgpuVmIdType_t;
++typedef enum nvmlVgpuGuestInfoState_enum
++{
++ NVML_VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED = 0,
++ NVML_VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZED = 1,
++} nvmlVgpuGuestInfoState_t;
++typedef enum {
++ NVML_GRID_LICENSE_FEATURE_CODE_VGPU = 1,
++ NVML_GRID_LICENSE_FEATURE_CODE_VWORKSTATION = 2
++} nvmlGridLicenseFeatureCode_t;
++#define NVML_GRID_LICENSE_BUFFER_SIZE 128
++#define NVML_VGPU_NAME_BUFFER_SIZE 64
++#define NVML_GRID_LICENSE_FEATURE_MAX_COUNT 3
++#define NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION 0:0
++#define NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION_NO 0x0
++#define NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION_YES 0x1
++#define NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION 0:0
++#define NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION_NO 0x0
++#define NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION_YES 0x1
++typedef unsigned int nvmlVgpuTypeId_t;
++typedef unsigned int nvmlVgpuInstance_t;
++typedef struct nvmlVgpuInstanceUtilizationSample_st
++{
++ nvmlVgpuInstance_t vgpuInstance;
++ unsigned long long timeStamp;
++ nvmlValue_t smUtil;
++ nvmlValue_t memUtil;
++ nvmlValue_t encUtil;
++ nvmlValue_t decUtil;
++} nvmlVgpuInstanceUtilizationSample_t;
++typedef struct nvmlVgpuProcessUtilizationSample_st
++{
++ nvmlVgpuInstance_t vgpuInstance;
++ unsigned int pid;
++ char processName[NVML_VGPU_NAME_BUFFER_SIZE];
++ unsigned long long timeStamp;
++ unsigned int smUtil;
++ unsigned int memUtil;
++ unsigned int encUtil;
++ unsigned int decUtil;
++} nvmlVgpuProcessUtilizationSample_t;
++typedef struct nvmlProcessUtilizationSample_st
++{
++ unsigned int pid;
++ unsigned long long timeStamp;
++ unsigned int smUtil;
++ unsigned int memUtil;
++ unsigned int encUtil;
++ unsigned int decUtil;
++} nvmlProcessUtilizationSample_t;
++typedef struct nvmlGridLicensableFeature_st
++{
++ nvmlGridLicenseFeatureCode_t featureCode;
++ unsigned int featureState;
++ char licenseInfo[NVML_GRID_LICENSE_BUFFER_SIZE];
++ char productName[NVML_GRID_LICENSE_BUFFER_SIZE];
++ unsigned int featureEnabled;
++} nvmlGridLicensableFeature_t;
++typedef struct nvmlGridLicensableFeatures_st
++{
++ int isGridLicenseSupported;
++ unsigned int licensableFeaturesCount;
++ nvmlGridLicensableFeature_t gridLicensableFeatures[NVML_GRID_LICENSE_FEATURE_MAX_COUNT];
++} nvmlGridLicensableFeatures_t;
++#define NVML_FI_DEV_ECC_CURRENT 1
++#define NVML_FI_DEV_ECC_PENDING 2
++#define NVML_FI_DEV_ECC_SBE_VOL_TOTAL 3
++#define NVML_FI_DEV_ECC_DBE_VOL_TOTAL 4
++#define NVML_FI_DEV_ECC_SBE_AGG_TOTAL 5
++#define NVML_FI_DEV_ECC_DBE_AGG_TOTAL 6
++#define NVML_FI_DEV_ECC_SBE_VOL_L1 7
++#define NVML_FI_DEV_ECC_DBE_VOL_L1 8
++#define NVML_FI_DEV_ECC_SBE_VOL_L2 9
++#define NVML_FI_DEV_ECC_DBE_VOL_L2 10
++#define NVML_FI_DEV_ECC_SBE_VOL_DEV 11
++#define NVML_FI_DEV_ECC_DBE_VOL_DEV 12
++#define NVML_FI_DEV_ECC_SBE_VOL_REG 13
++#define NVML_FI_DEV_ECC_DBE_VOL_REG 14
++#define NVML_FI_DEV_ECC_SBE_VOL_TEX 15
++#define NVML_FI_DEV_ECC_DBE_VOL_TEX 16
++#define NVML_FI_DEV_ECC_DBE_VOL_CBU 17
++#define NVML_FI_DEV_ECC_SBE_AGG_L1 18
++#define NVML_FI_DEV_ECC_DBE_AGG_L1 19
++#define NVML_FI_DEV_ECC_SBE_AGG_L2 20
++#define NVML_FI_DEV_ECC_DBE_AGG_L2 21
++#define NVML_FI_DEV_ECC_SBE_AGG_DEV 22
++#define NVML_FI_DEV_ECC_DBE_AGG_DEV 23
++#define NVML_FI_DEV_ECC_SBE_AGG_REG 24
++#define NVML_FI_DEV_ECC_DBE_AGG_REG 25
++#define NVML_FI_DEV_ECC_SBE_AGG_TEX 26
++#define NVML_FI_DEV_ECC_DBE_AGG_TEX 27
++#define NVML_FI_DEV_ECC_DBE_AGG_CBU 28
++#define NVML_FI_DEV_RETIRED_SBE 29
++#define NVML_FI_DEV_RETIRED_DBE 30
++#define NVML_FI_DEV_RETIRED_PENDING 31
++#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0 32
++#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1 33
++#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2 34
++#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3 35
++#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4 36
++#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5 37
++#define NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL 38
++#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0 39
++#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1 40
++#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2 41
++#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3 42
++#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4 43
++#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5 44
++#define NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL 45
++#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0 46
++#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1 47
++#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2 48
++#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3 49
++#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4 50
++#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5 51
++#define NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL 52
++#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0 53
++#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1 54
++#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2 55
++#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3 56
++#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4 57
++#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5 58
++#define NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL 59
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L0 60
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L1 61
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L2 62
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L3 63
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L4 64
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L5 65
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C0_TOTAL 66
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L0 67
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L1 68
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L2 69
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L3 70
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L4 71
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L5 72
++#define NVML_FI_DEV_NVLINK_BANDWIDTH_C1_TOTAL 73
++#define NVML_FI_DEV_PERF_POLICY_POWER 74
++#define NVML_FI_DEV_PERF_POLICY_THERMAL 75
++#define NVML_FI_DEV_PERF_POLICY_SYNC_BOOST 76
++#define NVML_FI_DEV_PERF_POLICY_BOARD_LIMIT 77
++#define NVML_FI_DEV_PERF_POLICY_LOW_UTILIZATION 78
++#define NVML_FI_DEV_PERF_POLICY_RELIABILITY 79
++#define NVML_FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS 80
++#define NVML_FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKS 81
++#define NVML_FI_DEV_MEMORY_TEMP 82
++#define NVML_FI_DEV_TOTAL_ENERGY_CONSUMPTION 83
++#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L0 84
++#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L1 85
++#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L2 86
++#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L3 87
++#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L4 88
++#define NVML_FI_DEV_NVLINK_SPEED_MBPS_L5 89
++#define NVML_FI_DEV_NVLINK_SPEED_MBPS_COMMON 90
++#define NVML_FI_DEV_NVLINK_LINK_COUNT 91
++#define NVML_FI_DEV_RETIRED_PENDING_SBE 92
++#define NVML_FI_DEV_RETIRED_PENDING_DBE 93
++#define NVML_FI_DEV_PCIE_REPLAY_COUNTER 94
++#define NVML_FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER 95
++#define NVML_FI_MAX 96
++typedef struct nvmlFieldValue_st
++{
++ unsigned int fieldId;
++ unsigned int unused;
++ long long timestamp;
++ long long latencyUsec;
++ nvmlValueType_t valueType;
++ nvmlReturn_t nvmlReturn;
++ nvmlValue_t value;
++} nvmlFieldValue_t;
++typedef struct nvmlUnit_st* nvmlUnit_t;
++typedef struct nvmlHwbcEntry_st
++{
++ unsigned int hwbcId;
++ char firmwareVersion[32];
++} nvmlHwbcEntry_t;
++typedef enum nvmlFanState_enum
++{
++ NVML_FAN_NORMAL = 0,
++ NVML_FAN_FAILED = 1
++} nvmlFanState_t;
++typedef enum nvmlLedColor_enum
++{
++ NVML_LED_COLOR_GREEN = 0,
++ NVML_LED_COLOR_AMBER = 1
++} nvmlLedColor_t;
++typedef struct nvmlLedState_st
++{
++ char cause[256];
++ nvmlLedColor_t color;
++} nvmlLedState_t;
++typedef struct nvmlUnitInfo_st
++{
++ char name[96];
++ char id[96];
++ char serial[96];
++ char firmwareVersion[96];
++} nvmlUnitInfo_t;
++typedef struct nvmlPSUInfo_st
++{
++ char state[256];
++ unsigned int current;
++ unsigned int voltage;
++ unsigned int power;
++} nvmlPSUInfo_t;
++typedef struct nvmlUnitFanInfo_st
++{
++ unsigned int speed;
++ nvmlFanState_t state;
++} nvmlUnitFanInfo_t;
++typedef struct nvmlUnitFanSpeeds_st
++{
++ nvmlUnitFanInfo_t fans[24];
++ unsigned int count;
++} nvmlUnitFanSpeeds_t;
++typedef struct nvmlEventSet_st* nvmlEventSet_t;
++#define nvmlEventTypeSingleBitEccError 0x0000000000000001LL
++#define nvmlEventTypeDoubleBitEccError 0x0000000000000002LL
++#define nvmlEventTypePState 0x0000000000000004LL
++#define nvmlEventTypeXidCriticalError 0x0000000000000008LL
++#define nvmlEventTypeClock 0x0000000000000010LL
++#define nvmlEventTypeNone 0x0000000000000000LL
++#define nvmlEventTypeAll (nvmlEventTypeNone \
++ | nvmlEventTypeSingleBitEccError \
++ | nvmlEventTypeDoubleBitEccError \
++ | nvmlEventTypePState \
++ | nvmlEventTypeClock \
++ | nvmlEventTypeXidCriticalError \
++ )
++typedef struct nvmlEventData_st
++{
++ nvmlDevice_t device;
++ unsigned long long eventType;
++ unsigned long long eventData;
++} nvmlEventData_t;
++#define nvmlClocksThrottleReasonGpuIdle 0x0000000000000001LL
++#define nvmlClocksThrottleReasonApplicationsClocksSetting 0x0000000000000002LL
++#define nvmlClocksThrottleReasonUserDefinedClocks nvmlClocksThrottleReasonApplicationsClocksSetting
++#define nvmlClocksThrottleReasonSwPowerCap 0x0000000000000004LL
++#define nvmlClocksThrottleReasonHwSlowdown 0x0000000000000008LL
++#define nvmlClocksThrottleReasonSyncBoost 0x0000000000000010LL
++#define nvmlClocksThrottleReasonSwThermalSlowdown 0x0000000000000020LL
++#define nvmlClocksThrottleReasonHwThermalSlowdown 0x0000000000000040LL
++#define nvmlClocksThrottleReasonHwPowerBrakeSlowdown 0x0000000000000080LL
++#define nvmlClocksThrottleReasonDisplayClockSetting 0x0000000000000100LL
++#define nvmlClocksThrottleReasonNone 0x0000000000000000LL
++#define nvmlClocksThrottleReasonAll (nvmlClocksThrottleReasonNone \
++ | nvmlClocksThrottleReasonGpuIdle \
++ | nvmlClocksThrottleReasonApplicationsClocksSetting \
++ | nvmlClocksThrottleReasonSwPowerCap \
++ | nvmlClocksThrottleReasonHwSlowdown \
++ | nvmlClocksThrottleReasonSyncBoost \
++ | nvmlClocksThrottleReasonSwThermalSlowdown \
++ | nvmlClocksThrottleReasonHwThermalSlowdown \
++ | nvmlClocksThrottleReasonHwPowerBrakeSlowdown \
++ | nvmlClocksThrottleReasonDisplayClockSetting \
++)
++typedef struct nvmlAccountingStats_st {
++ unsigned int gpuUtilization;
++ unsigned int memoryUtilization;
++ unsigned long long maxMemoryUsage;
++ unsigned long long time;
++ unsigned long long startTime;
++ unsigned int isRunning;
++ unsigned int reserved[5];
++} nvmlAccountingStats_t;
++typedef enum nvmlEncoderQueryType_enum
++{
++ NVML_ENCODER_QUERY_H264 = 0,
++ NVML_ENCODER_QUERY_HEVC = 1,
++}nvmlEncoderType_t;
++typedef struct nvmlEncoderSessionInfo_st
++{
++ unsigned int sessionId;
++ unsigned int pid;
++ nvmlVgpuInstance_t vgpuInstance;
++ nvmlEncoderType_t codecType;
++ unsigned int hResolution;
++ unsigned int vResolution;
++ unsigned int averageFps;
++ unsigned int averageLatency;
++}nvmlEncoderSessionInfo_t;
++typedef enum nvmlFBCSessionType_enum
++{
++ NVML_FBC_SESSION_TYPE_UNKNOWN = 0,
++ NVML_FBC_SESSION_TYPE_TOSYS,
++ NVML_FBC_SESSION_TYPE_CUDA,
++ NVML_FBC_SESSION_TYPE_VID,
++ NVML_FBC_SESSION_TYPE_HWENC,
++} nvmlFBCSessionType_t;
++typedef struct nvmlFBCStats_st
++{
++ unsigned int sessionsCount;
++ unsigned int averageFPS;
++ unsigned int averageLatency;
++} nvmlFBCStats_t;
++#define NVML_NVFBC_SESSION_FLAG_DIFFMAP_ENABLED 0x00000001
++#define NVML_NVFBC_SESSION_FLAG_CLASSIFICATIONMAP_ENABLED 0x00000002
++#define NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_NO_WAIT 0x00000004
++#define NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_INFINITE 0x00000008
++#define NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_TIMEOUT 0x00000010
++typedef struct nvmlFBCSessionInfo_st
++{
++ unsigned int sessionId;
++ unsigned int pid;
++ nvmlVgpuInstance_t vgpuInstance;
++ unsigned int displayOrdinal;
++ nvmlFBCSessionType_t sessionType;
++ unsigned int sessionFlags;
++ unsigned int hMaxResolution;
++ unsigned int vMaxResolution;
++ unsigned int hResolution;
++ unsigned int vResolution;
++ unsigned int averageFPS;
++ unsigned int averageLatency;
++} nvmlFBCSessionInfo_t;
++typedef enum nvmlDetachGpuState_enum
++{
++ NVML_DETACH_GPU_KEEP = 0,
++ NVML_DETACH_GPU_REMOVE,
++} nvmlDetachGpuState_t;
++typedef enum nvmlPcieLinkState_enum
++{
++ NVML_PCIE_LINK_KEEP = 0,
++ NVML_PCIE_LINK_SHUT_DOWN,
++} nvmlPcieLinkState_t;
++#define NVML_INIT_FLAG_NO_GPUS 1
++#define NVML_INIT_FLAG_NO_ATTACH 2
++nvmlReturn_t DECLDIR nvmlInit(void);
++nvmlReturn_t DECLDIR nvmlInitWithFlags(unsigned int flags);
++nvmlReturn_t DECLDIR nvmlShutdown(void);
++const DECLDIR char* nvmlErrorString(nvmlReturn_t result);
++#define NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE 16
++#define NVML_DEVICE_UUID_BUFFER_SIZE 80
++#define NVML_DEVICE_PART_NUMBER_BUFFER_SIZE 80
++#define NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE 80
++#define NVML_SYSTEM_NVML_VERSION_BUFFER_SIZE 80
++#define NVML_DEVICE_NAME_BUFFER_SIZE 64
++#define NVML_DEVICE_SERIAL_BUFFER_SIZE 30
++#define NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZE 32
++nvmlReturn_t DECLDIR nvmlSystemGetDriverVersion(char *version, unsigned int length);
++nvmlReturn_t DECLDIR nvmlSystemGetNVMLVersion(char *version, unsigned int length);
++nvmlReturn_t DECLDIR nvmlSystemGetCudaDriverVersion(int *cudaDriverVersion);
++nvmlReturn_t DECLDIR nvmlSystemGetCudaDriverVersion_v2(int *cudaDriverVersion);
++#define NVML_CUDA_DRIVER_VERSION_MAJOR(v) ((v)/1000)
++#define NVML_CUDA_DRIVER_VERSION_MINOR(v) (((v)%1000)/10)
++nvmlReturn_t DECLDIR nvmlSystemGetProcessName(unsigned int pid, char *name, unsigned int length);
++nvmlReturn_t DECLDIR nvmlUnitGetCount(unsigned int *unitCount);
++nvmlReturn_t DECLDIR nvmlUnitGetHandleByIndex(unsigned int index, nvmlUnit_t *unit);
++nvmlReturn_t DECLDIR nvmlUnitGetUnitInfo(nvmlUnit_t unit, nvmlUnitInfo_t *info);
++nvmlReturn_t DECLDIR nvmlUnitGetLedState(nvmlUnit_t unit, nvmlLedState_t *state);
++nvmlReturn_t DECLDIR nvmlUnitGetPsuInfo(nvmlUnit_t unit, nvmlPSUInfo_t *psu);
++nvmlReturn_t DECLDIR nvmlUnitGetTemperature(nvmlUnit_t unit, unsigned int type, unsigned int *temp);
++nvmlReturn_t DECLDIR nvmlUnitGetFanSpeedInfo(nvmlUnit_t unit, nvmlUnitFanSpeeds_t *fanSpeeds);
++nvmlReturn_t DECLDIR nvmlUnitGetDevices(nvmlUnit_t unit, unsigned int *deviceCount, nvmlDevice_t *devices);
++nvmlReturn_t DECLDIR nvmlSystemGetHicVersion(unsigned int *hwbcCount, nvmlHwbcEntry_t *hwbcEntries);
++nvmlReturn_t DECLDIR nvmlDeviceGetCount(unsigned int *deviceCount);
++nvmlReturn_t DECLDIR nvmlDeviceGetHandleByIndex(unsigned int index, nvmlDevice_t *device);
++nvmlReturn_t DECLDIR nvmlDeviceGetHandleBySerial(const char *serial, nvmlDevice_t *device);
++nvmlReturn_t DECLDIR nvmlDeviceGetHandleByUUID(const char *uuid, nvmlDevice_t *device);
++nvmlReturn_t DECLDIR nvmlDeviceGetHandleByPciBusId(const char *pciBusId, nvmlDevice_t *device);
++nvmlReturn_t DECLDIR nvmlDeviceGetName(nvmlDevice_t device, char *name, unsigned int length);
++nvmlReturn_t DECLDIR nvmlDeviceGetBrand(nvmlDevice_t device, nvmlBrandType_t *type);
++nvmlReturn_t DECLDIR nvmlDeviceGetIndex(nvmlDevice_t device, unsigned int *index);
++nvmlReturn_t DECLDIR nvmlDeviceGetSerial(nvmlDevice_t device, char *serial, unsigned int length);
++nvmlReturn_t DECLDIR nvmlDeviceGetCpuAffinity(nvmlDevice_t device, unsigned int cpuSetSize, unsigned long *cpuSet);
++nvmlReturn_t DECLDIR nvmlDeviceSetCpuAffinity(nvmlDevice_t device);
++nvmlReturn_t DECLDIR nvmlDeviceClearCpuAffinity(nvmlDevice_t device);
++nvmlReturn_t DECLDIR nvmlDeviceGetTopologyCommonAncestor(nvmlDevice_t device1, nvmlDevice_t device2, nvmlGpuTopologyLevel_t *pathInfo);
++nvmlReturn_t DECLDIR nvmlDeviceGetTopologyNearestGpus(nvmlDevice_t device, nvmlGpuTopologyLevel_t level, unsigned int *count, nvmlDevice_t *deviceArray);
++nvmlReturn_t DECLDIR nvmlSystemGetTopologyGpuSet(unsigned int cpuNumber, unsigned int *count, nvmlDevice_t *deviceArray);
++nvmlReturn_t DECLDIR nvmlDeviceGetP2PStatus(nvmlDevice_t device1, nvmlDevice_t device2, nvmlGpuP2PCapsIndex_t p2pIndex,nvmlGpuP2PStatus_t *p2pStatus);
++nvmlReturn_t DECLDIR nvmlDeviceGetUUID(nvmlDevice_t device, char *uuid, unsigned int length);
++nvmlReturn_t DECLDIR nvmlDeviceGetMinorNumber(nvmlDevice_t device, unsigned int *minorNumber);
++nvmlReturn_t DECLDIR nvmlDeviceGetBoardPartNumber(nvmlDevice_t device, char* partNumber, unsigned int length);
++nvmlReturn_t DECLDIR nvmlDeviceGetInforomVersion(nvmlDevice_t device, nvmlInforomObject_t object, char *version, unsigned int length);
++nvmlReturn_t DECLDIR nvmlDeviceGetInforomImageVersion(nvmlDevice_t device, char *version, unsigned int length);
++nvmlReturn_t DECLDIR nvmlDeviceGetInforomConfigurationChecksum(nvmlDevice_t device, unsigned int *checksum);
++nvmlReturn_t DECLDIR nvmlDeviceValidateInforom(nvmlDevice_t device);
++nvmlReturn_t DECLDIR nvmlDeviceGetDisplayMode(nvmlDevice_t device, nvmlEnableState_t *display);
++nvmlReturn_t DECLDIR nvmlDeviceGetDisplayActive(nvmlDevice_t device, nvmlEnableState_t *isActive);
++nvmlReturn_t DECLDIR nvmlDeviceGetPersistenceMode(nvmlDevice_t device, nvmlEnableState_t *mode);
++nvmlReturn_t DECLDIR nvmlDeviceGetPciInfo(nvmlDevice_t device, nvmlPciInfo_t *pci);
++nvmlReturn_t DECLDIR nvmlDeviceGetMaxPcieLinkGeneration(nvmlDevice_t device, unsigned int *maxLinkGen);
++nvmlReturn_t DECLDIR nvmlDeviceGetMaxPcieLinkWidth(nvmlDevice_t device, unsigned int *maxLinkWidth);
++nvmlReturn_t DECLDIR nvmlDeviceGetCurrPcieLinkGeneration(nvmlDevice_t device, unsigned int *currLinkGen);
++nvmlReturn_t DECLDIR nvmlDeviceGetCurrPcieLinkWidth(nvmlDevice_t device, unsigned int *currLinkWidth);
++nvmlReturn_t DECLDIR nvmlDeviceGetPcieThroughput(nvmlDevice_t device, nvmlPcieUtilCounter_t counter, unsigned int *value);
++nvmlReturn_t DECLDIR nvmlDeviceGetPcieReplayCounter(nvmlDevice_t device, unsigned int *value);
++nvmlReturn_t DECLDIR nvmlDeviceGetClockInfo(nvmlDevice_t device, nvmlClockType_t type, unsigned int *clock);
++nvmlReturn_t DECLDIR nvmlDeviceGetMaxClockInfo(nvmlDevice_t device, nvmlClockType_t type, unsigned int *clock);
++nvmlReturn_t DECLDIR nvmlDeviceGetApplicationsClock(nvmlDevice_t device, nvmlClockType_t clockType, unsigned int *clockMHz);
++nvmlReturn_t DECLDIR nvmlDeviceGetDefaultApplicationsClock(nvmlDevice_t device, nvmlClockType_t clockType, unsigned int *clockMHz);
++nvmlReturn_t DECLDIR nvmlDeviceResetApplicationsClocks(nvmlDevice_t device);
++nvmlReturn_t DECLDIR nvmlDeviceGetClock(nvmlDevice_t device, nvmlClockType_t clockType, nvmlClockId_t clockId, unsigned int *clockMHz);
++nvmlReturn_t DECLDIR nvmlDeviceGetMaxCustomerBoostClock(nvmlDevice_t device, nvmlClockType_t clockType, unsigned int *clockMHz);
++nvmlReturn_t DECLDIR nvmlDeviceGetSupportedMemoryClocks(nvmlDevice_t device, unsigned int *count, unsigned int *clocksMHz);
++nvmlReturn_t DECLDIR nvmlDeviceGetSupportedGraphicsClocks(nvmlDevice_t device, unsigned int memoryClockMHz, unsigned int *count, unsigned int *clocksMHz);
++nvmlReturn_t DECLDIR nvmlDeviceGetAutoBoostedClocksEnabled(nvmlDevice_t device, nvmlEnableState_t *isEnabled, nvmlEnableState_t *defaultIsEnabled);
++nvmlReturn_t DECLDIR nvmlDeviceSetAutoBoostedClocksEnabled(nvmlDevice_t device, nvmlEnableState_t enabled);
++nvmlReturn_t DECLDIR nvmlDeviceSetDefaultAutoBoostedClocksEnabled(nvmlDevice_t device, nvmlEnableState_t enabled, unsigned int flags);
++nvmlReturn_t DECLDIR nvmlDeviceGetFanSpeed(nvmlDevice_t device, unsigned int *speed);
++nvmlReturn_t DECLDIR nvmlDeviceGetFanSpeed_v2(nvmlDevice_t device, unsigned int fan, unsigned int * speed);
++nvmlReturn_t DECLDIR nvmlDeviceGetTemperature(nvmlDevice_t device, nvmlTemperatureSensors_t sensorType, unsigned int *temp);
++nvmlReturn_t DECLDIR nvmlDeviceGetTemperatureThreshold(nvmlDevice_t device, nvmlTemperatureThresholds_t thresholdType, unsigned int *temp);
++nvmlReturn_t DECLDIR nvmlDeviceGetPerformanceState(nvmlDevice_t device, nvmlPstates_t *pState);
++nvmlReturn_t DECLDIR nvmlDeviceGetCurrentClocksThrottleReasons(nvmlDevice_t device, unsigned long long *clocksThrottleReasons);
++nvmlReturn_t DECLDIR nvmlDeviceGetSupportedClocksThrottleReasons(nvmlDevice_t device, unsigned long long *supportedClocksThrottleReasons);
++nvmlReturn_t DECLDIR nvmlDeviceGetPowerState(nvmlDevice_t device, nvmlPstates_t *pState);
++nvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementMode(nvmlDevice_t device, nvmlEnableState_t *mode);
++nvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementLimit(nvmlDevice_t device, unsigned int *limit);
++nvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementLimitConstraints(nvmlDevice_t device, unsigned int *minLimit, unsigned int *maxLimit);
++nvmlReturn_t DECLDIR nvmlDeviceGetPowerManagementDefaultLimit(nvmlDevice_t device, unsigned int *defaultLimit);
++nvmlReturn_t DECLDIR nvmlDeviceGetPowerUsage(nvmlDevice_t device, unsigned int *power);
++nvmlReturn_t DECLDIR nvmlDeviceGetTotalEnergyConsumption(nvmlDevice_t device, unsigned long long *energy);
++nvmlReturn_t DECLDIR nvmlDeviceGetEnforcedPowerLimit(nvmlDevice_t device, unsigned int *limit);
++nvmlReturn_t DECLDIR nvmlDeviceGetGpuOperationMode(nvmlDevice_t device, nvmlGpuOperationMode_t *current, nvmlGpuOperationMode_t *pending);
++nvmlReturn_t DECLDIR nvmlDeviceGetMemoryInfo(nvmlDevice_t device, nvmlMemory_t *memory);
++nvmlReturn_t DECLDIR nvmlDeviceGetComputeMode(nvmlDevice_t device, nvmlComputeMode_t *mode);
++nvmlReturn_t DECLDIR nvmlDeviceGetCudaComputeCapability(nvmlDevice_t device, int *major, int *minor);
++nvmlReturn_t DECLDIR nvmlDeviceGetEccMode(nvmlDevice_t device, nvmlEnableState_t *current, nvmlEnableState_t *pending);
++nvmlReturn_t DECLDIR nvmlDeviceGetBoardId(nvmlDevice_t device, unsigned int *boardId);
++nvmlReturn_t DECLDIR nvmlDeviceGetMultiGpuBoard(nvmlDevice_t device, unsigned int *multiGpuBool);
++nvmlReturn_t DECLDIR nvmlDeviceGetTotalEccErrors(nvmlDevice_t device, nvmlMemoryErrorType_t errorType, nvmlEccCounterType_t counterType, unsigned long long *eccCounts);
++nvmlReturn_t DECLDIR nvmlDeviceGetDetailedEccErrors(nvmlDevice_t device, nvmlMemoryErrorType_t errorType, nvmlEccCounterType_t counterType, nvmlEccErrorCounts_t *eccCounts);
++nvmlReturn_t DECLDIR nvmlDeviceGetMemoryErrorCounter(nvmlDevice_t device, nvmlMemoryErrorType_t errorType,
++ nvmlEccCounterType_t counterType,
++ nvmlMemoryLocation_t locationType, unsigned long long *count);
++nvmlReturn_t DECLDIR nvmlDeviceGetUtilizationRates(nvmlDevice_t device, nvmlUtilization_t *utilization);
++nvmlReturn_t DECLDIR nvmlDeviceGetEncoderUtilization(nvmlDevice_t device, unsigned int *utilization, unsigned int *samplingPeriodUs);
++nvmlReturn_t DECLDIR nvmlDeviceGetEncoderCapacity (nvmlDevice_t device, nvmlEncoderType_t encoderQueryType, unsigned int *encoderCapacity);
++nvmlReturn_t DECLDIR nvmlDeviceGetEncoderStats (nvmlDevice_t device, unsigned int *sessionCount,
++ unsigned int *averageFps, unsigned int *averageLatency);
++nvmlReturn_t DECLDIR nvmlDeviceGetEncoderSessions(nvmlDevice_t device, unsigned int *sessionCount, nvmlEncoderSessionInfo_t *sessionInfos);
++nvmlReturn_t DECLDIR nvmlDeviceGetDecoderUtilization(nvmlDevice_t device, unsigned int *utilization, unsigned int *samplingPeriodUs);
++nvmlReturn_t DECLDIR nvmlDeviceGetFBCStats(nvmlDevice_t device, nvmlFBCStats_t *fbcStats);
++nvmlReturn_t DECLDIR nvmlDeviceGetFBCSessions(nvmlDevice_t device, unsigned int *sessionCount, nvmlFBCSessionInfo_t *sessionInfo);
++nvmlReturn_t DECLDIR nvmlDeviceGetDriverModel(nvmlDevice_t device, nvmlDriverModel_t *current, nvmlDriverModel_t *pending);
++nvmlReturn_t DECLDIR nvmlDeviceGetVbiosVersion(nvmlDevice_t device, char *version, unsigned int length);
++nvmlReturn_t DECLDIR nvmlDeviceGetBridgeChipInfo(nvmlDevice_t device, nvmlBridgeChipHierarchy_t *bridgeHierarchy);
++nvmlReturn_t DECLDIR nvmlDeviceGetComputeRunningProcesses(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_t *infos);
++nvmlReturn_t DECLDIR nvmlDeviceGetGraphicsRunningProcesses(nvmlDevice_t device, unsigned int *infoCount, nvmlProcessInfo_t *infos);
++nvmlReturn_t DECLDIR nvmlDeviceOnSameBoard(nvmlDevice_t device1, nvmlDevice_t device2, int *onSameBoard);
++nvmlReturn_t DECLDIR nvmlDeviceGetAPIRestriction(nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t *isRestricted);
++nvmlReturn_t DECLDIR nvmlDeviceGetSamples(nvmlDevice_t device, nvmlSamplingType_t type, unsigned long long lastSeenTimeStamp,
++ nvmlValueType_t *sampleValType, unsigned int *sampleCount, nvmlSample_t *samples);
++nvmlReturn_t DECLDIR nvmlDeviceGetBAR1MemoryInfo(nvmlDevice_t device, nvmlBAR1Memory_t *bar1Memory);
++nvmlReturn_t DECLDIR nvmlDeviceGetViolationStatus(nvmlDevice_t device, nvmlPerfPolicyType_t perfPolicyType, nvmlViolationTime_t *violTime);
++nvmlReturn_t DECLDIR nvmlDeviceGetAccountingMode(nvmlDevice_t device, nvmlEnableState_t *mode);
++nvmlReturn_t DECLDIR nvmlDeviceGetAccountingStats(nvmlDevice_t device, unsigned int pid, nvmlAccountingStats_t *stats);
++nvmlReturn_t DECLDIR nvmlDeviceGetAccountingPids(nvmlDevice_t device, unsigned int *count, unsigned int *pids);
++nvmlReturn_t DECLDIR nvmlDeviceGetAccountingBufferSize(nvmlDevice_t device, unsigned int *bufferSize);
++nvmlReturn_t DECLDIR nvmlDeviceGetRetiredPages(nvmlDevice_t device, nvmlPageRetirementCause_t cause,
++ unsigned int *pageCount, unsigned long long *addresses);
++nvmlReturn_t DECLDIR nvmlDeviceGetRetiredPages_v2(nvmlDevice_t device, nvmlPageRetirementCause_t cause,
++ unsigned int *pageCount, unsigned long long *addresses, unsigned long long *timestamps);
++nvmlReturn_t DECLDIR nvmlDeviceGetRetiredPagesPendingStatus(nvmlDevice_t device, nvmlEnableState_t *isPending);
++nvmlReturn_t DECLDIR nvmlUnitSetLedState(nvmlUnit_t unit, nvmlLedColor_t color);
++nvmlReturn_t DECLDIR nvmlDeviceSetPersistenceMode(nvmlDevice_t device, nvmlEnableState_t mode);
++nvmlReturn_t DECLDIR nvmlDeviceSetComputeMode(nvmlDevice_t device, nvmlComputeMode_t mode);
++nvmlReturn_t DECLDIR nvmlDeviceSetEccMode(nvmlDevice_t device, nvmlEnableState_t ecc);
++nvmlReturn_t DECLDIR nvmlDeviceClearEccErrorCounts(nvmlDevice_t device, nvmlEccCounterType_t counterType);
++nvmlReturn_t DECLDIR nvmlDeviceSetDriverModel(nvmlDevice_t device, nvmlDriverModel_t driverModel, unsigned int flags);
++nvmlReturn_t DECLDIR nvmlDeviceSetGpuLockedClocks(nvmlDevice_t device, unsigned int minGpuClockMHz, unsigned int maxGpuClockMHz);
++nvmlReturn_t DECLDIR nvmlDeviceResetGpuLockedClocks(nvmlDevice_t device);
++nvmlReturn_t DECLDIR nvmlDeviceSetApplicationsClocks(nvmlDevice_t device, unsigned int memClockMHz, unsigned int graphicsClockMHz);
++nvmlReturn_t DECLDIR nvmlDeviceSetPowerManagementLimit(nvmlDevice_t device, unsigned int limit);
++nvmlReturn_t DECLDIR nvmlDeviceSetGpuOperationMode(nvmlDevice_t device, nvmlGpuOperationMode_t mode);
++nvmlReturn_t DECLDIR nvmlDeviceSetAPIRestriction(nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t isRestricted);
++nvmlReturn_t DECLDIR nvmlDeviceSetAccountingMode(nvmlDevice_t device, nvmlEnableState_t mode);
++nvmlReturn_t DECLDIR nvmlDeviceClearAccountingPids(nvmlDevice_t device);
++nvmlReturn_t DECLDIR nvmlDeviceGetNvLinkState(nvmlDevice_t device, unsigned int link, nvmlEnableState_t *isActive);
++nvmlReturn_t DECLDIR nvmlDeviceGetNvLinkVersion(nvmlDevice_t device, unsigned int link, unsigned int *version);
++nvmlReturn_t DECLDIR nvmlDeviceGetNvLinkCapability(nvmlDevice_t device, unsigned int link,
++ nvmlNvLinkCapability_t capability, unsigned int *capResult);
++nvmlReturn_t DECLDIR nvmlDeviceGetNvLinkRemotePciInfo(nvmlDevice_t device, unsigned int link, nvmlPciInfo_t *pci);
++nvmlReturn_t DECLDIR nvmlDeviceGetNvLinkErrorCounter(nvmlDevice_t device, unsigned int link,
++ nvmlNvLinkErrorCounter_t counter, unsigned long long *counterValue);
++nvmlReturn_t DECLDIR nvmlDeviceResetNvLinkErrorCounters(nvmlDevice_t device, unsigned int link);
++nvmlReturn_t DECLDIR nvmlDeviceSetNvLinkUtilizationControl(nvmlDevice_t device, unsigned int link, unsigned int counter,
++ nvmlNvLinkUtilizationControl_t *control, unsigned int reset);
++nvmlReturn_t DECLDIR nvmlDeviceGetNvLinkUtilizationControl(nvmlDevice_t device, unsigned int link, unsigned int counter,
++ nvmlNvLinkUtilizationControl_t *control);
++nvmlReturn_t DECLDIR nvmlDeviceGetNvLinkUtilizationCounter(nvmlDevice_t device, unsigned int link, unsigned int counter,
++ unsigned long long *rxcounter, unsigned long long *txcounter);
++nvmlReturn_t DECLDIR nvmlDeviceFreezeNvLinkUtilizationCounter (nvmlDevice_t device, unsigned int link,
++ unsigned int counter, nvmlEnableState_t freeze);
++nvmlReturn_t DECLDIR nvmlDeviceResetNvLinkUtilizationCounter (nvmlDevice_t device, unsigned int link, unsigned int counter);
++nvmlReturn_t DECLDIR nvmlEventSetCreate(nvmlEventSet_t *set);
++nvmlReturn_t DECLDIR nvmlDeviceRegisterEvents(nvmlDevice_t device, unsigned long long eventTypes, nvmlEventSet_t set);
++nvmlReturn_t DECLDIR nvmlDeviceGetSupportedEventTypes(nvmlDevice_t device, unsigned long long *eventTypes);
++nvmlReturn_t DECLDIR nvmlEventSetWait(nvmlEventSet_t set, nvmlEventData_t * data, unsigned int timeoutms);
++nvmlReturn_t DECLDIR nvmlEventSetFree(nvmlEventSet_t set);
++nvmlReturn_t DECLDIR nvmlDeviceModifyDrainState (nvmlPciInfo_t *pciInfo, nvmlEnableState_t newState);
++nvmlReturn_t DECLDIR nvmlDeviceQueryDrainState (nvmlPciInfo_t *pciInfo, nvmlEnableState_t *currentState);
++nvmlReturn_t DECLDIR nvmlDeviceRemoveGpu (nvmlPciInfo_t *pciInfo, nvmlDetachGpuState_t gpuState, nvmlPcieLinkState_t linkState);
++nvmlReturn_t DECLDIR nvmlDeviceDiscoverGpus (nvmlPciInfo_t *pciInfo);
++nvmlReturn_t DECLDIR nvmlDeviceGetFieldValues(nvmlDevice_t device, int valuesCount, nvmlFieldValue_t *values);
++nvmlReturn_t DECLDIR nvmlDeviceGetVirtualizationMode(nvmlDevice_t device, nvmlGpuVirtualizationMode_t *pVirtualMode);
++nvmlReturn_t DECLDIR nvmlDeviceGetHostVgpuMode(nvmlDevice_t device, nvmlHostVgpuMode_t *pHostVgpuMode);
++nvmlReturn_t DECLDIR nvmlDeviceSetVirtualizationMode(nvmlDevice_t device, nvmlGpuVirtualizationMode_t virtualMode);
++nvmlReturn_t DECLDIR nvmlDeviceGetGridLicensableFeatures(nvmlDevice_t device, nvmlGridLicensableFeatures_t *pGridLicensableFeatures);
++nvmlReturn_t DECLDIR nvmlDeviceGetProcessUtilization(nvmlDevice_t device, nvmlProcessUtilizationSample_t *utilization,
++ unsigned int *processSamplesCount, unsigned long long lastSeenTimeStamp);
++nvmlReturn_t DECLDIR nvmlDeviceGetSupportedVgpus(nvmlDevice_t device, unsigned int *vgpuCount, nvmlVgpuTypeId_t *vgpuTypeIds);
++nvmlReturn_t DECLDIR nvmlDeviceGetCreatableVgpus(nvmlDevice_t device, unsigned int *vgpuCount, nvmlVgpuTypeId_t *vgpuTypeIds);
++nvmlReturn_t DECLDIR nvmlVgpuTypeGetClass(nvmlVgpuTypeId_t vgpuTypeId, char *vgpuTypeClass, unsigned int *size);
++nvmlReturn_t DECLDIR nvmlVgpuTypeGetName(nvmlVgpuTypeId_t vgpuTypeId, char *vgpuTypeName, unsigned int *size);
++nvmlReturn_t DECLDIR nvmlVgpuTypeGetDeviceID(nvmlVgpuTypeId_t vgpuTypeId, unsigned long long *deviceID, unsigned long long *subsystemID);
++nvmlReturn_t DECLDIR nvmlVgpuTypeGetFramebufferSize(nvmlVgpuTypeId_t vgpuTypeId, unsigned long long *fbSize);
++nvmlReturn_t DECLDIR nvmlVgpuTypeGetNumDisplayHeads(nvmlVgpuTypeId_t vgpuTypeId, unsigned int *numDisplayHeads);
++nvmlReturn_t DECLDIR nvmlVgpuTypeGetResolution(nvmlVgpuTypeId_t vgpuTypeId, unsigned int displayIndex, unsigned int *xdim, unsigned int *ydim);
++nvmlReturn_t DECLDIR nvmlVgpuTypeGetLicense(nvmlVgpuTypeId_t vgpuTypeId, char *vgpuTypeLicenseString, unsigned int size);
++nvmlReturn_t DECLDIR nvmlVgpuTypeGetFrameRateLimit(nvmlVgpuTypeId_t vgpuTypeId, unsigned int *frameRateLimit);
++nvmlReturn_t DECLDIR nvmlVgpuTypeGetMaxInstances(nvmlDevice_t device, nvmlVgpuTypeId_t vgpuTypeId, unsigned int *vgpuInstanceCount);
++nvmlReturn_t DECLDIR nvmlVgpuTypeGetMaxInstancesPerVm(nvmlVgpuTypeId_t vgpuTypeId, unsigned int *vgpuInstanceCountPerVm);
++nvmlReturn_t DECLDIR nvmlDeviceGetActiveVgpus(nvmlDevice_t device, unsigned int *vgpuCount, nvmlVgpuInstance_t *vgpuInstances);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetVmID(nvmlVgpuInstance_t vgpuInstance, char *vmId, unsigned int size, nvmlVgpuVmIdType_t *vmIdType);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetUUID(nvmlVgpuInstance_t vgpuInstance, char *uuid, unsigned int size);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetVmDriverVersion(nvmlVgpuInstance_t vgpuInstance, char* version, unsigned int length);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetFbUsage(nvmlVgpuInstance_t vgpuInstance, unsigned long long *fbUsage);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetLicenseStatus(nvmlVgpuInstance_t vgpuInstance, unsigned int *licensed);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetType(nvmlVgpuInstance_t vgpuInstance, nvmlVgpuTypeId_t *vgpuTypeId);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetFrameRateLimit(nvmlVgpuInstance_t vgpuInstance, unsigned int *frameRateLimit);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetEccMode(nvmlVgpuInstance_t vgpuInstance, nvmlEnableState_t *eccMode);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderCapacity(nvmlVgpuInstance_t vgpuInstance, unsigned int *encoderCapacity);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceSetEncoderCapacity(nvmlVgpuInstance_t vgpuInstance, unsigned int encoderCapacity);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderStats(nvmlVgpuInstance_t vgpuInstance, unsigned int *sessionCount,
++ unsigned int *averageFps, unsigned int *averageLatency);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetEncoderSessions(nvmlVgpuInstance_t vgpuInstance, unsigned int *sessionCount, nvmlEncoderSessionInfo_t *sessionInfo);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetFBCStats(nvmlVgpuInstance_t vgpuInstance, nvmlFBCStats_t *fbcStats);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetFBCSessions(nvmlVgpuInstance_t vgpuInstance, unsigned int *sessionCount, nvmlFBCSessionInfo_t *sessionInfo);
++typedef struct nvmlVgpuVersion_st
++{
++ unsigned int minVersion;
++ unsigned int maxVersion;
++} nvmlVgpuVersion_t;
++typedef struct nvmlVgpuMetadata_st
++{
++ unsigned int version;
++ unsigned int revision;
++ nvmlVgpuGuestInfoState_t guestInfoState;
++ char guestDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE];
++ char hostDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE];
++ unsigned int reserved[6];
++ unsigned int vgpuVirtualizationCaps;
++ unsigned int guestVgpuVersion;
++ unsigned int opaqueDataSize;
++ char opaqueData[4];
++} nvmlVgpuMetadata_t;
++typedef struct nvmlVgpuPgpuMetadata_st
++{
++ unsigned int version;
++ unsigned int revision;
++ char hostDriverVersion[NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE];
++ unsigned int pgpuVirtualizationCaps;
++ unsigned int reserved[5];
++ nvmlVgpuVersion_t hostSupportedVgpuRange;
++ unsigned int opaqueDataSize;
++ char opaqueData[4];
++} nvmlVgpuPgpuMetadata_t;
++typedef enum nvmlVgpuVmCompatibility_enum
++{
++ NVML_VGPU_VM_COMPATIBILITY_NONE = 0x0,
++ NVML_VGPU_VM_COMPATIBILITY_COLD = 0x1,
++ NVML_VGPU_VM_COMPATIBILITY_HIBERNATE = 0x2,
++ NVML_VGPU_VM_COMPATIBILITY_SLEEP = 0x4,
++ NVML_VGPU_VM_COMPATIBILITY_LIVE = 0x8,
++} nvmlVgpuVmCompatibility_t;
++typedef enum nvmlVgpuPgpuCompatibilityLimitCode_enum
++{
++ NVML_VGPU_COMPATIBILITY_LIMIT_NONE = 0x0,
++ NVML_VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER = 0x1,
++ NVML_VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER = 0x2,
++ NVML_VGPU_COMPATIBILITY_LIMIT_GPU = 0x4,
++ NVML_VGPU_COMPATIBILITY_LIMIT_OTHER = 0x80000000,
++} nvmlVgpuPgpuCompatibilityLimitCode_t;
++typedef struct nvmlVgpuPgpuCompatibility_st
++{
++ nvmlVgpuVmCompatibility_t vgpuVmCompatibility;
++ nvmlVgpuPgpuCompatibilityLimitCode_t compatibilityLimitCode;
++} nvmlVgpuPgpuCompatibility_t;
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetMetadata(nvmlVgpuInstance_t vgpuInstance, nvmlVgpuMetadata_t *vgpuMetadata, unsigned int *bufferSize);
++nvmlReturn_t DECLDIR nvmlDeviceGetVgpuMetadata(nvmlDevice_t device, nvmlVgpuPgpuMetadata_t *pgpuMetadata, unsigned int *bufferSize);
++nvmlReturn_t DECLDIR nvmlGetVgpuCompatibility(nvmlVgpuMetadata_t *vgpuMetadata, nvmlVgpuPgpuMetadata_t *pgpuMetadata, nvmlVgpuPgpuCompatibility_t *compatibilityInfo);
++nvmlReturn_t DECLDIR nvmlDeviceGetPgpuMetadataString(nvmlDevice_t device, char *pgpuMetadata, unsigned int *bufferSize);
++nvmlReturn_t DECLDIR nvmlGetVgpuVersion(nvmlVgpuVersion_t *supported, nvmlVgpuVersion_t *current);
++nvmlReturn_t DECLDIR nvmlSetVgpuVersion(nvmlVgpuVersion_t *vgpuVersion);
++nvmlReturn_t DECLDIR nvmlDeviceGetVgpuUtilization(nvmlDevice_t device, unsigned long long lastSeenTimeStamp,
++ nvmlValueType_t *sampleValType, unsigned int *vgpuInstanceSamplesCount,
++ nvmlVgpuInstanceUtilizationSample_t *utilizationSamples);
++nvmlReturn_t DECLDIR nvmlDeviceGetVgpuProcessUtilization(nvmlDevice_t device, unsigned long long lastSeenTimeStamp,
++ unsigned int *vgpuProcessSamplesCount,
++ nvmlVgpuProcessUtilizationSample_t *utilizationSamples);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetAccountingMode(nvmlVgpuInstance_t vgpuInstance, nvmlEnableState_t *mode);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetAccountingPids(nvmlVgpuInstance_t vgpuInstance, unsigned int *count, unsigned int *pids);
++nvmlReturn_t DECLDIR nvmlVgpuInstanceGetAccountingStats(nvmlVgpuInstance_t vgpuInstance, unsigned int pid, nvmlAccountingStats_t *stats);
++typedef struct nvmlBlacklistDeviceInfo_st
++{
++ nvmlPciInfo_t pciInfo;
++ char uuid[NVML_DEVICE_UUID_BUFFER_SIZE];
++} nvmlBlacklistDeviceInfo_t;
++nvmlReturn_t DECLDIR nvmlGetBlacklistDeviceCount(unsigned int *deviceCount);
++nvmlReturn_t DECLDIR nvmlGetBlacklistDeviceInfoByIndex(unsigned int index, nvmlBlacklistDeviceInfo_t *info);
++#if defined(__NVML_API_VERSION_INTERNAL)
++#undef nvmlDeviceGetGridLicensableFeatures
++#undef nvmlDeviceRemoveGpu
++#undef nvmlDeviceGetNvLinkRemotePciInfo
++#undef nvmlDeviceGetPciInfo
++#undef nvmlDeviceGetCount
++#undef nvmlDeviceGetHandleByIndex
++#undef nvmlDeviceGetHandleByPciBusId
++#undef nvmlInit
++#endif
++#ifdef __cplusplus
++}
++#endif
++#endif
diff --git a/sys-process/nvtop/files/nvtop-1.0.0-fix-ncurses.patch b/sys-process/nvtop/files/nvtop-1.0.0-fix-ncurses.patch
new file mode 100644
index 0000000000..cc0fc9b5c6
--- /dev/null
+++ b/sys-process/nvtop/files/nvtop-1.0.0-fix-ncurses.patch
@@ -0,0 +1,162 @@
+diff --git a/cmake/modules/FindCurses.cmake b/cmake/modules/FindCurses.cmake
+index 1002813..1ce7131 100644
+--- a/cmake/modules/FindCurses.cmake
++++ b/cmake/modules/FindCurses.cmake
+@@ -1,46 +1,49 @@
+ # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ # file Copyright.txt or https://cmake.org/licensing for details.
+
+-#.rst:
+-# FindCurses
+-# ----------
+-#
+-# Find the curses or ncurses include file and library.
+-#
+-# Result Variables
+-# ^^^^^^^^^^^^^^^^
+-#
+-# This module defines the following variables:
+-#
+-# ``CURSES_FOUND``
+-# True if Curses is found.
+-# ``CURSES_INCLUDE_DIRS``
+-# The include directories needed to use Curses.
+-# ``CURSES_LIBRARIES``
+-# The libraries needed to use Curses.
+-# ``CURSES_HAVE_CURSES_H``
+-# True if curses.h is available.
+-# ``CURSES_HAVE_NCURSES_H``
+-# True if ncurses.h is available.
+-# ``CURSES_HAVE_NCURSES_NCURSES_H``
+-# True if ``ncurses/ncurses.h`` is available.
+-# ``CURSES_HAVE_NCURSES_CURSES_H``
+-# True if ``ncurses/curses.h`` is available.
+-#
+-# Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the
+-# ``find_package(Curses)`` call if NCurses functionality is required.
+-# Set ``CURSES_NEED_WIDE`` to ``TRUE`` before the
+-# ``find_package(Curses)`` call if unicode functionality is required.
+-#
+-# Backward Compatibility
+-# ^^^^^^^^^^^^^^^^^^^^^^
+-#
+-# The following variable are provided for backward compatibility:
+-#
+-# ``CURSES_INCLUDE_DIR``
+-# Path to Curses include. Use ``CURSES_INCLUDE_DIRS`` instead.
+-# ``CURSES_LIBRARY``
+-# Path to Curses library. Use ``CURSES_LIBRARIES`` instead.
++#[=======================================================================[.rst:
++FindCurses
++----------
++
++Find the curses or ncurses include file and library.
++
++Result Variables
++^^^^^^^^^^^^^^^^
++
++This module defines the following variables:
++
++``CURSES_FOUND``
++ True if Curses is found.
++``CURSES_INCLUDE_DIRS``
++ The include directories needed to use Curses.
++``CURSES_LIBRARIES``
++ The libraries needed to use Curses.
++``CURSES_CFLAGS``
++ Parameters which ought be given to C/C++ compilers when using Curses.
++``CURSES_HAVE_CURSES_H``
++ True if curses.h is available.
++``CURSES_HAVE_NCURSES_H``
++ True if ncurses.h is available.
++``CURSES_HAVE_NCURSES_NCURSES_H``
++ True if ``ncurses/ncurses.h`` is available.
++``CURSES_HAVE_NCURSES_CURSES_H``
++ True if ``ncurses/curses.h`` is available.
++
++Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the
++``find_package(Curses)`` call if NCurses functionality is required.
++Set ``CURSES_NEED_WIDE`` to ``TRUE`` before the
++``find_package(Curses)`` call if unicode functionality is required.
++
++Backward Compatibility
++^^^^^^^^^^^^^^^^^^^^^^
++
++The following variable are provided for backward compatibility:
++
++``CURSES_INCLUDE_DIR``
++ Path to Curses include. Use ``CURSES_INCLUDE_DIRS`` instead.
++``CURSES_LIBRARY``
++ Path to Curses library. Use ``CURSES_LIBRARIES`` instead.
++#]=======================================================================]
+
+ include(CheckLibraryExists)
+
+@@ -55,7 +58,7 @@ else()
+ set(CURSES_NEED_NCURSES TRUE)
+ endif()
+
+-find_library(CURSES_CURSES_LIBRARY NAMES curses )
++find_library(CURSES_CURSES_LIBRARY NAMES curses)
+
+ find_library(CURSES_NCURSES_LIBRARY NAMES "${NCURSES_LIBRARY_NAME}" )
+ set(CURSES_USE_NCURSES FALSE)
+@@ -117,7 +120,7 @@ if(CURSES_USE_NCURSES)
+ if(CURSES_NCURSES_INCLUDE_PATH)
+ if (CURSES_NEED_WIDE)
+ find_path(CURSES_INCLUDE_PATH
+- NAMES ncursesw/ncurses.h ncursesw/curses.h
++ NAMES ncursesw/ncurses.h ncursesw/curses.h ncursesw.h cursesw.h
+ PATHS ${CURSES_NCURSES_INCLUDE_PATH}
+ NO_DEFAULT_PATH
+ )
+@@ -131,16 +134,18 @@ if(CURSES_USE_NCURSES)
+ endif()
+
+ if (CURSES_NEED_WIDE)
++ set(CURSES_TINFO_LIBRARY_NAME tinfow)
+ find_path(CURSES_INCLUDE_PATH
+- NAMES ncursesw/ncurses.h ncursesw/curses.h
++ NAMES ncursesw/ncurses.h ncursesw/curses.h ncursesw.h cursesw.h
+ HINTS "${_cursesParentDir}/include"
+ )
+ else()
++ set(CURSES_TINFO_LIBRARY_NAME tinfo)
+ find_path(CURSES_INCLUDE_PATH
+ NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h
+ HINTS "${_cursesParentDir}/include"
+ )
+- endif()
++ endif()
+
+ # Previous versions of FindCurses provided these values.
+ if(NOT DEFINED CURSES_LIBRARY)
+@@ -150,8 +155,8 @@ if(CURSES_USE_NCURSES)
+ CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}"
+ cbreak "" CURSES_NCURSES_HAS_CBREAK)
+ if(NOT CURSES_NCURSES_HAS_CBREAK)
+- find_library(CURSES_EXTRA_LIBRARY tinfo HINTS "${_cursesLibDir}")
+- find_library(CURSES_EXTRA_LIBRARY tinfo )
++ find_library(CURSES_EXTRA_LIBRARY "${CURSES_TINFO_LIBRARY_NAME}" HINTS "${_cursesLibDir}")
++ find_library(CURSES_EXTRA_LIBRARY "${CURSES_TINFO_LIBRARY_NAME}" )
+ endif()
+ else()
+ get_filename_component(_cursesLibDir "${CURSES_CURSES_LIBRARY}" PATH)
+@@ -237,10 +242,16 @@ if(CURSES_FORM_LIBRARY)
+ set(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_FORM_LIBRARY})
+ endif()
+
+-# Provide the *_INCLUDE_DIRS result.
++# Provide the *_INCLUDE_DIRS and *_CFLAGS results.
+ set(CURSES_INCLUDE_DIRS ${CURSES_INCLUDE_PATH})
+ set(CURSES_INCLUDE_DIR ${CURSES_INCLUDE_PATH}) # compatibility
+
++find_package(PkgConfig QUIET)
++if(PKG_CONFIG_FOUND)
++ pkg_check_modules(NCURSES QUIET ${NCURSES_LIBRARY_NAME})
++ set(CURSES_CFLAGS ${NCURSES_CFLAGS_OTHER})
++endif()
++
+ include(FindPackageHandleStandardArgs)
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Curses DEFAULT_MSG
+ CURSES_LIBRARY CURSES_INCLUDE_PATH)
diff --git a/sys-process/nvtop/metadata.xml b/sys-process/nvtop/metadata.xml
new file mode 100644
index 0000000000..7e64f7cd0d
--- /dev/null
+++ b/sys-process/nvtop/metadata.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ vowstar@gmail.com
+ Huang Rui
+
+
+ Syllo/nvtop
+
+
+ Nvtop stands for NVidia TOP, a (h)top like task monitor for NVIDIA GPUs.
+ It can handle multiple GPUs and print information about them in a htop
+ familiar way. Some fields are shown as N/A: Ask NVIDIA for better support
+ of your hardware! Compatibility issues: Does not work with nouveau driver
+ stack and older NVIDIA GPU for the time being.
+
+
diff --git a/sys-process/nvtop/nvtop-1.0.0.ebuild b/sys-process/nvtop/nvtop-1.0.0.ebuild
new file mode 100644
index 0000000000..5a831a1352
--- /dev/null
+++ b/sys-process/nvtop/nvtop-1.0.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+DESCRIPTION="NVIDIA GPUs htop like monitoring tool"
+HOMEPAGE="https://github.com/Syllo/nvtop"
+
+if [[ "${PV}" == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/Syllo/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/Syllo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+
+IUSE="debug unicode"
+
+RDEPEND="
+ sys-libs/ncurses:0=[unicode?]
+ x11-drivers/nvidia-drivers
+"
+
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.0.0-add-nvml.patch
+ "${FILESDIR}"/${PN}-1.0.0-fix-ncurses.patch
+)
+
+src_configure() {
+ local CMAKE_CONF="
+ !debug? ( -DCMAKE_BUILD_TYPE=Release )
+ debug? ( -DCMAKE_BUILD_TYPE=Debug )
+ unicode? ( -DCURSES_NEED_WIDE=TRUE )
+ "
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
+ -DNVML_INCLUDE_DIRS="${S}/include"
+ ${CMAKE_CONF}
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/sys-process/nvtop/nvtop-9999.ebuild b/sys-process/nvtop/nvtop-9999.ebuild
new file mode 100644
index 0000000000..42b38e87e9
--- /dev/null
+++ b/sys-process/nvtop/nvtop-9999.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+DESCRIPTION="NVIDIA GPUs htop like monitoring tool"
+HOMEPAGE="https://github.com/Syllo/nvtop"
+
+if [[ "${PV}" == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/Syllo/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/Syllo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+
+IUSE="debug unicode"
+
+RDEPEND="
+ sys-libs/ncurses:0=[unicode?]
+ x11-drivers/nvidia-drivers
+"
+
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.0.0-add-nvml.patch
+)
+
+src_configure() {
+ local CMAKE_CONF="
+ !debug? ( -DCMAKE_BUILD_TYPE=Release )
+ debug? ( -DCMAKE_BUILD_TYPE=Debug )
+ unicode? ( -DCURSES_NEED_WIDE=TRUE )
+ "
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
+ -DNVML_INCLUDE_DIRS="${S}/include"
+ ${CMAKE_CONF}
+ )
+
+ cmake-utils_src_configure
+}