Skip to content

Commit

Permalink
[glib]: bump version to 2.74.0 (#26949)
Browse files Browse the repository at this point in the history
* [glib]: bump version to 2.74.0

* Disable gtkdocize for libmount

* restore git-tree

* update version

* Recommend installing libselinux1-dev to enable selinux support

Co-authored-by: Jonliu1993 <13720414433@163.com>
  • Loading branch information
theartful and JonLiu1993 authored Oct 13, 2022
1 parent e2aa9d1 commit 51b5543
Show file tree
Hide file tree
Showing 12 changed files with 83 additions and 66 deletions.
72 changes: 34 additions & 38 deletions ports/glib/libintl.patch
Original file line number Diff line number Diff line change
@@ -1,51 +1,47 @@
diff --git a/meson.build b/meson.build
index 7773f56..171d193 100644
index f44fa2d4e..d465253af 100644
--- a/meson.build
+++ b/meson.build
@@ -2089,42 +2089,10 @@ endif
@@ -2090,37 +2090,10 @@ libz_dep = dependency('zlib')
# proxy-libintl subproject.
# FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
# implementations. This could be extended if issues are found in some platforms.
libintl_deps = []
-if cc.has_function('ngettext')
- have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset')
-else
- # First just find the bare library.
- libintl = cc.find_library('intl', required : false)
- # The bare library probably won't link without help if it's static.
- if libintl.found() and not cc.has_function('ngettext', dependencies : libintl)
- libintl_iconv = cc.find_library('iconv', required : false)
- # libintl supports different threading APIs, which may not
- # require additional flags, but it defaults to using pthreads if
- # found. Meson's "threads" dependency does not allow you to
- # prefer pthreads. We may not be using pthreads for glib itself
- # either so just link the library to satisfy libintl rather than
- # also defining the macros with the -pthread flag.
- libintl_pthread = cc.find_library('pthread', required : false)
- # Try linking with just libiconv.
- if libintl_iconv.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_iconv])
- libintl_deps += [libintl_iconv]
- # Then also try linking with pthreads.
- elif libintl_iconv.found() and libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_iconv, libintl_pthread])
- libintl_deps += [libintl_iconv, libintl_pthread]
- else
- libintl = disabler()
- endif
- endif
- if not libintl.found()
- libintl = subproject('proxy-libintl').get_variable('intl_dep')
- libintl_deps = [libintl] + libintl_deps
- have_bind_textdomain_codeset = true # proxy-libintl supports it
-libintl_deps = []
-libintl = dependency('intl', required: false)
-if libintl.found()
- # libintl supports different threading APIs, which may not
- # require additional flags, but it defaults to using pthreads if
- # found. Meson's "threads" dependency does not allow you to
- # prefer pthreads. We may not be using pthreads for glib itself
- # either so just link the library to satisfy libintl rather than
- # also defining the macros with the -pthread flag.
- #
- # Meson's builtin dependency lookup as of 0.60.0 doesn't check for
- # pthread, so we do this manually here.
- if cc.has_function('ngettext', dependencies : libintl)
- libintl_deps += [libintl]
- else
- libintl_deps = [libintl] + libintl_deps
- have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset',
- dependencies : libintl_deps)
- libintl_pthread = cc.find_library('pthread', required : false)
- if libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_pthread])
- libintl_deps += [libintl, libintl_pthread]
- else
- libintl = disabler()
- endif
- endif
-endif
-
-if libintl.found()
- have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', dependencies: libintl_deps)
-else
- libintl = subproject('proxy-libintl').get_variable('intl_dep')
- libintl_deps = [libintl]
- have_bind_textdomain_codeset = true # proxy-libintl supports it
-endif
+libintl = dependency('Intl', method:'cmake', required : true)
+libintl_deps += [libintl]
+libintl_deps = [libintl]
+have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset',
+ dependencies : libintl_deps)
+ dependencies : libintl_deps)

glib_conf.set('HAVE_BIND_TEXTDOMAIN_CODESET', have_bind_textdomain_codeset)

# We require gettext to always be present

24 changes: 14 additions & 10 deletions ports/glib/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
set(GLIB_MAJOR_MINOR 2.72)
set(GLIB_PATCH 3)
vcpkg_from_gitlab(
GITLAB_URL https://gitlab.gnome.org/
OUT_SOURCE_PATH SOURCE_PATH
REPO GNOME/glib
REF "${GLIB_MAJOR_MINOR}.${GLIB_PATCH}"
SHA512 805100bdd240122e1a74b432d7be7458af5b3b0507d46ed9cb0ce2ed6facf6e7d927b1d869831c9ba21b4a40a6667989ff69fc4f661bd044cb08932184804e79
set(GLIB_MAJOR_MINOR 2.74)
set(GLIB_PATCH 0)

vcpkg_download_distfile(GLIB_ARCHIVE
URLS "https://download.gnome.org/sources/glib/${GLIB_MAJOR_MINOR}/glib-${GLIB_MAJOR_MINOR}.${GLIB_PATCH}.tar.xz"
FILENAME "glib-${GLIB_MAJOR_MINOR}.${GLIB_PATCH}.tar.xz"
SHA512 5cdadd2f4568c0c3d45083b4d39699abf651e42e020f7bc880cce3ff33d28943118388d17a0632777e843f48009c1f97d5634fde3cb8c69c7c7f35b278ac8225
)

vcpkg_extract_source_archive(
SOURCE_PATH
ARCHIVE ${GLIB_ARCHIVE}
PATCHES
use-libiconv-on-windows.patch
libintl.patch
)

if (selinux IN_LIST FEATURES)
if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT EXISTS "/usr/include/selinux")
message("Selinux was not found in its typical system location. Your build may fail. You can install Selinux with \"apt-get install selinux\".")
message("Selinux was not found in its typical system location. Your build may fail. You can install Selinux with \"apt-get install selinux libselinux1-dev\".")
endif()
list(APPEND OPTIONS -Dselinux=enabled)
else()
Expand Down Expand Up @@ -101,7 +105,7 @@ if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glib-2.0.pc")
endif()
vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES})

file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
file(INSTALL "${SOURCE_PATH}/LICENSES/LGPL-2.1-or-later.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

# Fix python scripts
set(_file "${CURRENT_PACKAGES_DIR}/tools/${PORT}/gdbus-codegen")
Expand Down
18 changes: 9 additions & 9 deletions ports/glib/use-libiconv-on-windows.patch
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
diff --git a/glib/gconvert.c b/glib/gconvert.c
index 3deac78..134ded9 100644
index 829fe38de..e01ad8884 100644
--- a/glib/gconvert.c
+++ b/glib/gconvert.c
@@ -30,7 +30,8 @@
@@ -32,7 +32,8 @@
#include <stdlib.h>

#ifdef G_OS_WIN32
Expand All @@ -13,16 +13,16 @@ index 3deac78..134ded9 100644

#ifdef G_PLATFORM_WIN32
diff --git a/meson.build b/meson.build
index d938ddf51..2ba256115 100644
index d465253af..34ce69e4d 100644
--- a/meson.build
+++ b/meson.build
@@ -1914,7 +1914,8 @@ glibconfig_conf.set10('G_HAVE_GROWING_STACK', growing_stack)
# the built-in implementation
iconv_opt = get_option('iconv')
@@ -2038,7 +2038,8 @@ glibconfig_conf.set10('G_HAVE_GROWING_STACK', growing_stack)
if host_system == 'windows'
# We have a #include "win_iconv.c" in gconvert.c on Windows, so we don't need
# any external library for it
- libiconv = []
+ libiconv = [cc.find_library('iconv')]
+ found_iconv = true
# We have a #include "win_iconv.c" in gconvert.c on Windows, so we don't need
# any external library for it
if iconv_opt != 'auto'
else
libiconv = dependency('iconv')
endif
5 changes: 2 additions & 3 deletions ports/glib/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"name": "glib",
"version": "2.72.3",
"port-version": 3,
"version": "2.74.0",
"description": "Portable, general-purpose utility library.",
"homepage": "https://developer.gnome.org/glib/",
"license": "LGPL-2.1-only",
Expand All @@ -11,7 +10,7 @@
"gettext",
"libffi",
"libiconv",
"pcre",
"pcre2",
{
"name": "vcpkg-tool-meson",
"host": true
Expand Down
2 changes: 1 addition & 1 deletion ports/lcm/glib.link.patch
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ index 2f1a8be45..db823b953 100644

endforeach()

+find_library(PCRE_LIBRARY pcre)
+find_library(PCRE_LIBRARY pcre2-8)
+set_property(TARGET GLib2::glib APPEND PROPERTY
+ INTERFACE_LINK_LIBRARIES ${PCRE_LIBRARY}
+)
Expand Down
2 changes: 1 addition & 1 deletion ports/lcm/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "lcm",
"version": "1.4.0",
"port-version": 4,
"port-version": 5,
"description": [
"Lightweight Communications and Marshalling (LCM)",
"LCM is a set of libraries and tools for message passing and data marshalling, targeted at real-time systems where high-bandwidth and low latency are critical. It provides a publish/subscribe message passing model and automatic marshalling/unmarshalling code generation with bindings for applications in a variety of programming languages."
Expand Down
2 changes: 2 additions & 0 deletions ports/libmount/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ vcpkg_extract_source_archive_ex(
REF ${VERSION}
)

set(ENV{GTKDOCIZE} true)

vcpkg_configure_make(
AUTOCONFIG
SOURCE_PATH "${SOURCE_PATH}"
Expand Down
1 change: 1 addition & 0 deletions ports/libmount/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "libmount",
"version": "2.38",
"port-version": 1,
"description": "Block device identification library from util-linux",
"homepage": "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/about/",
"license": "GPL-2.0-only",
Expand Down
8 changes: 4 additions & 4 deletions versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -2645,8 +2645,8 @@
"port-version": 0
},
"glib": {
"baseline": "2.72.3",
"port-version": 3
"baseline": "2.74.0",
"port-version": 0
},
"glibmm": {
"baseline": "2.70.0",
Expand Down Expand Up @@ -3490,7 +3490,7 @@
},
"lcm": {
"baseline": "1.4.0",
"port-version": 4
"port-version": 5
},
"lcms": {
"baseline": "2.12",
Expand Down Expand Up @@ -3954,7 +3954,7 @@
},
"libmount": {
"baseline": "2.38",
"port-version": 0
"port-version": 1
},
"libmpeg2": {
"baseline": "0.5.1",
Expand Down
5 changes: 5 additions & 0 deletions versions/g-/glib.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "97fc41e084d04073610421cbdf4bfae0e89fb99c",
"version": "2.74.0",
"port-version": 0
},
{
"git-tree": "c9fbf2ec21948d70e4b8d5e633e600344982069f",
"version": "2.72.3",
Expand Down
5 changes: 5 additions & 0 deletions versions/l-/lcm.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "06163d8d06a5f6b22e76ed353743da7370d73602",
"version": "1.4.0",
"port-version": 5
},
{
"git-tree": "4277e71373ff869df31475afceb6b2e6881e4650",
"version": "1.4.0",
Expand Down
5 changes: 5 additions & 0 deletions versions/l-/libmount.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "a006357933a743ef48b94ce80a0565a1ce608769",
"version": "2.38",
"port-version": 1
},
{
"git-tree": "bf368ca79f716bd0b287bf1eeedd87c3529831cf",
"version": "2.38",
Expand Down

0 comments on commit 51b5543

Please sign in to comment.