openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2021
- 1 participants
- 2473 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libepoxy for openSUSE:Factory checked in at 2021-05-23 23:30:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libepoxy (Old)
and /work/SRC/openSUSE:Factory/.libepoxy.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libepoxy"
Sun May 23 23:30:42 2021 rev:16 rq:894863 version:1.5.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/libepoxy/libepoxy.changes 2021-05-20 19:24:51.461992363 +0200
+++ /work/SRC/openSUSE:Factory/.libepoxy.new.2988/libepoxy.changes 2021-05-23 23:30:49.908680751 +0200
@@ -1,0 +2,7 @@
+Fri May 21 18:03:40 UTC 2021 - Bj��rn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 1.5.8:
+ + Revert changes from PR #238 / #229
+ + Fixes regressions: #240, #252, #253
+
+-------------------------------------------------------------------
Old:
----
libepoxy-1.5.7.tar.xz
New:
----
libepoxy-1.5.8.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libepoxy.spec ++++++
--- /var/tmp/diff_new_pack.NG0kcx/_old 2021-05-23 23:30:51.004676203 +0200
+++ /var/tmp/diff_new_pack.NG0kcx/_new 2021-05-23 23:30:51.004676203 +0200
@@ -18,7 +18,7 @@
%define sonum 0
Name: libepoxy
-Version: 1.5.7
+Version: 1.5.8
Release: 0
Summary: OpenGL function pointer management library
License: MIT
++++++ libepoxy-1.5.7.tar.xz -> libepoxy-1.5.8.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libepoxy-1.5.7/meson.build new/libepoxy-1.5.8/meson.build
--- old/libepoxy-1.5.7/meson.build 2021-04-30 14:17:08.006619700 +0200
+++ new/libepoxy-1.5.8/meson.build 2021-05-21 17:56:01.911801300 +0200
@@ -1,4 +1,4 @@
-project('libepoxy', 'c', version: '1.5.7',
+project('libepoxy', 'c', version: '1.5.8',
default_options: [
'buildtype=debugoptimized',
'c_std=gnu99',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libepoxy-1.5.7/src/dispatch_common.c new/libepoxy-1.5.8/src/dispatch_common.c
--- old/libepoxy-1.5.7/src/dispatch_common.c 2021-04-30 14:17:08.014619600 +0200
+++ new/libepoxy-1.5.8/src/dispatch_common.c 2021-05-21 17:56:01.923801400 +0200
@@ -674,13 +674,9 @@
if (!api.gl_handle)
get_dlopen_handle(&api.gl_handle, OPENGL_LIB, false, true);
#endif
- if (!api.gl_handle) {
- get_dlopen_handle(&api.gl_handle, GLX_LIB, true, true);
-#if PLATFORM_HAS_GLX
- if (!api.glx_handle)
- api.glx_handle = api.gl_handle;
-#endif
- }
+
+ get_dlopen_handle(&api.glx_handle, GLX_LIB, true, true);
+ api.gl_handle = api.glx_handle;
#endif
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package lightdm for openSUSE:Factory checked in at 2021-05-23 23:30:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lightdm (Old)
and /work/SRC/openSUSE:Factory/.lightdm.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lightdm"
Sun May 23 23:30:41 2021 rev:107 rq:894833 version:1.30.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/lightdm/lightdm.changes 2021-02-11 12:45:19.849309222 +0100
+++ /work/SRC/openSUSE:Factory/.lightdm.new.2988/lightdm.changes 2021-05-23 23:30:48.908684899 +0200
@@ -1,0 +2,6 @@
+Fri May 21 13:02:56 UTC 2021 - Ludwig Nussel <lnussel(a)suse.de>
+
+- Remove %ghost from /var/cache/lightdm. With SELinux enabled
+ lightdm would otherwise not be allowed to create that directory.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lightdm.spec ++++++
--- /var/tmp/diff_new_pack.H0Iyzs/_old 2021-05-23 23:30:49.496682460 +0200
+++ /var/tmp/diff_new_pack.H0Iyzs/_new 2021-05-23 23:30:49.500682443 +0200
@@ -359,7 +359,7 @@
%attr(750,lightdm,lightdm) %dir %{_localstatedir}/log/lightdm/
%attr(750,lightdm,lightdm) %dir %{_localstatedir}/lib/lightdm/
%attr(750,lightdm,lightdm) %dir %{_localstatedir}/lib/lightdm-data/
-%ghost %attr(711,root,root) %dir %{_localstatedir}/cache/lightdm/
+%attr(711,root,root) %dir %{_localstatedir}/cache/lightdm/
%{_mandir}/man1/lightdm.1%{?ext_man}
%{_mandir}/man1/dm-tool.1%{?ext_man}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libstorage-ng for openSUSE:Factory checked in at 2021-05-23 23:30:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libstorage-ng (Old)
and /work/SRC/openSUSE:Factory/.libstorage-ng.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libstorage-ng"
Sun May 23 23:30:41 2021 rev:116 rq:894829 version:4.4.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/libstorage-ng/libstorage-ng.changes 2021-05-20 19:24:36.294054572 +0200
+++ /work/SRC/openSUSE:Factory/.libstorage-ng.new.2988/libstorage-ng.changes 2021-05-23 23:30:47.676690010 +0200
@@ -1,0 +2,7 @@
+Fri May 21 14:52:25 UTC 2021 - aschnell(a)suse.com
+
+- merge gh#openSUSE/libstorage-ng#807
+- remove double mount options (see bsc#1186298)
+- 4.4.9
+
+--------------------------------------------------------------------
Old:
----
libstorage-ng-4.4.8.tar.xz
New:
----
libstorage-ng-4.4.9.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libstorage-ng.spec ++++++
--- /var/tmp/diff_new_pack.tSOHwW/_old 2021-05-23 23:30:48.152688036 +0200
+++ /var/tmp/diff_new_pack.tSOHwW/_new 2021-05-23 23:30:48.156688019 +0200
@@ -18,7 +18,7 @@
%define libname %{name}1
Name: libstorage-ng
-Version: 4.4.8
+Version: 4.4.9
Release: 0
Summary: Library for storage management
License: GPL-2.0-only
++++++ libstorage-ng-4.4.8.tar.xz -> libstorage-ng-4.4.9.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.4.8/LIBVERSION new/libstorage-ng-4.4.9/LIBVERSION
--- old/libstorage-ng-4.4.8/LIBVERSION 2021-05-18 06:59:51.000000000 +0200
+++ new/libstorage-ng-4.4.9/LIBVERSION 2021-05-21 16:52:25.000000000 +0200
@@ -1 +1 @@
-1.53.0
+1.53.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.4.8/VERSION new/libstorage-ng-4.4.9/VERSION
--- old/libstorage-ng-4.4.8/VERSION 2021-05-18 06:59:51.000000000 +0200
+++ new/libstorage-ng-4.4.9/VERSION 2021-05-21 16:52:25.000000000 +0200
@@ -1 +1 @@
-4.4.8
+4.4.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.4.8/storage/EtcFstab.cc new/libstorage-ng-4.4.9/storage/EtcFstab.cc
--- old/libstorage-ng-4.4.8/storage/EtcFstab.cc 2021-05-18 06:59:51.000000000 +0200
+++ new/libstorage-ng-4.4.9/storage/EtcFstab.cc 2021-05-21 16:52:25.000000000 +0200
@@ -1,6 +1,6 @@
/*
* Copyright (c) [2004-2015] Novell, Inc.
- * Copyright (c) [2017-2020] SUSE LLC
+ * Copyright (c) [2017-2021] SUSE LLC
*
* All Rights Reserved.
*
@@ -52,8 +52,7 @@
MountOpts::MountOpts(const vector<string> & opts)
: opts(opts)
{
- while (contains("defaults"))
- remove("defaults");
+ remove("defaults");
}
@@ -138,10 +137,7 @@
void MountOpts::remove( const string & opt )
{
- int index = get_index_of( opt );
-
- if ( index != -1 )
- remove( index );
+ opts.erase(std::remove(opts.begin(), opts.end(), opt), opts.end());
}
@@ -178,8 +174,7 @@
boost::is_any_of( "," ),
boost::token_compress_on );
- while ( contains( "defaults" ) )
- remove( "defaults" );
+ remove("defaults");
return true;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.4.8/testsuite/mount-opts.cc new/libstorage-ng-4.4.9/testsuite/mount-opts.cc
--- old/libstorage-ng-4.4.8/testsuite/mount-opts.cc 2021-05-18 06:59:51.000000000 +0200
+++ new/libstorage-ng-4.4.9/testsuite/mount-opts.cc 2021-05-21 16:52:25.000000000 +0200
@@ -2,12 +2,14 @@
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE libstorage
-#include <boost/test/unit_test.hpp>
#include <iostream>
+#include <boost/algorithm/string.hpp>
+#include <boost/test/unit_test.hpp>
#include "storage/EtcFstab.h"
#include "storage/Filesystems/FilesystemImpl.h"
+
using namespace std;
using namespace storage;
@@ -64,3 +66,40 @@
BOOST_CHECK(mount_opts.has_subvol(262, "home"));
BOOST_CHECK(!mount_opts.has_subvol(262, "does-not-exist"));
}
+
+
+BOOST_AUTO_TEST_CASE(test_ctor)
+{
+ BOOST_CHECK(MountOpts("").empty());
+ BOOST_CHECK(MountOpts(vector<string>({})).empty());
+
+ BOOST_CHECK(MountOpts("defaults").empty());
+ BOOST_CHECK(MountOpts(vector<string>({ "defaults" })).empty());
+
+ BOOST_CHECK_EQUAL(boost::join(MountOpts("noauto,user").get_opts(), ","), "noauto,user");
+ BOOST_CHECK_EQUAL(boost::join(MountOpts(vector<string>({ "noauto", "user" })).get_opts(), ","), "noauto,user");
+}
+
+
+BOOST_AUTO_TEST_CASE(test_remove)
+{
+ MountOpts mount_opts("ro,noauto,ro");
+
+ mount_opts.remove("ro");
+ BOOST_CHECK_EQUAL(boost::join(mount_opts.get_opts(), ","), "noauto");
+
+ mount_opts.remove("noauto");
+ BOOST_CHECK_EQUAL(boost::join(mount_opts.get_opts(), ","), "");
+}
+
+
+BOOST_AUTO_TEST_CASE(test_append)
+{
+ MountOpts mount_opts("ro");
+
+ mount_opts.append("noauto");
+ BOOST_CHECK_EQUAL(boost::join(mount_opts.get_opts(), ","), "ro,noauto");
+
+ mount_opts << "ro";
+ BOOST_CHECK_EQUAL(boost::join(mount_opts.get_opts(), ","), "ro,noauto,ro");
+}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package psmisc for openSUSE:Factory checked in at 2021-05-23 23:30:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/psmisc (Old)
and /work/SRC/openSUSE:Factory/.psmisc.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "psmisc"
Sun May 23 23:30:40 2021 rev:80 rq:894798 version:23.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/psmisc/psmisc.changes 2021-05-19 17:30:14.590352954 +0200
+++ /work/SRC/openSUSE:Factory/.psmisc.new.2988/psmisc.changes 2021-05-23 23:30:46.824693545 +0200
@@ -1,0 +2,12 @@
+Thu May 20 07:21:45 UTC 2021 - Dr. Werner Fink <werner(a)suse.de>
+
+- Do not change CAP within spec file (boo#1186258)
+
+-------------------------------------------------------------------
+Fri May 7 14:53:08 UTC 2021 - Dr. Werner Fink <werner(a)suse.de>
+
+- Change patch 0001-Use-mountinfo-to-be-able-to-use-the-mount-identity.patch
+ * Fix bsc#1185208 to make private mount namespaces work as well
+ as to distinguish NFS mounts from same remote device share.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ 0001-Use-mountinfo-to-be-able-to-use-the-mount-identity.patch ++++++
++++ 634 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/psmisc/0001-Use-mountinfo-to-be-able-to-use-the-mount-identity.patch
++++ and /work/SRC/openSUSE:Factory/.psmisc.new.2988/0001-Use-mountinfo-to-be-able-to-use-the-mount-identity.patch
++++++ 0002-Use-new-statx-2-system-call-to-avoid-hangs-on-NFS.patch ++++++
--- /var/tmp/diff_new_pack.jVWUIr/_old 2021-05-23 23:30:47.352691354 +0200
+++ /var/tmp/diff_new_pack.jVWUIr/_new 2021-05-23 23:30:47.352691354 +0200
@@ -1,19 +1,19 @@
-From 9f3910df62bcc1f726b8e84f9ffc40c4d7916eac Mon Sep 17 00:00:00 2001
+From f2ada8ea7939bc8f607d88a10c92d5bb96a700b8 Mon Sep 17 00:00:00 2001
From: Werner Fink <werner(a)suse.de>
-Date: Thu, 14 Jan 2021 11:37:46 +0100
+Date: Fri, 7 May 2021 16:36:28 +0200
Subject: [PATCH] Use new statx(2) system call to avoid hangs on NFS
Signed-off-by: Werner Fink <werner(a)suse.de>
---
Makefile.am | 4 -
- configure.ac | 38 +++++----------
- src/fuser.c | 98 +++++++++-----------------------------
+ configure.ac | 24 +++++----
+ src/fuser.c | 102 ++++++++++------------------------------
src/statx.c | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/statx.h | 68 ++++++++++++++++++++++++++
- 5 files changed, 258 insertions(+), 99 deletions(-)
+ 5 files changed, 260 insertions(+), 87 deletions(-)
--- Makefile.am
-+++ Makefile.am 2021-01-14 11:29:22.011223930 +0000
++++ Makefile.am 2021-05-07 15:04:28.611513529 +0000
@@ -64,8 +64,8 @@ src_fuser_SOURCES = \
src/fuser.h \
src/lists.h
@@ -26,29 +26,8 @@
src_fuser_LDADD = @LIBINTL@
src_killall_SOURCES = src/killall.c src/comm.h src/signals.c src/signals.h src/i18n.h
--- configure.ac
-+++ configure.ac 2021-01-14 11:29:22.011223930 +0000
-@@ -30,20 +30,6 @@ if test "$enable_selinux" = "yes"; then
- fi
- AC_SUBST([SELINUX_LIB])
-
--# Call fork before all stat calls to stop hanging on NFS mounts
--AC_SUBST([WITH_TIMEOUT_STAT])
--AC_ARG_ENABLE([timeout_stat],
-- [AS_HELP_STRING([--enable-timeout-stat], [Use a timeout on stat calls (optional with argument "static" for a static background process)])],
-- [enable_timeout_stat=$enableval],
-- [enable_timeout_stat="no"])
--if test "$enable_timeout_stat" = "yes"; then
-- AC_DEFINE([WITH_TIMEOUT_STAT], [1], [Use timeout on stat calls])
--fi
--if test "$enable_timeout_stat" = "static"; then
-- AC_DEFINE([WITH_TIMEOUT_STAT], [2], [Use timeout on stat calls])
--fi
--AM_CONDITIONAL([WANT_TIMEOUT_STAT], [test "$enable_timeout_stat" = "static"])
--
- # Use /proc/self/mountinfo if available
- if test -e /proc/self/mountinfo ; then
- AC_DEFINE([HAS_MOUNTINFO], [1], [System has /proc/self/mountinfo which can used instead /proc(/self)/mounts])
-@@ -57,16 +43,20 @@ fi
++++ configure.ac 2021-05-07 15:04:28.623513310 +0000
+@@ -57,16 +57,20 @@ fi
AC_CHECK_FUNC([name_to_handle_at],[
AC_DEFINE([HAS_NAME_TO_HANDLE_AT], [1], [System has name_to_handle_at(2) system call])])
@@ -80,8 +59,8 @@
# Enable hardened compile and link flags
AC_ARG_ENABLE([harden_flags],
--- src/fuser.c
-+++ src/fuser.c 2021-01-14 11:30:10.750278604 +0000
-@@ -63,7 +63,7 @@
++++ src/fuser.c 2021-05-07 15:04:28.627513237 +0000
+@@ -61,7 +61,7 @@
#include "fuser.h"
#include "signals.h"
#include "i18n.h"
@@ -90,9 +69,9 @@
#include "comm.h"
//#define DEBUG 1
-@@ -118,10 +118,6 @@ static void clear_mntinfo(void) __attrib
- static void init_mntinfo(void) __attribute__ ((__constructor__));
- static int get_fdinfo(const pid_t pid, const char *fd, struct fdinfo *info);
+@@ -119,10 +119,6 @@ static int get_fdinfo(const pid_t pid, c
+ static int get_mountid(const char *path);
+ #endif
static int find_mountpoint(const char *path, mntinfo_t **mountinfo);
-#if defined(WITH_MOUNTINFO_LIST)
-static int mntstat(const char *path, struct stat *buf);
@@ -101,7 +80,7 @@
static char *expandpath(const char *path);
static struct unixsocket_list *unixsockets = NULL;
static struct names *names_head = NULL, *names_tail = NULL;
-@@ -509,7 +505,7 @@ int parse_file(struct names *this_name,
+@@ -510,7 +506,7 @@ int parse_file(struct names *this_name,
free(this_name->filename);
this_name->filename = strdup(new);
}
@@ -110,7 +89,7 @@
find_mountpoint(this_name->filename, &mountinfo) != 0) {
if (errno == ENOENT)
fprintf(stderr,
-@@ -1245,9 +1241,7 @@ int main(int argc, char *argv[])
+@@ -1244,9 +1240,7 @@ int main(int argc, char *argv[])
opts |= OPT_INTERACTIVE;
break;
case 'I':
@@ -120,7 +99,7 @@
break;
case 'k':
opts |= OPT_KILL;
-@@ -1313,10 +1307,11 @@ int main(int argc, char *argv[])
+@@ -1312,10 +1306,11 @@ int main(int argc, char *argv[])
continue;
}
@@ -135,7 +114,7 @@
/* an option */
/* Not an option, must be a file specification */
if ((this_name = malloc(sizeof(struct names))) == NULL)
-@@ -1636,7 +1631,7 @@ static struct stat *get_pidstat(const pi
+@@ -1635,7 +1630,7 @@ static struct stat *get_pidstat(const pi
if ((st = (struct stat *)malloc(sizeof(struct stat))) == NULL)
return NULL;
snprintf(pathname, 256, "/proc/%d/%s", pid, filename);
@@ -144,7 +123,7 @@
free(st);
return NULL;
}
-@@ -1683,7 +1678,7 @@ check_dir(const pid_t pid, const char *d
+@@ -1681,7 +1676,7 @@ check_dir(const pid_t pid, const char *d
snprintf(filepath, sizeof filepath - 1, "/proc/%d/%s/%s",
pid, dirname, direntry->d_name);
@@ -153,7 +132,7 @@
if (errno != ENOENT && errno != ENOTDIR) {
fprintf(stderr, _("Cannot stat file %s: %s\n"),
filepath, strerror(errno));
-@@ -1740,7 +1735,7 @@ check_dir(const pid_t pid, const char *d
+@@ -1747,7 +1742,7 @@ check_dir(const pid_t pid, const char *d
if (thedev != ino_tmp->device)
continue;
if (!st.st_ino
@@ -162,7 +141,7 @@
fprintf(stderr,
_("Cannot stat file %s: %s\n"),
filepath, strerror(errno));
-@@ -1838,11 +1833,11 @@ static uid_t getpiduid(const pid_t pid)
+@@ -1845,11 +1840,11 @@ static uid_t getpiduid(const pid_t pid)
if (asprintf(&pathname, "/proc/%d", pid) < 0)
return 0;
@@ -178,7 +157,7 @@
return st.st_uid;
}
-@@ -1880,7 +1875,7 @@ void fill_unix_cache(struct unixsocket_l
+@@ -1887,7 +1882,7 @@ void fill_unix_cache(struct unixsocket_l
path = scanned_path;
if (*scanned_path == '@')
scanned_path++;
@@ -187,7 +166,7 @@
free(path);
continue;
}
-@@ -2015,7 +2010,7 @@ static dev_t find_net_dev(void)
+@@ -2022,7 +2017,7 @@ static dev_t find_net_dev(void)
fprintf(stderr, _("Cannot open a network socket.\n"));
return -1;
}
@@ -196,7 +175,7 @@
fprintf(stderr, _("Cannot find socket's device number.\n"));
close(skt);
return -1;
-@@ -2052,7 +2047,7 @@ scan_knfsd(struct names *names_head, str
+@@ -2059,7 +2054,7 @@ scan_knfsd(struct names *names_head, str
if ((find_space = strpbrk(line, " \t")) == NULL)
continue;
*find_space = '\0';
@@ -205,7 +184,7 @@
continue;
}
/* Scan the devices */
-@@ -2086,7 +2081,7 @@ scan_mounts(struct names *names_head, st
+@@ -2093,7 +2088,7 @@ scan_mounts(struct names *names_head, st
mntinfo_t *mnt = list_entry(ptr, mntinfo_t);
const char *find_mountp = mnt->mpoint;
@@ -214,7 +193,7 @@
continue;
/* Scan the devices */
-@@ -2136,7 +2131,7 @@ scan_swaps(struct names *names_head, str
+@@ -2143,7 +2138,7 @@ scan_swaps(struct names *names_head, str
if (*find_space == '\0')
continue;
}
@@ -223,7 +202,7 @@
continue;
}
/* Scan the devices */
-@@ -2228,10 +2223,10 @@ init_mntinfo(void)
+@@ -2240,10 +2235,10 @@ init_mntinfo(void)
&mid, &parid, &maj, &min, &mpoint[0], &type[0], &devname[0]) == 7) {
struct stat st;
mntinf = add_mntinfo(mpoint, type, mid, parid, makedev(maj, min));
@@ -236,7 +215,7 @@
mntinf->dev = st.st_dev; /* stat(2) on binary does not see subvol dev */
}
}
-@@ -2243,7 +2238,7 @@ init_mntinfo(void)
+@@ -2255,7 +2250,7 @@ init_mntinfo(void)
parid = -1;
while (fscanf (mnt, "%s %s %s %*[^\n]", &devname[0], &mpoint[0], &type[0]) == 3) {
struct stat st;
@@ -245,7 +224,7 @@
if (errno != EACCES) {
fprintf(stderr, _("Cannot stat %s: %s\n"),
mpoint, strerror(errno));
-@@ -2252,7 +2247,7 @@ init_mntinfo(void)
+@@ -2264,7 +2259,7 @@ init_mntinfo(void)
st.st_dev = (dev_t)-1;
}
mntinf = add_mntinfo(mpoint, type, mid++, parid, st.st_dev);
@@ -254,7 +233,25 @@
if (st.st_rdev != 0 && mntinf->dev != st.st_rdev)
mntinf->vol = st.st_rdev;
}
-@@ -2302,7 +2297,7 @@ out:
+@@ -2288,7 +2283,7 @@ get_fdinfo(const pid_t pid, const char *
+ struct stat st;
+
+ if (!mynamespace) {
+- if (stat("/proc/self/ns/mnt", &st) != 0) {
++ if (statn("/proc/self/ns/mnt", STATX_INO, &st) != 0) {
+ fprintf(stderr, _("Cannot stat %s: %s\n"),
+ "/proc/self/ns/mnt", strerror(errno));
+ exit(1);
+@@ -2323,7 +2318,7 @@ get_fdinfo(const pid_t pid, const char *
+ out:
+ # if defined(HAS_NAME_TO_HANDLE_AT)
+ snprintf(pathname, 256, "/proc/%d/ns/mnt", pid);
+- if (stat(pathname, &st) == 0 && mynamespace != st.st_ino) {
++ if (statn(pathname, STATX_INO, &st) == 0 && mynamespace != st.st_ino) {
+ char *realname;
+ snprintf(pathname, 256, "/proc/%d/fd/%s", pid, fd);
+ realname = expandpath(pathname);
+@@ -2338,7 +2333,7 @@ out:
struct stat lst;
snprintf(pathname, 256, "/proc/%d/fd/%s", pid, fd);
@@ -263,7 +260,7 @@
if (lst.st_mode & S_IWUSR)
info->flags |= O_WRONLY;
ret++;
-@@ -2375,7 +2370,7 @@ find_mountpoint(const char *path, mntinf
+@@ -2411,7 +2406,7 @@ find_mountpoint(const char *path, mntinf
/* could be a chroot or a container */
@@ -272,7 +269,7 @@
if (errno != EACCES) {
fprintf(stderr, _("Cannot stat %s: %s\n"),
path, strerror(errno));
-@@ -2407,7 +2402,7 @@ find_mountpoint(const char *path, mntinf
+@@ -2443,7 +2438,7 @@ find_mountpoint(const char *path, mntinf
/* could be a chroot or a container */
@@ -281,7 +278,7 @@
if (errno != EACCES) {
fprintf(stderr, _("Cannot stat %s: %s\n"),
use, strerror(errno));
-@@ -2445,49 +2440,6 @@ out:
+@@ -2481,49 +2476,6 @@ out:
return ret;
}
@@ -332,7 +329,7 @@
* Somehow the realpath(3) glibc function call, nevertheless
* it avoids lstat(2) system calls.
--- src/statx.c
-+++ src/statx.c 2021-01-14 11:29:22.015223853 +0000
++++ src/statx.c 2021-05-07 15:04:28.627513237 +0000
@@ -0,0 +1,149 @@
+/*
+ * statx.c - Map modern statx(2) system call to older stat(2), lstat(2),
@@ -484,7 +481,7 @@
+ return ret;
+}
--- src/statx.h
-+++ src/statx.h 2021-01-14 11:29:22.019223776 +0000
++++ src/statx.h 2021-05-07 15:04:28.627513237 +0000
@@ -0,0 +1,68 @@
+/*
+ * statx.h - Map modern statx(2) system call to older stat(2), lstat(2),
++++++ psmisc-v23.3.dif ++++++
--- /var/tmp/diff_new_pack.jVWUIr/_old 2021-05-23 23:30:47.368691288 +0200
+++ /var/tmp/diff_new_pack.jVWUIr/_new 2021-05-23 23:30:47.368691288 +0200
@@ -5,7 +5,7 @@
--- configure.ac
+++ configure.ac 2021-01-14 11:31:31.640709812 +0000
-@@ -129,7 +129,7 @@ AC_CHECK_MEMBERS([struct user_regs_struc
+@@ -145,7 +145,7 @@ AC_CHECK_MEMBERS([struct user_regs_struc
struct user_regs_struct.rdi,
struct user_regs_struct.rsi,
struct user_regs_struct.rdx], [],[],
@@ -16,7 +16,7 @@
struct pt_regs.gpr], [],[], [#include <linux/ptrace.h>])
--- src/fuser.c
+++ src/fuser.c 2021-01-14 11:31:31.640709812 +0000
-@@ -1146,6 +1146,7 @@ int main(int argc, char *argv[])
+@@ -1145,6 +1145,7 @@ int main(int argc, char *argv[])
struct option *optr;
char *nsptr;
int skip_argv;
@@ -24,7 +24,7 @@
struct option options[] = {
{"all", 0, NULL, 'a'},
-@@ -1189,6 +1190,7 @@ int main(int argc, char *argv[])
+@@ -1188,6 +1189,7 @@ int main(int argc, char *argv[])
#endif
atexit(atexit_free_lists);
@@ -32,7 +32,7 @@
for (argc_cnt = 1; argc_cnt < argc; argc_cnt++) {
current_argv = argv[argc_cnt];
if (current_argv[0] == '-') { /* its an option */
-@@ -1333,6 +1335,7 @@ int main(int argc, char *argv[])
+@@ -1332,6 +1334,7 @@ int main(int argc, char *argv[])
}
}
this_name->matched_procs = NULL;
@@ -40,7 +40,7 @@
if (opts & (OPT_MOUNTS | OPT_ISMOUNTPOINT)
&& this_name->name_space != NAMESPACE_FILE) {
free(this_name);
-@@ -1386,7 +1389,7 @@ int main(int argc, char *argv[])
+@@ -1385,7 +1388,7 @@ int main(int argc, char *argv[])
names_tail->next = this_name;
names_tail = this_name;
} /* for across the argvs */
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package transfig for openSUSE:Factory checked in at 2021-05-23 23:30:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transfig (Old)
and /work/SRC/openSUSE:Factory/.transfig.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "transfig"
Sun May 23 23:30:39 2021 rev:48 rq:894796 version:3.2.8a
Changes:
--------
--- /work/SRC/openSUSE:Factory/transfig/transfig.changes 2021-04-10 15:26:05.366287556 +0200
+++ /work/SRC/openSUSE:Factory/.transfig.new.2988/transfig.changes 2021-05-23 23:30:46.004696947 +0200
@@ -1,0 +2,7 @@
+Fri May 21 11:50:39 UTC 2021 - Dr. Werner Fink <werner(a)suse.de>
+
+- Add upstream commit as patch 6827c09d.patch
+ Global buffer overflow in fig2dev/read.c in function read_colordef()
+ (boo#1186329, CVE-2021-3561)
+
+-------------------------------------------------------------------
New:
----
6827c09d.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ transfig.spec ++++++
--- /var/tmp/diff_new_pack.g0SsUp/_old 2021-05-23 23:30:46.532694757 +0200
+++ /var/tmp/diff_new_pack.g0SsUp/_new 2021-05-23 23:30:46.536694740 +0200
@@ -53,6 +53,7 @@
Group: Productivity/Graphics/Convertors
Source: fig2dev-%{version}.tar.xz
Patch0: transfig-3.2.8.dif
+Patch1: 6827c09d.patch
Patch4: transfig-fix-afl.patch
Patch43: fig2dev-3.2.6-fig2mpdf.patch
Patch44: fig2dev-3.2.6-fig2mpdf-doc.patch
@@ -94,6 +95,7 @@
%setup -q -n fig2dev-%{version}
find -type f | xargs -r chmod a-x,go-w
%patch0 -p0 -b .0
+%patch1 -p0 -b .1
%patch4 -p1 -b .afl
%patch43 -p1 -b .mpdf
%patch44 -p1 -b .mpdfdoc
++++++ 6827c09d.patch ++++++
From 6827c09d2d6491cb2ae3ac7196439ff3aa791fd9 Mon Sep 17 00:00:00 2001
From: Thomas Loimer <thomas.loimer(a)tuwien.ac.at>
Date: Sun, 25 Apr 2021 00:49:15 +0200
Subject: [PATCH] Sanitize color definitions, ticket #116
---
fig2dev/read.c | 35 +++++++++++++++++++++--------------
1 file changed, 21 insertions(+), 14 deletions(-)
diff --git fig2dev/read.c fig2dev/read.c
index 7e18fda..4c6bacc 100644
--- fig2dev/read.c
+++ fig2dev/read.c
@@ -520,30 +520,37 @@ read_colordef(char *line, int line_no)
if (num_usr_cols >= MAX_USR_COLS) {
if (num_usr_cols == MAX_USR_COLS) {
- put_msg("Maximum number of color definitions (%d) exceeded at line %d.",
+ put_msg("Maximum number of color definitions (%d) "
+ "exceeded at line %d.",
MAX_USR_COLS, line_no);
++num_usr_cols;
}
/* ignore additional colors */
return;
}
- if (sscanf(line, "%*d %d #%2x%2x%2x", &c, &r, &g, &b) != 4) {
- if (c >= NUM_STD_COLS && c < NUM_STD_COLS + MAX_USR_COLS) {
- put_msg("Invalid color definition at line %d: %s, setting to black (#00000).",
- line_no, line);
- r = g = b = 0;
- } else {
- put_msg("User color number at line %d out of range (%d), should be between %d and %d.",
+ if (sscanf(line, "%*d %d #%2x%2x%2x", &c, &r, &g, &b) == 4) {
+ if (c >= NUM_STD_COLS && c < NUM_STD_COLS + MAX_USR_COLS &&
+ r >=0 && r < 256 && g >=0 && g < 256 &&
+ b >= 0 && b < 256 ) {
+ user_col_indx[num_usr_cols] = c;
+ user_colors[num_usr_cols].r = r;
+ user_colors[num_usr_cols].g = g;
+ user_colors[num_usr_cols].b = b;
+ ++num_usr_cols;
+ } else if (c < NUM_STD_COLS || c >= NUM_STD_COLS+MAX_USR_COLS) {
+ put_msg("User color number at line %d out of range (%d)"
+ ", should be between %d and %d.",
line_no, c, NUM_STD_COLS,
NUM_STD_COLS + MAX_USR_COLS - 1);
- return;
+ } else {
+ put_msg("Invalid color definition at line %d: %s, color"
+ " values must be between 0 through 255.",
+ line_no, line);
}
+ } else {
+ put_msg("Invalid color definition at line %d: %s.",
+ line_no, line);
}
- user_col_indx[num_usr_cols] = c;
- user_colors[num_usr_cols].r = r;
- user_colors[num_usr_cols].g = g;
- user_colors[num_usr_cols].b = b;
- ++num_usr_cols;
}
static void
--
2.26.2
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package nautilus for openSUSE:Factory checked in at 2021-05-23 23:30:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nautilus (Old)
and /work/SRC/openSUSE:Factory/.nautilus.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nautilus"
Sun May 23 23:30:38 2021 rev:187 rq:894785 version:40.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/nautilus/nautilus.changes 2021-05-06 22:51:59.074908535 +0200
+++ /work/SRC/openSUSE:Factory/.nautilus.new.2988/nautilus.changes 2021-05-23 23:30:45.288699917 +0200
@@ -1,0 +2,6 @@
+Wed May 19 14:39:53 UTC 2021 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Drop baselibs.conf: there is nothing depending on the xxbit
+ library anymore.
+
+-------------------------------------------------------------------
Old:
----
baselibs.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nautilus.spec ++++++
--- /var/tmp/diff_new_pack.UnRpW9/_old 2021-05-23 23:30:45.752697992 +0200
+++ /var/tmp/diff_new_pack.UnRpW9/_new 2021-05-23 23:30:45.756697976 +0200
@@ -28,7 +28,6 @@
Source1: mount-archive.desktop
Source2: set_trusted.desktop
Source3: set_trusted.sh
-Source99: baselibs.conf
# needed for directory ownership
BuildRequires: dbus-1
BuildRequires: fdupes
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package check for openSUSE:Factory checked in at 2021-05-23 23:30:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/check (Old)
and /work/SRC/openSUSE:Factory/.check.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "check"
Sun May 23 23:30:37 2021 rev:35 rq:894783 version:0.15.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/check/check.changes 2020-08-23 09:20:39.590667847 +0200
+++ /work/SRC/openSUSE:Factory/.check.new.2988/check.changes 2021-05-23 23:30:44.520703104 +0200
@@ -1,0 +2,6 @@
+Wed May 19 14:41:50 UTC 2021 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Drop baselibs.conf: multilib support is only generated for libs
+ that have consumers.
+
+-------------------------------------------------------------------
Old:
----
baselibs.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ check.spec ++++++
--- /var/tmp/diff_new_pack.sICxMM/_old 2021-05-23 23:30:44.948701328 +0200
+++ /var/tmp/diff_new_pack.sICxMM/_new 2021-05-23 23:30:44.952701312 +0200
@@ -1,7 +1,7 @@
#
# spec file for package check
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -25,7 +25,6 @@
Group: Development/Libraries/C and C++
URL: https://libcheck.github.io/check/
Source: https://github.com/libcheck/check/releases/download/%{version}/%{name}-%{ve…
-Source99: baselibs.conf
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: fdupes
@@ -87,10 +86,12 @@
rm %{buildroot}%{_docdir}/%{name}/{COPYING.LESSER,ChangeLog,NEWS,README}
%post -n %{libname} -p /sbin/ldconfig
+
%post devel
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%postun -n %{libname} -p /sbin/ldconfig
+
%preun devel
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package pipewire for openSUSE:Factory checked in at 2021-05-23 23:30:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pipewire (Old)
and /work/SRC/openSUSE:Factory/.pipewire.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pipewire"
Sun May 23 23:30:36 2021 rev:31 rq:894781 version:0.3.28
Changes:
--------
--- /work/SRC/openSUSE:Factory/pipewire/pipewire.changes 2021-05-19 17:49:00.713627287 +0200
+++ /work/SRC/openSUSE:Factory/.pipewire.new.2988/pipewire.changes 2021-05-23 23:30:43.736706357 +0200
@@ -1,0 +2,52 @@
+Wed May 19 11:15:08 UTC 2021 - Antonio Larrosa <alarrosa(a)suse.com>
+
+- Update to 0.3.28
+ * Highlights
+ - Freewheeling was implemented. This makes it possible to
+ export projects in ardour.
+ - A new powerful filter-chain module was added that can
+ be used to created all kinds of filter-chains from ladspa
+ and builtin plugins.
+ - Many more pulseaudio modules are now implemented:
+ module-ladspa-sink, module-ladspa-source, module-pipe-sink,
+ module-tunnel-sink, module-tunnel-source,
+ module-zeroconf-discover
+ - Fix a bug where devices would not appear after logout/login.
+ - Fix a bug where the volume was reset to 0 and devices would
+ have no audio.
+ - Config files are now installed in the data dir, system
+ overrides in /etc/pipewire and $HOME are checked first.
+ * PipeWire
+ - Implement freewheeling for JACK clients
+ - Add filter-chain module that can be used to construct
+ arbitrary graphs from ladspa and builtin plugins.
+ - Add new property to easily set algorithm params
+ - Add module-pulse-tunnel to tunnel audio to and from
+ a PulseAudio compatible server.
+ - Add a avahi zeroconf discover module, create pulse-tunnel
+ when PulseAudio devices are announced.
+ - Config files are now installed in the data dir, system
+ overrides in /etc/pipewire and $HOME are checked first.
+ - Applications now have their monitor ports named with the
+ "monitor" prefix to avoid confusion with the output ports.
+ - LICENSE clarifications.
+ * GStreamer
+ - fixes to the pipewiresink plugin.
+ * SPA plugins
+ - Fix a bug where the volume was reset to 0
+ - Add events to dbus plugin. This can be used to detect dbus
+ disconnects.
+ * Media-session
+ - Handle dbus disconnect.
+ - Handle device reservation errors.
+ * PulseAudio server
+ - Implement module-ladspa-sink and a new PipeWire-only
+ module-ladspa-source
+ - Implement module-pipe-sink
+ - Implement module-tunnel-sink and module-tunnel-source
+ - Fix a bug with module argument parsing
+ - Implement module-zeroconf-discover
+ * ALSA plugin
+ - improve error handling
+
+-------------------------------------------------------------------
Old:
----
pipewire-0.3.27.obscpio
New:
----
pipewire-0.3.28.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pipewire.spec ++++++
--- /var/tmp/diff_new_pack.8N7qrM/_old 2021-05-23 23:30:44.268704149 +0200
+++ /var/tmp/diff_new_pack.8N7qrM/_new 2021-05-23 23:30:44.272704133 +0200
@@ -44,7 +44,7 @@
%bcond_with aptx
Name: pipewire
-Version: 0.3.27
+Version: 0.3.28
Release: 0
Summary: A Multimedia Framework designed to be an audio and video server and more
License: MIT
@@ -66,6 +66,7 @@
BuildRequires: systemd-rpm-macros
BuildRequires: xmltoman
BuildRequires: pkgconfig(alsa)
+BuildRequires: pkgconfig(avahi-client)
BuildRequires: pkgconfig(bluez)
BuildRequires: pkgconfig(dbus-1)
%if %{with aac}
@@ -314,7 +315,7 @@
%{buildroot}%{_sysconfdir}/alsa/conf.d/50-pipewire.conf
cp %{buildroot}%{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf \
%{buildroot}%{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf
-touch %{buildroot}%{_sysconfdir}/pipewire/media-session.d/with-alsa
+touch %{buildroot}%{_datadir}/pipewire/media-session.d/with-alsa
mkdir -p %{buildroot}%{_udevrulesdir}
mv -fv %{buildroot}/lib/udev/rules.d/90-pipewire-alsa.rules %{buildroot}%{_udevrulesdir}
@@ -387,17 +388,17 @@
%{_mandir}/man1/pipewire.1%{ext_man}
%{_mandir}/man5/pipewire.conf.5%{ext_man}
-%dir %{_sysconfdir}/pipewire
-%config(noreplace) %{_sysconfdir}/pipewire/pipewire.conf
-%config(noreplace) %{_sysconfdir}/pipewire/client.conf
-%config(noreplace) %{_sysconfdir}/pipewire/client-rt.conf
-%config(noreplace) %{_sysconfdir}/pipewire/jack.conf
-%config(noreplace) %{_sysconfdir}/pipewire/pipewire-pulse.conf
-%dir %{_sysconfdir}/pipewire/media-session.d
-%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/media-session.conf
-%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/alsa-monitor.conf
-%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/bluez-monitor.conf
-%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/v4l2-monitor.conf
+%dir %{_datadir}/pipewire
+%{_datadir}/pipewire/pipewire.conf
+%{_datadir}/pipewire/client.conf
+%{_datadir}/pipewire/client-rt.conf
+%{_datadir}/pipewire/jack.conf
+%{_datadir}/pipewire/pipewire-pulse.conf
+%dir %{_datadir}/pipewire/media-session.d
+%{_datadir}/pipewire/media-session.d/media-session.conf
+%{_datadir}/pipewire/media-session.d/alsa-monitor.conf
+%{_datadir}/pipewire/media-session.d/bluez-monitor.conf
+%{_datadir}/pipewire/media-session.d/v4l2-monitor.conf
%files -n %{libpipewire}
%license LICENSE COPYING
@@ -415,7 +416,7 @@
%{_bindir}/pw-jack
%{_mandir}/man1/pw-jack-%{apiver}.1%{ext_man}
%{_mandir}/man1/pw-jack.1%{ext_man}
-%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/with-jack
+%{_datadir}/pipewire/media-session.d/with-jack
%files -n gstreamer-plugin-pipewire
%{_libdir}/gstreamer-1.0/libgstpipewire.so
@@ -473,9 +474,18 @@
%{_libdir}/pipewire-%{apiver}/libpipewire-module-spa-device.so
%{_libdir}/pipewire-%{apiver}/libpipewire-module-spa-node-factory.so
%{_libdir}/pipewire-%{apiver}/libpipewire-module-spa-node.so
+%{_libdir}/pipewire-%{apiver}/libpipewire-module-filter-chain.so
+%{_libdir}/pipewire-%{apiver}/libpipewire-module-pulse-tunnel.so
+%{_libdir}/pipewire-%{apiver}/libpipewire-module-zeroconf-discover.so
%dir %{_datadir}/alsa-card-profile
%dir %{_datadir}/alsa-card-profile/mixer
%{_datadir}/alsa-card-profile/mixer/*
+%dir %{_datadir}/pipewire/filter-chain
+%{_datadir}/pipewire/filter-chain/demonic.conf
+%{_datadir}/pipewire/filter-chain/sink-dolby-surround.conf
+%{_datadir}/pipewire/filter-chain/sink-eq6.conf
+%{_datadir}/pipewire/filter-chain/sink-matrix-spatialiser.conf
+%{_datadir}/pipewire/filter-chain/source-rnnoise.conf
%files spa-plugins-%{spa_ver_str}
%{_libdir}/spa-%{spa_ver}/alsa/libspa-alsa.so
@@ -531,7 +541,7 @@
%files pulseaudio
%{_bindir}/pipewire-pulse
%{_userunitdir}/pipewire-pulse.*
-%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/with-pulseaudio
+%{_datadir}/pipewire/media-session.d/with-pulseaudio
%files alsa
%dir %{_libdir}/alsa-lib
@@ -544,7 +554,7 @@
%dir %{_sysconfdir}/alsa/conf.d
%config(noreplace) %{_sysconfdir}/alsa/conf.d/50-pipewire.conf
%config(noreplace) %{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf
-%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/with-alsa
+%{_datadir}/pipewire/media-session.d/with-alsa
%{_udevrulesdir}/90-pipewire-alsa.rules
%files lang -f %{name}.lang
++++++ _service ++++++
--- /var/tmp/diff_new_pack.8N7qrM/_old 2021-05-23 23:30:44.304704000 +0200
+++ /var/tmp/diff_new_pack.8N7qrM/_new 2021-05-23 23:30:44.304704000 +0200
@@ -3,7 +3,7 @@
<service name="obs_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://gitlab.freedesktop.org/pipewire/pipewire.git</param>
- <param name="revision">0.3.27</param>
+ <param name="revision">0.3.28</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param>
++++++ pipewire-0.3.27.obscpio -> pipewire-0.3.28.obscpio ++++++
/work/SRC/openSUSE:Factory/pipewire/pipewire-0.3.27.obscpio /work/SRC/openSUSE:Factory/.pipewire.new.2988/pipewire-0.3.28.obscpio differ: char 49, line 1
++++++ pipewire.obsinfo ++++++
--- /var/tmp/diff_new_pack.8N7qrM/_old 2021-05-23 23:30:44.380703684 +0200
+++ /var/tmp/diff_new_pack.8N7qrM/_new 2021-05-23 23:30:44.380703684 +0200
@@ -1,5 +1,5 @@
name: pipewire
-version: 0.3.27
-mtime: 1620289357
-commit: e598d0a42227c9dfa79dcb7583c054c5b2ec072d
+version: 0.3.28
+mtime: 1621411896
+commit: fb55cc4786ce5e78b0987248dd44e54daec77f80
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package webkit2gtk3 for openSUSE:Factory checked in at 2021-05-23 23:30:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/webkit2gtk3 (Old)
and /work/SRC/openSUSE:Factory/.webkit2gtk3.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "webkit2gtk3"
Sun May 23 23:30:35 2021 rev:118 rq:894780 version:2.32.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/webkit2gtk3/webkit2gtk3.changes 2021-04-29 22:44:58.084147555 +0200
+++ /work/SRC/openSUSE:Factory/.webkit2gtk3.new.2988/webkit2gtk3.changes 2021-05-23 23:30:41.592715252 +0200
@@ -1,0 +2,24 @@
+Wed May 19 01:10:34 UTC 2021 - Michael Gorse <mgorse(a)suse.com>
+
+- Update to version 2.32.1:
+ + Support building against the Musl C library.
+ + Support building against ICU version 69 or newer.
+ + Improve handling of Media Capture devices.
+ + Improve WebAudio playback.
+ + Improve video orientation handling.
+ + Improve seeking support for MSE playback.
+ + Improve flush support in EME decryptors.
+ + Fix HTTP status codes for requests done through a custom URI
+ handler.
+ + Fix the Bubblewrap sandbox in certain 32-bit systems.
+ + Fix inconsistencies between the WebKitWebView.is-muted property
+ state and values returned by
+ webkit_web_view_is_playing_audio().
+ + Fix the build with ENABLE_VIDEO=OFF.
+ + Fix wrong timestamps for long-lived cookies.
+ + Fix UI process crash when failing to load favicons.
+ + Fix several crashes and rendering issues.
+ + Updated translations.
+- Drop webkit2gtk3-icu69.patch: fixed upstream.
+
+-------------------------------------------------------------------
Old:
----
webkit2gtk3-icu69.patch
webkitgtk-2.32.0.tar.xz
webkitgtk-2.32.0.tar.xz.asc
New:
----
webkitgtk-2.32.1.tar.xz
webkitgtk-2.32.1.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ webkit2gtk3.spec ++++++
--- /var/tmp/diff_new_pack.M4RQJI/_old 2021-05-23 23:30:42.872709941 +0200
+++ /var/tmp/diff_new_pack.M4RQJI/_new 2021-05-23 23:30:42.876709924 +0200
@@ -31,7 +31,7 @@
%define _gold_linker 0
%endif
Name: webkit2gtk3
-Version: 2.32.0
+Version: 2.32.1
Release: 0
Summary: Library for rendering web content, GTK+ Port
License: BSD-3-Clause AND LGPL-2.0-or-later
@@ -44,8 +44,6 @@
# PATCH-FIX-OPENSUSE no-forced-sse.patch jengelh(a)iani.de -- cure execution of illegal instruction in i586 firefox.
Patch0: no-forced-sse.patch
-# PATCH-FIX-UPSTREAM webkit2gtk3-icu69.patch webkit#224093 dimstar(a)opensuse.org -- ICU 69 deprecates ubrk_safeClone in favor of ubrk_clone
-Patch1: webkit2gtk3-icu69.patch
BuildRequires: Mesa-libEGL-devel
BuildRequires: Mesa-libGL-devel
++++++ webkitgtk-2.32.0.tar.xz -> webkitgtk-2.32.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/webkit2gtk3/webkitgtk-2.32.0.tar.xz /work/SRC/openSUSE:Factory/.webkit2gtk3.new.2988/webkitgtk-2.32.1.tar.xz differ: char 26, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package pango for openSUSE:Factory checked in at 2021-05-23 23:30:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pango (Old)
and /work/SRC/openSUSE:Factory/.pango.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pango"
Sun May 23 23:30:34 2021 rev:130 rq:894779 version:1.48.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/pango/pango.changes 2021-04-24 23:06:55.995206459 +0200
+++ /work/SRC/openSUSE:Factory/.pango.new.2988/pango.changes 2021-05-23 23:30:40.100721441 +0200
@@ -1,0 +2,14 @@
+Tue May 18 16:16:14 UTC 2021 - Michael Gorse <mgorse(a)suse.com>
+
+- Update to version 1.48.5:
+ + Only initialize fontconfig once.
+ + Add missing deprecation notices.
+ + Add some missing apis to the markup docs.
+ + Speed up Emoji classification.
+ + Fix hangs and memory leaks.
+ + Don't insert hyphens at word boundaries.
+ + Handle empty lines better.
+ + Avoid width fluctuations with ellipsized text.
+ + Add a utility to show text segmentation.
+
+-------------------------------------------------------------------
Old:
----
pango-1.48.4.obscpio
New:
----
pango-1.48.5.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pango.spec ++++++
--- /var/tmp/diff_new_pack.HJejO2/_old 2021-05-23 23:30:41.092717326 +0200
+++ /var/tmp/diff_new_pack.HJejO2/_new 2021-05-23 23:30:41.096717309 +0200
@@ -17,7 +17,7 @@
Name: pango
-Version: 1.48.4
+Version: 1.48.5
Release: 0
Summary: Library for Layout and Rendering of Text
License: LGPL-2.1-or-later
++++++ _service ++++++
--- /var/tmp/diff_new_pack.HJejO2/_old 2021-05-23 23:30:41.128717177 +0200
+++ /var/tmp/diff_new_pack.HJejO2/_new 2021-05-23 23:30:41.128717177 +0200
@@ -2,7 +2,7 @@
<service name="obs_scm" mode="disabled">
<param name="url">https://gitlab.gnome.org/GNOME/pango.git</param>
<param name="scm">git</param>
- <param name="revision">refs/tags/1.48.4</param>
+ <param name="revision">refs/tags/1.48.5</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param>
++++++ pango-1.48.4.obscpio -> pango-1.48.5.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/.gitlab-ci/run-tests.sh new/pango-1.48.5/.gitlab-ci/run-tests.sh
--- old/pango-1.48.4/.gitlab-ci/run-tests.sh 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/.gitlab-ci/run-tests.sh 2021-05-18 15:51:55.000000000 +0200
@@ -7,7 +7,7 @@
builddir=$1
# Ignore memory leaks lower in dependencies
-export LSAN_OPTIONS=fast_unwind_on_malloc=0:suppressions=$srcdir/lsan.supp:print_suppressions=0
+export LSAN_OPTIONS=suppressions=$srcdir/lsan.supp:print_suppressions=0
# Check leaks of slices
export G_SLICE=always-malloc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/NEWS new/pango-1.48.5/NEWS
--- old/pango-1.48.4/NEWS 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/NEWS 2021-05-18 15:51:55.000000000 +0200
@@ -1,3 +1,16 @@
+Overview of changes in 1.48.5
+=============================
+- Only initialize fontconfig once
+- Add missing deprecation notices
+- Add some missing apis to the markup docs
+- Speed up Emoji classification
+- win32: Fix msvc build
+- Fix hangs and memory leaks
+- Don't insert hyphens at word boundaries
+- Handle empty lines better
+- Avoid width fluctuations with ellipsized text
+- Add a utility to show text segmentation
+
Overview of changes in 1.48.4
=============================
- Include docs in the dist tarball
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/docs/pango_markup.md new/pango-1.48.5/docs/pango_markup.md
--- old/pango-1.48.4/docs/pango_markup.md 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/docs/pango_markup.md 2021-05-18 15:51:55.000000000 +0200
@@ -136,6 +136,13 @@
: The color of underlines; an RGB color specification such as '#00FF00' or a color
name such as 'red'.
+overline
+: One of 'none' or 'single'. Overline support was added in Pango 1.46/
+
+overline_color
+: The color of overlines; an RGB color specification such as '#00FF00' or a color
+ name such as 'red'. Overline support was added in Pango 1.46/
+
rise
: Vertical displacement, in Pango units. Can be negative for subscript, positive
for superscript.
@@ -165,6 +172,19 @@
gravity_hint
: One of 'natural', 'strong', 'line'.
+show
+: Specifies what special characters to show visibly. The value can be 'none'
+ or a combination of 'spaces', 'line-breaks' and 'ignorables', combined with '|'.
+ Support for showing special characters was added in Pango 1.44.
+
+insert_hyphens
+: 'true' or 'false' to indicate whether hyphens should be inserted when breaking
+ lines in the middle of words. Available since Pango 1.44.
+
+allow_breaks
+: 'true' or 'false' to indicate whether breaking lines is allowed. Available
+ since Pango 1.44.
+
## Convenience Tags
`<b>`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/make-release.sh new/pango-1.48.5/make-release.sh
--- old/pango-1.48.4/make-release.sh 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/make-release.sh 2021-05-18 15:51:55.000000000 +0200
@@ -9,6 +9,9 @@
exit 1
fi
+# make sure included subprojects are current
+meson subprojects update gi-docgen
+
# make the release tarball
meson setup -Dgtk_doc=true --force-fallback-for gi-docgen ${release_build_dir} || exit
meson compile -C${release_build_dir} || exit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/meson.build new/pango-1.48.5/meson.build
--- old/pango-1.48.4/meson.build 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/meson.build 2021-05-18 15:51:55.000000000 +0200
@@ -1,5 +1,5 @@
project('pango', 'c', 'cpp',
- version: '1.48.4',
+ version: '1.48.5',
license: 'LGPLv2.1+',
default_options: [
'buildtype=debugoptimized',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/break.c new/pango-1.48.5/pango/break.c
--- old/pango-1.48.4/pango/break.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/break.c 2021-05-18 15:51:55.000000000 +0200
@@ -306,7 +306,6 @@
/* Emoji extended pictographics */
gboolean is_Extended_Pictographic;
-
wc = next_wc;
break_type = next_break_type;
@@ -362,12 +361,15 @@
case G_UNICODE_PARAGRAPH_SEPARATOR:
attrs[i].is_white = TRUE;
break;
- default:
+ case G_UNICODE_CONTROL:
if (wc == '\t' || wc == '\n' || wc == '\r' || wc == '\f')
attrs[i].is_white = TRUE;
else
attrs[i].is_white = FALSE;
break;
+ default:
+ attrs[i].is_white = FALSE;
+ break;
}
/* Just few spaces have variable width. So explicitly mark them.
@@ -502,9 +504,7 @@
else if (GB_type == GB_InHangulSyllable)
is_grapheme_boundary = FALSE; /* Rules GB6, GB7, GB8 */
else if (GB_type == GB_Extend)
- {
- is_grapheme_boundary = FALSE; /* Rule GB9 */
- }
+ is_grapheme_boundary = FALSE; /* Rule GB9 */
else if (GB_type == GB_ZWJ)
is_grapheme_boundary = FALSE; /* Rule GB9 */
else if (GB_type == GB_SpacingMark)
@@ -641,14 +641,12 @@
if (wc >= 0x24B6 && wc <= 0x24E9) /* Other_Alphabetic */
goto Alphabetic;
- if (G_UNLIKELY(wc >=0x1F1E6 && wc <=0x1F1FF))
+ if (G_UNLIKELY(wc >= 0x1F1E6 && wc <= 0x1F1FF))
{
- if (prev_WB_type == WB_RI_Odd)
- WB_type = WB_RI_Even;
- else if (prev_WB_type == WB_RI_Even)
- WB_type = WB_RI_Odd;
- else
- WB_type = WB_RI_Odd;
+ if (prev_WB_type == WB_RI_Odd)
+ WB_type = WB_RI_Even;
+ else
+ WB_type = WB_RI_Odd;
}
break;
@@ -933,7 +931,20 @@
prev_prev_SB_type == SB_ATerm_Close_Sp) &&
IS_OTHER_TERM(prev_SB_type) &&
SB_type == SB_Lower)
- attrs[prev_SB_i].is_sentence_boundary = FALSE;
+ {
+ attrs[prev_SB_i].is_sentence_boundary = FALSE;
+ attrs[prev_SB_i].is_sentence_start = FALSE;
+ attrs[prev_SB_i].is_sentence_end = FALSE;
+ last_sentence_start = -1;
+ for (int j = prev_SB_i - 1; j >= 0; j--)
+ {
+ if (attrs[j].is_sentence_boundary)
+ {
+ last_sentence_start = j;
+ break;
+ }
+ }
+ }
else if ((prev_SB_type == SB_ATerm ||
prev_SB_type == SB_ATerm_Close_Sp ||
prev_SB_type == SB_STerm ||
@@ -1538,8 +1549,9 @@
/* meets space character, move sentence start */
if (last_sentence_start != -1 &&
last_sentence_start == i - 1 &&
- attrs[i - 1].is_white)
+ attrs[i - 1].is_white) {
last_sentence_start++;
+ }
}
@@ -1563,7 +1575,6 @@
attrs[i].is_line_break = TRUE; /* Rule LB3 */
attrs[0].is_line_break = FALSE; /* Rule LB2 */
-
}
static gboolean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/ellipsize.c new/pango-1.48.5/pango/ellipsize.c
--- old/pango-1.48.4/pango/ellipsize.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/ellipsize.c 2021-05-18 15:51:55.000000000 +0200
@@ -634,7 +634,8 @@
* of the gap
*/
static void
-fixup_ellipsis_run (EllipsizeState *state)
+fixup_ellipsis_run (EllipsizeState *state,
+ int extra_width)
{
PangoGlyphString *glyphs = state->ellipsis_run->glyphs;
PangoItem *item = state->ellipsis_run->item;
@@ -650,6 +651,8 @@
glyphs->glyphs[0].attr.is_cluster_start = TRUE;
+ glyphs->glyphs[glyphs->num_glyphs - 1].geometry.width += extra_width;
+
/* Fix up the item to point to the entire elided text */
item->offset = state->gap_start_iter.run_iter.start_index;
item->length = state->gap_end_iter.run_iter.end_index - item->offset;
@@ -765,7 +768,7 @@
break;
}
- fixup_ellipsis_run (&state);
+ fixup_ellipsis_run (&state, MAX (goal_width - current_width (&state), 0));
g_slist_free (line->runs);
line->runs = get_run_list (&state);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pango-attributes.h new/pango-1.48.5/pango/pango-attributes.h
--- old/pango-1.48.4/pango/pango-attributes.h 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pango-attributes.h 2021-05-18 15:51:55.000000000 +0200
@@ -214,7 +214,10 @@
* single characters, such as for keyboard accelerators.
* %PANGO_UNDERLINE_SINGLE should be used for extended
* portions of text.
- * @PANGO_UNDERLINE_ERROR: a wavy underline should be drawn below.
+ * @PANGO_UNDERLINE_ERROR: an underline indicating an error should
+ * be drawn below. The exact style of rendering is up to the
+ * `PangoRenderer` in use, but typical styles include wavy
+ * or dotted lines.
* This underline is typically used to indicate an error such
* as a possible mispelling; in some cases a contrasting color
* may automatically be used. This type of underlining is
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pango-bidi-type.c new/pango-1.48.5/pango/pango-bidi-type.c
--- old/pango-1.48.4/pango/pango-bidi-type.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pango-bidi-type.c 2021-05-18 15:51:55.000000000 +0200
@@ -273,8 +273,8 @@
*
* This function is useful to categorize characters into left-to-right
* letters, right-to-left letters, and everything else. If full Unicode
- * bidirectional type of a character is needed, [type_func(a)Pango.BidiType.for_unichar]
- * can be used instead.
+ * bidirectional type of a character is needed,
+ * [type_func(a)Pango.BidiType.for_unichar] can be used instead.
*
* Return value: the direction of the character.
*/
@@ -305,12 +305,12 @@
*
* Mirror characters are determined by the Unicode mirrored property.
*
- * Use g_unichar_get_mirror_char() instead; the docs for that function
- * provide full details.
- *
* Return value: %TRUE if @ch has a mirrored character and @mirrored_ch is
* filled in, %FALSE otherwise
- **/
+ *
+ * Deprecated: Use g_unichar_get_mirror_char() instead; the docs for that function
+ * provide full details.
+ */
gboolean
pango_get_mirror_char (gunichar ch,
gunichar *mirrored_ch)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pango-break.h new/pango-1.48.5/pango/pango-break.h
--- old/pango-1.48.4/pango/pango-break.h 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pango-break.h 2021-05-18 15:51:55.000000000 +0200
@@ -51,7 +51,7 @@
* so all chars are in some sentence; @is_sentence_boundary denotes
* the boundaries there. The second way doesn't assign
* between-sentence spaces, etc. to any sentence, so
- * @is_sentence_start/@is_sentence_end mark the boundaries of those sentences.
+ * @is_sentence_start/@is_sentence_end mark the boundaries of those sentences.
* @is_sentence_start: is first character in a sentence
* @is_sentence_end: is first char after a sentence.
* Note that in degenerate cases, you could have both @is_sentence_start
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pango-context.c new/pango-1.48.5/pango/pango-context.c
--- old/pango-1.48.4/pango/pango-context.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pango-context.c 2021-05-18 15:51:55.000000000 +0200
@@ -910,6 +910,9 @@
int st = 0;
int ed = max;
+ if (ch < upright[0][0])
+ return FALSE;
+
while (st <= ed)
{
int mid = (st + ed) / 2;
@@ -926,7 +929,7 @@
}
static void
-width_iter_next(PangoWidthIter* iter)
+width_iter_next (PangoWidthIter *iter)
{
gboolean met_joiner = FALSE;
iter->start = iter->end;
@@ -958,9 +961,9 @@
}
/* for variation selector, tag and emoji modifier. */
- if (G_UNLIKELY(ch == 0xFE0EU || ch == 0xFE0FU
- || (ch >= 0xE0020 && ch <= 0xE007F)
- || (ch >= 0x1F3FB && ch <= 0x1F3FF)))
+ if (G_UNLIKELY (ch == 0xFE0EU || ch == 0xFE0FU ||
+ (ch >= 0xE0020 && ch <= 0xE007F) ||
+ (ch >= 0x1F3FB && ch <= 0x1F3FF)))
{
iter->end = g_utf8_next_char (iter->end);
continue;
@@ -968,6 +971,7 @@
if (width_iter_is_upright (ch) != iter->upright)
break;
+
iter->end = g_utf8_next_char (iter->end);
}
}
@@ -1000,7 +1004,6 @@
PangoAttrIterator *cached_iter,
const PangoFontDescription *desc)
{
-
state->context = context;
state->text = text;
state->end = text + start_index + length;
@@ -1410,10 +1413,10 @@
{
gboolean is_emoji = state->emoji_iter.is_emoji;
if (is_emoji && !state->emoji_font_desc)
- {
- state->emoji_font_desc = pango_font_description_copy_static (state->font_desc);
- pango_font_description_set_family_static (state->emoji_font_desc, "emoji");
- }
+ {
+ state->emoji_font_desc = pango_font_description_copy_static (state->font_desc);
+ pango_font_description_set_family_static (state->emoji_font_desc, "emoji");
+ }
state->current_fonts = pango_font_map_load_fontset (state->context->font_map,
state->context,
is_emoji ? state->emoji_font_desc : state->font_desc,
@@ -1576,7 +1579,7 @@
g_return_val_if_fail (length >= 0, NULL);
g_return_val_if_fail (length == 0 || text != NULL, NULL);
- if (length == 0 || g_utf8_strlen (text + start_index, length) == 0)
+ if (length == 0 || g_utf8_get_char (text + start_index) == '\0')
return NULL;
itemize_state_init (&state, context, text, base_dir, start_index, length,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pango-emoji.c new/pango-1.48.5/pango/pango-emoji.c
--- old/pango-1.48.4/pango/pango-emoji.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pango-emoji.c 2021-05-18 15:51:55.000000000 +0200
@@ -52,40 +52,37 @@
#include "pango-emoji-private.h"
#include "pango-emoji-table.h"
+static inline gboolean
+bsearch_interval (gunichar c,
+ const struct Interval table[],
+ guint n)
+{
+ guint lower = 0;
+ guint upper = n - 1;
+
+ while (lower <= upper)
+ {
+ int mid = (lower + upper) / 2;
+
+ if (c < table[mid].start)
+ upper = mid - 1;
+ else if (c > table[mid].end)
+ lower = mid + 1;
+ else
+ return TRUE;
+ }
-static int
-interval_compare (const void *key, const void *elt)
-{
- gunichar c = GPOINTER_TO_UINT (key);
- struct Interval *interval = (struct Interval *)elt;
-
- if (c < interval->start)
- return -1;
- if (c > interval->end)
- return +1;
-
- return 0;
+ return FALSE;
}
#define DEFINE_pango_Is_(name) \
-static gboolean \
+static inline gboolean \
_pango_Is_##name (gunichar ch) \
{ \
- /* bsearch() is declared attribute(nonnull(1)) so we can't validly search \
- * for a NULL key */ \
- /* \
- if (G_UNLIKELY (ch == 0)) \
- return FALSE; \
- */ \
- \
- if (bsearch (GUINT_TO_POINTER (ch), \
- _pango_##name##_table, \
- G_N_ELEMENTS (_pango_##name##_table), \
- sizeof _pango_##name##_table[0], \
- interval_compare)) \
- return TRUE; \
- \
- return FALSE; \
+ return ch >= _pango_##name##_table[0].start && \
+ bsearch_interval (ch, \
+ _pango_##name##_table, \
+ G_N_ELEMENTS (_pango_##name##_table)); \
}
DEFINE_pango_Is_(Emoji)
@@ -106,36 +103,36 @@
return _pango_Is_Extended_Pictographic (ch);
}
-static gboolean
+static inline gboolean
_pango_Is_Emoji_Text_Default (gunichar ch)
{
return _pango_Is_Emoji (ch) && !_pango_Is_Emoji_Presentation (ch);
}
-static gboolean
+static inline gboolean
_pango_Is_Emoji_Emoji_Default (gunichar ch)
{
return _pango_Is_Emoji_Presentation (ch);
}
-static gboolean
+static inline gboolean
_pango_Is_Emoji_Keycap_Base (gunichar ch)
{
return (ch >= '0' && ch <= '9') || ch == '#' || ch == '*';
}
-static gboolean
+static inline gboolean
_pango_Is_Regional_Indicator (gunichar ch)
{
return (ch >= 0x1F1E6 && ch <= 0x1F1FF);
}
-const gunichar kCombiningEnclosingCircleBackslashCharacter = 0x20E0;
-const gunichar kCombiningEnclosingKeycapCharacter = 0x20E3;
-const gunichar kVariationSelector15Character = 0xFE0E;
-const gunichar kVariationSelector16Character = 0xFE0F;
-const gunichar kZeroWidthJoinerCharacter = 0x200D;
+#define kCombiningEnclosingCircleBackslashCharacter 0x20E0
+#define kCombiningEnclosingKeycapCharacter 0x20E3
+#define kVariationSelector15Character 0xFE0E
+#define kVariationSelector16Character 0xFE0F
+#define kZeroWidthJoinerCharacter 0x200D
enum PangoEmojiScannerCategory {
EMOJI = 0,
@@ -157,27 +154,41 @@
kMaxEmojiScannerCategory = 16
};
-static unsigned char
+static inline unsigned char
_pango_EmojiSegmentationCategory (gunichar codepoint)
{
/* Specific ones first. */
- if (codepoint == kCombiningEnclosingKeycapCharacter)
- return COMBINING_ENCLOSING_KEYCAP;
- if (codepoint == kCombiningEnclosingCircleBackslashCharacter)
- return COMBINING_ENCLOSING_CIRCLE_BACKSLASH;
- if (codepoint == kZeroWidthJoinerCharacter)
- return ZWJ;
- if (codepoint == kVariationSelector15Character)
- return VS15;
- if (codepoint == kVariationSelector16Character)
- return VS16;
- if (codepoint == 0x1F3F4)
- return TAG_BASE;
- if ((codepoint >= 0xE0030 && codepoint <= 0xE0039) ||
- (codepoint >= 0xE0061 && codepoint <= 0xE007A))
+ if (('a' <= codepoint && codepoint <= 'z') ||
+ ('A' <= codepoint && codepoint <= 'Z') ||
+ codepoint == ' ')
+ return kMaxEmojiScannerCategory;
+
+ if ('0' <= codepoint && codepoint <= '9')
+ return KEYCAP_BASE;
+
+ switch (codepoint)
+ {
+ case kCombiningEnclosingKeycapCharacter:
+ return COMBINING_ENCLOSING_KEYCAP;
+ case kCombiningEnclosingCircleBackslashCharacter:
+ return COMBINING_ENCLOSING_CIRCLE_BACKSLASH;
+ case kZeroWidthJoinerCharacter:
+ return ZWJ;
+ case kVariationSelector15Character:
+ return VS15;
+ case kVariationSelector16Character:
+ return VS16;
+ case 0x1F3F4:
+ return TAG_BASE;
+ case 0xE007F:
+ return TAG_TERM;
+ default: ;
+ }
+
+ if ((0xE0030 <= codepoint && codepoint <= 0xE0039) ||
+ (0xE0061 <= codepoint && codepoint <= 0xE007A))
return TAG_SEQUENCE;
- if (codepoint == 0xE007F)
- return TAG_TERM;
+
if (_pango_Is_Emoji_Modifier_Base (codepoint))
return EMOJI_MODIFIER_BASE;
if (_pango_Is_Emoji_Modifier (codepoint))
@@ -186,13 +197,10 @@
return REGIONAL_INDICATOR;
if (_pango_Is_Emoji_Keycap_Base (codepoint))
return KEYCAP_BASE;
-
if (_pango_Is_Emoji_Emoji_Default (codepoint))
return EMOJI_EMOJI_PRESENTATION;
- if (_pango_Is_Emoji_Text_Default (codepoint))
- return EMOJI_TEXT_PRESENTATION;
if (_pango_Is_Emoji (codepoint))
- return EMOJI;
+ return EMOJI_TEXT_PRESENTATION;
/* Ragel state machine will interpret unknown category as "any". */
return kMaxEmojiScannerCategory;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pango-enum-types.c.template new/pango-1.48.5/pango/pango-enum-types.c.template
--- old/pango-1.48.4/pango/pango-enum-types.c.template 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pango-enum-types.c.template 2021-05-18 15:51:55.000000000 +0200
@@ -13,7 +13,7 @@
GType
@enum_name@_get_type (void)
{
- static volatile gsize g_define_type_id__volatile = 0;
+ static gsize g_define_type_id__volatile = 0;
if (g_once_init_enter (&g_define_type_id__volatile))
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pango-impl-utils.h new/pango-1.48.5/pango/pango-impl-utils.h
--- old/pango-1.48.4/pango/pango-impl-utils.h 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pango-impl-utils.h 2021-05-18 15:51:55.000000000 +0200
@@ -163,6 +163,9 @@
for (i = 0; i < G_N_ELEMENTS (ignorables); i++)
{
+ if (ch < ignorables[i].ch)
+ return NULL;
+
if (ch == ignorables[i].ch)
return ignorables[i].nick;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pango-layout.c new/pango-1.48.5/pango/pango-layout.c
--- old/pango-1.48.4/pango/pango-layout.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pango-layout.c 2021-05-18 15:51:55.000000000 +0200
@@ -32,7 +32,7 @@
* functionality such as line breaking, justification, alignment and
* ellipsization.
*
- * A `PangoLayout is initialized with a `PangoContext`, UTF-8 string
+ * A `PangoLayout` is initialized with a `PangoContext`, UTF-8 string
* and set of attributes for that string. Once that is done, the set of
* formatted lines can be extracted from the object, the layout can be
* rendered, and conversion between logical character positions within
@@ -356,11 +356,6 @@
if (width != layout->width)
{
layout->width = width;
-
- /* Increasing the width can only decrease the line count */
- if (layout->line_count == 1 && width > layout->width)
- return;
-
layout_changed (layout);
}
}
@@ -3516,6 +3511,8 @@
}
_pango_attr_list_get_iterator (&attrs, &iter);
+ prev_space = prev_hyphen = TRUE;
+
for (i = 0, p = text + item->offset; i < item->num_chars; i++, p = g_utf8_next_char (p))
{
gunichar wc = g_utf8_get_char (p);
@@ -3586,9 +3583,7 @@
else
hyphen = FALSE;
- if (i == 0)
- need_hyphen[i] = FALSE;
- else if (prev_space || space)
+ if (prev_space || space)
need_hyphen[i] = FALSE;
else if (prev_hyphen || hyphen)
need_hyphen[i] = FALSE;
@@ -3599,6 +3594,8 @@
prev_hyphen = hyphen;
}
+ need_hyphen[item->num_chars - 1] = FALSE;
+
_pango_attr_iterator_destroy (&iter);
_pango_attr_list_destroy (&attrs);
}
@@ -3611,6 +3608,9 @@
if (state->log_widths_offset + pos == 0)
return FALSE;
+ if (layout->log_attrs[state->start_offset + pos].is_word_boundary)
+ return FALSE;
+
if (state->need_hyphen[state->log_widths_offset + pos - 1])
return TRUE;
@@ -4984,7 +4984,7 @@
gboolean has_underline;
gboolean has_overline;
- if (G_UNLIKELY (!run_ink && !run_logical))
+ if (G_UNLIKELY (!run_ink && !run_logical && !height))
return;
pango_layout_get_item_properties (run->item, &properties);
@@ -5109,7 +5109,7 @@
g_return_if_fail (LINE_IS_VALID (line));
- if (G_UNLIKELY (!ink_rect && !logical_rect))
+ if (G_UNLIKELY (!ink_rect && !logical_rect && !height))
return;
switch (private->cache_status)
@@ -5215,8 +5215,15 @@
tmp_list = tmp_list->next;
}
- if (logical_rect && !line->runs)
- pango_layout_line_get_empty_extents (line, logical_rect);
+ if (!line->runs)
+ {
+ PangoRectangle r, *rect;
+
+ rect = logical_rect ? logical_rect : &r;
+ pango_layout_line_get_empty_extents (line, rect);
+ if (height)
+ *height = rect->height;
+ }
if (caching)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pango-renderer.c new/pango-1.48.5/pango/pango-renderer.c
--- old/pango-1.48.4/pango/pango-renderer.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pango-renderer.c 2021-05-18 15:51:55.000000000 +0200
@@ -157,6 +157,9 @@
*
* Draws @layout with the specified `PangoRenderer`.
*
+ * This is equivalent to drawing the lines of the layout, at their
+ * respective positions relative to @x, @y.
+ *
* Since: 1.8
*/
void
@@ -558,6 +561,10 @@
*
* Draws @line with the specified `PangoRenderer`.
*
+ * This draws the glyph items that make up the line, as well as
+ * shapes, backgrounds and lines that are specified by the attributes
+ * of those items.
+ *
* Since: 1.8
*/
void
@@ -807,6 +814,11 @@
*
* This is useful for rendering text in PDF.
*
+ * Note that this method does not handle attributes in @glyph_item.
+ * If you want colors, shapes and lines handled automatically according
+ * to those attributes, you need to use pango_renderer_draw_layout_line()
+ * or pango_renderer_draw_layout().
+ *
* Note that @text is the start of the text for layout, which is then
* indexed by `glyph_item->item->offset`.
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pangocoretext-fontmap.c new/pango-1.48.5/pango/pangocoretext-fontmap.c
--- old/pango-1.48.4/pango/pangocoretext-fontmap.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pangocoretext-fontmap.c 2021-05-18 15:51:55.000000000 +0200
@@ -529,7 +529,8 @@
int *n_sizes)
{
*n_sizes = 0;
- *sizes = NULL;
+ if (sizes)
+ *sizes = NULL;
}
G_DEFINE_TYPE (PangoCoreTextFace, pango_core_text_face, PANGO_TYPE_FONT_FACE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pangofc-fontmap.c new/pango-1.48.5/pango/pangofc-fontmap.c
--- old/pango-1.48.4/pango/pangofc-fontmap.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pangofc-fontmap.c 2021-05-18 15:51:55.000000000 +0200
@@ -106,7 +106,7 @@
*/
static GMutex fc_init_mutex;
static GCond fc_init_cond;
-static gboolean fc_initialized;
+static int fc_initialized = 0;
typedef struct _PangoFcFontFaceData PangoFcFontFaceData;
@@ -820,11 +820,8 @@
g_object_unref (fontmap);
}
-static void
-match_in_thread (GTask *task,
- gpointer source_object,
- gpointer task_data,
- GCancellable *cancellable)
+static gpointer
+match_in_thread (gpointer task_data)
{
ThreadData *td = task_data;
FcResult result;
@@ -842,13 +839,14 @@
td->patterns->match = match;
g_cond_signal (&td->patterns->cond);
g_mutex_unlock (&td->patterns->mutex);
+
+ thread_data_free (td);
+
+ return NULL;
}
-static void
-sort_in_thread (GTask *task,
- gpointer source_object,
- gpointer task_data,
- GCancellable *cancellable)
+static gpointer
+sort_in_thread (gpointer task_data)
{
ThreadData *td = task_data;
FcResult result;
@@ -868,13 +866,17 @@
td->patterns->fontset = fontset;
g_cond_signal (&td->patterns->cond);
g_mutex_unlock (&td->patterns->mutex);
+
+ thread_data_free (td);
+
+ return NULL;
}
static PangoFcPatterns *
pango_fc_patterns_new (FcPattern *pat, PangoFcFontMap *fontmap)
{
PangoFcPatterns *pats;
- GTask *task;
+ GThread *thread;
pat = uniquify_pattern (fontmap, pat);
pats = g_hash_table_lookup (fontmap->priv->patterns_hash, pat);
@@ -892,17 +894,11 @@
g_mutex_init (&pats->mutex);
g_cond_init (&pats->cond);
- task = g_task_new (NULL, NULL, NULL, NULL);
- g_task_set_name (task, "[pango] FcFontSetMatch");
- g_task_set_task_data (task, thread_data_new (pats), thread_data_free);
- g_task_run_in_thread (task, match_in_thread);
- g_object_unref (task);
-
- task = g_task_new (NULL, NULL, NULL, NULL);
- g_task_set_name (task, "[pango] FcFontSetSort");
- g_task_set_task_data (task, thread_data_new (pats), thread_data_free);
- g_task_run_in_thread (task, sort_in_thread);
- g_object_unref (task);
+ thread = g_thread_new ("[pango] FcFontSetMatch", match_in_thread, thread_data_new (pats));
+ g_thread_unref (thread);
+
+ thread = g_thread_new ("[pango] FcFontSetSort", sort_in_thread, thread_data_new (pats));
+ g_thread_unref (thread);
g_hash_table_insert (fontmap->priv->patterns_hash,
pats->pattern, pats);
@@ -1344,11 +1340,8 @@
G_ADD_PRIVATE (PangoFcFontMap)
G_IMPLEMENT_INTERFACE (G_TYPE_LIST_MODEL, pango_fc_font_map_list_model_init))
-static void
-init_in_thread (GTask *task,
- gpointer source_object,
- gpointer task_data,
- GCancellable *cancellable)
+static gpointer
+init_in_thread (gpointer task_data)
{
gint64 before = PANGO_TRACE_CURRENT_TIME;
@@ -1357,8 +1350,27 @@
pango_trace_mark (before, "FcInit", NULL);
g_mutex_lock (&fc_init_mutex);
- fc_initialized = TRUE;
- g_cond_signal (&fc_init_cond);
+ fc_initialized = 2;
+ g_cond_broadcast (&fc_init_cond);
+ g_mutex_unlock (&fc_init_mutex);
+
+ return NULL;
+}
+
+static void
+start_init_in_thread (PangoFcFontMap *fcfontmap)
+{
+ g_mutex_lock (&fc_init_mutex);
+
+ if (fc_initialized == 0)
+ {
+ GThread *thread;
+
+ fc_initialized = 1;
+ thread = g_thread_new ("[pango] FcInit", init_in_thread, NULL);
+ g_thread_unref (thread);
+ }
+
g_mutex_unlock (&fc_init_mutex);
}
@@ -1369,7 +1381,7 @@
gboolean waited = FALSE;
g_mutex_lock (&fc_init_mutex);
- while (!fc_initialized)
+ while (fc_initialized < 2)
{
waited = TRUE;
g_cond_wait (&fc_init_cond, &fc_init_mutex);
@@ -1411,15 +1423,7 @@
NULL);
priv->dpi = -1;
- if (!fc_initialized)
- {
- GTask *task;
-
- task = g_task_new (fcfontmap, NULL, NULL, NULL);
- g_task_set_name (task, "[pango] FcInit");
- g_task_run_in_thread (task, init_in_thread);
- g_object_unref (task);
- }
+ start_init_in_thread (fcfontmap);
}
static void
@@ -2321,7 +2325,7 @@
FcConfigDestroy (oldconfig);
/* No need to wait anymore */
- fc_initialized = TRUE;
+ fc_initialized = 2;
}
/**
@@ -2893,7 +2897,8 @@
FcObjectSet *objectset;
FcFontSet *fonts;
- *sizes = NULL;
+ if (sizes)
+ *sizes = NULL;
*n_sizes = 0;
if (G_UNLIKELY (!fcface->family || !fcface->family->fontmap))
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pangofc-shape.c new/pango-1.48.5/pango/pangofc-shape.c
--- old/pango-1.48.4/pango/pangofc-shape.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pangofc-shape.c 2021-05-18 15:51:55.000000000 +0200
@@ -151,18 +151,10 @@
{
PangoHbShapeContext *context = (PangoHbShapeContext *) font_data;
- if ((context->show_flags & PANGO_SHOW_IGNORABLES) != 0)
+ if (context->show_flags != 0)
{
- if (pango_get_ignorable (unicode))
- {
- *glyph = PANGO_GET_UNKNOWN_GLYPH (unicode);
- return TRUE;
- }
- }
-
- if ((context->show_flags & PANGO_SHOW_SPACES) != 0)
- {
- if (g_unichar_type (unicode) == G_UNICODE_SPACE_SEPARATOR)
+ if ((context->show_flags & PANGO_SHOW_SPACES) != 0 &&
+ g_unichar_type (unicode) == G_UNICODE_SPACE_SEPARATOR)
{
/* Replace 0x20 by visible space, since we
* don't draw a hex box for 0x20
@@ -173,11 +165,16 @@
*glyph = PANGO_GET_UNKNOWN_GLYPH (unicode);
return TRUE;
}
- }
- if ((context->show_flags & PANGO_SHOW_LINE_BREAKS) != 0)
- {
- if (unicode == 0x2028)
+ if ((context->show_flags & PANGO_SHOW_IGNORABLES) != 0 &&
+ pango_get_ignorable (unicode))
+ {
+ *glyph = PANGO_GET_UNKNOWN_GLYPH (unicode);
+ return TRUE;
+ }
+
+ if ((context->show_flags & PANGO_SHOW_LINE_BREAKS) != 0 &&
+ unicode == 0x2028)
{
/* Always mark LS as unknown. If it ends up
* at the line end, PangoLayout takes care of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pangowin32-fontmap.c new/pango-1.48.5/pango/pangowin32-fontmap.c
--- old/pango-1.48.4/pango/pangowin32-fontmap.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pangowin32-fontmap.c 2021-05-18 15:51:55.000000000 +0200
@@ -1794,7 +1794,8 @@
* for scalable fonts it's simple, and currently we only have such
* see : pango_win32_enum_proc(), TRUETYPE_FONTTYPE
*/
- *sizes = NULL;
+ if (sizes)
+ *sizes = NULL;
*n_sizes = 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/pango/pangowin32.c new/pango-1.48.5/pango/pangowin32.c
--- old/pango-1.48.4/pango/pangowin32.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/pango/pangowin32.c 2021-05-18 15:51:55.000000000 +0200
@@ -820,10 +820,7 @@
PangoWin32FontCache *cache = pango_win32_font_map_get_font_cache (win32font->fontmap);
PangoWin32Font *fontmap;
- if (G_UNLIKELY (!cache))
- return;
-
- if (win32font->hfont != NULL)
+ if (cache != NULL && win32font->hfont != NULL)
pango_win32_font_cache_unload (cache, win32font->hfont);
g_slist_foreach (win32font->metrics_by_lang, (GFunc)free_metrics_info, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/subprojects/gi-docgen.wrap new/pango-1.48.5/subprojects/gi-docgen.wrap
--- old/pango-1.48.4/subprojects/gi-docgen.wrap 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/subprojects/gi-docgen.wrap 2021-05-18 15:51:55.000000000 +0200
@@ -1,6 +1,6 @@
[wrap-git]
directory=gi-docgen
-url=https://gitlab.gnome.org/ebassi/gi-docgen.git
-push-url=ssh://git@gitlab.gnome.org:ebassi/gi-docgen.git
+url=https://gitlab.gnome.org/GNOME/gi-docgen.git
+push-url=ssh://git@gitlab.gnome.org:GNOME/gi-docgen.git
revision=main
depth=1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/subprojects/gobject-introspection.wrap new/pango-1.48.5/subprojects/gobject-introspection.wrap
--- old/pango-1.48.4/subprojects/gobject-introspection.wrap 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/subprojects/gobject-introspection.wrap 2021-05-18 15:51:55.000000000 +0200
@@ -5,6 +5,6 @@
revision=master
depth=1
-[provides]
+[provide]
dependency_names = gobject-introspection-1.0
program_names = g-ir-scanner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/tests/test-break.c new/pango-1.48.5/tests/test-break.c
--- old/pango-1.48.4/tests/test-break.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/tests/test-break.c 2021-05-18 15:51:55.000000000 +0200
@@ -322,7 +322,7 @@
/* allow to easily generate expected output for new test cases */
if (argc > 1)
{
- if (strcmp (argv[1], "--help") == 0)
+ if (strcmp (argv[1], "--legend") == 0)
{
g_print ("test-break uses the following symbols for log attrs\n\n");
g_print ("Breaks: Words:\n"
@@ -331,8 +331,9 @@
" c - char break e - word end\n"
"\n"
"Whitespace: Sentences:\n"
- " x - expandable space s - sentence start\n"
- " w - whitespace e - sentence end\n");
+ " x - expandable space b - sentence boundary\n"
+ " w - whitespace s - sentence start\n"
+ " e - sentence end\n");
}
else
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/tests/test-layout.c new/pango-1.48.5/tests/test-layout.c
--- old/pango-1.48.4/tests/test-layout.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/tests/test-layout.c 2021-05-18 15:51:55.000000000 +0200
@@ -368,7 +368,7 @@
string = g_string_sized_new (0);
test_file (argv[1], string);
- g_test_message ("%s", string->str);
+ g_print ("%s", string->str);
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/tests/testmisc.c new/pango-1.48.5/tests/testmisc.c
--- old/pango-1.48.4/tests/testmisc.c 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/tests/testmisc.c 2021-05-18 15:51:55.000000000 +0200
@@ -101,6 +101,26 @@
g_assert (scripts == NULL || num > 0);
}
+static void
+test_line_height (void)
+{
+ PangoContext *context;
+ PangoLayout *layout;
+ PangoLayoutLine *line;
+ int height = 0;
+
+ context = pango_font_map_create_context (pango_cairo_font_map_get_default ());
+ layout = pango_layout_new (context);
+ pango_layout_set_text (layout, "one\ttwo", -1);
+ line = pango_layout_get_line_readonly (layout, 0);
+ pango_layout_line_get_height (line, &height);
+
+ g_assert_cmpint (height, >, 0);
+
+ g_object_unref (layout);
+ g_object_unref (context);
+}
+
int
main (int argc, char *argv[])
{
@@ -111,6 +131,7 @@
g_test_add_func ("/layout/itemize-utf8", test_itemize_utf8);
g_test_add_func ("/layout/short-string-crash", test_short_string_crash);
g_test_add_func ("/language/emoji-crash", test_language_emoji_crash);
+ g_test_add_func ("/layout/line-height", test_line_height);
return g_test_run ();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/utils/meson.build new/pango-1.48.5/utils/meson.build
--- old/pango-1.48.4/utils/meson.build 2021-03-27 02:54:41.000000000 +0100
+++ new/pango-1.48.5/utils/meson.build 2021-05-18 15:51:55.000000000 +0200
@@ -80,3 +80,10 @@
])
endif
+
+pango_segmentation = executable('pango-segmentation',
+ 'pango-segmentation.c',
+ dependencies: [ libpango_dep, libpangocairo_dep ],
+ include_directories: [ root_inc ],
+ install: false,
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pango-1.48.4/utils/pango-segmentation.c new/pango-1.48.5/utils/pango-segmentation.c
--- old/pango-1.48.4/utils/pango-segmentation.c 1970-01-01 01:00:00.000000000 +0100
+++ new/pango-1.48.5/utils/pango-segmentation.c 2021-05-18 15:51:55.000000000 +0200
@@ -0,0 +1,182 @@
+/* Pango
+ * pango-segmentation.c: Test Pango line breaking
+ *
+ * Copyright (C) 2021 Red Hat, Inc
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <glib.h>
+#include <pango/pangocairo.h>
+#include <string.h>
+#include <locale.h>
+
+#ifndef G_OS_WIN32
+#include <unistd.h>
+#endif
+
+typedef enum {
+ GRAPHEME,
+ WORD,
+ LINE,
+ SENTENCE
+} BreakKind;
+
+static BreakKind
+kind_from_string (const char *str)
+{
+ if (strcmp (str, "grapheme") == 0)
+ return GRAPHEME;
+ else if (strcmp (str, "word") == 0)
+ return WORD;
+ else if (strcmp (str, "line") == 0)
+ return LINE;
+ else if (strcmp (str, "sentence") == 0)
+ return SENTENCE;
+ else
+ {
+ g_printerr ("Not a segmentation: %s", str);
+ return 0;
+ }
+}
+
+static gboolean
+show_segmentation (const char *input,
+ BreakKind kind)
+{
+ GString *string;
+ PangoContext *context;
+ gsize length;
+ GError *error = NULL;
+ PangoLogAttr *attrs;
+ int len;
+ char *p;
+ int i;
+ char *text;
+ PangoAttrList *attributes;
+ PangoLayout *layout;
+
+ context = pango_font_map_create_context (pango_cairo_font_map_get_default ());
+
+ string = g_string_new ("");
+
+ length = strlen (input);
+ len = g_utf8_strlen (input, -1) + 1;
+
+ pango_parse_markup (input, -1, 0, &attributes, &text, NULL, &error);
+ g_assert_no_error (error);
+
+ layout = pango_layout_new (context);
+ pango_layout_set_text (layout, text, length);
+ pango_layout_set_attributes (layout, attributes);
+
+ if (pango_layout_get_unknown_glyphs_count (layout) > 0)
+ {
+ char *msg = g_strdup_printf ("Missing glyphs - skipping. Maybe fonts are missing?");
+ g_test_skip (msg);
+ g_free (msg);
+ g_object_unref (layout);
+ pango_attr_list_unref (attributes);
+ g_free (text);
+ return FALSE;
+ }
+
+ pango_layout_get_log_attrs (layout, &attrs, &len);
+
+ for (i = 0, p = text; i < len; i++, p = g_utf8_next_char (p))
+ {
+ PangoLogAttr log = attrs[i];
+ gboolean is_break = FALSE;
+
+ switch (kind)
+ {
+ case GRAPHEME:
+ is_break = log.is_cursor_position;
+ break;
+ case WORD:
+ is_break = log.is_word_boundary;
+ break;
+ case LINE:
+ is_break = log.is_line_break;
+ break;
+ case SENTENCE:
+ is_break = log.is_sentence_boundary;
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ if (is_break)
+ g_string_append (string, "|");
+
+ if (i < len - 1)
+ {
+ gunichar ch = g_utf8_get_char (p);
+ if (ch == 0x20)
+ g_string_append (string, " ");
+ else if (g_unichar_isgraph (ch) &&
+ !(g_unichar_type (ch) == G_UNICODE_LINE_SEPARATOR ||
+ g_unichar_type (ch) == G_UNICODE_PARAGRAPH_SEPARATOR))
+ g_string_append_unichar (string, ch);
+ else
+ g_string_append_printf (string, "[%#04x]", ch);
+ }
+ }
+
+ g_object_unref (layout);
+ g_free (attrs);
+ g_free (text);
+ pango_attr_list_unref (attributes);
+
+ g_print ("%s\n", string->str);
+
+ g_string_free (string, TRUE);
+
+ return TRUE;
+}
+
+int
+main (int argc, char *argv[])
+{
+ setlocale (LC_ALL, "");
+ char *opt_kind = "grapheme";
+ GOptionEntry entries[] = {
+ { "kind", 0, 0, G_OPTION_ARG_STRING, &opt_kind, "Kind of boundary (grapheme/word/line/sentence)", "KIND" },
+ { NULL, },
+ };
+ GOptionContext *context;
+ GError *error = NULL;
+
+ context = g_option_context_new ("TEXT");
+ g_option_context_add_main_entries (context, entries, NULL);
+ g_option_context_set_description (context,
+ "Show text segmentation as determined by Pango.");
+ if (!g_option_context_parse (context, &argc, &argv, &error))
+ {
+ g_printerr ("%s\n", error->message);
+ exit (1);
+ }
+
+ if (argc < 2)
+ {
+ g_printerr ("Usage: pango-segmentation [OPTIONS���] TEXT");
+ exit (1);
+ }
+
+ show_segmentation (argv[1], kind_from_string (opt_kind));
+
+ return 0;
+}
++++++ pango.obsinfo ++++++
--- /var/tmp/diff_new_pack.HJejO2/_old 2021-05-23 23:30:41.352716247 +0200
+++ /var/tmp/diff_new_pack.HJejO2/_new 2021-05-23 23:30:41.352716247 +0200
@@ -1,5 +1,5 @@
name: pango
-version: 1.48.4
-mtime: 1616810081
-commit: 386639c3b118cc973f714eb485877f480391f31f
+version: 1.48.5
+mtime: 1621345915
+commit: 3940a1714e84b076d04d4638c88df3dba7d8014e
1
0