From patchwork Mon Jul 27 08:47:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yann E. MORIN" X-Patchwork-Id: 1336763 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=free.fr Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=RAI4aP8n; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BFYMh47q0z9sRR for ; Mon, 27 Jul 2020 18:47:12 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 9C38787653; Mon, 27 Jul 2020 08:47:10 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yjm+OeNnFBHm; Mon, 27 Jul 2020 08:47:09 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 0F571875C7; Mon, 27 Jul 2020 08:47:09 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id E43051BF3EB for ; Mon, 27 Jul 2020 08:47:07 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id CE7A120385 for ; Mon, 27 Jul 2020 08:47:07 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TtGGs3PEuItS for ; Mon, 27 Jul 2020 08:47:05 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by silver.osuosl.org (Postfix) with ESMTPS id 9763F2035E for ; Mon, 27 Jul 2020 08:47:05 +0000 (UTC) Received: by mail-wr1-f65.google.com with SMTP id r12so13953780wrj.13 for ; Mon, 27 Jul 2020 01:47:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+WSvy00LP1S1f9kZHKr9IbOmssLQE6Mpl7GJzCbIHu4=; b=RAI4aP8nlnFZJe+qxVQnkAdCUflkahTrNTdHTyDSzKo8CET+RQq6u4FECWT6lO/3rX F5/eNsGNc5CWntZbx4Se0N4QYR9HL4aWq9E+OpdAF+NSebLlL+kQlx0pIEctIby60Cpl nuiYcWfNs7cTchiL15vrj9g2iAbJkDygeCQlwNzI/NnU5Z0HbLnuEAYhsMPukGF577Wh 1fj6e2HEvtEfffOu9mezuaV8syU8q7O4H29eQIWxru34nHuPngdPInV5bc/ydrLMrfZP kr0HmzQAhDIMgzs9zk1v3QYoXLBG7yYJYonTyE3mMeOIb1mXbDCyRRZFQB7AShWI6qPo ABJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=+WSvy00LP1S1f9kZHKr9IbOmssLQE6Mpl7GJzCbIHu4=; b=TCaGmRQ9Erw8AOlR+SeWdiGAMNCPqRYGu4CtxRfQ6Kd/H2A4y+Dtznim/mY7lwWS7G vEveF689IYwtXCRbBJH/+fk+u8IaBPEXDcGNNfTcqEffm7M+Fczwxe5HmAa+Bgau4WZt sDs7zGsyYI9tK3ylavAiz0bMDYV5qfcvGlHM3v9PqJ7qRYdAGNfO1RGw2n4HRtSJXIpe /7mJMuyxHkHO0DJKnnGz8bl9se9WvtPEc7aqXyq/pXlRysqXOgXFeuec7KAnBxkyJw1c Mw2a+T26MokFSvVxXsTvQICyENhNjTjKOPdhuCGQL4RGOQXhSVVQojdGSkbbabxOrr17 1+OQ== X-Gm-Message-State: AOAM532HTdfp4by8JNgqmnmGUvn+dOcbWzrceenGF0NjkVMXxFCc+MlF cSlG/kzQkZgtSBV50f0BpU+j49VN X-Google-Smtp-Source: ABdhPJx6hs11Hkkltj/U03ZH4PPmmCdqUdocs5C+W2/oSNFGs2Mq2swUMZVZXlXq5Q6La26j27uy2A== X-Received: by 2002:a5d:4005:: with SMTP id n5mr17523231wrp.26.1595839623710; Mon, 27 Jul 2020 01:47:03 -0700 (PDT) Received: from scaer.home ([2a01:cb19:8b51:cb00:5d11:901d:4752:98c5]) by smtp.gmail.com with ESMTPSA id x11sm11416845wrl.28.2020.07.27.01.47.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jul 2020 01:47:03 -0700 (PDT) From: "Yann E. MORIN" To: buildroot@buildroot.org Date: Mon, 27 Jul 2020 10:47:01 +0200 Message-Id: <8dc42ab8bd067dedb39f41de33213848fd79e6e3.1595839612.git.yann.morin.1998@free.fr> X-Mailer: git-send-email 2.20.1 In-Reply-To: References: MIME-Version: 1.0 Subject: [Buildroot] [PATCH 1/2 v4] package/libglvnd: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jakub Skrzypnik , "Yann E . MORIN" Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Jakub Skrzypnik libglvnd is the GL Vendor-Neutral Dispatch library, used to dispatch GL calls across multiple GL implementations at runtime. Full GL support, as usual, requires (parts of) the X11 stack: libX11, libXext, and xorgproto (for glproto). However, with just libX11, it is possible to do EGL on X11. EGL and GLES have no dependencies. Note: x11 and glx are 'features', so need to be 'enabled' or 'disabled' (or 'auto', but we don't care in Buildroot), while egl and gles1/2 are 'booleans', so need to be 'true' or 'false'. When an actual provider for GL, EGL, or GLES is enabled, so must the corresponding flavour be enabled in libglvnd. Conversely, when there is no actual provider, the corresponding support must be disabled in libglvnd. So we make each flavour selectable with hidden options, which actual providers will have to select. The license for libglvnd itself is a custom license by NVidia. It is pretty close to MIT, but it's different (although Debian does classify it as MIT); SPDX has no identifier for that license either. As such, we choose to just identify it as 'libglvnd license', and let users deal that with their legal department. Additionally, libglvnd bundles some code from other projects, so we list them explicitly as well. Signed-off-by: Jakub Skrzypnik [yann.morin.1998@free.fr: - provide help text - don't force X11 libraries, split them between X11 and full GL - make each flavour selectable - fix make check-package issues - fix and complete licensing information - bump to 1.3.2 - expand commit log ] Signed-off-by: Yann E. MORIN --- package/Config.in | 1 + package/libglvnd/Config.in | 42 +++++++++++++++++++++++++++ package/libglvnd/libglvnd.hash | 7 +++++ package/libglvnd/libglvnd.mk | 53 ++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 package/libglvnd/Config.in create mode 100644 package/libglvnd/libglvnd.hash create mode 100644 package/libglvnd/libglvnd.mk diff --git a/package/Config.in b/package/Config.in index 5c30d27b7a..58e648fadc 100644 --- a/package/Config.in +++ b/package/Config.in @@ -311,6 +311,7 @@ comment "Graphic libraries" source "package/fbv/Config.in" source "package/freerdp/Config.in" source "package/imagemagick/Config.in" + source "package/libglvnd/Config.in" source "package/linux-fusion/Config.in" source "package/lite/Config.in" source "package/mesa3d/Config.in" diff --git a/package/libglvnd/Config.in b/package/libglvnd/Config.in new file mode 100644 index 0000000000..680479a19b --- /dev/null +++ b/package/libglvnd/Config.in @@ -0,0 +1,42 @@ +config BR2_PACKAGE_LIBGLVND + bool "libglvnd" + help + The GL Vendor-Neutral Dispatch library + + libglvnd is a vendor-neutral dispatch layer for arbitrating + OpenGL API calls between multiple vendors. It allows multiple + drivers from different vendors to coexist on the same + filesystem, and determines which vendor to dispatch each API + call to at runtime. + + Both GLX and EGL are supported, in any combination with OpenGL + and OpenGL ES. + +if BR2_PACKAGE_LIBGLVND + +config BR2_PACKAGE_LIBGLVND_DISPATCH_GL + bool + depends on BR2_PACKAGE_XORG7 # libx11, libXext, xorgproto + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXEXT + select BR2_PACKAGE_XLIB_XORGPROTO + select BR2_PACKAGE_HAS_LIBGL + +config BR2_PACKAGE_LIBGLVND_DISPATCH_EGL + bool + select BR2_PACKAGE_HAS_LIBEGL + +config BR2_PACKAGE_LIBGLVND_DISPATCH_GLES + bool + select BR2_PACKAGE_HAS_LIBGLES + +config BR2_PACKAGE_PROVIDES_LIBGL + default "libglvnd" if BR2_PACKAGE_LIBGLVND_DISPATCH_GL + +config BR2_PACKAGE_PROVIDES_LIBEGL + default "libglvnd" if BR2_PACKAGE_LIBGLVND_DISPATCH_EGL + +config BR2_PACKAGE_PROVIDES_LIBGLES + default "libglvnd" if BR2_PACKAGE_LIBGLVND_DISPATCH_GLES + +endif diff --git a/package/libglvnd/libglvnd.hash b/package/libglvnd/libglvnd.hash new file mode 100644 index 0000000000..15e76ea9e8 --- /dev/null +++ b/package/libglvnd/libglvnd.hash @@ -0,0 +1,7 @@ +# Locally computed +sha256 6332c27f4c792b09a3eb1d7ae18c2d6ff6a0acaf3a746489caf859e659fca2f7 libglvnd-v1.3.2.tar.gz + +# Locally computed hashes for license files +sha256 224534547628a9e5e889d8808385bd38839e6bdb77d89c90ac04dad6891a4f5f README.md +sha256 bebdc0fd27cd37af8406e47af23c113866b7856c3f7349ffcbc672029ec8acf7 src/util/uthash/LICENSE +sha256 f6f207863675ca5a5128fd120b9aef4f4bbab73ffa57e5f771ccffc8e3cc56b7 src/util/cJSON/LICENSE diff --git a/package/libglvnd/libglvnd.mk b/package/libglvnd/libglvnd.mk new file mode 100644 index 0000000000..3df609f6eb --- /dev/null +++ b/package/libglvnd/libglvnd.mk @@ -0,0 +1,53 @@ +################################################################################ +# +# libglvnd +# +################################################################################ + +LIBGLVND_VERSION = 1.3.2 +LIBGLVND_SOURCE = libglvnd-v$(LIBGLVND_VERSION).tar.gz +LIBGLVND_SITE = https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v$(LIBGLVND_VERSION) + +LIBGLVND_LICENSE = \ + libglvnd license, \ + Apache-2.0 (Khronos headers), \ + MIT (Xorg; mesa; cJSON), \ + BSD-1=Clause (uthash) + +LIBGLVND_LICENSE_FILES = \ + README.md \ + src/util/uthash/LICENSE \ + src/util/cJSON/LICENSE + +LIBGLVND_INSTALL_STAGING = YES + +ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) +LIBGLVND_DEPENDENCIES += xlib_libX11 +LIBGLVND_CONF_OPTS += -Dx11=enabled +else +LIBGLVND_CONF_OPTS += -Dx11=disabled +endif + +ifeq ($(BR2_PACKAGE_LIBGLVND_DISPATCH_GL),y) +LIBGLVND_DEPENDENCIES += xlib_libXext xorgproto +LIBGLVND_CONF_OPTS += -Dglx=enabled +LIBGLVND_PROVIDES += libgl +else +LIBGLVND_CONF_OPTS += -Dglx=disabled +endif + +ifeq ($(BR2_PACKAGE_LIBGLVND_DISPATCH_EGL),y) +LIBGLVND_CONF_OPTS = -Degl=true +LIBGLVND_PROVIDES += libegl +else +LIBGLVND_CONF_OPTS = -Degl=false +endif + +ifeq ($(BR2_PACKAGE_LIBGLVND_DISPATCH_GLES),y) +LIBGLVND_CONF_OPTS = -Dgles1=true -Dgles2=true +LIBGLVND_PROVIDES += libgles +else +LIBGLVND_CONF_OPTS = -Dgles1=false -Dgles2=false +endif + +$(eval $(meson-package))