Bump buildroot to 2019.02

This commit is contained in:
2019-03-28 22:49:48 +01:00
parent 5598b1b762
commit 920d307141
5121 changed files with 78550 additions and 46132 deletions

View File

@@ -0,0 +1,37 @@
From c11299086b7718332e2b4fbc37ce6f6ff427c5ba Mon Sep 17 00:00:00 2001
From: Yuqing Zhu <carol.zhu@nxp.com>
Date: Mon, 27 Mar 2017 15:33:35 +0800
Subject: [PATCH] qtbase: Fix build error when using EGL
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
A build error was occurring due to missing EGL configuration.
Fixed by adding the necessary ties to the EGL pkg-config.
Task-number: QTBUG-61712
Change-Id: I87190ea39392b4604c563cf9d89edb85068d85fc
Upstream-Status: Pending
Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
---
mkspecs/features/egl.prf | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/mkspecs/features/egl.prf b/mkspecs/features/egl.prf
index 9fa0c9e219..85d5852ba6 100644
--- a/mkspecs/features/egl.prf
+++ b/mkspecs/features/egl.prf
@@ -1,3 +1,9 @@
+# egl headers need a definition
+PKG_CONFIG = $$pkgConfigExecutable()
+PKGCONFIG_CFLAGS = $$system($$PKG_CONFIG --cflags egl)
+PKGCONFIG_CFLAGS = $$find(PKGCONFIG_CFLAGS, ^-D.*)
+QMAKE_CFLAGS_EGL = $$PKGCONFIG_CFLAGS
+
INCLUDEPATH += $$QMAKE_INCDIR_EGL
LIBS_PRIVATE += $$QMAKE_LIBS_EGL
QMAKE_CFLAGS += $$QMAKE_CFLAGS_EGL
--
2.16.1

View File

@@ -0,0 +1,26 @@
From e81ba4e0de16ff741417ae7ed7dfe7b5a83d66e2 Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Mon, 13 Aug 2018 20:15:05 +0200
Subject: [PATCH] double-conversion: enable for aarch64_be
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
.../double-conversion/include/double-conversion/utils.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h
index 20bfd36c84..77baa2861a 100644
--- a/src/3rdparty/double-conversion/include/double-conversion/utils.h
+++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h
@@ -65,7 +65,7 @@
defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
defined(__SH4__) || defined(__alpha__) || \
defined(_MIPS_ARCH_MIPS32R2) || \
- defined(__AARCH64EL__)
+ defined(__AARCH64EL__) || defined(__AARCH64EB__)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
#if defined(_WIN32)
--
2.18.0

View File

@@ -0,0 +1,27 @@
From f9920819e6600a68829fb4600f11b70ebc2a33e7 Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Sat, 18 Aug 2018 23:44:20 +0200
Subject: [PATCH] double-conversion: enable for or1k
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
.../double-conversion/include/double-conversion/utils.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h
index 77baa2861a..b0a7d5d4f4 100644
--- a/src/3rdparty/double-conversion/include/double-conversion/utils.h
+++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h
@@ -65,7 +65,8 @@
defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
defined(__SH4__) || defined(__alpha__) || \
defined(_MIPS_ARCH_MIPS32R2) || \
- defined(__AARCH64EL__) || defined(__AARCH64EB__)
+ defined(__AARCH64EL__) || defined(__AARCH64EB__) || \
+ defined(__or1k__)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
#if defined(_WIN32)
--
2.18.0

View File

@@ -0,0 +1,27 @@
From 372d33fbe549ea73318c187505716ac99fbf3054 Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Tue, 21 Aug 2018 21:11:40 +0200
Subject: [PATCH] double-conversion: enable for microblaze
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
.../double-conversion/include/double-conversion/utils.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h
index b0a7d5d4f4..485f680180 100644
--- a/src/3rdparty/double-conversion/include/double-conversion/utils.h
+++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h
@@ -66,7 +66,8 @@
defined(__SH4__) || defined(__alpha__) || \
defined(_MIPS_ARCH_MIPS32R2) || \
defined(__AARCH64EL__) || defined(__AARCH64EB__) || \
- defined(__or1k__)
+ defined(__or1k__) || \
+ defined(__microblaze__)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
#if defined(_WIN32)
--
2.18.0

View File

@@ -0,0 +1,31 @@
From 982801a21c3abad7025a7110275a49e200bc460f Mon Sep 17 00:00:00 2001
From: Stefan O'Rear <stefanor@cox.net>
Date: Thu, 17 Nov 2016 09:54:33 -0800
Subject: [PATCH] double-conversion: enable for riscv
Original double conversion patch [1] 'Add support for RISC-V' ported
to qtbase-5.11.3.
[1] Upstream: https://github.com/google/double-conversion/commit/8316ed5bf405835558a476e528d8e1d0adf69dd9
Change-Id: Id88a356940f4d61dbcec3741a74db695e47af3f0
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
src/3rdparty/double-conversion/include/double-conversion/utils.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h
index 485f680180..a736b14d1e 100644
--- a/src/3rdparty/double-conversion/include/double-conversion/utils.h
+++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h
@@ -66,6 +66,7 @@
defined(__SH4__) || defined(__alpha__) || \
defined(_MIPS_ARCH_MIPS32R2) || \
defined(__AARCH64EL__) || defined(__AARCH64EB__) || \
+ defined(__riscv) || \
defined(__or1k__) || \
defined(__microblaze__)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
--
2.20.1

View File

@@ -0,0 +1,11 @@
# Hash from: https://download.qt.io/official_releases/qt/5.11/5.11.3/submodules/qtbase-everywhere-src-5.11.3.tar.xz.sha256
sha256 c6bf887732b83ce072eb72eddb7497bedcdf9ca794e7ed91261a93f063623e1c qtbase-everywhere-src-5.11.3.tar.xz
# Hashes for license files:
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3
sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT
sha256 88ec689407cf2df9b2eb5c45952564d51ce73c129a3bdffb15c0d2d161ad7558 LICENSE.LGPLv3
sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL
sha256 1f4fa3d202198f5d836993748eac9d91157e2cec7fb8426f56000a02a677cdc5 header.BSD
sha256 2a886915de4f296cdae5ed67064f86dba01d0c55286d86e8487f2a5caaf40216 src/3rdparty/harfbuzz-ng/COPYING

View File

@@ -0,0 +1,37 @@
From d69bd3fd52502c7eb2799397fea14afe350e2cbf Mon Sep 17 00:00:00 2001
From: Yuqing Zhu <carol.zhu@nxp.com>
Date: Mon, 27 Mar 2017 15:33:35 +0800
Subject: [PATCH] qtbase: Fix build error when using EGL
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
A build error was occurring due to missing EGL configuration.
Fixed by adding the necessary ties to the EGL pkg-config.
Task-number: QTBUG-61712
Change-Id: I87190ea39392b4604c563cf9d89edb85068d85fc
Upstream-Status: Pending
Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
---
mkspecs/features/egl.prf | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/mkspecs/features/egl.prf b/mkspecs/features/egl.prf
index 9fa0c9e219..85d5852ba6 100644
--- a/mkspecs/features/egl.prf
+++ b/mkspecs/features/egl.prf
@@ -1,3 +1,9 @@
+# egl headers need a definition
+PKG_CONFIG = $$pkgConfigExecutable()
+PKGCONFIG_CFLAGS = $$system($$PKG_CONFIG --cflags egl)
+PKGCONFIG_CFLAGS = $$find(PKGCONFIG_CFLAGS, ^-D.*)
+QMAKE_CFLAGS_EGL = $$PKGCONFIG_CFLAGS
+
INCLUDEPATH += $$QMAKE_INCDIR_EGL
LIBS_PRIVATE += $$QMAKE_LIBS_EGL
QMAKE_CFLAGS += $$QMAKE_CFLAGS_EGL
--
2.16.1

View File

@@ -0,0 +1,29 @@
From 62588f2d8267c67c2337004e83e80695280db9eb Mon Sep 17 00:00:00 2001
From: James Grant <jamesg@zaltys.org>
Date: Sun, 3 Mar 2019 17:29:29 +1300
Subject: [PATCH 1/1] libressl - add -fpermissive gcc flag to allow
compilation.
Workaround for 'const BIO_METHOD *' vs. 'BIO_METHOD *' changes to BIO_new() and BIO_s_mem() function signatures.
Signed-off-by: James Grant <jamesg@zaltys.org>
---
src/network/ssl/ssl.pri | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri
index 29c47cd7..f0aad448 100644
--- a/src/network/ssl/ssl.pri
+++ b/src/network/ssl/ssl.pri
@@ -77,7 +77,7 @@ android:!android-no-sdk: SOURCES += ssl/qsslsocket_openssl_android.cpp
LIBS_PRIVATE += $$OPENSSL_LIBS_RELEASE
}
- QMAKE_CXXFLAGS += $$OPENSSL_CFLAGS
+ QMAKE_CXXFLAGS += $$OPENSSL_CFLAGS -fpermissive
LIBS_PRIVATE += $$OPENSSL_LIBS
win32: LIBS_PRIVATE += -lcrypt32
}
--
2.18.1

View File

@@ -1,3 +1,6 @@
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtbase-opensource-src-5.6.3.tar.xz.mirrorlist
sha256 fef48529a6fc2617a30d75d952cb327c6be341fd104154993922184b3b3b4da1 qtbase-opensource-src-5.6.3.tar.xz
# Hashes for license files:
sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3
sha256 66f6bb53f6d985a4d651bf1ecfe8bbcbe32b0f744708d588f047580ee85d8ec8 LICENSE.LGPLv21

View File

@@ -75,14 +75,15 @@ config BR2_PACKAGE_QT5BASE_PSQL
bool "PostgreSQL Plugin"
depends on BR2_USE_MMU # postgresql
depends on !BR2_STATIC_LIBS
depends on BR2_USE_WCHAR # postgresql
select BR2_PACKAGE_POSTGRESQL
help
Build PostgreSQL plugin
If unsure, say n.
comment "PostgreSQL plugin needs a toolchain w/ dynamic library"
comment "PostgreSQL plugin needs a toolchain w/ wchar, dynamic library"
depends on BR2_USE_MMU
depends on BR2_STATIC_LIBS
depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR
choice
prompt "SQLite 3 support"
@@ -103,6 +104,7 @@ config BR2_PACKAGE_QT5BASE_SQLITE_QT
config BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM
bool "System SQLite"
select BR2_PACKAGE_SQLITE
select BR2_PACKAGE_SQLITE_ENABLE_COLUMN_METADATA
help
Use system SQLite.
@@ -284,6 +286,12 @@ comment "icu support needs a toolchain w/ gcc >= 4.8, host gcc >= 4.8"
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \
!BR2_HOST_GCC_AT_LEAST_4_8
config BR2_PACKAGE_QT5BASE_OPENSSL
bool
# No OpenSSL 1.1.x support in Qt 5.6.x
default y if BR2_PACKAGE_QT5_VERSION_5_6 && BR2_PACKAGE_LIBRESSL
default y if BR2_PACKAGE_QT5_VERSION_LATEST && BR2_PACKAGE_OPENSSL
config BR2_PACKAGE_QT5BASE_TSLIB
bool "Enable Tslib support"
select BR2_PACKAGE_TSLIB

View File

@@ -1,14 +1,2 @@
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtbase-opensource-src-5.6.3.tar.xz.mirrorlist
sha256 fef48529a6fc2617a30d75d952cb327c6be341fd104154993922184b3b3b4da1 qtbase-opensource-src-5.6.3.tar.xz
# Hash from: https://download.qt.io/official_releases/qt/5.9/5.9.6/submodules/qtbase-opensource-src-5.9.6.tar.xz.mirrorlist
sha256 eed620cb268b199bd83b3fc6a471c51d51e1dc2dbb5374fc97a0cc75facbe36f qtbase-opensource-src-5.9.6.tar.xz
# Hashes for license files:
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
sha256 245248009fd0af1725d183248380e476c1283383909358a13686606352bf2a17 LICENSE.GPLv3
sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT
sha256 68afaf3392f8c04218fbf29db43cc0b18bf651c1db086556aa584046de9f3e35 LICENSE.LGPLv3
sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL
sha256 8fdefa0b45d9f791f687da6c2c4c83c1b701aaee2c08008f55d522af214b88f0 header.BSD
sha256 2a886915de4f296cdae5ed67064f86dba01d0c55286d86e8487f2a5caaf40216 src/3rdparty/harfbuzz-ng/COPYING
# This hash file is not used; instead, update the
# hash files in the per-version sub-directories.

View File

@@ -6,7 +6,7 @@
QT5BASE_VERSION = $(QT5_VERSION)
QT5BASE_SITE = $(QT5_SITE)
QT5BASE_SOURCE = qtbase-opensource-src-$(QT5BASE_VERSION).tar.xz
QT5BASE_SOURCE = qtbase-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5BASE_VERSION).tar.xz
QT5BASE_DEPENDENCIES = host-pkgconf zlib
QT5BASE_INSTALL_STAGING = YES
@@ -33,7 +33,24 @@ else
QT5BASE_DEPENDENCIES += pcre2
endif
QT5BASE_CONFIGURE_OPTS += $(call qstrip,$(BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS))
ifeq ($(BR2_X86_CPU_HAS_SSE2),)
QT5BASE_CONFIGURE_OPTS += -no-sse2
else ifeq ($(BR2_X86_CPU_HAS_SSE3),)
QT5BASE_CONFIGURE_OPTS += -no-sse3
else ifeq ($(BR2_X86_CPU_HAS_SSSE3),)
QT5BASE_CONFIGURE_OPTS += -no-ssse3
else ifeq ($(BR2_X86_CPU_HAS_SSE4),)
QT5BASE_CONFIGURE_OPTS += -no-sse4.1
else ifeq ($(BR2_X86_CPU_HAS_SSE42),)
QT5BASE_CONFIGURE_OPTS += -no-sse4.2
else ifeq ($(BR2_X86_CPU_HAS_AVX),)
QT5BASE_CONFIGURE_OPTS += -no-avx
else ifeq ($(BR2_X86_CPU_HAS_AVX2),)
QT5BASE_CONFIGURE_OPTS += -no-avx2
else
# no buildroot BR2_X86_CPU_HAS_AVX512 option yet for qt configure
# option '-no-avx512' (available for latest only)
endif
ifeq ($(BR2_PACKAGE_LIBDRM),y)
QT5BASE_CONFIGURE_OPTS += -kms
@@ -63,7 +80,7 @@ endif
QT5BASE_CONFIGURE_OPTS += -opensource -confirm-license
ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
QT5BASE_LICENSE = GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception(tools), GFDL-1.3 (docs)
QT5BASE_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPLv3 LICENSE.GPL3-EXCEPT LICENSE.LGPLv3 LICENSE.FDL
QT5BASE_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT LICENSE.LGPLv3 LICENSE.FDL
else
QT5BASE_LICENSE = GPL-3.0 or LGPL-2.1 with exception or LGPL-3.0, GFDL-1.3 (docs)
QT5BASE_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL
@@ -171,8 +188,15 @@ else
QT5BASE_CONFIGURE_OPTS += -no-eglfs
endif
ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
# No OpenSSL 1.1.x support in Qt 5.6.x
# LibreSSL works with shared linkage only and -fpermissive patch
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_LIBRESSL),-openssl-linked,-no-openssl)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBRESSL),openssl)
else
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_OPENSSL),-openssl,-no-openssl)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENSSL),openssl)
endif
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_FONTCONFIG),-fontconfig,-no-fontconfig)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_FONTCONFIG),fontconfig)
@@ -247,9 +271,14 @@ QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_PRINTSUPPORT) += Qt5PrintSupport
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_DBUS) += Qt5DBus
ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST)$(BR2_PACKAGE_IMX_GPU_VIV),yy)
ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
ifeq ($(BR2_PACKAGE_IMX_GPU_VIV),y)
# use vivante backend
QT5BASE_EGLFS_DEVICE = EGLFS_DEVICE_INTEGRATION = eglfs_viv
else ifeq ($(BR2_PACKAGE_SUNXI_MALI)$(BR2_PACKAGE_SUNXI_MALI_MAINLINE),y)
# use mali backend
QT5BASE_EGLFS_DEVICE = EGLFS_DEVICE_INTEGRATION = eglfs_mali
endif
endif
ifneq ($(QT5BASE_CONFIG_FILE),)
@@ -266,6 +295,15 @@ define QT5BASE_CONFIGURE_ARCH_CONFIG
endef
endif
# This allows to use ccache when available
define QT5BASE_CONFIGURE_HOSTCC
$(SED) 's,^QMAKE_CC\s*=.*,QMAKE_CC = $(HOSTCC),' $(@D)/mkspecs/common/g++-base.conf
$(SED) 's,^QMAKE_CXX\s*=.*,QMAKE_CXX = $(HOSTCXX),' $(@D)/mkspecs/common/g++-base.conf
endef
# Must be last so can override all options set by Buildroot
QT5BASE_CONFIGURE_OPTS += $(call qstrip,$(BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS))
define QT5BASE_CONFIGURE_CMDS
mkdir -p $(@D)/mkspecs/devices/linux-buildroot-g++/
sed 's/@EGLFS_DEVICE@/$(QT5BASE_EGLFS_DEVICE)/g' \
@@ -276,11 +314,10 @@ define QT5BASE_CONFIGURE_CMDS
$(QT5BASE_CONFIGURE_CONFIG_FILE)
touch $(QT5BASE_ARCH_CONFIG_FILE)
$(QT5BASE_CONFIGURE_ARCH_CONFIG)
$(QT5BASE_CONFIGURE_HOSTCC)
(cd $(@D); \
$(TARGET_MAKE_ENV) \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
PKG_CONFIG_LIBDIR="$(STAGING_DIR)/usr/lib/pkgconfig" \
PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
MAKEFLAGS="$(MAKEFLAGS) -j$(PARALLEL_JOBS)" \
./configure \
-v \
@@ -294,8 +331,8 @@ define QT5BASE_CONFIGURE_CMDS
-nomake tests \
-device buildroot \
-device-option CROSS_COMPILE="$(TARGET_CROSS)" \
-device-option BR_COMPILER_CFLAGS="$(TARGET_CFLAGS) $(QT5BASE_EXTRA_CFLAGS)" \
-device-option BR_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS) $(QT5BASE_EXTRA_CFLAGS)" \
-device-option BR_COMPILER_CFLAGS="$(TARGET_CFLAGS)" \
-device-option BR_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS)" \
$(QT5BASE_CONFIGURE_OPTS) \
)
endef