From ff1692b9834047946f6497f7d19e03aa4b19180c Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Wed, 22 Apr 2020 17:16:17 -0700 Subject: [PATCH 1/2] glib2: update to 2.65.0 Modified to use meson as upstream has abandoned autotools. Added license information. Cleaned up Makefile for consistency between packages. Added hack to compile static libs. Removed old patches and add new ones. Removed BUILD_PARALLEL options. These are default with ninja/meson. Removed gettext build dependencies. glib2 now includes its own solution. Added patch to remove distutils host dependency. Signed-off-by: Rosen Penev --- libs/glib2/Makefile | 96 ++++++++++--------- libs/glib2/patches/000-CVE-2019-12450.patch | 53 ---------- libs/glib2/patches/001-automake-compat.patch | 5 - libs/glib2/patches/001-no-libelf.patch | 23 +++++ .../patches/002-fix-gthreadedresolver.patch | 20 ---- libs/glib2/patches/002-no-tests.patch | 11 +++ libs/glib2/patches/004-no-distutils.patch | 20 ++++ 7 files changed, 105 insertions(+), 123 deletions(-) delete mode 100644 libs/glib2/patches/000-CVE-2019-12450.patch delete mode 100644 libs/glib2/patches/001-automake-compat.patch create mode 100644 libs/glib2/patches/001-no-libelf.patch delete mode 100644 libs/glib2/patches/002-fix-gthreadedresolver.patch create mode 100644 libs/glib2/patches/002-no-tests.patch create mode 100644 libs/glib2/patches/004-no-distutils.patch diff --git a/libs/glib2/Makefile b/libs/glib2/Makefile index f9a793251..df6c5c329 100644 --- a/libs/glib2/Makefile +++ b/libs/glib2/Makefile @@ -8,36 +8,34 @@ include $(TOPDIR)/rules.mk PKG_NAME:=glib2 -PKG_VERSION:=2.58.3 -PKG_RELEASE:=5 +PKG_VERSION:=2.65.0 +PKG_RELEASE:=1 PKG_SOURCE:=glib-$(PKG_VERSION).tar.xz -PKG_BUILD_DIR:=$(BUILD_DIR)/glib-$(PKG_VERSION) -PKG_SOURCE_URL:=@GNOME/glib/2.58 -PKG_HASH:=8f43c31767e88a25da72b52a40f3301fefc49a665b56dc10ee7cc9565cbe7481 - -PKG_BUILD_PARALLEL:=1 -HOST_BUILD_PARALLEL:=1 -PKG_BUILD_DEPENDS:=gettext -HOST_BUILD_DEPENDS:=gettext-full/host libiconv/host libffi/host -PKG_INSTALL:=1 +PKG_SOURCE_URL:=@GNOME/glib/2.65 +PKG_HASH:=b041e63cd0ac1fccb486374022ade040d907aad29b278e27d9e43e9294a6e7a3 +PKG_MAINTAINER:=Peter Wagner +PKG_LICENSE:=LGPL-2.1-or-later +PKG_LICENSE_FILES:=COPYING PKG_CPE_ID:=cpe:/a:gnome:glib -PKG_FIXUP:=autoreconf - +PKG_BUILD_DIR:=$(BUILD_DIR)/glib-$(PKG_VERSION) HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/glib-$(PKG_VERSION) +PKG_BUILD_DEPENDS:=meson/host libiconv/host +HOST_BUILD_DEPENDS:=meson/host libiconv/host libffi/host +PKG_INSTALL:=1 include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk +include ../../devel/meson/meson.mk define Package/glib2 SECTION:=libs CATEGORY:=Libraries - DEPENDS:=$(ICONV_DEPENDS) $(INTL_DEPENDS) +zlib +libpthread +libffi +libattr + DEPENDS:=$(ICONV_DEPENDS) +zlib +libpthread +libffi +libattr TITLE:=glib 2.0 - MAINTAINER:=Peter Wagner URL:=http://www.gtk.org/ endef @@ -45,35 +43,43 @@ define Package/glib2/description The GLib library of C routines endef -TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections -flto - -HOST_CONFIGURE_ARGS += \ - --disable-libelf \ - --disable-selinux \ - --with-libiconv=gnu \ - --with-pcre=internal \ - --disable-libmount - -CONFIGURE_ARGS += \ - --enable-shared \ - --enable-static \ - --disable-debug \ - --disable-selinux \ - --disable-libmount \ - --disable-fam \ - --disable-gtk-doc-html \ - --disable-man \ - --disable-compile-warnings \ - --with-libiconv=gnu \ - --with-pcre=internal - -CONFIGURE_VARS += \ - glib_cv_stack_grows=no \ - glib_cv_uscore=no \ - ac_cv_path_GLIB_GENMARSHAL=$(STAGING_DIR_HOSTPKG)/bin/glib-genmarshal \ - ac_cv_func_mmap_fixed_mapped=yes \ - ac_cv_func_posix_getpwuid_r=yes \ - ac_cv_func_posix_getgrgid_r=yes +HOST_LDFLAGS += -liconv -Wl,-rpath=$(STAGING_DIR_HOSTPKG)/lib +TARGET_CFLAGS += -ffunction-sections -fdata-sections +TARGET_LDFLAGS += -Wl,--gc-sections -liconv + +COMP_ARGS= \ + -Dselinux=disabled \ + -Dlibmount=disabled \ + -Dinternal_pcre=true \ + -Dman=false \ + -Ddtrace=false \ + -Dsystemtap=false \ + -Dgtk_doc=false \ + -Dbsymbolic_functions=true \ + -Dforce_posix_threads=true \ + -Dfam=false \ + -Dinstalled_tests=false \ + -Dnls=disabled \ + -Doss_fuzz=disabled + +MESON_HOST_ARGS += $(COMP_ARGS) -Dxattr=false +MESON_ARGS += $(COMP_ARGS) -Dxattr=true -Db_lto=true + +# hack to compile static libraries +define Build/Compile + $(call Build/Compile/Meson) + $(call Ninja,-C $(MESON_BUILD_DIR) install,DESTDIR="$(PKG_INSTALL_DIR)") + $(call Meson, \ + --reconfigure \ + --buildtype plain \ + --native-file $(PKG_BUILD_DIR)/openwrt-native.txt \ + --cross-file $(PKG_BUILD_DIR)/openwrt-cross.txt \ + -Ddefault_library=static \ + $(MESON_ARGS) \ + $(MESON_BUILD_DIR) \ + $(PKG_BUILD_DIR), \ + $(MESON_VARS)) +endef define Build/InstallDev $(INSTALL_DIR) $(1)/usr/bin @@ -98,7 +104,7 @@ define Build/InstallDev $(1)/usr/lib/ $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/*.{so*,a,la} \ + $(PKG_INSTALL_DIR)/usr/lib/*.{so*,a} \ $(1)/usr/lib/ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig diff --git a/libs/glib2/patches/000-CVE-2019-12450.patch b/libs/glib2/patches/000-CVE-2019-12450.patch deleted file mode 100644 index 6c514e1f8..000000000 --- a/libs/glib2/patches/000-CVE-2019-12450.patch +++ /dev/null @@ -1,53 +0,0 @@ -From d8f8f4d637ce43f8699ba94c9b7648beda0ca174 Mon Sep 17 00:00:00 2001 -From: Ondrej Holy -Date: Thu, 23 May 2019 10:41:53 +0200 -Subject: [PATCH] gfile: Limit access to files when copying - -file_copy_fallback creates new files with default permissions and -set the correct permissions after the operation is finished. This -might cause that the files can be accessible by more users during -the operation than expected. Use G_FILE_CREATE_PRIVATE for the new -files to limit access to those files. ---- - gio/gfile.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/gio/gfile.c b/gio/gfile.c -index 24b136d80..74b58047c 100644 ---- a/gio/gfile.c -+++ b/gio/gfile.c -@@ -3284,12 +3284,12 @@ file_copy_fallback (GFile *source, - out = (GOutputStream*)_g_local_file_output_stream_replace (_g_local_file_get_filename (G_LOCAL_FILE (destination)), - FALSE, NULL, - flags & G_FILE_COPY_BACKUP, -- G_FILE_CREATE_REPLACE_DESTINATION, -- info, -+ G_FILE_CREATE_REPLACE_DESTINATION | -+ G_FILE_CREATE_PRIVATE, info, - cancellable, error); - else - out = (GOutputStream*)_g_local_file_output_stream_create (_g_local_file_get_filename (G_LOCAL_FILE (destination)), -- FALSE, 0, info, -+ FALSE, G_FILE_CREATE_PRIVATE, info, - cancellable, error); - } - else if (flags & G_FILE_COPY_OVERWRITE) -@@ -3297,12 +3297,13 @@ file_copy_fallback (GFile *source, - out = (GOutputStream *)g_file_replace (destination, - NULL, - flags & G_FILE_COPY_BACKUP, -- G_FILE_CREATE_REPLACE_DESTINATION, -+ G_FILE_CREATE_REPLACE_DESTINATION | -+ G_FILE_CREATE_PRIVATE, - cancellable, error); - } - else - { -- out = (GOutputStream *)g_file_create (destination, 0, cancellable, error); -+ out = (GOutputStream *)g_file_create (destination, G_FILE_CREATE_PRIVATE, cancellable, error); - } - - if (!out) --- -2.21.0 - diff --git a/libs/glib2/patches/001-automake-compat.patch b/libs/glib2/patches/001-automake-compat.patch deleted file mode 100644 index 5e0ec1515..000000000 --- a/libs/glib2/patches/001-automake-compat.patch +++ /dev/null @@ -1,5 +0,0 @@ ---- /dev/null -+++ b/gtk-doc.make -@@ -0,0 +1,2 @@ -+EXTRA_DIST = -+CLEANFILES = diff --git a/libs/glib2/patches/001-no-libelf.patch b/libs/glib2/patches/001-no-libelf.patch new file mode 100644 index 000000000..7fe2c2bb6 --- /dev/null +++ b/libs/glib2/patches/001-no-libelf.patch @@ -0,0 +1,23 @@ +--- a/gio/meson.build ++++ b/gio/meson.build +@@ -870,20 +870,6 @@ endif + + # Dependencies used by executables below + have_libelf = false +-libelf = dependency('libelf', version : '>= 0.8.12', required : false) +-if libelf.found() +- have_libelf = true +-else +- # This fallback is necessary on *BSD. elfutils isn't the only libelf +- # implementation, and *BSD usually includes their own libelf as a system +- # library which doesn't have a corresponding .pc file. +- libelf = cc.find_library('elf', required : false) +- have_libelf = libelf.found() +- have_libelf = have_libelf and cc.has_function('elf_begin', dependencies : libelf) +- have_libelf = have_libelf and cc.has_function('elf_getshdrstrndx', dependencies : libelf) +- have_libelf = have_libelf and cc.has_function('elf_getshdrnum', dependencies : libelf) +- have_libelf = have_libelf and cc.has_header('libelf.h') +-endif + + if have_libelf + glib_conf.set('HAVE_LIBELF', 1) diff --git a/libs/glib2/patches/002-fix-gthreadedresolver.patch b/libs/glib2/patches/002-fix-gthreadedresolver.patch deleted file mode 100644 index 38a2391a1..000000000 --- a/libs/glib2/patches/002-fix-gthreadedresolver.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/gio/gthreadedresolver.c -+++ b/gio/gthreadedresolver.c -@@ -873,6 +873,8 @@ do_lookup_records (GTask *task, - - #ifdef HAVE_RES_NQUERY - -+#ifdef HAVE_RES_NQUERY -+ - #if defined(HAVE_RES_NDESTROY) - res_ndestroy (&res); - #elif defined(HAVE_RES_NCLOSE) -@@ -883,6 +885,8 @@ do_lookup_records (GTask *task, - - #endif /* HAVE_RES_NQUERY */ - -+#endif -+ - #else - - DNS_STATUS status; diff --git a/libs/glib2/patches/002-no-tests.patch b/libs/glib2/patches/002-no-tests.patch new file mode 100644 index 000000000..47aa7bcba --- /dev/null +++ b/libs/glib2/patches/002-no-tests.patch @@ -0,0 +1,11 @@ +--- a/meson.build ++++ b/meson.build +@@ -84,7 +84,7 @@ installed_tests_template = files('template.test.in') + installed_tests_template_tap = files('template-tap.test.in') + + # Don’t build the tests unless we can run them (either natively, in an exe wrapper, or by installing them for later use) +-build_tests = not meson.is_cross_build() or (meson.is_cross_build() and meson.has_exe_wrapper()) or installed_tests_enabled ++build_tests = false + + add_project_arguments('-D_GNU_SOURCE', language: 'c') + diff --git a/libs/glib2/patches/004-no-distutils.patch b/libs/glib2/patches/004-no-distutils.patch new file mode 100644 index 000000000..1558f3b8c --- /dev/null +++ b/libs/glib2/patches/004-no-distutils.patch @@ -0,0 +1,20 @@ +--- a/meson.build ++++ b/meson.build +@@ -2137,16 +2137,10 @@ endif + + glib_conf.set('HAVE_PROC_SELF_CMDLINE', have_proc_self_cmdline) + +-python = import('python').find_installation('python3') ++python = 'python3' + # used for '#!/usr/bin/env ' + python_name = 'python3' + +-python_version = python.language_version() +-python_version_req = '>=3.5' +-if not python_version.version_compare(python_version_req) +- error('Requires Python @0@, @1@ found.'.format(python_version_req, python_version)) +-endif +- + # Determine which user environment-dependent files that we want to install + have_bash = find_program('bash', required : false).found() # For completion scripts + have_sh = find_program('sh', required : false).found() # For glib-gettextize From 91a58e29ef5eeaa8aafd75f1159b8491b39b48cc Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sun, 19 Apr 2020 14:40:48 -0700 Subject: [PATCH 2/2] spice: add nls.mk Needs it for uClibc-ng as a result of the glib2 change. Signed-off-by: Rosen Penev --- libs/spice/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/spice/Makefile b/libs/spice/Makefile index e2e3d4977..888c2cfbd 100644 --- a/libs/spice/Makefile +++ b/libs/spice/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=spice PKG_VERSION:=0.14.3 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://www.spice-space.org/download/releases/spice-server PKG_HASH:=551d4be4a07667cf0543f3c895beb6da8a93ef5a9829f2ae47817be5e616a114 @@ -22,6 +22,7 @@ PKG_FIXUP:=autoreconf PKG_BUILD_DEPENDS+=spice-protocol include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk define Package/libspice-server SECTION:=libs