add/update packages
This commit is contained in:
+111
@@ -0,0 +1,111 @@
|
||||
From a7c1f5fce6303a643fadff7d85d59934bd0cf6b6 Mon Sep 17 00:00:00 2001
|
||||
From: Aaron Plattner <aplattner@nvidia.com>
|
||||
Date: Mon, 18 May 2020 15:27:01 -0700
|
||||
Subject: [PATCH] nvidia-settings: Make VDPAUDeviceFunctions static to
|
||||
ctkvdpau.c
|
||||
|
||||
GCC 10 defaults to building with -fno-common, which exposes a bug in
|
||||
nvidia-settings: The VDPAUDeviceFunctions structure is defined as global in
|
||||
ctkvdpau.h, so both ctkvdpau.o and ctkwindow.o have it as a global, non-static
|
||||
"tentative definition" symbol. The GCC 10 man page describes it like this:
|
||||
|
||||
-fcommon
|
||||
In C code, this option controls the placement of global variables
|
||||
defined without an initializer, known as tentative definitions in
|
||||
the C standard. Tentative definitions are distinct from
|
||||
declarations of a variable with the "extern" keyword, which do not
|
||||
allocate storage.
|
||||
|
||||
The default is -fno-common, which specifies that the compiler
|
||||
places uninitialized global variables in the BSS section of the
|
||||
object file. This inhibits the merging of tentative definitions by
|
||||
the linker so you get a multiple-definition error if the same
|
||||
variable is accidentally defined in more than one compilation unit.
|
||||
|
||||
The -fcommon places uninitialized global variables in a common
|
||||
block. This allows the linker to resolve all tentative definitions
|
||||
of the same variable in different compilation units to the same
|
||||
object, or to a non-tentative definition. This behavior is
|
||||
inconsistent with C++, and on many targets implies a speed and code
|
||||
size penalty on global variable references. It is mainly useful to
|
||||
enable legacy code to link without errors.
|
||||
|
||||
Since the copy of VDPAUDeviceFunctions in ctkwindow.o is not used, just remove
|
||||
it by moving the definition of this structure into ctkvdpau.c.
|
||||
---
|
||||
src/gtk+-2.x/ctkvdpau.c | 23 +++++++++++++++++++++++
|
||||
src/gtk+-2.x/ctkvdpau.h | 24 ------------------------
|
||||
2 files changed, 23 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/src/gtk+-2.x/ctkvdpau.c b/src/gtk+-2.x/ctkvdpau.c
|
||||
index 2f120f0..6149c28 100644
|
||||
--- a/src/gtk+-2.x/ctkvdpau.c
|
||||
+++ b/src/gtk+-2.x/ctkvdpau.c
|
||||
@@ -103,6 +103,29 @@ const gchar* __video_mixer_parameter_help =
|
||||
const gchar* __video_mixer_attribute_help =
|
||||
"This shows the video mixer attributes and any applicable ranges.";
|
||||
|
||||
+static struct VDPAUDeviceImpl {
|
||||
+
|
||||
+ VdpGetErrorString *GetErrorString;
|
||||
+ VdpGetProcAddress *GetProcAddress;
|
||||
+ VdpGetApiVersion *GetApiVersion;
|
||||
+ VdpGetInformationString *GetInformationString;
|
||||
+ VdpVideoSurfaceQueryCapabilities *VideoSurfaceQueryCapabilities;
|
||||
+ VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities
|
||||
+ *VideoSurfaceQueryGetPutBitsYCbCrCapabilities;
|
||||
+ VdpOutputSurfaceQueryCapabilities *OutputSurfaceQueryCapabilities;
|
||||
+ VdpOutputSurfaceQueryGetPutBitsNativeCapabilities
|
||||
+ *OutputSurfaceQueryGetPutBitsNativeCapabilities;
|
||||
+ VdpOutputSurfaceQueryPutBitsYCbCrCapabilities
|
||||
+ *OutputSurfaceQueryPutBitsYCbCrCapabilities;
|
||||
+ VdpBitmapSurfaceQueryCapabilities *BitmapSurfaceQueryCapabilities;
|
||||
+ VdpDecoderQueryCapabilities *DecoderQueryCapabilities;
|
||||
+ VdpVideoMixerQueryFeatureSupport *VideoMixerQueryFeatureSupport;
|
||||
+ VdpVideoMixerQueryParameterSupport *VideoMixerQueryParameterSupport;
|
||||
+ VdpVideoMixerQueryAttributeSupport *VideoMixerQueryAttributeSupport;
|
||||
+ VdpVideoMixerQueryParameterValueRange *VideoMixerQueryParameterValueRange;
|
||||
+ VdpVideoMixerQueryAttributeValueRange *VideoMixerQueryAttributeValueRange;
|
||||
+} VDPAUDeviceFunctions;
|
||||
+
|
||||
static int queryOutputSurface(CtkVDPAU *ctk_vdpau, VdpDevice device,
|
||||
VdpGetProcAddress *getProcAddress);
|
||||
|
||||
diff --git a/src/gtk+-2.x/ctkvdpau.h b/src/gtk+-2.x/ctkvdpau.h
|
||||
index ec58d36..2652f6f 100644
|
||||
--- a/src/gtk+-2.x/ctkvdpau.h
|
||||
+++ b/src/gtk+-2.x/ctkvdpau.h
|
||||
@@ -45,30 +45,6 @@ G_BEGIN_DECLS
|
||||
#define CTK_VDPAU_GET_CLASS(obj) \
|
||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_VDPAU, CtkVDPAUClass))
|
||||
|
||||
-
|
||||
-struct VDPAUDeviceImpl {
|
||||
-
|
||||
- VdpGetErrorString *GetErrorString;
|
||||
- VdpGetProcAddress *GetProcAddress;
|
||||
- VdpGetApiVersion *GetApiVersion;
|
||||
- VdpGetInformationString *GetInformationString;
|
||||
- VdpVideoSurfaceQueryCapabilities *VideoSurfaceQueryCapabilities;
|
||||
- VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities
|
||||
- *VideoSurfaceQueryGetPutBitsYCbCrCapabilities;
|
||||
- VdpOutputSurfaceQueryCapabilities *OutputSurfaceQueryCapabilities;
|
||||
- VdpOutputSurfaceQueryGetPutBitsNativeCapabilities
|
||||
- *OutputSurfaceQueryGetPutBitsNativeCapabilities;
|
||||
- VdpOutputSurfaceQueryPutBitsYCbCrCapabilities
|
||||
- *OutputSurfaceQueryPutBitsYCbCrCapabilities;
|
||||
- VdpBitmapSurfaceQueryCapabilities *BitmapSurfaceQueryCapabilities;
|
||||
- VdpDecoderQueryCapabilities *DecoderQueryCapabilities;
|
||||
- VdpVideoMixerQueryFeatureSupport *VideoMixerQueryFeatureSupport;
|
||||
- VdpVideoMixerQueryParameterSupport *VideoMixerQueryParameterSupport;
|
||||
- VdpVideoMixerQueryAttributeSupport *VideoMixerQueryAttributeSupport;
|
||||
- VdpVideoMixerQueryParameterValueRange *VideoMixerQueryParameterValueRange;
|
||||
- VdpVideoMixerQueryAttributeValueRange *VideoMixerQueryAttributeValueRange;
|
||||
-} VDPAUDeviceFunctions;
|
||||
-
|
||||
/* Generic description structure */
|
||||
typedef struct
|
||||
{
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
# Maintainer: Alonso Rodriguez <alonsorodi20 (at) gmail (dot) com>
|
||||
# Maintainer: Sven-Hendrik Haase <svenstaro@gmail.com>
|
||||
|
||||
pkgbase=nvidia-390xx-settings
|
||||
pkgname=('nvidia-390xx-settings' 'libxnvctrl-390xx')
|
||||
pkgver=390.138
|
||||
pkgrel=1
|
||||
pkgdesc='Tool for configuring the NVIDIA graphics driver, 390xx legacy branch'
|
||||
url='https://github.com/NVIDIA/nvidia-settings'
|
||||
arch=('x86_64')
|
||||
license=('GPL2')
|
||||
makedepends=('git' 'inetutils' 'gtk2' 'jansson' 'gtk3' 'libxv' 'libvdpau' 'nvidia-390xx-utils' 'libxext')
|
||||
options=('staticlibs')
|
||||
source=(nvidia-settings-${pkgver}.tar.gz::https://github.com/NVIDIA/nvidia-settings/archive/${pkgver}.tar.gz
|
||||
libxnvctrl_so.patch
|
||||
0001-nvidia-settings-Make-VDPAUDeviceFunctions-static-to-.patch)
|
||||
sha512sums=('c27c8dbb858f06982e251bd3bf49650d05ca8811d61eb342b43bf00bc595b8d789b38b7ebd76b9ab5786ec5bee84b1cb44ee3f3fb24c40dee1b1b9d535993eb6'
|
||||
'f69f5dc84fe624579a3c9ce877f4ae4e34c2184877576afbea07b8abdd7ff01e470517f2b77cd11a904518cbcb83fb388ca1d08888006f0ef2854723920c9cf8'
|
||||
'0fd6355a10dfecb3636764f40eb0d4a4625f69e48fb653060f40e2bde8bf51eb04ae08be8751163d94e022c6f595a9756cde9d8404a556a4a83e3b5b74052c53')
|
||||
|
||||
prepare() {
|
||||
cd nvidia-settings-${pkgver}
|
||||
patch -p1 < "${srcdir}/libxnvctrl_so.patch"
|
||||
patch -p1 < "${srcdir}/0001-nvidia-settings-Make-VDPAUDeviceFunctions-static-to-.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
# Set env variables
|
||||
export PREFIX=/usr
|
||||
export NV_USE_BUNDLED_LIBJANSSON=0
|
||||
|
||||
cd nvidia-settings-${pkgver}
|
||||
make
|
||||
make -C src/libXNVCtrl
|
||||
}
|
||||
|
||||
package_nvidia-390xx-settings() {
|
||||
depends=('jansson' 'gtk3' 'libxv' 'libvdpau' 'nvidia-390xx-utils' 'libxnvctrl-390xx')
|
||||
conflicts=('nvidia-settings')
|
||||
provides=('nvidia-settings')
|
||||
|
||||
cd nvidia-settings-${pkgver}
|
||||
make DESTDIR="${pkgdir}" install
|
||||
|
||||
install -D -m644 doc/nvidia-settings.desktop "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
|
||||
install -D -m644 doc/nvidia-settings.png "${pkgdir}/usr/share/pixmaps/nvidia-settings.png"
|
||||
sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
|
||||
|
||||
rm "$pkgdir/usr/lib/libnvidia-gtk2.so.$pkgver"
|
||||
}
|
||||
|
||||
package_libxnvctrl-390xx() {
|
||||
depends=('libxext')
|
||||
conflicts=('libxnvctrl')
|
||||
provides=('libxnvctrl')
|
||||
pkgdesc='NVIDIA NV-CONTROL X extension, 390xx legacy branch'
|
||||
|
||||
cd nvidia-settings-${pkgver}
|
||||
install -Dm 644 doc/{NV-CONTROL-API.txt,FRAMELOCK.txt} -t "${pkgdir}/usr/share/doc/${pkgname}"
|
||||
install -Dm 644 samples/{Makefile,README,*.c,*.h,*.mk} -t "${pkgdir}/usr/share/doc/${pkgname}/samples"
|
||||
|
||||
cd src/libXNVCtrl
|
||||
install -Dm 644 *.h -t "${pkgdir}/usr/include/NVCtrl"
|
||||
install -Dm 644 libXNVCtrl.a -t "${pkgdir}/usr/lib"
|
||||
install -Dm 755 libXNVCtrl.so.0.0.0 -t "${pkgdir}/usr/lib"
|
||||
ln -s libXNVCtrl.so.0.0.0 "${pkgdir}/usr/lib/libXNVCtrl.so.0"
|
||||
ln -s libXNVCtrl.so.0 "${pkgdir}/usr/lib/libXNVCtrl.so"
|
||||
}
|
||||
|
||||
# vim: ts=2 sw=2 et:
|
||||
@@ -0,0 +1,67 @@
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -106,6 +106,8 @@
|
||||
XNVCTRL_DIR ?= libXNVCtrl
|
||||
XNVCTRL_MAKEFILE ?= Makefile
|
||||
XNVCTRL_ARCHIVE ?= $(XNVCTRL_DIR)/libXNVCtrl.a
|
||||
+XNVCTRL_SHARED ?= $(XNVCTRL_DIR)/libXNVCtrl.so.0
|
||||
+XNVCTRL_LIB ?= $(XNVCTRL_SHARED)
|
||||
XCONFIG_PARSER_DIR ?= XF86Config-parser
|
||||
COMMON_UTILS_DIR ?= common-utils
|
||||
COMMON_UNIX_DIR ?= common-unix
|
||||
@@ -280,15 +282,18 @@
|
||||
$(MKDIR) $(BINDIR)
|
||||
$(INSTALL) $(INSTALL_BIN_ARGS) $< $(BINDIR)/$(notdir $<)
|
||||
|
||||
+$(XNVCTRL_ARCHIVE) $(XNVCTRL_SHARED):
|
||||
+ $(MAKE) -C $(XNVCTRL_DIR)
|
||||
+
|
||||
$(eval $(call DEBUG_INFO_RULES, $(NVIDIA_SETTINGS)))
|
||||
-$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(XNVCTRL_ARCHIVE)
|
||||
+$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(XNVCTRL_LIB)
|
||||
$(call quiet_cmd,LINK) $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \
|
||||
- -rdynamic -o $@ $(OBJS) $(XNVCTRL_ARCHIVE) $(LIBS)
|
||||
+ -rdynamic -o $@ $(OBJS) $(XNVCTRL_LIB) $(LIBS)
|
||||
|
||||
$(eval $(call DEBUG_INFO_RULES, $(GTK2LIB)))
|
||||
$(GTK2LIB).unstripped: $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK)
|
||||
$(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \
|
||||
- $(XNVCTRL_ARCHIVE) $(LIBS) $(GTK2_LIBS) \
|
||||
+ $(XNVCTRL_LIB) $(LIBS) $(GTK2_LIBS) \
|
||||
-Wl,--unresolved-symbols=ignore-all -o $@ \
|
||||
-Wl,-soname -Wl,$(GTK2LIB_SONAME) \
|
||||
$(GTK2_OBJS) $(XCP_OBJS)
|
||||
@@ -297,7 +302,7 @@
|
||||
$(eval $(call DEBUG_INFO_RULES, $(GTK3LIB)))
|
||||
$(GTK3LIB).unstripped: $(GTK3_OBJS) $(XCP_OBJS) $(VERSION_MK)
|
||||
$(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \
|
||||
- $(XNVCTRL_ARCHIVE) $(LIBS) $(GTK3_LIBS) \
|
||||
+ $(XNVCTRL_LIB) $(LIBS) $(GTK3_LIBS) \
|
||||
-Wl,--unresolved-symbols=ignore-all -o $@ \
|
||||
-Wl,-soname -Wl,$(GTK3LIB_SONAME) \
|
||||
$(GTK3_OBJS) $(XCP_OBJS)
|
||||
--- a/src/libXNVCtrl/Makefile
|
||||
+++ b/src/libXNVCtrl/Makefile
|
||||
@@ -55,10 +55,17 @@
|
||||
.PHONY: clean
|
||||
|
||||
all: $(LIBXNVCTRL)
|
||||
+all: libXNVCtrl.so
|
||||
|
||||
$(LIBXNVCTRL) : $(OBJS)
|
||||
$(AR) ru $@ $(OBJS)
|
||||
|
||||
+libXNVCtrl.so: $(OBJS)
|
||||
+ $(RM) $@ $@.*
|
||||
+ $(CC) -shared -Wl,-soname=$@.0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11
|
||||
+ ln -s $@.0.0.0 $@.0
|
||||
+ ln -s $@.0 $@
|
||||
+
|
||||
# define the rule to build each object file
|
||||
$(foreach src,$(SRC),$(eval $(call DEFINE_OBJECT_RULE,TARGET,$(src))))
|
||||
|
||||
@@ -68,3 +75,4 @@
|
||||
clean:
|
||||
rm -rf $(LIBXNVCTRL) *~ $(STAMP_C) \
|
||||
$(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d
|
||||
+ rm -f libXNVCtrl.so libXNVCtrl.so.*
|
||||
Reference in New Issue
Block a user