openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
January 2018
- 1 participants
- 2007 discussions
Hello community,
here is the log from the commit of package wayland-protocols for openSUSE:Factory checked in at 2018-01-02 16:33:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wayland-protocols (Old)
and /work/SRC/openSUSE:Factory/.wayland-protocols.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wayland-protocols"
Tue Jan 2 16:33:37 2018 rev:14 rq:560821 version:1.12
Changes:
--------
--- /work/SRC/openSUSE:Factory/wayland-protocols/wayland-protocols.changes 2017-11-14 14:18:12.365465763 +0100
+++ /work/SRC/openSUSE:Factory/.wayland-protocols.new/wayland-protocols.changes 2018-01-02 16:33:38.167518119 +0100
@@ -1,0 +2,20 @@
+Thu Dec 28 21:58:28 UTC 2017 - zaitor(a)opensuse.org
+
+- Update to version 1.12:
+ * This version includes the new stable version of the XDG Shell
+ protocol. In short, the difference between the XDG Shell stable
+ and the last unstable version include (among other things):
+ * The base interface and the global exposed via the registry
+ changed from zxdg_shell_v6 to xdg_wm_base.
+ * Fullscreen semantics were better defined and geometry
+ requirements relaxed to allow certain hardware optimizations.
+ * The popup positioner was changed to allow positioning against a
+ point.
+ * The popup semantics was changed to allow future extendability.
+ * Toplevel parent-child relationship ambiguities were fixed.
+ * Unmap/map semantics were better defined.
+ * Various other ambiguities were fixed and documentation in
+ general was improved.
+- Use autosetup macro, and drop make call, nothing is build anyway.
+
+-------------------------------------------------------------------
Old:
----
wayland-protocols-1.11.tar.xz
wayland-protocols-1.11.tar.xz.sig
New:
----
wayland-protocols-1.12.tar.xz
wayland-protocols-1.12.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wayland-protocols.spec ++++++
--- /var/tmp/diff_new_pack.HoncCp/_old 2018-01-02 16:33:38.783312770 +0100
+++ /var/tmp/diff_new_pack.HoncCp/_new 2018-01-02 16:33:38.787311437 +0100
@@ -18,7 +18,7 @@
Name: wayland-protocols
-Version: 1.11
+Version: 1.12
Release: 0
Summary: Wayland protocols that adds functionality not available in the core protocol
License: MIT
@@ -50,11 +50,10 @@
wayland-protocols.
%prep
-%setup -q
+%autosetup
%build
%configure
-make %{?_smp_mflags}
%install
%make_install
++++++ wayland-protocols-1.11.tar.xz -> wayland-protocols-1.12.tar.xz ++++++
++++ 5082 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wayland-protocols-1.11/Makefile.am new/wayland-protocols-1.12/Makefile.am
--- old/wayland-protocols-1.11/Makefile.am 2017-10-11 10:19:25.000000000 +0200
+++ new/wayland-protocols-1.12/Makefile.am 2017-12-02 02:47:54.000000000 +0100
@@ -21,6 +21,7 @@
stable_protocols = \
stable/presentation-time/presentation-time.xml \
stable/viewporter/viewporter.xml \
+ stable/xdg-shell/xdg-shell.xml \
$(NULL)
nobase_dist_pkgdata_DATA = \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wayland-protocols-1.11/compile new/wayland-protocols-1.12/compile
--- old/wayland-protocols-1.11/compile 2015-10-09 06:06:00.000000000 +0200
+++ new/wayland-protocols-1.12/compile 1970-01-01 01:00:00.000000000 +0100
@@ -1,347 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
-
-scriptversion=2012-10-14.11; # UTC
-
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey(a)cygnus.com>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake(a)gnu.org> or send patches to
-# <automake-patches(a)gnu.org>.
-
-nl='
-'
-
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent tools from complaining about whitespace usage.
-IFS=" "" $nl"
-
-file_conv=
-
-# func_file_conv build_file lazy
-# Convert a $build file to $host form and store it in $file
-# Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
-func_file_conv ()
-{
- file=$1
- case $file in
- / | /[!/]*) # absolute file, and not a UNC file
- if test -z "$file_conv"; then
- # lazily determine how to convert abs files
- case `uname -s` in
- MINGW*)
- file_conv=mingw
- ;;
- CYGWIN*)
- file_conv=cygwin
- ;;
- *)
- file_conv=wine
- ;;
- esac
- fi
- case $file_conv/,$2, in
- *,$file_conv,*)
- ;;
- mingw/*)
- file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
- ;;
- cygwin/*)
- file=`cygpath -m "$file" || echo "$file"`
- ;;
- wine/*)
- file=`winepath -w "$file" || echo "$file"`
- ;;
- esac
- ;;
- esac
-}
-
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
- func_file_conv "$1"
- if test -z "$lib_path"; then
- lib_path=$file
- else
- lib_path="$lib_path;$file"
- fi
- linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
- lib=$1
- found=no
- save_IFS=$IFS
- IFS=';'
- for dir in $lib_path $LIB
- do
- IFS=$save_IFS
- if $shared && test -f "$dir/$lib.dll.lib"; then
- found=yes
- lib=$dir/$lib.dll.lib
- break
- fi
- if test -f "$dir/$lib.lib"; then
- found=yes
- lib=$dir/$lib.lib
- break
- fi
- if test -f "$dir/lib$lib.a"; then
- found=yes
- lib=$dir/lib$lib.a
- break
- fi
- done
- IFS=$save_IFS
-
- if test "$found" != yes; then
- lib=$lib.lib
- fi
-}
-
-# func_cl_wrapper cl arg...
-# Adjust compile command to suit cl
-func_cl_wrapper ()
-{
- # Assume a capable shell
- lib_path=
- shared=:
- linker_opts=
- for arg
- do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- eat=1
- case $2 in
- *.o | *.[oO][bB][jJ])
- func_file_conv "$2"
- set x "$@" -Fo"$file"
- shift
- ;;
- *)
- func_file_conv "$2"
- set x "$@" -Fe"$file"
- shift
- ;;
- esac
- ;;
- -I)
- eat=1
- func_file_conv "$2" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -I*)
- func_file_conv "${1#-I}" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -l)
- eat=1
- func_cl_dashl "$2"
- set x "$@" "$lib"
- shift
- ;;
- -l*)
- func_cl_dashl "${1#-l}"
- set x "$@" "$lib"
- shift
- ;;
- -L)
- eat=1
- func_cl_dashL "$2"
- ;;
- -L*)
- func_cl_dashL "${1#-L}"
- ;;
- -static)
- shared=false
- ;;
- -Wl,*)
- arg=${1#-Wl,}
- save_ifs="$IFS"; IFS=','
- for flag in $arg; do
- IFS="$save_ifs"
- linker_opts="$linker_opts $flag"
- done
- IFS="$save_ifs"
- ;;
- -Xlinker)
- eat=1
- linker_opts="$linker_opts $2"
- ;;
- -*)
- set x "$@" "$1"
- shift
- ;;
- *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
- func_file_conv "$1"
- set x "$@" -Tp"$file"
- shift
- ;;
- *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
- func_file_conv "$1" mingw
- set x "$@" "$file"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
- done
- if test -n "$linker_opts"; then
- linker_opts="-link$linker_opts"
- fi
- exec "$@" $linker_opts
- exit 1
-}
-
-eat=
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand '-c -o'.
-Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file 'INSTALL'.
-
-Report bugs to <bug-automake(a)gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "compile $scriptversion"
- exit $?
- ;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
- func_cl_wrapper "$@" # Doesn't return...
- ;;
-esac
-
-ofile=
-cfile=
-
-for arg
-do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- # So we strip '-o arg' only if arg is an object.
- eat=1
- case $2 in
- *.o | *.obj)
- ofile=$2
- ;;
- *)
- set x "$@" -o "$2"
- shift
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- set x "$@" "$1"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
- # If no '-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # '.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use '[/\\:.-]' here to ensure that we don't use the same name
-# that we are using for the .o file. Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
-while true; do
- if mkdir "$lockdir" >/dev/null 2>&1; then
- break
- fi
- sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
- test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
- test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wayland-protocols-1.11/configure.ac new/wayland-protocols-1.12/configure.ac
--- old/wayland-protocols-1.11/configure.ac 2017-10-11 10:19:43.000000000 +0200
+++ new/wayland-protocols-1.12/configure.ac 2017-12-02 02:48:30.000000000 +0100
@@ -1,7 +1,7 @@
AC_PREREQ([2.64])
m4_define([wayland_protocols_major_version], [1])
-m4_define([wayland_protocols_minor_version], [11])
+m4_define([wayland_protocols_minor_version], [12])
m4_define([wayland_protocols_version],
[wayland_protocols_major_version.wayland_protocols_minor_version])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wayland-protocols-1.11/stable/xdg-shell/README new/wayland-protocols-1.12/stable/xdg-shell/README
--- old/wayland-protocols-1.11/stable/xdg-shell/README 1970-01-01 01:00:00.000000000 +0100
+++ new/wayland-protocols-1.12/stable/xdg-shell/README 2017-11-15 11:55:56.000000000 +0100
@@ -0,0 +1,5 @@
+xdg shell protocol
+
+Maintainers:
+Jonas Ådahl <jadahl(a)gmail.com>
+Mike Blumenkrantz <zmike(a)osg.samsung.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wayland-protocols-1.11/stable/xdg-shell/xdg-shell.xml new/wayland-protocols-1.12/stable/xdg-shell/xdg-shell.xml
--- old/wayland-protocols-1.11/stable/xdg-shell/xdg-shell.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/wayland-protocols-1.12/stable/xdg-shell/xdg-shell.xml 2017-11-21 09:25:51.000000000 +0100
@@ -0,0 +1,1120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="xdg_shell">
+
+ <copyright>
+ Copyright © 2008-2013 Kristian Høgsberg
+ Copyright © 2013 Rafael Antognolli
+ Copyright © 2013 Jasper St. Pierre
+ Copyright © 2010-2013 Intel Corporation
+ Copyright © 2015-2017 Samsung Electronics Co., Ltd
+ Copyright © 2015-2017 Red Hat Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the next
+ paragraph) shall be included in all copies or substantial portions of the
+ Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+ </copyright>
+
+ <interface name="xdg_wm_base" version="1">
+ <description summary="create desktop-style surfaces">
+ The xdg_wm_base interface is exposed as a global object enabling clients
+ to turn their wl_surfaces into windows in a desktop environment. It
+ defines the basic functionality needed for clients and the compositor to
+ create windows that can be dragged, resized, maximized, etc, as well as
+ creating transient windows such as popup menus.
+ </description>
+
+ <enum name="error">
+ <entry name="role" value="0" summary="given wl_surface has another role"/>
+ <entry name="defunct_surfaces" value="1"
+ summary="xdg_wm_base was destroyed before children"/>
+ <entry name="not_the_topmost_popup" value="2"
+ summary="the client tried to map or destroy a non-topmost popup"/>
+ <entry name="invalid_popup_parent" value="3"
+ summary="the client specified an invalid popup parent surface"/>
+ <entry name="invalid_surface_state" value="4"
+ summary="the client provided an invalid surface state"/>
+ <entry name="invalid_positioner" value="5"
+ summary="the client provided an invalid positioner"/>
+ </enum>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy xdg_wm_base">
+ Destroy this xdg_wm_base object.
+
+ Destroying a bound xdg_wm_base object while there are surfaces
+ still alive created by this xdg_wm_base object instance is illegal
+ and will result in a protocol error.
+ </description>
+ </request>
+
+ <request name="create_positioner">
+ <description summary="create a positioner object">
+ Create a positioner object. A positioner object is used to position
+ surfaces relative to some parent surface. See the interface description
+ and xdg_surface.get_popup for details.
+ </description>
+ <arg name="id" type="new_id" interface="xdg_positioner"/>
+ </request>
+
+ <request name="get_xdg_surface">
+ <description summary="create a shell surface from a surface">
+ This creates an xdg_surface for the given surface. While xdg_surface
+ itself is not a role, the corresponding surface may only be assigned
+ a role extending xdg_surface, such as xdg_toplevel or xdg_popup.
+
+ This creates an xdg_surface for the given surface. An xdg_surface is
+ used as basis to define a role to a given surface, such as xdg_toplevel
+ or xdg_popup. It also manages functionality shared between xdg_surface
+ based surface roles.
+
+ See the documentation of xdg_surface for more details about what an
+ xdg_surface is and how it is used.
+ </description>
+ <arg name="id" type="new_id" interface="xdg_surface"/>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ </request>
+
+ <request name="pong">
+ <description summary="respond to a ping event">
+ A client must respond to a ping event with a pong request or
+ the client may be deemed unresponsive. See xdg_wm_base.ping.
+ </description>
+ <arg name="serial" type="uint" summary="serial of the ping event"/>
+ </request>
+
+ <event name="ping">
+ <description summary="check if the client is alive">
+ The ping event asks the client if it's still alive. Pass the
+ serial specified in the event back to the compositor by sending
+ a "pong" request back with the specified serial. See xdg_wm_base.ping.
+
+ Compositors can use this to determine if the client is still
+ alive. It's unspecified what will happen if the client doesn't
+ respond to the ping request, or in what timeframe. Clients should
+ try to respond in a reasonable amount of time.
+
+ A compositor is free to ping in any way it wants, but a client must
+ always respond to any xdg_wm_base object it created.
+ </description>
+ <arg name="serial" type="uint" summary="pass this to the pong request"/>
+ </event>
+ </interface>
+
+ <interface name="xdg_positioner" version="1">
+ <description summary="child surface positioner">
+ The xdg_positioner provides a collection of rules for the placement of a
+ child surface relative to a parent surface. Rules can be defined to ensure
+ the child surface remains within the visible area's borders, and to
+ specify how the child surface changes its position, such as sliding along
+ an axis, or flipping around a rectangle. These positioner-created rules are
+ constrained by the requirement that a child surface must intersect with or
+ be at least partially adjacent to its parent surface.
+
+ See the various requests for details about possible rules.
+
+ At the time of the request, the compositor makes a copy of the rules
+ specified by the xdg_positioner. Thus, after the request is complete the
+ xdg_positioner object can be destroyed or reused; further changes to the
+ object will have no effect on previous usages.
+
+ For an xdg_positioner object to be considered complete, it must have a
+ non-zero size set by set_size, and a non-zero anchor rectangle set by
+ set_anchor_rect. Passing an incomplete xdg_positioner object when
+ positioning a surface raises an error.
+ </description>
+
+ <enum name="error">
+ <entry name="invalid_input" value="0" summary="invalid input provided"/>
+ </enum>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the xdg_positioner object">
+ Notify the compositor that the xdg_positioner will no longer be used.
+ </description>
+ </request>
+
+ <request name="set_size">
+ <description summary="set the size of the to-be positioned rectangle">
+ Set the size of the surface that is to be positioned with the positioner
+ object. The size is in surface-local coordinates and corresponds to the
+ window geometry. See xdg_surface.set_window_geometry.
+
+ If a zero or negative size is set the invalid_input error is raised.
+ </description>
+ <arg name="width" type="int" summary="width of positioned rectangle"/>
+ <arg name="height" type="int" summary="height of positioned rectangle"/>
+ </request>
+
+ <request name="set_anchor_rect">
+ <description summary="set the anchor rectangle within the parent surface">
+ Specify the anchor rectangle within the parent surface that the child
+ surface will be placed relative to. The rectangle is relative to the
+ window geometry as defined by xdg_surface.set_window_geometry of the
+ parent surface.
+
+ When the xdg_positioner object is used to position a child surface, the
+ anchor rectangle may not extend outside the window geometry of the
+ positioned child's parent surface.
+
+ If a negative size is set the invalid_input error is raised.
+ </description>
+ <arg name="x" type="int" summary="x position of anchor rectangle"/>
+ <arg name="y" type="int" summary="y position of anchor rectangle"/>
+ <arg name="width" type="int" summary="width of anchor rectangle"/>
+ <arg name="height" type="int" summary="height of anchor rectangle"/>
+ </request>
+
+ <enum name="anchor">
+ <entry name="none" value="0"/>
+ <entry name="top" value="1"/>
+ <entry name="bottom" value="2"/>
+ <entry name="left" value="3"/>
+ <entry name="right" value="4"/>
+ <entry name="top_left" value="5"/>
+ <entry name="bottom_left" value="6"/>
+ <entry name="top_right" value="7"/>
+ <entry name="bottom_right" value="8"/>
+ </enum>
+
+ <request name="set_anchor">
+ <description summary="set anchor rectangle anchor">
+ Defines the anchor point for the anchor rectangle. The specified anchor
+ is used derive an anchor point that the child surface will be
+ positioned relative to. If a corner anchor is set (e.g. 'top_left' or
+ 'bottom_right'), the anchor point will be at the specified corner;
+ otherwise, the derived anchor point will be centered on the specified
+ edge, or in the center of the anchor rectangle if no edge is specified.
+ </description>
+ <arg name="anchor" type="uint" enum="anchor"
+ summary="anchor"/>
+ </request>
+
+ <enum name="gravity">
+ <entry name="none" value="0"/>
+ <entry name="top" value="1"/>
+ <entry name="bottom" value="2"/>
+ <entry name="left" value="3"/>
+ <entry name="right" value="4"/>
+ <entry name="top_left" value="5"/>
+ <entry name="bottom_left" value="6"/>
+ <entry name="top_right" value="7"/>
+ <entry name="bottom_right" value="8"/>
+ </enum>
+
+ <request name="set_gravity">
+ <description summary="set child surface gravity">
+ Defines in what direction a surface should be positioned, relative to
+ the anchor point of the parent surface. If a corner gravity is
+ specified (e.g. 'bottom_right' or 'top_left'), then the child surface
+ will be placed towards the specified gravity; otherwise, the child
+ surface will be centered over the anchor point on any axis that had no
+ gravity specified.
+ </description>
+ <arg name="gravity" type="uint" enum="gravity"
+ summary="gravity direction"/>
+ </request>
+
+ <enum name="constraint_adjustment" bitfield="true">
+ <description summary="constraint adjustments">
+ The constraint adjustment value define ways the compositor will adjust
+ the position of the surface, if the unadjusted position would result
+ in the surface being partly constrained.
+
+ Whether a surface is considered 'constrained' is left to the compositor
+ to determine. For example, the surface may be partly outside the
+ compositor's defined 'work area', thus necessitating the child surface's
+ position be adjusted until it is entirely inside the work area.
+
+ The adjustments can be combined, according to a defined precedence: 1)
+ Flip, 2) Slide, 3) Resize.
+ </description>
+ <entry name="none" value="0">
+ <description summary="don't move the child surface when constrained">
+ Don't alter the surface position even if it is constrained on some
+ axis, for example partially outside the edge of an output.
+ </description>
+ </entry>
+ <entry name="slide_x" value="1">
+ <description summary="move along the x axis until unconstrained">
+ Slide the surface along the x axis until it is no longer constrained.
+
+ First try to slide towards the direction of the gravity on the x axis
+ until either the edge in the opposite direction of the gravity is
+ unconstrained or the edge in the direction of the gravity is
+ constrained.
+
+ Then try to slide towards the opposite direction of the gravity on the
+ x axis until either the edge in the direction of the gravity is
+ unconstrained or the edge in the opposite direction of the gravity is
+ constrained.
+ </description>
+ </entry>
+ <entry name="slide_y" value="2">
+ <description summary="move along the y axis until unconstrained">
+ Slide the surface along the y axis until it is no longer constrained.
+
+ First try to slide towards the direction of the gravity on the y axis
+ until either the edge in the opposite direction of the gravity is
+ unconstrained or the edge in the direction of the gravity is
+ constrained.
+
+ Then try to slide towards the opposite direction of the gravity on the
+ y axis until either the edge in the direction of the gravity is
+ unconstrained or the edge in the opposite direction of the gravity is
+ constrained.
+ </description>
+ </entry>
+ <entry name="flip_x" value="4">
+ <description summary="invert the anchor and gravity on the x axis">
+ Invert the anchor and gravity on the x axis if the surface is
+ constrained on the x axis. For example, if the left edge of the
+ surface is constrained, the gravity is 'left' and the anchor is
+ 'left', change the gravity to 'right' and the anchor to 'right'.
+
+ If the adjusted position also ends up being constrained, the resulting
+ position of the flip_x adjustment will be the one before the
+ adjustment.
+ </description>
+ </entry>
+ <entry name="flip_y" value="8">
+ <description summary="invert the anchor and gravity on the y axis">
+ Invert the anchor and gravity on the y axis if the surface is
+ constrained on the y axis. For example, if the bottom edge of the
+ surface is constrained, the gravity is 'bottom' and the anchor is
+ 'bottom', change the gravity to 'top' and the anchor to 'top'.
+
+ The adjusted position is calculated given the original anchor
+ rectangle and offset, but with the new flipped anchor and gravity
+ values.
+
+ If the adjusted position also ends up being constrained, the resulting
+ position of the flip_y adjustment will be the one before the
+ adjustment.
+ </description>
+ </entry>
+ <entry name="resize_x" value="16">
+ <description summary="horizontally resize the surface">
+ Resize the surface horizontally so that it is completely
+ unconstrained.
+ </description>
+ </entry>
+ <entry name="resize_y" value="32">
+ <description summary="vertically resize the surface">
+ Resize the surface vertically so that it is completely unconstrained.
+ </description>
+ </entry>
+ </enum>
+
+ <request name="set_constraint_adjustment">
+ <description summary="set the adjustment to be done when constrained">
+ Specify how the window should be positioned if the originally intended
+ position caused the surface to be constrained, meaning at least
+ partially outside positioning boundaries set by the compositor. The
+ adjustment is set by constructing a bitmask describing the adjustment to
+ be made when the surface is constrained on that axis.
+
+ If no bit for one axis is set, the compositor will assume that the child
+ surface should not change its position on that axis when constrained.
+
+ If more than one bit for one axis is set, the order of how adjustments
+ are applied is specified in the corresponding adjustment descriptions.
+
+ The default adjustment is none.
+ </description>
+ <arg name="constraint_adjustment" type="uint"
+ summary="bit mask of constraint adjustments"/>
+ </request>
+
+ <request name="set_offset">
+ <description summary="set surface position offset">
+ Specify the surface position offset relative to the position of the
+ anchor on the anchor rectangle and the anchor on the surface. For
+ example if the anchor of the anchor rectangle is at (x, y), the surface
+ has the gravity bottom|right, and the offset is (ox, oy), the calculated
+ surface position will be (x + ox, y + oy). The offset position of the
+ surface is the one used for constraint testing. See
+ set_constraint_adjustment.
+
+ An example use case is placing a popup menu on top of a user interface
+ element, while aligning the user interface element of the parent surface
+ with some user interface element placed somewhere in the popup surface.
+ </description>
+ <arg name="x" type="int" summary="surface position x offset"/>
+ <arg name="y" type="int" summary="surface position y offset"/>
+ </request>
+ </interface>
+
+ <interface name="xdg_surface" version="1">
+ <description summary="desktop user interface surface base interface">
+ An interface that may be implemented by a wl_surface, for
+ implementations that provide a desktop-style user interface.
+
+ It provides a base set of functionality required to construct user
+ interface elements requiring management by the compositor, such as
+ toplevel windows, menus, etc. The types of functionality are split into
+ xdg_surface roles.
+
+ Creating an xdg_surface does not set the role for a wl_surface. In order
+ to map an xdg_surface, the client must create a role-specific object
+ using, e.g., get_toplevel, get_popup. The wl_surface for any given
+ xdg_surface can have at most one role, and may not be assigned any role
+ not based on xdg_surface.
+
+ A role must be assigned before any other requests are made to the
+ xdg_surface object.
+
+ The client must call wl_surface.commit on the corresponding wl_surface
+ for the xdg_surface state to take effect.
+
+ Creating an xdg_surface from a wl_surface which has a buffer attached or
+ committed is a client error, and any attempts by a client to attach or
+ manipulate a buffer prior to the first xdg_surface.configure call must
+ also be treated as errors.
+
+ Mapping an xdg_surface-based role surface is defined as making it
+ possible for the surface to be shown by the compositor. Note that
+ a mapped surface is not guaranteed to be visible once it is mapped.
+
+ For an xdg_surface to be mapped by the compositor, the following
+ conditions must be met:
+ (1) the client has assigned an xdg_surface-based role to the surface
+ (2) the client has set and committed the xdg_surface state and the
+ role-dependent state to the surface
+ (3) the client has committed a buffer to the surface
+
+ A newly-unmapped surface is considered to have met condition (1) out
+ of the 3 required conditions for mapping a surface if its role surface
+ has not been destroyed.
+ </description>
+
+ <enum name="error">
+ <entry name="not_constructed" value="1"/>
+ <entry name="already_constructed" value="2"/>
+ <entry name="unconfigured_buffer" value="3"/>
+ </enum>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the xdg_surface">
+ Destroy the xdg_surface object. An xdg_surface must only be destroyed
+ after its role object has been destroyed.
+ </description>
+ </request>
+
+ <request name="get_toplevel">
+ <description summary="assign the xdg_toplevel surface role">
+ This creates an xdg_toplevel object for the given xdg_surface and gives
+ the associated wl_surface the xdg_toplevel role.
+
+ See the documentation of xdg_toplevel for more details about what an
+ xdg_toplevel is and how it is used.
+ </description>
+ <arg name="id" type="new_id" interface="xdg_toplevel"/>
+ </request>
+
+ <request name="get_popup">
+ <description summary="assign the xdg_popup surface role">
+ This creates an xdg_popup object for the given xdg_surface and gives
+ the associated wl_surface the xdg_popup role.
+
+ If null is passed as a parent, a parent surface must be specified using
+ some other protocol, before committing the initial state.
+
+ See the documentation of xdg_popup for more details about what an
+ xdg_popup is and how it is used.
+ </description>
+ <arg name="id" type="new_id" interface="xdg_popup"/>
+ <arg name="parent" type="object" interface="xdg_surface" allow-null="true"/>
+ <arg name="positioner" type="object" interface="xdg_positioner"/>
+ </request>
+
+ <request name="set_window_geometry">
+ <description summary="set the new window geometry">
+ The window geometry of a surface is its "visible bounds" from the
+ user's perspective. Client-side decorations often have invisible
+ portions like drop-shadows which should be ignored for the
+ purposes of aligning, placing and constraining windows.
+
+ The window geometry is double buffered, and will be applied at the
+ time wl_surface.commit of the corresponding wl_surface is called.
+
+ When maintaining a position, the compositor should treat the (x, y)
+ coordinate of the window geometry as the top left corner of the window.
+ A client changing the (x, y) window geometry coordinate should in
+ general not alter the position of the window.
+
+ Once the window geometry of the surface is set, it is not possible to
+ unset it, and it will remain the same until set_window_geometry is
+ called again, even if a new subsurface or buffer is attached.
+
+ If never set, the value is the full bounds of the surface,
+ including any subsurfaces. This updates dynamically on every
+ commit. This unset is meant for extremely simple clients.
+
+ The arguments are given in the surface-local coordinate space of
+ the wl_surface associated with this xdg_surface.
+
+ The width and height must be greater than zero. Setting an invalid size
+ will raise an error. When applied, the effective window geometry will be
+ the set window geometry clamped to the bounding rectangle of the
+ combined geometry of the surface of the xdg_surface and the associated
+ subsurfaces.
+ </description>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <request name="ack_configure">
+ <description summary="ack a configure event">
+ When a configure event is received, if a client commits the
+ surface in response to the configure event, then the client
+ must make an ack_configure request sometime before the commit
+ request, passing along the serial of the configure event.
+
+ For instance, for toplevel surfaces the compositor might use this
+ information to move a surface to the top left only when the client has
+ drawn itself for the maximized or fullscreen state.
+
+ If the client receives multiple configure events before it
+ can respond to one, it only has to ack the last configure event.
+
+ A client is not required to commit immediately after sending
+ an ack_configure request - it may even ack_configure several times
+ before its next surface commit.
+
+ A client may send multiple ack_configure requests before committing, but
+ only the last request sent before a commit indicates which configure
+ event the client really is responding to.
+ </description>
+ <arg name="serial" type="uint" summary="the serial from the configure event"/>
+ </request>
+
+ <event name="configure">
+ <description summary="suggest a surface change">
+ The configure event marks the end of a configure sequence. A configure
+ sequence is a set of one or more events configuring the state of the
+ xdg_surface, including the final xdg_surface.configure event.
+
+ Where applicable, xdg_surface surface roles will during a configure
+ sequence extend this event as a latched state sent as events before the
+ xdg_surface.configure event. Such events should be considered to make up
+ a set of atomically applied configuration states, where the
+ xdg_surface.configure commits the accumulated state.
+
+ Clients should arrange their surface for the new states, and then send
+ an ack_configure request with the serial sent in this configure event at
+ some point before committing the new surface.
+
+ If the client receives multiple configure events before it can respond
+ to one, it is free to discard all but the last event it received.
+ </description>
+ <arg name="serial" type="uint" summary="serial of the configure event"/>
+ </event>
+ </interface>
+
+ <interface name="xdg_toplevel" version="1">
+ <description summary="toplevel surface">
+ This interface defines an xdg_surface role which allows a surface to,
+ among other things, set window-like properties such as maximize,
+ fullscreen, and minimize, set application-specific metadata like title and
+ id, and well as trigger user interactive operations such as interactive
+ resize and move.
+
+ Unmapping an xdg_toplevel means that the surface cannot be shown
+ by the compositor until it is explicitly mapped again.
+ All active operations (e.g., move, resize) are canceled and all
+ attributes (e.g. title, state, stacking, ...) are discarded for
+ an xdg_toplevel surface when it is unmapped.
+
+ Attaching a null buffer to a toplevel unmaps the surface.
+ </description>
+
+ <request name="destroy" type="destructor">
+ <description summary="destroy the xdg_toplevel">
+ This request destroys the role surface and unmaps the surface;
+ see "Unmapping" behavior in interface section for details.
+ </description>
+ </request>
+
+ <request name="set_parent">
+ <description summary="set the parent of this surface">
+ Set the "parent" of this surface. This surface should be stacked
+ this above the parent surface and all other ancestor surfaces.
+
+ Parent windows should be set on dialogs, toolboxes, or other
+ "auxiliary" surfaces, so that the parent is raised when the dialog
+ is raised.
+
+ Setting a null parent for a child window removes any parent-child
+ relationship for the child. Setting a null parent for a window which
+ currently has no parent is a no-op.
+
+ If the parent is unmapped then its children are managed as
+ though the parent of the now-unmapped parent has become the
+ parent of this surface. If no parent exists for the now-unmapped
+ parent then the children are managed as though they have no
+ parent surface.
+ </description>
+ <arg name="parent" type="object" interface="xdg_toplevel" allow-null="true"/>
+ </request>
+
+ <request name="set_title">
+ <description summary="set surface title">
+ Set a short title for the surface.
+
+ This string may be used to identify the surface in a task bar,
+ window list, or other user interface elements provided by the
+ compositor.
+
+ The string must be encoded in UTF-8.
+ </description>
+ <arg name="title" type="string"/>
+ </request>
+
+ <request name="set_app_id">
+ <description summary="set application ID">
+ Set an application identifier for the surface.
+
+ The app ID identifies the general class of applications to which
+ the surface belongs. The compositor can use this to group multiple
+ surfaces together, or to determine how to launch a new application.
+
+ For D-Bus activatable applications, the app ID is used as the D-Bus
+ service name.
+
+ The compositor shell will try to group application surfaces together
+ by their app ID. As a best practice, it is suggested to select app
+ ID's that match the basename of the application's .desktop file.
+ For example, "org.freedesktop.FooViewer" where the .desktop file is
+ "org.freedesktop.FooViewer.desktop".
+
+ See the desktop-entry specification [0] for more details on
+ application identifiers and how they relate to well-known D-Bus
+ names and .desktop files.
+
+ [0] http://standards.freedesktop.org/desktop-entry-spec/
+ </description>
+ <arg name="app_id" type="string"/>
+ </request>
+
+ <request name="show_window_menu">
+ <description summary="show the window menu">
+ Clients implementing client-side decorations might want to show
+ a context menu when right-clicking on the decorations, giving the
+ user a menu that they can use to maximize or minimize the window.
+
+ This request asks the compositor to pop up such a window menu at
+ the given position, relative to the local surface coordinates of
+ the parent surface. There are no guarantees as to what menu items
+ the window menu contains.
+
+ This request must be used in response to some sort of user action
+ like a button press, key press, or touch down event.
+ </description>
+ <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
+ <arg name="serial" type="uint" summary="the serial of the user event"/>
+ <arg name="x" type="int" summary="the x position to pop up the window menu at"/>
+ <arg name="y" type="int" summary="the y position to pop up the window menu at"/>
+ </request>
+
+ <request name="move">
+ <description summary="start an interactive move">
+ Start an interactive, user-driven move of the surface.
+
+ This request must be used in response to some sort of user action
+ like a button press, key press, or touch down event. The passed
+ serial is used to determine the type of interactive move (touch,
+ pointer, etc).
+
+ The server may ignore move requests depending on the state of
+ the surface (e.g. fullscreen or maximized), or if the passed serial
+ is no longer valid.
+
+ If triggered, the surface will lose the focus of the device
+ (wl_pointer, wl_touch, etc) used for the move. It is up to the
+ compositor to visually indicate that the move is taking place, such as
+ updating a pointer cursor, during the move. There is no guarantee
+ that the device focus will return when the move is completed.
+ </description>
+ <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
+ <arg name="serial" type="uint" summary="the serial of the user event"/>
+ </request>
+
+ <enum name="resize_edge">
+ <description summary="edge values for resizing">
+ These values are used to indicate which edge of a surface
+ is being dragged in a resize operation.
+ </description>
+ <entry name="none" value="0"/>
+ <entry name="top" value="1"/>
+ <entry name="bottom" value="2"/>
+ <entry name="left" value="4"/>
+ <entry name="top_left" value="5"/>
+ <entry name="bottom_left" value="6"/>
+ <entry name="right" value="8"/>
+ <entry name="top_right" value="9"/>
+ <entry name="bottom_right" value="10"/>
+ </enum>
+
+ <request name="resize">
+ <description summary="start an interactive resize">
+ Start a user-driven, interactive resize of the surface.
+
+ This request must be used in response to some sort of user action
+ like a button press, key press, or touch down event. The passed
+ serial is used to determine the type of interactive resize (touch,
+ pointer, etc).
+
+ The server may ignore resize requests depending on the state of
+ the surface (e.g. fullscreen or maximized).
+
+ If triggered, the client will receive configure events with the
+ "resize" state enum value and the expected sizes. See the "resize"
+ enum value for more details about what is required. The client
+ must also acknowledge configure events using "ack_configure". After
+ the resize is completed, the client will receive another "configure"
+ event without the resize state.
+
+ If triggered, the surface also will lose the focus of the device
+ (wl_pointer, wl_touch, etc) used for the resize. It is up to the
+ compositor to visually indicate that the resize is taking place,
+ such as updating a pointer cursor, during the resize. There is no
+ guarantee that the device focus will return when the resize is
+ completed.
+
+ The edges parameter specifies how the surface should be resized,
+ and is one of the values of the resize_edge enum. The compositor
+ may use this information to update the surface position for
+ example when dragging the top left corner. The compositor may also
+ use this information to adapt its behavior, e.g. choose an
+ appropriate cursor image.
+ </description>
+ <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
+ <arg name="serial" type="uint" summary="the serial of the user event"/>
+ <arg name="edges" type="uint" summary="which edge or corner is being dragged"/>
+ </request>
+
+ <enum name="state">
+ <description summary="types of state on the surface">
+ The different state values used on the surface. This is designed for
+ state values like maximized, fullscreen. It is paired with the
+ configure event to ensure that both the client and the compositor
+ setting the state can be synchronized.
+
+ States set in this way are double-buffered. They will get applied on
+ the next commit.
+ </description>
+ <entry name="maximized" value="1" summary="the surface is maximized">
+ <description summary="the surface is maximized">
+ The surface is maximized. The window geometry specified in the configure
+ event must be obeyed by the client.
+ </description>
+ </entry>
+ <entry name="fullscreen" value="2" summary="the surface is fullscreen">
+ <description summary="the surface is fullscreen">
+ The surface is fullscreen. The window geometry specified in the
+ configure event is a maximum; the client cannot resize beyond it. For
+ a surface to cover the whole fullscreened area, the geometry
+ dimensions must be obeyed by the client. For more details, see
+ xdg_toplevel.set_fullscreen.
+ </description>
+ </entry>
+ <entry name="resizing" value="3" summary="the surface is being resized">
+ <description summary="the surface is being resized">
+ The surface is being resized. The window geometry specified in the
+ configure event is a maximum; the client cannot resize beyond it.
+ Clients that have aspect ratio or cell sizing configuration can use
+ a smaller size, however.
+ </description>
+ </entry>
+ <entry name="activated" value="4" summary="the surface is now activated">
+ <description summary="the surface is now activated">
+ Client window decorations should be painted as if the window is
+ active. Do not assume this means that the window actually has
+ keyboard or pointer focus.
+ </description>
+ </entry>
+ </enum>
+
+ <request name="set_max_size">
+ <description summary="set the maximum size">
+ Set a maximum size for the window.
+
+ The client can specify a maximum size so that the compositor does
+ not try to configure the window beyond this size.
+
+ The width and height arguments are in window geometry coordinates.
+ See xdg_surface.set_window_geometry.
+
+ Values set in this way are double-buffered. They will get applied
+ on the next commit.
+
+ The compositor can use this information to allow or disallow
+ different states like maximize or fullscreen and draw accurate
+ animations.
+
+ Similarly, a tiling window manager may use this information to
+ place and resize client windows in a more effective way.
+
+ The client should not rely on the compositor to obey the maximum
+ size. The compositor may decide to ignore the values set by the
+ client and request a larger size.
+
+ If never set, or a value of zero in the request, means that the
+ client has no expected maximum size in the given dimension.
+ As a result, a client wishing to reset the maximum size
+ to an unspecified state can use zero for width and height in the
+ request.
+
+ Requesting a maximum size to be smaller than the minimum size of
+ a surface is illegal and will result in a protocol error.
+
+ The width and height must be greater than or equal to zero. Using
+ strictly negative values for width and height will result in a
+ protocol error.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <request name="set_min_size">
+ <description summary="set the minimum size">
+ Set a minimum size for the window.
+
+ The client can specify a minimum size so that the compositor does
+ not try to configure the window below this size.
+
+ The width and height arguments are in window geometry coordinates.
+ See xdg_surface.set_window_geometry.
+
+ Values set in this way are double-buffered. They will get applied
+ on the next commit.
+
+ The compositor can use this information to allow or disallow
+ different states like maximize or fullscreen and draw accurate
+ animations.
+
+ Similarly, a tiling window manager may use this information to
+ place and resize client windows in a more effective way.
+
+ The client should not rely on the compositor to obey the minimum
+ size. The compositor may decide to ignore the values set by the
+ client and request a smaller size.
+
+ If never set, or a value of zero in the request, means that the
+ client has no expected minimum size in the given dimension.
+ As a result, a client wishing to reset the minimum size
+ to an unspecified state can use zero for width and height in the
+ request.
+
+ Requesting a minimum size to be larger than the maximum size of
+ a surface is illegal and will result in a protocol error.
+
+ The width and height must be greater than or equal to zero. Using
+ strictly negative values for width and height will result in a
+ protocol error.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <request name="set_maximized">
+ <description summary="maximize the window">
+ Maximize the surface.
+
+ After requesting that the surface should be maximized, the compositor
+ will respond by emitting a configure event with the "maximized" state
+ and the required window geometry. The client should then update its
+ content, drawing it in a maximized state, i.e. without shadow or other
+ decoration outside of the window geometry. The client must also
+ acknowledge the configure when committing the new content (see
+ ack_configure).
+
+ It is up to the compositor to decide how and where to maximize the
+ surface, for example which output and what region of the screen should
+ be used.
+
+ If the surface was already maximized, the compositor will still emit
+ a configure event with the "maximized" state.
+
+ If the surface is in a fullscreen state, this request has no direct
+ effect. It will alter the state the surface is returned to when
+ unmaximized if not overridden by the compositor.
+ </description>
+ </request>
+
+ <request name="unset_maximized">
+ <description summary="unmaximize the window">
+ Unmaximize the surface.
+
+ After requesting that the surface should be unmaximized, the compositor
+ will respond by emitting a configure event without the "maximized"
+ state. If available, the compositor will include the window geometry
+ dimensions the window had prior to being maximized in the configure
+ event. The client must then update its content, drawing it in a
+ regular state, i.e. potentially with shadow, etc. The client must also
+ acknowledge the configure when committing the new content (see
+ ack_configure).
+
+ It is up to the compositor to position the surface after it was
+ unmaximized; usually the position the surface had before maximizing, if
+ applicable.
+
+ If the surface was already not maximized, the compositor will still
+ emit a configure event without the "maximized" state.
+
+ If the surface is in a fullscreen state, this request has no direct
+ effect. It will alter the state the surface is returned to when
+ unmaximized if not overridden by the compositor.
+ </description>
+ </request>
+
+ <request name="set_fullscreen">
+ <description summary="set the window as fullscreen on an output">
+ Make the surface fullscreen.
+
+ After requesting that the surface should be fullscreened, the
+ compositor will respond by emitting a configure event with the
+ "fullscreen" state and the fullscreen window geometry. The client must
+ also acknowledge the configure when committing the new content (see
+ ack_configure).
+
+ The output passed by the request indicates the client's preference as
+ to which display it should be set fullscreen on. If this value is NULL,
+ it's up to the compositor to choose which display will be used to map
+ this surface.
+
+ If the surface doesn't cover the whole output, the compositor will
+ position the surface in the center of the output and compensate with
+ with border fill covering the rest of the output. The content of the
+ border fill is undefined, but should be assumed to be in some way that
+ attempts to blend into the surrounding area (e.g. solid black).
+
+ If the fullscreened surface is not opaque, the compositor must make
+ sure that other screen content not part of the same surface tree (made
+ up of subsurfaces, popups or similarly coupled surfaces) are not
+ visible below the fullscreened surface.
+ </description>
+ <arg name="output" type="object" interface="wl_output" allow-null="true"/>
+ </request>
+
+ <request name="unset_fullscreen">
+ <description summary="unset the window as fullscreen">
+ Make the surface no longer fullscreen.
+
+ After requesting that the surface should be unfullscreened, the
+ compositor will respond by emitting a configure event without the
+ "fullscreen" state.
+
+ Making a surface unfullscreen sets states for the surface based on the following:
+ * the state(s) it may have had before becoming fullscreen
+ * any state(s) decided by the compositor
+ * any state(s) requested by the client while the surface was fullscreen
+
+ The compositor may include the previous window geometry dimensions in
+ the configure event, if applicable.
+
+ The client must also acknowledge the configure when committing the new
+ content (see ack_configure).
+ </description>
+ </request>
+
+ <request name="set_minimized">
+ <description summary="set the window as minimized">
+ Request that the compositor minimize your surface. There is no
+ way to know if the surface is currently minimized, nor is there
+ any way to unset minimization on this surface.
+
+ If you are looking to throttle redrawing when minimized, please
+ instead use the wl_surface.frame event for this, as this will
+ also work with live previews on windows in Alt-Tab, Expose or
+ similar compositor features.
+ </description>
+ </request>
+
+ <event name="configure">
+ <description summary="suggest a surface change">
+ This configure event asks the client to resize its toplevel surface or
+ to change its state. The configured state should not be applied
+ immediately. See xdg_surface.configure for details.
+
+ The width and height arguments specify a hint to the window
+ about how its surface should be resized in window geometry
+ coordinates. See set_window_geometry.
+
+ If the width or height arguments are zero, it means the client
+ should decide its own window dimension. This may happen when the
+ compositor needs to configure the state of the surface but doesn't
+ have any information about any previous or expected dimension.
+
+ The states listed in the event specify how the width/height
+ arguments should be interpreted, and possibly how it should be
+ drawn.
+
+ Clients must send an ack_configure in response to this event. See
+ xdg_surface.configure and xdg_surface.ack_configure for details.
+ </description>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ <arg name="states" type="array"/>
+ </event>
+
+ <event name="close">
+ <description summary="surface wants to be closed">
+ The close event is sent by the compositor when the user
+ wants the surface to be closed. This should be equivalent to
+ the user clicking the close button in client-side decorations,
+ if your application has any.
+
+ This is only a request that the user intends to close the
+ window. The client may choose to ignore this request, or show
+ a dialog to ask the user to save their data, etc.
+ </description>
+ </event>
+ </interface>
+
+ <interface name="xdg_popup" version="1">
+ <description summary="short-lived, popup surfaces for menus">
+ A popup surface is a short-lived, temporary surface. It can be used to
+ implement for example menus, popovers, tooltips and other similar user
+ interface concepts.
+
+ A popup can be made to take an explicit grab. See xdg_popup.grab for
+ details.
+
+ When the popup is dismissed, a popup_done event will be sent out, and at
+ the same time the surface will be unmapped. See the xdg_popup.popup_done
+ event for details.
+
+ Explicitly destroying the xdg_popup object will also dismiss the popup and
+ unmap the surface. Clients that want to dismiss the popup when another
+ surface of their own is clicked should dismiss the popup using the destroy
+ request.
+
+ The parent surface must have either the xdg_toplevel or xdg_popup surface
+ role.
+
+ A newly created xdg_popup will be stacked on top of all previously created
+ xdg_popup surfaces associated with the same xdg_toplevel.
+
+ The parent of an xdg_popup must be mapped (see the xdg_surface
+ description) before the xdg_popup itself.
+
+ The x and y arguments passed when creating the popup object specify
+ where the top left of the popup should be placed, relative to the
+ local surface coordinates of the parent surface. See
+ xdg_surface.get_popup. An xdg_popup must intersect with or be at least
+ partially adjacent to its parent surface.
+
+ The client must call wl_surface.commit on the corresponding wl_surface
+ for the xdg_popup state to take effect.
+ </description>
+
+ <enum name="error">
+ <entry name="invalid_grab" value="0"
+ summary="tried to grab after being mapped"/>
+ </enum>
+
+ <request name="destroy" type="destructor">
+ <description summary="remove xdg_popup interface">
+ This destroys the popup. Explicitly destroying the xdg_popup
+ object will also dismiss the popup, and unmap the surface.
+
+ If this xdg_popup is not the "topmost" popup, a protocol error
+ will be sent.
+ </description>
+ </request>
+
+ <request name="grab">
+ <description summary="make the popup take an explicit grab">
+ This request makes the created popup take an explicit grab. An explicit
+ grab will be dismissed when the user dismisses the popup, or when the
+ client destroys the xdg_popup. This can be done by the user clicking
+ outside the surface, using the keyboard, or even locking the screen
+ through closing the lid or a timeout.
+
+ If the compositor denies the grab, the popup will be immediately
+ dismissed.
+
+ This request must be used in response to some sort of user action like a
+ button press, key press, or touch down event. The serial number of the
+ event should be passed as 'serial'.
+
+ The parent of a grabbing popup must either be an xdg_toplevel surface or
+ another xdg_popup with an explicit grab. If the parent is another
+ xdg_popup it means that the popups are nested, with this popup now being
+ the topmost popup.
+
+ Nested popups must be destroyed in the reverse order they were created
+ in, e.g. the only popup you are allowed to destroy at all times is the
+ topmost one.
+
+ When compositors choose to dismiss a popup, they may dismiss every
+ nested grabbing popup as well. When a compositor dismisses popups, it
+ will follow the same dismissing order as required from the client.
+
+ The parent of a grabbing popup must either be another xdg_popup with an
+ active explicit grab, or an xdg_popup or xdg_toplevel, if there are no
+ explicit grabs already taken.
+
+ If the topmost grabbing popup is destroyed, the grab will be returned to
+ the parent of the popup, if that parent previously had an explicit grab.
+
+ If the parent is a grabbing popup which has already been dismissed, this
+ popup will be immediately dismissed. If the parent is a popup that did
+ not take an explicit grab, an error will be raised.
+
+ During a popup grab, the client owning the grab will receive pointer
+ and touch events for all their surfaces as normal (similar to an
+ "owner-events" grab in X11 parlance), while the top most grabbing popup
+ will always have keyboard focus.
+ </description>
+ <arg name="seat" type="object" interface="wl_seat"
+ summary="the wl_seat of the user event"/>
+ <arg name="serial" type="uint" summary="the serial of the user event"/>
+ </request>
+
+ <event name="configure">
+ <description summary="configure the popup surface">
+ This event asks the popup surface to configure itself given the
+ configuration. The configured state should not be applied immediately.
+ See xdg_surface.configure for details.
+
+ The x and y arguments represent the position the popup was placed at
+ given the xdg_positioner rule, relative to the upper left corner of the
+ window geometry of the parent surface.
+ </description>
+ <arg name="x" type="int"
+ summary="x position relative to parent surface window geometry"/>
+ <arg name="y" type="int"
+ summary="y position relative to parent surface window geometry"/>
+ <arg name="width" type="int" summary="window geometry width"/>
+ <arg name="height" type="int" summary="window geometry height"/>
+ </event>
+
+ <event name="popup_done">
+ <description summary="popup interaction is done">
+ The popup_done event is sent out when a popup is dismissed by the
+ compositor. The client should destroy the xdg_popup object at this
+ point.
+ </description>
+ </event>
+
+ </interface>
+</protocol>
1
0
Hello community,
here is the log from the commit of package flatpak for openSUSE:Factory checked in at 2018-01-02 16:33:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/flatpak (Old)
and /work/SRC/openSUSE:Factory/.flatpak.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "flatpak"
Tue Jan 2 16:33:32 2018 rev:14 rq:559366 version:0.10.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/flatpak/flatpak.changes 2017-12-04 10:00:39.000174695 +0100
+++ /work/SRC/openSUSE:Factory/.flatpak.new/flatpak.changes 2018-01-02 16:33:34.012903560 +0100
@@ -2 +2,43 @@
-Mon Nov 27 08:40:56 UTC 2017 - opensuse-packaging(a)opensuse.org
+Fri Dec 22 10:58:05 UTC 2017 - alarrosa(a)suse.com
+
+- Update to version 0.10.2.1:
+ + Fixed crash when installing some flatpak bundle files
+ + Fix installation of telegram
+ + Fixed some warnings reported by coverity
+ + Some leaks fixed
+ + Fixed typo in error message
+
+-------------------------------------------------------------------
+Wed Dec 20 10:57:05 UTC 2017 - zaitor(a)opensuse.org
+
+- Update to version 0.10.2:
+ + flatpak update now updates from both system and user
+ installations by default.
+ + flatpak update is less noisy when updating appstream info.
+ + All the remote-* commands now by default automatically decide
+ to use --user or --system based on the given remote name.
+ + flatpak remote-ls with no remote lists the content of all
+ remotes.
+ + Fixed regression that made xdg-user-dirs and theme selection
+ for kde apps break.
+ + flatpak override with no argument now overrides globally, i.e.
+ for all apps.
+ + flatpak override now supports --nofilesystem properly. For
+ example flatpak override --nofilesystem=~/.ssh hides the ssh
+ dir for all apps, even those who have homedir access.
+ + flatpak install now takes a --reinstall argument which
+ uninstalls a previously installed version if necessary. This is
+ very useful when you want to install a new version from a
+ different source.
+ + flatpak install now allows you to pass an absolute pathname as
+ remote name, which will create a temporary remote and install
+ from that. The remote will be removed when the app is
+ uninstalled. This is very useful during development and
+ testing.
+ + Flatpak now creates CLI wrappers for all installed apps, so if
+ you add /var/lib/flatpak/exports/bin or
+ ~/.local/share/flatpak/exports/bin to your PATH you can easily
+ start flatpak apps by their application id.
+
+-------------------------------------------------------------------
+Mon Nov 27 08:40:56 UTC 2017 - aplazas(a)suse.com
Old:
----
flatpak-0.10.1.tar.xz
New:
----
flatpak-0.10.2.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ flatpak.spec ++++++
--- /var/tmp/diff_new_pack.CtDsUA/_old 2018-01-02 16:33:34.832630205 +0100
+++ /var/tmp/diff_new_pack.CtDsUA/_new 2018-01-02 16:33:34.836628873 +0100
@@ -18,7 +18,7 @@
%define libname libflatpak0
Name: flatpak
-Version: 0.10.1
+Version: 0.10.2.1
Release: 0
Summary: OSTree based application bundles management
License: LGPL-2.1+
@@ -46,10 +46,10 @@
BuildRequires: pkgconfig(libelf) >= 0.8.12
BuildRequires: pkgconfig(libseccomp)
BuildRequires: pkgconfig(libsoup-2.4)
-BuildRequires: pkgconfig(ostree-1) >= 2017.12
+BuildRequires: pkgconfig(ostree-1) >= 2017.14
BuildRequires: pkgconfig(polkit-gobject-1)
BuildRequires: pkgconfig(xau)
-Requires: ostree >= 2017.12
+Requires: ostree >= 2017.14
Recommends: %{name}-lang = %{version}
# Remove after openSUSE Leap 42 is out of scope
Provides: xdg-app = %{version}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.CtDsUA/_old 2018-01-02 16:33:34.888611537 +0100
+++ /var/tmp/diff_new_pack.CtDsUA/_new 2018-01-02 16:33:34.888611537 +0100
@@ -4,7 +4,7 @@
<param name="scm">git</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
- <param name="revision">refs/tags/0.10.1</param>
+ <param name="revision">refs/tags/0.10.2.1</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*.tar</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.CtDsUA/_old 2018-01-02 16:33:34.912603537 +0100
+++ /var/tmp/diff_new_pack.CtDsUA/_new 2018-01-02 16:33:34.916602203 +0100
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/flatpak/flatpak.git</param>
- <param name="changesrevision">8fbd442c9d395ca19561c98e20a7451926c440ab</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">35c9eafc9e10f054872c549a1200450026f36b6b</param></service></servicedata>
\ No newline at end of file
++++++ flatpak-0.10.1.tar.xz -> flatpak-0.10.2.1.tar.xz ++++++
++++ 26844 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package babl for openSUSE:Factory checked in at 2018-01-02 16:33:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/babl (Old)
and /work/SRC/openSUSE:Factory/.babl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "babl"
Tue Jan 2 16:33:12 2018 rev:35 rq:560826 version:0.1.38
Changes:
--------
--- /work/SRC/openSUSE:Factory/babl/babl.changes 2017-11-14 14:46:01.088651201 +0100
+++ /work/SRC/openSUSE:Factory/.babl.new/babl.changes 2018-01-02 16:33:13.839630738 +0100
@@ -1,0 +2,20 @@
+Sun Dec 31 01:49:35 UTC 2017 - jengelh(a)inai.de
+
+- Fix RPM groups. Drop comment about author extraction (not used
+ for specfiles in general anymore).
+
+-------------------------------------------------------------------
+Thu Dec 28 09:33:28 UTC 2017 - zaitor(a)opensuse.org
+
+- Update to version 0.1.38:
+ + Added format "CIE L float", a couple of protections against
+ division by 0.0.
+- Changes from version 0.1.36:
+ + Optimized customized primary aware code paths for CIE
+ Lab<->RGB conversions, improved accuracy of gamma
+ approximations.
+ + New API babl_format_exists() for checking validity of babl
+ format name, crash proofing of cache handling and use of
+ environment variables.
+
+-------------------------------------------------------------------
Old:
----
babl-0.1.34.tar.bz2
New:
----
babl-0.1.38.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ babl.spec ++++++
--- /var/tmp/diff_new_pack.DLlgSp/_old 2018-01-02 16:33:14.399444058 +0100
+++ /var/tmp/diff_new_pack.DLlgSp/_new 2018-01-02 16:33:14.403442725 +0100
@@ -17,11 +17,11 @@
Name: babl
-Version: 0.1.34
+Version: 0.1.38
Release: 0
Summary: Dynamic Pixel Format Translation Library
License: LGPL-3.0+
-Group: System/Libraries
+Group: Development/Libraries/C and C++
Url: http://gegl.org/babl/
Source: http://ftp.gtk.org/pub/babl/0.1/%{name}-%{version}.tar.bz2
BuildRequires: pkg-config
@@ -29,8 +29,6 @@
%define debug_package_requires libbabl-0_1-0 = %{version}-%{release}
# None of these is needed for standard build:
#BuildRequires: inkscape ruby w3m
-# To list AUTHORS:
-# sed -n 's/ <dt>//p' <AUTHORS | sed 's/<em>/</;s/<\/em>/>/;s/ at /@/;s/<\/dt>//'
%description
babl is a dynamic, any to any, pixel format translation library.
++++++ babl-0.1.34.tar.bz2 -> babl-0.1.38.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/INSTALL new/babl-0.1.38/INSTALL
--- old/babl-0.1.34/INSTALL 2017-10-06 15:05:59.000000000 +0200
+++ new/babl-0.1.38/INSTALL 2017-11-15 23:15:51.000000000 +0100
@@ -1,5 +1,5 @@
-babl 0.1.34
+babl 0.1.38
Dynamic; any to any, pixel format conversion library.
@@ -12,10 +12,10 @@
installation (or a variation on this theme):
------------------------------------------------------------
- foo$ wget ftp://ftp.gtk.org/pub/babl/0.1/babl-0.1.34.tar.bz2
- foo$ tar jxf babl-0.1.34.tar.gz
- foo$ cd babl-0.1.34
- foo/babl-0.1.34$ ./configure && make && sudo make install
+ foo$ wget ftp://ftp.gtk.org/pub/babl/0.1/babl-0.1.38.tar.bz2
+ foo$ tar jxf babl-0.1.38.tar.gz
+ foo$ cd babl-0.1.38
+ foo/babl-0.1.38$ ./configure && make && sudo make install
------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/NEWS new/babl-0.1.38/NEWS
--- old/babl-0.1.34/NEWS 2017-10-06 15:05:49.000000000 +0200
+++ new/babl-0.1.38/NEWS 2017-11-15 23:15:14.000000000 +0100
@@ -1,9 +1,17 @@
<dl><dt><!--
The NEWS file in the babl source tree is the source location for
the news section both in the README and the webpage.
-
-
-->
+
+2017-11-15 babl-0.1.38 </dt><dd>
+Added format "CIE L float", a couple of protections against division by 0.0
+ </dd><dt>
+2017-11-10 babl-0.1.36 </dt><dd>
+Optimized customized primary aware code paths for CIE Lab<->RGB conversions,
+improved accuracy of gamma approximations. New API babl_format_exists() for
+checking validity of babl format name, crash proofing of cache handling and use
+of environment variables.
+ </dd><dt>
2017-10-06 babl-0.1.34 </dt><dd>
Brown paper bag release, Fix indexed / custom primaries conflict, and re-export
a symbol used by old GEGL/GIMPs.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/README new/babl-0.1.38/README
--- old/babl-0.1.34/README 2017-10-06 15:06:29.000000000 +0200
+++ new/babl-0.1.38/README 2017-11-15 23:16:18.000000000 +0100
@@ -1,4 +1,4 @@
-Babl-0.1.34
+Babl-0.1.38
Contents
@@ -64,6 +64,14 @@
release is done a babl release is most often put out just prior to the
GEGL release.
+2017-11-15 babl-0.1.38
+ Added format "CIE L float", a couple of protections against
+ division by 0.0
+2017-11-10 babl-0.1.36
+ Optimized customized primary aware code paths for CIE Lab<->RGB
+ conversions, improved accuracy of gamma approximations. New API
+ babl_format_exists() for checking validity of babl format name,
+ crash proofing of cache handling and use of environment variables.
2017-10-06 babl-0.1.34
Brown paper bag release, Fix indexed / custom primaries conflict,
and re-export a symbol used by old GEGL/GIMPs.
@@ -1691,6 +1699,16 @@
float CIE b
float A
+CIE L float
+
+bytes/pixel
+ 4
+model
+ CIE Lab
+components
+
+ float CIE L
+
CIE L alpha float
bytes/pixel
@@ -2186,4 +2204,4 @@
Ell
fast paths
-/babl-0.1.34
+/babl-0.1.38
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-cache.c new/babl-0.1.38/babl/babl-cache.c
--- old/babl-0.1.34/babl/babl-cache.c 2017-10-01 01:25:25.000000000 +0200
+++ new/babl-0.1.38/babl/babl-cache.c 2017-11-11 14:07:53.000000000 +0100
@@ -37,6 +37,7 @@
{
char copy[4096];
strncpy (copy, path, 4096);
+ copy[sizeof (copy) - 1] = '\0';
if (strrchr (copy, '/'))
{
*strrchr (copy, '/') = '\0';
@@ -63,6 +64,7 @@
{
char copy[4096];
strncpy (copy, path, 4096);
+ copy[sizeof (copy) - 1] = '\0';
#ifdef _WIN32
for (char *c = copy; *c; c++)
if (*c == '\\')
@@ -77,18 +79,19 @@
static char path[4096];
strncpy (path, FALLBACK_CACHE_PATH, 4096);
+ path[sizeof (path) - 1] = '\0';
#ifndef _WIN32
if (getenv ("XDG_CACHE_HOME"))
- sprintf (path, "%s/babl/babl-fishes", getenv("XDG_CACHE_HOME"));
+ snprintf (path, sizeof (path), "%s/babl/babl-fishes", getenv("XDG_CACHE_HOME"));
else if (getenv ("HOME"))
- sprintf (path, "%s/.cache/babl/babl-fishes", getenv("HOME"));
+ snprintf (path, sizeof (path), "%s/.cache/babl/babl-fishes", getenv("HOME"));
#else
{
char win32path[4096];
if (SHGetFolderPathA (NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, win32path) == S_OK)
- sprintf (path, "%s\\%s\\babl-fishes.txt", win32path, BABL_LIBRARY);
+ snprintf (path, sizeof (path), "%s\\%s\\babl-fishes.txt", win32path, BABL_LIBRARY);
else if (getenv ("TEMP"))
- sprintf (path, "%s\\babl-fishes.txt", getenv("TEMP"));
+ snprintf (path, sizeof (path), "%s\\babl-fishes.txt", getenv("TEMP"));
}
#endif
@@ -150,13 +153,13 @@
{
static char buf[2048];
if (strchr (BABL_GIT_VERSION, ' ')) // we must be building from tarball
- sprintf (buf, "#%i.%i.%i BABL_PATH_LENGTH=%d BABL_TOLERANCE=%f",
+ snprintf (buf, sizeof (buf),
+ "#%i.%i.%i BABL_PATH_LENGTH=%d BABL_TOLERANCE=%f",
BABL_MAJOR_VERSION, BABL_MINOR_VERSION, BABL_MICRO_VERSION,
_babl_max_path_len (), _babl_legal_error ());
else
- sprintf (buf, "#%s BABL_PATH_LENGTH=%d BABL_TOLERANCE=%f",
- BABL_GIT_VERSION,
- _babl_max_path_len (), _babl_legal_error ());
+ snprintf (buf, sizeof (buf), "#%s BABL_PATH_LENGTH=%d BABL_TOLERANCE=%f",
+ BABL_GIT_VERSION, _babl_max_path_len (), _babl_legal_error ());
return buf;
}
@@ -167,10 +170,15 @@
char *tmpp = calloc(8000,1);
FILE *dbfile;
- sprintf (tmpp, "%s~", fish_cache_path ());
+ if (!tmpp)
+ return;
+ snprintf (tmpp, 8000, "%s~", fish_cache_path ());
dbfile = fopen (tmpp, "w");
if (!dbfile)
+ {
+ free (tmpp);
return;
+ }
fprintf (dbfile, "%s\n", cache_header ());
/* sort the list of fishes by usage, making next run more efficient -
@@ -270,6 +278,7 @@
{
fprintf (stderr, "%s:%i: loading of cache failed\n",
__FUNCTION__, __LINE__);
+ free (contents);
return;
}
@@ -312,6 +321,7 @@
Babl *conv = (void*)babl_db_find(babl_conversion_db(), &token[1]);
if (!conv)
{
+ free (contents);
return;
}
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-conversion.c new/babl-0.1.38/babl/babl-conversion.c
--- old/babl-0.1.34/babl/babl-conversion.c 2017-10-04 16:11:23.000000000 +0200
+++ new/babl-0.1.38/babl/babl-conversion.c 2017-10-25 16:48:41.000000000 +0200
@@ -154,7 +154,7 @@
{
if (babl_extender ())
{
- snprintf (buf, 512 - 1, "%s %i: %s%s to %s",
+ snprintf (buf, sizeof (buf), "%s %i: %s%s to %s",
BABL (babl_extender ())->instance.name,
collisions,
type == BABL_CONVERSION_LINEAR ? "" :
@@ -162,18 +162,16 @@
type == BABL_CONVERSION_PLANAR ? "planar " : "Eeeek! ",
source->instance.name,
destination->instance.name);
- buf[511] = '\0';
}
else
{
- snprintf (buf, 512 - 1, "%s %s to %s %i",
+ snprintf (buf, sizeof (buf), "%s %s to %s %i",
type == BABL_CONVERSION_LINEAR ? "" :
type == BABL_CONVERSION_PLANE ? "plane " :
type == BABL_CONVERSION_PLANAR ? "planar " : "Eeeek! ",
source->instance.name,
destination->instance.name,
collisions);
- buf[511] = '\0';
}
return buf;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-format.c new/babl-0.1.38/babl/babl-format.c
--- old/babl-0.1.34/babl/babl-format.c 2017-10-04 16:17:13.000000000 +0200
+++ new/babl-0.1.38/babl/babl-format.c 2017-10-31 20:46:54.000000000 +0100
@@ -135,8 +135,8 @@
{
Babl *ret;
char new_name[256];
- sprintf (new_name, "%s-%s", babl_get_name ((void*)format),
- babl_get_name ((void*)space));
+ snprintf (new_name, sizeof (new_name), "%s-%s", babl_get_name ((void*)format),
+ babl_get_name ((void*)space));
ret = babl_db_find (babl_format_db(), new_name);
if (ret)
return ret;
@@ -161,6 +161,7 @@
{
char buf[512] = "";
char *p = &buf[0];
+ ssize_t left;
int i;
int same_types = 1;
const BablType**t = type;
@@ -168,9 +169,11 @@
BablComponent **c1 = component;
BablComponent **c2 = model->component;
-
- sprintf (p, "%s ", model->instance.name);
+ left = 512;
+ snprintf (p, left, "%s ", model->instance.name);
p += strlen (model->instance.name) + 1;
+ left -= strlen (model->instance.name) + 1;
+ babl_assert (left >= 0);
i = components;
while (i--)
@@ -202,7 +205,7 @@
if (same_types)
{
- sprintf (p, "%s", first_type->instance.name);
+ snprintf (p, left, "%s", first_type->instance.name);
return babl_strdup (buf);
}
@@ -210,11 +213,14 @@
while (i--)
{
- sprintf (p, "(%s as %s) ",
+ snprintf (p, left, "(%s as %s) ",
(*component)->instance.name,
(*type)->instance.name);
p += strlen ((*component)->instance.name) +
strlen ((*type)->instance.name) + strlen ("( as ) ");
+ left -= strlen ((*component)->instance.name) +
+ strlen ((*type)->instance.name) + strlen ("( as ) ");
+ babl_assert (left >= 0);
component++;
type++;
}
@@ -226,7 +232,7 @@
int components)
{
char buf[512];
- sprintf (buf, "%s[%i] ", type->instance.name, components);
+ snprintf (buf, sizeof (buf), "%s[%i] ", type->instance.name, components);
return babl_strdup (buf);
}
@@ -742,4 +748,13 @@
return ret;
}
+int
+babl_format_exists (const char *name)
+{
+ if (babl_db_exist_by_name (db, name))
+ return 1;
+ return 0;
+}
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-icc.c new/babl-0.1.38/babl/babl-icc.c
--- old/babl-0.1.34/babl/babl-icc.c 2017-10-03 17:05:49.000000000 +0200
+++ new/babl-0.1.38/babl/babl-icc.c 2017-10-25 16:48:41.000000000 +0200
@@ -973,7 +973,7 @@
{
char tag[5];
int val = icc_read (u32, 64);
- sprintf (tag, "%i", val);
+ snprintf (tag, sizeof (tag), "%i", val);
return strdup (tag);
} else if (!strcmp (key, "tags"))
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-internal.c new/babl-0.1.38/babl/babl-internal.c
--- old/babl-0.1.34/babl/babl-internal.c 2017-09-28 17:48:58.000000000 +0200
+++ new/babl-0.1.38/babl/babl-internal.c 2017-10-25 16:48:41.000000000 +0200
@@ -65,7 +65,7 @@
{
char buf[512];
- sprintf (buf, "echo bt>/tmp/babl.gdb;"
+ snprintf (buf, sizeof (buf), "echo bt>/tmp/babl.gdb;"
"gdb -q --batch -x /tmp/babl.gdb --pid=%i | grep 'in ''babl_die' -A40", getpid ());
return system (buf);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-memory.c new/babl-0.1.38/babl/babl-memory.c
--- old/babl-0.1.34/babl/babl-memory.c 2017-09-21 21:06:11.000000000 +0200
+++ new/babl-0.1.38/babl/babl-memory.c 2017-10-25 16:48:41.000000000 +0200
@@ -71,7 +71,7 @@
{
static char buf[128];
- sprintf (buf, "mallocs:%i callocs:%i strdups:%i dups:%i allocs:%i frees:%i reallocs:%i\t|",
+ snprintf (buf, sizeof (buf), "mallocs:%i callocs:%i strdups:%i dups:%i allocs:%i frees:%i reallocs:%i\t|",
mallocs, callocs, strdups, dups, mallocs + callocs + strdups + dups, frees, reallocs);
return buf;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-palette.c new/babl-0.1.38/babl/babl-palette.c
--- old/babl-0.1.34/babl/babl-palette.c 2017-10-04 15:39:24.000000000 +0200
+++ new/babl-0.1.38/babl/babl-palette.c 2017-11-15 20:22:01.000000000 +0100
@@ -483,7 +483,7 @@
if (!name)
{
static int cnt = 0;
- sprintf (cname, "_babl-int-%i", cnt++);
+ snprintf (cname, sizeof (cname), "_babl-int-%i", cnt++);
name = cname;
}
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-space.c new/babl-0.1.38/babl/babl-space.c
--- old/babl-0.1.34/babl/babl-space.c 2017-10-04 16:15:45.000000000 +0200
+++ new/babl-0.1.38/babl/babl-space.c 2017-10-25 16:48:41.000000000 +0200
@@ -285,9 +285,9 @@
space_db[i]=space;
space_db[i].instance.name = space_db[i].name;
if (name)
- sprintf (space_db[i].name, "%s", name);
+ snprintf (space_db[i].name, sizeof (space_db[i].name), "%s", name);
else
- sprintf (space_db[i].name, "space-%.4f,%.4f_%.4f,%.4f_%.4f_%.4f,%.4f_%.4f,%.4f_%s,%s,%s",
+ snprintf (space_db[i].name, sizeof (space_db[i].name), "space-%.4f,%.4f_%.4f,%.4f_%.4f_%.4f,%.4f_%.4f,%.4f_%s,%s,%s",
rx, gx, bx,
ry, gy, by,
rz, gz, bz,
@@ -348,10 +348,11 @@
space_db[i]=space;
space_db[i].instance.name = space_db[i].name;
if (name)
- sprintf (space_db[i].name, "%s", name);
+ snprintf (space_db[i].name, sizeof (space_db[i].name), "%s", name);
else
/* XXX: this can get longer than 256bytes ! */
- sprintf (space_db[i].name, "space-%.4f,%.4f_%.4f,%.4f_%.4f,%.4f_%.4f,%.4f_%s,%s,%s",
+ snprintf (space_db[i].name, sizeof (space_db[i].name),
+ "space-%.4f,%.4f_%.4f,%.4f_%.4f,%.4f_%.4f,%.4f_%s,%s,%s",
wx,wy,rx,ry,bx,by,gx,gy,babl_get_name (space.trc[0]),
babl_get_name(space.trc[1]), babl_get_name(space.trc[2]));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-trc.c new/babl-0.1.38/babl/babl-trc.c
--- old/babl-0.1.34/babl/babl-trc.c 2017-10-03 15:54:25.000000000 +0200
+++ new/babl-0.1.38/babl/babl-trc.c 2017-10-25 16:48:41.000000000 +0200
@@ -292,11 +292,11 @@
trc_db[i]=trc;
trc_db[i].instance.name = trc_db[i].name;
if (name)
- sprintf (trc_db[i].name, "%s", name);
+ snprintf (trc_db[i].name, sizeof (trc_db[i].name), "%s", name);
else if (n_lut)
- sprintf (trc_db[i].name, "lut-trc");
+ snprintf (trc_db[i].name, sizeof (trc_db[i].name), "lut-trc");
else
- sprintf (trc_db[i].name, "trc-%i-%f", type, gamma);
+ snprintf (trc_db[i].name, sizeof (trc_db[i].name), "trc-%i-%f", type, gamma);
if (n_lut)
{
@@ -430,7 +430,7 @@
fabs (c - (-3417)) < 0.01)
return babl_trc ("sRGB");
- sprintf (name, "%.6f %.6f %.4f %.4f %.4f", g, a, b, c, d);
+ snprintf (name, sizeof (name), "%.6f %.6f %.4f %.4f %.4f", g, a, b, c, d);
for (i = 0; name[i]; i++)
if (name[i] == ',') name[i] = '.';
while (name[strlen(name)-1]=='0')
@@ -446,7 +446,7 @@
if (fabs (gamma - 1.0) < 0.01)
return babl_trc_new ("linear", BABL_TRC_LINEAR, 1.0, 0, NULL);
- sprintf (name, "%.6f", gamma);
+ snprintf (name, sizeof (name), "%.6f", gamma);
for (i = 0; name[i]; i++)
if (name[i] == ',') name[i] = '.';
while (name[strlen(name)-1]=='0')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-util.c new/babl-0.1.38/babl/babl-util.c
--- old/babl-0.1.34/babl/babl-util.c 2017-10-01 01:25:25.000000000 +0200
+++ new/babl-0.1.38/babl/babl-util.c 2017-10-24 14:11:01.000000000 +0200
@@ -116,10 +116,18 @@
if (!file)
return -1;
- fseek (file, 0, SEEK_END);
- size = ftell (file);
+ if (fseek (file, 0, SEEK_END) == -1 || (size = ftell (file)) == -1)
+ {
+ fclose (file);
+ return -1;
+ }
if (length) *length = size;
rewind (file);
+ if ((size_t) size > SIZE_MAX - 8)
+ {
+ fclose (file);
+ return -1;
+ }
buffer = calloc(size + 8, 1);
if (!buffer)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl-version.h new/babl-0.1.38/babl/babl-version.h
--- old/babl-0.1.34/babl/babl-version.h 2017-10-06 15:05:59.000000000 +0200
+++ new/babl-0.1.38/babl/babl-version.h 2017-11-15 23:15:51.000000000 +0100
@@ -34,7 +34,7 @@
#define BABL_MAJOR_VERSION 0
#define BABL_MINOR_VERSION 1
-#define BABL_MICRO_VERSION 34
+#define BABL_MICRO_VERSION 38
/** Get the version information on the babl library */
void babl_get_version (int *major,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/babl.h new/babl-0.1.38/babl/babl.h
--- old/babl-0.1.34/babl/babl.h 2017-10-03 17:04:26.000000000 +0200
+++ new/babl-0.1.38/babl/babl.h 2017-10-31 20:48:12.000000000 +0100
@@ -157,6 +157,15 @@
const Babl * babl_format (const char *name);
/**
+ * babl_format_exists:
+ *
+ * Returns 1 if the provided format name is known by babl or 0 if it is
+ * not. Can also be used to verify that specific extension formats are
+ * available (though this can also be inferred from the version of babl).
+ */
+int babl_format_exists (const char *name);
+
+/**
* babl_format_with_space:
*
* Returns the babl object representing the color format given by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/base/pow-24.c new/babl-0.1.38/babl/base/pow-24.c
--- old/babl-0.1.34/babl/base/pow-24.c 2017-09-21 21:06:11.000000000 +0200
+++ new/babl-0.1.38/babl/base/pow-24.c 2017-11-14 12:29:03.000000000 +0100
@@ -48,8 +48,13 @@
double
babl_pow_24 (double x)
{
- double y = init_newton (x, -1./5, 0.9953189663, 0.9594345146, 0.6742970332);
+ double y;
int i;
+ if (x > 16.0) {
+ /* for large values, fall back to a slower but more accurate version */
+ return exp (log (x) * 2.4);
+ }
+ y = init_newton (x, -1./5, 0.9953189663, 0.9594345146, 0.6742970332);
for (i = 0; i < 3; i++)
y = (1.+1./5)*y - ((1./5)*x*(y*y))*((y*y)*(y*y));
x *= y;
@@ -61,9 +66,14 @@
double
babl_pow_1_24 (double x)
{
- double y = init_newton (x, -1./12, 0.9976800269, 0.9885126933, 0.5908575383);
+ double y;
int i;
double z;
+ if (x > 1024.0) {
+ /* for large values, fall back to a slower but more accurate version */
+ return exp (log (x) * (1.0 / 2.4));
+ }
+ y = init_newton (x, -1./12, 0.9976800269, 0.9885126933, 0.5908575383);
x = sqrt (x);
/* newton's method for x^(-1/6) */
z = (1./6.) * x;
@@ -102,10 +112,15 @@
float
babl_pow_24f (float x)
{
- float y = init_newtonf (x, -1.f/5, 0.9953189663f, 0.9594345146f, 0.6742970332f);
+ float y;
int i;
+ if (x > 16.0f) {
+ /* for large values, fall back to a slower but more accurate version */
+ return expf (logf (x) * 2.4f);
+ }
+ y = init_newtonf (x, -1.f/5, 0.9953189663f, 0.9594345146f, 0.6742970332f);
for (i = 0; i < 3; i++)
- y = (1.f+1.f/5)*y - ((1./5)*x*(y*y))*((y*y)*(y*y));
+ y = (1.f+1.f/5)*y - ((1.f/5)*x*(y*y))*((y*y)*(y*y));
x *= y;
return x*x*x;
}
@@ -115,9 +130,14 @@
float
babl_pow_1_24f (float x)
{
- float y = init_newtonf (x, -1.f/12, 0.9976800269f, 0.9885126933f, 0.5908575383f);
+ float y;
int i;
float z;
+ if (x > 1024.0f) {
+ /* for large values, fall back to a slower but more accurate version */
+ return expf (logf (x) * (1.0f / 2.4f));
+ }
+ y = init_newtonf (x, -1.f/12, 0.9976800269f, 0.9885126933f, 0.5908575383f);
x = sqrtf (x);
/* newton's method for x^(-1/6) */
z = (1.f/6.f) * x;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/babl/base/pow-24.h new/babl-0.1.38/babl/base/pow-24.h
--- old/babl-0.1.34/babl/base/pow-24.h 2017-09-28 17:48:58.000000000 +0200
+++ new/babl-0.1.38/babl/base/pow-24.h 2017-11-14 12:29:03.000000000 +0100
@@ -54,8 +54,13 @@
static inline double
babl_pow_24 (double x)
{
- double y = init_newton (x, -1./5, 0.9953189663, 0.9594345146, 0.6742970332);
+ double y;
int i;
+ if (x > 16.0) {
+ /* for large values, fall back to a slower but more accurate version */
+ return exp (log (x) * 2.4);
+ }
+ y = init_newton (x, -1./5, 0.9953189663, 0.9594345146, 0.6742970332);
for (i = 0; i < 3; i++)
y = (1.+1./5)*y - ((1./5)*x*(y*y))*((y*y)*(y*y));
x *= y;
@@ -67,9 +72,14 @@
static inline double
babl_pow_1_24 (double x)
{
- double y = init_newton (x, -1./12, 0.9976800269, 0.9885126933, 0.5908575383);
+ double y;
int i;
double z;
+ if (x > 1024.0) {
+ /* for large values, fall back to a slower but more accurate version */
+ return exp (log (x) * (1.0 / 2.4));
+ }
+ y = init_newton (x, -1./12, 0.9976800269, 0.9885126933, 0.5908575383);
x = sqrt (x);
/* newton's method for x^(-1/6) */
z = (1./6.) * x;
@@ -133,10 +143,15 @@
static inline float
babl_pow_24f (float x)
{
- float y = init_newtonf (x, -1.f/5, 0.9953189663f, 0.9594345146f, 0.6742970332f);
+ float y;
int i;
+ if (x > 16.0f) {
+ /* for large values, fall back to a slower but more accurate version */
+ return expf (logf (x) * 2.4f);
+ }
+ y = init_newtonf (x, -1.f/5, 0.9953189663f, 0.9594345146f, 0.6742970332f);
for (i = 0; i < 3; i++)
- y = (1.f+1.f/5)*y - ((1./5)*x*(y*y))*((y*y)*(y*y));
+ y = (1.f+1.f/5)*y - ((1.f/5)*x*(y*y))*((y*y)*(y*y));
x *= y;
return x*x*x;
}
@@ -146,9 +161,14 @@
static inline float
babl_pow_1_24f (float x)
{
- float y = init_newtonf (x, -1.f/12, 0.9976800269f, 0.9885126933f, 0.5908575383f);
+ float y;
int i;
float z;
+ if (x > 1024.0f) {
+ /* for large values, fall back to a slower but more accurate version */
+ return expf (logf (x) * (1.0f / 2.4f));
+ }
+ y = init_newtonf (x, -1.f/12, 0.9976800269f, 0.9885126933f, 0.5908575383f);
x = sqrtf (x);
/* newton's method for x^(-1/6) */
z = (1.f/6.f) * x;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/configure new/babl-0.1.38/configure
--- old/babl-0.1.34/configure 2017-10-06 15:05:54.000000000 +0200
+++ new/babl-0.1.38/configure 2017-11-15 23:15:46.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for babl 0.1.34.
+# Generated by GNU Autoconf 2.69 for babl 0.1.38.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@
# Identity of this package.
PACKAGE_NAME='babl'
PACKAGE_TARNAME='babl'
-PACKAGE_VERSION='0.1.34'
-PACKAGE_STRING='babl 0.1.34'
+PACKAGE_VERSION='0.1.38'
+PACKAGE_STRING='babl 0.1.38'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1381,7 +1381,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures babl 0.1.34 to adapt to many kinds of systems.
+\`configure' configures babl 0.1.38 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1453,7 +1453,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of babl 0.1.34:";;
+ short | recursive ) echo "Configuration of babl 0.1.38:";;
esac
cat <<\_ACEOF
@@ -1573,7 +1573,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-babl configure 0.1.34
+babl configure 0.1.38
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1938,7 +1938,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by babl $as_me 0.1.34, which was
+It was created by babl $as_me 0.1.38, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2294,11 +2294,11 @@
BABL_MAJOR_VERSION=0
BABL_MINOR_VERSION=1
-BABL_MICRO_VERSION=34
+BABL_MICRO_VERSION=38
BABL_INTERFACE_AGE=1
-BABL_BINARY_AGE=134
-BABL_VERSION=0.1.34
-BABL_REAL_VERSION=0.1.34
+BABL_BINARY_AGE=138
+BABL_VERSION=0.1.38
+BABL_REAL_VERSION=0.1.38
BABL_API_VERSION=0.1
@@ -2333,7 +2333,7 @@
-BABL_LIBRARY_VERSION="133:1:133"
+BABL_LIBRARY_VERSION="137:1:137"
BABL_CURRENT_MINUS_AGE=0
@@ -2965,7 +2965,7 @@
# Define the identity of the package.
PACKAGE='babl'
- VERSION='0.1.34'
+ VERSION='0.1.38'
# Some tools Automake needs.
@@ -14864,7 +14864,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by babl $as_me 0.1.34, which was
+This file was extended by babl $as_me 0.1.38, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14930,7 +14930,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-babl config.status 0.1.34
+babl config.status 0.1.38
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/configure.ac new/babl-0.1.38/configure.ac
--- old/babl-0.1.34/configure.ac 2017-10-06 15:04:38.000000000 +0200
+++ new/babl-0.1.38/configure.ac 2017-11-15 23:15:41.000000000 +0100
@@ -14,7 +14,7 @@
m4_define([babl_major_version], [0])
m4_define([babl_minor_version], [1])
-m4_define([babl_micro_version], [34])
+m4_define([babl_micro_version], [38])
m4_define([babl_real_version],
[babl_major_version.babl_minor_version.babl_micro_version])
m4_define([babl_version], [babl_real_version])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/export-symbols new/babl-0.1.38/export-symbols
--- old/babl-0.1.34/export-symbols 2017-10-05 23:12:28.000000000 +0200
+++ new/babl-0.1.38/export-symbols 2017-10-31 20:50:32.000000000 +0100
@@ -8,6 +8,7 @@
babl_fast_fish
babl_fish
babl_format
+babl_format_exists
babl_format_get_bytes_per_pixel
babl_format_get_model
babl_format_get_n_components
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/extensions/CIE.c new/babl-0.1.38/extensions/CIE.c
--- old/babl-0.1.34/extensions/CIE.c 2017-10-03 16:37:07.000000000 +0200
+++ new/babl-0.1.38/extensions/CIE.c 2017-11-13 15:34:02.000000000 +0100
@@ -2,6 +2,7 @@
* Copyright (C) 2005, 2014 Øyvind Kolås.
* Copyright (C) 2009, Martin Nordholts
* Copyright (C) 2014, Elle Stone
+ * Copyright (C) 2017, Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -168,13 +169,13 @@
double y_r = Y / D50_WHITE_REF_Y;
double z_r = Z / D50_WHITE_REF_Z;
- if (x_r > LAB_EPSILON) f_x = pow(x_r, 1.0 / 3.0);
+ if (x_r > LAB_EPSILON) f_x = cbrt(x_r);
else ( f_x = ((LAB_KAPPA * x_r) + 16) / 116.0 );
- if (y_r > LAB_EPSILON) f_y = pow(y_r, 1.0 / 3.0);
+ if (y_r > LAB_EPSILON) f_y = cbrt(y_r);
else ( f_y = ((LAB_KAPPA * y_r) + 16) / 116.0 );
- if (z_r > LAB_EPSILON) f_z = pow(z_r, 1.0 / 3.0);
+ if (z_r > LAB_EPSILON) f_z = cbrt(z_r);
else ( f_z = ((LAB_KAPPA * z_r) + 16) / 116.0 );
*to_L = (116.0 * f_y) - 16.0;
@@ -592,6 +593,44 @@
}
static void
+Yf_to_Lf (const Babl *conversion,float *src,
+ float *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float yr = src[0];
+ float L = yr > LAB_EPSILON ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPA * yr;
+
+ dst[0] = L;
+
+ src++;
+ dst++;
+ }
+}
+
+static void
+Yaf_to_Lf (const Babl *conversion,float *src,
+ float *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ float yr = src[0];
+ float L = yr > LAB_EPSILON ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPA * yr;
+
+ dst[0] = L;
+
+ src += 2;
+ dst += 1;
+ }
+}
+
+static void
Yaf_to_Laf (const Babl *conversion,float *src,
float *dst,
long samples)
@@ -617,6 +656,16 @@
float *dst,
long samples)
{
+ const Babl *space = babl_conversion_get_source_space (conversion);
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
long n = samples;
while (n--)
@@ -625,9 +674,9 @@
float g = src[1];
float b = src[2];
- float xr = 0.43603516f / D50_WHITE_REF_X * r + 0.38511658f / D50_WHITE_REF_X * g + 0.14305115f / D50_WHITE_REF_X * b;
- float yr = 0.22248840f / D50_WHITE_REF_Y * r + 0.71690369f / D50_WHITE_REF_Y * g + 0.06060791f / D50_WHITE_REF_Y * b;
- float zr = 0.01391602f / D50_WHITE_REF_Z * r + 0.09706116f / D50_WHITE_REF_Z * g + 0.71392822f / D50_WHITE_REF_Z * b;
+ float xr = m_0_0 * r + m_0_1 * g + m_0_2 * b;
+ float yr = m_1_0 * r + m_1_1 * g + m_1_2 * b;
+ float zr = m_2_0 * r + m_2_1 * g + m_2_2 * b;
float fx = xr > LAB_EPSILON ? _cbrtf (xr) : (LAB_KAPPA * xr + 16.0f) / 116.0f;
float fy = yr > LAB_EPSILON ? _cbrtf (yr) : (LAB_KAPPA * yr + 16.0f) / 116.0f;
@@ -647,10 +696,94 @@
}
static void
+rgbaf_to_Lf (const Babl *conversion,float *src,
+ float *dst,
+ long samples)
+{
+ const Babl *space = babl_conversion_get_source_space (conversion);
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
+ long n = samples;
+
+ while (n--)
+ {
+ float r = src[0];
+ float g = src[1];
+ float b = src[2];
+
+ float yr = m_1_0 * r + m_1_1 * g + m_1_2 * b;
+
+ float fy = yr > LAB_EPSILON ? _cbrtf (yr) : (LAB_KAPPA * yr + 16.0f) / 116.0f;
+
+ float L = 116.0f * fy - 16.0f;
+
+ dst[0] = L;
+
+ src += 4;
+ dst += 1;
+ }
+}
+
+static void
+rgbaf_to_Labf (const Babl *conversion,float *src,
+ float *dst,
+ long samples)
+{
+ const Babl *space = babl_conversion_get_source_space (conversion);
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ long n = samples;
+
+ while (n--)
+ {
+ float r = src[0];
+ float g = src[1];
+ float b = src[2];
+
+ float xr = m_0_0 * r + m_0_1 * g + m_0_2 * b;
+ float yr = m_1_0 * r + m_1_1 * g + m_1_2 * b;
+ float zr = m_2_0 * r + m_2_1 * g + m_2_2 * b;
+
+ float fx = xr > LAB_EPSILON ? _cbrtf (xr) : (LAB_KAPPA * xr + 16.0f) / 116.0f;
+ float fy = yr > LAB_EPSILON ? _cbrtf (yr) : (LAB_KAPPA * yr + 16.0f) / 116.0f;
+ float fz = zr > LAB_EPSILON ? _cbrtf (zr) : (LAB_KAPPA * zr + 16.0f) / 116.0f;
+
+ float L = 116.0f * fy - 16.0f;
+ float A = 500.0f * (fx - fy);
+ float B = 200.0f * (fy - fz);
+
+ dst[0] = L;
+ dst[1] = A;
+ dst[2] = B;
+
+ src += 4;
+ dst += 3;
+ }
+}
+
+static void
rgbaf_to_Labaf (const Babl *conversion,float *src,
float *dst,
long samples)
{
+ const Babl *space = babl_conversion_get_source_space (conversion);
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
long n = samples;
while (n--)
@@ -660,9 +793,9 @@
float b = src[2];
float a = src[3];
- float xr = 0.43603516f / D50_WHITE_REF_X * r + 0.38511658f / D50_WHITE_REF_X * g + 0.14305115f / D50_WHITE_REF_X * b;
- float yr = 0.22248840f / D50_WHITE_REF_Y * r + 0.71690369f / D50_WHITE_REF_Y * g + 0.06060791f / D50_WHITE_REF_Y * b;
- float zr = 0.01391602f / D50_WHITE_REF_Z * r + 0.09706116f / D50_WHITE_REF_Z * g + 0.71392822f / D50_WHITE_REF_Z * b;
+ float xr = m_0_0 * r + m_0_1 * g + m_0_2 * b;
+ float yr = m_1_0 * r + m_1_1 * g + m_1_2 * b;
+ float zr = m_2_0 * r + m_2_1 * g + m_2_2 * b;
float fx = xr > LAB_EPSILON ? _cbrtf (xr) : (LAB_KAPPA * xr + 16.0f) / 116.0f;
float fy = yr > LAB_EPSILON ? _cbrtf (yr) : (LAB_KAPPA * yr + 16.0f) / 116.0f;
@@ -683,10 +816,52 @@
}
static void
+Labf_to_Lf (const Babl *conversion,float *src,
+ float *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ dst[0] = src[0];
+
+ src += 3;
+ dst += 1;
+ }
+}
+
+static void
+Labaf_to_Lf (const Babl *conversion,float *src,
+ float *dst,
+ long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ dst[0] = src[0];
+
+ src += 4;
+ dst += 1;
+ }
+}
+
+static void
Labf_to_rgbf (const Babl *conversion,float *src,
float *dst,
long samples)
{
+ const Babl *space = babl_conversion_get_source_space (conversion);
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
long n = samples;
while (n--)
@@ -703,9 +878,9 @@
float xr = cubef (fx) > LAB_EPSILON ? cubef (fx) : (fx * 116.0f - 16.0f) / LAB_KAPPA;
float zr = cubef (fz) > LAB_EPSILON ? cubef (fz) : (fz * 116.0f - 16.0f) / LAB_KAPPA;
- float r = 3.134274799724f * D50_WHITE_REF_X * xr -1.617275708956f * D50_WHITE_REF_Y * yr -0.490724283042f * D50_WHITE_REF_Z * zr;
- float g = -0.978795575994f * D50_WHITE_REF_X * xr +1.916161689117f * D50_WHITE_REF_Y * yr +0.033453331711f * D50_WHITE_REF_Z * zr;
- float b = 0.071976988401f * D50_WHITE_REF_X * xr -0.228984974402f * D50_WHITE_REF_Y * yr +1.405718224383f * D50_WHITE_REF_Z * zr;
+ float r = m_0_0 * xr + m_0_1 * yr + m_0_2 * zr;
+ float g = m_1_0 * xr + m_1_1 * yr + m_1_2 * zr;
+ float b = m_2_0 * xr + m_2_1 * yr + m_2_2 * zr;
dst[0] = r;
dst[1] = g;
@@ -721,6 +896,16 @@
float *dst,
long samples)
{
+ const Babl *space = babl_conversion_get_source_space (conversion);
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
long n = samples;
while (n--)
@@ -738,9 +923,9 @@
float xr = cubef (fx) > LAB_EPSILON ? cubef (fx) : (fx * 116.0f - 16.0f) / LAB_KAPPA;
float zr = cubef (fz) > LAB_EPSILON ? cubef (fz) : (fz * 116.0f - 16.0f) / LAB_KAPPA;
- float r = 3.134274799724f * D50_WHITE_REF_X * xr -1.617275708956f * D50_WHITE_REF_Y * yr -0.490724283042f * D50_WHITE_REF_Z * zr;
- float g = -0.978795575994f * D50_WHITE_REF_X * xr +1.916161689117f * D50_WHITE_REF_Y * yr +0.033453331711f * D50_WHITE_REF_Z * zr;
- float b = 0.071976988401f * D50_WHITE_REF_X * xr -0.228984974402f * D50_WHITE_REF_Y * yr +1.405718224383f * D50_WHITE_REF_Z * zr;
+ float r = m_0_0 * xr + m_0_1 * yr + m_0_2 * zr;
+ float g = m_1_0 * xr + m_1_1 * yr + m_1_2 * zr;
+ float b = m_2_0 * xr + m_2_1 * yr + m_2_2 * zr;
dst[0] = r;
dst[1] = g;
@@ -905,6 +1090,12 @@
);
babl_conversion_new (
babl_format ("RGBA float"),
+ babl_format ("CIE Lab float"),
+ "linear", rgbaf_to_Labf,
+ NULL
+ );
+ babl_conversion_new (
+ babl_format ("RGBA float"),
babl_format ("CIE Lab alpha float"),
"linear", rgbaf_to_Labaf,
NULL
@@ -916,12 +1107,42 @@
NULL
);
babl_conversion_new (
+ babl_format ("Y float"),
+ babl_format ("CIE L float"),
+ "linear", Yf_to_Lf,
+ NULL
+ );
+ babl_conversion_new (
+ babl_format ("YA float"),
+ babl_format ("CIE L float"),
+ "linear", Yaf_to_Lf,
+ NULL
+ );
+ babl_conversion_new (
babl_format ("YA float"),
babl_format ("CIE L alpha float"),
"linear", Yaf_to_Laf,
NULL
);
babl_conversion_new (
+ babl_format ("RGBA float"),
+ babl_format ("CIE L float"),
+ "linear", rgbaf_to_Lf,
+ NULL
+ );
+ babl_conversion_new (
+ babl_format ("CIE Lab float"),
+ babl_format ("CIE L float"),
+ "linear", Labf_to_Lf,
+ NULL
+ );
+ babl_conversion_new (
+ babl_format ("CIE Lab alpha float"),
+ babl_format ("CIE L float"),
+ "linear", Labaf_to_Lf,
+ NULL
+ );
+ babl_conversion_new (
babl_model ("RGBA"),
babl_model ("CIE LCH(ab)"),
"linear", rgba_to_lchab,
@@ -1020,6 +1241,13 @@
NULL);
babl_format_new (
+ "name", "CIE L float",
+ babl_model ("CIE Lab"),
+ babl_type ("float"),
+ babl_component ("CIE L"),
+ NULL);
+
+ babl_format_new (
"name", "CIE L alpha float",
babl_model ("CIE Lab alpha"),
babl_type ("float"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/extensions/gggl-lies.c new/babl-0.1.38/extensions/gggl-lies.c
--- old/babl-0.1.34/extensions/gggl-lies.c 2017-09-29 00:30:45.000000000 +0200
+++ new/babl-0.1.38/extensions/gggl-lies.c 2017-11-10 10:33:42.000000000 +0100
@@ -356,7 +356,10 @@
{
float alpha = (*(float *) (src + 4));
- *(float *) dst = ((*(float *) src) / alpha);
+ if (alpha == 0.0f)
+ *(float *) dst = 0.0f;
+ else
+ *(float *) dst = ((*(float *) src) / alpha);
dst += 4;
src += 4;
*(float *) dst = alpha;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/extensions/gggl.c new/babl-0.1.38/extensions/gggl.c
--- old/babl-0.1.34/extensions/gggl.c 2017-09-29 00:30:45.000000000 +0200
+++ new/babl-0.1.38/extensions/gggl.c 2017-11-10 10:39:23.000000000 +0100
@@ -373,7 +373,10 @@
{
float alpha = (*(float *) (src + 4));
- *(float *) dst = ((*(float *) src) / alpha);
+ if (alpha == 0.0f)
+ *(float *) dst = 0.0f;
+ else
+ *(float *) dst = ((*(float *) src) / alpha);
dst += 4;
src += 4;
*(float *) dst = alpha;
@@ -557,10 +560,16 @@
{
float alpha = (((unsigned short *) src)[3]) / 65535.0;
int c;
+ float recip_alpha;
+
+ if (alpha == 0.0f)
+ recip_alpha = 10000.0;
+ else
+ recip_alpha = 1.0/alpha;
for (c = 0; c < 3; c++)
{
- (*(float *) dst) = (*(unsigned short *) src / 65535.0) / alpha;
+ (*(float *) dst) = (*(unsigned short *) src / 65535.0) * recip_alpha;
dst += 4;
src += 2;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/babl-0.1.34/extensions/sse2-float.c new/babl-0.1.38/extensions/sse2-float.c
--- old/babl-0.1.34/extensions/sse2-float.c 2017-09-29 00:30:45.000000000 +0200
+++ new/babl-0.1.38/extensions/sse2-float.c 2017-11-08 22:50:29.000000000 +0100
@@ -237,6 +237,22 @@
#define FLT_ONE 0x3f800000 // ((union {float f; int i;}){1.0f}).i
#define FLT_MANTISSA (1<<23)
+static inline float
+sse_max_component (__v4sf x) {
+ __v4sf s;
+ __v4sf m;
+
+ /* m = [max (x[3], x[1]), max (x[2], x[0])] */
+ s = (__v4sf) _mm_shuffle_epi32 ((__m128i) x, _MM_SHUFFLE(0, 0, 3, 2));
+ m = _mm_max_ps (x, s);
+
+ /* m = [max (m[1], m[0])] = [max (max (x[3], x[1]), max (x[2], x[0]))] */
+ s = (__v4sf) _mm_shuffle_epi32 ((__m128i) m, _MM_SHUFFLE(0, 0, 0, 1));
+ m = _mm_max_ps (m, s);
+
+ return m[0];
+}
+
static inline __v4sf
sse_init_newton (__v4sf x, double exponent, double c0, double c1, double c2)
{
@@ -249,6 +265,13 @@
sse_pow_1_24 (__v4sf x)
{
__v4sf y, z;
+ if (sse_max_component (x) > 1024.0f) {
+ /* for large values, fall back to a slower but more accurate version */
+ return _mm_set_ps (expf (logf (x[3]) * (1.0f / 2.4f)),
+ expf (logf (x[2]) * (1.0f / 2.4f)),
+ expf (logf (x[1]) * (1.0f / 2.4f)),
+ expf (logf (x[0]) * (1.0f / 2.4f)));
+ }
y = sse_init_newton (x, -1./12, 0.9976800269, 0.9885126933, 0.5908575383);
x = _mm_sqrt_ps (x);
/* newton's method for x^(-1/6) */
@@ -262,6 +285,13 @@
sse_pow_24 (__v4sf x)
{
__v4sf y, z;
+ if (sse_max_component (x) > 16.0f) {
+ /* for large values, fall back to a slower but more accurate version */
+ return _mm_set_ps (expf (logf (x[3]) * 2.4f),
+ expf (logf (x[2]) * 2.4f),
+ expf (logf (x[1]) * 2.4f),
+ expf (logf (x[0]) * 2.4f));
+ }
y = sse_init_newton (x, -1./5, 0.9953189663, 0.9594345146, 0.6742970332);
/* newton's method for x^(-1/5) */
z = splat4f (1.f/5.f) * x;
1
0
Hello community,
here is the log from the commit of package netpbm for openSUSE:Factory checked in at 2018-01-02 16:33:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/netpbm (Old)
and /work/SRC/openSUSE:Factory/.netpbm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "netpbm"
Tue Jan 2 16:33:07 2018 rev:62 rq:560688 version:10.80.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/netpbm/netpbm.changes 2017-12-23 12:18:19.934959800 +0100
+++ /work/SRC/openSUSE:Factory/.netpbm.new/netpbm.changes 2018-01-02 16:33:09.069221524 +0100
@@ -1,0 +2,7 @@
+Fri Dec 29 13:52:55 UTC 2017 - tchvatal(a)suse.com
+
+- Add patch makeman-py3.patch to make sure to use python3 when
+ building
+- Unpack the stuff only once
+
+-------------------------------------------------------------------
New:
----
makeman-py3.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ netpbm.spec ++++++
--- /var/tmp/diff_new_pack.OsGaC9/_old 2018-01-02 16:33:10.196845496 +0100
+++ /var/tmp/diff_new_pack.OsGaC9/_new 2018-01-02 16:33:10.200844163 +0100
@@ -36,6 +36,7 @@
Patch4: %{name}-security-code.patch
Patch5: %{name}-security-scripts.patch
Patch6: %{name}-gcc-warnings.patch
+Patch7: makeman-py3.patch
BuildRequires: flex
BuildRequires: libjasper-devel
BuildRequires: libjpeg-devel
@@ -43,7 +44,8 @@
BuildRequires: libtiff-devel
BuildRequires: libxml2-devel
BuildRequires: pkgconfig
-BuildRequires: python
+# needed for the makeman
+BuildRequires: python3-base
BuildRequires: pkgconfig(x11)
Provides: pbmplus
@@ -80,13 +82,13 @@
source package.
%prep
-%setup -q
%setup -q -D -a 1
%patch0
%patch3
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
mkdir pnmtopalm # for %%doc pnmtopalm
cp -p converter/other/pnmtopalm/{LICENSE,README} pnmtopalm
++++++ makeman-py3.patch ++++++
Index: netpbm-10.80.1/buildtools/makeman
===================================================================
--- netpbm-10.80.1.orig/buildtools/makeman
+++ netpbm-10.80.1/buildtools/makeman
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# makeman -- compile netpbm's stereotyped HTML to troff markup
#
1
0
Hello community,
here is the log from the commit of package lttng-ust for openSUSE:Factory checked in at 2018-01-02 16:33:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lttng-ust (Old)
and /work/SRC/openSUSE:Factory/.lttng-ust.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lttng-ust"
Tue Jan 2 16:33:00 2018 rev:2 rq:560605 version:2.10.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/lttng-ust/lttng-ust.changes 2017-09-27 16:54:22.355343769 +0200
+++ /work/SRC/openSUSE:Factory/.lttng-ust.new/lttng-ust.changes 2018-01-02 16:33:03.395113664 +0100
@@ -1,0 +2,14 @@
+Fri Dec 29 18:52:22 UTC 2017 - sor.alexei(a)meowr.ru
+
+- Update to version 2.10.1:
+ * Fix: Specify SONAME in python-lttngust's LoadLibrary.
+ * Fix: Ensure the fd tracker is initialised when called from
+ constructors.
+ * Fix: fd of an elf object must be registered to the fd tracker.
+ * Fix: liblttng-ust-fd.so: Override the fclose symbol.
+ * Fix: lttng-gen-tp: Only replace the file extension.
+ * Fix: Move fsync after ftruncate.
+ * Fix: Synch buffer file metadata on buffer allocation.
+- Drop baselibs.conf.
+
+-------------------------------------------------------------------
Old:
----
baselibs.conf
lttng-ust-2.10.0.tar.bz2
lttng-ust-2.10.0.tar.bz2.asc
New:
----
lttng-ust-2.10.1.tar.bz2
lttng-ust-2.10.1.tar.bz2.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lttng-ust.spec ++++++
--- /var/tmp/diff_new_pack.CNOyid/_old 2018-01-02 16:33:04.166856312 +0100
+++ /var/tmp/diff_new_pack.CNOyid/_new 2018-01-02 16:33:04.166856312 +0100
@@ -19,7 +19,7 @@
%define sover 0
%define sover_ctl 4
Name: lttng-ust
-Version: 2.10.0
+Version: 2.10.1
Release: 0
Summary: Linux Trace Toolkit Userspace Tracer library
License: GPL-2.0
@@ -28,7 +28,6 @@
Source: https://lttng.org/files/lttng-ust/lttng-ust-%{version}.tar.bz2
Source1: https://lttng.org/files/lttng-ust/lttng-ust-%{version}.tar.bz2.asc
Source2: %{name}.keyring
-Source3: baselibs.conf
# PATCH-FIX-OPENSUSE lttng-ust-copying.patch
Patch0: lttng-ust-copying.patch
BuildRequires: asciidoc
++++++ lttng-ust-2.10.0.tar.bz2 -> lttng-ust-2.10.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/ChangeLog new/lttng-ust-2.10.1/ChangeLog
--- old/lttng-ust-2.10.0/ChangeLog 2017-08-01 21:07:00.000000000 +0200
+++ new/lttng-ust-2.10.1/ChangeLog 2017-11-30 15:57:50.000000000 +0100
@@ -1,3 +1,12 @@
+2017-11-30 (National Mason Jar Day) lttng-ust 2.10.1
+ * Fix: specify SONAME in python-lttngust LoadLibrary
+ * Fix: ensure fd tracker is initialized when called from constructors
+ * Fix: fd of an elf object must be registered to the fd tracker
+ * Fix: liblttng-ust-fd.so: override fclose symbol
+ * Fix: lttng-gen-tp: only replace file extension
+ * Fix: move fsync after ftruncate
+ * Fix: sync buffer file metadata on buffer allocation
+
2017-08-01 (World Wide Web Day) lttng-ust 2.10.0
* lttng-ust(3): reword and fix style of `LTTNG_UST_ALLOW_BLOCKING` variable
* lttng-ust(3): specify "If set" instead of "if set to 1" for some variables
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/configure new/lttng-ust-2.10.1/configure
--- old/lttng-ust-2.10.0/configure 2017-08-01 21:16:49.000000000 +0200
+++ new/lttng-ust-2.10.1/configure 2017-11-30 15:58:25.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for lttng-ust 2.10.0.
+# Generated by GNU Autoconf 2.69 for lttng-ust 2.10.1.
#
# Report bugs to <mathieu dot desnoyers at efficios dot com>.
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='lttng-ust'
PACKAGE_TARNAME='lttng-ust'
-PACKAGE_VERSION='2.10.0'
-PACKAGE_STRING='lttng-ust 2.10.0'
+PACKAGE_VERSION='2.10.1'
+PACKAGE_STRING='lttng-ust 2.10.1'
PACKAGE_BUGREPORT='mathieu dot desnoyers at efficios dot com'
PACKAGE_URL='https://lttng.org'
@@ -1421,7 +1421,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures lttng-ust 2.10.0 to adapt to many kinds of systems.
+\`configure' configures lttng-ust 2.10.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1493,7 +1493,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of lttng-ust 2.10.0:";;
+ short | recursive ) echo "Configuration of lttng-ust 2.10.1:";;
esac
cat <<\_ACEOF
@@ -1651,7 +1651,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-lttng-ust configure 2.10.0
+lttng-ust configure 2.10.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2371,7 +2371,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by lttng-ust $as_me 2.10.0, which was
+It was created by lttng-ust $as_me 2.10.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2727,7 +2727,7 @@
MINOR_VERSION=10
-PATCHLEVEL_VERSION=0
+PATCHLEVEL_VERSION=1
# Following the numbering scheme proposed by libtool for the library version
@@ -3375,7 +3375,7 @@
# Define the identity of the package.
PACKAGE='lttng-ust'
- VERSION='2.10.0'
+ VERSION='2.10.1'
cat >>confdefs.h <<_ACEOF
@@ -22362,7 +22362,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by lttng-ust $as_me 2.10.0, which was
+This file was extended by lttng-ust $as_me 2.10.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -22433,7 +22433,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-lttng-ust config.status 2.10.0
+lttng-ust config.status 2.10.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/configure.ac new/lttng-ust-2.10.1/configure.ac
--- old/lttng-ust-2.10.0/configure.ac 2017-08-01 21:16:28.000000000 +0200
+++ new/lttng-ust-2.10.1/configure.ac 2017-11-30 15:57:56.000000000 +0100
@@ -1,7 +1,7 @@
dnl Version infos
m4_define([V_MAJOR], [2])
m4_define([V_MINOR], [10])
-m4_define([V_PATCH], [0])
+m4_define([V_PATCH], [1])
dnl m4_define([V_EXTRA], [])
m4_define([V_NAME], [[KeKriek]])
m4_define([V_DESC], [[From Brasserie Dunham, a sour mashed golden wheat ale fermented with local sour cherries from Tougas orchards. Fresh sweet cherry notes with some tartness, lively carbonation with a dry finish.]])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/doc/man/lttng-gen-tp.1 new/lttng-ust-2.10.1/doc/man/lttng-gen-tp.1
--- old/lttng-ust-2.10.0/doc/man/lttng-gen-tp.1 2017-08-01 21:08:43.000000000 +0200
+++ new/lttng-ust-2.10.1/doc/man/lttng-gen-tp.1 2017-11-30 15:58:48.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: lttng-gen-tp
.\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 08/01/2017
+.\" Date: 11/30/2017
.\" Manual: LTTng Manual
-.\" Source: LTTng 2.10.0-
+.\" Source: LTTng 2.10.1
.\" Language: English
.\"
-.TH "LTTNG\-GEN\-TP" "1" "08/01/2017" "LTTng 2\&.10\&.0\-" "LTTng Manual"
+.TH "LTTNG\-GEN\-TP" "1" "11/30/2017" "LTTng 2\&.10\&.1" "LTTng Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/doc/man/lttng-ust-cyg-profile.3 new/lttng-ust-2.10.1/doc/man/lttng-ust-cyg-profile.3
--- old/lttng-ust-2.10.0/doc/man/lttng-ust-cyg-profile.3 2017-08-01 21:08:44.000000000 +0200
+++ new/lttng-ust-2.10.1/doc/man/lttng-ust-cyg-profile.3 2017-11-30 15:58:49.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: lttng-ust-dl
.\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 08/01/2017
+.\" Date: 11/30/2017
.\" Manual: LTTng Manual
-.\" Source: LTTng 2.10.0-
+.\" Source: LTTng 2.10.1
.\" Language: English
.\"
-.TH "LTTNG\-UST\-DL" "3" "08/01/2017" "LTTng 2\&.10\&.0\-" "LTTng Manual"
+.TH "LTTNG\-UST\-DL" "3" "11/30/2017" "LTTng 2\&.10\&.1" "LTTng Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/doc/man/lttng-ust-dl.3 new/lttng-ust-2.10.1/doc/man/lttng-ust-dl.3
--- old/lttng-ust-2.10.0/doc/man/lttng-ust-dl.3 2017-08-01 21:08:44.000000000 +0200
+++ new/lttng-ust-2.10.1/doc/man/lttng-ust-dl.3 2017-11-30 15:58:49.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: lttng-ust-dl
.\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 08/01/2017
+.\" Date: 11/30/2017
.\" Manual: LTTng Manual
-.\" Source: LTTng 2.10.0-
+.\" Source: LTTng 2.10.1
.\" Language: English
.\"
-.TH "LTTNG\-UST\-DL" "3" "08/01/2017" "LTTng 2\&.10\&.0\-" "LTTng Manual"
+.TH "LTTNG\-UST\-DL" "3" "11/30/2017" "LTTng 2\&.10\&.1" "LTTng Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/doc/man/lttng-ust.3 new/lttng-ust-2.10.1/doc/man/lttng-ust.3
--- old/lttng-ust-2.10.0/doc/man/lttng-ust.3 2017-08-01 21:08:45.000000000 +0200
+++ new/lttng-ust-2.10.1/doc/man/lttng-ust.3 2017-11-30 15:58:49.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: lttng-ust
.\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 08/01/2017
+.\" Date: 11/30/2017
.\" Manual: LTTng Manual
-.\" Source: LTTng 2.10.0-
+.\" Source: LTTng 2.10.1
.\" Language: English
.\"
-.TH "LTTNG\-UST" "3" "08/01/2017" "LTTng 2\&.10\&.0\-" "LTTng Manual"
+.TH "LTTNG\-UST" "3" "11/30/2017" "LTTng 2\&.10\&.1" "LTTng Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/doc/man/tracef.3 new/lttng-ust-2.10.1/doc/man/tracef.3
--- old/lttng-ust-2.10.0/doc/man/tracef.3 2017-08-01 21:08:43.000000000 +0200
+++ new/lttng-ust-2.10.1/doc/man/tracef.3 2017-11-30 15:58:48.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: tracef
.\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 08/01/2017
+.\" Date: 11/30/2017
.\" Manual: LTTng Manual
-.\" Source: LTTng 2.10.0-
+.\" Source: LTTng 2.10.1
.\" Language: English
.\"
-.TH "TRACEF" "3" "08/01/2017" "LTTng 2\&.10\&.0\-" "LTTng Manual"
+.TH "TRACEF" "3" "11/30/2017" "LTTng 2\&.10\&.1" "LTTng Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/doc/man/tracelog.3 new/lttng-ust-2.10.1/doc/man/tracelog.3
--- old/lttng-ust-2.10.0/doc/man/tracelog.3 2017-08-01 21:08:43.000000000 +0200
+++ new/lttng-ust-2.10.1/doc/man/tracelog.3 2017-11-30 15:58:48.000000000 +0100
@@ -2,12 +2,12 @@
.\" Title: tracelog
.\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 08/01/2017
+.\" Date: 11/30/2017
.\" Manual: LTTng Manual
-.\" Source: LTTng 2.10.0-
+.\" Source: LTTng 2.10.1
.\" Language: English
.\"
-.TH "TRACELOG" "3" "08/01/2017" "LTTng 2\&.10\&.0\-" "LTTng Manual"
+.TH "TRACELOG" "3" "11/30/2017" "LTTng 2\&.10\&.1" "LTTng Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/include/ust-fd.h new/lttng-ust-2.10.1/include/ust-fd.h
--- old/lttng-ust-2.10.0/include/ust-fd.h 2017-07-28 22:58:49.000000000 +0200
+++ new/lttng-ust-2.10.1/include/ust-fd.h 2017-11-08 00:04:26.000000000 +0100
@@ -24,6 +24,8 @@
* These declarations should NOT be considered stable API.
*/
+#include <stdio.h>
+
void lttng_ust_init_fd_tracker(void);
void lttng_ust_add_fd_to_tracker(int fd);
void lttng_ust_delete_fd_from_tracker(int fd);
@@ -31,6 +33,7 @@
void lttng_ust_unlock_fd_tracker(void);
int lttng_ust_safe_close_fd(int fd, int (*close_cb)(int));
+int lttng_ust_safe_fclose_stream(FILE *stream, int (*fclose_cb)(FILE *stream));
int lttng_ust_safe_closefrom_fd(int lowfd, int (*close_cb)(int));
#endif /* _LTTNG_UST_FD_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/liblttng-ust/lttng-ust-elf.c new/lttng-ust-2.10.1/liblttng-ust/lttng-ust-elf.c
--- old/lttng-ust-2.10.0/liblttng-ust/lttng-ust-elf.c 2017-07-28 22:58:49.000000000 +0200
+++ new/lttng-ust-2.10.1/liblttng-ust/lttng-ust-elf.c 2017-11-10 17:21:39.000000000 +0100
@@ -27,6 +27,7 @@
#include <fcntl.h>
#include <unistd.h>
#include <stdbool.h>
+#include <ust-fd.h>
#include "lttng-tracer-core.h"
#define BUF_LEN 4096
@@ -248,15 +249,20 @@
goto error;
}
+
elf->path = strdup(path);
if (!elf->path) {
goto error;
}
+ lttng_ust_lock_fd_tracker();
elf->fd = open(elf->path, O_RDONLY | O_CLOEXEC);
if (elf->fd < 0) {
+ lttng_ust_unlock_fd_tracker();
goto error;
}
+ lttng_ust_add_fd_to_tracker(elf->fd);
+ lttng_ust_unlock_fd_tracker();
if (lttng_ust_read(elf->fd, e_ident, EI_NIDENT) < EI_NIDENT) {
goto error;
@@ -309,16 +315,7 @@
return elf;
error:
- if (elf) {
- free(elf->ehdr);
- if (elf->fd >= 0) {
- if (close(elf->fd)) {
- abort();
- }
- }
- free(elf->path);
- free(elf);
- }
+ lttng_ust_elf_destroy(elf);
return NULL;
}
@@ -339,14 +336,25 @@
*/
void lttng_ust_elf_destroy(struct lttng_ust_elf *elf)
{
+ int ret;
+
if (!elf) {
return;
}
- free(elf->ehdr);
- if (close(elf->fd)) {
- abort();
+ if (elf->fd >= 0) {
+ lttng_ust_lock_fd_tracker();
+ ret = close(elf->fd);
+ if (!ret) {
+ lttng_ust_delete_fd_from_tracker(elf->fd);
+ } else {
+ PERROR("close");
+ abort();
+ }
+ lttng_ust_unlock_fd_tracker();
}
+
+ free(elf->ehdr);
free(elf->path);
free(elf);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/liblttng-ust-comm/lttng-ust-fd-tracker.c new/lttng-ust-2.10.1/liblttng-ust-comm/lttng-ust-fd-tracker.c
--- old/lttng-ust-2.10.0/liblttng-ust-comm/lttng-ust-fd-tracker.c 2017-07-28 22:58:49.000000000 +0200
+++ new/lttng-ust-2.10.1/liblttng-ust-comm/lttng-ust-fd-tracker.c 2017-11-12 20:52:55.000000000 +0100
@@ -34,6 +34,7 @@
#include <pthread.h>
#include <urcu/compiler.h>
#include <urcu/tls-compat.h>
+#include <urcu/system.h>
#include <ust-fd.h>
#include <helper.h>
@@ -71,6 +72,7 @@
static fd_set *lttng_fd_set;
static int lttng_ust_max_fd;
static int num_fd_sets;
+static int init_done;
/*
* Force a read (imply TLS fixup for dlopen) of TLS variables.
@@ -90,6 +92,9 @@
struct rlimit rlim;
int i;
+ if (CMM_LOAD_SHARED(init_done))
+ return;
+
memset(&rlim, 0, sizeof(rlim));
/* Get the current possible max number of fd for this process. */
if (getrlimit(RLIMIT_NOFILE, &rlim) < 0)
@@ -113,6 +118,7 @@
abort();
for (i = 0; i < num_fd_sets; i++)
FD_ZERO((<tng_fd_set[i]));
+ CMM_STORE_SHARED(init_done, 1);
}
void lttng_ust_lock_fd_tracker(void)
@@ -143,6 +149,12 @@
*/
void lttng_ust_add_fd_to_tracker(int fd)
{
+ /*
+ * Ensure the tracker is initialized when called from
+ * constructors.
+ */
+ lttng_ust_init_fd_tracker();
+
assert(URCU_TLS(thread_fd_tracking));
/* Trying to add an fd which we can not accommodate. */
assert(IS_FD_VALID(fd));
@@ -158,6 +170,12 @@
*/
void lttng_ust_delete_fd_from_tracker(int fd)
{
+ /*
+ * Ensure the tracker is initialized when called from
+ * constructors.
+ */
+ lttng_ust_init_fd_tracker();
+
assert(URCU_TLS(thread_fd_tracking));
/* Not a valid fd. */
assert(IS_FD_VALID(fd));
@@ -179,6 +197,12 @@
lttng_ust_fixup_fd_tracker_tls();
/*
+ * Ensure the tracker is initialized when called from
+ * constructors.
+ */
+ lttng_ust_init_fd_tracker();
+
+ /*
* If called from lttng-ust, we directly call close without
* validating whether the FD is part of the tracked set.
*/
@@ -197,6 +221,44 @@
return ret;
}
+/*
+ * Interface allowing applications to close arbitrary streams.
+ * We check if it is owned by lttng-ust, and return -1, errno=EBADF
+ * instead of closing it if it is the case.
+ */
+int lttng_ust_safe_fclose_stream(FILE *stream, int (*fclose_cb)(FILE *stream))
+{
+ int ret = 0, fd;
+
+ lttng_ust_fixup_fd_tracker_tls();
+
+ /*
+ * Ensure the tracker is initialized when called from
+ * constructors.
+ */
+ lttng_ust_init_fd_tracker();
+
+ /*
+ * If called from lttng-ust, we directly call fclose without
+ * validating whether the FD is part of the tracked set.
+ */
+ if (URCU_TLS(thread_fd_tracking))
+ return fclose_cb(stream);
+
+ fd = fileno(stream);
+
+ lttng_ust_lock_fd_tracker();
+ if (IS_FD_VALID(fd) && IS_FD_SET(fd, lttng_fd_set)) {
+ ret = -1;
+ errno = EBADF;
+ } else {
+ ret = fclose_cb(stream);
+ }
+ lttng_ust_unlock_fd_tracker();
+
+ return ret;
+}
+
#ifdef __OpenBSD__
static void set_close_success(int *p)
{
@@ -225,6 +287,12 @@
lttng_ust_fixup_fd_tracker_tls();
+ /*
+ * Ensure the tracker is initialized when called from
+ * constructors.
+ */
+ lttng_ust_init_fd_tracker();
+
if (lowfd < 0) {
/*
* NetBSD return EBADF if fd is invalid.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/liblttng-ust-fd/lttng-ust-fd.c new/lttng-ust-2.10.1/liblttng-ust-fd/lttng-ust-fd.c
--- old/lttng-ust-2.10.0/liblttng-ust-fd/lttng-ust-fd.c 2017-07-28 22:58:49.000000000 +0200
+++ new/lttng-ust-2.10.1/liblttng-ust-fd/lttng-ust-fd.c 2017-11-08 00:04:26.000000000 +0100
@@ -31,6 +31,7 @@
volatile enum ust_loglevel ust_loglevel;
static int (*__lttng_ust_fd_plibc_close)(int fd);
+static int (*__lttng_ust_fd_plibc_fclose)(FILE *stream);
static
int _lttng_ust_fd_libc_close(int fd)
@@ -45,11 +46,35 @@
return lttng_ust_safe_close_fd(fd, __lttng_ust_fd_plibc_close);
}
+static
+int _lttng_ust_fd_libc_fclose(FILE *stream)
+{
+ if (!__lttng_ust_fd_plibc_fclose) {
+ __lttng_ust_fd_plibc_fclose = dlsym(RTLD_NEXT, "fclose");
+ if (!__lttng_ust_fd_plibc_fclose) {
+ fprintf(stderr, "%s\n", dlerror());
+ return -1;
+ }
+ }
+ return lttng_ust_safe_fclose_stream(stream,
+ __lttng_ust_fd_plibc_fclose);
+}
+
int close(int fd)
{
return _lttng_ust_fd_libc_close(fd);
}
+/*
+ * Note: fcloseall() is not an issue because it fcloses only the
+ * streams it knows about, which differs from the problems caused by
+ * gnulib close_stdout(), which does an explicit fclose(stdout).
+ */
+int fclose(FILE *stream)
+{
+ return _lttng_ust_fd_libc_fclose(stream);
+}
+
#if defined(__sun__) || defined(__FreeBSD__)
/* Solaris and FreeBSD. */
void closefrom(int lowfd)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/libringbuffer/shm.c new/lttng-ust-2.10.1/libringbuffer/shm.c
--- old/lttng-ust-2.10.0/libringbuffer/shm.c 2017-07-28 22:58:49.000000000 +0200
+++ new/lttng-ust-2.10.1/libringbuffer/shm.c 2017-11-28 09:47:42.000000000 +0100
@@ -134,6 +134,15 @@
PERROR("ftruncate");
goto error_ftruncate;
}
+ /*
+ * Also ensure the file metadata is synced with the storage by using
+ * fsync(2).
+ */
+ ret = fsync(shmfd);
+ if (ret) {
+ PERROR("fsync");
+ goto error_fsync;
+ }
obj->shm_fd_ownership = 0;
obj->shm_fd = shmfd;
@@ -153,6 +162,7 @@
return obj;
error_mmap:
+error_fsync:
error_ftruncate:
error_zero_file:
error_fcntl:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/python-lttngust/lttngust/loghandler.py new/lttng-ust-2.10.1/python-lttngust/lttngust/loghandler.py
--- old/lttng-ust-2.10.0/python-lttngust/lttngust/loghandler.py 2017-06-15 17:04:16.000000000 +0200
+++ new/lttng-ust-2.10.1/python-lttngust/lttngust/loghandler.py 2017-11-21 17:45:49.000000000 +0100
@@ -22,7 +22,7 @@
class _Handler(logging.Handler):
- _LIB_NAME = 'liblttng-ust-python-agent.so'
+ _LIB_NAME = 'liblttng-ust-python-agent.so.0'
def __init__(self):
super(self.__class__, self).__init__(level=logging.NOTSET)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-ust-2.10.0/tools/lttng-gen-tp new/lttng-ust-2.10.1/tools/lttng-gen-tp
--- old/lttng-ust-2.10.0/tools/lttng-gen-tp 2017-06-15 17:04:16.000000000 +0200
+++ new/lttng-ust-2.10.1/tools/lttng-gen-tp 2017-11-28 09:47:42.000000000 +0100
@@ -79,7 +79,9 @@
def write(self):
outputFile = open(self.outputFilename,"w")
- headerFilename = self.outputFilename.replace(".c",".h")
+ headerFilename = self.outputFilename
+ if headerFilename.endswith(".c"):
+ headerFilename = headerFilename[:-2] + ".h"
outputFile.write(CFile.FILE_TPL.format(
headerFilename = headerFilename))
@@ -126,7 +128,10 @@
return cc
def write(self):
- cFilename = self.outputFilename.replace(".o",".c")
+ cFilename = self.outputFilename
+ if cFilename.endswith(".o"):
+ cFilename = cFilename[:-2] + ".c"
+
cc = self._detectCC()
if cc == "":
raise RuntimeError("No C Compiler detected")
1
0
Hello community,
here is the log from the commit of package libqt5-qtbase for openSUSE:Factory checked in at 2018-01-02 16:32:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtbase (Old)
and /work/SRC/openSUSE:Factory/.libqt5-qtbase.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtbase"
Tue Jan 2 16:32:51 2018 rev:72 rq:560601 version:5.10.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libqt5-qtbase/libqt5-qtbase.changes 2017-12-23 12:15:53.318108733 +0100
+++ /work/SRC/openSUSE:Factory/.libqt5-qtbase.new/libqt5-qtbase.changes 2018-01-02 16:32:55.053895202 +0100
@@ -1,0 +2,6 @@
+Fri Dec 29 18:19:46 UTC 2017 - fabian(a)ritter-vogt.de
+
+- Add patch to fix crash if X RanR is not present (boo#1073572):
+ * 0001-xcb-verify-if-xrandr-present-before-using-xcb_randr-.patch
+
+-------------------------------------------------------------------
New:
----
0001-xcb-verify-if-xrandr-present-before-using-xcb_randr-.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libqt5-qtbase.spec ++++++
--- /var/tmp/diff_new_pack.ZobT5j/_old 2018-01-02 16:32:57.784984468 +0100
+++ /var/tmp/diff_new_pack.ZobT5j/_new 2018-01-02 16:32:57.788983135 +0100
@@ -66,6 +66,7 @@
# PATCH-FIX-UPSTREAM
Patch17: qapplication-emit-palettechanged.patch
# patches 1000- 2000 and above from upstream 5.10 branch #
+Patch1000: 0001-xcb-verify-if-xrandr-present-before-using-xcb_randr-.patch
# patches 2000-3000 and above from upstream 5.11/dev branch #
Patch2000: 0001-Remove-QPrintDialogPrivate-applyPrinterProperties-no.patch
Patch2001: 0002-Remove-QUnixPrintWidgetPrivate-applyPrinterPropertie.patch
@@ -170,6 +171,7 @@
%patch12 -p1
%patch15 -p1
%patch17 -p1
+%patch1000 -p1
%patch2000 -p1
%patch2001 -p1
%patch2002 -p1
++++++ 0001-xcb-verify-if-xrandr-present-before-using-xcb_randr-.patch ++++++
>From 79d78d814acad4e183e281aea9b131f396abe3fb Mon Sep 17 00:00:00 2001
From: Gatis Paeglis <gatis.paeglis(a)qt.io>
Date: Thu, 7 Dec 2017 11:49:49 +0100
Subject: [PATCH] xcb: verify if xrandr present before using xcb_randr* APIs
Not doing so might break the connection. We have had similar
issues before, e.g. QTBUG-45312.
Change-Id: I95f15d24773fc92b052578bd72d1ba264d0a5f63
Reviewed-by: Laszlo Agocs <laszlo.agocs(a)qt.io>
Reviewed-by: Uli Schlachter <psychon(a)znc.in>
---
src/plugins/platforms/xcb/qxcbscreen.cpp | 35 +++++++++++++++++++++-----------
1 file changed, 23 insertions(+), 12 deletions(-)
diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
index ec0f9ba561..67c96b2d80 100644
--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp
@@ -446,17 +446,24 @@ QXcbScreen::QXcbScreen(QXcbConnection *connection, QXcbVirtualDesktop *virtualDe
m_cursor = new QXcbCursor(connection, this);
- // Parse EDID
- if (m_edid.parse(getEdid()))
- qCDebug(lcQpaScreen, "EDID data for output \"%s\": identifier '%s', manufacturer '%s', model '%s', serial '%s', physical size: %.2fx%.2f",
- name().toLatin1().constData(),
- m_edid.identifier.toLatin1().constData(),
- m_edid.manufacturer.toLatin1().constData(),
- m_edid.model.toLatin1().constData(),
- m_edid.serialNumber.toLatin1().constData(),
- m_edid.physicalSize.width(), m_edid.physicalSize.height());
- else
- qCDebug(lcQpaScreen) << "Failed to parse EDID data for output" << name(); // keep this debug, not warning
+ if (connection->hasXRandr()) { // Parse EDID
+ QByteArray edid = getEdid();
+ if (m_edid.parse(edid)) {
+ qCDebug(lcQpaScreen, "EDID data for output \"%s\": identifier '%s', manufacturer '%s',"
+ "model '%s', serial '%s', physical size: %.2fx%.2f",
+ name().toLatin1().constData(),
+ m_edid.identifier.toLatin1().constData(),
+ m_edid.manufacturer.toLatin1().constData(),
+ m_edid.model.toLatin1().constData(),
+ m_edid.serialNumber.toLatin1().constData(),
+ m_edid.physicalSize.width(), m_edid.physicalSize.height());
+ } else {
+ // This property is defined by the xrandr spec. Parsing failure indicates a valid error,
+ // but keep this as debug, for details see 4f515815efc318ddc909a0399b71b8a684962f38.
+ qCDebug(lcQpaScreen) << "Failed to parse EDID data for output" << name() <<
+ "edid data: " << edid;
+ }
+ }
}
QXcbScreen::~QXcbScreen()
@@ -899,9 +906,13 @@ QByteArray QXcbScreen::getOutputProperty(xcb_atom_t atom) const
QByteArray QXcbScreen::getEdid() const
{
+ QByteArray result;
+ if (!connection()->hasXRandr())
+ return result;
+
// Try a bunch of atoms
xcb_atom_t atom = connection()->internAtom("EDID");
- QByteArray result = getOutputProperty(atom);
+ result = getOutputProperty(atom);
if (result.isEmpty()) {
atom = connection()->internAtom("EDID_DATA");
result = getOutputProperty(atom);
--
2.15.0
1
0
Hello community,
here is the log from the commit of package liferea for openSUSE:Factory checked in at 2018-01-02 16:32:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/liferea (Old)
and /work/SRC/openSUSE:Factory/.liferea.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "liferea"
Tue Jan 2 16:32:43 2018 rev:83 rq:560581 version:1.12.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/liferea/liferea.changes 2017-06-30 18:39:34.881598664 +0200
+++ /work/SRC/openSUSE:Factory/.liferea.new/liferea.changes 2018-01-02 16:32:47.424439386 +0100
@@ -1,0 +2,33 @@
+Thu Dec 28 18:21:54 UTC 2017 - zaitor(a)opensuse.org
+
+- Update to version 1.12.1:
+ + Fix Lintian spelling errors.
+ + Appstream data has new format.
+ + Fix doesn't remember some sort orders.
+ + Fix assertions/crashes on changing view layouts.
+ + Workaround to avoid GtkPaned shrinking.
+ + Updated translations.
+- Changes from version 1.12.0:
+ + Fixes unhiding from tray icon when activated via GApplication.
+ + Reorder columns in 'Normal' email-like view to have the date
+ column always at the end.
+ + Add plugin to make unread feeds titles bold.
+ + Workaround Liferea deanonymize Tor.
+ + Resize both panes in normal and wide view.
+ + Toggle_visibility() does not make a minimized window visible
+ again.
+ + Segfault when switching feed in combined view.
+ + Handling of relative URLs in Atom parser.
+ + Added 'View Image' context menu option in HTML view.
+ + Dropped del.icio.us from social bookmarking options as it is a
+ read-only service now.
+ + Redesign of the wide view mode: larger titles with small text
+ teasers.
+ + Added optional AMP/HTML5 content enrichment feature.
+ + Updated translations.
+- Conditionalize handling of desktop_database_post(un),
+ icon_theme_cache_post(un) and glib2_gsettings_schema_postun in
+ post(un) to only apply for old versions of openSUSE.
+- Clean up spec, drop obsolete clean section.
+
+-------------------------------------------------------------------
Old:
----
liferea-1.12-rc3.tar.bz2
New:
----
liferea-1.12.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ liferea.spec ++++++
--- /var/tmp/diff_new_pack.Nqjgo2/_old 2018-01-02 16:32:49.135868679 +0100
+++ /var/tmp/diff_new_pack.Nqjgo2/_new 2018-01-02 16:32:49.139867345 +0100
@@ -17,16 +17,16 @@
Name: liferea
-Version: 1.12~rc3
+Version: 1.12.1
Release: 0
Summary: Linux Feed Reader
License: GPL-2.0
Group: Productivity/Other
Url: http://liferea.sourceforge.net/
-Source0: https://github.com/lwindolf/liferea/releases/download/v1.12-rc3/liferea-1.1…
-#Source: https://github.com/lwindolf/liferea/releases/download/v%%{version}/%%{name}…
+Source0: https://github.com/lwindolf/liferea/releases/download/v%{version}/%{name}-%…
# PATCH-FEATURE-OPENSUSE liferea-opensuse-feeds.patch -- Add openSUSE feeds to default feeds
Patch0: liferea-opensuse-feeds.patch
+
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: intltool >= 0.40.0
@@ -47,7 +47,6 @@
BuildRequires: pkgconfig(webkit2gtk-4.0)
Requires: dbus-1 >= 0.30
Recommends: %{name}-lang
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Liferea is an abbreviation for Linux Feed Reader. It is a news
@@ -59,9 +58,9 @@
news aggregator for GTK and GNOME.
%lang_package
+
%prep
-#%%setup -q -n %%{name}-%%{version}
-%setup -q -n %{name}-1.12-rc3
+%setup -q
%patch0
%build
@@ -77,9 +76,7 @@
rm doc/html/Makefile*
%fdupes %{buildroot}
-%clean
-rm -rf %{buildroot}
-
+%if 0%{?suse_version} < 1500
%post
%desktop_database_post
%icon_theme_cache_post
@@ -89,9 +86,9 @@
%desktop_database_postun
%icon_theme_cache_postun
%glib2_gsettings_schema_postun
+%endif
%files
-%defattr(-, root, root)
%doc AUTHORS COPYING ChangeLog
%{_bindir}/liferea
%{_bindir}/liferea-add-feed
++++++ liferea-1.12-rc3.tar.bz2 -> liferea-1.12.1.tar.bz2 ++++++
++++ 50741 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gtk3 for openSUSE:Factory checked in at 2018-01-02 16:32:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gtk3 (Old)
and /work/SRC/openSUSE:Factory/.gtk3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtk3"
Tue Jan 2 16:32:32 2018 rev:123 rq:560578 version:3.22.26
Changes:
--------
--- /work/SRC/openSUSE:Factory/gtk3/gtk3.changes 2017-11-30 16:31:30.890951183 +0100
+++ /work/SRC/openSUSE:Factory/.gtk3.new/gtk3.changes 2018-01-02 16:32:39.635036905 +0100
@@ -1,0 +2,5 @@
+Fri Dec 29 00:02:31 UTC 2017 - jengelh(a)inai.de
+
+- Sync summaries with gtk4.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gtk3.spec ++++++
--- /var/tmp/diff_new_pack.tGoHC7/_old 2018-01-02 16:32:40.658695548 +0100
+++ /var/tmp/diff_new_pack.tGoHC7/_new 2018-01-02 16:32:40.662694215 +0100
@@ -33,7 +33,7 @@
Release: 0
Summary: The GTK+ toolkit library (version 3)
License: LGPL-2.1+
-Group: System/Libraries
+Group: Development/Libraries/X11
Url: http://www.gtk.org/
Source: http://download.gnome.org/sources/gtk+/3.22/%{_name}-%{version}.tar.xz
Source1: README.SUSE
@@ -139,7 +139,7 @@
ranging from small one-off projects to complete application suites.
%package -n typelib-1_0-Gtk-3_0
-Summary: The GTK+ toolkit library (version 3) -- Introspection bindings
+Summary: Introspection bindings for the GTK+ toolkit library (version 3)
Group: System/Libraries
%description -n typelib-1_0-Gtk-3_0
@@ -150,7 +150,7 @@
This package provides the GObject Introspection bindings for GTK+.
%package immodule-amharic
-Summary: The GTK+ toolkit library (version 3) -- Amharic Input Method
+Summary: Amharic input method for the GTK+ toolkit library v3
Group: System/Libraries
Requires: %{name} = %{version}
Requires(post): %{name}-tools
@@ -165,7 +165,7 @@
This package provides an input method for Amharic.
%package immodule-broadway
-Summary: The GTK+ toolkit library (version 3) -- Broadway Input Method
+Summary: Broadway input method for the GTK+ toolkit library v3
Group: System/Libraries
Requires: %{name} = %{version}
Requires(post): %{name}-tools
@@ -179,7 +179,7 @@
This package provides an input method for Broadway.
%package immodule-inuktitut
-Summary: The GTK+ toolkit library (version 3) -- Inuktitut Input Method
+Summary: Inuktitut input method for the GTK+ toolkit library v3
Group: System/Libraries
Requires: %{name} = %{version}
Requires(post): %{name}-tools
@@ -194,7 +194,7 @@
This package provides an input method for Inuktitut.
%package immodule-multipress
-Summary: The GTK+ toolkit library (version 3) -- Multipress Input Method
+Summary: Multipress input method for the GTK+ toolkit library v3
Group: System/Libraries
Requires: %{name} = %{version}
Requires(post): %{name}-tools
@@ -209,7 +209,7 @@
multi-press method, as on a mobile phone.
%package immodule-thai
-Summary: The GTK+ toolkit library (version 3) -- Thai-Lao Input Method
+Summary: Thai-Lao input method for the GTK+ toolkit library v3
Group: System/Libraries
Requires: %{name} = %{version}
Requires(post): %{name}-tools
@@ -225,7 +225,7 @@
This package provides an input method for Thai-Lao.
%package immodules-tigrigna
-Summary: The GTK+ toolkit library (version 3) -- Tigrigna Input Methods
+Summary: Tigrigna input method for the GTK+ toolkit library v3
Group: System/Libraries
Requires: %{name} = %{version}
Requires(post): %{name}-tools
@@ -240,7 +240,7 @@
This package provides two input methods for Tigrigna.
%package immodule-vietnamese
-Summary: The GTK+ toolkit library (version 3) -- Vietnamese Input Method
+Summary: Vietnamese input method for the GTK+ toolkit library v3
Group: System/Libraries
Requires: %{name} = %{version}
Requires(post): %{name}-tools
@@ -255,7 +255,7 @@
This package provides an input method for Vietnamese.
%package immodule-xim
-Summary: The GTK+ toolkit library (version 3) -- X Input Method
+Summary: X input method for the GTK+ toolkit library v3
Group: System/Libraries
Requires: %{name} = %{version}
Requires(post): %{name}-tools
@@ -273,7 +273,7 @@
This package provides an input method based on the X Input Method.
%package tools
-Summary: The GTK+ toolkit library (version 3) -- Tools
+Summary: Auxiliary utilities for the GTK+ toolkit library v3
Group: System/Libraries
Requires(post): update-alternatives
Requires(postun): update-alternatives
@@ -284,7 +284,7 @@
ranging from small one-off projects to complete application suites.
%package data
-Summary: The GTK+ toolkit library (version 3) -- Data Files
+Summary: Data files for the GTK+ toolkit library v3
Group: System/Libraries
BuildArch: noarch
@@ -294,7 +294,7 @@
ranging from small one-off projects to complete application suites.
%package schema
-Summary: The GTK+ toolkit library (version 3) -- Config schema
+Summary: Config schema for the GTK+ toolkit library v3
Group: System/Libraries
BuildArch: noarch
%glib2_gsettings_schema_requires
@@ -305,7 +305,7 @@
ranging from small one-off projects to complete application suites.
%package branding-upstream
-Summary: The GTK+ toolkit library (version 3) -- Upstream theme configuration
+Summary: Upstream theme configuration for the GTK+ toolkit library v3
Group: System/Libraries
Requires: libgtk-3-0 = %{version}
Provides: %{name}-branding = %{version}
@@ -326,7 +326,7 @@
icon themes.
%package devel
-Summary: The GTK+ toolkit library (version 3) -- Development Files
+Summary: Development files for the GTK+ toolkit library v3
Group: Development/Libraries/X11
Requires: gettext-its-%{name} >= %{version}
Requires: libgtk-3-0 = %{version}
@@ -389,10 +389,10 @@
--enable-explicit-deps=yes \
%endif
--enable-colord
-%{__make} %{?_smp_mflags}
+make %{?_smp_mflags}
%install
-%makeinstall
+%make_install
find %{buildroot}%{_libdir} -name '*.la' -delete -print
# Do not install the exampleapp glib schema, as the app itself is noinst
rm %{buildroot}%{_datadir}/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml
1
0
Hello community,
here is the log from the commit of package mariadb for openSUSE:Factory checked in at 2018-01-02 16:32:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mariadb (Old)
and /work/SRC/openSUSE:Factory/.mariadb.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mariadb"
Tue Jan 2 16:32:18 2018 rev:63 rq:559491 version:10.2.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/mariadb/mariadb.changes 2017-12-06 08:56:03.706535953 +0100
+++ /work/SRC/openSUSE:Factory/.mariadb.new/mariadb.changes 2018-01-02 16:32:27.031239869 +0100
@@ -1,0 +2,9 @@
+Thu Dec 21 12:42:28 UTC 2017 - dimstar(a)opensuse.org
+
+- Do not manually delete
+ %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something:
+ The file is listed as ghost and thus properly owned by the
+ package.
+- Use %tmpfiles_create which can cope with transactional updates.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mariadb.spec ++++++
--- /var/tmp/diff_new_pack.GCATUt/_old 2018-01-02 16:32:30.134205129 +0100
+++ /var/tmp/diff_new_pack.GCATUt/_new 2018-01-02 16:32:30.138203796 +0100
@@ -673,15 +673,12 @@
%post
%service_add_post mysql.service
-# Use %%tmpfiles_create when 13.2 is oldest in support scope
-%{_bindir}/systemd-tmpfiles --create %{_tmpfilesdir}/mysql.conf || :
+%tmpfiles_create %{_tmpfilesdir}/mysql.conf
# SLE11 Migration support
for i in protected tmp; do
rmdir "$datadir"/.$i 2>/dev/null || :
done
-# Remove any messages that could've been in place about the upgrade
-rm -f %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something
# During package rename (migration maria->mysql-community-server),
# there might be config file move and we get rpmsave that we should keep
@@ -735,8 +732,6 @@
%postun
%service_del_postun mysql.service
-# Remove the /var/adm updatemsg that was hand-created and thus not on filelist
-rm -f %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something
%post -n libmysqld%{soname} -p /sbin/ldconfig
%postun -n libmysqld%{soname} -p /sbin/ldconfig
1
0
Hello community,
here is the log from the commit of package python-rpm-macros for openSUSE:Factory checked in at 2018-01-02 16:32:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-rpm-macros (Old)
and /work/SRC/openSUSE:Factory/.python-rpm-macros.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-rpm-macros"
Tue Jan 2 16:32:07 2018 rev:11 rq:559401 version:2017.12.22.d9968ab
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-rpm-macros/python-rpm-macros.changes 2017-12-10 18:15:06.757860192 +0100
+++ /work/SRC/openSUSE:Factory/.python-rpm-macros.new/python-rpm-macros.changes 2018-01-02 16:32:12.628042867 +0100
@@ -1,0 +2,6 @@
+Fri Dec 22 15:57:10 UTC 2017 - jmatejek(a)suse.com
+
+- version bump to 2017.12.22.d9968ab
+ * better fix for macro usage in rpm 4.14
+
+-------------------------------------------------------------------
Old:
----
python-rpm-macros-2017.12.07.9d4e9eb.tar.bz2
New:
----
python-rpm-macros-2017.12.22.d9968ab.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-rpm-macros.spec ++++++
--- /var/tmp/diff_new_pack.yiEszj/_old 2018-01-02 16:32:13.695686843 +0100
+++ /var/tmp/diff_new_pack.yiEszj/_new 2018-01-02 16:32:13.695686843 +0100
@@ -17,7 +17,7 @@
Name: python-rpm-macros
-Version: 2017.12.07.9d4e9eb
+Version: 2017.12.22.d9968ab
Release: 0
Summary: RPM macros for building of Python modules
License: WTFPL
++++++ python-rpm-macros-2017.12.07.9d4e9eb.tar.bz2 -> python-rpm-macros-2017.12.22.d9968ab.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-rpm-macros-2017.12.07.9d4e9eb/macros.lua new/python-rpm-macros-2017.12.22.d9968ab/macros.lua
--- old/python-rpm-macros-2017.12.07.9d4e9eb/macros.lua 2017-12-07 20:46:04.000000000 +0100
+++ new/python-rpm-macros-2017.12.22.d9968ab/macros.lua 2017-12-22 16:56:41.000000000 +0100
@@ -386,12 +386,12 @@
rpm.define("python_flavor " .. original_flavor)
end
-function python_exec(+)
+function python_exec(+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-=)
local args = rpm.expand("%**")
print(rpm.expand("%{python_expand %__$python " .. args .. "}"))
end
-function python_expand(+)
+function python_expand(+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-=)
-- force spec scan
rpm.expand("%_python_macro_init")
local args = rpm.expand("%**")
@@ -403,14 +403,14 @@
end
end
-function python_build(+)
+function python_build(+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-=)
rpm.expand("%_python_macro_init")
for _, python in ipairs(pythons) do
print(rpm.expand("%" .. python .. "_build %**"))
end
end
-function python_install(+)
+function python_install(+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-=)
rpm.expand("%_python_macro_init")
for _, python in ipairs(pythons) do
print(rpm.expand("%" .. python .. "_install %**"))
1
0