mlive mod 2.4.0 declare -x ABI="amd64" declare -x ABI_MIPS="" declare -x ABI_PPC="" declare -x ABI_RISCV="" declare -x ABI_S390="" declare -x ABI_X86="64 32" declare -x ADA_TARGET="" declare -x ALSA_CARDS="" declare -- AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-450.57" declare -- AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-450.57" declare -x APACHE2_MODULES="" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 declare -x APACHE2_MPMS="" declare -x AR="x86_64-pc-linux-gnu-ar" declare -x ARCH="amd64" declare -- ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-450.57" declare BDEPEND="virtual/pkgconfig virtual/pkgconfig" declare -x BOOTSTRAP_USE="unicode internal-glib pkg-config split-usr python_targets_python3_7 python_targets_python2_7 multilib" declare -- BUILD_FIXES="ARCH=x86_64" declare -- BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=/usr/src/linux SYSOUT=/usr/src/linux CC=x86_64-pc-linux-gnu-gcc NV_VERBOSE=1" declare -x CALLIGRA_FEATURES="" declare -x CAMERAS="" mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 declare -x CBUILD="x86_64-pc-linux-gnu" declare -x CC="x86_64-pc-linux-gnu-gcc" declare -x CFLAGS="-march=native -O2 -pipe -ggdb3 -Wall" declare -x CFLAGS_amd64="-m64" declare -x CFLAGS_default declare -x CFLAGS_x32="-mx32" declare -x CFLAGS_x86="-m32" declare -x CHOST="x86_64-pc-linux-gnu" declare -x CHOST_amd64="x86_64-pc-linux-gnu" declare -x CHOST_default="x86_64-pc-linux-gnu" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 declare -x CHOST_x32="x86_64-pc-linux-gnux32" declare -x CHOST_x86="i686-pc-linux-gnu" declare -x COLLECTD_PLUGINS="" declare -- COMMON=" driver? ( kernel_linux? ( acct-group/video ) ) kernel_linux? ( >=sys-libs/glibc-2.6.1 ) tools? ( dev-libs/atk dev-libs/glib:2 dev-libs/jansson mlive mod 2.4.0 How to use it? mlive mod 2.4.0 gtk3? ( x11-libs/gtk+:3 ) x11-libs/cairo x11-libs/gdk-pixbuf[X] x11-libs/gtk+:2 x11-libs/libX11 x11-libs/libXext x11-libs/libXrandr x11-libs/libXv mlive mod 2.4.0 How to get it? mlive mod 2.4.0 x11-libs/libXxf86vm x11-libs/pango[X] ) X? ( !libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 ) libglvnd? ( media-libs/libglvnd[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_riscv_lp64d(-)?,abi_riscv_lp64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-eselect/eselect-opengl ) app-misc/pax-utils mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ) " declare -x COMMON_FLAGS="-march=native -O2 -pipe -ggdb3 -Wall" declare -- CONFIG_CHECK=" !DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~DRM ~DRM_KMS_HELPER ~SYSVIPC mlive mod 2.4.0 How to get it? mlive mod 2.4.0 !TRIM_UNUSED_KSYMS" declare -x CPU_FLAGS_ARM="" declare -x CPU_FLAGS_PPC="" declare -x CPU_FLAGS_X86="" declare -x CTARGET_default="x86_64-pc-linux-gnu" declare -x CURL_SSL="" declare -x CXXFLAGS="-march=native -O2 -pipe -ggdb3 -Wall" declare -x DEFAULT_ABI="amd64" declare -x DEFINED_PHASES=" compile configure install postinst postrm preinst prepare prerm pretend setup test unpack" declare DEPEND=" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 driver? ( kernel_linux? ( acct-group/video ) ) kernel_linux? ( >=sys-libs/glibc-2.6.1 ) tools? ( dev-libs/atk dev-libs/glib:2 dev-libs/jansson gtk3? ( x11-libs/gtk+:3 ) mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 x11-libs/cairo x11-libs/gdk-pixbuf[X] x11-libs/gtk+:2 x11-libs/libX11 x11-libs/libXext x11-libs/libXrandr x11-libs/libXv x11-libs/libXxf86vm x11-libs/pango[X] ) mlive mod 2.4.0 PasteShr mlive mod 2.4.0 X? ( !libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 ) libglvnd? ( media-libs/libglvnd[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_riscv_lp64d(-)?,abi_riscv_lp64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-eselect/eselect-opengl ) app-misc/pax-utils ) kernel_linux? ( virtual/linux-sources ) mlive mod 2.4.0 How to use it? mlive mod 2.4.0 tools? ( sys-apps/dbus ) kernel_linux? ( sys-apps/kmod[tools] ) sys-apps/sed kernel_linux? ( virtual/linux-sources virtual/libelf ) sys-apps/pciutils" declare DESCRIPTION="NVIDIA Accelerated Graphics Driver" declare -x DIROPTIONS="-m0755" declare -- DISABLE_AUTOFORMATTING="yes" declare -- DOC_CONTENTS="You must be in the video group to use the NVIDIA device mlive mod 2.4.0 How to use it? mlive mod 2.4.0 For more info, read the docs at https://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6 This ebuild installs a kernel module and X driver. Both must match explicitly in their version. This means, if you restart X, you must modprobe -r nvidia before starting it back up To use the NVIDIA GLX, run \"eselect opengl set nvidia\" To use the NVIDIA CUDA/OpenCL, run \"eselect opencl set nvidia\" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 NVIDIA has requested that any bug reports submitted have the output of nvidia-bug-report.sh included. " declare -x EAPI="7" declare -x ELIBC="glibc" declare -- EMULTILIB_PKG="true" declare -x ENLIGHTENMENT_MODULES="" declare -x ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" declare -- EPOCHREALTIME="1597038294.750488" mlive mod 2.4.0 How to get it? mlive mod 2.4.0 declare -- EPOCHSECONDS="1597038294" declare -x EXEOPTIONS="-m0755" declare -x FCFLAGS="-march=native -O2 -pipe -ggdb3 -Wall" declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\"" declare -x FFLAGS="-march=native -O2 -pipe -ggdb3 -Wall" declare -x FFTOOLS="" declare -x GCC_SPECS="" declare -x GPSD_PROTOCOLS="" declare -x GRUB_PLATFORMS="" declare -x GSETTINGS_BACKEND="dconf" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 declare HOMEPAGE="https://www.nvidia.com/Download/Find.aspx" declare -x INHERITED=" desktop eutils toolchain-funcs multilib flag-o-matic linux-info linux-mod multibuild multilib-build multilib-minimal readme.gentoo-r1 nvidia-driver portability systemd unpacker udev" declare -x INPUT_DEVICES="" declare -x INSOPTIONS="-m0644" declare IUSE="compat +driver gtk3 kernel_FreeBSD kernel_linux +kms +libglvnd multilib static-libs +tools uvm wayland +X kernel_linux kernel_linux kernel_linux abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_riscv_lp64d abi_riscv_lp64 abi_s390_32 abi_s390_64" declare -x IUSE_EFFECTIVE="X abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_riscv_lp64 abi_riscv_lp64d abi_s390_32 abi_s390_64 abi_x86_32 abi_x86_64 abi_x86_x32 alpha amd64 amd64-fbsd amd64-linux arm arm64 compat driver elibc_AIX elibc_Cygwin elibc_Darwin elibc_DragonFly elibc_FreeBSD elibc_HPUX elibc_Interix elibc_NetBSD elibc_OpenBSD elibc_SunOS elibc_Winnt elibc_bionic elibc_glibc elibc_mingw elibc_mintlib elibc_musl elibc_uclibc gtk3 hppa ia64 kernel_AIX kernel_Darwin kernel_FreeBSD kernel_HPUX kernel_NetBSD kernel_OpenBSD kernel_SunOS kernel_Winnt kernel_freemint kernel_linux kms libglvnd m68k m68k-mint mips multilib ppc ppc-aix ppc-macos ppc64 ppc64-linux prefix prefix-guest prefix-stack riscv s390 sparc sparc-solaris sparc64-solaris static-libs tools userland_BSD userland_GNU uvm wayland x64-cygwin x64-macos x64-solaris x64-winnt x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt" declare -x IUSE_IMPLICIT="abi_x86_64 prefix prefix-guest prefix-stack" declare -x KERNEL="linux" declare -x KERNEL_ABI="amd64" declare -- KERNEL_DIR="/usr/src/linux" mlive mod 2.4.0 PasteShr mlive mod 2.4.0 declare -- KERNEL_MAKEFILE="/usr/src/linux/Makefile" declare -x KEYWORDS="-* amd64" declare -- KV_DIR="/usr/src/linux" declare -- KV_EXTRA="" declare -- KV_FULL="5.8.0-x86_64+" declare -- KV_LOCAL="-x86_64+" declare -- KV_MAJOR="5" declare -- KV_MINOR="8" declare -- KV_OBJ="ko" declare -- KV_OUT_DIR="/usr/src/linux" mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 declare -- KV_PATCH="0" declare -x L10N="" declare -x LANG="en_US.utf8" declare -x LCD_DEVICES="" declare -x LC_COLLATE="C" declare -x LC_MESSAGES="C" declare -x LD="x86_64-pc-linux-gnu-ld" declare -x LDFLAGS="-Wl,-O1 -Wl,--as-needed" declare -x LDFLAGS_amd64="-m elf_x86_64" declare -x LDFLAGS_default mlive mod 2.4.0 How to get it? mlive mod 2.4.0 declare -x LDFLAGS_x32="-m elf32_x86_64" declare -x LDFLAGS_x86="-m elf_i386" declare -x LIBDIR_amd64="lib64" declare -x LIBDIR_default="lib" declare -x LIBDIR_x32="libx32" declare -x LIBDIR_x86="lib" declare -x LIBOPTIONS="-m0644" declare -x LIBREOFFICE_EXTENSIONS="" declare -x LICENSE="GPL-2 NVIDIA-r2" declare -x LINUX_CONFIG_EXISTS_DONE="1" mlive mod 2.4.0 PasteShr mlive mod 2.4.0 declare -x LIRC_DEVICES="" declare -x LLVM_TARGETS="" declare -x MAIL="/var/mail/root" declare -x MAKEOPTS="-j13" declare -x MANPAGER="manpager" declare -- MODULE_NAMES="nvidia(video:/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/work//kernel) nvidia-modeset(video:/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/work//kernel) nvidia-drm(video:/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/work//kernel)" declare -x MONKEYD_PLUGINS="" declare -x MULTILIB_ABIS="amd64 x86" declare -x MULTILIB_STRICT_DENY="64-bit.*shared object" declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|binutils|eclipse-3|debug|portage|udev|systemd|clang|python-exec|llvm)" declare -- MULTILIB_USEDEP="abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_riscv_lp64d(-)?,abi_riscv_lp64(-)?,abi_s390_32(-)?,abi_s390_64(-)?" declare -x NGINX_MODULES_HTTP="" declare -x NGINX_MODULES_MAIL="" declare -x NGINX_MODULES_STREAM="" declare -- NV_DOC="/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/work/" declare -- NV_KV_MAX_PLUS="5.9" declare -- NV_MAN="/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/work/" declare -- NV_OBJ="/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/work/" declare -- NV_SOVER="450.57" mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 declare -- NV_SRC="/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/work//kernel" declare -- NV_URI="https://us.download.nvidia.com/XFree86/" declare -- NV_X11="/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/work/" declare -x OBJCOPY="x86_64-pc-linux-gnu-objcopy" declare -x OFED_DRIVERS="" declare -x OFFICE_IMPLEMENTATION="" declare -x OPENMPI_FABRICS="" declare -x OPENMPI_OFED_FEATURES="" declare -x OPENMPI_RM="" declare -a PATCHES=([0]="/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/files/nvidia-drivers-440.26-locale.patch") mlive mod 2.4.0 How to get it? mlive mod 2.4.0 declare -x PATH="/usr/lib/portage/python3.7/ebuild-helpers/xattr:/usr/lib/portage/python3.7/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/10/bin" declare PDEPEND="" declare -x PHP_TARGETS="" declare -x PORTAGE_COMPRESSION_COMMAND="bzip2" declare -a PORTAGE_DOCOMPRESS=([0]="/usr/share/doc" [1]="/usr/share/info" [2]="/usr/share/man") declare -x PORTAGE_DOCOMPRESS_SIZE_LIMIT="128" declare -a PORTAGE_DOCOMPRESS_SKIP=([0]="/usr/share/doc/nvidia-drivers-450.57-r1/html") declare -a PORTAGE_DOSTRIP=([0]="/") declare -a PORTAGE_DOSTRIP_SKIP=() declare -x POSTGRES_TARGETS="" mlive mod 2.4.0 PasteShr mlive mod 2.4.0 declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC IUSE_IMPLICIT KERNEL USERLAND USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ARCH USE_EXPAND_VALUES_ELIBC USE_EXPAND_VALUES_KERNEL USE_EXPAND_VALUES_USERLAND" declare -x PROPERTIES="" declare -x PYTHONDONTWRITEBYTECODE="1" declare -x PYTHON_SINGLE_TARGET="" declare -x PYTHON_TARGETS="" declare -- QA_PREBUILT="opt/* usr/lib*" declare -x QEMU_SOFTMMU_TARGETS="" declare -x QEMU_USER_TARGETS="" declare RDEPEND=" mlive mod 2.4.0 PasteShr mlive mod 2.4.0 driver? ( kernel_linux? ( acct-group/video ) ) kernel_linux? ( >=sys-libs/glibc-2.6.1 ) tools? ( dev-libs/atk dev-libs/glib:2 dev-libs/jansson gtk3? ( x11-libs/gtk+:3 ) x11-libs/cairo mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 x11-libs/gdk-pixbuf[X] x11-libs/gtk+:2 x11-libs/libX11 x11-libs/libXext x11-libs/libXrandr x11-libs/libXv x11-libs/libXxf86vm x11-libs/pango[X] ) X? ( mlive mod 2.4.0 How to use it? mlive mod 2.4.0 !libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 ) libglvnd? ( media-libs/libglvnd[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_riscv_lp64d(-)?,abi_riscv_lp64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] !app-eselect/eselect-opengl ) app-misc/pax-utils ) tools? ( !media-video/nvidia-settings ) uvm? ( >=virtual/opencl-3 ) mlive mod 2.4.0 How to use it? mlive mod 2.4.0 wayland? ( dev-libs/wayland[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_riscv_lp64d(-)?,abi_riscv_lp64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) X? ( =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_riscv_lp64d(-)?,abi_riscv_lp64(-)?,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_riscv_lp64d(-)?,abi_riscv_lp64(-)?,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_riscv_lp64d(-)?,abi_riscv_lp64(-)?,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_riscv_lp64d(-)?,abi_riscv_lp64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] ) kernel_linux? ( net-libs/libtirpc ) kernel_linux? ( sys-apps/kmod[tools] ) " mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 declare -- README_GENTOO_SUFFIX="" declare REPOSITORY declare REQUIRED_USE=" tools? ( X ) static-libs? ( tools ) " declare -x RESTRICT="bindist mirror test" declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\"" declare -x ROS_MESSAGES="" declare -x RUBY_TARGETS="" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 declare -x S="/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/work/" declare -x SANDBOX_DEBUG="0" declare -x SANDBOX_DENY="" declare -x SANDBOX_PREDICT="/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/homedir:/dev/crypto:/var/cache/man:/var/cache/fontconfig" declare -x SANDBOX_READ="/:/var/tmp/portage" declare -x SANDBOX_VERBOSE="1" declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/ptmx:/dev/pts/:/dev/pty:/dev/shm:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp/:/var/tmp/portage:/var/tmp/portage/x11-drivers/nvidia-drivers-450.57-r1/homedir/.bash_history" declare -x SANE_BACKENDS="" declare -x SHELL="/bin/bash" declare -x SLOT="0/450" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 declare SRC_URI=" amd64-fbsd? ( https://us.download.nvidia.com/XFree86/FreeBSD-x86_64/450.57/NVIDIA-FreeBSD-x86_64-450.57.tar.gz ) amd64? ( https://us.download.nvidia.com/XFree86/Linux-x86_64/450.57/NVIDIA-Linux-x86_64-450.57.run ) tools? ( https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-450.57.tar.bz2 ) " declare -x SUDO_COMMAND="/usr/bin/emerge --ask nvidia-drivers" declare -x SUDO_GID="1000" declare -x SUDO_UID="1000" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 declare -x SUDO_USER="sleepy" declare -x SYMLINK_LIB="no" declare -x TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE="1" declare -- UNPACKER_BZ2="bzip2 -d" declare -x USE="X abi_x86_32 abi_x86_64 amd64 driver elibc_glibc kernel_linux kms libglvnd multilib tools userland_GNU" declare -x USERLAND="GNU" declare -x USE_EXPAND_IMPLICIT="ARCH ELIBC KERNEL USERLAND" declare -x USE_EXPAND_UNPREFIXED="ARCH" declare -x USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm64 hppa ia64 m68k m68k-mint mips ppc ppc64 ppc64-linux ppc-aix ppc-macos riscv s390 sparc sparc64-solaris sparc-solaris x64-cygwin x64-macos x64-solaris x64-winnt x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt" declare -x USE_EXPAND_VALUES_ELIBC="AIX bionic Cygwin Darwin DragonFly FreeBSD glibc HPUX Interix mingw mintlib musl NetBSD OpenBSD SunOS uclibc Winnt" mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 declare -x USE_EXPAND_VALUES_KERNEL="AIX Darwin FreeBSD freemint HPUX linux NetBSD OpenBSD SunOS Winnt" declare -x USE_EXPAND_VALUES_USERLAND="BSD GNU" declare -x UWSGI_PLUGINS="" declare -x VIDEO_CARDS="" declare -x VOICEMAIL_STORAGE="" declare -x XDG_CONFIG_DIRS="/etc/xdg" declare -x XDG_DATA_DIRS="/usr/local/share:/usr/share" declare -x XFCE_PLUGINS="" declare -x XTABLES_ADDONS="" declare -- _DESKTOP_ECLASS="1" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 declare -- _EUTILS_ECLASS="1" declare -x _E_DESTTREE_="/usr" declare -x _E_DOCDESTTREE_="" declare -x _E_EXEDESTTREE_="" declare -x _E_INSDESTTREE_="" declare -- _FLAG_O_MATIC_ECLASS="1" declare -x _LINUX_CONFIG_EXISTS_DONE="1" declare -- _MULTIBUILD="1" declare -- _MULTILIB_BUILD="1" declare -- _MULTILIB_ECLASS="1" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 declare -a _MULTILIB_FLAGS=([0]="abi_x86_32:x86,x86_fbsd,x86_freebsd,x86_linux,x86_macos,x86_solaris" [1]="abi_x86_64:amd64,amd64_fbsd,x64_freebsd,amd64_linux,x64_macos,x64_solaris" [2]="abi_x86_x32:x32" [3]="abi_mips_n32:n32" [4]="abi_mips_n64:n64" [5]="abi_mips_o32:o32" [6]="abi_riscv_lp64d:lp64d" [7]="abi_riscv_lp64:lp64" [8]="abi_s390_32:s390" [9]="abi_s390_64:s390x") declare -- _PORTABILITY_ECLASS="1" declare -- _README_GENTOO_ECLASS="1" declare -- _TOOLCHAIN_FUNCS_ECLASS="1" declare -- _UDEV_ECLASS="1" declare -- _UNPACKER_ECLASS="1" declare -- _modules_optional_use_iuse_default="" declare -- drv_173x=" 00fa 00fb 00fc 00fd 00fe 0301 0302 0308 0309 0311 0312 0314 031a 031b 031c 0320 0321 0322 0323 0324 0325 0326 0327 0328 032a 032b 032c 032d 0330 0331 mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 0332 0333 0334 0338 033f 0341 0342 0343 0344 0347 0348 034c 034e " declare -- drv_304x=" 0040 0041 0042 0043 0044 0045 0046 0047 0048 004e 0090 0091 0092 0093 0095 0098 0099 009d 00c0 00c1 00c2 00c3 00c8 00c9 00cc 00cd 00ce 00f1 00f2 00f3 00f4 00f5 00f6 00f8 00f9 0140 0141 0142 0143 0144 0145 0146 0147 0148 0149 014a 014c 014d 014e 014f 0160 0161 0162 0163 0164 0165 0166 0167 0168 0169 016a 01d0 01d1 01d2 01d3 01d6 01d7 01d8 01da 01db 01dc 01dd 01de 01df 0211 0212 0215 0218 0221 0222 0240 0241 0242 0244 0245 0247 0290 0291 0292 0293 0294 0295 0297 0298 0299 029a 029b 029c 029d 029e 029f 02e0 02e1 02e2 02e3 mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 02e4 038b 0390 0391 0392 0393 0394 0395 0397 0398 0399 039c 039e 03d0 03d1 03d2 03d5 03d6 0531 0533 053a 053b 053e 07e0 07e1 07e2 07e3 07e5 " declare -- drv_340x=" 0191 0193 0194 0197 019d 019e 0400 0401 0402 0403 0404 0405 0406 0407 0408 0409 040a 040b 040c 040d 040e 040f 0410 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 05e0 05e1 05e2 05e3 05e6 05e7 05e7 05e7 05e7 05e7 05e7 05ea 05eb 05ed 05f8 05f9 05fd 05fe 05ff 0600 0601 0602 0603 0604 0605 0606 0607 0608 0609 0609 060a 060b 060c 060d 060f 0610 0611 0612 0613 0614 0615 0617 0618 0619 061a 061b 061c 061d 061e 061f 0621 mlive mod 2.4.0 PasteShr mlive mod 2.4.0 0622 0623 0625 0626 0627 0628 062a 062b 062c 062d 062e 062e 0630 0631 0632 0635 0637 0638 063a 0640 0641 0643 0644 0645 0646 0647 0648 0649 0649 064a 064b 064c 0651 0652 0652 0653 0654 0654 0654 0655 0656 0658 0659 065a 065b 065c 06e0 06e1 06e2 06e3 06e4 06e5 06e6 06e7 06e8 06e8 06e9 06ea 06eb 06ec 06ef 06f1 06f8 06f9 06f9 06fa 06fb 06fd 06ff 06ff 0840 0844 0845 0846 0847 0848 0849 084a 084b 084c 084d 084f 0860 0861 0862 0863 0864 0865 0866 0866 0867 0868 0869 086a 086c 086d 086e 086f 0870 0871 0872 0872 0873 0873 0874 0876 087a 087d 087e 087f 08a0 08a2 08a3 08a4 08a5 0a20 0a22 0a23 0a26 0a27 0a28 0a29 0a2a 0a2b 0a2c 0a2d 0a32 0a34 0a35 0a38 0a3c 0a60 0a62 0a63 0a64 0a65 0a66 0a67 0a68 0a69 0a6a 0a6c 0a6e 0a6e 0a6f 0a70 0a70 0a70 0a71 0a72 mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 0a73 0a73 0a73 0a74 0a74 0a75 0a75 0a76 0a78 0a7a 0a7a 0a7a 0a7a 0a7a 0a7a 0a7a 0a7a 0a7a 0a7a 0a7a 0a7c 0ca0 0ca2 0ca3 0ca4 0ca5 0ca7 0ca8 0ca9 0cac 0caf 0cb0 0cb1 0cbc 10c0 10c3 10c5 10d8 " declare -- drv_390x=" 06c0 06c4 06ca 06cd 06d1 06d2 06d8 06d9 06da 06dc 06dd 06de 06df 0dc0 0dc4 0dc5 0dc6 0dcd 0dce 0dd1 0dd2 0dd3 0dd6 0dd8 0dda 0de0 0de1 0de2 0de3 0de4 0de5 0de7 0de8 0de9 0dea 0deb 0dec 0ded 0dee 0def 0df0 0df1 0df2 0df3 0df4 0df5 0df6 0df7 0df8 0df9 0dfa 0dfc 0e22 0e23 0e24 0e30 0e31 0e3a 0e3b 0f00 0f01 0f02 0f03 1040 1042 1048 1049 104a 104b 104c 1050 1051 1052 1054 1055 mlive mod 2.4.0 How to get it? mlive mod 2.4.0 1056 1057 1058 1059 105a 105b 107c 107d 1080 1081 1082 1084 1086 1087 1088 1089 108b 1091 1094 1096 109a 109b 1140 1200 1201 1203 1205 1206 1207 1208 1210 1211 1212 1213 1241 1243 1244 1245 1246 1247 1248 1249 124b 124d 1251 " declare -- drv_71xx=" 0020 0028 0029 002c 002d 00a0 0100 0101 0103 0150 0151 0152 0153 " declare -- drv_96xx=" 0110 0111 0112 0113 0170 0171 0172 0173 0174 0175 0176 0177 0178 0179 017a 017c 017d 0181 0182 0183 0185 0188 018a 018b 018c 01a0 01f0 0200 0201 0202 mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 0203 0250 0251 0253 0258 0259 025b 0280 0281 0282 0286 0288 0289 028c " declare -- get_version_warning_done="" declare -- mask_173x=">=x11-drivers/nvidia-drivers-177.0.0" declare -- mask_304x=">=x11-drivers/nvidia-drivers-305.0.0" declare -- mask_340x=">=x11-drivers/nvidia-drivers-341.0.0" declare -- mask_390x=">=x11-drivers/nvidia-drivers-391.0.0" declare -- mask_71xx=">=x11-drivers/nvidia-drivers-72.0.0" declare -- mask_96xx=">=x11-drivers/nvidia-drivers-97.0.0" __eapi6_src_install () mlive mod 2.4.0 How to use it? mlive mod 2.4.0 { if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then emake DESTDIR="${D}" install; fi; einstalldocs } __eapi6_src_prepare () { if ___is_indexed_array_var PATCHES; then [[ ${#PATCHES[@]} -gt 0 ]] && eapply "${PATCHES[@]}"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 else if [[ -n ${PATCHES} ]]; then eapply ${PATCHES}; fi; fi; eapply_user } __eapi7_ver_compare () { local va=${1} vb=${2} a an al as ar b bn bl bs br re LC_ALL=C; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 re="^([0-9]+(\.[0-9]+)*)([a-z]?)((_(alpha|beta|pre|rc|p)[0-9]*)*)(-r[0-9]+)?$"; [[ ${va} =~ ${re} ]] || die "${FUNCNAME}: invalid version: ${va}"; an=${BASH_REMATCH[1]}; al=${BASH_REMATCH[3]}; as=${BASH_REMATCH[4]}; ar=${BASH_REMATCH[7]}; [[ ${vb} =~ ${re} ]] || die "${FUNCNAME}: invalid version: ${vb}"; bn=${BASH_REMATCH[1]}; bl=${BASH_REMATCH[3]}; bs=${BASH_REMATCH[4]}; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 br=${BASH_REMATCH[7]}; __eapi7_ver_compare_int "${an%%.*}" "${bn%%.*}" || return; while [[ ${an} == *.* && ${bn} == *.* ]]; do an=${an#*.}; bn=${bn#*.}; a=${an%%.*}; b=${bn%%.*}; if [[ ${a} == 0* || ${b} == 0* ]]; then [[ ${a} =~ 0+$ ]] && a=${a%"${BASH_REMATCH[0]}"}; [[ ${b} =~ 0+$ ]] && b=${b%"${BASH_REMATCH[0]}"}; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 [[ ${a} > ${b} ]] && return 3; [[ ${a} < ${b} ]] && return 1; else __eapi7_ver_compare_int "${a}" "${b}" || return; fi; done; [[ ${an} == *.* ]] && return 3; [[ ${bn} == *.* ]] && return 1; [[ ${al} > ${bl} ]] && return 3; [[ ${al} < ${bl} ]] && return 1; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 as=${as#_}${as:+_}; bs=${bs#_}${bs:+_}; while [[ -n ${as} && -n ${bs} ]]; do a=${as%%_*}; b=${bs%%_*}; if [[ ${a%%[0-9]*} == "${b%%[0-9]*}" ]]; then __eapi7_ver_compare_int "${a##*[a-z]}" "${b##*[a-z]}" || return; else [[ ${a%%[0-9]*} == p ]] && return 3; [[ ${b%%[0-9]*} == p ]] && return 1; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 [[ ${a} > ${b} ]] && return 3 || return 1; fi; as=${as#*_}; bs=${bs#*_}; done; if [[ -n ${as} ]]; then [[ ${as} == p[_0-9]* ]] && return 3 || return 1; else if [[ -n ${bs} ]]; then [[ ${bs} == p[_0-9]* ]] && return 1 || return 3; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 fi; fi; __eapi7_ver_compare_int "${ar#-r}" "${br#-r}" || return; return 2 } __eapi7_ver_compare_int () { local a=$1 b=$2 d=$(( ${#1}-${#2} )); if [[ ${d} -gt 0 ]]; then printf -v b "%0${d}d%s" 0 "${b}"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 else if [[ ${d} -lt 0 ]]; then printf -v a "%0$(( -d ))d%s" 0 "${a}"; fi; fi; [[ ${a} > ${b} ]] && return 3; [[ ${a} == "${b}" ]] } __eapi7_ver_parse_range () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 local range=${1}; local max=${2}; [[ ${range} == [0-9]* ]] || die "${FUNCNAME}: range must start with a number"; start=${range%-*}; [[ ${range} == *-* ]] && end=${range#*-} || end=${start}; if [[ -n ${end} ]]; then [[ ${start} -le ${end} ]] || die "${FUNCNAME}: end of range must be >= start"; [[ ${end} -le ${max} ]] || end=${max}; else end=${max}; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fi } __eapi7_ver_split () { local v=${1} LC_ALL=C; comp=(); local s c; while [[ -n ${v} ]]; do s=${v%%[a-zA-Z0-9]*}; v=${v:${#s}}; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 [[ ${v} == [0-9]* ]] && c=${v%%[^0-9]*} || c=${v%%[^a-zA-Z]*}; v=${v:${#c}}; comp+=("${s}" "${c}"); done } _clang_fullversion () { local ver="$1"; shift; set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__"); mlive mod 2.4.0 PasteShr mlive mod 2.4.0 eval echo "$ver" } _dead_portability_user_funcs () { die "if you really need this, please file a bug for base-system@gentoo.org" } _eapply_patch () { local f=${1}; local prefix=${2}; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 ebegin "${prefix:-Applying }${f##*/}"; local all_opts=(-p1 -f -g0 --no-backup-if-mismatch "${patch_options[@]}"); if ${patch_cmd} "${all_opts[@]}" --dry-run -s -F0 < "${f}" &> /dev/null; then all_opts+=(-s -F0); fi; ${patch_cmd} "${all_opts[@]}" < "${f}"; failed=${?}; if ! eend "${failed}"; then __helpers_die "patch -p1 ${patch_options[*]} failed with ${f}"; fi mlive mod 2.4.0 PasteShr mlive mod 2.4.0 } _filter-hardened () { local f; for f in "$@"; do case "${f}" in -fPIC | -fpic | -fPIE | -fpie | -Wl,pie | -pie) gcc-specs-pie || continue; if ! is-flagq -nopie && ! is-flagq -no-pie; then mlive mod 2.4.0 How to use it? mlive mod 2.4.0 if test-flags -nopie > /dev/null; then append-flags -nopie; else append-flags -no-pie; fi; fi ;; -fstack-protector) gcc-specs-ssp || continue; is-flagq -fno-stack-protector || append-flags $(test-flags -fno-stack-protector) mlive mod 2.4.0 How to use it? mlive mod 2.4.0 ;; -fstack-protector-all) gcc-specs-ssp-to-all || continue; is-flagq -fno-stack-protector-all || append-flags $(test-flags -fno-stack-protector-all) ;; -fno-strict-overflow) gcc-specs-nostrict || continue; is-flagq -fstrict-overflow || append-flags $(test-flags -fstrict-overflow) ;; esac; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 done } _filter-var () { local f x var=$1 new=(); shift; for f in ${!var}; do for x in "$@"; do mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 [[ ${f} == ${x} ]] && continue 2; done; new+=("${f}"); done; export ${var}="${new[*]}" } _gcc-install-dir () { echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null | awk '$1=="install:" {print $2}')" } mlive mod 2.4.0 PasteShr mlive mod 2.4.0 _gcc-specs-directive_raw () { local cc=$(tc-getCC); local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}'); ${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN { pspec=""; spec=""; outside=1 } $1=="*"directive":" { pspec=spec; spec=""; outside=0; next } outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next } spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next } { spec=spec $0 } END { print spec }'; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 return 0 } _gcc-specs-exists () { [[ -f $(_gcc-install-dir)/$1 ]] } _gcc_fullversion () { local ver="$1"; shift; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 set -- $($(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__"); eval echo "$ver" } _iconins () { ( insopts -m 0644; local funcname=$1; shift; local size dir; local context=apps; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 local theme=hicolor; while [[ $# -gt 0 ]]; do case $1 in -s | --size) if [[ ${2%%x*}x${2%%x*} == "$2" ]]; then size=${2%%x*}; else size=${2}; fi; case ${size} in mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 16 | 22 | 24 | 32 | 36 | 48 | 64 | 72 | 96 | 128 | 192 | 256 | 512) size=${size}x${size} ;; scalable) ;; *) eerror "${size} is an unsupported icon size!"; exit 1 ;; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 esac; shift 2 ;; -t | --theme) theme=${2}; shift 2 ;; -c | --context) context=${2}; shift 2 mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 ;; *) if [[ -z ${size} ]]; then insinto /usr/share/pixmaps; else insinto /usr/share/icons/${theme}/${size}/${context}; fi; if [[ ${funcname} == doicon ]]; then if [[ -f $1 ]]; then doins "${1}"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 else if [[ -d $1 ]]; then shopt -s nullglob; doins "${1}"/*.{png,svg}; shopt -u nullglob; else eerror "${1} is not a valid file/directory!"; exit 1; fi; fi; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 else break; fi; shift 1 ;; esac; done; if [[ ${funcname} == newicon ]]; then newins "$@"; fi ) || die mlive mod 2.4.0 PasteShr mlive mod 2.4.0 } _is_flagq () { local x var="$1[*]"; for x in ${!var}; do [[ ${x} == $2 ]] && return 0; done; return 1 } mlive mod 2.4.0 How to get it? mlive mod 2.4.0 _multilib_multibuild_wrapper () { debug-print-function ${FUNCNAME} "${@}"; local ABI=${MULTIBUILD_VARIANT#*.}; local -r MULTILIB_ABI_FLAG=${MULTIBUILD_VARIANT%.*}; multilib_toolchain_setup "${ABI}"; readonly ABI; "${@}" } _systemd_get_dir () mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 { [[ ${#} -eq 2 ]] || die "Usage: ${FUNCNAME} "; local variable=${1} fallback=${2} d; if $(tc-getPKG_CONFIG) --exists systemd; then d=$($(tc-getPKG_CONFIG) --variable="${variable}" systemd) || die; d=${d#${EPREFIX}}; else d=${fallback}; fi; echo "${d}" mlive mod 2.4.0 PasteShr mlive mod 2.4.0 } _systemd_get_systemgeneratordir () { _systemd_get_dir systemdsystemgeneratordir /lib/systemd/system-generators } _systemd_get_systemunitdir () { _systemd_get_dir systemdsystemunitdir /lib/systemd/system } _systemd_get_userunitdir () mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 { _systemd_get_dir systemduserunitdir /usr/lib/systemd/user } _systemd_get_utildir () { _systemd_get_dir systemdutildir /lib/systemd } _tc-getPROG () { local tuple=$1; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 local v var vars=$2; local prog=($3); var=${vars%% *}; for v in ${vars}; do if [[ -n ${!v} ]]; then export ${var}="${!v}"; echo "${!v}"; return 0; fi; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 done; local search=; [[ -n $4 ]] && search=$(type -p $4-${prog[0]}); [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p ${!tuple}-${prog[0]}); [[ -n ${search} ]] && prog[0]=${search##*/}; export ${var}="${prog[*]}"; echo "${!var}" } _udev_get_udevdir () { mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 if $($(tc-getPKG_CONFIG) --exists udev); then local udevdir="$($(tc-getPKG_CONFIG) --variable=udevdir udev)"; echo "${udevdir#${EPREFIX%/}}"; else echo /lib/udev; fi } _unpacker () { [[ $# -eq 1 ]] || die "Usage: ${FUNCNAME} "; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 local a=$1; local m=$(echo "${a}" | tr '[:upper:]' '[:lower:]'); a=$(find_unpackable_file "${a}"); local comp=""; case ${m} in *.bz2 | *.tbz | *.tbz2) local bzcmd=${PORTAGE_BZIP2_COMMAND:-$(type -P pbzip2 || type -P bzip2)}; local bzuncmd=${PORTAGE_BUNZIP2_COMMAND:-${bzcmd} -d}; : ${UNPACKER_BZ2:=${bzuncmd}}; comp="${UNPACKER_BZ2} -c" mlive mod 2.4.0 PasteShr mlive mod 2.4.0 ;; *.z | *.gz | *.tgz) comp="gzip -dc" ;; *.lzma | *.xz | *.txz) comp="xz -dc" ;; *.lz) : ${UNPACKER_LZIP:=$(type -P plzip || type -P pdlzip || type -P lzip)}; comp="${UNPACKER_LZIP} -dc" mlive mod 2.4.0 PasteShr mlive mod 2.4.0 ;; esac; local arch=""; case ${m} in *.tgz | *.tbz | *.tbz2 | *.txz | *.tar.* | *.tar) arch="tar --no-same-owner -xof" ;; *.cpio.* | *.cpio) arch="unpack_cpio" ;; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 *.deb) arch="unpack_deb" ;; *.run) arch="unpack_makeself" ;; *.sh) if head -n 30 "${a}" | grep -qs '#.*Makeself'; then arch="unpack_makeself"; fi mlive mod 2.4.0 How to use it? mlive mod 2.4.0 ;; *.bin) if head -c 100 "${a}" | grep -qs '#.*Makeself'; then arch="unpack_makeself"; fi ;; *.zip) arch="unpack_zip" ;; esac; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 if [[ -z ${arch}${comp} ]]; then unpack "$1"; return $?; fi; [[ ${arch} != unpack_* ]] && unpack_banner "${a}"; if [[ -z ${arch} ]]; then local _a=${a%.*}; ${comp} "${a}" > "${_a##*/}"; else if [[ -z ${comp} ]]; then mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ${arch} "${a}"; else ${comp} "${a}" | ${arch} -; fi; fi; assert "unpacking ${a} failed (comp=${comp} arch=${arch})" } all-flag-vars () { echo {ADA,C,CPP,CXX,CCAS,F,FC,LD}FLAGS mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 } append-cflags () { [[ $# -eq 0 ]] && return 0; export CFLAGS+=" $*"; return 0 } append-cppflags () { [[ $# -eq 0 ]] && return 0; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 export CPPFLAGS+=" $*"; return 0 } append-cxxflags () { [[ $# -eq 0 ]] && return 0; export CXXFLAGS+=" $*"; return 0 } append-fflags () mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 { [[ $# -eq 0 ]] && return 0; export FFLAGS+=" $*"; export FCFLAGS+=" $*"; return 0 } append-flags () { [[ $# -eq 0 ]] && return 0; case " $* " in mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 *' '-[DIU]*) eqawarn 'please use append-cppflags for preprocessor flags' ;; *' '-L* | *' '-Wl,*) eqawarn 'please use append-ldflags for linker flags' ;; esac; append-cflags "$@"; append-cxxflags "$@"; append-fflags "$@"; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 return 0 } append-ldflags () { [[ $# -eq 0 ]] && return 0; local flag; for flag in "$@"; do [[ ${flag} == -l* ]] && eqawarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS"; done; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 export LDFLAGS="${LDFLAGS} $*"; return 0 } append-lfs-flags () { [[ $# -ne 0 ]] && die "append-lfs-flags takes no arguments"; append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE } append-libs () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 [[ $# -eq 0 ]] && return 0; local flag; for flag in "$@"; do if [[ -z "${flag// }" ]]; then eqawarn "Appending an empty argument to LIBS is invalid! Skipping."; continue; fi; case $flag in -[lL]*) mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 export LIBS="${LIBS} ${flag}" ;; -*) eqawarn "Appending non-library to LIBS (${flag}); Other linker flags should be passed via LDFLAGS"; export LIBS="${LIBS} ${flag}" ;; *) export LIBS="${LIBS} -l${flag}" ;; esac; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 done; return 0 } check_extra_config () { use kernel_linux || return; local config negate die error reworkmodulenames; local soft_errors_count=0 hard_errors_count=0 config_required=0; local old_LINUX_CONFIG_EXISTS_DONE="${_LINUX_CONFIG_EXISTS_DONE}"; linux-info_get_any_version; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 for config in ${CONFIG_CHECK}; do if [[ "${config:0:1}" != "~" ]]; then config_required=1; break; fi; done; if [[ ${config_required} == 0 ]]; then if ! linux_config_exists; then ewarn "Unable to check for the following kernel config options due"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 ewarn "to absence of any configured kernel sources or compiled"; ewarn "config:"; for config in ${CONFIG_CHECK}; do config=${config#\~}; config=${config#\!}; local_error="ERROR_${config}"; msg="${!local_error}"; if [[ -z ${msg} ]]; then local_error="WARNING_${config}"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 msg="${!local_error}"; fi; ewarn " - ${config}${msg:+ - }${msg}"; done; ewarn "You're on your own to make sure they are set if needed."; export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}"; return 0; fi; else require_configured_kernel; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fi; einfo "Checking for suitable kernel configuration options..."; for config in ${CONFIG_CHECK}; do die=1; error=0; negate=0; reworkmodulenames=0; if [[ ${config:0:1} == "~" ]]; then die=0; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 config=${config:1}; else if [[ ${config:0:1} == "@" ]]; then die=0; reworkmodulenames=1; config=${config:1}; fi; fi; if [[ ${config:0:1} == "!" ]]; then negate=1; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 config=${config:1}; fi; if [[ ${negate} == 1 ]]; then linux_chkconfig_present ${config} && error=2; else if [[ ${reworkmodulenames} == 1 ]]; then local temp_config="${config//*:}" i n; config="${config//:*}"; if linux_chkconfig_present ${config}; then for i in ${MODULE_NAMES}; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 do n="${i//${temp_config}}"; [[ -z ${n//\(*} ]] && MODULE_IGNORE="${MODULE_IGNORE} ${temp_config}"; done; error=2; fi; else linux_chkconfig_present ${config} || error=1; fi; fi; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 if [[ ${error} -gt 0 ]]; then local report_func="eerror" local_error; local_error="ERROR_${config}"; local_error="${!local_error}"; if [[ -z "${local_error}" ]]; then local_error="${config}_ERROR"; local_error="${!local_error}"; fi; if [[ ${die} == 0 && -z "${local_error}" ]]; then local_error="WARNING_${config}"; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 local_error="${!local_error}"; if [[ -n "${local_error}" ]]; then report_func="ewarn"; fi; fi; if [[ -z "${local_error}" ]]; then [[ ${error} == 1 ]] && local_error="is not set when it should be." || local_error="should not be set. But it is."; local_error="CONFIG_${config}:\t ${local_error}"; fi; if [[ ${die} == 0 ]]; then mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ${report_func} " ${local_error}"; soft_errors_count=$[soft_errors_count + 1]; else ${report_func} " ${local_error}"; hard_errors_count=$[hard_errors_count + 1]; fi; fi; done; if [[ ${hard_errors_count} -gt 0 ]]; then eerror "Please check to make sure these options are set correctly."; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 eerror "Failure to do so may cause unexpected problems."; eerror "Once you have satisfied these options, please try merging"; eerror "this package again."; export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}"; die "Incorrect kernel configuration options"; else if [[ ${soft_errors_count} -gt 0 ]]; then ewarn "Please check to make sure these options are set correctly."; ewarn "Failure to do so may cause unexpected problems."; else mlive mod 2.4.0 PasteShr mlive mod 2.4.0 eend 0; fi; fi; export LINUX_CONFIG_EXISTS_DONE="${old_LINUX_CONFIG_EXISTS_DONE}" } check_kernel_built () { if ! use kernel_linux; then die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; fi; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 require_configured_kernel; local versionh_path; if kernel_is -ge 3 7; then versionh_path="include/generated/uapi/linux/version.h"; else versionh_path="include/linux/version.h"; fi; if [ ! -f "${KV_OUT_DIR}/${versionh_path}" ]; then eerror "These sources have not yet been prepared."; eerror "We cannot build against an unprepared tree."; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 eerror "To resolve this, please type the following:"; eerror; eerror "# cd ${KV_DIR}"; eerror "# make oldconfig"; eerror "# make modules_prepare"; eerror; eerror "Then please try merging this module again."; die "Kernel sources need compiling first"; fi } mlive mod 2.4.0 How to get it? mlive mod 2.4.0 check_modules_supported () { if ! use kernel_linux; then die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; fi; require_configured_kernel; if ! linux_chkconfig_builtin "MODULES"; then eerror "These sources do not support loading external modules."; eerror "to be able to use this module please enable \"Loadable modules support\""; eerror "in your kernel, recompile and then try merging this module again."; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 die "No support for external modules in ${KV_FULL} config"; fi } check_vermagic () { debug-print-function ${FUNCNAME} $*; local curr_gcc_ver=$(gcc -dumpversion); local tmpfile old_chost old_gcc_ver result=0; [ -n "${MODULES_OPTIONAL_USE}" ] && use !${MODULES_OPTIONAL_USE} && return; tmpfile=`find "${KV_DIR}/" -iname "*.o.cmd" -exec grep usr/lib/gcc {} \; -quit`; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 tmpfile=${tmpfile//*usr/lib}; tmpfile=${tmpfile//\/include*}; old_chost=${tmpfile//*gcc\/}; old_chost=${old_chost//\/*}; old_gcc_ver=${tmpfile//*\/}; if [[ -z ${old_gcc_ver} || -z ${old_chost} ]]; then ewarn ""; ewarn "Unable to detect what version of GCC was used to compile"; ewarn "the kernel. Build will continue, but you may experience problems."; else mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 if [[ ${curr_gcc_ver} != ${old_gcc_ver} ]]; then ewarn ""; ewarn "The version of GCC you are using (${curr_gcc_ver}) does"; ewarn "not match the version of GCC used to compile the"; ewarn "kernel (${old_gcc_ver})."; result=1; else if [[ ${CHOST} != ${old_chost} ]]; then ewarn ""; ewarn "The current CHOST (${CHOST}) does not match the chost"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ewarn "used when compiling the kernel (${old_chost})."; result=1; fi; fi; fi; if [[ ${result} -gt 0 ]]; then ewarn ""; ewarn "Build will not continue, because you will experience problems."; ewarn "To fix this either change the version of GCC you wish to use"; ewarn "to match the kernel, or recompile the kernel first."; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 die "GCC Version Mismatch."; fi } check_zlibinflate () { if ! use kernel_linux; then die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; fi; require_configured_kernel; local INFLATE; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 local DEFLATE; einfo "Determining the usability of ZLIB_INFLATE support in your kernel"; ebegin "checking ZLIB_INFLATE"; linux_chkconfig_builtin CONFIG_ZLIB_INFLATE; eend $? || die; ebegin "checking ZLIB_DEFLATE"; linux_chkconfig_builtin CONFIG_ZLIB_DEFLATE; eend $? || die; local LINENO_START; local LINENO_END; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 local SYMBOLS; local x; LINENO_END="$(grep -n 'CONFIG_ZLIB_INFLATE y' ${KV_DIR}/lib/Config.in | cut -d : -f 1)"; LINENO_START="$(head -n $LINENO_END ${KV_DIR}/lib/Config.in | grep -n 'if \[' | tail -n 1 | cut -d : -f 1)"; (( LINENO_AMOUNT = $LINENO_END - $LINENO_START )); (( LINENO_END = $LINENO_END - 1 )); SYMBOLS="$(head -n $LINENO_END ${KV_DIR}/lib/Config.in | tail -n $LINENO_AMOUNT | sed -e 's/^.*\(CONFIG_[^\" ]*\).*/\1/g;')"; for x in $SYMBOLS; do if [ "${!x}" = "y" ]; then mlive mod 2.4.0 How to get it? mlive mod 2.4.0 einfo "${x} ensures zlib is linked into your kernel - excellent"; return 0; fi; done; eerror; eerror "This kernel module requires ZLIB library support."; eerror "You have enabled zlib support in your kernel, but haven't enabled"; eerror "enabled any option that will ensure that zlib is linked into your"; eerror "kernel."; eerror; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 eerror "Please ensure that you enable at least one of these options:"; eerror; for x in $SYMBOLS; do eerror " * $x"; done; eerror; eerror "Please remember to recompile and install your kernel, and reboot"; eerror "into your new kernel before attempting to load this kernel module."; die "Kernel doesn't include zlib support" mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 } clang-fullversion () { _clang_fullversion '$1.$2.$3' "$@" } clang-major-version () { _clang_fullversion '$1' "$@" } clang-micro-version () mlive mod 2.4.0 PasteShr mlive mod 2.4.0 { _clang_fullversion '$3' "$@" } clang-minor-version () { _clang_fullversion '$2' "$@" } clang-version () { _clang_fullversion '$1.$2' "$@" mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 } convert_to_m () { debug-print-function ${FUNCNAME} $*; if use_m; then [ ! -f "${1}" ] && die "convert_to_m() requires a filename as an argument"; ebegin "Converting ${1/${WORKDIR}\//} to use M= instead of SUBDIRS="; sed -i 's:SUBDIRS=:M=:g' "${1}"; eend $?; fi mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } dlopen_lib () { case "${CHOST}" in *-linux-gnu* | *-linux-uclibc | *-interix*) echo "-ldl" ;; esac } doicon () mlive mod 2.4.0 PasteShr mlive mod 2.4.0 { _iconins ${FUNCNAME} "$@" } domenu () { ( local i ret=0; insopts -m 0644; insinto /usr/share/applications; for i in "$@"; do mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 if [[ -d ${i} ]]; then doins "${i}"/*.desktop; ((ret|=$?)); else doins "${i}"; ((ret|=$?)); fi; done; exit ${ret} ) } mlive mod 2.4.0 PasteShr mlive mod 2.4.0 donvidia () { nv_LIB="${1}"; nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"; nv_DEST="${2}"; nv_LIBNAME=$(basename "${nv_LIB}"); if [[ -n "${nv_DEST}" ]]; then exeinto ${nv_DEST}; action="doexe"; else mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 nv_DEST="/usr/$(get_libdir)"; action="dolib.so"; fi; ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"; if [[ -n ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}; fi; dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} } eapply () mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 { local failed patch_cmd=patch; local -x LC_COLLATE=POSIX; type -P gpatch > /dev/null && patch_cmd=gpatch; function _eapply_patch () { local f=${1}; local prefix=${2}; ebegin "${prefix:-Applying }${f##*/}"; local all_opts=(-p1 -f -g0 --no-backup-if-mismatch "${patch_options[@]}"); mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 if ${patch_cmd} "${all_opts[@]}" --dry-run -s -F0 < "${f}" &> /dev/null; then all_opts+=(-s -F0); fi; ${patch_cmd} "${all_opts[@]}" < "${f}"; failed=${?}; if ! eend "${failed}"; then __helpers_die "patch -p1 ${patch_options[*]} failed with ${f}"; fi }; local patch_options=() files=(); mlive mod 2.4.0 How to use it? mlive mod 2.4.0 local i found_doublehyphen; for ((i = 1; i <= ${#@}; ++i )) do if [[ ${@:i:1} == -- ]]; then patch_options=("${@:1:i-1}"); files=("${@:i+1}"); found_doublehyphen=1; break; fi; done; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 if [[ -z ${found_doublehyphen} ]]; then for ((i = 1; i <= ${#@}; ++i )) do if [[ ${@:i:1} != -* ]]; then patch_options=("${@:1:i-1}"); files=("${@:i}"); break; fi; done; for i in "${files[@]}"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 do if [[ ${i} == -* ]]; then die "eapply: all options must be passed before non-options"; fi; done; fi; if [[ ${#files[@]} -eq 0 ]]; then die "eapply: no files specified"; fi; local f; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 for f in "${files[@]}"; do if [[ -d ${f} ]]; then function _eapply_get_files () { local LC_ALL=POSIX; local prev_shopt=$(shopt -p nullglob); shopt -s nullglob; local f; for f in "${1}"/*; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 do if [[ ${f} == *.diff || ${f} == *.patch ]]; then files+=("${f}"); fi; done; ${prev_shopt} }; local files=(); _eapply_get_files "${f}"; [[ ${#files[@]} -eq 0 ]] && die "No *.{patch,diff} files in directory ${f}"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 einfo "Applying patches from ${f} ..."; local f2; for f2 in "${files[@]}"; do _eapply_patch "${f2}" ' '; [[ ${failed} -ne 0 ]] && return "${failed}"; done; else _eapply_patch "${f}"; [[ ${failed} -ne 0 ]] && return "${failed}"; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 fi; done; return 0 } eapply_user () { [[ ${EBUILD_PHASE} == prepare ]] || die "eapply_user() called during invalid phase: ${EBUILD_PHASE}"; local tagfile=${T}/.portage_user_patches_applied; [[ -f ${tagfile} ]] && return; >> "${tagfile}"; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 local basedir=${PORTAGE_CONFIGROOT%/}/etc/portage/patches; local applied d f; local -A _eapply_user_patches; local prev_shopt=$(shopt -p nullglob); shopt -s nullglob; for d in "${basedir}"/${CATEGORY}/{${P}-${PR},${P},${PN}}{:${SLOT%/*},}; do for f in "${d}"/*; do if [[ ( ${f} == *.diff || ${f} == *.patch ) && -z ${_eapply_user_patches[${f##*/}]} ]]; then mlive mod 2.4.0 How to use it? mlive mod 2.4.0 _eapply_user_patches[${f##*/}]=${f}; fi; done; done; if [[ ${#_eapply_user_patches[@]} -gt 0 ]]; then while read -r -d '' f; do f=${_eapply_user_patches[${f}]}; if [[ -s ${f} ]]; then eapply "${f}"; applied=1; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fi; done < <(printf -- '%s\0' "${!_eapply_user_patches[@]}" | LC_ALL=C sort -z); fi; ${prev_shopt}; [[ -n ${applied} ]] && ewarn "User patches applied." } econf_build () { local CBUILD=${CBUILD:-${CHOST}}; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 tc-env_build econf --build=${CBUILD} --host=${CBUILD} "$@" } edos2unix () { [[ $# -eq 0 ]] && return 0; sed -i 's/\r$//' -- "$@" || die } einstalldocs () { ( if [[ $(declare -p DOCS 2>/dev/null) != *=* ]]; then mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 local d; for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS FAQ CREDITS CHANGELOG; do [[ -f ${d} && -s ${d} ]] && docinto / && dodoc "${d}"; done; else if ___is_indexed_array_var DOCS; then [[ ${#DOCS[@]} -gt 0 ]] && docinto / && dodoc -r "${DOCS[@]}"; else [[ -n ${DOCS} ]] && docinto / && dodoc -r ${DOCS}; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 fi; fi ); ( if ___is_indexed_array_var HTML_DOCS; then [[ ${#HTML_DOCS[@]} -gt 0 ]] && docinto html && dodoc -r "${HTML_DOCS[@]}"; else [[ -n ${HTML_DOCS} ]] && docinto html && dodoc -r ${HTML_DOCS}; fi ) } emktemp () { mlive mod 2.4.0 How to get it? mlive mod 2.4.0 local exe="touch"; [[ $1 == -d ]] && exe="mkdir" && shift; local topdir=$1; if [[ -z ${topdir} ]]; then [[ -z ${T} ]] && topdir="/tmp" || topdir=${T}; fi; if ! type -P mktemp > /dev/null; then local tmp=/; while [[ -e ${tmp} ]]; do tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM}; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 done; ${exe} "${tmp}" || ${exe} -p "${tmp}"; echo "${tmp}"; else if [[ ${exe} == "touch" ]]; then TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX; else TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX; fi; fi mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 } filter-flags () { _filter-hardened "$@"; local v; for v in $(all-flag-vars); do _filter-var ${v} "$@"; done; return 0 mlive mod 2.4.0 PasteShr mlive mod 2.4.0 } filter-ldflags () { _filter-var LDFLAGS "$@"; return 0 } filter-lfs-flags () { [[ $# -ne 0 ]] && die "filter-lfs-flags takes no arguments"; filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } filter-mfpmath () { local orig_mfpmath new_math prune_math; orig_mfpmath=$(get-flag -mfpmath); new_math=$(get-flag mfpmath); new_math=${new_math/both/387,sse}; new_math=" ${new_math//[,+]/ } "; prune_math=""; for prune_math in "$@"; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 do new_math=${new_math/ ${prune_math} / }; done; new_math=$(echo ${new_math}); new_math=${new_math// /,}; if [[ -z ${new_math} ]]; then filter-flags ${orig_mfpmath}; else replace-flags ${orig_mfpmath} -mfpmath=${new_math}; fi; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 return 0 } find_module_params () { debug-print-function ${FUNCNAME} $*; local matched_offset=0 matched_opts=0 test="${@}" temp_var result; local i=0 y=0 z=0; for ((i=0; i<=${#test}; i++)) do case ${test:${i}:1} in mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 \() matched_offset[0]=${i} ;; \:) matched_opts=$((${matched_opts} + 1)); matched_offset[${matched_opts}]="${i}" ;; \)) matched_opts=$((${matched_opts} + 1)); matched_offset[${matched_opts}]="${i}" mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 ;; esac; done; for ((i=0; i<=${matched_opts}; i++)) do case ${i} in 0) tempvar=${test:0:${matched_offset[0]}} ;; *) mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 y=$((${matched_offset[$((${i} - 1))]} + 1)); z=$((${matched_offset[${i}]} - ${matched_offset[$((${i} - 1))]})); z=$((${z} - 1)); tempvar=${test:${y}:${z}} ;; esac; case ${i} in 0) result="${result} modulename:${tempvar}" ;; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 1) result="${result} libdir:${tempvar}" ;; 2) result="${result} srcdir:${tempvar}" ;; 3) result="${result} objdir:${tempvar}" ;; esac; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 done; echo ${result} } find_unpackable_file () { local src=$1; if [[ -z ${src} ]]; then src=${DISTDIR}/${A}; else if [[ ${src} == ./* ]]; then mlive mod 2.4.0 How to use it? mlive mod 2.4.0 :; else if [[ -e ${DISTDIR}/${src} ]]; then src=${DISTDIR}/${src}; else if [[ -e ${PWD}/${src} ]]; then src=${PWD}/${src}; else if [[ -e ${src} ]]; then src=${src}; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 fi; fi; fi; fi; fi; [[ ! -e ${src} ]] && return 1; echo "${src}" } gcc-fullversion () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 _gcc_fullversion '$1.$2.$3' "$@" } gcc-major-version () { _gcc_fullversion '$1' "$@" } gcc-micro-version () { _gcc_fullversion '$3' "$@" } mlive mod 2.4.0 PasteShr mlive mod 2.4.0 gcc-minor-version () { _gcc_fullversion '$2' "$@" } gcc-specs-directive () { local directive subdname subdirective; directive="$(_gcc-specs-directive_raw $1)"; while [[ ${directive} == *%\(*\)* ]]; do subdname=${directive/*%\(}; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 subdname=${subdname/\)*}; subdirective="$(_gcc-specs-directive_raw ${subdname})"; directive="${directive//\%(${subdname})/${subdirective}}"; done; echo "${directive}"; return 0 } gcc-specs-nostrict () { local directive; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 directive=$(gcc-specs-directive cc1); [[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]] } gcc-specs-now () { local directive; directive=$(gcc-specs-directive link_command); [[ "${directive/\{!nonow:}" != "${directive}" ]] } gcc-specs-pie () mlive mod 2.4.0 How to use it? mlive mod 2.4.0 { local directive; directive=$(gcc-specs-directive cc1); [[ "${directive/\{!nopie:}" != "${directive}" ]] } gcc-specs-relro () { local directive; directive=$(gcc-specs-directive link_command); [[ "${directive/\{!norelro:}" != "${directive}" ]] mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 } gcc-specs-ssp () { local directive; directive=$(gcc-specs-directive cc1); [[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]] } gcc-specs-ssp-to-all () { local directive; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 directive=$(gcc-specs-directive cc1); [[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]] } gcc-specs-stack-check () { local directive; directive=$(gcc-specs-directive cc1); [[ "${directive/\{!fno-stack-check:}" != "${directive}" ]] } gcc-version () mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 { _gcc_fullversion '$1.$2' "$@" } gen_usr_ldscript () { ewarn "${FUNCNAME}: Please migrate to usr-ldscript.eclass"; local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname); [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/; tc-is-static-only && return; if [[ $(type -t multilib_is_native_abi) == "function" ]]; then mlive mod 2.4.0 How to use it? mlive mod 2.4.0 multilib_is_native_abi || return 0; fi; case ${CTARGET:-${CHOST}} in *-darwin*) ;; *-android*) return 0 ;; *linux* | *-freebsd* | *-openbsd* | *-netbsd*) mlive mod 2.4.0 How to use it? mlive mod 2.4.0 use prefix && return 0 ;; *) return 0 ;; esac; dodir /usr/${libdir}; if [[ $1 == "-a" ]]; then auto=true; shift; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 dodir /${libdir}; fi; local flags=(${CFLAGS} ${LDFLAGS} -Wl,--verbose); if $(tc-getLD) --version | grep -q 'GNU gold'; then local d="${T}/bfd-linker"; mkdir -p "${d}"; ln -sf $(which ${CHOST}-ld.bfd) "${d}"/ld; flags+=(-B"${d}"); fi; output_format=$($(tc-getCC) "${flags[@]}" 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p'); mlive mod 2.4.0 PasteShr mlive mod 2.4.0 [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"; for lib in "$@"; do local tlib; if ${auto}; then lib="lib${lib}${suffix}"; else [[ -r ${ED}/${libdir}/${lib} ]] || continue; fi; case ${CTARGET:-${CHOST}} in mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 *-darwin*) if ${auto}; then tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib}); else tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib}); fi; [[ -z ${tlib} ]] && die "unable to read install_name from ${lib}"; tlib=${tlib##*/}; if ${auto}; then mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die; fi; rm -f "${ED}"/${libdir}/${lib}; fi; if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then chmod u+w "${ED}${libdir}/${tlib}"; local nowrite=yes; fi; install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 [[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}"; pushd "${ED}/usr/${libdir}" > /dev/null; ln -snf "../../${libdir}/${tlib}" "${lib}"; popd > /dev/null ;; *) if ${auto}; then tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib}); [[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}"; mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 if [[ ${tlib} != ${lib}* ]]; then mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die; fi; rm -f "${ED}"/${libdir}/${lib}; else tlib=${lib}; fi; cat > "${ED}/usr/${libdir}/${lib}" <<-END_LDSCRIPT /* GNU ld script Since Gentoo has critical dynamic libraries in /lib, and the static versions mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we run into linking problems. This "fake" dynamic lib is a linker script that redirects the linker to the real lib. And yes, this works in the cross- compiling scenario as the sysroot-ed linker will prepend the real path. See bug https://bugs.gentoo.org/4411 for more info. */ ${output_format} GROUP ( ${EPREFIX}/${libdir}/${tlib} ) END_LDSCRIPT mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ;; esac fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}"; done } generate_modulesd () { debug-print-function ${FUNCNAME} $*; [ -n "${MODULES_OPTIONAL_USE}" ] && use !${MODULES_OPTIONAL_USE} && return; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 local currm_path currm currm_t t myIFS myVAR; local module_docs module_enabled module_aliases module_additions module_examples module_modinfo module_opts; for currm_path in ${@}; do currm=${currm_path//*\/}; currm=$(echo ${currm} | tr '[:lower:]' '[:upper:]'); currm_t=${currm}; while [[ -z ${currm_t//*-*} ]]; do currm_t=${currm_t/-/_}; done; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 module_docs="$(eval echo \${MODULESD_${currm_t}_DOCS})"; module_enabled="$(eval echo \${MODULESD_${currm_t}_ENABLED})"; module_aliases="$(eval echo \${#MODULESD_${currm_t}_ALIASES[*]})"; module_additions="$(eval echo \${#MODULESD_${currm_t}_ADDITIONS[*]})"; module_examples="$(eval echo \${#MODULESD_${currm_t}_EXAMPLES[*]})"; [[ ${module_aliases} -eq 0 ]] && unset module_aliases; [[ ${module_additions} -eq 0 ]] && unset module_additions; [[ ${module_examples} -eq 0 ]] && unset module_examples; [[ ${module_enabled} == no ]] && return 0; for t in ${!module_*}; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 do [[ -z ${!t} ]] && unset ${t}; done; [[ -z ${!module_*} ]] && return 0; module_modinfo="$(modinfo -p ${currm_path}.${KV_OBJ})"; module_config="${T}/modulesd-${currm}"; ebegin "Preparing file for modprobe.d"; echo "# modprobe.d configuration file for ${currm}" >> "${module_config}"; [[ -n ${module_docs} ]] && echo "# For more information please read:" >> "${module_config}"; for t in ${module_docs}; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 do echo "# ${t//*\/}" >> "${module_config}"; done; echo >> "${module_config}"; if [[ ${module_aliases} -gt 0 ]]; then echo "# Internal Aliases - Do not edit" >> "${module_config}"; echo "# ------------------------------" >> "${module_config}"; for ((t=0; t<${module_aliases}; t++)) do echo "alias $(eval echo \${MODULESD_${currm}_ALIASES[$t]})" >> "${module_config}"; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 done; echo '' >> "${module_config}"; fi; if [[ -n ${module_modinfo} ]]; then echo >> "${module_config}"; echo "# Configurable module parameters" >> "${module_config}"; echo "# ------------------------------" >> "${module_config}"; myIFS="${IFS}"; IFS="$(echo -en "\n\b")"; for t in ${module_modinfo}; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 do myVAR="$(echo ${t#*:} | grep -o "[^ ]*[0-9][ =][^ ]*" | tail -1 | grep -o "[0-9]")"; if [[ -n ${myVAR} ]]; then module_opts="${module_opts} ${t%%:*}:${myVAR}"; fi; echo -e "# ${t%%:*}:\t${t#*:}" >> "${module_config}"; done; IFS="${myIFS}"; echo '' >> "${module_config}"; fi; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 if [[ $(eval echo \${MODULESD_${currm}_ALIASES[0]}) == guess ]]; then if [[ -n ${module_opts} ]]; then echo "# For Example..." >> "${module_config}"; echo "# --------------" >> "${module_config}"; for t in ${module_opts}; do echo "# options ${currm} ${t//:*}=${t//*:}" >> "${module_config}"; done; echo '' >> "${module_config}"; fi; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 else if [[ ${module_examples} -gt 0 ]]; then echo "# For Example..." >> "${module_config}"; echo "# --------------" >> "${module_config}"; for ((t=0; t<${module_examples}; t++)) do echo "options $(eval echo \${MODULESD_${currm}_EXAMPLES[$t]})" >> "${module_config}"; done; echo '' >> "${module_config}"; fi; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fi; if [[ ${module_additions} -gt 0 ]]; then for ((t=0; t<${module_additions}; t++)) do echo "$(eval echo \${MODULESD_${currm}_ADDITIONS[$t]})" >> "${module_config}"; done; echo '' >> "${module_config}"; fi; insinto /etc/modprobe.d; newins "${module_config}" "${currm_path//*\/}.conf"; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 [[ -n ${module_docs} ]] && dodoc ${module_docs}; done; eend 0; return 0 } get-KERNEL_CC () { debug-print-function ${FUNCNAME} $*; if [[ -n ${KERNEL_CC} ]]; then echo "${KERNEL_CC}"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 return; fi; local kernel_cc; if [ -n "${KERNEL_ABI}" ]; then kernel_cc="$(tc-getCC $(ABI=${KERNEL_ABI} get_abi_CHOST))"; else kernel_cc=$(tc-getCC); fi; echo "${kernel_cc}" } mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 get-flag () { [[ $# -ne 1 ]] && die "usage: "; local f var findflag="$1"; for var in $(all-flag-vars); do for f in ${!var}; do if [ "${f/${findflag}}" != "${f}" ]; then printf "%s\n" "${f/-${findflag}=}"; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 return 0; fi; done; done; return 1 } get_abi_CFLAGS () { get_abi_var CFLAGS "$@" } mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 get_abi_CHOST () { get_abi_var CHOST "$@" } get_abi_CTARGET () { get_abi_var CTARGET "$@" } get_abi_FAKE_TARGETS () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 get_abi_var FAKE_TARGETS "$@" } get_abi_LDFLAGS () { get_abi_var LDFLAGS "$@" } get_abi_LIBDIR () { get_abi_var LIBDIR "$@" } mlive mod 2.4.0 How to use it? mlive mod 2.4.0 get_abi_var () { local flag=$1; local abi=${2:-${ABI:-${DEFAULT_ABI:-default}}}; local var="${flag}_${abi}"; echo ${!var} } get_all_abis () { local x order="" mvar dvar; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 mvar="MULTILIB_ABIS"; dvar="DEFAULT_ABI"; if [[ -n $1 ]]; then mvar="$1_${mvar}"; dvar="$1_${dvar}"; fi; if [[ -z ${!mvar} ]]; then echo "default"; return 0; fi; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 for x in ${!mvar}; do if [[ ${x} != ${!dvar} ]]; then order="${order:+${order} }${x}"; fi; done; order="${order:+${order} }${!dvar}"; echo ${order}; return 0 } mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 get_all_libdirs () { local libdirs abi; for abi in ${MULTILIB_ABIS}; do libdirs+=" $(get_abi_LIBDIR ${abi})"; done; [[ " ${libdirs} " != *" lib "* ]] && libdirs+=" lib"; echo "${libdirs}" } mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 get_bmake () { if [[ ${CBUILD:-${CHOST}} == *bsd* ]]; then echo make; else if [[ ${CBUILD:-${CHOST}} == *darwin* ]]; then echo bsdmake; else echo bmake; fi; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 fi } get_exeext () { case ${CHOST} in *-cygwin* | mingw* | *-mingw*) echo ".exe" ;; esac } mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 get_install_abis () { local x order=""; if [[ -z ${MULTILIB_ABIS} ]]; then echo "default"; return 0; fi; if [[ ${EMULTILIB_PKG} == "true" ]]; then for x in ${MULTILIB_ABIS}; do mlive mod 2.4.0 How to use it? mlive mod 2.4.0 if [[ ${x} != "${DEFAULT_ABI}" ]]; then has ${x} ${ABI_DENY} || order="${order} ${x}"; fi; done; has ${DEFAULT_ABI} ${ABI_DENY} || order="${order} ${DEFAULT_ABI}"; if [[ -n ${ABI_ALLOW} ]]; then local ordera=""; for x in ${order}; do if has ${x} ${ABI_ALLOW}; then mlive mod 2.4.0 How to use it? mlive mod 2.4.0 ordera="${ordera} ${x}"; fi; done; order=${ordera}; fi; else order=${DEFAULT_ABI}; fi; if [[ -z ${order} ]]; then die "The ABI list is empty. Are you using a proper multilib profile? Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package."; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 fi; echo ${order}; return 0 } get_libdir () { local libdir_var="LIBDIR_${ABI}"; local libdir="lib"; [[ -n ${ABI} && -n ${!libdir_var} ]] && libdir=${!libdir_var}; echo "${libdir}" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 } get_libname () { local libname; local ver=$1; case ${CHOST} in *-cygwin*) libname="dll.a" ;; mingw* | *-mingw*) mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 libname="dll" ;; *-darwin*) libname="dylib" ;; *-mint*) libname="irrelevant" ;; hppa*-hpux*) libname="sl" mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ;; *) libname="so" ;; esac; if [[ -z $* ]]; then echo ".${libname}"; else for ver in "$@"; do mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 case ${CHOST} in *-cygwin*) echo ".${ver}.${libname}" ;; *-darwin*) echo ".${ver}.${libname}" ;; *-mint*) echo ".${libname}" ;; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 *) echo ".${libname}.${ver}" ;; esac; done; fi } get_localversion () { local lv_list i x; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 local shopt_save=$(shopt -p nullglob); shopt -s nullglob; local files=(${1}/localversion*); ${shopt_save}; for i in "${files[@]}"; do [[ -n ${i//*~*} ]] && lv_list="${lv_list} ${i}"; done; for i in ${lv_list}; do mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 x="${x}$(<${i})"; done; x=${x/ /}; echo ${x} } get_makefile_extract_function () { local a='' b='' mkfunc='getfilevar'; a="$(getfilevar VERSION ${KERNEL_MAKEFILE})"; b="$(getfilevar_noexec VERSION ${KERNEL_MAKEFILE})"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 [[ "${a}" != "${b}" ]] && mkfunc='getfilevar_noexec'; echo "${mkfunc}" } get_modname () { local modname; local ver=$1; case ${CHOST} in *-darwin*) modname="bundle" mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ;; *) modname="so" ;; esac; echo ".${modname}" } get_mounts () { local point= node= fs= opts= foo=; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 if [[ $(uname -s) == "Linux" ]]; then while read node point fs opts foo; do echo "${point} ${node} ${fs} ${opts}"; done < /proc/mounts; return; fi; local IFS=' '; LC_ALL=C mount -p | while read node point fs foo; do opts=${fs#* }; fs=${fs%% *}; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 echo "${point// /\040} ${node// /\040} ${fs%% *} ${opts// /\040}"; done } get_running_version () { if ! use kernel_linux; then die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; fi; KV_FULL=$(uname -r); if [[ -f ${ROOT%/}/lib/modules/${KV_FULL}/source/Makefile && -f ${ROOT%/}/lib/modules/${KV_FULL}/build/Makefile ]]; then mlive mod 2.4.0 How to get it? mlive mod 2.4.0 KERNEL_DIR=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/source); KBUILD_OUTPUT=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/build); unset KV_FULL; get_version; return $?; else if [[ -f ${ROOT%/}/lib/modules/${KV_FULL}/source/Makefile ]]; then KERNEL_DIR=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/source); unset KV_FULL; get_version; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 return $?; else if [[ -f ${ROOT%/}/lib/modules/${KV_FULL}/build/Makefile ]]; then KERNEL_DIR=$(readlink -f ${ROOT%/}/lib/modules/${KV_FULL}/build); unset KV_FULL; get_version; return $?; else local kv_full=${KV_FULL//[-+_]*}; KV_MAJOR=$(ver_cut 1 ${kv_full}); mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 KV_MINOR=$(ver_cut 2 ${kv_full}); KV_PATCH=$(ver_cut 3 ${kv_full}); KV_EXTRA="${KV_FULL#${KV_MAJOR}.${KV_MINOR}${KV_PATCH:+.${KV_PATCH}}}"; : ${KV_PATCH:=0}; fi; fi; fi; return 0 } get_udevdir () mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 { debug-print-function ${FUNCNAME} "${@}"; echo "$(_udev_get_udevdir)" } get_version () { if ! use kernel_linux; then die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; fi; local tmplocal; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 [ -n "${KV_FULL}" ] && return 0; unset KV_DIR; [ -z "${get_version_warning_done}" ] && qeinfo "Determining the location of the kernel source code"; [ -d "${KERNEL_DIR}" ] && KV_DIR="${KERNEL_DIR}"; if [ -z "${KV_DIR}" ]; then if [ -z "${get_version_warning_done}" ]; then get_version_warning_done=1; qewarn "Unable to find kernel sources at ${KERNEL_DIR}"; if [ "${KERNEL_DIR}" == "/usr/src/linux" ]; then qeinfo "Please make sure that ${KERNEL_DIR} points at your running kernel, "; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 qeinfo "(or the kernel you wish to build against)."; qeinfo "Alternatively, set the KERNEL_DIR environment variable to the kernel sources location"; else qeinfo "Please ensure that the KERNEL_DIR environment variable points at full Linux sources of the kernel you wish to compile against."; fi; fi; return 1; fi; if [ -z "${KBUILD_OUTPUT}" -a -L "${KERNEL_DIR}/source" ]; then KBUILD_OUTPUT=${KERNEL_DIR}; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 KERNEL_DIR=$(readlink -f "${KERNEL_DIR}/source"); KV_DIR=${KERNEL_DIR}; fi; if [ -z "${get_version_warning_done}" ]; then qeinfo "Found kernel source directory:"; qeinfo " ${KV_DIR}"; fi; if [ ! -s "${KV_DIR}/Makefile" ]; then if [ -z "${get_version_warning_done}" ]; then get_version_warning_done=1; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 qeerror "Could not find a Makefile in the kernel source directory."; qeerror "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources"; fi; return 1; fi; local OUTPUT_DIR=${KBUILD_OUTPUT}; KERNEL_MAKEFILE="${KV_DIR}/Makefile"; if [[ -z ${OUTPUT_DIR} ]]; then local mkfunc=$(get_makefile_extract_function "${KERNEL_MAKEFILE}"); OUTPUT_DIR=$(${mkfunc} KBUILD_OUTPUT "${KERNEL_MAKEFILE}"); mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 fi; KV_MAJOR=$(getfilevar_noexec VERSION "${KERNEL_MAKEFILE}"); KV_MINOR=$(getfilevar_noexec PATCHLEVEL "${KERNEL_MAKEFILE}"); KV_PATCH=$(getfilevar_noexec SUBLEVEL "${KERNEL_MAKEFILE}"); KV_EXTRA=$(getfilevar_noexec EXTRAVERSION "${KERNEL_MAKEFILE}"); if [ -z "${KV_MAJOR}" -o -z "${KV_MINOR}" -o -z "${KV_PATCH}" ]; then if [ -z "${get_version_warning_done}" ]; then get_version_warning_done=1; qeerror "Could not detect kernel version."; qeerror "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources."; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fi; return 1; fi; [ -d "${OUTPUT_DIR}" ] && KV_OUT_DIR="${OUTPUT_DIR}"; if [ -n "${KV_OUT_DIR}" ]; then qeinfo "Found kernel object directory:"; qeinfo " ${KV_OUT_DIR}"; fi; KV_OUT_DIR="${KV_OUT_DIR:-${KV_DIR}}"; if [ -s "${KV_OUT_DIR}"/include/config/kernel.release ]; then mlive mod 2.4.0 How to use it? mlive mod 2.4.0 KV_LOCAL=$(<"${KV_OUT_DIR}"/include/config/kernel.release); else if [ -s "${KV_OUT_DIR}"/.kernelrelease ]; then KV_LOCAL=$(<"${KV_OUT_DIR}"/.kernelrelease); else KV_LOCAL=; fi; fi; tmplocal=${KV_LOCAL#${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}}; if [ "$KV_LOCAL" = "$tmplocal" ]; then mlive mod 2.4.0 How to use it? mlive mod 2.4.0 KV_LOCAL=; else KV_LOCAL=$tmplocal; fi; if [[ -z ${OUTPUT_DIR} ]]; then for OUTPUT_DIR in "${SYSROOT}" "${ROOT%/}" ""; do OUTPUT_DIR+="/lib/modules/${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}/build"; if [[ -e ${OUTPUT_DIR} ]]; then break; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 fi; done; fi; KV_FULL="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}"; qeinfo "Found sources for kernel version:"; qeinfo " ${KV_FULL}"; return 0 } getfilevar () { mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 local ERROR basefname basedname myARCH="${ARCH}"; ERROR=0; [ -z "${1}" ] && ERROR=1; [ ! -f "${2}" ] && ERROR=1; if [ "${ERROR}" = 1 ]; then echo -e "\n"; eerror "getfilevar requires 2 variables, with the second a valid file."; eerror " getfilevar "; else basefname="$(basename ${2})"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 basedname="$(dirname ${2})"; unset ARCH; [[ ${EAPI:-0} == [0123] ]] && function nonfatal () { "$@" }; echo -e "e:\\n\\t@echo \$(${1})\\ninclude ${basefname}" | nonfatal emake -C "${basedname}" M="${T}" ${BUILD_FIXES} -s -f - 2> /dev/null; ARCH=${myARCH}; fi } mlive mod 2.4.0 PasteShr mlive mod 2.4.0 getfilevar_noexec () { local ERROR basefname basedname mycat myARCH="${ARCH}"; ERROR=0; mycat='cat'; [ -z "${1}" ] && ERROR=1; [ ! -f "${2}" ] && ERROR=1; [ "${2%.gz}" != "${2}" ] && mycat='zcat'; if [ "${ERROR}" = 1 ]; then echo -e "\n"; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 eerror "getfilevar_noexec requires 2 variables, with the second a valid file."; eerror " getfilevar_noexec "; else ${mycat} "${2}" | sed -n -e "/^[[:space:]]*${1}[[:space:]]*:\\?=[[:space:]]*\(.*\)\$/{ s,^[^=]*[[:space:]]*=[[:space:]]*,,g ; s,[[:space:]]*\$,,g ; p }"; fi } mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 has_multilib_profile () { [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ] } in_iuse () { local use=${1}; if [[ -z "${use}" ]]; then echo "!!! in_iuse() called without a parameter." 1>&2; echo "!!! in_iuse " 1>&2; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 die "in_iuse() called without a parameter"; fi; local liuse=(${IUSE_EFFECTIVE}); has "${use}" "${liuse[@]#[+-]}" } is-flag () { is-flagq "$@" && echo true } is-flagq () mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 { [[ -n $2 ]] && die "Usage: is-flag "; local var; for var in $(all-flag-vars); do _is_flagq ${var} "$1" && return 0; done; return 1 } is-ldflag () mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 { is-ldflagq "$@" && echo true } is-ldflagq () { [[ -n $2 ]] && die "Usage: is-ldflag "; _is_flagq LDFLAGS $1 } is-login-disabled () { mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 _dead_portability_user_funcs } is_final_abi () { has_multilib_profile || return 0; set -- $(get_install_abis); local LAST_ABI=$#; [[ ${!LAST_ABI} == ${ABI} ]] } kernel_is () mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 { if ! use kernel_linux; then die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; fi; linux-info_get_any_version; local operator test value; case ${1#-} in lt) operator="-lt"; shift mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 ;; gt) operator="-gt"; shift ;; le) operator="-le"; shift ;; ge) mlive mod 2.4.0 PasteShr mlive mod 2.4.0 operator="-ge"; shift ;; eq) operator="-eq"; shift ;; *) operator="-eq" ;; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 esac; [[ $# -gt 3 ]] && die "Error in kernel-2_kernel_is(): too many parameters"; : $(( test = (KV_MAJOR << 16) + (KV_MINOR << 8) + KV_PATCH )); : $(( value = (${1:-${KV_MAJOR}} << 16) + (${2:-${KV_MINOR}} << 8) + ${3:-${KV_PATCH}} )); [ ${test} ${operator} ${value} ] } linux-info_get_any_version () { if ! use kernel_linux; then die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 fi; if ! get_version; then ewarn "Unable to calculate Linux Kernel version for build, attempting to use running version"; if ! get_running_version; then die "Unable to determine any Linux Kernel version, please report a bug"; fi; fi } linux-info_pkg_setup () { mlive mod 2.4.0 How to use it? mlive mod 2.4.0 use kernel_linux || return; linux-info_get_any_version; if kernel_is 2 4; then if [ "$( gcc-major-version )" -eq "4" ]; then echo; ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with"; ewarn "linux-2.4 (or modules building against a linux-2.4 kernel)!"; echo; ewarn "Either switch to another gcc-version (via gcc-config) or use a"; ewarn "newer kernel that supports gcc-4."; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 echo; ewarn "Also be aware that bugreports about gcc-4 not working"; ewarn "with linux-2.4 based ebuilds will be closed as INVALID!"; echo; fi; fi; [ -n "${CONFIG_CHECK}" ] && check_extra_config } linux-mod_pkg_postinst () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 debug-print-function ${FUNCNAME} $*; [ -n "${MODULES_OPTIONAL_USE}" ] && use !${MODULES_OPTIONAL_USE} && return; ${UPDATE_DEPMOD} && update_depmod; ${UPDATE_MODULEDB} && update_moduledb } linux-mod_pkg_postrm () { debug-print-function ${FUNCNAME} $*; [ -n "${MODULES_OPTIONAL_USE}" ] && use !${MODULES_OPTIONAL_USE} && return; remove_moduledb mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 } linux-mod_pkg_preinst () { debug-print-function ${FUNCNAME} $*; [ -n "${MODULES_OPTIONAL_USE}" ] && use !${MODULES_OPTIONAL_USE} && return; [ -d "${D%/}/lib/modules" ] && UPDATE_DEPMOD=true || UPDATE_DEPMOD=false; [ -d "${D%/}/lib/modules" ] && UPDATE_MODULEDB=true || UPDATE_MODULEDB=false } linux-mod_pkg_setup () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 debug-print-function ${FUNCNAME} $*; [ -n "${MODULES_OPTIONAL_USE}" ] && use !${MODULES_OPTIONAL_USE} && return; local is_bin="${MERGE_TYPE}"; if has ${EAPI} 0 1 2 3; then is_bin=${EMERGE_FROM}; fi; if [[ ${is_bin} == binary ]]; then linux-mod_pkg_setup_binary; return; fi; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 CONFIG_CHECK+=" !TRIM_UNUSED_KSYMS"; linux-info_pkg_setup; require_configured_kernel; check_kernel_built; strip_modulenames; [[ -n ${MODULE_NAMES} ]] && check_modules_supported; set_kvobj } linux-mod_pkg_setup_binary () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 debug-print-function ${FUNCNAME} $*; local new_CONFIG_CHECK; for config in $CONFIG_CHECK; do optional='~'; [[ ${config:0:1} == "~" ]] && optional=''; new_CONFIG_CHECK="${new_CONFIG_CHECK} ${optional}${config}"; done; CONFIG_CHECK="${new_CONFIG_CHECK}"; linux-info_pkg_setup mlive mod 2.4.0 How to get it? mlive mod 2.4.0 } linux-mod_src_compile () { debug-print-function ${FUNCNAME} $*; [ -n "${MODULES_OPTIONAL_USE}" ] && use !${MODULES_OPTIONAL_USE} && return; local modulename libdir srcdir objdir i n myABI="${ABI}"; set_arch_to_kernel; ABI="${KERNEL_ABI}"; [[ -n ${KERNEL_DIR} ]] && addpredict "${KERNEL_DIR}/null.dwo"; BUILD_TARGETS=${BUILD_TARGETS:-clean module}; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 strip_modulenames; cd "${S}"; touch Module.symvers; for i in ${MODULE_NAMES}; do unset libdir srcdir objdir; for n in $(find_module_params ${i}); do eval ${n/:*}=${n/*:/}; done; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 libdir=${libdir:-misc}; srcdir=${srcdir:-${S}}; objdir=${objdir:-${srcdir}}; if [ ! -f "${srcdir}/.built" ]; then cd "${srcdir}"; ln -s "${S}"/Module.symvers Module.symvers; einfo "Preparing ${modulename} module"; if [[ -n ${ECONF_PARAMS} ]]; then econf ${ECONF_PARAMS} || die "Unable to run econf ${ECONF_PARAMS}"; fi; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 eval "emake HOSTCC=\"$(tc-getBUILD_CC)\" CROSS_COMPILE=${CHOST}- LDFLAGS=\"$(get_abi_LDFLAGS)\" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} " || die "Unable to emake HOSTCC="$(tc-getBUILD_CC)" CROSS_COMPILE=${CHOST}- LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}"; cd "${OLDPWD}"; touch "${srcdir}"/.built; fi; done; set_arch_to_portage; ABI="${myABI}" } linux-mod_src_install () { mlive mod 2.4.0 How to use it? mlive mod 2.4.0 debug-print-function ${FUNCNAME} $*; [ -n "${MODULES_OPTIONAL_USE}" ] && use !${MODULES_OPTIONAL_USE} && return; local modulename libdir srcdir objdir i n; [[ -n ${KERNEL_DIR} ]] && addpredict "${KERNEL_DIR}/null.dwo"; strip_modulenames; for i in ${MODULE_NAMES}; do unset libdir srcdir objdir; for n in $(find_module_params ${i}); do mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 eval ${n/:*}=${n/*:/}; done; libdir=${libdir:-misc}; srcdir=${srcdir:-${S}}; objdir=${objdir:-${srcdir}}; einfo "Installing ${modulename} module"; cd "${objdir}" || die "${objdir} does not exist"; insinto /lib/modules/${KV_FULL}/${libdir}; doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed"; cd "${OLDPWD}"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 generate_modulesd "${objdir}/${modulename}"; done } linux_chkconfig_builtin () { linux_config_qa_check linux_chkconfig_builtin; [[ $(getfilevar_noexec "CONFIG_$1" "$(linux_config_path)") == y ]] } linux_chkconfig_module () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 linux_config_qa_check linux_chkconfig_module; [[ $(getfilevar_noexec "CONFIG_$1" "$(linux_config_path)") == m ]] } linux_chkconfig_present () { linux_config_qa_check linux_chkconfig_present; [[ $(getfilevar_noexec "CONFIG_$1" "$(linux_config_path)") == [my] ]] } linux_chkconfig_string () { mlive mod 2.4.0 How to use it? mlive mod 2.4.0 linux_config_qa_check linux_chkconfig_string; getfilevar_noexec "CONFIG_$1" "$(linux_config_path)" } linux_config_bin_exists () { export _LINUX_CONFIG_EXISTS_DONE=1; use kernel_linux && [[ -s /proc/config.gz ]] } linux_config_exists () { mlive mod 2.4.0 How to use it? mlive mod 2.4.0 linux_config_src_exists || linux_config_bin_exists } linux_config_path () { if linux_config_src_exists; then echo "${KV_OUT_DIR}/.config"; else if linux_config_bin_exists; then echo "/proc/config.gz"; else mlive mod 2.4.0 PasteShr mlive mod 2.4.0 return 1; fi; fi } linux_config_qa_check () { local f="$1"; if [ -z "${_LINUX_CONFIG_EXISTS_DONE}" ]; then ewarn "QA: You called $f before any linux_config_exists!"; ewarn "QA: The return value of $f will NOT guaranteed later!"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 fi; if ! use kernel_linux; then die "$f called on non-Linux system, please fix the ebuild"; fi } linux_config_src_exists () { export _LINUX_CONFIG_EXISTS_DONE=1; use kernel_linux && [[ -n ${KV_OUT_DIR} && -s ${KV_OUT_DIR}/.config ]] } mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 make_desktop_entry () { [[ -z $1 ]] && die "make_desktop_entry: You must specify the executable"; local exec=${1}; local name=${2:-${PN}}; local icon=${3:-${PN}}; local type=${4}; local fields=${5}; if [[ -z ${type} ]]; then local catmaj=${CATEGORY%%-*}; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 local catmin=${CATEGORY##*-}; case ${catmaj} in app) case ${catmin} in accessibility) type="Utility;Accessibility" ;; admin) type=System ;; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 antivirus) type=System ;; arch) type="Utility;Archiving" ;; backup) type="Utility;Archiving" ;; cdr) mlive mod 2.4.0 PasteShr mlive mod 2.4.0 type="AudioVideo;DiscBurning" ;; dicts) type="Office;Dictionary" ;; doc) type=Documentation ;; editors) type="Utility;TextEditor" mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 ;; emacs) type="Development;TextEditor" ;; emulation) type="System;Emulator" ;; laptop) type="Settings;HardwareSettings" ;; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 office) type=Office ;; pda) type="Office;PDA" ;; vim) type="Development;TextEditor" ;; xemacs) mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 type="Development;TextEditor" ;; esac ;; dev) type="Development" ;; games) case ${catmin} in action | fps) mlive mod 2.4.0 How to get it? mlive mod 2.4.0 type=ActionGame ;; arcade) type=ArcadeGame ;; board) type=BoardGame ;; emulation) type=Emulator mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 ;; kids) type=KidsGame ;; puzzle) type=LogicGame ;; roguelike) type=RolePlaying ;; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 rpg) type=RolePlaying ;; simulation) type=Simulation ;; sports) type=SportsGame ;; strategy) mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 type=StrategyGame ;; esac; type="Game;${type}" ;; gnome) type="Gnome;GTK" ;; kde) type="KDE;Qt" mlive mod 2.4.0 PasteShr mlive mod 2.4.0 ;; mail) type="Network;Email" ;; media) case ${catmin} in gfx) type=Graphics ;; *) mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 case ${catmin} in radio) type=Tuner ;; sound) type=Audio ;; tv) type=TV ;; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 video) type=Video ;; esac; type="AudioVideo;${type}" ;; esac ;; net) case ${catmin} in mlive mod 2.4.0 PasteShr mlive mod 2.4.0 dialup) type=Dialup ;; ftp) type=FileTransfer ;; im) type=InstantMessaging ;; irc) mlive mod 2.4.0 How to get it? mlive mod 2.4.0 type=IRCClient ;; mail) type=Email ;; news) type=News ;; nntp) type=News mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ;; p2p) type=FileTransfer ;; voip) type=Telephony ;; esac; type="Network;${type}" ;; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 sci) case ${catmin} in astro*) type=Astronomy ;; bio*) type=Biology ;; calc*) type=Calculator mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 ;; chem*) type=Chemistry ;; elec*) type=Electronics ;; geo*) type=Geology ;; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 math*) type=Math ;; physics) type=Physics ;; visual*) type=DataVisualization ;; esac; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 type="Education;Science;${type}" ;; sys) type="System" ;; www) case ${catmin} in client) type=WebBrowser ;; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 esac; type="Network;${type}" ;; *) type= ;; esac; fi; local slot=${SLOT%/*}; if [[ ${slot} == "0" ]]; then mlive mod 2.4.0 How to get it? mlive mod 2.4.0 local desktop_name="${PN}"; else local desktop_name="${PN}-${slot}"; fi; local desktop="${exec%%[[:space:]]*}"; desktop="${T}/${desktop##*/}-${desktop_name}.desktop"; type=${type%;}${type:+;}; if [[ -n ${icon} && ${icon} != /* ]] && [[ ${icon} == *.xpm || ${icon} == *.png || ${icon} == *.svg ]]; then ewarn "As described in the Icon Theme Specification, icon file extensions are not"; ewarn "allowed in .desktop files if the value is not an absolute path."; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 icon=${icon%.*}; fi; cat <<-EOF > "${desktop}" || [Desktop Entry] Name=${name} Type=Application Comment=${DESCRIPTION} Exec=${exec} TryExec=${exec%% *} Icon=${icon} mlive mod 2.4.0 How to get it? mlive mod 2.4.0 Categories=${type} EOF die if [[ ${fields:-=} != *=* ]]; then ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}"; fields="Path=${fields}"; fi; if [[ -n ${fields} ]]; then printf '%b\n' "${fields}" >> "${desktop}" || die; fi; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 ( insopts -m 0644; insinto /usr/share/applications; doins "${desktop}" ) || die "installing desktop file failed" } make_session_desktop () { [[ -z $1 ]] && eerror "$0: You must specify the title" && return 1; [[ -z $2 ]] && eerror "$0: You must specify the command" && return 1; local title=$1; local command=$2; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 local desktop=${T}/${wm:-${PN}}.desktop; shift 2; cat <<-EOF > "${desktop}" || [Desktop Entry] Name=${title} Comment=This session logs you into ${title} Exec=${command} $* TryExec=${command} Type=XSession EOF mlive mod 2.4.0 How to get it? mlive mod 2.4.0 die ( insopts -m 0644; insinto /usr/share/xsessions; doins "${desktop}" ) } make_wrapper () { local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5; local tmpwrapper=$(emktemp); has "${EAPI:-0}" 0 1 2 && local EPREFIX=""; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ( echo '#!/bin/sh'; if [[ -n ${libdir} ]]; then local var; if [[ ${CHOST} == *-darwin* ]]; then var=DYLD_LIBRARY_PATH; else var=LD_LIBRARY_PATH; fi; cat <<-EOF if [ "\${${var}+set}" = "set" ] ; then mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 export ${var}="\${${var}}:${EPREFIX}${libdir}" else export ${var}="${EPREFIX}${libdir}" fi EOF fi [[ -n ${chdir} ]] && printf 'cd "%s" &&\n' "${EPREFIX}${chdir}"; printf 'exec %s "$@"\n' "${bin/#\//${EPREFIX}/}" ) > "${tmpwrapper}"; chmod go+rx "${tmpwrapper}"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 if [[ -n ${path} ]]; then ( exeopts -m 0755; exeinto "${path}"; newexe "${tmpwrapper}" "${wrapper}" ) || die; else newbin "${tmpwrapper}" "${wrapper}" || die; fi } move_old_moduledb () { mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 debug-print-function ${FUNCNAME} $*; local OLDDIR="${ROOT%/}"/usr/share/module-rebuild; local NEWDIR="${ROOT%/}"/var/lib/module-rebuild; if [[ -f "${OLDDIR}"/moduledb ]]; then [[ ! -d "${NEWDIR}" ]] && mkdir -p "${NEWDIR}"; [[ ! -f "${NEWDIR}"/moduledb ]] && mv "${OLDDIR}"/moduledb "${NEWDIR}"/moduledb; rm -f "${OLDDIR}"/*; rmdir "${OLDDIR}"; fi } mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 multibuild_copy_sources () { debug-print-function ${FUNCNAME} "${@}"; local _MULTIBUILD_INITIAL_BUILD_DIR=${BUILD_DIR:-${S}}; einfo "Will copy sources from ${_MULTIBUILD_INITIAL_BUILD_DIR}"; local cp_args=(); if cp --reflink=auto --version &> /dev/null; then cp_args+=(--reflink=auto); fi; function _multibuild_create_source_copy () mlive mod 2.4.0 PasteShr mlive mod 2.4.0 { einfo "${MULTIBUILD_VARIANT}: copying to ${BUILD_DIR}"; cp -p -R "${cp_args[@]}" "${_MULTIBUILD_INITIAL_BUILD_DIR}" "${BUILD_DIR}" || die }; multibuild_foreach_variant _multibuild_create_source_copy } multibuild_for_best_variant () { debug-print-function ${FUNCNAME} "${@}"; [[ -n ${MULTIBUILD_VARIANTS} ]] || die "MULTIBUILD_VARIANTS need to be set"; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 local MULTIBUILD_VARIANTS=("${MULTIBUILD_VARIANTS[$(( ${#MULTIBUILD_VARIANTS[@]} - 1 ))]}"); multibuild_foreach_variant "${@}" } multibuild_foreach_variant () { debug-print-function ${FUNCNAME} "${@}"; [[ -n ${MULTIBUILD_VARIANTS} ]] || die "MULTIBUILD_VARIANTS need to be set"; local bdir=${BUILD_DIR:-${S}}; [[ ${bdir%%/} == ${WORKDIR%%/} ]] && bdir=${WORKDIR}/build; local prev_id=${MULTIBUILD_ID:+${MULTIBUILD_ID}-}; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 local ret=0 lret=0 v; debug-print "${FUNCNAME}: initial build_dir = ${bdir}"; for v in "${MULTIBUILD_VARIANTS[@]}"; do local MULTIBUILD_VARIANT=${v}; local MULTIBUILD_ID=${prev_id}${v}; local BUILD_DIR=${bdir%%/}-${v}; function _multibuild_run () { local i=1; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 while [[ ${!i} == _* ]]; do (( i += 1 )); done; [[ ${i} -le ${#} ]] && einfo "${v}: running ${@:${i}}"; "${@}" }; _multibuild_run "${@}" > >(exec tee -a "${T}/build-${MULTIBUILD_ID}.log") 2>&1; lret=${?}; done; [[ ${ret} -eq 0 && ${lret} -ne 0 ]] && ret=${lret}; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 return ${ret} } multibuild_merge_root () { local src=${1}; local dest=${2}; local ret; if use userland_BSD; then tar -C "${src}" -f - -c . | tar -x -f - -C "${dest}"; [[ ${PIPESTATUS[*]} == '0 0' ]]; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ret=${?}; else local cp_args=(); if cp -a --version &> /dev/null; then cp_args+=(-a); else cp_args+=(-P -R -p); fi; if cp --reflink=auto --version &> /dev/null; then cp_args+=(--reflink=auto); mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fi; cp "${cp_args[@]}" "${src}"/. "${dest}"/; ret=${?}; fi; if [[ ${ret} -ne 0 ]]; then die "${MULTIBUILD_VARIANT:-(unknown)}: merging image failed."; fi; rm -rf "${src}" } multibuild_parallel_foreach_variant () mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 { debug-print-function ${FUNCNAME} "${@}"; [[ ${EAPI} == [45] ]] || die "${FUNCNAME} is banned in EAPI ${EAPI}"; multibuild_foreach_variant "${@}" } multilib-minimal_src_compile () { debug-print-function ${FUNCNAME} "$@"; function multilib-minimal_abi_src_compile () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 debug-print-function ${FUNCNAME} "$@"; pushd "${BUILD_DIR}" > /dev/null || die; if declare -f multilib_src_compile > /dev/null; then multilib_src_compile; else default_src_compile; fi; popd > /dev/null || die }; multilib_foreach_abi multilib-minimal_abi_src_compile mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 } multilib-minimal_src_configure () { debug-print-function ${FUNCNAME} "$@"; function multilib-minimal_abi_src_configure () { debug-print-function ${FUNCNAME} "$@"; mkdir -p "${BUILD_DIR}" || die; pushd "${BUILD_DIR}" > /dev/null || die; if declare -f multilib_src_configure > /dev/null; then mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 multilib_src_configure; else default_src_configure; fi; popd > /dev/null || die }; multilib_foreach_abi multilib-minimal_abi_src_configure } multilib-minimal_src_install () { mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 debug-print-function ${FUNCNAME} "$@"; function multilib-minimal_abi_src_install () { debug-print-function ${FUNCNAME} "$@"; pushd "${BUILD_DIR}" > /dev/null || die; if declare -f multilib_src_install > /dev/null; then multilib_src_install; else if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then emake DESTDIR="${D}" install; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 fi; fi; multilib_prepare_wrappers; multilib_check_headers; popd > /dev/null || die }; multilib_foreach_abi multilib-minimal_abi_src_install; multilib_install_wrappers; if declare -f multilib_src_install_all > /dev/null; then multilib_src_install_all; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 else einstalldocs; fi } multilib-minimal_src_test () { debug-print-function ${FUNCNAME} "$@"; function multilib-minimal_abi_src_test () { debug-print-function ${FUNCNAME} "$@"; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 pushd "${BUILD_DIR}" > /dev/null || die; if declare -f multilib_src_test > /dev/null; then multilib_src_test; else default_src_test; fi; popd > /dev/null || die }; multilib_foreach_abi multilib-minimal_abi_src_test } mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 multilib_build_binaries () { debug-print-function ${FUNCNAME} "${@}"; [[ ${EAPI} == [45] ]] || die "${FUNCNAME} is banned in EAPI ${EAPI}, use multilib_is_native_abi() instead"; eqawarn "QA warning: multilib_build_binaries is deprecated. Please use the equivalent"; eqawarn "multilib_is_native_abi function instead."; multilib_is_native_abi "${@}" } multilib_check_headers () { mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 function _multilib_header_cksum () { set -o pipefail; if [[ -d ${ED%/}/usr/include ]]; then find "${ED%/}"/usr/include -type f -exec cksum {} + | sort -k2; fi }; local cksum cksum_prev; local cksum_file=${T}/.multilib_header_cksum; cksum=$(_multilib_header_cksum) || die; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 unset -f _multilib_header_cksum; if [[ -f ${cksum_file} ]]; then cksum_prev=$(< "${cksum_file}") || die; if [[ ${cksum} != ${cksum_prev} ]]; then echo "${cksum}" > "${cksum_file}.new" || die; eerror "Header files have changed between ABIs."; if type -p diff &> /dev/null; then eerror "$(diff -du "${cksum_file}" "${cksum_file}.new")"; else eerror "Old checksums in: ${cksum_file}"; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 eerror "New checksums in: ${cksum_file}.new"; fi; die "Header checksum mismatch, aborting."; fi; else echo "${cksum}" > "${cksum_file}" || die; fi } multilib_copy_sources () { mlive mod 2.4.0 How to use it? mlive mod 2.4.0 debug-print-function ${FUNCNAME} "${@}"; local MULTIBUILD_VARIANTS=($(multilib_get_enabled_abi_pairs)); multibuild_copy_sources } multilib_env () { local CTARGET=${1:-${CTARGET}}; local cpu=${CTARGET%%*-}; if [[ ${CTARGET} = *-musl* ]]; then : ${MULTILIB_ABIS=default}; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 : ${DEFAULT_ABI=default}; export MULTILIB_ABIS DEFAULT_ABI; return; fi; case ${cpu} in aarch64*) export CFLAGS_arm=${CFLAGS_arm-}; case ${cpu} in aarch64*be) export CHOST_arm="armv8b-${CTARGET#*-}" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 ;; *) export CHOST_arm="armv8l-${CTARGET#*-}" ;; esac; CHOST_arm=${CHOST_arm/%-gnu/-gnueabi}; export CTARGET_arm=${CHOST_arm}; export LIBDIR_arm="lib"; export CFLAGS_arm64=${CFLAGS_arm64-}; export CHOST_arm64=${CTARGET}; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 export CTARGET_arm64=${CHOST_arm64}; export LIBDIR_arm64="lib64"; : ${MULTILIB_ABIS=arm64}; : ${DEFAULT_ABI=arm64} ;; x86_64*) export CFLAGS_x86=${CFLAGS_x86--m32}; export CHOST_x86=${CTARGET/x86_64/i686}; CHOST_x86=${CHOST_x86/%-gnux32/-gnu}; export CTARGET_x86=${CHOST_x86}; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 if [[ ${SYMLINK_LIB} == "yes" ]]; then export LIBDIR_x86="lib32"; else export LIBDIR_x86="lib"; fi; export CFLAGS_amd64=${CFLAGS_amd64--m64}; export CHOST_amd64=${CTARGET/%-gnux32/-gnu}; export CTARGET_amd64=${CHOST_amd64}; export LIBDIR_amd64="lib64"; export CFLAGS_x32=${CFLAGS_x32--mx32}; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 export CHOST_x32=${CTARGET/%-gnu/-gnux32}; export CTARGET_x32=${CHOST_x32}; export LIBDIR_x32="libx32"; case ${CTARGET} in *-gnux32) : ${MULTILIB_ABIS=x32 amd64 x86}; : ${DEFAULT_ABI=x32} ;; *) : ${MULTILIB_ABIS=amd64 x86}; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 : ${DEFAULT_ABI=amd64} ;; esac ;; mips64* | mipsisa64*) export CFLAGS_o32=${CFLAGS_o32--mabi=32}; export CHOST_o32=${CTARGET/mips64/mips}; export CHOST_o32=${CHOST_o32/mipsisa64/mipsisa32}; export CTARGET_o32=${CHOST_o32}; export LIBDIR_o32="lib"; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 export CFLAGS_n32=${CFLAGS_n32--mabi=n32}; export CHOST_n32=${CTARGET}; export CTARGET_n32=${CHOST_n32}; export LIBDIR_n32="lib32"; export CFLAGS_n64=${CFLAGS_n64--mabi=64}; export CHOST_n64=${CTARGET}; export CTARGET_n64=${CHOST_n64}; export LIBDIR_n64="lib64"; : ${MULTILIB_ABIS=n64 n32 o32}; : ${DEFAULT_ABI=n32} mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ;; powerpc64*) export CFLAGS_ppc=${CFLAGS_ppc--m32}; export CHOST_ppc=${CTARGET/powerpc64/powerpc}; export CTARGET_ppc=${CHOST_ppc}; export LIBDIR_ppc="lib"; export CFLAGS_ppc64=${CFLAGS_ppc64--m64}; export CHOST_ppc64=${CTARGET}; export CTARGET_ppc64=${CHOST_ppc64}; export LIBDIR_ppc64="lib64"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 : ${MULTILIB_ABIS=ppc64 ppc}; : ${DEFAULT_ABI=ppc64} ;; riscv64*) export CFLAGS_lp64d=${CFLAGS_lp64d--mabi=lp64d}; export CHOST_lp64d=${CTARGET}; export CTARGET_lp64d=${CTARGET}; export LIBDIR_lp64d="lib64/lp64d"; export CFLAGS_lp64=${CFLAGS_lp64--mabi=lp64}; export CHOST_lp64=${CTARGET}; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 export CTARGET_lp64=${CTARGET}; export LIBDIR_lp64="lib64/lp64"; : ${MULTILIB_ABIS=lp64d lp64}; : ${DEFAULT_ABI=lp64d} ;; s390x*) export CFLAGS_s390=${CFLAGS_s390--m31}; export CHOST_s390=${CTARGET/s390x/s390}; export CTARGET_s390=${CHOST_s390}; export LIBDIR_s390="lib"; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 export CFLAGS_s390x=${CFLAGS_s390x--m64}; export CHOST_s390x=${CTARGET}; export CTARGET_s390x=${CHOST_s390x}; export LIBDIR_s390x="lib64"; : ${MULTILIB_ABIS=s390x s390}; : ${DEFAULT_ABI=s390x} ;; sparc64*) export CFLAGS_sparc32=${CFLAGS_sparc32--m32}; export CHOST_sparc32=${CTARGET/sparc64/sparc}; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 export CTARGET_sparc32=${CHOST_sparc32}; export LIBDIR_sparc32="lib"; export CFLAGS_sparc64=${CFLAGS_sparc64--m64}; export CHOST_sparc64=${CTARGET}; export CTARGET_sparc64=${CHOST_sparc64}; export LIBDIR_sparc64="lib64"; : ${MULTILIB_ABIS=sparc64 sparc32}; : ${DEFAULT_ABI=sparc64} ;; *) mlive mod 2.4.0 How to use it? mlive mod 2.4.0 : ${MULTILIB_ABIS=default}; : ${DEFAULT_ABI=default} ;; esac; export MULTILIB_ABIS DEFAULT_ABI } multilib_for_best_abi () { debug-print-function ${FUNCNAME} "${@}"; [[ ${EAPI} == [45] ]] || die "${FUNCNAME} is banned in EAPI ${EAPI}, use multilib_is_native_abi() instead"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 eqawarn "QA warning: multilib_for_best_abi() function is deprecated and should"; eqawarn "not be used. The multilib_is_native_abi() check may be used instead."; local MULTIBUILD_VARIANTS=($(multilib_get_enabled_abi_pairs)); multibuild_for_best_variant _multilib_multibuild_wrapper "${@}" } multilib_foreach_abi () { debug-print-function ${FUNCNAME} "${@}"; local MULTIBUILD_VARIANTS=($(multilib_get_enabled_abi_pairs)); multibuild_foreach_variant _multilib_multibuild_wrapper "${@}" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } multilib_get_enabled_abi_pairs () { debug-print-function ${FUNCNAME} "${@}"; local abis=($(get_all_abis)); local abi i found; for abi in "${abis[@]}"; do for i in "${_MULTILIB_FLAGS[@]}"; do mlive mod 2.4.0 How to use it? mlive mod 2.4.0 local m_abis=${i#*:} m_abi; local m_flag=${i%:*}; for m_abi in ${m_abis//,/ }; do if [[ ${m_abi} == ${abi} ]] && { [[ ! -n "${MULTILIB_COMPAT[@]}" ]] || has "${m_flag}" "${MULTILIB_COMPAT[@]}" } && use "${m_flag}"; then echo "${m_flag}.${abi}"; found=1; break 2; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 fi; done; done; done; if [[ ! -n ${found} ]]; then local abi=${ABI:-${DEFAULT_ABI}}; debug-print "${FUNCNAME}: no ABIs enabled, fallback to ${abi}"; debug-print "${FUNCNAME}: ABI=${ABI}, DEFAULT_ABI=${DEFAULT_ABI}"; echo ".${abi}"; fi mlive mod 2.4.0 PasteShr mlive mod 2.4.0 } multilib_get_enabled_abis () { debug-print-function ${FUNCNAME} "${@}"; local pairs=($(multilib_get_enabled_abi_pairs)); echo "${pairs[@]#*.}" } multilib_install_wrappers () { debug-print-function ${FUNCNAME} "${@}"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 [[ ${#} -le 1 ]] || die "${FUNCNAME}: too many arguments"; [[ ${COMPLETE_MULTILIB} == yes ]] && return; local root=${1:-${ED}}; if [[ -d ${ED%/}/tmp/multilib-include ]]; then multibuild_merge_root "${ED%/}"/tmp/multilib-include "${root}"/usr/include; rmdir "${ED%/}"/tmp &> /dev/null; fi } multilib_is_native_abi () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 debug-print-function ${FUNCNAME} "${@}"; [[ ${#} -eq 0 ]] || die "${FUNCNAME}: too many arguments"; [[ ${COMPLETE_MULTILIB} == yes || ${ABI} == ${DEFAULT_ABI} ]] } multilib_native_enable () { if multilib_is_native_abi; then echo "--enable-${1}${2+=${2}}"; else echo "--disable-${1}"; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fi } multilib_native_use_enable () { if multilib_is_native_abi; then use_enable "${@}"; else echo "--disable-${2:-${1}}"; fi } mlive mod 2.4.0 How to use it? mlive mod 2.4.0 multilib_native_use_with () { if multilib_is_native_abi; then use_with "${@}"; else echo "--without-${2:-${1}}"; fi } multilib_native_usex () { mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 if multilib_is_native_abi; then usex "${@}"; else echo "${3-no}${5}"; fi } multilib_native_with () { if multilib_is_native_abi; then echo "--with-${1}${2+=${2}}"; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 else echo "--without-${1}"; fi } multilib_parallel_foreach_abi () { debug-print-function ${FUNCNAME} "${@}"; local MULTIBUILD_VARIANTS=($(multilib_get_enabled_abi_pairs)); multibuild_foreach_variant _multilib_multibuild_wrapper "${@}" } mlive mod 2.4.0 PasteShr mlive mod 2.4.0 multilib_prepare_wrappers () { debug-print-function ${FUNCNAME} "${@}"; [[ ${#} -le 1 ]] || die "${FUNCNAME}: too many arguments"; local root=${1:-${ED%/}}; local f; if [[ ${COMPLETE_MULTILIB} == yes ]]; then for f in "${MULTILIB_CHOST_TOOLS[@]}"; do f=${f#/}; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 local dir=${f%/*}; local fn=${f##*/}; ln -s "${fn}" "${root}/${dir}/${CHOST}-${fn}" || die; done; return; fi; for f in "${MULTILIB_CHOST_TOOLS[@]}"; do f=${f#/}; local dir=${f%/*}; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 local fn=${f##*/}; if [[ -L ${root}/${f} ]]; then local target; target=$(readlink "${root}/${f}") || die; local target_dir target_fn=${target##*/}; [[ ${target} == */* ]] && target_dir=${target%/*}; ln -f -s "${target_dir+${target_dir}/}${CHOST}-${target_fn}" "${root}/${f}" || die; fi; mv "${root}/${f}" "${root}/${dir}/${CHOST}-${fn}" || die; if multilib_is_native_abi; then mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 ln -s "${CHOST}-${fn}" "${root}/${f}" || die; fi; done; if [[ -n ${MULTILIB_WRAPPED_HEADERS[@]} ]]; then if [[ -n ${MULTILIB_ABI_FLAG} ]]; then for f in "${MULTILIB_WRAPPED_HEADERS[@]}"; do f=${f#/}; if [[ ${f} != usr/include/* ]]; then die "Wrapping headers outside of /usr/include is not supported at the moment."; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 fi; f=${f#usr/include}; local dir=${f%/*}; if [[ -f ${root}/usr/include${f} ]]; then local wrapper=${ED%/}/tmp/multilib-include${f}; if [[ ! -f ${ED%/}/tmp/multilib-include${f} ]]; then dodir "/tmp/multilib-include${dir}"; cat > "${wrapper}" <<_EOF_ || /* This file is auto-generated by multilib-build.eclass * as a multilib-friendly wrapper. For the original content, mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 * please see the files that are #included below. */ #if defined(__x86_64__) /* amd64 */ # if defined(__ILP32__) /* x32 ABI */ # error "abi_x86_x32 not supported by the package." # else /* 64-bit ABI */ # error "abi_x86_64 not supported by the package." # endif #elif defined(__i386__) /* plain x86 */ mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 # error "abi_x86_32 not supported by the package." #elif defined(__mips__) # if(_MIPS_SIM == _ABIN32) /* n32 */ # error "abi_mips_n32 not supported by the package." # elif(_MIPS_SIM == _ABI64) /* n64 */ # error "abi_mips_n64 not supported by the package." # elif(_MIPS_SIM == _ABIO32) /* o32 */ # error "abi_mips_o32 not supported by the package." # endif #elif defined(__riscv) mlive mod 2.4.0 How to get it? mlive mod 2.4.0 # if defined(__riscv_float_abi_double) # error "abi_riscv_lp64d not supported by the package." # elif defined(__riscv_float_abi_single) # error "abi_riscv_lp64f not supported by the package." # else # error "abi_riscv_lp64 not supported by the package." # endif #elif defined(__sparc__) # if defined(__arch64__) # error "abi_sparc_64 not supported by the package." mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 # else # error "abi_sparc_32 not supported by the package." # endif #elif defined(__s390__) # if defined(__s390x__) # error "abi_s390_64 not supported by the package." # else # error "abi_s390_32 not supported by the package." # endif #elif defined(__powerpc__) || defined(__ppc__) mlive mod 2.4.0 PasteShr mlive mod 2.4.0 # if defined(__powerpc64__) || defined(__ppc64__) # error "abi_ppc_64 not supported by the package." # else # error "abi_ppc_32 not supported by the package." # endif #elif defined(SWIG) /* https://sourceforge.net/p/swig/bugs/799/ */ # error "Native ABI not supported by the package." #else # error "No ABI matched, please report a bug to bugs.gentoo.org" #endif mlive mod 2.4.0 How to get it? mlive mod 2.4.0 _EOF_ die; fi if ! grep -q "${MULTILIB_ABI_FLAG} " "${wrapper}"; then die "Flag ${MULTILIB_ABI_FLAG} not listed in wrapper template. Please report a bug to https://bugs.gentoo.org."; fi; dodir "/tmp/multilib-include/${CHOST}${dir}"; mv "${root}/usr/include${f}" "${ED%/}/tmp/multilib-include/${CHOST}${dir}/" || die; sed -e "/${MULTILIB_ABI_FLAG} /s&error.*&include <${CHOST}${f}>&" -i "${wrapper}" || die; if multilib_is_native_abi; then mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 sed -e "/Native ABI/s&error.*&include <${CHOST}${f}>&" -i "${wrapper}" || die; fi; fi; done; fi; fi } multilib_toolchain_setup () { local v vv; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 export ABI=$1; local save_restore_variables=(CBUILD CHOST AR CC CXX F77 FC LD NM OBJDUMP PKG_CONFIG RANLIB READELF STRINGS STRIP PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG_SYSTEM_LIBRARY_PATH); if [[ ${_DEFAULT_ABI_SAVED} == "true" ]]; then for v in "${save_restore_variables[@]}"; do vv="_abi_saved_${v}"; [[ ${!vv+set} == "set" ]] && export ${v}="${!vv}" || unset ${v}; unset ${vv}; done; unset _DEFAULT_ABI_SAVED; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 fi; if [[ ${ABI} != ${DEFAULT_ABI} ]]; then for v in "${save_restore_variables[@]}"; do vv="_abi_saved_${v}"; [[ ${!v+set} == "set" ]] && export ${vv}="${!v}" || unset ${vv}; done; export _DEFAULT_ABI_SAVED="true"; if [[ ${CBUILD} == "${CHOST}" ]]; then export CBUILD=$(get_abi_CHOST $1); mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fi; export CHOST=$(get_abi_CHOST ${DEFAULT_ABI}); export AR="$(tc-getAR)"; export CC="$(tc-getCC) $(get_abi_CFLAGS)"; export CXX="$(tc-getCXX) $(get_abi_CFLAGS)"; export F77="$(tc-getF77) $(get_abi_CFLAGS)"; export FC="$(tc-getFC) $(get_abi_CFLAGS)"; export LD="$(tc-getLD) $(get_abi_LDFLAGS)"; export NM="$(tc-getNM)"; export OBJDUMP="$(tc-getOBJDUMP)"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 export PKG_CONFIG="$(tc-getPKG_CONFIG)"; export RANLIB="$(tc-getRANLIB)"; export READELF="$(tc-getREADELF)"; export STRINGS="$(tc-getSTRINGS)"; export STRIP="$(tc-getSTRIP)"; export CHOST=$(get_abi_CHOST $1); export PKG_CONFIG_LIBDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig; export PKG_CONFIG_PATH=${EPREFIX}/usr/share/pkgconfig; export PKG_CONFIG_SYSTEM_LIBRARY_PATH=${EPREFIX}/usr/$(get_libdir); fi mlive mod 2.4.0 How to get it? mlive mod 2.4.0 } newicon () { _iconins ${FUNCNAME} "$@" } newmenu () { ( insopts -m 0644; insinto /usr/share/applications; newins "$@" ) mlive mod 2.4.0 How to get it? mlive mod 2.4.0 } no-as-needed () { [[ $# -ne 0 ]] && die "no-as-needed takes no arguments"; case $($(tc-getLD) -v 2>&1 /etc/portage/package.mask/nvidia-drivers"; else mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 ewarn "echo \"${nvidia_mask}\" >> /etc/portage/package.mask"; fi; ewarn; ewarn "Failure to perform the steps above could result in a non-working"; ewarn "X setup."; ewarn; ewarn "For more information please read:"; ewarn "http://www.nvidia.com/object/IO_32667.html"; fi; fi mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } nvidia-driver_check_kernel () { if kernel_is ge $(ver_cut 1 ${NV_KV_MAX_PLUS}) $(ver_cut 2 ${NV_KV_MAX_PLUS}); then ewarn "Gentoo supports kernels which are supported by NVIDIA"; ewarn "which are limited to the following kernels:"; ewarn " "${T}"/README.gentoo || die; else local saved_flags=$-; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 set -f; echo -e ${DOC_CONTENTS} | fold -s -w 70 | sed 's/[[:space:]]*$//' > "${T}"/README.gentoo; assert; set +f -${saved_flags}; fi; else if [[ -f "${FILESDIR}/README.gentoo-${SLOT%/*}" ]]; then cp "${FILESDIR}/README.gentoo-${SLOT%/*}" "${T}"/README.gentoo || die; else if [[ -f "${FILESDIR}/README.gentoo${README_GENTOO_SUFFIX}" ]]; then mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 cp "${FILESDIR}/README.gentoo${README_GENTOO_SUFFIX}" "${T}"/README.gentoo || die; else die "You are not specifying README.gentoo contents!"; fi; fi; fi; dodoc "${T}"/README.gentoo; README_GENTOO_DOC_VALUE=$(< "${T}/README.gentoo") } readme.gentoo_print_elog () mlive mod 2.4.0 How to get it? mlive mod 2.4.0 { debug-print-function ${FUNCNAME} "${@}"; if [[ -z "${README_GENTOO_DOC_VALUE}" ]]; then die "readme.gentoo_print_elog invoked without matching readme.gentoo_create_doc call!"; else if ! [[ -n "${REPLACING_VERSIONS}" ]] || [[ -n "${FORCE_PRINT_ELOG}" ]]; then echo -e "${README_GENTOO_DOC_VALUE}" | while read -r ELINE; do elog "${ELINE}"; done; elog ""; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 elog "(Note: Above message is only printed the first time package is"; elog "installed. Please look at ${EPREFIX}/usr/share/doc/${PF}/README.gentoo*"; elog "for future reference)"; fi; fi } remove_moduledb () { debug-print-function ${FUNCNAME} $*; local MODULEDB_DIR="${ROOT%/}"/var/lib/module-rebuild; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 move_old_moduledb; if grep -qs ${CATEGORY}/${PN}-${PVR} "${MODULEDB_DIR}"/moduledb; then einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb."; sed -i -e "/.*${CATEGORY}\/${PN}-${PVR}.*/d" "${MODULEDB_DIR}"/moduledb; fi } replace-cpu-flags () { local newcpu="$#"; newcpu="${!newcpu}"; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 while [ $# -gt 1 ]; do replace-flags "-march=${1}" "-march=${newcpu}"; replace-flags "-mcpu=${1}" "-mcpu=${newcpu}"; replace-flags "-mtune=${1}" "-mtune=${newcpu}"; shift; done; return 0 } replace-flags () { mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 [[ $# != 2 ]] && die "Usage: replace-flags "; local f var new; for var in $(all-flag-vars); do new=(); for f in ${!var}; do [[ ${f} == ${1} ]] && f=${2}; new+=("${f}"); done; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 export ${var}="${new[*]}"; done; return 0 } replace-sparc64-flags () { [[ $# -ne 0 ]] && die "replace-sparc64-flags takes no arguments"; local SPARC64_CPUS="ultrasparc3 ultrasparc v9"; if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then for x in ${SPARC64_CPUS}; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 do CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}"; done; else for x in ${SPARC64_CPUS}; do CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}"; done; fi; if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 for x in ${SPARC64_CPUS}; do CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}"; done; else for x in ${SPARC64_CPUS}; do CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}"; done; fi; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 export CFLAGS CXXFLAGS } require_configured_kernel () { if ! use kernel_linux; then die "${FUNCNAME}() called on non-Linux system, please fix the ebuild"; fi; if ! linux_config_src_exists; then qeerror "Could not find a usable .config in the kernel source directory."; qeerror "Please ensure that ${KERNEL_DIR} points to a configured set of Linux sources."; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 qeerror "If you are using KBUILD_OUTPUT, please set the environment var so that"; qeerror "it points to the necessary object directory so that it might find .config."; die "Kernel not configured; no .config found in ${KV_OUT_DIR}"; fi; get_version || die "Unable to determine configured kernel version" } run_in_build_dir () { debug-print-function ${FUNCNAME} "${@}"; local ret; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 [[ ${#} -ne 0 ]] || die "${FUNCNAME}: no command specified."; [[ -n ${BUILD_DIR} ]] || die "${FUNCNAME}: BUILD_DIR not set."; mkdir -p "${BUILD_DIR}" || die; pushd "${BUILD_DIR}" > /dev/null || die; "${@}"; ret=${?}; popd > /dev/null || die; return ${ret} } seq () mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 { local p=$(type -P seq); if [[ -n ${p} ]]; then "${p}" "$@" || die; return $?; fi; local min max step; case $# in 1) min=1 max=$1 step=1 mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 ;; 2) min=$1 max=$2 step=1 ;; 3) min=$1 max=$3 step=$2 ;; *) die "seq called with wrong number of arguments" ;; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 esac; p=$(type -P jot); if [[ -n ${p} ]]; then local reps; if [[ ${step} != 0 ]]; then reps=$(( (max - min) / step + 1 )); else reps=0; fi; jot $reps $min $max $step || die; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 return $?; fi; while :; do [[ $max -lt $min && $step -gt 0 ]] && break; [[ $min -lt $max && $step -gt 0 ]] && break; echo $min; : $(( min += step )); done; return 0 } mlive mod 2.4.0 How to get it? mlive mod 2.4.0 set_arch_to_kernel () { export ARCH=$(tc-arch-kernel) } set_arch_to_portage () { export ARCH=$(tc-arch) } set_kvobj () { mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 debug-print-function ${FUNCNAME} $*; if kernel_is ge 2 6; then KV_OBJ="ko"; else KV_OBJ="o"; fi } setup-allowed-flags () { ALLOWED_FLAGS=(-pipe -O '-O[12sg]' -mcpu -march -mtune '-fstack-protector*' '-fsanitize*' '-fstack-check*' -fno-stack-check -fbounds-check -fbounds-checking -fno-strict-overflow -fno-PIE -fno-pie -nopie -no-pie -fno-unit-at-a-time -g '-g[0-9]' -ggdb '-ggdb[0-9]' '-gdwarf-*' gstabs -gstabs+ -gz -fno-ident -fpermissive -frecord-gcc-switches '-fdiagnostics*' '-fplugin*' '-W*' -w '-[DUILR]*' '-Wl,*' '-fuse-ld'); mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ALLOWED_FLAGS+=('-fno-stack-protector*' '-fabi-version=*' -fno-strict-aliasing -fno-bounds-check -fno-bounds-checking -fstrict-overflow -fno-omit-frame-pointer '-fno-builtin*'); ALLOWED_FLAGS+=(-mregparm -mno-app-regs -mapp-regs -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-avx -mno-aes -mno-pclmul -mno-sse4a -mno-3dnow -mno-popcnt -mno-abm -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -mplt -msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu -mieee -mieee-with-inexact -mschedule -mfloat-gprs -mspe -mno-spe -mtls-direct-seg-refs -mno-tls-direct-seg-refs -mflat -mno-flat -mno-faster-structs -mfaster-structs -m32 -m64 -mx32 -mabi -mlittle-endian -mbig-endian -EL -EB -fPIC -mlive-g0 -mcmodel -mstack-bias -mno-stack-bias -msecure-plt '-m*-toc' -mfloat-abi -mfix-r4000 -mno-fix-r4000 -mfix-r4400 -mno-fix-r4400 -mfix-rm7000 -mno-fix-rm7000 -mfix-r10000 -mno-fix-r10000 -mr10k-cache-barrier -mthumb -marm -mno-fma4 -mno-movbe -mno-xop -mno-lwp -mno-fsgsbase -mno-rdrnd -mno-f16c -mno-bmi -mno-tbm -mno-avx2 -mno-bmi2 -mno-fma -mno-lzcnt -mno-fxsr -mno-hle -mno-rtm -mno-xsave -mno-xsaveopt -mno-avx512cd -mno-avx512er -mno-avx512f -mno-avx512pf -mno-sha); ALLOWED_FLAGS+=(-mstackrealign) } src_compile () { cd "${NV_SRC}"; if use kernel_FreeBSD; then MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die; else mlive mod 2.4.0 How to use it? mlive mod 2.4.0 if use driver && use kernel_linux; then BUILD_TARGETS=module linux-mod_src_compile KERNELRELEASE="${KV_FULL}" src="${KERNEL_DIR}"; fi; fi; if use tools; then emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl DO_STRIP= LIBDIR="$(get_libdir)" NVLD="$(tc-getLD)" NV_VERBOSE=1 OUTPUTDIR=. RANLIB="$(tc-getRANLIB)"; emake -C "${S}"/nvidia-settings-${PV}/src DO_STRIP= GTK3_AVAILABLE=$(usex gtk3 1 0) LIBDIR="$(get_libdir)" NVLD="$(tc-getLD)" NVML_ENABLED=0 NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=.; fi } src_configure () mlive mod 2.4.0 How to use it? mlive mod 2.4.0 { tc-export AR CC LD OBJCOPY; default } src_install () { if use driver && use kernel_linux; then linux-mod_src_install; insinto /etc/modprobe.d; newins "${FILESDIR}"/nvidia-430.conf nvidia.conf; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 if use uvm; then doins "${FILESDIR}"/nvidia-rmmod.conf; udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules; else sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf > "${T}"/nvidia-rmmod.conf || die; doins "${T}"/nvidia-rmmod.conf; fi; exeinto "$(get_udevdir)"; newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh; udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 else if use kernel_FreeBSD; then if use x86-fbsd; then insinto /boot/modules; doins "${S}/src/nvidia.kld"; fi; exeinto /boot/modules; doexe "${S}/src/nvidia.ko"; fi; fi; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}; donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}; if use kernel_linux; then donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}; donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}; fi; if use X; then insinto /usr/$(get_libdir)/xorg/modules/drivers; doins ${NV_X11}/nvidia_drv.so; donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} /usr/$(get_libdir)/xorg/modules/extensions; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 if has_version '>=x11-base/xorg-server-1.16'; then insinto /usr/share/X11/xorg.conf.d; newins {,50-}nvidia-drm-outputclass.conf; fi; insinto /usr/share/glvnd/egl_vendor.d; doins ${NV_X11}/10_nvidia.json; fi; if use wayland; then insinto /usr/share/egl/egl_external_platform.d; doins ${NV_X11}/10_nvidia_wayland.json; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 fi; insinto /etc/vulkan/icd.d; doins nvidia_icd.json; insinto /etc/vulkan/implicit_layer.d; doins nvidia_layers.json; if use kernel_linux; then insinto /etc/OpenCL/vendors; doins ${NV_OBJ}/nvidia.icd; fi; exeinto /opt/bin/; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 if use X; then doexe ${NV_OBJ}/nvidia-xconfig; fi; if use kernel_linux; then 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; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fowners root:video /opt/bin/nvidia-modprobe; fperms 4710 /opt/bin/nvidia-modprobe; dosym /{opt,usr}/bin/nvidia-modprobe; doman nvidia-cuda-mps-control.1; doman nvidia-modprobe.1; doman nvidia-persistenced.1; newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi; newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced; newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced; fi; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 if use tools; then emake -C "${S}"/nvidia-settings-${PV}/src/ DESTDIR="${D}" DO_STRIP= GTK3_AVAILABLE=$(usex gtk3 1 0) LIBDIR="${D}/usr/$(get_libdir)" NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=. PREFIX=/usr install; if use static-libs; then dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a; insinto /usr/include/NVCtrl; doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h; fi; insinto /usr/share/nvidia/; doins nvidia-application-profiles-${PV}-key-documentation; insinto /etc/nvidia; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 newins nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc; use kernel_FreeBSD || doicon ${NV_OBJ}/nvidia-settings.png; domenu "${FILESDIR}"/nvidia-settings.desktop; exeinto /etc/X11/xinit/xinitrc.d; newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings; fi; dobin ${NV_OBJ}/nvidia-bug-report.sh; systemd_dounit *.service; dobin nvidia-sleep.sh; exeinto /lib/systemd/system-sleep; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 doexe nvidia; if has_multilib_profile && use multilib; then local OABI=${ABI}; for ABI in $(multilib_get_enabled_abis); do src_install-libs; done; ABI=${OABI}; unset OABI; else mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 src_install-libs; fi; is_final_abi || die "failed to iterate through all ABIs"; if use kernel_FreeBSD; then dodoc "${NV_DOC}/README"; use X && doman "${NV_MAN}"/nvidia-xconfig.1; use tools && doman "${NV_MAN}"/nvidia-settings.1; else newdoc "${NV_DOC}/README.txt" README; dodoc "${NV_DOC}/NVIDIA_Changelog"; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 doman "${NV_MAN}"/nvidia-smi.1; use X && doman "${NV_MAN}"/nvidia-xconfig.1; use tools && doman "${NV_MAN}"/nvidia-settings.1; doman "${NV_MAN}"/nvidia-cuda-mps-control.1; fi; readme.gentoo_create_doc; dodoc supported-gpus.json; docinto html; dodoc -r ${NV_DOC}/html/* } mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 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 CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"; local nv_libdir="${NV_OBJ}"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then nv_libdir="${NV_OBJ}"/32; fi; if use X; then NV_GLX_LIBRARIES=("libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}" "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}" "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}" "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}" "libOpenCL.so.1.0.0 ${CL_ROOT}" "libcuda.so.${NV_SOVER}" "libnvcuvid.so.${NV_SOVER}" "libnvidia-compiler.so.${NV_SOVER}" "libnvidia-eglcore.so.${NV_SOVER}" "libnvidia-encode.so.${NV_SOVER}" "libnvidia-fbc.so.${NV_SOVER}" "libnvidia-glcore.so.${NV_SOVER}" "libnvidia-glsi.so.${NV_SOVER}" "libnvidia-glvkspirv.so.${NV_SOVER}" "libnvidia-ifr.so.${NV_SOVER}" "libnvidia-opencl.so.${NV_SOVER}" "libnvidia-ptxjitcompiler.so.${NV_SOVER}" "libvdpau_nvidia.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 && [[ ${ABI} == "amd64" ]]; then NV_GLX_LIBRARIES+=("libnvidia-egl-wayland.so.1.1.4"); mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 fi; if use kernel_FreeBSD; then NV_GLX_LIBRARIES+=("libnvidia-tls.so.${NV_SOVER}"); fi; if use kernel_linux; then NV_GLX_LIBRARIES+=("libnvidia-ml.so.${NV_SOVER}" "libnvidia-tls.so.${NV_SOVER}"); fi; if use kernel_linux && [[ ${ABI} == "amd64" ]]; then NV_GLX_LIBRARIES+=("libnvidia-cbl.so.${NV_SOVER}" "libnvidia-ngx.so.${NV_SOVER}" "libnvidia-rtcore.so.${NV_SOVER}" "libnvoptix.so.${NV_SOVER}"); fi; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do donvidia "${nv_libdir}"/${NV_LIB}; done; fi } src_prepare () { local man_file; for man_file in "${NV_MAN}"/*1.gz; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 do gunzip $man_file || die; done; if use tools; then cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die; sed -i -e "s:@PV@:${PV}:g" "${WORKDIR}"/nvidia-settings-linker.patch || die; eapply "${WORKDIR}"/nvidia-settings-linker.patch; fi; default; if ! [ -f nvidia_icd.json ]; then mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 cp nvidia_icd.json.template nvidia_icd.json || die; sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die; fi } src_test () { multilib-minimal_src_test "$@" } src_unpack () { mlive mod 2.4.0 How to use it? mlive mod 2.4.0 unpacker_src_unpack "$@" } strip-flags () { [[ $# -ne 0 ]] && die "strip-flags takes no arguments"; local x y var; local ALLOWED_FLAGS; setup-allowed-flags; set -f; for var in $(all-flag-vars); mlive mod 2.4.0 PasteShr mlive mod 2.4.0 do local new=(); for x in ${!var}; do local flag=${x%%=*}; for y in "${ALLOWED_FLAGS[@]}"; do if [[ -z ${flag%%${y}} ]]; then new+=("${x}"); break; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 fi; done; done; if _is_flagq ${var} "-O*" && ! _is_flagq new "-O*"; then new+=(-O2); fi; if [[ ${!var} != "${new[*]}" ]]; then einfo "strip-flags: ${var}: changed '${!var}' to '${new[*]}'"; fi; export ${var}="${new[*]}"; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 done; set +f; return 0 } strip-linguas () { local ls newls nols; if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then local op=$1; shift; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ls=$(find "$1" -name '*.po' -exec basename {} .po ';'); shift; local d f; for d in "$@"; do if [[ ${op} == "-u" ]]; then newls=${ls}; else newls=""; fi; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 for f in $(find "$d" -name '*.po' -exec basename {} .po ';'); do if [[ ${op} == "-i" ]]; then has ${f} ${ls} && newls="${newls} ${f}"; else has ${f} ${ls} || newls="${newls} ${f}"; fi; done; ls=${newls}; done; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 else ls="$@"; fi; nols=""; newls=""; for f in ${LINGUAS}; do if has ${f} ${ls}; then newls="${newls} ${f}"; else mlive mod 2.4.0 PasteShr mlive mod 2.4.0 nols="${nols} ${f}"; fi; done; [[ -n ${nols} ]] && einfo "Sorry, but ${PN} does not support the LINGUAS:" ${nols}; export LINGUAS=${newls:1} } strip-unsupported-flags () { [[ $# -ne 0 ]] && die "strip-unsupported-flags takes no arguments"; export CFLAGS=$(test-flags-CC ${CFLAGS}); mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS}); export FFLAGS=$(test-flags-F77 ${FFLAGS}); export FCFLAGS=$(test-flags-FC ${FCFLAGS}); export LDFLAGS=$(test-flags-CCLD ${LDFLAGS}) } strip_modulenames () { debug-print-function ${FUNCNAME} $*; local i; for i in ${MODULE_IGNORE}; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 do MODULE_NAMES=${MODULE_NAMES//${i}(*}; done } systemd_dotmpfilesd () { debug-print-function ${FUNCNAME} "${@}"; for f in "$@"; do [[ ${f} == *.conf ]] || die 'tmpfiles.d files need to have .conf suffix.'; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 done; ( insopts -m 0644; insinto /usr/lib/tmpfiles.d/; doins "${@}" ) } systemd_dounit () { debug-print-function ${FUNCNAME} "${@}"; ( insopts -m 0644; insinto "$(_systemd_get_systemunitdir)"; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 doins "${@}" ) } systemd_douserunit () { debug-print-function ${FUNCNAME} "${@}"; ( insopts -m 0644; insinto "$(_systemd_get_userunitdir)"; doins "${@}" ) } systemd_enable_ntpunit () mlive mod 2.4.0 How to use it? mlive mod 2.4.0 { debug-print-function ${FUNCNAME} "${@}"; if [[ ${#} -lt 2 ]]; then die "Usage: systemd_enable_ntpunit ..."; fi; local ntpunit_name=${1}; local services=("${@:2}"); if [[ ${ntpunit_name} != [0-9][0-9]-* ]]; then die "ntpunit.d file must be named NN-name where NN are digits."; else mlive mod 2.4.0 How to use it? mlive mod 2.4.0 if [[ ${ntpunit_name} == *.list ]]; then die "The .list suffix is appended implicitly to ntpunit.d name."; fi; fi; local unitdir=$(systemd_get_systemunitdir); local s; for s in "${services[@]}"; do if [[ ! -f "${D}${unitdir}/${s}" ]]; then die "ntp-units.d provider ${s} not installed (yet?) in \${D}."; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 fi; echo "${s}" >> "${T}"/${ntpunit_name}.list || die; done; ( insopts -m 0644; insinto "$(_systemd_get_utildir)"/ntp-units.d; doins "${T}"/${ntpunit_name}.list ); local ret=${?}; rm "${T}"/${ntpunit_name}.list || die; return ${ret} } mlive mod 2.4.0 PasteShr mlive mod 2.4.0 systemd_enable_service () { debug-print-function ${FUNCNAME} "${@}"; [[ ${#} -eq 2 ]] || die "Synopsis: systemd_enable_service target service"; local target=${1}; local service=${2}; local ud=$(_systemd_get_systemunitdir); local destname=${service##*/}; dodir "${ud}"/"${target}".wants && dosym ../"${service}" "${ud}"/"${target}".wants/"${destname}" } mlive mod 2.4.0 PasteShr mlive mod 2.4.0 systemd_get_systemgeneratordir () { has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=; debug-print-function ${FUNCNAME} "${@}"; echo "${EPREFIX}$(_systemd_get_systemgeneratordir)" } systemd_get_systemunitdir () { has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=; debug-print-function ${FUNCNAME} "${@}"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 echo "${EPREFIX}$(_systemd_get_systemunitdir)" } systemd_get_unitdir () { [[ ${EAPI} == [012345] ]] || die "${FUNCNAME} is banned in EAPI 6, use systemd_get_systemunitdir instead"; systemd_get_systemunitdir } systemd_get_userunitdir () { has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 debug-print-function ${FUNCNAME} "${@}"; echo "${EPREFIX}$(_systemd_get_userunitdir)" } systemd_get_utildir () { has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=; debug-print-function ${FUNCNAME} "${@}"; echo "${EPREFIX}$(_systemd_get_utildir)" } systemd_install_serviced () mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 { debug-print-function ${FUNCNAME} "${@}"; local src=${1}; local service=${2}; [[ -n ${src} ]] || die "No file specified"; if [[ ! -n ${service} ]]; then [[ ${src} == *.conf ]] || die "Source file needs .conf suffix"; service=${src##*/}; service=${service%.conf}; fi; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 [[ ${service} == *.d ]] && die "Service must not have .d suffix"; ( insopts -m 0644; insinto /etc/systemd/system/"${service}".d; newins "${src}" 00gentoo.conf ) } systemd_is_booted () { debug-print-function ${FUNCNAME} "${@}"; [[ -d /run/systemd/system ]]; local ret=${?}; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 debug-print "${FUNCNAME}: [[ -d /run/systemd/system ]] -> ${ret}"; return ${ret} } systemd_newtmpfilesd () { debug-print-function ${FUNCNAME} "${@}"; [[ ${2} == *.conf ]] || die 'tmpfiles.d files need to have .conf suffix.'; ( insopts -m 0644; insinto /usr/lib/tmpfiles.d/; newins "${@}" ) mlive mod 2.4.0 PasteShr mlive mod 2.4.0 } systemd_newunit () { debug-print-function ${FUNCNAME} "${@}"; ( insopts -m 0644; insinto "$(_systemd_get_systemunitdir)"; newins "${@}" ) } systemd_newuserunit () { mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 debug-print-function ${FUNCNAME} "${@}"; ( insopts -m 0644; insinto "$(_systemd_get_userunitdir)"; newins "${@}" ) } systemd_reenable () { type systemctl &> /dev/null || return 0; local x; for x in "$@"; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 do if systemctl --quiet --root="${ROOT:-/}" is-enabled "${x}"; then systemctl --root="${ROOT:-/}" reenable "${x}"; fi; done } systemd_tmpfiles_create () { debug-print-function ${FUNCNAME} "${@}"; [[ ${EBUILD_PHASE} == postinst ]] || die "${FUNCNAME}: Only valid in pkg_postinst"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 [[ ${#} -gt 0 ]] || die "${FUNCNAME}: Must specify at least one filename"; [[ ${ROOT} == / ]] || return 0; type systemd-tmpfiles &> /dev/null || return 0; systemd-tmpfiles --create "${@}" } systemd_update_catalog () { debug-print-function ${FUNCNAME} "${@}"; [[ ${EBUILD_PHASE} == post* ]] || die "${FUNCNAME} disallowed during ${EBUILD_PHASE_FUNC:-${EBUILD_PHASE}}"; local journalctl=${EPREFIX}/usr/bin/journalctl; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 if [[ -x ${journalctl} ]]; then ebegin "Updating systemd journal catalogs"; journalctl --update-catalog; eend $?; else debug-print "${FUNCNAME}: journalctl not found."; fi } systemd_with_unitdir () { mlive mod 2.4.0 How to use it? mlive mod 2.4.0 [[ ${EAPI:-0} != [012345] ]] && die "${FUNCNAME} is banned in EAPI ${EAPI}, use --with-${1:-systemdsystemunitdir}=\"\$(systemd_get_systemunitdir)\" instead"; debug-print-function ${FUNCNAME} "${@}"; local optname=${1:-systemdsystemunitdir}; echo --with-${optname}="$(systemd_get_systemunitdir)" } systemd_with_utildir () { [[ ${EAPI:-0} != [012345] ]] && die "${FUNCNAME} is banned in EAPI ${EAPI}, use --with-systemdutildir=\"\$(systemd_get_utildir)\" instead"; debug-print-function ${FUNCNAME} "${@}"; echo --with-systemdutildir="$(systemd_get_utildir)" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } tc-arch () { tc-ninja_magic_to_arch portage "$@" } tc-arch-kernel () { tc-ninja_magic_to_arch kern "$@" } tc-check-openmp () mlive mod 2.4.0 PasteShr mlive mod 2.4.0 { if ! tc-has-openmp; then eerror "Your current compiler does not support OpenMP!"; if tc-is-gcc; then eerror "Enable OpenMP support by building sys-devel/gcc with USE=\"openmp\"."; else if tc-is-clang; then eerror "OpenMP support in sys-devel/clang is provided by sys-libs/libomp."; fi; fi; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 die "Active compiler does not have required support for OpenMP"; fi } tc-cpp-is-true () { local CONDITION=${1}; shift; $(tc-getTARGET_CPP) "${@}" -P - <<-EOF > /dev/null 2>&1 #if ${CONDITION} true mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 #else #error false #endif EOF } tc-detect-is-softfloat () { [[ $(tc-getTARGET_CPP) == "gcc -E" ]] && return 1; case ${CTARGET:-${CHOST}} in mlive mod 2.4.0 How to use it? mlive mod 2.4.0 *-newlib | *-elf | *-eabi) return 1 ;; arm*) if tc-cpp-is-true "defined(__ARM_PCS_VFP)"; then echo "no"; else if tc-cpp-is-true "defined(__SOFTFP__)"; then echo "yes"; else mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 echo "softfp"; fi; fi; return 0 ;; *) return 1 ;; esac } mlive mod 2.4.0 PasteShr mlive mod 2.4.0 tc-enables-pie () { tc-cpp-is-true "defined(__PIE__)" ${CPPFLAGS} ${CFLAGS} } tc-enables-ssp () { tc-cpp-is-true "defined(__SSP__) || defined(__SSP_STRONG__) || defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS} } tc-enables-ssp-all () { mlive mod 2.4.0 How to use it? mlive mod 2.4.0 tc-cpp-is-true "defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS} } tc-enables-ssp-strong () { tc-cpp-is-true "defined(__SSP_STRONG__) || defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS} } tc-endian () { local host=$1; [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 host=${host%%-*}; case ${host} in aarch64*be) echo big ;; aarch64) echo little ;; alpha*) echo little mlive mod 2.4.0 PasteShr mlive mod 2.4.0 ;; arm*b*) echo big ;; arm*) echo little ;; cris*) echo little ;; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 hppa*) echo big ;; i?86*) echo little ;; ia64*) echo little ;; m68*) mlive mod 2.4.0 How to use it? mlive mod 2.4.0 echo big ;; mips*l*) echo little ;; mips*) echo big ;; powerpc*le) echo little mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 ;; powerpc*) echo big ;; riscv*) echo little ;; s390*) echo big ;; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 sh*b*) echo big ;; sh*) echo little ;; sparc*) echo big ;; x86_64*) mlive mod 2.4.0 How to get it? mlive mod 2.4.0 echo little ;; *) echo wtf ;; esac } tc-env_build () { tc-export_build_env; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 CFLAGS=${BUILD_CFLAGS} CXXFLAGS=${BUILD_CXXFLAGS} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} AR=$(tc-getBUILD_AR) AS=$(tc-getBUILD_AS) CC=$(tc-getBUILD_CC) CPP=$(tc-getBUILD_CPP) CXX=$(tc-getBUILD_CXX) LD=$(tc-getBUILD_LD) NM=$(tc-getBUILD_NM) PKG_CONFIG=$(tc-getBUILD_PKG_CONFIG) RANLIB=$(tc-getBUILD_RANLIB) READELF=$(tc-getBUILD_READELF) "$@" } tc-export () { local var; for var in "$@"; do [[ $(type -t "tc-get${var}") != "function" ]] && die "tc-export: invalid export variable '${var}'"; "tc-get${var}" > /dev/null; done mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } tc-export_build_env () { tc-export "$@"; if tc-is-cross-compiler; then : ${BUILD_CFLAGS:=-O1 -pipe}; : ${BUILD_CXXFLAGS:=-O1 -pipe}; : ${BUILD_CPPFLAGS:= }; : ${BUILD_LDFLAGS:= }; else mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 : ${BUILD_CFLAGS:=${CFLAGS}}; : ${BUILD_CXXFLAGS:=${CXXFLAGS}}; : ${BUILD_CPPFLAGS:=${CPPFLAGS}}; : ${BUILD_LDFLAGS:=${LDFLAGS}}; fi; export BUILD_{C,CXX,CPP,LD}FLAGS; local v; for v in BUILD_{C,CXX,CPP,LD}FLAGS; do export ${v#BUILD_}_FOR_BUILD="${!v}"; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 done } tc-get-compiler-type () { local code=' #if defined(__PATHSCALE__) HAVE_PATHCC #elif defined(__clang__) HAVE_CLANG #elif defined(__GNUC__) mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 HAVE_GCC #endif '; local res=$($(tc-getCPP "$@") -E -P - <<<"${code}"); case ${res} in *HAVE_PATHCC*) echo pathcc ;; *HAVE_CLANG*) echo clang mlive mod 2.4.0 How to use it? mlive mod 2.4.0 ;; *HAVE_GCC*) echo gcc ;; *) echo unknown ;; esac } tc-getAR () mlive mod 2.4.0 How to use it? mlive mod 2.4.0 { tc-getPROG AR ar "$@" } tc-getAS () { tc-getPROG AS as "$@" } tc-getBUILD_AR () { tc-getBUILD_PROG AR ar "$@" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 } tc-getBUILD_AS () { tc-getBUILD_PROG AS as "$@" } tc-getBUILD_CC () { tc-getBUILD_PROG CC gcc "$@" } tc-getBUILD_CPP () mlive mod 2.4.0 How to get it? mlive mod 2.4.0 { tc-getBUILD_PROG CPP "$(tc-getBUILD_CC) -E" "$@" } tc-getBUILD_CXX () { tc-getBUILD_PROG CXX g++ "$@" } tc-getBUILD_LD () { tc-getBUILD_PROG LD ld "$@" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 } tc-getBUILD_NM () { tc-getBUILD_PROG NM nm "$@" } tc-getBUILD_OBJCOPY () { tc-getBUILD_PROG OBJCOPY objcopy "$@" } tc-getBUILD_PKG_CONFIG () mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 { tc-getBUILD_PROG PKG_CONFIG pkg-config "$@" } tc-getBUILD_PROG () { local vars="BUILD_$1 $1_FOR_BUILD HOST$1"; tc-is-cross-compiler || vars+=" $1"; _tc-getPROG CBUILD "${vars}" "${@:2}" } tc-getBUILD_RANLIB () mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 { tc-getBUILD_PROG RANLIB ranlib "$@" } tc-getBUILD_READELF () { tc-getBUILD_PROG READELF readelf "$@" } tc-getBUILD_STRINGS () { tc-getBUILD_PROG STRINGS strings "$@" mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 } tc-getBUILD_STRIP () { tc-getBUILD_PROG STRIP strip "$@" } tc-getCC () { tc-getPROG CC gcc "$@" } tc-getCPP () mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 { tc-getPROG CPP "${CC:-gcc} -E" "$@" } tc-getCXX () { tc-getPROG CXX g++ "$@" } tc-getDLLWRAP () { tc-getPROG DLLWRAP dllwrap "$@" mlive mod 2.4.0 How to get it? mlive mod 2.4.0 } tc-getF77 () { tc-getPROG F77 gfortran "$@" } tc-getFC () { tc-getPROG FC gfortran "$@" } tc-getGCJ () mlive mod 2.4.0 PasteShr mlive mod 2.4.0 { tc-getPROG GCJ gcj "$@" } tc-getGO () { tc-getPROG GO gccgo "$@" } tc-getLD () { tc-getPROG LD ld "$@" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } tc-getNM () { tc-getPROG NM nm "$@" } tc-getOBJCOPY () { tc-getPROG OBJCOPY objcopy "$@" } tc-getOBJDUMP () mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 { tc-getPROG OBJDUMP objdump "$@" } tc-getPKG_CONFIG () { tc-getPROG PKG_CONFIG pkg-config "$@" } tc-getPROG () { _tc-getPROG CHOST "$@" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } tc-getRANLIB () { tc-getPROG RANLIB ranlib "$@" } tc-getRC () { tc-getPROG RC windres "$@" } tc-getREADELF () mlive mod 2.4.0 How to use it? mlive mod 2.4.0 { tc-getPROG READELF readelf "$@" } tc-getSTRINGS () { tc-getPROG STRINGS strings "$@" } tc-getSTRIP () { tc-getPROG STRIP strip "$@" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 } tc-getTARGET_CPP () { if [[ -n ${CTARGET} ]]; then _tc-getPROG CTARGET TARGET_CPP "gcc -E" "$@"; else tc-getCPP "$@"; fi } tc-has-openmp () mlive mod 2.4.0 How to get it? mlive mod 2.4.0 { local base="${T}/test-tc-openmp"; cat <<-EOF > "${base}.c" #include int main() { int nthreads, tid, ret = 0; #pragma omp parallel private(nthreads, tid) { tid = omp_get_thread_num(); nthreads = omp_get_num_threads(); ret += tid + nthreads; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 } return ret; } EOF $(tc-getCC "$@") -fopenmp "${base}.c" -o "${base}" &> /dev/null; local ret=$?; rm -f "${base}"*; return ${ret} } mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 tc-has-tls () { local base="${T}/test-tc-tls"; cat <<-EOF > "${base}.c" int foo(int *i) { static __thread int j = 0; return *i ? j : *i; } EOF mlive mod 2.4.0 PasteShr mlive mod 2.4.0 local flags; case $1 in -s) flags="-S" ;; -c) flags="-c" ;; -l) mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ;; -*) die "Usage: tc-has-tls [-c|-l] [toolchain prefix]" ;; esac; : ${flags:=-fPIC -shared -Wl,-z,defs}; [[ $1 == -* ]] && shift; $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &> /dev/null; local ret=$?; rm -f "${base}"*; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 return ${ret} } tc-is-clang () { [[ $(tc-get-compiler-type) == clang ]] } tc-is-cross-compiler () { [[ ${CBUILD:-${CHOST}} != ${CHOST} ]] } mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 tc-is-gcc () { [[ $(tc-get-compiler-type) == gcc ]] } tc-is-softfloat () { tc-detect-is-softfloat || tc-tuple-is-softfloat } tc-is-static-only () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 local host=${CTARGET:-${CHOST}}; [[ ${host} == *-mint* ]] } tc-ld-disable-gold () { if ! tc-ld-is-gold "$@"; then return; fi; ewarn "Forcing usage of the BFD linker instead of GOLD"; local ld=$(tc-getLD "$@"); mlive mod 2.4.0 How to get it? mlive mod 2.4.0 local bfd_ld="${ld%% *}.bfd"; local path_ld=$(which "${bfd_ld}" 2>/dev/null); [[ -e ${path_ld} ]] && export LD=${bfd_ld}; local fallback="true"; if tc-is-gcc; then local major=$(gcc-major-version "$@"); local minor=$(gcc-minor-version "$@"); if [[ ${major} -gt 4 ]] || [[ ${major} -eq 4 && ${minor} -ge 8 ]]; then export LDFLAGS="${LDFLAGS} -fuse-ld=bfd"; fallback="false"; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 fi; else if tc-is-clang; then local major=$(clang-major-version "$@"); local minor=$(clang-minor-version "$@"); if [[ ${major} -gt 3 ]] || [[ ${major} -eq 3 && ${minor} -ge 5 ]]; then export LDFLAGS="${LDFLAGS} -fuse-ld=bfd"; fallback="false"; fi; fi; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 fi; if [[ ${fallback} == "true" ]]; then if [[ -e ${path_ld} ]]; then local d="${T}/bfd-linker"; mkdir -p "${d}"; ln -sf "${path_ld}" "${d}"/ld; export LDFLAGS="${LDFLAGS} -B${d}"; else die "unable to locate a BFD linker to bypass gold"; fi; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fi } tc-ld-is-gold () { local out; out=$($(tc-getLD "$@") --version 2>&1); if [[ ${out} == *"GNU gold"* ]]; then return 0; fi; local base="${T}/test-tc-gold"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 cat <<-EOF > "${base}.c" int main() { return 0; } EOF out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1); rm -f "${base}"*; if [[ ${out} == *"GNU gold"* ]]; then return 0; fi; return 1 mlive mod 2.4.0 How to get it? mlive mod 2.4.0 } tc-ld-is-lld () { local out; out=$($(tc-getLD "$@") --version 2>&1); if [[ ${out} == *"LLD"* ]]; then return 0; fi; local base="${T}/test-tc-lld"; cat <<-EOF > "${base}.c" mlive mod 2.4.0 PasteShr mlive mod 2.4.0 int main() { return 0; } EOF out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1); rm -f "${base}"*; if [[ ${out} == *"LLD"* ]]; then return 0; fi; return 1 } mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 tc-ninja_magic_to_arch () { function ninj () { [[ ${type} == "kern" ]] && echo $1 || echo $2 }; local type=$1; local host=$2; [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; case ${host} in mlive mod 2.4.0 PasteShr mlive mod 2.4.0 aarch64*) echo arm64 ;; alpha*) echo alpha ;; arm*) echo arm ;; avr*) mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ninj avr32 avr ;; bfin*) ninj blackfin bfin ;; c6x*) echo c6x ;; cris*) echo cris mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 ;; frv*) echo frv ;; hexagon*) echo hexagon ;; hppa*) ninj parisc hppa ;; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 i?86*) if [[ ${type} == "kern" && ${host} == *freebsd* ]]; then echo i386; else echo x86; fi ;; ia64*) echo ia64 ;; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 m68*) echo m68k ;; metag*) echo metag ;; microblaze*) echo microblaze ;; mips*) mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 echo mips ;; nios2*) echo nios2 ;; nios*) echo nios ;; or1k | or32*) echo openrisc mlive mod 2.4.0 How to get it? mlive mod 2.4.0 ;; powerpc*) if [[ ${type} == "kern" ]]; then echo powerpc; else if [[ ${host} == powerpc64* ]]; then echo ppc64; else echo ppc; fi; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 fi ;; riscv*) echo riscv ;; s390*) echo s390 ;; score*) echo score mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 ;; sh64*) ninj sh64 sh ;; sh*) echo sh ;; sparc64*) ninj sparc64 sparc ;; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 sparc*) [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc ;; tile*) echo tile ;; vax*) echo vax ;; x86_64*freebsd*) mlive mod 2.4.0 How to use it? mlive mod 2.4.0 echo amd64 ;; x86_64*) if [[ ${type} == "kern" ]]; then echo x86; else echo amd64; fi ;; xtensa*) mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 echo xtensa ;; *) echo unknown ;; esac } tc-stack-grows-down () { case ${ARCH} in mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 hppa | metag) return 1 ;; esac; return 0 } tc-tuple-is-softfloat () { local CTARGET=${CTARGET:-${CHOST}}; case ${CTARGET//_/-} in mlive mod 2.4.0 PasteShr mlive mod 2.4.0 bfin* | h8300*) echo "only" ;; *-softfloat-*) echo "yes" ;; *-softfp-*) echo "softfp" ;; arm*-hardfloat-* | arm*eabihf) mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 echo "no" ;; *-newlib | *-elf | *-eabi) echo "no" ;; arm*) echo "yes" ;; *) echo "no" mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 ;; esac } test-flag-CC () { test-flag-PROG "CC" c "$@" } test-flag-CCLD () { test-flag-PROG "CC" c+ld "$@" mlive mod 2.4.0 How to get it? mlive mod 2.4.0 } test-flag-CXX () { test-flag-PROG "CXX" c++ "$@" } test-flag-F77 () { test-flag-PROG "F77" f77 "$@" } test-flag-FC () mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 { test-flag-PROG "FC" f95 "$@" } test-flag-PROG () { local comp=$1; local lang=$2; shift 2; if [[ -z ${comp} ]]; then return 1; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 fi; if [[ -z $1 ]]; then return 1; fi; comp=($(tc-get${comp})); if ! type -p ${comp[0]} > /dev/null; then return 1; fi; local in_src in_ext cmdline_extra=(); case "${lang}" in mlive mod 2.4.0 PasteShr mlive mod 2.4.0 c) in_ext='c'; in_src='int main(void) { return 0; }'; cmdline_extra+=(-xc -c) ;; c++) in_ext='cc'; in_src='int main(void) { return 0; }'; cmdline_extra+=(-xc++ -c) ;; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 f77) in_ext='f'; in_src=' end'; cmdline_extra+=(-xf77 -c) ;; f95) in_ext='f90'; in_src='end'; cmdline_extra+=(-xf95 -c) ;; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 c+ld) in_ext='c'; in_src='int main(void) { return 0; }'; cmdline_extra+=(-xc) ;; esac; local test_in=${T}/test-flag.${in_ext}; local test_out=${T}/test-flag.exe; printf "%s\n" "${in_src}" > "${test_in}" || die "Failed to create '${test_in}'"; local cmdline=("${comp[@]}" -Werror "$@" "${cmdline_extra[@]}" "${test_in}" -o "${test_out}"); mlive mod 2.4.0 How to get it? mlive mod 2.4.0 if ! "${cmdline[@]}" &> /dev/null; then cmdline+=(-Qunused-arguments); "${cmdline[@]}" &> /dev/null; fi } test-flags () { test-flags-CC "$@" } test-flags-CC () mlive mod 2.4.0 PasteShr mlive mod 2.4.0 { test-flags-PROG "CC" "$@" } test-flags-CCLD () { test-flags-PROG "CCLD" "$@" } test-flags-CXX () { test-flags-PROG "CXX" "$@" mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } test-flags-F77 () { test-flags-PROG "F77" "$@" } test-flags-FC () { test-flags-PROG "FC" "$@" } test-flags-PROG () mlive mod 2.4.0 PasteShr mlive mod 2.4.0 { local comp=$1; local flags=(); local x; shift; [[ -z ${comp} ]] && return 1; while (( $# )); do case "$1" in --param | -B) if test-flag-${comp} "$1" "$2"; then mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 flags+=("$1" "$2"); fi; shift 2 ;; *) if test-flag-${comp} "$1"; then flags+=("$1"); fi; shift 1 ;; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 esac; done; echo "${flags[*]}"; [[ ${#flags[@]} -gt 0 ]] } test_version_info () { if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then return 0; else mlive mod 2.4.0 PasteShr mlive mod 2.4.0 return 1; fi } treecopy () { local dest=${!#}; local files_count=$#; while (( $# > 1 )); do local dirstruct=$(dirname "$1"); mkdir -p "${dest}/${dirstruct}" || die; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 cp -pPR "$1" "${dest}/${dirstruct}" || die; shift; done } udev_dorules () { debug-print-function ${FUNCNAME} "${@}"; ( insopts -m 0644; insinto "$(_udev_get_udevdir)"/rules.d; doins "${@}" ) mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } udev_get_udevdir () { debug-print-function ${FUNCNAME} "${@}"; eerror "This ebuild should be using the get_udevdir() function instead of the deprecated udev_get_udevdir()"; die "Deprecated function call: udev_get_udevdir(), please report to (overlay) maintainers." } udev_newrules () { debug-print-function ${FUNCNAME} "${@}"; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 ( insopts -m 0644; insinto "$(_udev_get_udevdir)"/rules.d; newins "${@}" ) } udev_reload () { if [[ ${ROOT} != "" ]] && [[ ${ROOT} != "/" ]]; then return 0; fi; if [[ -d ${ROOT}/run/udev ]]; then mlive mod 2.4.0 PasteShr mlive mod 2.4.0 ebegin "Running udev control --reload for reloading rules and databases"; udevadm control --reload; eend $?; fi } unpack_banner () { echo ">>> Unpacking ${1##*/} to ${PWD}" } unpack_cpio () mlive mod 2.4.0 How to use it? mlive mod 2.4.0 { [[ $# -eq 1 ]] || die "Usage: ${FUNCNAME} "; local cpio_cmd=(cpio --make-directories --extract --preserve-modification-time); if [[ $1 == "-" ]]; then unpack_banner "stdin"; "${cpio_cmd[@]}"; else local cpio=$(find_unpackable_file "$1"); unpack_banner "${cpio}"; "${cpio_cmd[@]}" < "${cpio}"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 fi } unpack_deb () { [[ $# -eq 1 ]] || die "Usage: ${FUNCNAME} "; local deb=$(find_unpackable_file "$1"); unpack_banner "${deb}"; if [[ -n ${EPREFIX} ]]; then { read; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 [[ ${REPLY} = "!" ]] || die "${deb} does not seem to be a deb archive"; local f timestamp uid gid mode size magic; while read f timestamp uid gid mode size magic; do [[ -n ${f} && -n ${size} ]] || continue; if [[ ${f} = "data.tar"* ]]; then head -c "${size}" > "${f}"; else head -c "${size}" > /dev/null; fi; done mlive mod 2.4.0 How to use it? mlive mod 2.4.0 } < "${deb}"; else $(tc-getBUILD_AR) x "${deb}" || die; fi; unpacker ./data.tar*; rm -f debian-binary {control,data}.tar* } unpack_makeself () { local src_input=${1:-${A}}; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 local src=$(find_unpackable_file "${src_input}"); local skip=$2; local exe=$3; [[ -z ${src} ]] && die "Could not locate source for '${src_input}'"; unpack_banner "${src}"; if [[ -z ${skip} ]]; then local ver=$(grep -m1 -a '#.*Makeself' "${src}" | awk '{print $NF}'); local skip=0; exe=tail; case ${ver} in mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 1.5.* | 1.6.0-nv*) skip=$(grep -a ^skip= "${src}" | cut -d= -f2) ;; 2.0 | 2.0.1) skip=$(grep -a ^' 'tail "${src}" | awk '{print $2}' | cut -b2-) ;; 2.1.1) skip=$(grep -a ^offset= "${src}" | awk '{print $2}' | cut -b2-); (( skip++ )) ;; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 2.1.2) skip=$(grep -a ^offset= "${src}" | awk '{print $3}' | head -n 1); (( skip++ )) ;; 2.1.3) skip=`grep -a ^offset= "${src}" | awk '{print $3}'`; (( skip++ )) ;; 2.1.4 | 2.1.5 | 2.1.6 | 2.2.0 | 2.4.0) skip=$(grep -a offset=.*head.*wc "${src}" | awk '{print $3}' | head -n 1); mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 skip=$(head -n ${skip} "${src}" | wc -c); exe="dd" ;; *) eerror "I'm sorry, but I was unable to support the Makeself file."; eerror "The version I detected was '${ver}'."; eerror "Please file a bug about the file ${src##*/} at"; eerror "https://bugs.gentoo.org/ so that support can be added."; die "makeself version '${ver}' not supported" ;; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 esac; debug-print "Detected Makeself version ${ver} ... using ${skip} as offset"; fi; case ${exe} in tail) exe=(tail -n +${skip} "${src}") ;; dd) exe=(dd ibs=${skip} skip=1 if="${src}") ;; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 *) die "makeself cant handle exe '${exe}'" ;; esac; local filetype tmpfile="${T}/${FUNCNAME}"; "${exe[@]}" 2> /dev/null | head -c 512 > "${tmpfile}"; filetype=$(file -b "${tmpfile}") || die; case ${filetype} in *tar\ archive*) "${exe[@]}" | tar --no-same-owner -xf - mlive mod 2.4.0 PasteShr mlive mod 2.4.0 ;; bzip2*) "${exe[@]}" | bzip2 -dc | tar --no-same-owner -xf - ;; gzip*) "${exe[@]}" | tar --no-same-owner -xzf - ;; compress*) "${exe[@]}" | gunzip | tar --no-same-owner -xf - ;; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 XZ*) "${exe[@]}" | unxz | tar --no-same-owner -xf - ;; *) eerror "Unknown filetype \"${filetype}\" ?"; false ;; esac; assert "failure unpacking (${filetype}) makeself ${src##*/} ('${ver}' +${skip})" } mlive mod 2.4.0 How to get it? mlive mod 2.4.0 unpack_pdv () { local src=$(find_unpackable_file "$1"); local sizeoff_t=$2; [[ -z ${src} ]] && die "Could not locate source for '$1'"; [[ -z ${sizeoff_t} ]] && die "No idea what off_t size was used for this pdv :("; unpack_banner "${src}"; local metaskip=$(tail -c ${sizeoff_t} "${src}" | hexdump -e \"%i\"); local tailskip=$(tail -c $((${sizeoff_t}*2)) "${src}" | head -c ${sizeoff_t} | hexdump -e \"%i\"); local metafile="${T}/${FUNCNAME}.meta"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 tail -c +$((${metaskip}+1)) "${src}" > "${metafile}"; local datafile=$(tail -c +$((${metaskip}+1)) "${src}" | strings | head -n 1); datafile=$(basename "${datafile}"); local tmpfile="${T}/${FUNCNAME}"; tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c 512 > "${tmpfile}"; local iscompressed=$(file -b "${tmpfile}"); if [[ ${iscompressed:0:8} == "compress" ]]; then iscompressed=1; mv "${tmpfile}"{,.Z}; gunzip "${tmpfile}"; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 else iscompressed=0; fi; local istar=$(file -b "${tmpfile}"); if [[ ${istar:0:9} == "POSIX tar" ]]; then istar=1; else istar=0; fi; if [ ${iscompressed} -eq 1 ]; then mlive mod 2.4.0 How to get it? mlive mod 2.4.0 if [ ${istar} -eq 1 ]; then tail -c +$((${tailskip}+1)) "${src}" 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar -xzf -; else tail -c +$((${tailskip}+1)) "${src}" 2> /dev/null | head -c $((${metaskip}-${tailskip})) | gzip -dc > ${datafile}; fi; else if [ ${istar} -eq 1 ]; then tail -c +$((${tailskip}+1)) "${src}" 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar --no-same-owner -xf -; else tail -c +$((${tailskip}+1)) "${src}" 2> /dev/null | head -c $((${metaskip}-${tailskip})) > ${datafile}; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 fi; fi; true } unpack_zip () { [[ $# -eq 1 ]] || die "Usage: ${FUNCNAME} "; local zip=$(find_unpackable_file "$1"); unpack_banner "${zip}"; unzip -qo "${zip}"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 [[ $? -le 1 ]] || die "unpacking ${zip} failed (arch=unpack_zip)" } unpacker () { local a; [[ $# -eq 0 ]] && set -- ${A}; for a in "$@"; do _unpacker "${a}"; done mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 } unpacker_src_unpack () { unpacker } unpacker_src_uri_depends () { local uri deps d; if [[ $# -eq 0 ]]; then set -f; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 set -- ${SRC_URI}; set +f; fi; for uri in "$@"; do case ${uri} in *.cpio.* | *.cpio) d="app-arch/cpio" ;; *.deb) mlive mod 2.4.0 PasteShr mlive mod 2.4.0 d="kernel_AIX? ( app-arch/deb2targz )" ;; *.rar | *.RAR) d="app-arch/unrar" ;; *.7z) d="app-arch/p7zip" ;; *.xz) d="app-arch/xz-utils" mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 ;; *.zip) d="app-arch/unzip" ;; *.lz) d="|| ( app-arch/plzip app-arch/pdlzip app-arch/lzip )" ;; esac; deps+=" ${d}"; done; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 echo "${deps}" } update_depmod () { debug-print-function ${FUNCNAME} $*; get_version; ebegin "Updating module dependencies for ${KV_FULL}"; if [ -r "${KV_OUT_DIR}"/System.map ]; then depmod -ae -F "${KV_OUT_DIR}"/System.map -b "${ROOT:-/}" ${KV_FULL}; eend $?; mlive mod 2.4.0 How to get it for free? mlive mod 2.4.0 else ewarn; ewarn "${KV_OUT_DIR}/System.map not found."; ewarn "You must manually update the kernel module dependencies using depmod."; eend 1; ewarn; fi } update_moduledb () { mlive mod 2.4.0 PasteShr mlive mod 2.4.0 debug-print-function ${FUNCNAME} $*; local MODULEDB_DIR="${ROOT%/}"/var/lib/module-rebuild; move_old_moduledb; if [[ ! -f "${MODULEDB_DIR}"/moduledb ]]; then [[ ! -d "${MODULEDB_DIR}" ]] && mkdir -p "${MODULEDB_DIR}"; touch "${MODULEDB_DIR}"/moduledb; fi; if ! grep -qs ${CATEGORY}/${PN}-${PVR} "${MODULEDB_DIR}"/moduledb; then einfo "Adding module to moduledb."; echo "a:1:${CATEGORY}/${PN}-${PVR}" >> "${MODULEDB_DIR}"/moduledb; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 fi } use_if_iuse () { in_iuse $1 || return 1; use $1 } use_m () { debug-print-function ${FUNCNAME} $*; mlive mod 2.4.0 How to use it? mlive mod 2.4.0 get_version; [ ${KV_MAJOR} -ge 3 ] && return 0; [ ${KV_MAJOR} -eq 2 -a ${KV_MINOR} -gt 5 -a ${KV_PATCH} -gt 5 ] && return 0 || return 1 } ver_cut () { local range=${1}; local v=${2:-${PV}}; local start end; local -a comp; mlive mod 2.4.0 PasteShr mlive mod 2.4.0 __eapi7_ver_split "${v}"; local max=$((${#comp[@]}/2)); __eapi7_ver_parse_range "${range}" "${max}"; local IFS=; if [[ ${start} -gt 0 ]]; then start=$(( start*2 - 1 )); fi; echo "${comp[*]:start:end*2-start}" } ver_rs () mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 { local v; (( ${#} & 1 )) && v=${@: -1} || v=${PV}; local start end i; local -a comp; __eapi7_ver_split "${v}"; local max=$((${#comp[@]}/2 - 1)); while [[ ${#} -ge 2 ]]; do __eapi7_ver_parse_range "${1}" "${max}"; for ((i = start*2; i <= end*2; i+=2 )) mlive mod 2.4.0 PasteShr mlive mod 2.4.0 do [[ ${i} -eq 0 && -z ${comp[i]} ]] && continue; comp[i]=${2}; done; shift 2; done; local IFS=; echo "${comp[*]}" } ver_test () mlive mod 2.4.0 How to get it? mlive mod 2.4.0 { local va op vb; if [[ $# -eq 3 ]]; then va=${1}; shift; else va=${PVR}; fi; [[ $# -eq 2 ]] || die "${FUNCNAME}: bad number of arguments"; op=${1}; mlive mod 2.4.0 How to dowload it? mlive mod 2.4.0 vb=${2}; case ${op} in -eq | -ne | -lt | -le | -gt | -ge) ;; *) die "${FUNCNAME}: invalid operator: ${op}" ;; esac; __eapi7_ver_compare "${va}" "${vb}"; mlive mod 2.4.0 How to get it? mlive mod 2.4.0 test $? "${op}" 2 } mlive mod 2.4.0