diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-08-13 08:26:27 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-08-13 08:26:27 +0100 |
commit | f85f5e28cbf2751050f5efaf9c4807680f286a42 (patch) | |
tree | c2860d317bd18b7d63ffd29c66b49f15a63ce355 | |
parent | 01d8bc92c63a7e7d01dba1d053d01763131fe4df (diff) |
x11-drivers/nvidia-drivers-legacy : overhaul the ebuild, revision bump
-rw-r--r-- | metadata/md5-cache/x11-drivers/nvidia-drivers-legacy-390.144 | 15 | ||||
-rw-r--r-- | metadata/md5-cache/x11-drivers/nvidia-drivers-legacy-390.144-r1 | 15 | ||||
-rw-r--r-- | metadata/pkg_desc_index | 2 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers-legacy/files/nvidia-persistenced.conf | 2 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers-legacy/nvidia-drivers-legacy-390.144-r1.ebuild (renamed from x11-drivers/nvidia-drivers-legacy/nvidia-drivers-legacy-390.144.ebuild) | 220 |
5 files changed, 98 insertions, 156 deletions
diff --git a/metadata/md5-cache/x11-drivers/nvidia-drivers-legacy-390.144 b/metadata/md5-cache/x11-drivers/nvidia-drivers-legacy-390.144 deleted file mode 100644 index cd30bf28..00000000 --- a/metadata/md5-cache/x11-drivers/nvidia-drivers-legacy-390.144 +++ /dev/null @@ -1,15 +0,0 @@ -DEFINED_PHASES=compile configure install postinst postrm preinst prepare setup test unpack -DEPEND=X? ( libglvnd? ( media-libs/libglvnd[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-eselect/eselect-opengl ) app-misc/pax-utils ) -DESCRIPTION=NVIDIA Accelerated Graphics Driver -EAPI=6 -HOMEPAGE=http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx -IUSE=+acpi compat +dkms +libglvnd multilib +tools wayland +X abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_s390_32 abi_s390_64 -KEYWORDS=-* ~amd64 -LICENSE=GPL-2 NVIDIA-r2 -PDEPEND=tools? ( ~x11-misc/nvidia-settings-legacy-390.144:0 ) -RDEPEND=X? ( libglvnd? ( media-libs/libglvnd[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-eselect/eselect-opengl ) app-misc/pax-utils ) !!x11-drivers/nvidia-drivers acpi? ( sys-power/acpid ) dkms? ( ~sys-kernel/nvidia-drivers-legacy-dkms-390.144:0 ) wayland? ( dev-libs/wayland[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) X? ( <x11-base/xorg-server-1.20.99:= >=x11-libs/libX11-1.6.2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] >=x11-libs/libXext-1.3.2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] >=x11-libs/libvdpau-1.0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) -RESTRICT=bindist mirror -SLOT=0 -SRC_URI=amd64? ( http://http.download.nvidia.com/XFree86/Linux-x86_64/390.144/NVIDIA-Linux-x86_64-390.144.run ) -_eclasses_=desktop c0d27bf73aa08ca05b663dbd31fbef28 edos2unix 33e347e171066657f91f8b0c72ec8773 epatch 9f813bb3c47cf2e60619a663b87c5f4e estack 055c42df72f76a4f45ec92b35e83cd56 eutils dab5d8ec471d025b79c9e6906bcf3bff flag-o-matic 4134b5c0fb719b9161d10bdaba9e09e5 ltprune 4f3f2db5ce3ccbeeacdf3f94954043aa multibuild 05a584848db4901c97fcd94ae7cc3a97 multilib 97566c1a256d07b00848aa767e38a352 multilib-build effd4508d5e8209273d82d8f67ee93a0 multilib-minimal 7187f259f207bf5b69e4ff01498a7269 portability d1186f1e621de7b27ddcae82e6253259 preserve-libs dbc9f8d2d49c66467bc327fddd8317bd strip-linguas ac3ee41ee2d31d8c41a77c0838320cc7 toolchain-funcs 9ea1c67b6f8315fdc2568abb674519aa unpacker 2eeba54233fa41bdb15dcddcb63fba3a vcs-clean b690a7e9b6c497cf59326a7545df4283 wrapper 4251d4c84c25f59094fd557e0063a974 -_md5_=d4a16eb27d712e2defa4cc3431952684 diff --git a/metadata/md5-cache/x11-drivers/nvidia-drivers-legacy-390.144-r1 b/metadata/md5-cache/x11-drivers/nvidia-drivers-legacy-390.144-r1 new file mode 100644 index 00000000..f6b72921 --- /dev/null +++ b/metadata/md5-cache/x11-drivers/nvidia-drivers-legacy-390.144-r1 @@ -0,0 +1,15 @@ +DEFINED_PHASES=compile configure install postinst postrm preinst prepare setup test unpack +DEPEND=acct-group/video acct-group/nvpd net-libs/libtirpc X? ( >=x11-libs/libvdpau-1.0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] media-libs/libglvnd[X,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) +DESCRIPTION=NVIDIA Accelerated Graphics Driver +EAPI=6 +HOMEPAGE=http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx +IUSE=acpi +dkms multilib +tools wayland +X abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_s390_32 abi_s390_64 +KEYWORDS=-* ~amd64 +LICENSE=GPL-2 NVIDIA-r2 +PDEPEND=tools? ( ~x11-misc/nvidia-settings-legacy-390.144:0 ) +RDEPEND=acct-group/video acct-group/nvpd net-libs/libtirpc X? ( >=x11-libs/libvdpau-1.0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] media-libs/libglvnd[X,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) >=virtual/opencl-3 !!x11-drivers/nvidia-drivers acpi? ( sys-power/acpid ) dkms? ( ~sys-kernel/nvidia-drivers-legacy-dkms-390.144:0 ) wayland? ( dev-libs/wayland[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) X? ( <x11-base/xorg-server-1.20.99:= >=x11-libs/libX11-1.6.2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] >=x11-libs/libXext-1.3.2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] sys-libs/zlib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) +RESTRICT=bindist mirror +SLOT=0 +SRC_URI=amd64? ( http://http.download.nvidia.com/XFree86/Linux-x86_64/390.144/NVIDIA-Linux-x86_64-390.144.run ) +_eclasses_=desktop c0d27bf73aa08ca05b663dbd31fbef28 edos2unix 33e347e171066657f91f8b0c72ec8773 epatch 9f813bb3c47cf2e60619a663b87c5f4e estack 055c42df72f76a4f45ec92b35e83cd56 eutils dab5d8ec471d025b79c9e6906bcf3bff flag-o-matic 4134b5c0fb719b9161d10bdaba9e09e5 ltprune 4f3f2db5ce3ccbeeacdf3f94954043aa multibuild 05a584848db4901c97fcd94ae7cc3a97 multilib 97566c1a256d07b00848aa767e38a352 multilib-build effd4508d5e8209273d82d8f67ee93a0 multilib-minimal 7187f259f207bf5b69e4ff01498a7269 portability d1186f1e621de7b27ddcae82e6253259 preserve-libs dbc9f8d2d49c66467bc327fddd8317bd strip-linguas ac3ee41ee2d31d8c41a77c0838320cc7 toolchain-funcs 9ea1c67b6f8315fdc2568abb674519aa unpacker 2eeba54233fa41bdb15dcddcb63fba3a vcs-clean b690a7e9b6c497cf59326a7545df4283 wrapper 4251d4c84c25f59094fd557e0063a974 +_md5_=6a1b69611fa74a9ce139f0a96c0ea251 diff --git a/metadata/pkg_desc_index b/metadata/pkg_desc_index index e578a574..2a03927b 100644 --- a/metadata/pkg_desc_index +++ b/metadata/pkg_desc_index @@ -90,7 +90,7 @@ x11-base/xorg-drivers 1.20-r100: Meta package containing deps on all xorg driver x11-base/xorg-server 1.20.13-r100: X.Org X servers x11-base/xwayland 21.1.2-r100: Standalone X server running under Wayland x11-drivers/nvidia-drivers 470.63.01: NVIDIA Accelerated Graphics Driver -x11-drivers/nvidia-drivers-legacy 390.144: NVIDIA Accelerated Graphics Driver +x11-drivers/nvidia-drivers-legacy 390.144-r1: NVIDIA Accelerated Graphics Driver x11-libs/gtk+ 2.24.32-r314 3.24.20-r314: Gimp ToolKit + x11-misc/nvidia-prime 314: NVIDIA Prime Render Offload configuration and utilities x11-misc/nvidia-settings 470.63.01: NVIDIA Linux X11 Settings Utility diff --git a/x11-drivers/nvidia-drivers-legacy/files/nvidia-persistenced.conf b/x11-drivers/nvidia-drivers-legacy/files/nvidia-persistenced.conf index 637ac1af..b8be3b7c 100644 --- a/x11-drivers/nvidia-drivers-legacy/files/nvidia-persistenced.conf +++ b/x11-drivers/nvidia-drivers-legacy/files/nvidia-persistenced.conf @@ -1,7 +1,7 @@ # run-time configuration file for /etc/init.d/nvidia-persistenced # NVPD_USER: The user nvidia-persistenced is intended to run for -NVPD_USER="" +NVPD_USER="nvpd" # ARGS: Additional arguments to set the default persistence mode # (see nvidia-persistenced(1)) diff --git a/x11-drivers/nvidia-drivers-legacy/nvidia-drivers-legacy-390.144.ebuild b/x11-drivers/nvidia-drivers-legacy/nvidia-drivers-legacy-390.144-r1.ebuild index d2616d76..8961f8d5 100644 --- a/x11-drivers/nvidia-drivers-legacy/nvidia-drivers-legacy-390.144.ebuild +++ b/x11-drivers/nvidia-drivers-legacy/nvidia-drivers-legacy-390.144-r1.ebuild @@ -17,21 +17,22 @@ KEYWORDS="-* ~amd64" RESTRICT="bindist mirror" EMULTILIB_PKG="true" -IUSE="+acpi compat +dkms +libglvnd multilib +tools wayland +X" +IUSE="acpi +dkms multilib +tools wayland +X" COMMON=" + acct-group/video + acct-group/nvpd + net-libs/libtirpc X? ( - libglvnd? ( - media-libs/libglvnd[${MULTILIB_USEDEP}] - !app-eselect/eselect-opengl - ) - app-misc/pax-utils + >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}] + media-libs/libglvnd[X,${MULTILIB_USEDEP}] )" DEPEND="${COMMON}" PDEPEND=" tools? ( ~x11-misc/nvidia-settings-legacy-${PV}:${SLOT} )" RDEPEND=" ${COMMON} + >=virtual/opencl-3 !!x11-drivers/nvidia-drivers acpi? ( sys-power/acpid ) dkms? ( ~sys-kernel/${PN}-dkms-${PV}:${SLOT} ) @@ -40,7 +41,6 @@ RDEPEND=" <x11-base/xorg-server-1.20.99:= >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}] sys-libs/zlib[${MULTILIB_USEDEP}] ) " @@ -78,21 +78,10 @@ src_prepare() { fi } -# Install nvidia library: -# the first parameter is the library to install -# the second parameter is the provided soversion -# the third parameter is the target directory if it is not /usr/lib donvidia() { - # Full path to library nv_LIB="${1}" - - # SOVER to use nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})" - - # Where to install nv_DEST="${2}" - - # Get just the library name nv_LIBNAME=$(basename "${nv_LIB}") if [[ "${nv_DEST}" ]]; then @@ -103,11 +92,8 @@ donvidia() { action="dolib.so" fi - # Install the library ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}" - # If the library has a SONAME and SONAME does not match the library name, - # then we need to create a symlink if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} fi @@ -115,105 +101,9 @@ donvidia() { dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} } -src_install() { - # Xorg DDX && GLX, GLVND, Vulkan ICD - if use X; then - insinto /usr/$(get_libdir)/xorg/modules/drivers - doins ${NV_X11}/nvidia_drv.so - - donvidia ${NV_X11}/libglx.so.${NV_SOVER} \ - /usr/$(get_libdir)/nvidia/xorg - - if has_version '>=x11-base/xorg-server-1.16'; then - insinto /usr/share/X11/xorg.conf.d - newins "${FILESDIR}"/nvidia-drm-outputclass.conf 50-nvidia-drm-outputclass.conf - fi - - insinto /usr/share/glvnd/egl_vendor.d - doins ${NV_X11}/10_nvidia.json - - insinto /etc/vulkan/icd.d - doins ${NV_X11}/nvidia_icd.json - fi - - # Wayland - if use wayland; then - insinto /usr/share/egl/egl_external_platform.d - doins ${NV_X11}/10_nvidia_wayland.json - fi - - insinto /etc/modprobe.d - doins "${FILESDIR}"/nouveau.conf - - # NVIDIA kernel <-> userspace driver config lib - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER} - - # NVIDIA framebuffer capture library - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER} - - # NVIDIA video encode/decode <-> CUDA - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER} - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER} - - # OpenCL ICD for NVIDIA - insinto /etc/OpenCL/vendors - doins ${NV_OBJ}/nvidia.icd - - # Helper Apps - exeinto /opt/bin/ - - if use X; then - doexe ${NV_OBJ}/nvidia-xconfig - fi - - doexe ${NV_OBJ}/nvidia-cuda-mps-control - doexe ${NV_OBJ}/nvidia-cuda-mps-server - doexe ${NV_OBJ}/nvidia-debugdump - doexe ${NV_OBJ}/nvidia-persistenced - doexe ${NV_OBJ}/nvidia-smi - - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092) - doexe ${NV_OBJ}/nvidia-modprobe - fowners root:video /opt/bin/nvidia-modprobe - fperms 4710 /opt/bin/nvidia-modprobe - dosym /{opt,usr}/bin/nvidia-modprobe - - # init - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced - - # manpages - if use X ; then - doman "${NV_MAN}"/nvidia-xconfig.1 - fi - - doman "${NV_MAN}"/nvidia-smi.1 - doman "${NV_MAN}"/nvidia-cuda-mps-control.1 - doman "${NV_MAN}"/nvidia-modprobe.1 - doman "${NV_MAN}"/nvidia-persistenced.1 - - if has_multilib_profile && use multilib; then - local OABI=${ABI} - for ABI in $(get_install_abis); do - src_install-libs - done - ABI=${OABI} - unset OABI - else - src_install-libs - fi - - is_final_abi || die "failed to iterate through all ABIs" -} - src_install-libs() { local inslibdir=$(get_libdir) - if use libglvnd; then - local GL_ROOT="/usr/$(get_libdir)" - else - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib" - fi + local GL_ROOT="/usr/$(get_libdir)" local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia" local nv_libdir="${NV_OBJ}" @@ -245,18 +135,6 @@ src_install-libs() { "tls/libnvidia-tls.so.${NV_SOVER}" ) - if ! use libglvnd; then - NV_GLX_LIBRARIES+=( - "libEGL.so.$( [[ ${ABI} == "amd64" ]] && usex compat ${NV_SOVER} 1.1.0 || echo 1.1.0) ${GL_ROOT}" - "libGL.so.1.7.0 ${GL_ROOT}" - "libGLESv1_CM.so.1.2.0 ${GL_ROOT}" - "libGLESv2.so.2.1.0 ${GL_ROOT}" - "libGLX.so.0 ${GL_ROOT}" - "libGLdispatch.so.0 ${GL_ROOT}" - "libOpenGL.so.0 ${GL_ROOT}" - ) - fi - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]]; then NV_GLX_LIBRARIES+=( @@ -277,6 +155,79 @@ src_install-libs() { fi } +src_install() { + donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER} + donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER} + donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER} + donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER} + + if has_multilib_profile && use multilib; then + local OABI=${ABI} + for ABI in $(get_install_abis); do + src_install-libs + done + ABI=${OABI} + unset OABI + else + src_install-libs + fi + + is_final_abi || die "failed to iterate through all ABIs" + + if use X; then + insinto /usr/$(get_libdir)/xorg/modules/drivers + doins ${NV_X11}/nvidia_drv.so + + donvidia ${NV_X11}/libglx.so.${NV_SOVER} /usr/$(get_libdir)/nvidia/xorg + + insinto /usr/share/X11/xorg.conf.d + newins "${FILESDIR}"/nvidia-drm-outputclass.conf 50-nvidia-drm-outputclass.conf + + insinto /usr/share/glvnd/egl_vendor.d + doins ${NV_X11}/10_nvidia.json + + insinto /etc/vulkan/icd.d + doins ${NV_X11}/nvidia_icd.json + + exeinto /opt/bin + doexe ${NV_OBJ}/nvidia-xconfig + + doman "${NV_MAN}"/nvidia-xconfig.1 + fi + + if use wayland; then + insinto /usr/share/egl/egl_external_platform.d + doins ${NV_X11}/10_nvidia_wayland.json + fi + + insinto /etc/modprobe.d + doins "${FILESDIR}"/nouveau.conf + + insinto /etc/OpenCL/vendors + doins ${NV_OBJ}/nvidia.icd + + exeinto /opt/bin/ + doexe ${NV_OBJ}/nvidia-cuda-mps-control + doexe ${NV_OBJ}/nvidia-cuda-mps-server + doexe ${NV_OBJ}/nvidia-debugdump + doexe ${NV_OBJ}/nvidia-persistenced + doexe ${NV_OBJ}/nvidia-smi + doexe ${NV_OBJ}/nvidia-modprobe + + fowners root:video /opt/bin/nvidia-modprobe + fperms 4710 /opt/bin/nvidia-modprobe + dosym /{opt,usr}/bin/nvidia-modprobe + + newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi + newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced + newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced + + doman "${NV_MAN}"/nvidia-smi.1 + doman "${NV_MAN}"/nvidia-cuda-mps-control.1 + doman "${NV_MAN}"/nvidia-modprobe.1 + doman "${NV_MAN}"/nvidia-persistenced.1 +} + _dracut_initramfs_regen() { if [ -x $(which dracut) ]; then dracut -N -f --no-hostonly-cmdline @@ -294,15 +245,6 @@ pkg_preinst() { } pkg_postinst() { - if ! use X; then - elog "You have selected to not install the X.org driver. Along with" - elog "this the OpenGL libraries and VDPAU libraries were not" - elog "installed. Additionally, once the driver is loaded your card" - elog "and fan will run at max speed which may not be desirable." - elog "Use the 'nvidia-smi' init script to have your card and fan" - elog "speed scale appropriately." - elog - fi if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then _dracut_initramfs_regen fi |