glib2: update to 2.64.2

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.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2020-02-26 14:33:46 -08:00
parent 1812713faf
commit b465ac3002
No known key found for this signature in database
GPG Key ID: 36D31CFA845F0E3B
6 changed files with 81 additions and 121 deletions

View File

@ -8,36 +8,33 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=glib2
PKG_VERSION:=2.58.3
PKG_RELEASE:=5
PKG_VERSION:=2.64.2
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.64
PKG_HASH:=9a2f21ed8f13b9303399de13a0252b7cbcede593d26971378ec6cb90e87f2277
PKG_MAINTAINER:=Peter Wagner <tripolar@gmx.at>
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
HOST_BUILD_DEPENDS:=meson/host libffi/host libiconv/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:=+zlib +libpthread +libffi +libattr @!USE_UCLIBC
TITLE:=glib 2.0
MAINTAINER:=Peter Wagner <tripolar@gmx.at>
URL:=http://www.gtk.org/
endef
@ -45,35 +42,42 @@ define Package/glib2/description
The GLib library of C routines
endef
TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections -flto
TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
TARGET_LDFLAGS += -Wl,--gc-sections
HOST_CONFIGURE_ARGS += \
--disable-libelf \
--disable-selinux \
--with-libiconv=gnu \
--with-pcre=internal \
--disable-libmount
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
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
MESON_HOST_ARGS += $(COMP_ARGS) -Dxattr=false
MESON_ARGS += $(COMP_ARGS) -Dxattr=true
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
# 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 +102,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

View File

@ -1,53 +0,0 @@
From d8f8f4d637ce43f8699ba94c9b7648beda0ca174 Mon Sep 17 00:00:00 2001
From: Ondrej Holy <oholy@redhat.com>
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

View File

@ -1,5 +0,0 @@
--- /dev/null
+++ b/gtk-doc.make
@@ -0,0 +1,2 @@
+EXTRA_DIST =
+CLEANFILES =

View File

@ -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)

View File

@ -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;

View File

@ -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')
# Dont 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')