openSUSE Commits
Threads by month
- ----- 2024 -----
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2016
- 1 participants
- 1523 discussions
Hello community,
here is the log from the commit of package linuxrc for openSUSE:Factory checked in at 2016-01-30 11:34:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/linuxrc (Old)
and /work/SRC/openSUSE:Factory/.linuxrc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "linuxrc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/linuxrc/linuxrc.changes 2016-01-21 23:41:34.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.linuxrc.new/linuxrc.changes 2016-01-30 11:34:39.000000000 +0100
@@ -1,0 +2,19 @@
+Thu Jan 28 10:00:17 UTC 2016 - snwint(a)suse.com
+
+- ensure we activate the correct interface when using vlan
+- fix routing config when using vlan (bsc#961624)
+- 5.0.68
+
+-------------------------------------------------------------------
+Wed Jan 27 09:05:17 UTC 2016 - snwint(a)suse.com
+
+- Modified file.c to only accept valid types of OsaInterface (bsc#937437)
+- 5.0.67
+
+-------------------------------------------------------------------
+Tue Jan 26 11:00:19 UTC 2016 - snwint(a)suse.com
+
+- documented linuxrc/yast interface
+- 5.0.66
+
+-------------------------------------------------------------------
Old:
----
linuxrc-5.0.65.tar.xz
New:
----
linuxrc-5.0.68.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ linuxrc.spec ++++++
--- /var/tmp/diff_new_pack.KNSZj7/_old 2016-01-30 11:34:40.000000000 +0100
+++ /var/tmp/diff_new_pack.KNSZj7/_new 2016-01-30 11:34:40.000000000 +0100
@@ -25,7 +25,7 @@
Summary: SUSE Installation Program
License: GPL-3.0+
Group: System/Boot
-Version: 5.0.65
+Version: 5.0.68
Release: 0
Source: %{name}-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ linuxrc-5.0.65.tar.xz -> linuxrc-5.0.68.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-5.0.65/VERSION new/linuxrc-5.0.68/VERSION
--- old/linuxrc-5.0.65/VERSION 2016-01-19 09:57:06.000000000 +0100
+++ new/linuxrc-5.0.68/VERSION 2016-01-28 10:56:46.000000000 +0100
@@ -1 +1 @@
-5.0.65
+5.0.68
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-5.0.65/changelog new/linuxrc-5.0.68/changelog
--- old/linuxrc-5.0.65/changelog 2016-01-19 09:57:06.000000000 +0100
+++ new/linuxrc-5.0.68/changelog 2016-01-28 10:56:46.000000000 +0100
@@ -1,3 +1,13 @@
+2016-01-25: 5.0.68
+ - ensure we activate the correct interface when using vlan
+ - fix routing config when using vlan (bsc #961624)
+
+2016-01-25: 5.0.67
+ - Modified file.c to only accept valid types of OsaInterface (bsc #937437)
+
+2016-01-26: 5.0.66
+ - documented linuxrc/yast interface
+
2016-01-19: 5.0.65
- squashfs.ko might depend on lz4_decompress (bsc #962493)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-5.0.65/file.c new/linuxrc-5.0.68/file.c
--- old/linuxrc-5.0.65/file.c 2016-01-19 09:57:06.000000000 +0100
+++ new/linuxrc-5.0.68/file.c 2016-01-28 10:56:46.000000000 +0100
@@ -1235,7 +1235,14 @@
if(f->is.numeric) config.hwp.protocol = f->nvalue + 1;
break;
case key_osainterface:
- if(*f->value) config.hwp.interface=file_sym2num(f->value);
+ if(*f->value) {
+ config.hwp.interface=file_sym2num(f->value);
+ if(config.hwp.interface != di_osa_lcs &&
+ config.hwp.interface != di_osa_qdio) {
+ log_show("\n*** The OsaInterface type of \"%s\" is not valid. Ignoring it.\n", f->value);
+ config.hwp.interface=0;
+ }
+ }
break;
/*
* The layer2 attribute is handled specially. We use IFNOTAUTO later on in net.c,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-5.0.65/linuxrc_yast_interface.txt new/linuxrc-5.0.68/linuxrc_yast_interface.txt
--- old/linuxrc-5.0.65/linuxrc_yast_interface.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/linuxrc-5.0.68/linuxrc_yast_interface.txt 2016-01-28 10:56:46.000000000 +0100
@@ -0,0 +1,301 @@
+linuxrc - yast interface
+========================
+
+linuxrc communicates with yast via two files:
+
+(1) /etc/install.inf
+ This file is written before linuxrc starts yast and contains a number of
+ variable settings in a 'key: value' (one per line) format.
+ yast is quite picky when parsing this file and makes e.g. a difference
+ between a missing key and a key set to 0.
+
+(2) /etc/yast.inf
+ This file is written by yast when it exits and tells linuxrc what it should
+ do or whether there was some error.
+ Entries are also in a 'key: value' format.
+
+
+*** Note ***
+
+ This document describes the settings in both file from a developer's
+ perspective. At some places, I've added some additional remarks between
+ dashes ('-') when something needs further clarification.
+
+ This covers the current situation (master branch in git). In the past
+ linuxrc used to put also a number of network config settings into
+ install.inf, but this is no longer the case.
+
+
+= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
+
+yast.inf
+--------
+
+# char* config.new_root
+# int config.restart_method
+# action, linuxrc should take
+# if device, it's put into config.new_root and we chroot there and start
+# else, set config.restart_method: reboot = 1, halt = 2, kexec = 3
+# - I think yast never puts a device here -
+Root: reboot|halt|kexec|<device to start from>
+
+# char* config.keymap
+# load keymap
+# if set, takes the keyboard setting from yast
+# - unused by yast? -
+Keytable: %s
+
+# config.language = set_langidbyname(char*)
+# set language
+# if set, takes the lang setting from yast
+# - unused by yast? -
+Language: %s
+
+# int config.rebootmsg
+# - obsolete -
+# that's really an obscue feature showing a popup asking the user to
+# remove CD or floppy when the machine is about to reboot
+RebootMsg: %d
+
+# int config.aborted
+# != 0 indicates to linuxrc that yast bas been (deliberately) aborted
+# linuxrc then shows no error message
+Aborted: %d
+
+
+*** Note ***
+
+ (1) at least 'Root' || 'Aborted' should be set
+
+ (2) linuxrc also checks the yast exit code
+
+ (3) Keytable and Language _can_ be set (don't know if they still are) to
+ tell linuxrc the current settings. linuxrc in turn will pass them on via
+ install.inf in case the user runs yast again. linuxrc itself does not care
+ about the Language setting (no translations any longer).
+
+
+= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
+
+install.inf
+-----------
+
+# if != 0, linuxrc was in manual mode
+# (yes, it can be > 1)
+# - only s390x people seem to use manual mode regularly (because they
+# strictly do what's documented); I would question that yast2 working specially
+# when manual mode was active [showing extra dialogs] is still justified) -
+Manual: %d
+
+# the current locale (default to en_US)
+Locale: %s
+
+# console keyboard mapping, if linuxrc did change it (e.g. de-latin1-nodeadkeys)
+# else the entry is missing
+Keytable: %s
+
+# console device name if it's a serial line (e.g. /dev/ttyS0)
+# else the entry is missing
+Console: %s
+
+# 0 or 1, indicating that linuxrc left the install repo mounted at /var/adm/mount
+# - does it really matter? yast unmounts the repo anyway at startup, or not? -
+Sourcemounted: %s
+
+# the install repo location in URI form
+# - that was used sometime in the past, I think it's obsolete -
+# the relevant entry is ZyppRepoURL
+RepoURL: %s
+
+# the install repo location in URI form for libzypp
+ZyppRepoURL: %s
+
+# whether to verify ssl certificates
+# Use boot option ssl.certs=0 to get this.
+# In some (test) setups it's useful to disable the checks.
+# The entry is missing (there's no 'ssl_verify: yes' or so) if cert checks
+# are active (the default).
+ssl_verify: no
+
+# the repo device/partition for a local install, without leading '/dev/'
+# e.g. disk/by-id/ata-WDC_WD10EARS-00Y4B2_WD-WCAV587297-part2
+# missing for a network install
+# - obsolete, go for ZyppRepoURL -
+Device: %s
+
+# proxy setting, if any was specified
+# else the entry is missing
+ProxyURL: %s
+
+# the hostname as set by dhcp or by 'hostname=foo' boot option
+# entry is missing if unset
+Hostname: %s
+
+# URL for registration server, use 'regurl' boot option to set
+# fate#303335
+# entry is missing if unset
+# - code for this is at a strange place in linuxrc, should be moved -
+regurl: %s
+
+# certificates for registration server, use 'regcert' boot option to set
+# fate#303335
+# entry is missing if unset
+# - code for this is at a strange place in linuxrc, should be moved -
+regcert: %s
+
+# URL for uploadeing supportconfig data, use 'supporturl' boot option to set
+# fate#305180
+# entry is missing if unset
+# - code for this is at a strange place in linuxrc, should be moved -
+supporturl: %s
+
+# list of modules, separated by spaces (e.g.: scsi_dh st sg) that
+# were needed to activate the hardware so far
+InitrdModules: %s
+
+# for each module in InitrdModules that was loaded using special parameters,
+# list module followed by parameter string
+# e.g.: foo xxx=1 bar=5
+# there's a separate 'Options' line for each such module
+Options: %s
+
+# if(config.restart_method)
+# - obsolete - (technically impossible to actually see this entry)
+Reboot: Reboot|Halt|kexec
+
+# set via 'loghost' boot option
+# entry is missing if unset
+# - this is unused by linuxrc and just passed on -
+LogHost: %s
+
+# this entry is always there
+# - makes no sense, can we get rid of it? -
+Keyboard: 1
+
+# base dir where we look for driver updates
+# e.g. /linux/suse/x86_64-13.2
+# entry is always defined
+UpdateDir: %s
+
+# a driver update has been used
+# - obsolete? -
+YaST2update: 0|1
+
+# 1: yast should run in text mode (ncurses)
+Textmode: 0|1
+
+# autoyast URL
+# entry is missing if unset
+AutoYaST: %s
+
+# free memory in kiB
+MemFree: %d
+
+# 1: do a VNC install
+VNC: 0|1
+
+# VNC password
+# entry is missing if unset
+VNCPassword: %s
+
+# IP or DISPLAY var to use for X11 connection
+# e.g. 10.0.0.1 or 10.10.0.1:2
+# (at least I _think_ the ':port' notation is allowed in recent yast versions)
+# this is basically used only on s390x
+# entry is missing if unset
+Display_IP: %s
+
+# 1: yast is accessed via SSH
+# see also 'SSHD' below
+UseSSH: 0|1
+
+# 1: an SSH server should be started
+# see also 'UseSSH' above
+# note: up to SLE12/oS13.2 there was only 'UseSSH' implicitly starting sshd;
+# now both have been logically separated and you can get sshd running without
+# forcing yast into ssh mode (useful for debugging)
+SSHD: 0|1
+
+# 1: don't start any shells on some consoles during installation (security considerations)
+# entry is missing if unset (0)
+NoShell: 1
+
+# build ID of initrd
+# I can't think of any use for this
+# - obsolete? -
+# entry is missing if unset
+InitrdID: %s
+
+# build Id of inst-sys
+# I can't think of any use for this
+# - obsolete? -
+# entry is missing if unset
+InstsysID: %s
+
+# 1: activate iscsi config dialogs
+# the value is auto-detected and can be overridden with 'withiscsi' boot option
+WithiSCSI: 0|1
+
+# 1: activate fcoe config dialogs
+# the value is auto-detected and can be overridden with 'withfcoe' boot option
+WithFCoE: 0|1
+
+# 1: start shell before and after running yast (for debugging)
+StartShell: %d
+
+# value of the 'y2gdb' boot option, just passed on to yast
+# no idea if that is still used by yast
+# - obsolete? -
+Y2GDB: 0|1
+
+# value of 'kexecreboot' boot option, just passed on to yast
+# (boot installed system using kexec, default = 1)
+kexec_reboot: 0|1
+
+# 1: configure as an EFI system
+# the value is auto-detected and can be overridden with 'efi' boot option
+EFI: %d
+
+# 1: yast should do an upgrade
+# entry is missing if unset (0)
+Upgrade: 1
+
+# set via 'rootpassword' boot option
+# if set to 'ask', linuxrc will show a dialog asking for a password
+# this should be used a temporary root password for the target system
+# - ??? is this really used ??? -
+# entry is missing if unset
+RootPassword: %s
+
+# set via 'brokenmodules' boot option
+# comma(,)-separated list of modules that must not be loaded
+# - is this actually used by yast? -
+# entry is missing if unset
+BrokenModules: %s
+
+# braille device tyde (e.g. ht30)
+# - still used? -
+# entry is missing if 'Brailledevice' is unset
+Braille: %s
+
+# device braille line is connected to
+# - still used? -
+# entry is missing if unset
+Brailledevice: %s
+
+# any options mentioned in the 'ptoptions' boot option that were set
+# please check https://en.opensuse.org/SDB:Linuxrc#p_ptoptions for some explanation
+# e.g.:
+FOO: %s
+
+# any boot options linuxrc didn't handle and that should probably
+# be kept for the target system boot config
+# entry is missing if unset
+Cmdline: %s
+
+
+*** Note ***
+
+ There may be some more entries in install.inf but they are put there by
+ some inst-sys scripts and not linuxrc.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/linuxrc-5.0.65/net.c new/linuxrc-5.0.68/net.c
--- old/linuxrc-5.0.65/net.c 2016-01-19 09:57:06.000000000 +0100
+++ new/linuxrc-5.0.68/net.c 2016-01-28 10:56:46.000000000 +0100
@@ -259,7 +259,15 @@
return 1;
}
- net_wicked_up(config.ifcfg.manual->device);
+ char *ifname = NULL;
+
+ str_copy(&ifname, config.ifcfg.manual->device);
+
+ if(config.ifcfg.manual->vlan) strprintf(&ifname, "%s.%s", ifname, config.ifcfg.manual->vlan);
+
+ net_wicked_up(ifname);
+
+ str_copy(&ifname, NULL);
return 0;
}
@@ -1176,16 +1184,24 @@
strprintf(&ifcfg->type, "dhcp%s", type);
ifcfg->flags = config.ifcfg.manual->flags;
+ str_copy(&ifcfg->vlan, config.ifcfg.manual->vlan);
cfg_ok = ifcfg_write(device, ifcfg, 0);
free(ifcfg->type);
+ free(ifcfg->vlan);
free(ifcfg);
ifcfg = NULL;
if(!cfg_ok) return;
- strprintf(&buf, "Sending DHCP%s request to %s...", type, device);
+ char *ifname = NULL;
+
+ str_copy(&ifname, device);
+
+ if(config.ifcfg.manual->vlan) strprintf(&ifname, "%s.%s", ifname, config.ifcfg.manual->vlan);
+
+ strprintf(&buf, "Sending DHCP%s request to %s...", type, ifname);
log_show_maybe(!config.win, "%s\n", buf);
if(config.win) {
dia_info(&win, buf, MSGTYPE_INFO);
@@ -1194,19 +1210,19 @@
net_apply_ethtool(device, NULL);
- net_wicked_up(device);
+ net_wicked_up(ifname);
if(config.net.ipv4) {
- snprintf(file, sizeof file, "/run/wicked/leaseinfo.%s.dhcp.ipv4", device);
+ snprintf(file, sizeof file, "/run/wicked/leaseinfo.%s.dhcp.ipv4", ifname);
parse_leaseinfo(file);
}
if(!got_ip && config.net.ipv6) {
- snprintf(file, sizeof file, "/run/wicked/leaseinfo.%s.dhcp.ipv6", device);
+ snprintf(file, sizeof file, "/run/wicked/leaseinfo.%s.dhcp.ipv6", ifname);
parse_leaseinfo(file);
}
- if(slist_getentry(config.ifcfg.if_up, device)) got_ip = 1;
+ if(slist_getentry(config.ifcfg.if_up, ifname)) got_ip = 1;
if(config.win) win_close(&win);
@@ -1241,6 +1257,8 @@
else {
log_show_maybe(!config.win, "no/incomplete answer.\n");
}
+
+ str_copy(&ifname, NULL);
}
@@ -2229,11 +2247,11 @@
// set explicit route to gw unless gw is in the same ipv4 subnet
// note: we might as well set it always
if(!compare_subnet(v4_ip, sl1->key, v4_prefix)) {
- strprintf(&sl->key, "%s - - %s", sl1->key, device);
+ strprintf(&sl->key, "%s - - %s%s", sl1->key, device, vlan ?: "");
sl = slist_append(&sl_ifroute, slist_new());
}
- strprintf(&sl->key, "default %s - %s", sl1->key, device);
+ strprintf(&sl->key, "default %s - %s%s", sl1->key, device, vlan ?: "");
}
slist_free(sl0);
1
0
Hello community,
here is the log from the commit of package dhcp for openSUSE:Factory checked in at 2016-01-30 11:34:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dhcp (Old)
and /work/SRC/openSUSE:Factory/.dhcp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dhcp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dhcp/dhcp.changes 2015-10-17 16:36:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dhcp.new/dhcp.changes 2016-01-30 11:34:35.000000000 +0100
@@ -1,0 +2,14 @@
+Tue Jan 26 17:16:45 CET 2016 - ndas(a)suse.de
+
+- Update to dhcp-4.3.3-P1 correcting bounds checking when
+ receiving a packet (bsc#961305,CVE-2015-8605,ISC-Bugs#41267).
+- adjusted interval check.
+ [*0019-dhcp-4.2.4-P1-interval.patch]
+- Fixed improper lease duration checking. Also added fixes for integer
+ overflows in the date and time handling code(bsc#936923, bsc#880984).
+ [+0020-dhcp-4.x.x-fixed-improper-lease-duration-checking.patch]
+- fixed service files to start dhcpd after slapd (bsc#956159)
+- dhclient-script: complain in the log about conflicts, added
+ a see log messages to the dhclient log message (bsc#960506)
+ [* 0018-client-fail-on-script-pre-init-error-bsc-912098.patch]
+-------------------------------------------------------------------
Old:
----
dhcp-4.3.3.tar.gz
dhcp-4.3.3.tar.gz.asc
New:
----
0020-dhcp-4.x.x-fixed-improper-lease-duration-checking.patch
dhcp-4.3.3-P1.tar.gz
dhcp-4.3.3-P1.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dhcp.spec ++++++
--- /var/tmp/diff_new_pack.FAsUde/_old 2016-01-30 11:34:37.000000000 +0100
+++ /var/tmp/diff_new_pack.FAsUde/_new 2016-01-30 11:34:37.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package dhcp
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,7 @@
#
-%define isc_version 4.3.3
+%define isc_version 4.3.3-P1
%define susefw2dir %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
%define omc_prefix /usr/share/omc
%define omc_svcdir %{omc_prefix}/svcinfo.d
@@ -41,7 +41,7 @@
%endif
BuildRequires: dos2unix
BuildRequires: libtool
-Version: 4.3.3
+Version: 4.3.3.P1
Release: 0
Summary: Common Files Used by ISC DHCP Software
License: BSD-3-Clause
@@ -118,6 +118,7 @@
Patch18: 0018-client-fail-on-script-pre-init-error-bsc-912098.patch
# PATCH-FIX-SLE dhcp-4.2.4-P1-interval bsc#947780
Patch19: 0019-dhcp-4.2.4-P1-interval.patch
+Patch20: 0020-dhcp-4.x.x-fixed-improper-lease-duration-checking.patch
##
PreReq: /bin/touch /sbin/chkconfig sysconfig
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -249,6 +250,7 @@
%patch17 -p1
%patch18 -p1
%patch19 -p1
+%patch20 -p1
##
find . -type f -name \*.cat\* -exec rm -f {} \;
dos2unix contrib/ms2isc/*
++++++ 0018-client-fail-on-script-pre-init-error-bsc-912098.patch ++++++
--- /var/tmp/diff_new_pack.FAsUde/_old 2016-01-30 11:34:37.000000000 +0100
+++ /var/tmp/diff_new_pack.FAsUde/_new 2016-01-30 11:34:37.000000000 +0100
@@ -40,7 +40,7 @@
+ }
+ }
+ if (failed) {
-+ log_fatal("%s: unable to pre-init requested interfaces",
++ log_fatal("%s: unable to pre-init requested interfaces -- see log messages",
+ path_dhclient_script);
}
}
++++++ 0019-dhcp-4.2.4-P1-interval.patch ++++++
--- /var/tmp/diff_new_pack.FAsUde/_old 2016-01-30 11:34:37.000000000 +0100
+++ /var/tmp/diff_new_pack.FAsUde/_new 2016-01-30 11:34:37.000000000 +0100
@@ -4,7 +4,7 @@
isc_time_nowplusinterval() is not safe with 64-bit time_t (#662254, #789601)
-References: bsc#947780
+References: bsc#947780, bsc#880984
Index: dhcp-4.2.4-P2/common/dispatch.c
===================================================================
--- dhcp-4.2.4-P2.orig/common/dispatch.c
@@ -31,3 +31,20 @@
status = isc_time_nowplusinterval(&expires, &interval);
if (status != ISC_R_SUCCESS) {
/*
+From: Nirmoy Das <ndas(a)suse.de>
+Date: Tue, 26 Jan 2016 13:36:28 +0100
+Subject: [PATCH] adjusted interval check
+
+Index: dhcp-4.3.3/common/dispatch.c
+===================================================================
+--- dhcp-4.3.3.orig/common/dispatch.c
++++ dhcp-4.3.3/common/dispatch.c
+@@ -349,7 +349,7 @@ void add_timeout (when, where, what, ref
+ * gone by since the last call to gettimeofday() and the one in
+ * isc_time_nowplusinterval().
+ */
+- if (sec > TIME_MAX)
++ if (sec > TIME_MAX - 9)
+ sec = TIME_MAX - 9;
+
+ isc_interval_set(&interval, sec, usec * 1000);
++++++ 0020-dhcp-4.x.x-fixed-improper-lease-duration-checking.patch ++++++
From: Marius Tomaschewski <mt(a)suse.de>
Date: Tue, 12 Jan 2016 15:42:22 +0100
Subject: [PATCH] fixed improper lease duration checking.
References: bsc#936923, bsc#880984
year 2038 is EOT only for 32 bit machine. This patch checks
wordsize and do a proper EOT checking on lease duration. It
also fixes integer overflows in the date and time handling code.
diff --git a/common/parse.c b/common/parse.c
index 22e7d58..e9e53a4 100644
--- a/common/parse.c
+++ b/common/parse.c
@@ -939,7 +939,7 @@ TIME
parse_date_core(cfile)
struct parse *cfile;
{
- int guess;
+ long guess;
int tzoff, year, mon, mday, hour, min, sec;
const char *val;
enum dhcp_token token;
@@ -966,7 +966,7 @@ parse_date_core(cfile)
}
skip_token(&val, NULL, cfile); /* consume number */
- guess = atoi(val);
+ guess = atol(val);
return((TIME)guess);
}
@@ -1113,11 +1113,22 @@ parse_date_core(cfile)
* overflow issues. We could try and be more precise but there
* doesn't seem to be a good reason to worry about it and waste
* the cpu looking at the rest of the date. */
- if (year >= 138)
- return(MAX_TIME);
-
+ if (sizeof(time_t) == 8) {
+ /* 2038 is not an issue on 64bit. time calculations
+ * start to fail at almost INT_MAX (- some guard) */
+ if (year > 0x7fff0000)
+ return(MAX_TIME);
+ } else {
+ /* assume 32bit with end in 2038 */
+ if (year >= 138)
+ return(MAX_TIME);
+ }
+ /* I don't think we need to care about lease starts before 1900 */
+ if (year < 0)
+ return((TIME)0);
+
/* Guess the time value... */
- guess = ((((((365 * (year - 70) + /* Days in years since '70 */
+ guess = ((((((365 * ((long)year - 70) + /* Days in years since '70 */
(year - 69) / 4 + /* Leap days since '70 */
(mon /* Days in months this year */
? months [mon - 1]
diff --git a/includes/dhcpd.h b/includes/dhcpd.h
index 4270edc..1af4c5b 100644
--- a/includes/dhcpd.h
+++ b/includes/dhcpd.h
@@ -1561,7 +1561,7 @@ typedef unsigned char option_mask [16];
#define DHCPD_LOG_FACILITY LOG_DAEMON
#endif
-#define MAX_TIME 0x7fffffff
+#define MAX_TIME LONG_MAX
#define MIN_TIME 0
#ifdef USE_LOG_PID
++++++ dhclient-script ++++++
--- /var/tmp/diff_new_pack.FAsUde/_old 2016-01-30 11:34:37.000000000 +0100
+++ /var/tmp/diff_new_pack.FAsUde/_new 2016-01-30 11:34:37.000000000 +0100
@@ -73,14 +73,26 @@
{
local _id=`/usr/bin/systemctl --no-pager -p Id show network.service 2>/dev/null`
case "${_id#Id=}" in
- # wicked is using an another dhcp client
- wicked.service) return 1 ;;
+ # wicked is using an another dhcp client - dhclient
+ # is not supported with enabled wicked and disabled.
+ wicked.service)
+ logger -t "${0##*/}" -p daemon.error -- \
+ "dhclient conflicts with enabled ${_id#Id=} and disabled"
+ return 1
+ ;;
- # NetworkManager is using another script
- #NetworkManager.service) return 1 ;;
+ # NetworkManager is using an another script
+ # [disarmed except maintainer requests it]
+ #NetworkManager.service)
+ # logger -t "${0##*/}" -p daemon.error -- \
+ # "dhclient-script conflicts with enabled ${_id#Id=} script and disabled"
+ # return 1
+ #;;
- # sysconfig network were using it, other?
- network.service|*) return 0 ;;
+ # sysconfig network [gone] were using it, other?
+ network.service|*)
+ return 0
+ ;;
esac
}
++++++ dhcpd.service ++++++
--- /var/tmp/diff_new_pack.FAsUde/_old 2016-01-30 11:34:37.000000000 +0100
+++ /var/tmp/diff_new_pack.FAsUde/_new 2016-01-30 11:34:37.000000000 +0100
@@ -1,7 +1,7 @@
[Unit]
Description=ISC DHCPv4 Server
Before=multi-user.target
-After=remote-fs.target network.target nss-lookup.target time-sync.target ldap.service ndsd.service
+After=remote-fs.target network.target nss-lookup.target time-sync.target slapd.service sssd.service ndsd.service
[Service]
Type=forking
++++++ dhcpd6.service ++++++
--- /var/tmp/diff_new_pack.FAsUde/_old 2016-01-30 11:34:37.000000000 +0100
+++ /var/tmp/diff_new_pack.FAsUde/_new 2016-01-30 11:34:37.000000000 +0100
@@ -1,7 +1,7 @@
[Unit]
Description=ISC DHCPv6 Server
Before=multi-user.target
-After=remote-fs.target network.target nss-lookup.target time-sync.target ldap.service ndsd.service
+After=remote-fs.target network.target nss-lookup.target time-sync.target slapd.service sssd.service ndsd.service
[Service]
Type=forking
1
0
Hello community,
here is the log from the commit of package libxcb for openSUSE:Factory checked in at 2016-01-30 11:34:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libxcb (Old)
and /work/SRC/openSUSE:Factory/.libxcb.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libxcb"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libxcb/libxcb.changes 2015-09-11 09:02:40.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libxcb.new/libxcb.changes 2016-01-30 11:34:31.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Dec 23 23:16:43 UTC 2015 - eich(a)suse.com
+
+- n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch:
+ If auth with credentials for hostname fails retry with XAUTHLOCALHOSTNAME
+ (boo#906622).
+
+-------------------------------------------------------------------
New:
----
n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libxcb.spec ++++++
--- /var/tmp/diff_new_pack.qhJXIc/_old 2016-01-30 11:34:32.000000000 +0100
+++ /var/tmp/diff_new_pack.qhJXIc/_new 2016-01-30 11:34:32.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libxcb
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -31,7 +31,7 @@
Source: %{name}-%{version}.tar.bz2
Source1: baselibs.conf
Patch1: bug-262309_xcb-xauthlocalhostname.diff
-
+Patch2: n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf >= 2.57
BuildRequires: automake
@@ -401,6 +401,7 @@
%prep
%setup -q
%patch -P 1 -p0
+%patch2 -p1
%build
./autogen.sh
++++++ n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch ++++++
From: Egbert Eich <eich(a)suse.de>
Date: Thu Dec 24 00:11:43 2015 +0100
Subject: [PATCH]If auth with credentials for hostname fails retry with XAUTHLOCALHOSTNAME
Patch-mainline: never
References: boo#906622
Signed-off-by: Egbert Eich <eich(a)suse.com>
Signed-off-by: Egbert Eich <eich(a)suse.de>
---
src/xcb_auth.c | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/src/xcb_auth.c b/src/xcb_auth.c
index 6eb6528..777c772 100644
--- a/src/xcb_auth.c
+++ b/src/xcb_auth.c
@@ -109,7 +109,7 @@ static int authname_match(enum auth_protos kind, char *name, size_t namelen)
#define SIN6_ADDR(s) (&((struct sockaddr_in6 *)s)->sin6_addr)
-static Xauth *get_authptr(struct sockaddr *sockname, int display)
+static Xauth *get_authptr(struct sockaddr *sockname, int display, int *stage)
{
char *addr = 0;
int addrlen = 0;
@@ -119,6 +119,8 @@ static Xauth *get_authptr(struct sockaddr *sockname, int display)
int dispbuflen;
Xauth *authptr = NULL;
+ if (*stage == 2)
+ return NULL;
family = FamilyLocal; /* 256 */
switch(sockname->sa_family)
{
@@ -161,10 +163,13 @@ static Xauth *get_authptr(struct sockaddr *sockname, int display)
addrlen = strlen(addr);
}
- authptr = XauGetBestAuthByAddr (family,
- (unsigned short) addrlen, addr,
- (unsigned short) dispbuflen, dispbuf,
- N_AUTH_PROTOS, authnames, authnameslen);
+ if (*stage == 0) {
+ authptr = XauGetBestAuthByAddr (family,
+ (unsigned short) addrlen, addr,
+ (unsigned short) dispbuflen, dispbuf,
+ N_AUTH_PROTOS, authnames, authnameslen);
+ *stage = 1;
+ }
// && !phostname
if ((!authptr || !authptr->data_length) && family == FamilyLocal) {
if ( (addr = getenv("XAUTHLOCALHOSTNAME")) ) {
@@ -172,6 +177,7 @@ static Xauth *get_authptr(struct sockaddr *sockname, int display)
(unsigned short) strlen(addr), addr,
(unsigned short) dispbuflen, dispbuf,
N_AUTH_PROTOS, authnames, authnameslen);
+ *stage = 2;
}
}
return authptr;
@@ -328,6 +334,7 @@ int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display)
int gotsockname = 0;
Xauth *authptr = 0;
int ret = 1;
+ int stage = 0;
/* Some systems like hpux or Hurd do not expose peer names
* for UNIX Domain Sockets, but this is irrelevant,
@@ -344,8 +351,8 @@ int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display)
}
gotsockname = 1;
}
-
- authptr = get_authptr(sockname, display);
+retry:
+ authptr = get_authptr(sockname, display, &stage);
if (authptr == 0)
{
free(sockname);
@@ -371,7 +378,10 @@ int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display)
if(!ret)
{
free(info->name);
- goto no_auth; /* cannot build auth record */
+ info->name = 0;
+ info->namelen = 0;
+ XauDisposeAuth(authptr);
+ goto retry; /* cannot build auth record */
}
free(sockname);
1
0
Hello community,
here is the log from the commit of package gegl for openSUSE:Factory checked in at 2016-01-30 11:34:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gegl (Old)
and /work/SRC/openSUSE:Factory/.gegl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gegl"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gegl/gegl.changes 2014-10-29 21:09:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gegl.new/gegl.changes 2016-01-30 11:34:27.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Jan 26 14:00:45 UTC 2016 - idonmez(a)suse.com
+
+- Add gegl-0.2.0-linker-flags.patch to add -lm to linker flags
+
+-------------------------------------------------------------------
New:
----
gegl-0.2.0-linker-flags.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gegl.spec ++++++
--- /var/tmp/diff_new_pack.4W4tgM/_old 2016-01-30 11:34:28.000000000 +0100
+++ /var/tmp/diff_new_pack.4W4tgM/_new 2016-01-30 11:34:28.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package gegl
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -34,6 +34,8 @@
# Use rpmbuild -D 'BUILD_ORIG 1' -D 'BUILD_ORIG_ADDON 1' to build patched build plus original as addon.
# PATCH-FIX-UPSTREAM sutesparse changed UF_long for SuiteSparse_long
Patch2: gegl-UF_long.patch
+# PATCH-FIX-UPSTREAM gegl-0.2.0-linker-flags.patch idoenmez(a)suse.de -- Add -lm to linker flags
+Patch3: gegl-0.2.0-linker-flags.patch
BuildRequires: ImageMagick
BuildRequires: OpenEXR-devel
BuildRequires: SDL-devel
@@ -156,6 +158,7 @@
%if 0%{?suse_version} > 1310
%patch2 -p1
%endif
+%patch3 -p1
# docs-build-fix.diff
%build
++++++ gegl-0.2.0-linker-flags.patch ++++++
diff -urNp gegl-0.2.0.orig/bin/Makefile.in gegl-0.2.0/bin/Makefile.in
--- gegl-0.2.0.orig/bin/Makefile.in 2015-05-07 15:06:23.716649233 +0200
+++ gegl-0.2.0/bin/Makefile.in 2015-05-07 15:08:38.104260506 +0200
@@ -363,7 +363,7 @@ AM_CFLAGS = \
AM_LDFLAGS = \
$(no_undefined) ../gegl/libgegl-$(GEGL_API_VERSION).la \
- $(DEP_LIBS) $(BABL_LIBS) $(PNG_LIBS) $(LIBSPIRO)
+ $(DEP_LIBS) $(BABL_LIBS) $(PNG_LIBS) $(LIBSPIRO) -lm
gegl_SOURCES = gegl.c gegl-options.c gegl-options.h gegl-path-smooth.c \
gegl-path-smooth.h $(am__append_1)
diff -urNp gegl-0.2.0.orig/examples/Makefile.in gegl-0.2.0/examples/Makefile.in
--- gegl-0.2.0.orig/examples/Makefile.in 2015-05-07 15:06:23.674649046 +0200
+++ gegl-0.2.0/examples/Makefile.in 2015-05-07 16:13:36.057203261 +0200
@@ -376,7 +376,7 @@ AM_CPPFLAGS = \
AM_CFLAGS = $(DEP_CFLAGS) $(GTK_CFLAGS) $(BABL_CFLAGS) $(PNG_CFLAGS)
AM_LDFLAGS = \
$(top_builddir)/gegl/libgegl-$(GEGL_API_VERSION).la \
- $(DEP_LIBS) $(GTK_LIBS) $(BABL_LIBS) $(PNG_LIBS)
+ $(DEP_LIBS) $(GTK_LIBS) $(BABL_LIBS) $(PNG_LIBS) -lm
all: all-recursive
diff -urNp gegl-0.2.0.orig/tools/Makefile.in gegl-0.2.0/tools/Makefile.in
--- gegl-0.2.0.orig/tools/Makefile.in 2015-05-07 15:06:23.716649233 +0200
+++ gegl-0.2.0/tools/Makefile.in 2015-05-07 15:31:43.643298848 +0200
@@ -394,7 +394,7 @@ AM_CPPFLAGS = \
AM_CFLAGS = $(DEP_CFLAGS) $(BABL_CFLAGS)
AM_LDFLAGS = \
$(top_builddir)/gegl/libgegl-$(GEGL_API_VERSION).la \
- $(DEP_LIBS) $(BABL_LIBS)
+ $(DEP_LIBS) $(BABL_LIBS) -lm
@HAVE_EXIV2_TRUE@exp_combine_SOURCES = exp_combine.cpp
@HAVE_EXIV2_TRUE@exp_combine_LDADD = $(EXIV2_LIBS)
1
0
Hello community,
here is the log from the commit of package biosdevname for openSUSE:Factory checked in at 2016-01-30 11:34:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/biosdevname (Old)
and /work/SRC/openSUSE:Factory/.biosdevname.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "biosdevname"
Changes:
--------
--- /work/SRC/openSUSE:Factory/biosdevname/biosdevname.changes 2015-12-18 21:52:52.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.biosdevname.new/biosdevname.changes 2016-01-30 11:34:22.000000000 +0100
@@ -1,0 +2,6 @@
+Sun Jan 17 10:14:18 UTC 2016 - mpluskal(a)suse.com
+
+- Update to 0.7.1
+ * no upstream changelog provided
+
+-------------------------------------------------------------------
Old:
----
biosdevname-0.6.2.tar.gz
New:
----
biosdevname-0.7.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ biosdevname.spec ++++++
--- /var/tmp/diff_new_pack.tF4W01/_old 2016-01-30 11:34:23.000000000 +0100
+++ /var/tmp/diff_new_pack.tF4W01/_new 2016-01-30 11:34:23.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package biosdevname
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%define _udevrulesdir %(pkg-config --variable=udevdir udev)/rules.d
Name: biosdevname
-Version: 0.6.2
+Version: 0.7.1
Release: 0
Summary: Udev helper for naming devices per BIOS names
License: GPL-2.0
++++++ biosdevname-0.6.2.tar.gz -> biosdevname-0.7.1.tar.gz ++++++
++++ 17842 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/biosdevname-0.6.2/INSTALL new/biosdevname-0.7.1/INSTALL
--- old/biosdevname-0.6.2/INSTALL 2015-04-15 18:41:49.000000000 +0200
+++ new/biosdevname-0.7.1/INSTALL 2015-12-18 17:19:26.000000000 +0100
@@ -1,8 +1,8 @@
Installation Instructions
*************************
-Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
-Inc.
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
@@ -226,11 +226,6 @@
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
- HP-UX `make' updates targets which have the same time stamps as
-their prerequisites, which makes it generally unusable when shipped
-generated files such as `configure' are involved. Use GNU `make'
-instead.
-
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
@@ -309,10 +304,9 @@
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf limitation. Until the limitation is lifted, you can use
-this workaround:
+an Autoconf bug. Until the bug is fixed you can use this workaround:
- CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+ CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
@@ -368,3 +362,4 @@
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
+
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/biosdevname-0.6.2/biosdevname.spec.fedora new/biosdevname-0.7.1/biosdevname.spec.fedora
--- old/biosdevname-0.6.2/biosdevname.spec.fedora 2015-04-15 18:42:30.000000000 +0200
+++ new/biosdevname-0.7.1/biosdevname.spec.fedora 2015-12-18 17:25:10.000000000 +0100
@@ -1,5 +1,5 @@
Name: biosdevname
-Version: 0.6.2
+Version: 0.7.1
Release: 1%{?dist}
Summary: Udev helper for naming devices per BIOS names
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/biosdevname-0.6.2/biosdevname.spec.suse new/biosdevname-0.7.1/biosdevname.spec.suse
--- old/biosdevname-0.6.2/biosdevname.spec.suse 2015-04-15 18:42:30.000000000 +0200
+++ new/biosdevname-0.7.1/biosdevname.spec.suse 2015-12-18 17:25:10.000000000 +0100
@@ -1,5 +1,5 @@
Name: biosdevname
-Version: 0.6.2
+Version: 0.7.1
Release: 1%{?dist}
Summary: Udev helper for naming devices per BIOS names
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/biosdevname-0.6.2/compile new/biosdevname-0.7.1/compile
--- old/biosdevname-0.6.2/compile 2015-04-15 18:41:49.000000000 +0200
+++ new/biosdevname-0.7.1/compile 2015-12-18 17:19:26.000000000 +0100
@@ -1,9 +1,10 @@
#! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
+# Wrapper for compilers which do not understand `-c -o'.
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2009-10-06.20; # UTC
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
+# Foundation, Inc.
# Written by Tom Tromey <tromey(a)cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -28,224 +29,21 @@
# 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
+ 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
+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'.
+right script to run: please start by reading the file `INSTALL'.
Report bugs to <bug-automake(a)gnu.org>.
EOF
@@ -255,13 +53,11 @@
echo "compile $scriptversion"
exit $?
;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
- func_cl_wrapper "$@" # Doesn't return...
- ;;
esac
ofile=
cfile=
+eat=
for arg
do
@@ -270,8 +66,8 @@
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.
+ # 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)
@@ -298,10 +94,10 @@
done
if test -z "$ofile" || test -z "$cfile"; then
- # If no '-o' option was seen then we might have been invoked from a
+ # 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
+ # `.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
@@ -310,7 +106,7 @@
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
+# 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
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/biosdevname-0.6.2/config.h.in new/biosdevname-0.7.1/config.h.in
--- old/biosdevname-0.6.2/config.h.in 2015-04-15 18:41:48.000000000 +0200
+++ new/biosdevname-0.7.1/config.h.in 2015-12-18 17:19:26.000000000 +0100
@@ -123,7 +123,7 @@
/* Define to 1 if you have the `strtoul' function. */
#undef HAVE_STRTOUL
-/* Define to 1 if `domain' is a member of `struct pci_dev'. */
+/* Define to 1 if `domain' is member of `struct pci_dev'. */
#undef HAVE_STRUCT_PCI_DEV_DOMAIN
/* Define to 1 if you have the <syslog.h> header file. */
@@ -132,9 +132,6 @@
/* Define to 1 if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
/* Define to 1 if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
@@ -193,9 +190,6 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
/* Define to the version of this package. */
#undef PACKAGE_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/biosdevname-0.6.2/configure.ac new/biosdevname-0.7.1/configure.ac
--- old/biosdevname-0.6.2/configure.ac 2015-04-15 18:40:40.000000000 +0200
+++ new/biosdevname-0.7.1/configure.ac 2015-12-18 17:19:18.000000000 +0100
@@ -3,7 +3,7 @@
# vim:tw=0:ts=8:sw=8:et
AC_PREREQ(2.59)
-AC_INIT([biosdevname],[0.6.2],[Jordan_Hargrave(a)dell.com])
+AC_INIT([biosdevname],[0.7.1],[Jordan_Hargrave(a)dell.com])
AC_LANG([C])
AC_USE_SYSTEM_EXTENSIONS
AC_CONFIG_SRCDIR([src/read_proc.c])
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/biosdevname-0.6.2/missing new/biosdevname-0.7.1/missing
--- old/biosdevname-0.6.2/missing 2015-04-15 18:41:49.000000000 +0200
+++ new/biosdevname-0.7.1/missing 2015-12-18 17:19:26.000000000 +0100
@@ -1,10 +1,11 @@
#! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
+# Common stub for a few missing GNU programs while installing.
-scriptversion=2012-06-26.16; # UTC
+scriptversion=2009-04-28.21; # UTC
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-# Originally written by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
# 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
@@ -25,40 +26,69 @@
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
- echo 1>&2 "Try '$0 --help' for more information"
+ echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
-case $1 in
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+ configure_ac=configure.ac
+else
+ configure_ac=configure.in
+fi
- --is-lightweight)
- # Used by our autoconf macros to check whether the available missing
- # script is modern enough.
- exit 0
- ;;
+msg="missing on your system"
- --run)
- # Back-compat with the calling convention used by older automake.
- shift
- ;;
+case $1 in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
-to PROGRAM being missing or too old.
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal autoconf autoheader autom4te automake makeinfo
- bison yacc flex lex help2man
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ autom4te touch the output file, or create a stub one
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ tar try tar, gnutar, gtar, then tar without non-portable flags
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
-Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
-'g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
Send bug reports to <bug-automake(a)gnu.org>."
exit $?
@@ -70,141 +100,272 @@
;;
-*)
- echo 1>&2 "$0: unknown '$1' option"
- echo 1>&2 "Try '$0 --help' for more information"
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
esac
-# Run the given program, remember its exit status.
-"$@"; st=$?
+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+ lex*|yacc*)
+ # Not GNU programs, they don't have --version.
+ ;;
-# If it succeeded, we are done.
-test $st -eq 0 && exit 0
+ tar*)
+ if test -n "$run"; then
+ echo 1>&2 "ERROR: \`tar' requires --run"
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ exit 1
+ fi
+ ;;
-# Also exit now if we it failed (or wasn't found), and '--version' was
-# passed; such an option is passed most likely to detect whether the
-# program is present and works.
-case $2 in --version|--help) exit $st;; esac
-
-# Exit code 63 means version mismatch. This often happens when the user
-# tries to use an ancient version of a tool on a file that requires a
-# minimum version.
-if test $st -eq 63; then
- msg="probably too old"
-elif test $st -eq 127; then
- # Program was missing.
- msg="missing on your system"
-else
- # Program was found and executed, but failed. Give up.
- exit $st
-fi
+ *)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running `$TOOL --version' or `$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
+ fi
+ ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $program in
+ aclocal*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`${configure_ac}'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acconfig.h' or \`${configure_ac}'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case $f in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ autom4te*)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them.
+ You can get \`$1' as part of \`Autoconf' from any GNU
+ archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo "#! /bin/sh"
+ echo "# Created by GNU Automake missing as a replacement of"
+ echo "# $ $@"
+ echo "exit 0"
+ chmod +x $file
+ exit 1
+ fi
+ ;;
+
+ bison*|yacc*)
+ echo 1>&2 "\
+WARNING: \`$1' $msg. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if test $# -ne 1; then
+ eval LASTARG="\${$#}"
+ case $LASTARG in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f y.tab.h; then
+ echo >y.tab.h
+ fi
+ if test ! -f y.tab.c; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex*|flex*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if test $# -ne 1; then
+ eval LASTARG="\${$#}"
+ case $LASTARG in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f lex.yy.c; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a dependency of a manual page. You may need the
+ \`Help2man' package in order for those modifications to take
+ effect. You can get \`Help2man' from any GNU archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo ".ab help2man is required to generate this page"
+ exit $?
+ fi
+ ;;
+
+ makeinfo*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -z "$file"; then
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '
+ /^@setfilename/{
+ s/.* \([^ ]*\) *$/\1/
+ p
+ q
+ }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+ fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
+ touch $file
+ ;;
+
+ tar*)
+ shift
+
+ # We have already tried tar in the generic part.
+ # Look for gnutar/gtar before invocation to avoid ugly error
+ # messages.
+ if (gnutar --version > /dev/null 2>&1); then
+ gnutar "$@" && exit 0
+ fi
+ if (gtar --version > /dev/null 2>&1); then
+ gtar "$@" && exit 0
+ fi
+ firstarg="$1"
+ if shift; then
+ case $firstarg in
+ *o*)
+ firstarg=`echo "$firstarg" | sed s/o//`
+ tar "$firstarg" "$@" && exit 0
+ ;;
+ esac
+ case $firstarg in
+ *h*)
+ firstarg=`echo "$firstarg" | sed s/h//`
+ tar "$firstarg" "$@" && exit 0
+ ;;
+ esac
+ fi
+
+ echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+ You may want to install GNU tar or Free paxutils, or check the
+ command line arguments."
+ exit 1
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequisites for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
-
-program_details ()
-{
- case $1 in
- aclocal|automake)
- echo "The '$1' program is part of the GNU Automake package:"
- echo "<$gnu_software_URL/automake>"
- echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/autoconf>"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- autoconf|autom4te|autoheader)
- echo "The '$1' program is part of the GNU Autoconf package:"
- echo "<$gnu_software_URL/autoconf/>"
- echo "It also requires GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- esac
-}
-
-give_advice ()
-{
- # Normalize program name to check for.
- normalized_program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
- printf '%s\n' "'$1' is $msg."
-
- configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
- case $normalized_program in
- autoconf*)
- echo "You should only need it if you modified 'configure.ac',"
- echo "or m4 files included by it."
- program_details 'autoconf'
- ;;
- autoheader*)
- echo "You should only need it if you modified 'acconfig.h' or"
- echo "$configure_deps."
- program_details 'autoheader'
- ;;
- automake*)
- echo "You should only need it if you modified 'Makefile.am' or"
- echo "$configure_deps."
- program_details 'automake'
- ;;
- aclocal*)
- echo "You should only need it if you modified 'acinclude.m4' or"
- echo "$configure_deps."
- program_details 'aclocal'
- ;;
- autom4te*)
- echo "You might have modified some maintainer files that require"
- echo "the 'automa4te' program to be rebuilt."
- program_details 'autom4te'
- ;;
- bison*|yacc*)
- echo "You should only need it if you modified a '.y' file."
- echo "You may want to install the GNU Bison package:"
- echo "<$gnu_software_URL/bison/>"
- ;;
- lex*|flex*)
- echo "You should only need it if you modified a '.l' file."
- echo "You may want to install the Fast Lexical Analyzer package:"
- echo "<$flex_URL>"
- ;;
- help2man*)
- echo "You should only need it if you modified a dependency" \
- "of a man page."
- echo "You may want to install the GNU Help2man package:"
- echo "<$gnu_software_URL/help2man/>"
- ;;
- makeinfo*)
- echo "You should only need it if you modified a '.texi' file, or"
- echo "any other file indirectly affecting the aspect of the manual."
- echo "You might want to install the Texinfo package:"
- echo "<$gnu_software_URL/texinfo/>"
- echo "The spurious makeinfo call might also be the consequence of"
- echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
- echo "want to install GNU make:"
- echo "<$gnu_software_URL/make/>"
- ;;
- *)
- echo "You might have modified some files without having the proper"
- echo "tools for further handling them. Check the 'README' file, it"
- echo "often tells you about the needed prerequisites for installing"
- echo "this package. You may also peek at any GNU archive site, in"
- echo "case some other package contains this missing '$1' program."
- ;;
- esac
-}
-
-give_advice "$1" | sed -e '1s/^/WARNING: /' \
- -e '2,$s/^/ /' >&2
-
-# Propagate the correct exit status (expected to be 127 for a program
-# not found, 63 for a program that failed due to version mismatch).
-exit $st
+exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
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/biosdevname-0.6.2/src/bios_dev_name.h new/biosdevname-0.7.1/src/bios_dev_name.h
--- old/biosdevname-0.6.2/src/bios_dev_name.h 2015-04-15 18:42:30.000000000 +0200
+++ new/biosdevname-0.7.1/src/bios_dev_name.h 2015-12-18 17:25:10.000000000 +0100
@@ -6,7 +6,7 @@
#ifndef GLUE_H_INCLUDED
#define GLUE_H_INCLUDED
-#define BIOSDEVNAME_VERSION "0.6.2"
+#define BIOSDEVNAME_VERSION "0.7.1"
struct bios_dev_name_opts {
int argc;
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/biosdevname-0.6.2/src/bios_device.c new/biosdevname-0.7.1/src/bios_device.c
--- old/biosdevname-0.6.2/src/bios_device.c 2014-11-19 17:04:18.000000000 +0100
+++ new/biosdevname-0.7.1/src/bios_device.c 2015-12-18 17:18:52.000000000 +0100
@@ -21,6 +21,7 @@
return;
list_for_each_entry_safe(dev, n, &state->bios_devices, node) {
list_del(&(dev->node));
+ free(dev->bios_name);
free(dev);
}
}
@@ -138,6 +139,7 @@
if (x->pcidev && !y->pcidev) return -1;
else if (!x->pcidev && y->pcidev) return 1;
+ else if (!x->pcidev && !y->pcidev) return 0;
a = x->pcidev;
b = y->pcidev;
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/biosdevname-0.6.2/src/dmidecode/util.c new/biosdevname-0.7.1/src/dmidecode/util.c
--- old/biosdevname-0.6.2/src/dmidecode/util.c 2014-11-03 19:07:11.000000000 +0100
+++ new/biosdevname-0.7.1/src/dmidecode/util.c 2015-12-18 17:10:29.000000000 +0100
@@ -111,6 +111,7 @@
if((p=malloc(len))==NULL)
{
perror("malloc");
+ close(fd);
return NULL;
}
@@ -129,6 +130,7 @@
if(mmp==MAP_FAILED)
{
free(p);
+ close(fd);
return NULL;
}
@@ -145,18 +147,21 @@
fprintf(stderr, "%s: ", devmem);
perror("lseek");
free(p);
+ close(fd);
return NULL;
}
if(myread(fd, p, len, devmem)==-1)
{
free(p);
+ close(fd);
return NULL;
}
#endif /* USE_MMAP */
if(close(fd)==-1)
perror(devmem);
-
+
+ close(fd);
return p;
}
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/biosdevname-0.6.2/src/eths.c new/biosdevname-0.7.1/src/eths.c
--- old/biosdevname-0.6.2/src/eths.c 2014-11-19 17:04:18.000000000 +0100
+++ new/biosdevname-0.7.1/src/eths.c 2015-12-18 17:10:29.000000000 +0100
@@ -198,6 +198,7 @@
/* Open control socket. */
fd = socket(AF_INET, SOCK_DGRAM, 0);
if (fd < 0) {
+ free(permaddr);
perror("Cannot get control socket");
return 1;
}
@@ -208,6 +209,7 @@
err = ioctl(fd, SIOCETHTOOL, &ifr);
if (err < 0) {
close(fd);
+ free(permaddr);
return err;
}
memcpy(buf, permaddr->data, min(permaddr->size, size));
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/biosdevname-0.6.2/src/pci.c new/biosdevname-0.7.1/src/pci.c
--- old/biosdevname-0.6.2/src/pci.c 2015-04-15 18:37:58.000000000 +0200
+++ new/biosdevname-0.7.1/src/pci.c 2015-12-18 17:10:29.000000000 +0100
@@ -30,6 +30,7 @@
/* Borrowed from kernel vpd code */
#define PCI_VPD_LRDT 0x80
#define PCI_VPD_SRDT_END 0x78
+#define PCI_VPDI_TAG 0x82
#define PCI_VPDR_TAG 0x90
#define PCI_VPD_SRDT_LEN_MASK 0x7
@@ -37,9 +38,16 @@
#define PCI_VPD_SRDT_TAG_SIZE 1
#define PCI_VPD_INFO_FLD_HDR_SIZE 3
+struct vpd_tag
+{
+ char cc[2];
+ u8 len;
+ char data[1];
+};
+
static inline u16 pci_vpd_lrdt_size(const u8 *lrdt)
{
- return (u16)lrdt[1] + ((u16)lrdt[2] << 8L);
+ return (u16)lrdt[0] + ((u16)lrdt[1] << 8L);
}
static inline u8 pci_vpd_srdt_size(const u8* srdt)
@@ -47,78 +55,41 @@
return (*srdt) & PCI_VPD_SRDT_LEN_MASK;
}
-static inline u8 pci_vpd_info_field_size(const u8 *info_field)
-{
- return info_field[2];
-}
-
-static int pci_vpd_size(struct pci_device *pdev, int fd)
-{
- uint8_t buf[3], tag;
- int off;
-
- if (!is_pci_network(pdev))
- return 0;
- off = 0;
- for(;;) {
- if (pread(fd, buf, 1, off) != 1)
- break;
- if (buf[0] & PCI_VPD_LRDT) {
- tag = buf[0];
- if (pread(fd, buf, 3, off) != 3)
- break;
- off += PCI_VPD_LRDT_TAG_SIZE + pci_vpd_lrdt_size(buf);
- } else {
- tag = buf[0] & ~PCI_VPD_SRDT_LEN_MASK;
- off += PCI_VPD_SRDT_TAG_SIZE + pci_vpd_srdt_size(buf);
- }
- if (tag == 0 || tag == 0xFF || tag == PCI_VPD_SRDT_END || tag == PCI_VPDR_TAG)
- break;
- }
- return off;
-}
-
-static int pci_vpd_find_tag(const u8 *buf, unsigned int off, unsigned int len, u8 rdt)
-{
- int i;
-
- for (i = off; i < len;) {
- u8 val = buf[i];
-
- if (val & PCI_VPD_LRDT) {
- if (i + PCI_VPD_LRDT_TAG_SIZE > len)
- break;
- if (val == rdt)
- return i;
- i += PCI_VPD_LRDT_TAG_SIZE + pci_vpd_lrdt_size(&buf[i]);
- } else {
- u8 tag = val & ~PCI_VPD_SRDT_LEN_MASK;
-
- if (tag == rdt)
- return i;
- if (tag == PCI_VPD_SRDT_END)
- break;
- i += PCI_VPD_SRDT_TAG_SIZE + pci_vpd_srdt_size(&buf[i]);
- }
- }
- return -1;
-}
-
-/* Search for matching key/subkey in the VPD data */
-static int pci_vpd_find_info_subkey(const u8 *buf, unsigned int off, unsigned int len,
- const char *kw, const char *skw)
+static int pci_vpd_readtag(int fd, int *len)
{
- int i;
+ u8 tag, tlen[2];
- for (i = off; i + PCI_VPD_INFO_FLD_HDR_SIZE <= off+len;) {
- /* Match key and subkey names, can use * for regex */
- if ((kw[0] == '*' || buf[i+0] == kw[0]) &&
- (kw[1] == '*' || buf[i+1] == kw[1]) &&
- (skw[0] == '*' || !memcmp(&buf[i+3], skw, 3)))
- return i;
- i += PCI_VPD_INFO_FLD_HDR_SIZE + pci_vpd_info_field_size(&buf[i]);
- }
- return -1;
+ if (read(fd, &tag, 1) != 1)
+ return -1;
+ if (tag == 0x00 || tag == 0xFF || tag == 0x7F)
+ return -1;
+ if (tag & PCI_VPD_LRDT) {
+ if (read(fd, tlen, 2) != 2)
+ return -1;
+ *len = pci_vpd_lrdt_size(tlen);
+ /* Check length of VPD-R */
+ if (*len >= 1024)
+ return -1;
+ return tag;
+ }
+ *len = pci_vpd_srdt_size(&tag);
+ return (tag & ~0x7);
+}
+
+static void *pci_vpd_findtag(void *buf, int len, const char *sig)
+{
+ int off, siglen;
+ struct vpd_tag *t;
+
+ off = 0;
+ siglen = strlen(sig);
+ while (off < len) {
+ t = (struct vpd_tag *)((u8 *)buf + off);
+ if (!memcmp(t->data, sig, siglen))
+ return t;
+ off += (t->len + 3);
+ }
+ return NULL;
}
/* Add port identifier(s) to PCI device */
@@ -140,24 +111,35 @@
list_add_tail(&p->node, &pdev->ports);
}
-static void parse_dcm(struct libbiosdevname_state *state, int seg, int bus,
- const char *dcm, int len)
+static void parse_dcm(struct libbiosdevname_state *state, struct pci_device *pdev,
+ void *vpd, int len)
{
- int i;
- int port, devfn, pfi;
+ int i, port, devfn, pfi, step;
struct pci_device *vf;
+ struct vpd_tag *dcm;
+ const char *fmt;
- for (i=3; i<len; ) {
- if (!strncmp(dcm, "DCM", 3)) {
- sscanf(dcm+i, "%1x%1x%2x", &port, &devfn, &pfi);
- i += 10;
- } else if (!strncmp(dcm, "DC2", 3)) {
- sscanf(dcm+i, "%1x%2x%2x", &port, &devfn, &pfi);
- i += 11;
- } else {
+ fmt = "%1x%1x%2x";
+ step = 10;
+ dcm = pci_vpd_findtag(vpd, len, "DCM");
+ if (dcm == NULL) {
+ dcm = pci_vpd_findtag(vpd, len, "DC2");
+ if (dcm == NULL)
+ return;
+ fmt = "%1x%2x%2x";
+ step = 11;
+ }
+ for (i = 3; i < dcm->len; i += step) {
+ if (i+step > dcm->len) {
+ /* DCM is truncated */
return;
}
- if ((vf = find_pci_dev_by_pci_addr(state, seg, bus, devfn>>3, devfn & 7)) != NULL) {
+ if (sscanf(dcm->data+i, fmt, &port, &devfn, &pfi) != 3)
+ break;
+ vf = find_pci_dev_by_pci_addr(state, pdev->pci_dev->domain,
+ pdev->pci_dev->bus,
+ devfn >> 3, devfn & 7);
+ if (vf != NULL) {
add_port(vf, port, pfi);
if (vf->vpd_port == INT_MAX) {
vf->vpd_port = port;
@@ -167,66 +149,40 @@
}
}
-static int parse_vpd(struct libbiosdevname_state *state, struct pci_device *pdev, int len, unsigned char *vpd)
-{
- int i, j, isz, jsz;
-
- i = pci_vpd_find_tag(vpd, 0, len, PCI_VPDR_TAG);
- if (i < 0)
- return 1;
- isz = pci_vpd_lrdt_size(&vpd[i]);
- i += PCI_VPD_LRDT_TAG_SIZE;
-
- /* Lookup Version */
- j = pci_vpd_find_info_subkey(vpd, i, isz, "**", "DSV");
- if (j < 0)
- return 1;
- jsz = pci_vpd_info_field_size(&vpd[j]);
- j += PCI_VPD_INFO_FLD_HDR_SIZE;
- if ((memcmp(vpd+j+3, "1028VPDR.VER1.0", 15)) &&
- (memcmp(vpd+j+3, "1028VPDR.VER2.0", 15)))
- return 1;
-
- /* Lookup Port Mappings */
- j = pci_vpd_find_info_subkey(vpd, i, isz, "**", "DC2");
- if (j < 0) {
- j = pci_vpd_find_info_subkey(vpd, i, isz, "**", "DCM");
- if (j < 0)
- return 1;
- }
- jsz = pci_vpd_info_field_size(&vpd[j]);
- j += PCI_VPD_INFO_FLD_HDR_SIZE;
-
- parse_dcm(state, pdev->pci_dev->domain, pdev->pci_dev->bus,
- (char *)vpd+j, jsz);
- return 0;
-}
-
/* Read and parse PCI VPD section if it exists */
static int read_pci_vpd(struct libbiosdevname_state *state, struct pci_device *pdev)
{
char path[PATH_MAX];
char pci_name[16];
- int fd, rc=1;
+ int fd, len;
unsigned char *vpd;
- off_t size;
- ssize_t nrd;
+ if (!is_pci_network(pdev))
+ return 1;
unparse_pci_name(pci_name, sizeof(pci_name), pdev->pci_dev);
- snprintf(path, sizeof(path), "/sys/bus/pci/devices/%s/vpd", pci_name);
- if ((fd = open(path, O_RDONLY|O_SYNC)) >= 0) {
- size = pci_vpd_size(pdev, fd);
- if (size > 0) {
- vpd = malloc(size);
- if (vpd != NULL) {
- if ((nrd = pread(fd, vpd, size, 0)) > 0)
- rc = parse_vpd(state, pdev, nrd, vpd);
- free(vpd);
- }
- }
- close(fd);
+ snprintf(path, sizeof(path), "/sys/bus/pci/devices/%s/physfn/vpd", pci_name);
+ fd = open(path, O_RDONLY|O_SYNC);
+ if (fd < 0) {
+ snprintf(path, sizeof(path), "/sys/bus/pci/devices/%s/vpd", pci_name);
+ fd = open(path, O_RDONLY|O_SYNC);
+ if (fd < 0)
+ return 1;
}
- return rc;
+ if (pci_vpd_readtag(fd, &len) != PCI_VPDI_TAG)
+ goto done;
+ lseek(fd, len, SEEK_CUR);
+ if (pci_vpd_readtag(fd, &len) != PCI_VPDR_TAG)
+ goto done;
+ vpd = alloca(len);
+ if (read(fd, vpd, len) != len)
+ goto done;
+ /* Check for DELL VPD tag */
+ if (!pci_vpd_findtag(vpd, len, "DSV1028VPDR.VER"))
+ goto done;
+ parse_dcm(state, pdev, vpd, len);
+ done:
+ close(fd);
+ return 0;
}
static void set_pci_vpd_instance(struct libbiosdevname_state *state)
@@ -254,6 +210,10 @@
if (dev->pci_dev->vendor_id == 0x1969 ||
dev->pci_dev->vendor_id == 0x168c)
continue;
+ if (dev->vpd_port != INT_MAX) {
+ /* Ignore already parsed devices */
+ continue;
+ }
read_pci_vpd(state, dev);
}
@@ -636,7 +596,7 @@
snprintf(path, sizeof(path), "/sys/bus/pci/devices/%s/%s", pci_name, virtpath);
memset(cpath, 0, sizeof(cpath));
- if (readlink(path, cpath, sizeof(cpath)) < 0)
+ if (readlink(path, cpath, sizeof(cpath) - 1) < 0)
return;
if ((vf = find_dev_by_pci_name(state, cpath)) != NULL) {
vf->is_sriov_virtual_function = 1;
@@ -789,7 +749,7 @@
"SATA Controller",
"SAS Controller",
};
- if (type > 0 && type <= sizeof(msg))
+ if (type > 0 && type <= (sizeof(msg)/sizeof(msg[0])))
s += snprintf(s, size-(s-buf), "%s\n", msg[type-1]);
else
s += snprintf(s, size-(s-buf), "<OUT OF SPEC>\n");
++++++ biosdevname-pic.patch ++++++
--- /var/tmp/diff_new_pack.tF4W01/_old 2016-01-30 11:34:23.000000000 +0100
+++ /var/tmp/diff_new_pack.tF4W01/_new 2016-01-30 11:34:23.000000000 +0100
@@ -1,7 +1,7 @@
-Index: biosdevname-0.6.2/src/bios_dev_name.c
+Index: biosdevname-0.7.1/src/bios_dev_name.c
===================================================================
---- biosdevname-0.6.2.orig/src/bios_dev_name.c
-+++ biosdevname-0.6.2/src/bios_dev_name.c
+--- biosdevname-0.7.1.orig/src/bios_dev_name.c
++++ biosdevname-0.7.1/src/bios_dev_name.c
@@ -114,10 +114,21 @@ static u_int32_t
cpuid (u_int32_t eax, u_int32_t ecx)
{
++++++ udev-rule-path.patch ++++++
--- /var/tmp/diff_new_pack.tF4W01/_old 2016-01-30 11:34:23.000000000 +0100
+++ /var/tmp/diff_new_pack.tF4W01/_new 2016-01-30 11:34:23.000000000 +0100
@@ -1,8 +1,8 @@
-Index: biosdevname-0.6.1/configure.ac
+Index: biosdevname-0.7.1/configure.ac
===================================================================
---- biosdevname-0.6.1.orig/configure.ac 2014-12-01 16:05:47.000000000 +0100
-+++ biosdevname-0.6.1/configure.ac 2015-01-22 13:24:22.231621837 +0100
-@@ -66,20 +66,9 @@
+--- biosdevname-0.7.1.orig/configure.ac
++++ biosdevname-0.7.1/configure.ac
+@@ -66,20 +66,9 @@ AC_FUNC_STAT
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([dup2 gettimeofday memset munmap select socket strcasecmp strchr strdup strerror strncasecmp strpbrk strrchr strstr strtol strtoul])
@@ -26,11 +26,11 @@
RULEDIR=$(dirname $RULEDEST)
AC_SUBST(RULEDEST, $RULEDEST)
AC_SUBST(RULEDIR, $RULEDIR)
-Index: biosdevname-0.6.1/configure
+Index: biosdevname-0.7.1/configure
===================================================================
---- biosdevname-0.6.1.orig/configure 2014-12-01 16:06:21.000000000 +0100
-+++ biosdevname-0.6.1/configure 2015-01-22 13:48:51.915645203 +0100
-@@ -7305,18 +7305,7 @@
+--- biosdevname-0.7.1.orig/configure
++++ biosdevname-0.7.1/configure
+@@ -10560,18 +10560,7 @@ done
# this is ugly, but accounts for SLES 10, Red Hat/Fedora, and Ubuntu
# handles default udev rules as of udev 114 or thereabouts
1
0
Hello community,
here is the log from the commit of package fuse for openSUSE:Factory checked in at 2016-01-30 11:34:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fuse (Old)
and /work/SRC/openSUSE:Factory/.fuse.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fuse"
Changes:
--------
--- /work/SRC/openSUSE:Factory/fuse/fuse.changes 2015-05-23 12:50:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.fuse.new/fuse.changes 2016-01-30 11:34:17.000000000 +0100
@@ -1,0 +2,9 @@
+Fri Jan 22 12:04:12 UTC 2016 - astieger(a)suse.com
+
+- fuse 2.9.5:
+ * fix warning in mount.c:receive_fd().
+ * fix possible memory leak.
+ * new upstream project and source URL
+ * add new maintainer keyring and verify source signature
+
+-------------------------------------------------------------------
Old:
----
fuse-2.9.4.tar.gz
New:
----
fuse-2.9.5.tar.gz
fuse-2.9.5.tar.gz.asc
fuse.keyring
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fuse.spec ++++++
--- /var/tmp/diff_new_pack.XN3HkZ/_old 2016-01-30 11:34:18.000000000 +0100
+++ /var/tmp/diff_new_pack.XN3HkZ/_new 2016-01-30 11:34:18.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package fuse
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,35 +16,38 @@
#
+%define tag 2_9_5
Name: fuse
+Version: 2.9.5
+Release: 0
Summary: User space File System
License: GPL-2.0+ and LGPL-2.1+
Group: System/Filesystems
-Version: 2.9.4
-Release: 0
-# http://downloads.sf.net/fuse/fuse-%%version.tar.gz
-Source: http://downloads.sourceforge.net/project/fuse/fuse-2.X/%{version}/%{name}-%…
+Url: https://github.com/libfuse/libfuse
+Source: https://github.com/libfuse/libfuse/releases/download/fuse_%{tag}/fuse-%{ver…
Source2: fuse.rpmlintrc
Source3: baselibs.conf
Source4: fuse.conf
-Patch: fuse-install-fix.diff
+Source5: https://github.com/libfuse/libfuse/releases/download/fuse_%{tag}/fuse-%{ver…
+Source6: fuse.keyring
+Patch0: fuse-install-fix.diff
Patch3: fusermount-compile-as-pie.patch
Patch4: aarch64-build-fix.patch
-Url: http://fuse.sourceforge.net
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: libtool
+BuildRequires: pkgconfig
+# FIXME: use proper Requires(pre/post/preun/...)
+PreReq: permissions
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} > 1130
Requires: util-linux >= 2.18
%else
Requires: util-linux(fake+no-canonicalize)
%endif
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: libtool
-BuildRequires: pkgconfig
%if 0%{?suse_version} >= 1000
Supplements: filesystem(fuse)
%endif
-PreReq: permissions
%description
With FUSE, a user space program can export a file system through the
@@ -138,12 +141,12 @@
%prep
%setup -q
-%patch -p1
+%patch0 -p1
%patch3 -p1
%patch4
%build
-export CFLAGS="$RPM_OPT_FLAGS -g -fno-strict-aliasing"
+export CFLAGS="%{optflags} -g -fno-strict-aliasing"
export MOUNT_FUSE_PATH=%{_sbindir}
autoreconf -fi
%configure --with-pic \
@@ -154,30 +157,30 @@
make %{?_smp_mflags}
%install
-%makeinstall
-rm -rf $RPM_BUILD_ROOT/%{_sysconfdir}/init.d
-install -m644 -D %{S:4} $RPM_BUILD_ROOT/%{_sysconfdir}/fuse.conf
+make DESTDIR=%{buildroot} install %{?_smp_mflags}
+rm -rf %{buildroot}/%{_sysconfdir}/init.d
+install -m644 -D %{SOURCE4} %{buildroot}/%{_sysconfdir}/fuse.conf
# Needed for OpenSUSE buildservice
-%if %suse_version <= 1020
-install -m644 -D util/udev.rules $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/99-fuse.rules
+%if 0%{?suse_version} <= 1020
+install -m644 -D util/udev.rules %{buildroot}/%{_sysconfdir}/udev/rules.d/99-fuse.rules
%endif
-%{__rm} -f %{buildroot}%{_libdir}/*.la
+find %{buildroot} -type f -name "*.la" -delete -print
# not needed for fuse, might reappar in separate package:
-%{__rm} -f %{buildroot}/%{_libdir}/libulockmgr.a
+rm -f %{buildroot}/%{_libdir}/libulockmgr.a
#UsrMerge
-mkdir $RPM_BUILD_ROOT/sbin
-mkdir $RPM_BUILD_ROOT/%{_lib}
-%{__ln_s} -v %{_sbindir}/mount.fuse $RPM_BUILD_ROOT/sbin
-pushd $RPM_BUILD_ROOT/%{_libdir}
+mkdir %{buildroot}/sbin
+mkdir %{buildroot}/%{_lib}
+ln -s -v %{_sbindir}/mount.fuse %{buildroot}/sbin
+pushd %{buildroot}/%{_libdir}
for libname in $(ls *.so.*);do
-%{__ln_s} -v /%{_libdir}/$libname %{buildroot}/%{_lib}
+ln -s -v /%{_libdir}/$libname %{buildroot}/%{_lib}
done
popd
#EndUsrMerge
-(cd example && %{__make} clean)
-%{__rm} -rf example/.deps example/Makefile.am example/Makefile.in
-%{__rm} -rf doc/Makefile.am doc/Makefile.in doc/Makefile
+(cd example && make clean)
+rm -rf example/.deps example/Makefile.am example/Makefile.in
+rm -rf doc/Makefile.am doc/Makefile.in doc/Makefile
%post
%if 0%{?suse_version} >= 1140
@@ -185,6 +188,7 @@
%else
%run_permissions
%endif
+
%verifyscript
%verify_permissions -e %{_bindir}/fusermount
@@ -198,8 +202,8 @@
%files
%defattr(-,root,root)
-%doc AUTHORS ChangeLog FAQ NEWS README* COPYING*
-%if %suse_version <= 1020
+%doc AUTHORS ChangeLog NEWS README* COPYING*
+%if 0%{?suse_version} <= 1020
%dir %{_sysconfdir}/udev
%dir %{_sysconfdir}/udev/rules.d
%{_sysconfdir}/udev/rules.d/99-fuse.rules
++++++ fuse-2.9.4.tar.gz -> fuse-2.9.5.tar.gz ++++++
++++ 3875 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package pinentry for openSUSE:Factory checked in at 2016-01-30 11:34:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pinentry (Old)
and /work/SRC/openSUSE:Factory/.pinentry.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pinentry"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pinentry/pinentry.changes 2016-01-20 09:54:13.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.pinentry.new/pinentry.changes 2016-01-30 11:34:12.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 20 08:49:48 UTC 2016 - astieger(a)suse.com
+
+- completely rename to qt5 [boo#962076]
+- fix self-deprecation rpmlint warning
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pinentry.spec ++++++
--- /var/tmp/diff_new_pack.t1EGao/_old 2016-01-30 11:34:14.000000000 +0100
+++ /var/tmp/diff_new_pack.t1EGao/_new 2016-01-30 11:34:14.000000000 +0100
@@ -60,7 +60,7 @@
Provides: pinentry-qt = %{version}
Obsoletes: pinentry-qt <= 0.8.3
Provides: pinentry-qt4 = %{version}
-Obsoletes: pinentry-qt4 <= 0.9.7
+Obsoletes: pinentry-qt4 < 0.9.7
%description qt5
This is a collection of simple PIN or passphrase entry dialogs which
@@ -156,7 +156,8 @@
# remove symlink
rm -rf %{buildroot}%{_bindir}/pinentry
-# backward compatibility symlink
+# backward compatibility symlinks
+ln -s pinentry-qt %{buildroot}%{_bindir}/pinentry-qt5
ln -s pinentry-qt %{buildroot}%{_bindir}/pinentry-qt4
cp %{SOURCE3} %{buildroot}%{_bindir}
@@ -176,6 +177,7 @@
%files qt5
%defattr(-,root,root)
+%attr(755,root,root) %{_bindir}/pinentry-qt5
%attr(755,root,root) %{_bindir}/pinentry-qt4
%attr(755,root,root) %{_bindir}/pinentry-qt
++++++ pinentry ++++++
--- /var/tmp/diff_new_pack.t1EGao/_old 2016-01-30 11:34:14.000000000 +0100
+++ /var/tmp/diff_new_pack.t1EGao/_new 2016-01-30 11:34:14.000000000 +0100
@@ -15,7 +15,7 @@
# Boris Ranto <branto(a)redhat.com> 2014
# Andreas Stieger <andreas.stieger(a)gmx.de> 2014
#
-# use proper binary (pinentry-qt4, pinentry-qt, pinentry-gtk-2 or pinentry-curses)
+# use proper binary (pinentry-qt5, pinentry-qt, pinentry-gtk-2 or pinentry-curses)
kde_running=
arg=
@@ -56,10 +56,10 @@
if [ -n "$PINENTRY_BINARY" ];
then
export PINENTRY_BINARY="$PINENTRY_BINARY"
-# if KDE is detected and pinentry-qt4 exists, use pinentry-qt4
-elif [ -n "$kde_running" -a "$kde_ver"x = 4x -a -x /usr/bin/pinentry-qt4 ]
+# if KDE is detected and pinentry-qt5 exists, use pinentry-qt5
+elif [ -n "$kde_running" -a "$kde_ver"x = 4x -a -x /usr/bin/pinentry-qt5 ]
then
- export PINENTRY_BINARY="/usr/bin/pinentry-qt4"
+ export PINENTRY_BINARY="/usr/bin/pinentry-qt5"
# if KDE is detected and pinentry-qt exists, use pinentry-qt
elif [ -n "$kde_running" -a -x /usr/bin/pinentry-qt ]
then
@@ -72,10 +72,10 @@
elif [ -n "$DISPLAY" -a -x /usr/bin/pinentry-gtk-2 ]
then
export PINENTRY_BINARY="/usr/bin/pinentry-gtk-2"
-# otherwise test if pinentry-qt4 exists although KDE is not detected
-elif [ -n "$DISPLAY" -a -x /usr/bin/pinentry-qt4 ]
+# otherwise test if pinentry-qt5 exists although KDE is not detected
+elif [ -n "$DISPLAY" -a -x /usr/bin/pinentry-qt5 ]
then
- export PINENTRY_BINARY="/usr/bin/pinentry-qt4"
+ export PINENTRY_BINARY="/usr/bin/pinentry-qt5"
# otherwise test if pinentry-qt exists although KDE is not detected
elif [ -n "$DISPLAY" -a -x /usr/bin/pinentry-qt ]
then
1
0
Hello community,
here is the log from the commit of package babl for openSUSE:Factory checked in at 2016-01-30 11:34:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/babl (Old)
and /work/SRC/openSUSE:Factory/.babl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "babl"
Changes:
--------
--- /work/SRC/openSUSE:Factory/babl/babl.changes 2015-02-16 07:36:10.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.babl.new/babl.changes 2016-01-30 11:34:09.000000000 +0100
@@ -1,0 +2,8 @@
+Thu Nov 26 03:30:16 UTC 2015 - zaitor(a)opensuse.org
+
+- Update to version 0.1.14:
+ + sRGB precision tuning
+ + Stability fixes
+ + Locale fix for setting error tolerance.
+
+-------------------------------------------------------------------
Old:
----
babl-0.1.12.tar.bz2
New:
----
babl-0.1.14.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ babl.spec ++++++
--- /var/tmp/diff_new_pack.SkRpxR/_old 2016-01-30 11:34:09.000000000 +0100
+++ /var/tmp/diff_new_pack.SkRpxR/_new 2016-01-30 11:34:09.000000000 +0100
@@ -16,10 +16,9 @@
#
-
Name: babl
Url: http://gegl.org/babl/
-Version: 0.1.12
+Version: 0.1.14
Release: 0
Summary: Dynamic Pixel Format Translation Library
License: LGPL-3.0+
@@ -94,7 +93,7 @@
%files -n libbabl-0_1-0
%defattr(-,root,root)
-%doc AUTHORS COPYING ChangeLog NEWS README TODO
+%doc AUTHORS COPYING NEWS README TODO
%{_libdir}/*.so.*
%{_libdir}/babl-0.1/
++++++ babl-0.1.12.tar.bz2 -> babl-0.1.14.tar.bz2 ++++++
++++ 15776 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package crash for openSUSE:Factory checked in at 2016-01-30 11:31:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/crash (Old)
and /work/SRC/openSUSE:Factory/.crash.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crash"
Changes:
--------
--- /work/SRC/openSUSE:Factory/crash/crash.changes 2015-09-13 09:45:16.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.crash.new/crash.changes 2016-01-30 11:31:52.000000000 +0100
@@ -1,0 +2,7 @@
+Thu Jan 28 16:22:27 UTC 2016 - vbabka(a)suse.com
+
+- Upgrade to 7.1.4 from upstream. For a detailed changelog see
+
+ http://people.redhat.com/anderson/crash.changelog.html
+
+-------------------------------------------------------------------
Old:
----
crash-7.1.3.tar.gz
New:
----
crash-7.1.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ crash.spec ++++++
--- /var/tmp/diff_new_pack.a9sSDc/_old 2016-01-30 11:31:53.000000000 +0100
+++ /var/tmp/diff_new_pack.a9sSDc/_new 2016-01-30 11:31:53.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package crash
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -46,7 +46,7 @@
Summary: Crash utility for live systems; netdump, diskdump, LKCD or mcore dumpfiles
License: GPL-3.0+ and GFDL-1.2
Group: Development/Tools/Debuggers
-Version: 7.1.3
+Version: 7.1.4
Release: 0
Source: %{name}-%{version}.tar.gz
Source2: crash_whitepaper-%{whitepaper_version}.tar.bz2
++++++ crash-7.1.3.tar.gz -> crash-7.1.4.tar.gz ++++++
/work/SRC/openSUSE:Factory/crash/crash-7.1.3.tar.gz /work/SRC/openSUSE:Factory/.crash.new/crash-7.1.4.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package ghc-adjunctions for openSUSE:Factory checked in at 2016-01-30 11:31:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-adjunctions (Old)
and /work/SRC/openSUSE:Factory/.ghc-adjunctions.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-adjunctions"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-adjunctions/ghc-adjunctions.changes 2015-10-06 13:24:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-adjunctions.new/ghc-adjunctions.changes 2016-01-30 11:31:49.000000000 +0100
@@ -1,0 +2,7 @@
+Tue Jan 26 07:58:32 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 4.3
+* Removed a spurious superclass constraint for Applicative (StoreT g w)
+* comonad 5 support
+
+-------------------------------------------------------------------
Old:
----
adjunctions-4.2.2.tar.gz
New:
----
adjunctions-4.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-adjunctions.spec ++++++
--- /var/tmp/diff_new_pack.8r7GIm/_old 2016-01-30 11:31:50.000000000 +0100
+++ /var/tmp/diff_new_pack.8r7GIm/_new 2016-01-30 11:31:50.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name adjunctions
Name: ghc-adjunctions
-Version: 4.2.2
+Version: 4.3
Release: 0
Summary: Adjunctions and representable functors
License: BSD-2-Clause
@@ -44,6 +44,7 @@
BuildRequires: ghc-semigroups-devel
BuildRequires: ghc-tagged-devel
BuildRequires: ghc-transformers-devel
+BuildRequires: ghc-transformers-compat-devel
BuildRequires: ghc-void-devel
# End cabal-rpm deps
++++++ adjunctions-4.2.2.tar.gz -> adjunctions-4.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adjunctions-4.2.2/.travis.yml new/adjunctions-4.3/.travis.yml
--- old/adjunctions-4.2.2/.travis.yml 2015-09-14 01:15:18.000000000 +0200
+++ new/adjunctions-4.3/.travis.yml 2016-01-17 03:21:47.000000000 +0100
@@ -13,12 +13,12 @@
matrix:
include:
- - env: CABALVER=1.16 GHCVER=7.4.2
+ - env: CABALVER=1.24 GHCVER=7.4.2
compiler: ": #GHC 7.4.2"
- addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.2,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
- - env: CABALVER=1.16 GHCVER=7.6.3
+ addons: {apt: {packages: [cabal-install-1.24,ghc-7.4.2,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
+ - env: CABALVER=1.24 GHCVER=7.6.3
compiler: ": #GHC 7.6.3"
- addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
+ addons: {apt: {packages: [cabal-install-1.24,ghc-7.6.3,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
- env: CABALVER=1.18 GHCVER=7.8.4
compiler: ": #GHC 7.8.4"
addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adjunctions-4.2.2/CHANGELOG.markdown new/adjunctions-4.3/CHANGELOG.markdown
--- old/adjunctions-4.2.2/CHANGELOG.markdown 2015-09-14 01:15:18.000000000 +0200
+++ new/adjunctions-4.3/CHANGELOG.markdown 2016-01-17 03:21:47.000000000 +0100
@@ -1,3 +1,9 @@
+4.3
+---
+* Removed a spurious superclass constraint for `Applicative (StoreT g w)`
+* GHC 8 support
+* `comonad` 5 support
+
4.2.2
-----
* Builds clean on GHC 7.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adjunctions-4.2.2/adjunctions.cabal new/adjunctions-4.3/adjunctions.cabal
--- old/adjunctions-4.2.2/adjunctions.cabal 2015-09-14 01:15:18.000000000 +0200
+++ new/adjunctions-4.3/adjunctions.cabal 2016-01-17 03:21:47.000000000 +0100
@@ -1,6 +1,6 @@
name: adjunctions
category: Data Structures, Adjunctions
-version: 4.2.2
+version: 4.3
license: BSD3
cabal-version: >= 1.6
license-file: LICENSE
@@ -40,20 +40,21 @@
UndecidableInstances
build-depends:
- array >= 0.3.0.2 && < 0.7,
- base >= 4 && < 5,
- comonad >= 4 && < 5,
- containers >= 0.3 && < 0.6,
- contravariant >= 1 && < 2,
- distributive >= 0.4 && < 1,
- free >= 4 && < 5,
- mtl >= 2.0.1 && < 2.3,
- profunctors >= 4 && < 6,
- tagged >= 0.7 && < 1,
- semigroupoids >= 4 && < 6,
- semigroups >= 0.11 && < 1,
- transformers >= 0.2 && < 0.5,
- void >= 0.5.5.1 && < 1
+ array >= 0.3.0.2 && < 0.7,
+ base >= 4 && < 5,
+ comonad >= 4 && < 6,
+ containers >= 0.3 && < 0.6,
+ contravariant >= 1 && < 2,
+ distributive >= 0.4 && < 1,
+ free >= 4 && < 5,
+ mtl >= 2.0.1 && < 2.3,
+ profunctors >= 4 && < 6,
+ tagged >= 0.7 && < 1,
+ semigroupoids >= 4 && < 6,
+ semigroups >= 0.11 && < 1,
+ transformers >= 0.2 && < 0.6,
+ transformers-compat >= 0.3 && < 1,
+ void >= 0.5.5.1 && < 1
exposed-modules:
Control.Comonad.Representable.Store
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adjunctions-4.2.2/src/Control/Comonad/Representable/Store.hs new/adjunctions-4.3/src/Control/Comonad/Representable/Store.hs
--- old/adjunctions-4.2.2/src/Control/Comonad/Representable/Store.hs 2015-09-14 01:15:18.000000000 +0200
+++ new/adjunctions-4.3/src/Control/Comonad/Representable/Store.hs 2016-01-17 03:21:47.000000000 +0100
@@ -95,7 +95,7 @@
instance (ComonadApply w, Semigroup (Rep g), Representable g) => ComonadApply (StoreT g w) where
StoreT ff m <@> StoreT fa n = StoreT (apRep <$> ff <@> fa) (m <> n)
-instance (Applicative w, Semigroup (Rep g), Monoid (Rep g), Representable g) => Applicative (StoreT g w) where
+instance (Applicative w, Monoid (Rep g), Representable g) => Applicative (StoreT g w) where
pure a = StoreT (pure (pureRep a)) mempty
StoreT ff m <*> StoreT fa n = StoreT (apRep <$> ff <*> fa) (m `mappend` n)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adjunctions-4.2.2/src/Control/Monad/Representable/Reader.hs new/adjunctions-4.3/src/Control/Monad/Representable/Reader.hs
--- old/adjunctions-4.2.2/src/Control/Monad/Representable/Reader.hs 2015-09-14 01:15:18.000000000 +0200
+++ new/adjunctions-4.3/src/Control/Monad/Representable/Reader.hs 2016-01-17 03:21:47.000000000 +0100
@@ -77,7 +77,9 @@
ReaderT fm >>- f = ReaderT $ tabulate (\a -> index fm a >>- flip index a . getReaderT . f)
instance (Representable f, Monad m) => Monad (ReaderT f m) where
+#if __GLASGOW_HASKELL__ < 710
return = ReaderT . pureRep . return
+#endif
ReaderT fm >>= f = ReaderT $ tabulate (\a -> index fm a >>= flip index a . getReaderT . f)
#if __GLASGOW_HASKELL >= 704
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adjunctions-4.2.2/src/Control/Monad/Representable/State.hs new/adjunctions-4.3/src/Control/Monad/Representable/State.hs
--- old/adjunctions-4.2.2/src/Control/Monad/Representable/State.hs 2015-09-14 01:15:18.000000000 +0200
+++ new/adjunctions-4.3/src/Control/Monad/Representable/State.hs 2016-01-17 03:21:47.000000000 +0100
@@ -147,7 +147,9 @@
StateT m >>- f = StateT $ fmap (>>- rightAdjunctRep (runStateT . f)) m
instance (Representable g, Monad m) => Monad (StateT g m) where
+#if __GLASGOW_VERSION__ < 710
return = StateT . leftAdjunctRep return
+#endif
StateT m >>= f = StateT $ fmap (>>= rightAdjunctRep (runStateT . f)) m
instance Representable f => BindTrans (StateT f) where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adjunctions-4.2.2/src/Control/Monad/Trans/Adjoint.hs new/adjunctions-4.3/src/Control/Monad/Trans/Adjoint.hs
--- old/adjunctions-4.2.2/src/Control/Monad/Trans/Adjoint.hs 2015-09-14 01:15:18.000000000 +0200
+++ new/adjunctions-4.3/src/Control/Monad/Trans/Adjoint.hs 2016-01-17 03:21:47.000000000 +0100
@@ -50,7 +50,7 @@
(<*>) = ap
instance (Adjunction f g, Monad m) => Monad (AdjointT f g m) where
- return = AdjointT . leftAdjunct return
+ return = pure
AdjointT m >>= f = AdjointT $ fmap (>>= rightAdjunct (runAdjointT . f)) m
-- | Exploiting this instance requires that we have the missing Traversables for Identity, (,)e and IdentityT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adjunctions-4.2.2/src/Control/Monad/Trans/Contravariant/Adjoint.hs new/adjunctions-4.3/src/Control/Monad/Trans/Contravariant/Adjoint.hs
--- old/adjunctions-4.2.2/src/Control/Monad/Trans/Contravariant/Adjoint.hs 2015-09-14 01:15:18.000000000 +0200
+++ new/adjunctions-4.3/src/Control/Monad/Trans/Contravariant/Adjoint.hs 2016-01-17 03:21:47.000000000 +0100
@@ -62,5 +62,5 @@
(<*>) = ap
instance (Adjunction f g, Comonad w) => Monad (AdjointT f g w) where
- return = AdjointT . leftAdjunct extract
+ return = pure
AdjointT m >>= f = AdjointT $ contramap (extend (rightAdjunct (runAdjointT . f))) m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adjunctions-4.2.2/src/Data/Functor/Adjunction.hs new/adjunctions-4.3/src/Data/Functor/Adjunction.hs
--- old/adjunctions-4.2.2/src/Data/Functor/Adjunction.hs 2015-09-14 01:15:18.000000000 +0200
+++ new/adjunctions-4.3/src/Data/Functor/Adjunction.hs 2016-01-17 03:21:47.000000000 +0100
@@ -48,10 +48,10 @@
import Control.Comonad.Trans.Traced
import Data.Functor.Identity
-import Data.Functor.Coproduct
import Data.Functor.Compose
import Data.Functor.Product
import Data.Functor.Rep
+import Data.Functor.Sum
import Data.Profunctor
import Data.Void
@@ -89,7 +89,7 @@
-- This can be used with the combinators from the @lens@ package.
--
-- @'adjuncted' :: 'Adjunction' f u => 'Iso'' (f a -> b) (a -> u b)@
-adjuncted :: (Adjunction f u, Profunctor p, Functor g)
+adjuncted :: (Adjunction f u, Profunctor p, Functor g)
=> p (a -> u b) (g (c -> u d)) -> p (f a -> b) (g (f c -> d))
adjuncted = dimap leftAdjunct (fmap rightAdjunct)
{-# INLINE adjuncted #-}
@@ -181,12 +181,10 @@
counit = rightAdjunct (rightAdjunct getCompose) . getCompose
instance (Adjunction f g, Adjunction f' g') =>
- Adjunction (Coproduct f f') (Product g g') where
- unit a = Pair (leftAdjunct left a) (leftAdjunct right a)
- counit = coproduct (rightAdjunct fstP) (rightAdjunct sndP)
- where
- fstP (Pair x _) = x
- sndP (Pair _ x) = x
+ Adjunction (Sum f f') (Product g g') where
+ unit a = Pair (leftAdjunct InL a) (leftAdjunct InR a)
+ counit (InL l) = rightAdjunct (\(Pair x _) -> x) l
+ counit (InR r) = rightAdjunct (\(Pair _ x) -> x) r
instance Adjunction f u =>
Adjunction (Free f) (Cofree u) where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/adjunctions-4.2.2/src/Data/Functor/Rep.hs new/adjunctions-4.3/src/Data/Functor/Rep.hs
--- old/adjunctions-4.2.2/src/Data/Functor/Rep.hs 2015-09-14 01:15:18.000000000 +0200
+++ new/adjunctions-4.3/src/Data/Functor/Rep.hs 2016-01-17 03:21:47.000000000 +0100
@@ -67,12 +67,16 @@
import Control.Comonad.Cofree
import Control.Monad.Trans.Identity
import Control.Monad.Reader
+#if MIN_VERSION_base(4,4,0)
+import Data.Complex
+#endif
import Data.Distributive
import Data.Functor.Bind
import Data.Functor.Identity
import Data.Functor.Compose
import Data.Functor.Extend
import Data.Functor.Product
+import qualified Data.Monoid as Monoid
import Data.Profunctor
import Data.Proxy
import Data.Sequence (Seq)
@@ -111,7 +115,7 @@
-- This can be used with the combinators from the @lens@ package.
--
-- @'tabulated' :: 'Representable' f => 'Iso'' ('Rep' f -> a) (f a)@
-tabulated :: (Representable f, Representable g, Profunctor p, Functor h)
+tabulated :: (Representable f, Representable g, Profunctor p, Functor h)
=> p (f a) (h (g b)) -> p (Rep f -> a) (h (Rep g -> b))
tabulated = dimap tabulate (fmap index)
{-# INLINE tabulated #-}
@@ -227,6 +231,28 @@
k Seq.:< ks -> index (index as k) ks
tabulate f = f Seq.empty :< tabulate (\k -> tabulate (f . (k Seq.<|)))
+instance Representable Monoid.Dual where
+ type Rep Monoid.Dual = ()
+ index (Monoid.Dual d) () = d
+ tabulate f = Monoid.Dual (f ())
+
+instance Representable Monoid.Product where
+ type Rep Monoid.Product = ()
+ index (Monoid.Product p) () = p
+ tabulate f = Monoid.Product (f ())
+
+instance Representable Monoid.Sum where
+ type Rep Monoid.Sum = ()
+ index (Monoid.Sum s) () = s
+ tabulate f = Monoid.Sum (f ())
+
+#if MIN_VERSION_base(4,4,0)
+instance Representable Complex where
+ type Rep Complex = Bool
+ index (r :+ i) key = if key then i else r
+ tabulate f = f False :+ f True
+#endif
+
newtype Co f a = Co { unCo :: f a } deriving Functor
instance Representable f => Representable (Co f) where
@@ -248,7 +274,7 @@
(>>-) = bindRep
instance Representable f => Monad (Co f) where
- return = pureRep
+ return = pure
(>>=) = bindRep
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 704
1
0
Hello community,
here is the log from the commit of package digikam for openSUSE:Factory checked in at 2016-01-30 11:31:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/digikam (Old)
and /work/SRC/openSUSE:Factory/.digikam.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "digikam"
Changes:
--------
--- /work/SRC/openSUSE:Factory/digikam/digikam.changes 2016-01-23 01:13:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.digikam.new/digikam.changes 2016-01-30 11:31:46.000000000 +0100
@@ -1,0 +2,14 @@
+Fri Jan 29 16:56:31 UTC 2016 - dimstar(a)opensuse.org
+
+- Split out the five plugins that upstream ships with a
+ metainfo.xml file: color, decorate, enhance, fxfilters and
+ transform. All new subpackages for now supplement the main
+ package (which is equal to the main package recommending them).
+
+-------------------------------------------------------------------
+Mon Jan 25 11:51:03 UTC 2016 - alarrosa(a)suse.com
+
+- Add symlinks for solid actions so Plasma5 can use digikam to
+ import images from the device notifier applet
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ digikam.spec ++++++
--- /var/tmp/diff_new_pack.YRvdY1/_old 2016-01-30 11:31:49.000000000 +0100
+++ /var/tmp/diff_new_pack.YRvdY1/_new 2016-01-30 11:31:49.000000000 +0100
@@ -20,6 +20,7 @@
Version: 4.14.0
Release: 0
%define rversion 4.14.0
+%define libversion 15.12.0
Summary: A KDE Photo Manager
License: GPL-2.0+
Group: Productivity/Graphics/Viewers
@@ -130,6 +131,54 @@
%description doc
This package contains the documentation for digikam
+# split out Image modification plugins. Upstream ships them with a
+# .metainfo.xml file, which is meant to list them as extensions in a
+# Software center. The ones we want installed by default we tag as Supplements(%{name}.
+%package plugin-color
+Summary: DigiKam: ImagePlugin-Color
+License: GPL-2.0+
+Group: Productivity/Graphics/Viewers
+Supplements: %{name}
+
+%description plugin-color
+A tool to correct colors of image
+
+%package plugin-decorate
+Summary: DigiKam: ImagePlugin-Decorate
+License: GPL-2.0+
+Group: Productivity/Graphics/Viewers
+Supplements: %{name}
+
+%description plugin-decorate
+A tool to decorate an image
+
+%package plugin-enhance
+Summary: DigiKam: ImagePlugin-Enhance
+License: GPL-2.0+
+Group: Productivity/Graphics/Viewers
+Supplements: %{name}
+
+%description plugin-enhance
+digiKam plugin to enhance photographs
+
+%package plugin-fxfilters
+Summary: DigiKam: ImagePlugin-FxFilters
+License: GPL-2.0+
+Group: Productivity/Graphics/Viewers
+Supplements: %{name}
+
+%description plugin-fxfilters
+Special effect filters plugin for digiKam
+
+%package plugin-transform
+Summary: DigiKam: ImagePlugin-Color
+License: GPL-2.0+
+Group: Productivity/Graphics/Viewers
+Supplements: %{name}
+
+%description plugin-transform
+A tool to transform image geometry
+
# split out acquireimage plugin in order to allow the main
# kipi-plugins package to be included on livecd (acquireimage
# requires sane-backends, which is blocked for livecd)
@@ -185,6 +234,18 @@
#Require the lib for the shared icons
Requires: libKF5Kipi30_0_0
Requires: marble-data
+Obsoletes: libkexiv2 < %{libversion}
+Provides: libkexiv2 = %{libversion}
+Obsoletes: libkface3 < %{libversion}
+Provides: libkface3 = %{libversion}
+Obsoletes: libkgeomap2 < %{libversion}
+Provides: libkgeomap2 = %{libversion}
+Obsoletes: libkipi11 < %{libversion}
+Provides: libkipi11 = %{libversion}
+Obsoletes: libksane0 < %{libversion}
+Provides: libksane0 = %{libversion}
+Obsoletes: libmediawiki1 < %{libversion}
+Provides: libmediawiki1 = %{libversion}
%description libs
These are the libraries libkipi, libkdcraw, libkgeomap, libkexiv2, libksane and libkface which are
@@ -274,6 +335,14 @@
ln -s %{_kde4_iconsdir}/oxygen/scalable/apps/rawconverter.svgz
popd
+# symlink solid actions into place known to Plasma 5, remove once digikam is KF5-based
+mkdir -p %{buildroot}%{_datadir}/solid/actions
+pushd %{buildroot}%{_kde4_appsdir}/solid/actions/
+for i in *.desktop; do
+ln -s %{_kde4_appsdir}/solid/actions/$i %{buildroot}%{_datadir}/solid/actions/
+done
+popd
+
%fdupes -s %{buildroot}
%kde_post_install
@@ -295,6 +364,9 @@
%{_kde4_appsdir}/kconf_update/adjustlevelstool.upd
%{_kde4_appsdir}/showfoto/
%{_kde4_appsdir}/solid
+%dir %{_datadir}/solid
+%dir %{_datadir}/solid/actions
+%{_datadir}/solid/actions/*.desktop
%{_kde4_bindir}/cleanup_digikamdb
%{_kde4_bindir}/digikam
%{_kde4_bindir}/digitaglinktree
@@ -305,7 +377,6 @@
%{_kde4_iconsdir}/hicolor/*/apps/showfoto.*
%{_kde4_libdir}/libdigikamcore.so.*
%{_kde4_libdir}/libdigikamdatabase.so.*
-%{_kde4_modulesdir}/digikam*.so
%{_kde4_modulesdir}/kio_digikamalbums.so
%{_kde4_modulesdir}/kio_digikamdates.so
%{_kde4_modulesdir}/kio_digikammapimages.so
@@ -316,7 +387,31 @@
%dir %{_kde4_datadir}/appdata
%{_kde4_datadir}/appdata/digikam.appdata.xml
%{_kde4_datadir}/appdata/showfoto.appdata.xml
-%{_kde4_datadir}/appdata/digiKam-ImagePlugin*.metainfo.xml
+
+%files plugin-color
+%defattr(-,root,root)
+%{_kde4_modulesdir}/digikamimageplugin_color.so
+%{_kde4_datadir}/appdata/digiKam-ImagePlugin_Color.metainfo.xml
+
+%files plugin-decorate
+%defattr(-,root,root)
+%{_kde4_modulesdir}/digikamimageplugin_decorate.so
+%{_kde4_datadir}/appdata/digiKam-ImagePlugin_Decorate.metainfo.xml
+
+%files plugin-enhance
+%defattr(-,root,root)
+%{_kde4_modulesdir}/digikamimageplugin_enhance.so
+%{_kde4_datadir}/appdata/digiKam-ImagePlugin_Enhance.metainfo.xml
+
+%files plugin-fxfilters
+%defattr(-,root,root)
+%{_kde4_modulesdir}/digikamimageplugin_fxfilters.so
+%{_kde4_datadir}/appdata/digiKam-ImagePlugin_FxFilters.metainfo.xml
+
+%files plugin-transform
+%defattr(-,root,root)
+%{_kde4_modulesdir}/digikamimageplugin_transform.so
+%{_kde4_datadir}/appdata/digiKam-ImagePlugin_Transform.metainfo.xml
%files doc
%defattr(-,root,root,-)
1
0
Hello community,
here is the log from the commit of package vim for openSUSE:Factory checked in at 2016-01-30 11:31:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vim (Old)
and /work/SRC/openSUSE:Factory/.vim.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vim"
Changes:
--------
--- /work/SRC/openSUSE:Factory/vim/vim.changes 2016-01-15 10:40:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.vim.new/vim.changes 2016-01-30 11:31:41.000000000 +0100
@@ -1,0 +2,66 @@
+Fri Jan 29 08:45:41 UTC 2016 - idonmez(a)suse.com
+
+- Updated to revision 1194, fixes the following problems
+ * New lines in the viminfo file are dropped.
+ * Old style tests for the argument list.
+ * Generated function prototypes still have __ARGS().
+ * Wrong argument to assert_exception() causes a crash.
+ * Illegal memory access when using :copen and :cclose.
+ * When running gvim in the foreground some icons are missing.
+ * Recognizing <sid> does not work when the language is Turkish.
+ * Using searchpair() with a skip expression that uses syntax
+ highlighting sometimes doesn't work.
+ * Cannot define keyword characters for a syntax file.
+ * Can't sort on floating point numbers.
+ * Default features are conservative.
+ * Conflict for "chartab".
+ * Using the local value of 'errorformat' causes more problems than it solves.
+ * 'langmap' applies to the first character typed in Select mode.
+ * Langmap test fails with normal build.
+ * Autocommands triggered by quickfix cannot always get the current title value.
+ * No support for JSON.
+ * Build with normal features fails.
+ * Coverity warns for NULL pointer and ignoring return value.
+ * type() does not work for v:true, v:none, etc.
+ * Automatically generated function prototypes use __ARGS.
+ * No error for jsondecode('"').
+ * ":argadd" without argument is supposed to add the current buffer name to the arglist.
+ * Missing error number in MzScheme.
+ * Expressions "0 + v:true" and "'' . v:true" cause an error.
+ * No tests for "is" and "isnot" with the new variables.
+ * This doesn't give the right result: eval(string(v:true)).
+ * No test for new behavior of v:true et al.
+ * The +channel feature is not in :version output.
+ * empty() doesn't work for the new special variables.
+ * test_writefile and test_viml do not delete the tempfile.
+ * Crash with invalid argument to glob2regpat().
+ * free_tv() can't handle special variables.
+ * Error messages for security context are hard to translate.
+ * The channel feature isn't working yet.
+ * Can't build with FEAT_EVAL but without FEAT_MBYTE.
+ * Compiler warning for not using return value of fwrite().
+
+-------------------------------------------------------------------
+Mon Jan 18 20:34:16 UTC 2016 - idonmez(a)suse.com
+
+- Updated to revision 1130, fixes the following problems
+ * Repeating CTRL-A doesn't work.
+ * No tests for :hardcopy and related options.
+ * When making a change while need_wait_return is set there is a two second delay.
+ * With 'rightleft' and concealing the cursor may move to the wrong position.
+ * Vim can create a directory but not delete it.
+ * When using ":next" with an illegal file name no error is reported.
+ * Using {ns} in variable name does not work. (lilydjwg)
+ * delete() does not work well with symbolic links.
+ * delete(x, 'rf') does not delete files starting with a dot.
+ * No longer get "." and ".." in directory list.
+ * argidx() has a wrong value after ":%argdelete". (Yegappan Lakshmanan)
+ * delete(x, 'rf') fails if a directory is empty. (Lcd)
+ * Using ":argadd" when there are no arguments results in the second
+ argument to be the current one. (Yegappan Lakshmanan)
+ * There is no perleval().
+ * Can only get the directory of the current window.
+ * Python None value can't be converted to a Vim value.
+ * Memory leak in :vimgrep.
+
+-------------------------------------------------------------------
Old:
----
v7.4.1087.tar.gz
New:
----
v7.4.1194.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vim.spec ++++++
--- /var/tmp/diff_new_pack.F604HK/_old 2016-01-30 11:31:43.000000000 +0100
+++ /var/tmp/diff_new_pack.F604HK/_new 2016-01-30 11:31:43.000000000 +0100
@@ -17,7 +17,7 @@
%define pkg_version 7.4
-%define patchlevel 1087
+%define patchlevel 1194
%define VIM_SUBDIR vim74
%define site_runtimepath /usr/share/vim/site
%define make make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/current MAKE="make -e" %{?_smp_mflags}
@@ -300,6 +300,7 @@
#
# stupid helper
install -m 0755 %{SOURCE18} %{buildroot}%{_datadir}/vim/current/tools/missing-vim-client
+
# remove unecessary duplicate manpages
rm -rf %{buildroot}%{_mandir}/fr.ISO8859-1/
rm -rf %{buildroot}%{_mandir}/fr.UTF-8/
@@ -315,7 +316,10 @@
# remove some c source files
rm -f %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/tools/*.c
rm -f %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/macros/maze/*.c
-#
+
+# Remove sample server to avoid python dependency
+rm %{buildroot}%{_datadir}/vim/%{VIM_SUBDIR}/tools/demoserver.py
+
# Create ghost files (see vim.conf)
mkdir -p %{buildroot}/var/run/vi.recover
++++++ v7.4.1087.tar.gz -> v7.4.1194.tar.gz ++++++
/work/SRC/openSUSE:Factory/vim/v7.4.1087.tar.gz /work/SRC/openSUSE:Factory/.vim.new/v7.4.1194.tar.gz differ: char 22, line 1
1
0
Hello community,
here is the log from the commit of package python3-Cython for openSUSE:Factory checked in at 2016-01-30 11:31:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-Cython (Old)
and /work/SRC/openSUSE:Factory/.python3-Cython.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-Cython"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-Cython/python3-Cython.changes 2015-10-22 12:57:38.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-Cython.new/python3-Cython.changes 2016-01-30 11:31:36.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Jan 28 12:48:45 UTC 2016 - rguenther(a)suse.com
+
+- Add python3-Cython-c++11.patch to fix complex math testcase compile
+ with GCC 6 defaulting to C++14. (bnc#963974)
+
+-------------------------------------------------------------------
New:
----
python3-Cython-c++11.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-Cython.spec ++++++
--- /var/tmp/diff_new_pack.8zaFKp/_old 2016-01-30 11:31:38.000000000 +0100
+++ /var/tmp/diff_new_pack.8zaFKp/_new 2016-01-30 11:31:38.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-Cython
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -25,6 +25,7 @@
Group: Development/Languages/Python
Source: http://pypi.python.org/packages/source/C/Cython/Cython-%{version}.tar.gz
Source1: python3-Cython-rpmlintrc
+Patch1: python3-Cython-c++11.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
BuildRequires: gcc-c++
@@ -52,6 +53,7 @@
%prep
%setup -q -n Cython-%{version}
+%patch1
sed -i "s|^#!.*||" Cython/Debugger/{libpython,Cygdb}.py cython.py # Fix non-executable scripts
# Fix EOL encoding
sed -i "s|\r||" Demos/callback/{README.txt,cheesefinder.h} Demos/embed/Makefile.{unix,msc.static} Doc/primes.c # Fix EOL encoding
++++++ python3-Cython-c++11.patch ++++++
--- Cython/Compiler/PyrexTypes.py.orig 2016-01-28 12:06:29.060198431 +0000
+++ Cython/Compiler/PyrexTypes.py 2016-01-28 12:07:24.296842892 +0000
@@ -1930,7 +1930,7 @@
#define __Pyx_CIMAG(z) ((z).imag)
#endif
-#if (defined(_WIN32) || defined(__clang__)) && defined(__cplusplus) && CYTHON_CCOMPLEX
+#if defined(__cplusplus) && (defined(_WIN32) || defined(__clang__) || __cplusplus >= 201103L) && CYTHON_CCOMPLEX
#define __Pyx_SET_CREAL(z,x) ((z).real(x))
#define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
#else
1
0
Hello community,
here is the log from the commit of package python3-six for openSUSE:Factory checked in at 2016-01-30 11:31:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-six (Old)
and /work/SRC/openSUSE:Factory/.python3-six.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-six"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-six/python3-six.changes 2016-01-23 01:04:05.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-six.new/python3-six.changes 2016-01-30 11:31:31.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Jan 28 11:06:19 UTC 2016 - tchvatal(a)suse.com
+
+- Fix issue with directory -> folder cpio error
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-six-doc.spec ++++++
--- /var/tmp/diff_new_pack.3JPvLg/_old 2016-01-30 11:31:32.000000000 +0100
+++ /var/tmp/diff_new_pack.3JPvLg/_new 2016-01-30 11:31:32.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-six-doc
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
++++++ python3-six.spec ++++++
--- /var/tmp/diff_new_pack.3JPvLg/_old 2016-01-30 11:31:32.000000000 +0100
+++ /var/tmp/diff_new_pack.3JPvLg/_new 2016-01-30 11:31:32.000000000 +0100
@@ -50,6 +50,14 @@
# %check
# python3 test_six.py
+%pre
+# previous versions of the package installed .egg-info as a directory,
+# the new update now installs it as a file. Clean out the directory, should it
+# exist.
+if [ -d %{python3_sitelib}/six-%{version}-py%{py3_ver}.egg-info ]; then
+ rm -rf %{python3_sitelib}/six-%{version}-py%{py3_ver}.egg-info
+fi
+
%files
%defattr(-,root,root)
%doc LICENSE README
1
0
Hello community,
here is the log from the commit of package python3-Twisted for openSUSE:Factory checked in at 2016-01-30 11:31:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-Twisted (Old)
and /work/SRC/openSUSE:Factory/.python3-Twisted.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-Twisted"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-Twisted/python3-Twisted.changes 2015-10-20 16:22:23.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-Twisted.new/python3-Twisted.changes 2016-01-30 11:31:27.000000000 +0100
@@ -1,0 +2,65 @@
+Tue Dec 1 00:08:12 UTC 2015 - arun(a)gmx.de
+
+- specfile:
+ * README is now a .rst files
+ * added CONTRIBUTING to %doc
+ * packaged twistd
+
+- update to version 15.5.0:
+ * Features
+ + twisted.python.url is a new abstraction for URLs, supporting RFC
+ 3987 IRIs. (#5388)
+ + twisted.python.logfile is now ported to Python 3. (#6749)
+ + twisted.python.zippath has been ported to Python 3. (#6917)
+ + twisted.internet.ssl.CertificateOptions and
+ twisted.internet.ssl.optionsForClientTLS now take a
+ acceptableProtocols parameter that enables negotiation of the next
+ protocol to speak after the TLS handshake has completed. This field
+ advertises protocols over both NPN and ALPN. Also added new
+ INegotiated interface for TLS interfaces that support protocol
+ negotiation. This interface adds a negotiatedProtocol property that
+ reports what protocol, if any, was negotiated in the TLS handshake.
+ (#7860)
+ + twisted.python.urlpath.URLPath now operates correctly on Python 3,
+ using bytes instead of strings, and introduces the fromBytes
+ constructor to assist with creating them cross-version. (#7994)
+ + twisted.application.strports is now ported to Python 3. (#8011)
+ + twistd (the Twisted Daemon) is now ported to Python 3. (#8012)
+ + Python 3.5 is now supported on POSIX platforms. (#8042)
+ + twisted.internet.serialport is now ported on Python 3. (#8099)
+ * Bugfixes
+ + twisted.logger.formatEvent now can format an event if it was
+ flattened (twisted.logger.eventAsJSON does this) and has text after
+ the last replacement field. (#8003)
+ + twisted.cred.checkers.FilePasswordDB now logs an error if the
+ credentials db file does not exist, no longer raises an unhandled
+ error. (#8028)
+ + twisted.python.threadpool.ThreadPool now properly starts enough
+ threads to do any work scheduled before ThreadPool.start() is
+ called, such as when work is scheduled in the reactor via
+ reactor.callInThread() before reactor.run(). (#8090)
+ * Improved Documentation
+ + Twisted Development test standard documentation now contain
+ information about avoiding test data files. (#6535)
+ + The documentation for twisted.internet.defer.DeferredSemaphore now
+ describes the actual usage for limit and tokens instance
+ attributes. (#8024)
+ * Deprecations and Removals
+ + twisted.python._initgroups, a C extension, has been removed and
+ stdlib support is now always used instead. (#5861)
+ + Python 2.6 is no longer supported. (#8017)
+ + twisted.python.util.OrderedDict is now deprecated, and uses of it
+ in Twisted are replaced with collections.OrderedDict. (#8051)
+ + twisted.persisted.sob.load, twisted.persisted.sob.loadValueFromFile
+ and twisted.persisted.sob.Persistent.save() are now deprecated when
+ used with a passphrase. The encyption used by these methods are
+ weak. (#8081)
+ + twisted.internet.interfaces.IStreamClientEndpointStringParser has
+ been removed and Twisted will no longer use parsers implementing
+ this interface. (#8094)
+ * Other
+ + #5976, #6628, #6894, #6980, #7228, #7693, #7731, #7997, #8046,
+ #8054, #8056, #8060, #8063, #8064, #8068, #8072, #8091, #8095,
+ #8096, #8098, #8106
+
+-------------------------------------------------------------------
Old:
----
Twisted-15.4.0.tar.bz2
New:
----
Twisted-15.5.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-Twisted.spec ++++++
--- /var/tmp/diff_new_pack.6u0IPE/_old 2016-01-30 11:31:28.000000000 +0100
+++ /var/tmp/diff_new_pack.6u0IPE/_new 2016-01-30 11:31:28.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-Twisted
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python3-Twisted
-Version: 15.4.0
+Version: 15.5.0
Release: 0
Url: http://twistedmatrix.com/
Summary: An asynchronous networking framework written in Python
@@ -73,8 +73,7 @@
# Prepare for update-alternatives usage
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
-for p in trial ; do
-# Only trial supports Python 3 right now, others are coming
+for p in trial twistd; do
# for p in cftp ckeygen conch mailmail manhole pyhtmlizer tap2deb tap2rpm tkconch trial twistd ; do
mv %{buildroot}%{_bindir}/$p %{buildroot}%{_bindir}/$p-%{py3_ver}
ln -s -f %{_sysconfdir}/alternatives/$p %{buildroot}%{_bindir}/$p
@@ -103,7 +102,8 @@
--slave %{_mandir}/man1/tap2deb.1.gz tap2deb.1.gz %{_mandir}/man1/tap2deb-%{py3_ver}.1.gz \
--slave %{_mandir}/man1/tap2rpm.1.gz tap2rpm.1.gz %{_mandir}/man1/tap2rpm-%{py3_ver}.1.gz \
--slave %{_mandir}/man1/tkconch.1.gz tkconch.1.gz %{_mandir}/man1/ctkconchftp-%{py3_ver}.1.gz \
- --slave %{_mandir}/man1/twistd.1.gz twistd.1.gz %{_mandir}/man1/twistd-%{py3_ver}.1.gz
+ --slave %{_mandir}/man1/twistd.1.gz twistd.1.gz %{_mandir}/man1/twistd-%{py3_ver}.1.gz \
+ --slave %{_bindir}/twistd twistd %{_bindir}/twistd-%{py3_ver}
# The remainder don't support Python 3.x yet:
# --slave %{_bindir}/cftp cftp %{_bindir}/cftp-%{py3_ver} \
@@ -115,11 +115,11 @@
# --slave %{_bindir}/tap2deb tap2deb %{_bindir}/tap2deb-%{py3_ver} \
# --slave %{_bindir}/tap2rpm tap2rpm %{_bindir}/tap2rpm-%{py3_ver} \
# --slave %{_bindir}/tkconch tkconch %{_bindir}/tkconch-%{py3_ver} \
-# --slave %{_bindir}/twistd twistd %{_bindir}/twistd-%{py3_ver} \
%postun
if [ $1 -eq 0 ] ; then
%_sbindir/update-alternatives --remove trial %{_bindir}/trial-%{py3_ver}
+ %_sbindir/update-alternatives --remove twistd %{_bindir}/twistd-%{py3_ver}
fi
%files doc
@@ -128,7 +128,7 @@
%files
%defattr(-,root,root,-)
-%doc LICENSE NEWS README
+%doc CONTRIBUTING LICENSE NEWS README.rst
# %{_bindir}/cftp
# %{_bindir}/ckeygen
# %{_bindir}/conch
@@ -139,7 +139,7 @@
# %{_bindir}/tap2rpm
# %{_bindir}/tkconch
%{_bindir}/trial
-# %{_bindir}/twistd
+%{_bindir}/twistd
# %{_bindir}/cftp-%{py3_ver}
# %{_bindir}/ckeygen-%{py3_ver}
# %{_bindir}/conch-%{py3_ver}
@@ -150,7 +150,7 @@
# %{_bindir}/tap2rpm-%{py3_ver}
# %{_bindir}/tkconch-%{py3_ver}
%{_bindir}/trial-%{py3_ver}
-# %{_bindir}/twistd-%{py3_ver}
+%{_bindir}/twistd-%{py3_ver}
%{_mandir}/man1/cftp.1.gz
%{_mandir}/man1/ckeygen.1.gz
%{_mandir}/man1/conch.1.gz
@@ -183,7 +183,7 @@
# %ghost %{_sysconfdir}/alternatives/tap2rpm
# %ghost %{_sysconfdir}/alternatives/tkconch
%ghost %{_sysconfdir}/alternatives/trial
-# %ghost %{_sysconfdir}/alternatives/twistd
+%ghost %{_sysconfdir}/alternatives/twistd
%ghost %{_sysconfdir}/alternatives/cftp.1.gz
%ghost %{_sysconfdir}/alternatives/ckeygen.1.gz
%ghost %{_sysconfdir}/alternatives/conch.1.gz
++++++ Twisted-15.4.0.tar.bz2 -> Twisted-15.5.0.tar.bz2 ++++++
++++ 31337 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python3-kombu for openSUSE:Factory checked in at 2016-01-30 11:31:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-kombu (Old)
and /work/SRC/openSUSE:Factory/.python3-kombu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-kombu"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-kombu/python3-kombu.changes 2015-11-02 12:55:05.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-kombu.new/python3-kombu.changes 2016-01-30 11:31:23.000000000 +0100
@@ -1,0 +2,36 @@
+Wed Jan 27 04:42:10 UTC 2016 - arun(a)gmx.de
+
+- specfile:
+ * update copyright year
+
+- update to version 3.0.33:
+ * Now depends on :mod:`amqp` 1.4.9.
+ * Redis: Fixed problem with auxilliary connections causing the main
+ consumer connection to be closed (Issue #550).
+ * Qpid: No longer uses threads to operate, to ensure compatibility
+ with all environments (Issue #531).
+
+- changes from version 3.0.32:
+ * Redis: Fixed bug introduced in 3.0.31 where the redis transport
+ always connects to localhost, regardless of host setting.
+
+- changes from version 3.0.31:
+ * Redis: Fixed bug introduced in 3.0.30 where socket was prematurely
+ disconnected.
+ * Hub: Removed debug logging message: "Deregistered fd..." (Issue
+ #549).
+
+- changes from version 3.0.30:
+ * Fixes compatiblity with uuid in Python 2.7.11 and 3.5.1. Fix
+ contributed by Kai Groner.
+ * Redis transport: Attempt at fixing problem with hanging consumer
+ disconnected from server.
+ * Event loop: Attempt at fixing issue with 100% CPU when using the
+ Redis transport,
+ * Database transport: Fixed oracle compatiblity. An "ORA-00907:
+ missing right parenthesis" error could manifest when using an
+ Oracle database with the database transport. Fix contributed by
+ Deepak N.
+ * Documentation fixes Contributed by Tommaso Barbugli.
+
+-------------------------------------------------------------------
Old:
----
kombu-3.0.29.tar.gz
New:
----
kombu-3.0.33.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-kombu.spec ++++++
--- /var/tmp/diff_new_pack.IiprJn/_old 2016-01-30 11:31:24.000000000 +0100
+++ /var/tmp/diff_new_pack.IiprJn/_new 2016-01-30 11:31:24.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-kombu
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python3-kombu
-Version: 3.0.29
+Version: 3.0.33
Release: 0
Summary: AMQP Messaging Framework for Python
License: BSD-3-Clause
++++++ kombu-3.0.29.tar.gz -> kombu-3.0.33.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/AUTHORS new/kombu-3.0.33/AUTHORS
--- old/kombu-3.0.29/AUTHORS 2015-10-26 18:58:25.000000000 +0100
+++ new/kombu-3.0.33/AUTHORS 2016-01-08 23:35:32.000000000 +0100
@@ -49,10 +49,13 @@
Franck Cuny <fcuny(a)saymedia.com>
Germán M. Bravo <german.mb(a)gmail.com>
Gregory Haskins <greg(a)greghaskins.com>
+Hank John <jindongh(a)gmail.com>
+haridsv
Hong Minhee <minhee(a)dahlia.kr>
Ian Eure <ian.eure(a)gmail.com>
Ian Struble <istruble(a)gmail.com>
Ionel Maries Cristian <contact(a)ionelmc.ro>
+iSlava <sig.crea(a)gmail.com>
James Saryerwinnie <js(a)jamesls.com>
James Turk <james.p.turk(a)gmail.com>
Jason Cater <jason(a)ncsfulfillment.com>
@@ -66,6 +69,8 @@
John Watson <john(a)disqus.com>
Jonathan Halcrow <jonathan.halcrow(a)gmail.com>
Joseph Crosland <jcrosland(a)flumotion.com>
+Joshua Harlow <harlowja(a)gmail.com>
+Kai Groner <kai(a)gronr.com>
Keith Fitzgerald <ghostrocket(a)me.com>
Kevin McCarthy <me(a)kevinmccarthy.org>
Kevin McDonald <k3vinmcdonald(a)gmail.com>
@@ -74,8 +79,10 @@
Mahendra M <Mahendra_M(a)infosys.com>
Marcin Lulek (ergo) <info(a)webreactor.eu>
Mark Lavin <mlavin(a)caktusgroup.com>
+markow <markow(a)red-sky.pl>
Matt Wise <wise(a)wiredgeek.net>
Maxime Rouyrre <rouyrre+git(a)gmail.com>
+mdk <luc.mdk(a)gmail.com>
Mher Movsisyan <mher.movsisyan(a)gmail.com>
Michael Barrett <mb(a)eventbrite.com>
Michael Nelson <michaeln(a)telesign.com>
@@ -123,6 +130,3 @@
Vincent Driessen <vincent(a)datafox.nl>
Zach Smith <zmsmith27(a)gmail.com>
Zhao Xiaohong <mrluanma(a)gmail.com>
-haridsv
-iSlava <sig.crea(a)gmail.com>
-markow <markow(a)red-sky.pl>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/Changelog new/kombu-3.0.33/Changelog
--- old/kombu-3.0.29/Changelog 2015-10-26 19:10:33.000000000 +0100
+++ new/kombu-3.0.33/Changelog 2016-01-09 03:36:24.000000000 +0100
@@ -4,6 +4,71 @@
Change history
================
+.. _version-3.0.33:
+
+3.0.33
+======
+:release-date: 2016-01-08 06:36 P.M PST
+:release-by: Ask Solem
+
+- Now depends on :mod:`amqp` 1.4.9.
+
+- Redis: Fixed problem with auxilliary connections causing the main
+ consumer connection to be closed (Issue #550).
+
+- Qpid: No longer uses threads to operate, to ensure compatibility with
+ all environments (Issue #531).
+
+.. _version-3.0.32:
+
+3.0.32
+======
+:release-date: 2015-12-16 02:29 P.M PST
+:release-by: Ask Solem
+
+- Redis: Fixed bug introduced in 3.0.31 where the redis transport always
+ connects to localhost, regardless of host setting.
+
+.. _version-3.0.31:
+
+3.0.31
+======
+:release-date: 2015-12-16 12:00 P.M PST
+:release-by: Ask Solem
+
+- Redis: Fixed bug introduced in 3.0.30 where socket was prematurely
+ disconnected.
+
+- Hub: Removed debug logging message: "Deregistered fd..." (Issue #549).
+
+.. _version-3.0.30:
+
+3.0.30
+======
+:release-date: 2015-12-07 12:28 A.M PST
+:release-by: Ask Solem
+
+- Fixes compatiblity with uuid in Python 2.7.11 and 3.5.1.
+
+ Fix contributed by Kai Groner.
+
+- Redis transport: Attempt at fixing problem with hanging consumer
+ after disconnected from server.
+
+- Event loop:
+ Attempt at fixing issue with 100% CPU when using the Redis transport,
+
+- Database transport: Fixed oracle compatiblity.
+
+ An "ORA-00907: missing right parenthesis" error could manifest when using
+ an Oracle database with the database transport.
+
+ Fix contributed by Deepak N.
+
+- Documentation fixes
+
+ Contributed by Tommaso Barbugli.
+
.. _version-3.0.29:
3.0.29
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/PKG-INFO new/kombu-3.0.33/PKG-INFO
--- old/kombu-3.0.29/PKG-INFO 2015-10-26 19:13:16.000000000 +0100
+++ new/kombu-3.0.33/PKG-INFO 2016-01-09 03:38:13.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: kombu
-Version: 3.0.29
+Version: 3.0.33
Summary: Messaging library for Python
Home-page: http://kombu.readthedocs.org
Author: Ask Solem
@@ -12,7 +12,7 @@
kombu - Messaging library for Python
========================================
- :Version: 3.0.29
+ :Version: 3.0.33
`Kombu` is a messaging library for Python.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/README.rst new/kombu-3.0.33/README.rst
--- old/kombu-3.0.29/README.rst 2015-10-26 19:10:16.000000000 +0100
+++ new/kombu-3.0.33/README.rst 2016-01-09 03:12:59.000000000 +0100
@@ -4,7 +4,7 @@
kombu - Messaging library for Python
========================================
-:Version: 3.0.29
+:Version: 3.0.33
`Kombu` is a messaging library for Python.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/docs/changelog.rst new/kombu-3.0.33/docs/changelog.rst
--- old/kombu-3.0.29/docs/changelog.rst 2015-10-26 19:10:33.000000000 +0100
+++ new/kombu-3.0.33/docs/changelog.rst 2016-01-09 03:36:24.000000000 +0100
@@ -4,6 +4,71 @@
Change history
================
+.. _version-3.0.33:
+
+3.0.33
+======
+:release-date: 2016-01-08 06:36 P.M PST
+:release-by: Ask Solem
+
+- Now depends on :mod:`amqp` 1.4.9.
+
+- Redis: Fixed problem with auxilliary connections causing the main
+ consumer connection to be closed (Issue #550).
+
+- Qpid: No longer uses threads to operate, to ensure compatibility with
+ all environments (Issue #531).
+
+.. _version-3.0.32:
+
+3.0.32
+======
+:release-date: 2015-12-16 02:29 P.M PST
+:release-by: Ask Solem
+
+- Redis: Fixed bug introduced in 3.0.31 where the redis transport always
+ connects to localhost, regardless of host setting.
+
+.. _version-3.0.31:
+
+3.0.31
+======
+:release-date: 2015-12-16 12:00 P.M PST
+:release-by: Ask Solem
+
+- Redis: Fixed bug introduced in 3.0.30 where socket was prematurely
+ disconnected.
+
+- Hub: Removed debug logging message: "Deregistered fd..." (Issue #549).
+
+.. _version-3.0.30:
+
+3.0.30
+======
+:release-date: 2015-12-07 12:28 A.M PST
+:release-by: Ask Solem
+
+- Fixes compatiblity with uuid in Python 2.7.11 and 3.5.1.
+
+ Fix contributed by Kai Groner.
+
+- Redis transport: Attempt at fixing problem with hanging consumer
+ after disconnected from server.
+
+- Event loop:
+ Attempt at fixing issue with 100% CPU when using the Redis transport,
+
+- Database transport: Fixed oracle compatiblity.
+
+ An "ORA-00907: missing right parenthesis" error could manifest when using
+ an Oracle database with the database transport.
+
+ Fix contributed by Deepak N.
+
+- Documentation fixes
+
+ Contributed by Tommaso Barbugli.
+
.. _version-3.0.29:
3.0.29
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/docs/introduction.rst new/kombu-3.0.33/docs/introduction.rst
--- old/kombu-3.0.29/docs/introduction.rst 2015-10-26 19:10:16.000000000 +0100
+++ new/kombu-3.0.33/docs/introduction.rst 2016-01-09 03:12:59.000000000 +0100
@@ -4,7 +4,7 @@
kombu - Messaging library for Python
========================================
-:Version: 3.0.29
+:Version: 3.0.33
`Kombu` is a messaging library for Python.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/docs/userguide/pools.rst new/kombu-3.0.33/docs/userguide/pools.rst
--- old/kombu-3.0.29/docs/userguide/pools.rst 2015-10-26 18:43:46.000000000 +0100
+++ new/kombu-3.0.33/docs/userguide/pools.rst 2016-01-08 23:35:32.000000000 +0100
@@ -155,7 +155,7 @@
from kombu import pools
from kombu import Connection
- connections = pools.Connection(limit=100)
+ connections = pools.Connections(limit=100)
producers = pools.Producers(limit=connections.limit)
connection = Connection('amqp://guest:guest@localhost:5672//')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/docs/userguide/serialization.rst new/kombu-3.0.33/docs/userguide/serialization.rst
--- old/kombu-3.0.29/docs/userguide/serialization.rst 2015-10-26 18:43:46.000000000 +0100
+++ new/kombu-3.0.33/docs/userguide/serialization.rst 2016-01-08 23:35:32.000000000 +0100
@@ -106,10 +106,10 @@
======================================
In some cases, you don't need your message data to be serialized. If you
-pass in a plain string or Unicode object as your message, then `Kombu` will
+pass in a plain string or Unicode object as your message and a custom `content_type`, then `Kombu` will
not waste cycles serializing/deserializing the data.
-You can optionally specify a `content_type` and `content_encoding`
+You can optionally specify a `content_encoding`
for the raw data::
>>> with open("~/my_picture.jpg", "rb") as fh:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/extra/appveyor/install.ps1 new/kombu-3.0.33/extra/appveyor/install.ps1
--- old/kombu-3.0.29/extra/appveyor/install.ps1 1970-01-01 01:00:00.000000000 +0100
+++ new/kombu-3.0.33/extra/appveyor/install.ps1 2015-12-30 00:12:28.000000000 +0100
@@ -0,0 +1,85 @@
+# Sample script to install Python and pip under Windows
+# Authors: Olivier Grisel and Kyle Kastner
+# License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/
+
+$BASE_URL = "https://www.python.org/ftp/python/"
+$GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py"
+$GET_PIP_PATH = "C:\get-pip.py"
+
+
+function DownloadPython ($python_version, $platform_suffix) {
+ $webclient = New-Object System.Net.WebClient
+ $filename = "python-" + $python_version + $platform_suffix + ".msi"
+ $url = $BASE_URL + $python_version + "/" + $filename
+
+ $basedir = $pwd.Path + "\"
+ $filepath = $basedir + $filename
+ if (Test-Path $filename) {
+ Write-Host "Reusing" $filepath
+ return $filepath
+ }
+
+ # Download and retry up to 5 times in case of network transient errors.
+ Write-Host "Downloading" $filename "from" $url
+ $retry_attempts = 3
+ for($i=0; $i -lt $retry_attempts; $i++){
+ try {
+ $webclient.DownloadFile($url, $filepath)
+ break
+ }
+ Catch [Exception]{
+ Start-Sleep 1
+ }
+ }
+ Write-Host "File saved at" $filepath
+ return $filepath
+}
+
+
+function InstallPython ($python_version, $architecture, $python_home) {
+ Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home
+ if (Test-Path $python_home) {
+ Write-Host $python_home "already exists, skipping."
+ return $false
+ }
+ if ($architecture -eq "32") {
+ $platform_suffix = ""
+ } else {
+ $platform_suffix = ".amd64"
+ }
+ $filepath = DownloadPython $python_version $platform_suffix
+ Write-Host "Installing" $filepath "to" $python_home
+ $args = "/qn /i $filepath TARGETDIR=$python_home"
+ Write-Host "msiexec.exe" $args
+ Start-Process -FilePath "msiexec.exe" -ArgumentList $args -Wait -Passthru
+ Write-Host "Python $python_version ($architecture) installation complete"
+ return $true
+}
+
+
+function InstallPip ($python_home) {
+ $pip_path = $python_home + "/Scripts/pip.exe"
+ $python_path = $python_home + "/python.exe"
+ if (-not(Test-Path $pip_path)) {
+ Write-Host "Installing pip..."
+ $webclient = New-Object System.Net.WebClient
+ $webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH)
+ Write-Host "Executing:" $python_path $GET_PIP_PATH
+ Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru
+ } else {
+ Write-Host "pip already installed."
+ }
+}
+
+function InstallPackage ($python_home, $pkg) {
+ $pip_path = $python_home + "/Scripts/pip.exe"
+ & $pip_path install $pkg
+}
+
+function main () {
+ InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON
+ InstallPip $env:PYTHON
+ InstallPackage $env:PYTHON wheel
+}
+
+main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/extra/appveyor/run_with_compiler.cmd new/kombu-3.0.33/extra/appveyor/run_with_compiler.cmd
--- old/kombu-3.0.29/extra/appveyor/run_with_compiler.cmd 1970-01-01 01:00:00.000000000 +0100
+++ new/kombu-3.0.33/extra/appveyor/run_with_compiler.cmd 2015-12-30 00:12:28.000000000 +0100
@@ -0,0 +1,47 @@
+:: To build extensions for 64 bit Python 3, we need to configure environment
+:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of:
+:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1)
+::
+:: To build extensions for 64 bit Python 2, we need to configure environment
+:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of:
+:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0)
+::
+:: 32 bit builds do not require specific environment configurations.
+::
+:: Note: this script needs to be run with the /E:ON and /V:ON flags for the
+:: cmd interpreter, at least for (SDK v7.0)
+::
+:: More details at:
+:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows
+:: http://stackoverflow.com/a/13751649/163740
+::
+:: Author: Olivier Grisel
+:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/
+@ECHO OFF
+
+SET COMMAND_TO_RUN=%*
+SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows
+
+SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%"
+IF %MAJOR_PYTHON_VERSION% == "2" (
+ SET WINDOWS_SDK_VERSION="v7.0"
+) ELSE IF %MAJOR_PYTHON_VERSION% == "3" (
+ SET WINDOWS_SDK_VERSION="v7.1"
+) ELSE (
+ ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%"
+ EXIT 1
+)
+
+IF "%PYTHON_ARCH%"=="64" (
+ ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture
+ SET DISTUTILS_USE_SDK=1
+ SET MSSdk=1
+ "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION%
+ "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release
+ ECHO Executing: %COMMAND_TO_RUN%
+ call %COMMAND_TO_RUN% || EXIT 1
+) ELSE (
+ ECHO Using default MSVC build environment for 32 bit architecture
+ ECHO Executing: %COMMAND_TO_RUN%
+ call %COMMAND_TO_RUN% || EXIT 1
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu/__init__.py new/kombu-3.0.33/kombu/__init__.py
--- old/kombu-3.0.29/kombu/__init__.py 2015-10-26 19:10:12.000000000 +0100
+++ new/kombu-3.0.33/kombu/__init__.py 2016-01-09 03:12:55.000000000 +0100
@@ -11,7 +11,7 @@
'version_info_t', ('major', 'minor', 'micro', 'releaselevel', 'serial'),
)
-VERSION = version_info_t(3, 0, 29, '', '')
+VERSION = version_info_t(3, 0, 33, '', '')
__version__ = '{0.major}.{0.minor}.{0.micro}{0.releaselevel}'.format(VERSION)
__author__ = 'Ask Solem'
__contact__ = 'ask(a)celeryproject.org'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu/async/hub.py new/kombu-3.0.33/kombu/async/hub.py
--- old/kombu-3.0.29/kombu/async/hub.py 2015-10-26 18:43:46.000000000 +0100
+++ new/kombu-3.0.33/kombu/async/hub.py 2016-01-08 23:35:32.000000000 +0100
@@ -30,6 +30,10 @@
_current_loop = None
+W_UNKNOWN_EVENT = """\
+Received unknown event %r for fd %r, please contact support!\
+"""
+
class Stop(BaseException):
"""Stops the event loop."""
@@ -146,12 +150,18 @@
logger.error('Error in timer: %r', exc, exc_info=1)
return min(delay or min_delay, max_delay)
+ def _remove_from_loop(self, fd):
+ try:
+ self._unregister(fd)
+ finally:
+ self._discard(fd)
+
def add(self, fd, callback, flags, args=(), consolidate=False):
fd = fileno(fd)
try:
self.poller.register(fd, flags)
except ValueError:
- self._discard(fd)
+ self._remove_from_loop(fd)
raise
else:
dest = self.readers if flags & READ else self.writers
@@ -163,8 +173,7 @@
def remove(self, fd):
fd = fileno(fd)
- self._unregister(fd)
- self._discard(fd)
+ self._remove_from_loop(fd)
def run_forever(self):
self._running = True
@@ -207,8 +216,7 @@
writable = fd in self.writers
on_write = self.writers.get(fd)
try:
- self._unregister(fd)
- self._discard(fd)
+ self._remove_from_loop(fd)
finally:
if writable:
cb, args = on_write
@@ -218,8 +226,7 @@
readable = fd in self.readers
on_read = self.readers.get(fd)
try:
- self._unregister(fd)
- self._discard(fd)
+ self._remove_from_loop(fd)
finally:
if readable:
cb, args = on_read
@@ -280,6 +287,7 @@
raise StopIteration()
for fd, event in events or ():
+ general_error = False
if fd in consolidate and \
writers.get(fd) is None:
to_consolidate.append(fd)
@@ -299,6 +307,12 @@
self.remove_writer(fd)
continue
elif event & ERR:
+ general_error = True
+ else:
+ logger.info(W_UNKNOWN_EVENT, event, fd)
+ general_error = True
+
+ if general_error:
try:
cb, cbargs = (readers.get(fd) or
writers.get(fd))
@@ -306,7 +320,9 @@
pass
if cb is None:
+ self.remove(fd)
continue
+
if isinstance(cb, generator):
try:
next(cb)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu/five.py new/kombu-3.0.33/kombu/five.py
--- old/kombu-3.0.29/kombu/five.py 2015-10-26 18:43:47.000000000 +0100
+++ new/kombu-3.0.33/kombu/five.py 2016-01-08 23:35:32.000000000 +0100
@@ -41,13 +41,12 @@
import platform
SYSTEM = platform.system()
- has_ctypes = True
try:
import ctypes
- except ImportError:
- has_ctypes = False
+ except ImportError: # pragma: no cover
+ ctypes = None # noqa
- if SYSTEM == 'Darwin' and has_ctypes:
+ if SYSTEM == 'Darwin' and ctypes is not None:
from ctypes.util import find_library
libSystem = ctypes.CDLL(find_library('libSystem.dylib'))
CoreServices = ctypes.CDLL(find_library('CoreServices'),
@@ -61,7 +60,7 @@
def _monotonic():
return absolute_to_nanoseconds(mach_absolute_time()) * 1e-9
- elif SYSTEM == 'Linux' and has_ctypes:
+ elif SYSTEM == 'Linux' and ctypes is not None:
# from stackoverflow:
# questions/1205722/how-do-i-get-monotonic-time-durations-in-python
import os
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu/tests/transport/test_qpid.py new/kombu-3.0.33/kombu/tests/transport/test_qpid.py
--- old/kombu-3.0.29/kombu/tests/transport/test_qpid.py 2015-10-26 18:43:47.000000000 +0100
+++ new/kombu-3.0.33/kombu/tests/transport/test_qpid.py 2016-01-08 23:35:32.000000000 +0100
@@ -4,7 +4,6 @@
import ssl
import socket
import sys
-import threading
import time
from collections import Callable
@@ -16,7 +15,7 @@
from kombu.five import Empty, keys, range, monotonic
from kombu.transport.qpid import (AuthenticationFailure, Channel, Connection,
ConnectionError, Message, NotFound, QoS,
- ReceiversMonitor, Transport)
+ Transport)
from kombu.transport.virtual import Base64
from kombu.tests.case import Case, Mock, case_no_pypy, case_no_python3
from kombu.tests.case import patch
@@ -855,9 +854,9 @@
self.mock_queue = Mock()
def tearDown(self):
- self.mock__has_queue.stop()
- self.mock__size.stop()
- self.mock__delete.stop()
+ self.patch__has_queue.stop()
+ self.patch__size.stop()
+ self.patch__delete.stop()
super(TestChannelQueueDelete, self).tearDown()
def test_checks_if_queue_exists(self):
@@ -1397,164 +1396,6 @@
@case_no_python3
@case_no_pypy
-class ReceiversMonitorTestBase(Case):
-
- def setUp(self):
- self.mock_session = Mock()
- self.mock_w = Mock()
- self.monitor = ReceiversMonitor(self.mock_session, self.mock_w)
-
-
-@case_no_python3
-@case_no_pypy
-class TestReceiversMonitorType(ReceiversMonitorTestBase):
-
- def test_qpid_messaging_receivers_monitor_subclass_of_threading(self):
- self.assertIsInstance(self.monitor, threading.Thread)
-
-
-@case_no_python3
-@case_no_pypy
-class TestReceiversMonitorInit(ReceiversMonitorTestBase):
-
- def setUp(self):
- thread___init___str = QPID_MODULE + '.threading.Thread.__init__'
- self.patch_parent___init__ = patch(thread___init___str)
- self.mock_Thread___init__ = self.patch_parent___init__.start()
- super(TestReceiversMonitorInit, self).setUp()
-
- def tearDown(self):
- self.patch_parent___init__.stop()
-
- def test_qpid_messaging_receivers_monitor_init_saves_session(self):
- self.assertIs(self.monitor._session, self.mock_session)
-
- def test_qpid_messaging_receivers_monitor_init_saves_fd(self):
- self.assertIs(self.monitor._w_fd, self.mock_w)
-
- def test_qpid_messaging_Receivers_monitor_init_calls_parent__init__(self):
- self.mock_Thread___init__.assert_called_once_with()
-
-
-@case_no_python3
-@case_no_pypy
-class TestReceiversMonitorRun(ReceiversMonitorTestBase):
-
- @patch.object(ReceiversMonitor, 'monitor_receivers')
- @patch(QPID_MODULE + '.time.sleep')
- def test_receivers_monitor_run_calls_monitor_receivers(
- self, mock_sleep, mock_monitor_receivers):
- mock_sleep.side_effect = BreakOutException()
- with self.assertRaises(BreakOutException):
- self.monitor.run()
- mock_monitor_receivers.assert_called_once_with()
-
- @patch(QPID_MODULE + '.SessionClosed', new=QpidException)
- @patch.object(ReceiversMonitor, 'monitor_receivers')
- @patch(QPID_MODULE + '.time.sleep')
- def test_receivers_monitor_run_exits_on_session_closed(
- self, mock_sleep, mock_monitor_receivers):
- mock_monitor_receivers.side_effect = QpidException()
- try:
- self.monitor.run()
- except Exception:
- self.fail('No exception should be raised here')
- mock_monitor_receivers.assert_called_once_with()
- mock_sleep.has_calls([])
-
- @patch.object(Transport, 'connection_errors', new=(BreakOutException, ))
- @patch.object(ReceiversMonitor, 'monitor_receivers')
- @patch(QPID_MODULE + '.time.sleep')
- @patch(QPID_MODULE + '.logger')
- def test_receivers_monitors_run_calls_logs_exception_and_sleeps(
- self, mock_logger, mock_sleep, mock_monitor_receivers):
- exc_to_raise = IOError()
- mock_monitor_receivers.side_effect = exc_to_raise
- mock_sleep.side_effect = BreakOutException()
- with self.assertRaises(BreakOutException):
- self.monitor.run()
- mock_logger.error.assert_called_once_with(exc_to_raise, exc_info=1)
- mock_sleep.assert_called_once_with(10)
-
- @patch.object(ReceiversMonitor, 'monitor_receivers')
- @patch(QPID_MODULE + '.time.sleep')
- def test_receivers_monitor_run_loops_when_exception_is_raised(
- self, mock_sleep, mock_monitor_receivers):
- def return_once_raise_on_second_call(*args):
- mock_sleep.side_effect = BreakOutException()
- mock_sleep.side_effect = return_once_raise_on_second_call
- with self.assertRaises(BreakOutException):
- self.monitor.run()
- mock_monitor_receivers.has_calls([call(), call()])
-
- @patch.object(Transport, 'recoverable_connection_errors',
- new=(QpidException, ))
- @patch.object(ReceiversMonitor, 'monitor_receivers')
- @patch(QPID_MODULE + '.time.sleep')
- @patch(QPID_MODULE + '.logger')
- @patch(QPID_MODULE + '.os.write')
- @patch(QPID_MODULE + '.sys.exc_info')
- def test_receivers_monitor_exits_when_recoverable_exception_raised(
- self, mock_sys_exc_info, mock_os_write, mock_logger, mock_sleep,
- mock_monitor_receivers):
- mock_monitor_receivers.side_effect = QpidException()
- mock_sleep.side_effect = BreakOutException()
- self.monitor.run()
- self.assertFalse(mock_logger.error.called)
-
- @patch.object(Transport, 'recoverable_connection_errors',
- new=(QpidException, ))
- @patch.object(ReceiversMonitor, 'monitor_receivers')
- @patch(QPID_MODULE + '.time.sleep')
- @patch(QPID_MODULE + '.logger')
- @patch(QPID_MODULE + '.os.write')
- def test_receivers_monitor_saves_exception_when_recoverable_exc_raised(
- self, mock_os_write, mock_logger, mock_sleep,
- mock_monitor_receivers):
- mock_monitor_receivers.side_effect = QpidException()
- mock_sleep.side_effect = BreakOutException()
- self.monitor.run()
- self.assertIs(
- self.mock_session.saved_exception,
- mock_monitor_receivers.side_effect,
- )
-
- @patch.object(Transport, 'recoverable_connection_errors',
- new=(QpidException, ))
- @patch.object(ReceiversMonitor, 'monitor_receivers')
- @patch(QPID_MODULE + '.time.sleep')
- @patch(QPID_MODULE + '.logger')
- @patch(QPID_MODULE + '.os.write')
- @patch(QPID_MODULE + '.sys.exc_info')
- def test_receivers_monitor_writes_e_to_pipe_when_recoverable_exc_raised(
- self, mock_sys_exc_info, mock_os_write, mock_logger, mock_sleep,
- mock_monitor_receivers):
- mock_monitor_receivers.side_effect = QpidException()
- mock_sleep.side_effect = BreakOutException()
- self.monitor.run()
- mock_os_write.assert_called_once_with(self.mock_w, 'e')
-
-
-@case_no_python3
-@case_no_pypy
-class TestReceiversMonitorMonitorReceivers(ReceiversMonitorTestBase):
-
- def test_receivers_monitor_monitor_receivers_calls_next_receivers(self):
- self.mock_session.next_receiver.side_effect = BreakOutException()
- with self.assertRaises(BreakOutException):
- self.monitor.monitor_receivers()
- self.mock_session.next_receiver.assert_called_once_with()
-
- def test_receivers_monitor_monitor_receivers_writes_to_fd(self):
- with patch(QPID_MODULE + '.os.write') as mock_os_write:
- mock_os_write.side_effect = BreakOutException()
- with self.assertRaises(BreakOutException):
- self.monitor.monitor_receivers()
- mock_os_write.assert_called_once_with(self.mock_w, '0')
-
-
-@case_no_python3
-@case_no_pypy
@disable_runtime_dependency_check
class TestTransportInit(Case):
@@ -1699,12 +1540,6 @@
self.transport = Transport(self.client)
self.mock_conn = Mock()
self.transport.Connection = self.mock_conn
- path_to_mock = QPID_MODULE + '.ReceiversMonitor'
- self.patcher = patch(path_to_mock)
- self.mock_ReceiverMonitor = self.patcher.start()
-
- def tearDown(self):
- self.patcher.stop()
def test_transport_establish_conn_new_option_overwrites_default(self):
self.client.userid = 'new-userid'
@@ -1863,22 +1698,7 @@
new_conn = self.transport.establish_connection()
self.assertIs(new_conn, self.mock_conn.return_value)
- def test_transport_establish_conn_creates_ReceiversMonitor(self):
- self.transport.establish_connection()
- self.mock_ReceiverMonitor.assert_called_once_with(
- self.transport.session, self.transport._w,
- )
-
- def test_transport_establish_conn_daemonizes_thread(self):
- self.transport.establish_connection()
- self.assertTrue(self.mock_ReceiverMonitor.return_value.daemon)
-
- def test_transport_establish_conn_starts_thread(self):
- self.transport.establish_connection()
- new_receiver_monitor = self.mock_ReceiverMonitor.return_value
- new_receiver_monitor.start.assert_called_once_with()
-
- def test_transport_establish_conn_ignores_hostname_if_not_localhost(self):
+ def test_transport_establish_conn_uses_hostname_if_not_default(self):
self.client.hostname = 'some_other_hostname'
self.transport.establish_connection()
self.mock_conn.assert_called_once_with(
@@ -1889,6 +1709,14 @@
transport='tcp',
)
+ def test_transport_sets_qpid_message_received_handler(self):
+ self.transport.establish_connection()
+ qpid_conn = self.mock_conn.return_value.get_qpid_connection
+ new_mock_session = qpid_conn.return_value.session.return_value
+ mock_set_callback = new_mock_session.set_message_received_handler
+ expected_callback = self.transport._qpid_session_ready
+ mock_set_callback.assert_called_once_with(expected_callback)
+
@case_no_python3
@case_no_pypy
@@ -1941,6 +1769,24 @@
@case_no_python3
@case_no_pypy
@disable_runtime_dependency_check
+class TestTransportQpidSessionReady(Case):
+
+ def setUp(self):
+ self.patch_a = patch(QPID_MODULE + '.os.write')
+ self.mock_os_write = self.patch_a.start()
+ self.transport = Transport(Mock())
+
+ def tearDown(self):
+ self.patch_a.stop()
+
+ def test_transport__qpid_session_ready_writes_symbol_to_fd(self):
+ self.transport._qpid_session_ready()
+ self.mock_os_write.assert_called_once_with(self.transport._w, '0')
+
+
+@case_no_python3
+@case_no_pypy
+@disable_runtime_dependency_check
class TestTransportOnReadable(Case):
def setUp(self):
@@ -1952,6 +1798,7 @@
def tearDown(self):
self.patch_a.stop()
+ self.patch_b.stop()
def test_transport_on_readable_reads_symbol_from_fd(self):
self.transport.on_readable(Mock(), Mock())
@@ -1971,16 +1818,6 @@
with self.assertRaises(IOError):
self.transport.on_readable(Mock(), Mock())
- def test_transport_on_readable_reads_e_off_of_pipe_raises_exc_info(self):
- self.transport.session = Mock()
- try:
- raise IOError()
- except Exception as error:
- self.transport.session.saved_exception = error
- self.mock_os_read.return_value = 'e'
- with self.assertRaises(IOError):
- self.transport.on_readable(Mock(), Mock())
-
@case_no_python3
@case_no_pypy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu/tests/transport/test_redis.py new/kombu-3.0.33/kombu/tests/transport/test_redis.py
--- old/kombu-3.0.29/kombu/tests/transport/test_redis.py 2015-10-26 18:43:47.000000000 +0100
+++ new/kombu-3.0.33/kombu/tests/transport/test_redis.py 2016-01-09 03:35:11.000000000 +0100
@@ -5,6 +5,7 @@
from anyjson import dumps, loads
from collections import defaultdict
+from contextlib import contextmanager
from itertools import count
from kombu import Connection, Exchange, Queue, Consumer, Producer
@@ -18,6 +19,23 @@
)
+class JSONEqual(object):
+ # The order in which a dict is serialized to json depends on the hashseed
+ # so we have this to support json in .assert_has_call*.
+
+ def __init__(self, expected):
+ self.expected = expected
+
+ def __eq__(self, other):
+ return loads(other) == loads(self.expected)
+
+ def __str__(self):
+ return self.expected
+
+ def __repr__(self):
+ return '(json)%r' % (self.expected,)
+
+
class _poll(eventio._select):
def register(self, fd, flags):
@@ -171,6 +189,9 @@
return self
+ def __repr__(self):
+ return '<MockClient: %r' % (id(self),)
+
class Pipeline(object):
@@ -201,13 +222,21 @@
class Channel(redis.Channel):
+ Client = Client
- def _get_client(self):
+ def _get_async_client(self):
return Client
- def _get_pool(self):
+ def _create_client(self, async=False):
+ return Client()
+
+ def _get_pool(self, async=False):
return Mock()
+ @contextmanager
+ def conn_or_acquire(self, client=None):
+ yield client if client is not None else self._create_client()
+
def _get_response_error(self):
return ResponseError
@@ -280,8 +309,8 @@
self._pool = pool_at_init[0]
super(XChannel, self).__init__(*args, **kwargs)
- def _get_client(self):
- return lambda *_, **__: client
+ def _create_client(self, async=False):
+ return client
class XTransport(Transport):
Channel = XChannel
@@ -302,9 +331,9 @@
self.channel._pool = None
self.channel._after_fork()
- self.channel._pool = Mock(name='pool')
+ pool = self.channel._pool = Mock(name='pool')
self.channel._after_fork()
- self.channel._pool.disconnect.assert_called_with()
+ pool.disconnect.assert_called_with()
def test_next_delivery_tag(self):
self.assertNotEqual(
@@ -332,8 +361,10 @@
self.channel._do_restore_message(
pl2, 'ex', 'rkey', client,
)
+
client.rpush.assert_has_calls([
- call('george', spl2), call('elaine', spl2),
+ call('george', JSONEqual(spl2)),
+ call('elaine', JSONEqual(spl2)),
])
client.rpush.side_effect = KeyError()
@@ -347,7 +378,8 @@
message = Mock(name='message')
with patch('kombu.transport.redis.loads') as loads:
loads.return_value = 'M', 'EX', 'RK'
- client = self.channel.client = Mock(name='client')
+ client = self.channel._create_client = Mock(name='client')
+ client = client()
client.pipeline = ContextMock()
restore = self.channel._do_restore_message = Mock(
name='_do_restore_message',
@@ -376,7 +408,8 @@
restore.assert_called_with('M', 'EX', 'RK', client, False)
def test_qos_restore_visible(self):
- client = self.channel.client = Mock(name='client')
+ client = self.channel._create_client = Mock(name='client')
+ client = client()
def pipe(*args, **kwargs):
return Pipeline(client)
@@ -556,36 +589,37 @@
def test_put_fanout(self):
self.channel._in_poll = False
- c = self.channel.client = Mock()
+ c = self.channel._create_client = Mock()
body = {'hello': 'world'}
self.channel._put_fanout('exchange', body, '')
- c.publish.assert_called_with('exchange', dumps(body))
+ c().publish.assert_called_with('exchange', JSONEqual(dumps(body)))
def test_put_priority(self):
- client = self.channel.client = Mock(name='client')
+ client = self.channel._create_client = Mock(name='client')
msg1 = {'properties': {'delivery_info': {'priority': 3}}}
self.channel._put('george', msg1)
- client.lpush.assert_called_with(
- self.channel._q_for_pri('george', 3), dumps(msg1),
+ client().lpush.assert_called_with(
+ self.channel._q_for_pri('george', 3), JSONEqual(dumps(msg1)),
)
msg2 = {'properties': {'delivery_info': {'priority': 313}}}
self.channel._put('george', msg2)
- client.lpush.assert_called_with(
- self.channel._q_for_pri('george', 9), dumps(msg2),
+ client().lpush.assert_called_with(
+ self.channel._q_for_pri('george', 9), JSONEqual(dumps(msg2)),
)
msg3 = {'properties': {'delivery_info': {}}}
self.channel._put('george', msg3)
- client.lpush.assert_called_with(
- self.channel._q_for_pri('george', 0), dumps(msg3),
+ client().lpush.assert_called_with(
+ self.channel._q_for_pri('george', 0), JSONEqual(dumps(msg3)),
)
def test_delete(self):
x = self.channel
- self.channel._in_poll = False
+ x._create_client = Mock()
+ x._create_client.return_value = x.client
delete = x.client.delete = Mock()
srem = x.client.srem = Mock()
@@ -597,7 +631,8 @@
)
def test_has_queue(self):
- self.channel._in_poll = False
+ self.channel._create_client = Mock()
+ self.channel._create_client.return_value = self.channel.client
exists = self.channel.client.exists = Mock()
exists.return_value = True
self.assertTrue(self.channel._has_queue('foo'))
@@ -662,16 +697,16 @@
self.channel._rotate_cycle('elaine')
@skip_if_not_module('redis')
- def test_get_client(self):
+ def test_get_async_client(self):
import redis as R
- KombuRedis = redis.Channel._get_client(self.channel)
+ KombuRedis = redis.Channel._get_async_client(self.channel)
self.assertTrue(KombuRedis)
Rv = getattr(R, 'VERSION', None)
try:
R.VERSION = (2, 4, 0)
with self.assertRaises(VersionMismatch):
- redis.Channel._get_client(self.channel)
+ redis.Channel._get_async_client(self.channel)
finally:
if Rv is not None:
R.VERSION = Rv
@@ -682,24 +717,6 @@
self.assertIs(redis.Channel._get_response_error(self.channel),
ResponseError)
- def test_avail_client_when_not_in_poll(self):
- self.channel._in_poll = False
- c = self.channel.client = Mock()
-
- with self.channel.conn_or_acquire() as client:
- self.assertIs(client, c)
-
- def test_avail_client_when_in_poll(self):
- self.channel._in_poll = True
- self.channel._pool = Mock()
- cc = self.channel._create_client = Mock()
- client = cc.return_value = Mock()
-
- with self.channel.conn_or_acquire():
- pass
- self.channel.pool.release.assert_called_with(client.connection)
- cc.assert_called_with()
-
def test_register_with_event_loop(self):
transport = self.connection.transport
transport.cycle = Mock(name='cycle')
@@ -908,7 +925,7 @@
channel._get('does-not-exist')
channel.close()
- def test_get_client(self):
+ def test_get_async_client(self):
myredis, exceptions = _redis_modules()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu/transport/django/managers.py new/kombu-3.0.33/kombu/transport/django/managers.py
--- old/kombu-3.0.29/kombu/transport/django/managers.py 2015-10-26 18:43:47.000000000 +0100
+++ new/kombu-3.0.33/kombu/transport/django/managers.py 2016-01-08 23:35:32.000000000 +0100
@@ -52,6 +52,8 @@
def select_for_update(qs):
+ if connection.vendor == 'oracle':
+ return qs
try:
return qs.select_for_update()
except AttributeError:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu/transport/qpid.py new/kombu-3.0.33/kombu/transport/qpid.py
--- old/kombu-3.0.29/kombu/transport/qpid.py 2015-10-26 18:43:47.000000000 +0100
+++ new/kombu-3.0.33/kombu/transport/qpid.py 2016-01-09 03:12:35.000000000 +0100
@@ -8,7 +8,6 @@
.. _`Qpid`: http://qpid.apache.org/
.. _`qpid-python`: http://pypi.python.org/pypi/qpid-python/
.. _`qpid-tools`: http://pypi.python.org/pypi/qpid-tools/
-.. _`Issue 2199`: https://github.com/celery/celery/issues/2199
The use this transport you must install the necessary dependencies. These
dependencies are available via PyPI and can be installed using the pip
@@ -22,11 +21,6 @@
to underlying dependencies not being compatible. This version is
tested and works with with Python 2.7.
-.. admonition:: Potential Deadlock
-
- This transport should be used with caution due to a known
- potential deadlock. See `Issue 2199`_ for more details.
-
Authentication
==============
@@ -79,13 +73,11 @@
"""
from __future__ import absolute_import
-import fcntl
import os
import select
import socket
import ssl
import sys
-import threading
import time
from itertools import count
@@ -94,6 +86,11 @@
import amqp.protocol
try:
+ import fcntl
+except ImportError:
+ fcntl = None # noqa
+
+try:
import qpidtoollibs
except ImportError: # pragma: no cover
qpidtoollibs = None # noqa
@@ -1327,81 +1324,6 @@
channel.connection = None
-class ReceiversMonitor(threading.Thread):
- """A monitoring thread that reads and handles messages from all receivers.
-
- A single instance of ReceiversMonitor is expected to be created by
- :class:`Transport`.
-
- In :meth:`monitor_receivers`, the thread monitors all receivers
- associated with the session created by the Transport using the blocking
- call to session.next_receiver(). When any receiver has messages
- available, a symbol '0' is written to the self._w_fd file descriptor. The
- :meth:`monitor_receivers` is designed not to exit, and loops over
- session.next_receiver() forever.
-
- The entry point of the thread is :meth:`run` which calls
- :meth:`monitor_receivers`.
-
- The thread is designed to be daemonized, and will be forcefully killed
- when all non-daemon threads have already exited.
- """
-
- def __init__(self, session, w):
- """Instantiate a ReceiversMonitor object
-
- :param session: The session which needs all of its receivers
- monitored.
- :type session: :class:`qpid.messaging.endpoints.Session`
- :param w: The file descriptor to write the '0' into when
- next_receiver unblocks.
- :type w: int
- """
- super(ReceiversMonitor, self).__init__()
- self._session = session
- self._w_fd = w
-
- def run(self):
- """Thread entry point for ReceiversMonitor
-
- Calls :meth:`monitor_receivers` with a log-and-reenter behavior for
- non connection errors. This guards against unexpected exceptions
- which could cause this thread to exit unexpectedly.
-
- A :class:`qpid.messaging.exceptions.SessionClosed` exception should
- cause this thread to exit. This is a normal exit condition and the
- thread is no longer needed.
-
- If a connection error occurs, the exception needs to be propagated
- to MainThread where the kombu exception handler can properly handle
- it. The exception is stored as saved_exception on the self._session
- object. The character 'e' is then written to the self.w_fd file
- descriptor and then this thread exits.
- """
- while True:
- try:
- self.monitor_receivers()
- except Transport.recoverable_connection_errors as exc:
- self._session.saved_exception = exc
- os.write(self._w_fd, 'e')
- break
- except SessionClosed:
- break
- except Exception as exc:
- logger.error(exc, exc_info=1)
- time.sleep(10)
-
- def monitor_receivers(self):
- """Monitor all receivers, and write to _w_fd when a message is ready.
-
- The call to next_receiver() blocks until a message is ready. Once a
- message is ready, write a '0' to _w_fd.
- """
- while True:
- self._session.next_receiver()
- os.write(self._w_fd, '0')
-
-
class Transport(base.Transport):
"""Kombu native transport for a Qpid broker.
@@ -1479,7 +1401,8 @@
self.verify_runtime_environment()
super(Transport, self).__init__(*args, **kwargs)
self.r, self._w = os.pipe()
- fcntl.fcntl(self.r, fcntl.F_SETFL, os.O_NONBLOCK)
+ if fcntl is not None:
+ fcntl.fcntl(self.r, fcntl.F_SETFL, os.O_NONBLOCK)
def verify_runtime_environment(self):
"""Verify that the runtime environment is acceptable.
@@ -1518,24 +1441,23 @@
'with your package manager. You can also try `pip install '
'qpid-python`.')
+ def _qpid_session_ready(self):
+ os.write(self._w, '0')
+
def on_readable(self, connection, loop):
"""Handle any messages associated with this Transport.
This method clears a single message from the externally monitored
file descriptor by issuing a read call to the self.r file descriptor
which removes a single '0' character that was placed into the pipe
- by :class:`ReceiversMonitor`. Once a '0' is read, all available
- events are drained through a call to :meth:`drain_events`.
+ by the Qpid session message callback handler. Once a '0' is read,
+ all available events are drained through a call to
+ :meth:`drain_events`.
The behavior of self.r is adjusted in __init__ to be non-blocking,
ensuring that an accidental call to this method when no more messages
will arrive will not cause indefinite blocking.
- If the self.r file descriptor receives the character 'e', an error
- occurred in the background thread, and this thread should raise the
- saved exception. The exception is stored as saved_exception on the
- session object.
-
Nothing is expected to be returned from :meth:`drain_events` because
:meth:`drain_events` handles messages by calling callbacks that are
maintained on the :class:`Connection` object. When
@@ -1570,9 +1492,7 @@
functionality.
:type loop: kombu.async.Hub
"""
- symbol = os.read(self.r, 1)
- if symbol == 'e':
- raise self.session.saved_exception
+ os.read(self.r, 1)
try:
self.drain_events(connection)
except socket.timeout:
@@ -1584,7 +1504,7 @@
Register the callback self.on_readable to be called when an
external epoll loop sees that the file descriptor registered is
ready for reading. The file descriptor is created by this Transport,
- and is updated by the ReceiversMonitor thread.
+ and is written to when a message is available.
Because supports_ev == True, Celery expects to call this method to
give the Transport an opportunity to register a read file descriptor
@@ -1680,9 +1600,7 @@
conn = self.Connection(**opts)
conn.client = self.client
self.session = conn.get_qpid_connection().session()
- monitor_thread = ReceiversMonitor(self.session, self._w)
- monitor_thread.daemon = True
- monitor_thread.start()
+ self.session.set_message_received_handler(self._qpid_session_ready)
return conn
def close_connection(self, connection):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu/transport/redis.py new/kombu-3.0.33/kombu/transport/redis.py
--- old/kombu-3.0.29/kombu/transport/redis.py 2015-10-26 18:43:47.000000000 +0100
+++ new/kombu-3.0.33/kombu/transport/redis.py 2016-01-08 23:35:32.000000000 +0100
@@ -97,6 +97,11 @@
)
+def get_redis_ConnectionError():
+ from redis import exceptions
+ return exceptions.ConnectionError
+
+
class MutexHeld(Exception):
pass
@@ -373,6 +378,7 @@
_client = None
_subclient = None
+ _closing = False
supports_fanout = True
keyprefix_queue = '_kombu.binding.%s'
keyprefix_fanout = '/{db}.'
@@ -401,7 +407,10 @@
#: and binding keys (like a topic exchange but using PUB/SUB).
#: This will be enabled by default in a future version.
fanout_patterns = False
+
+ _async_pool = None
_pool = None
+ _disconnecting_pools = False
from_transport_options = (
virtual.Channel.from_transport_options +
@@ -427,7 +436,8 @@
self.QoS = virtual.QoS
self._queue_cycle = []
- self.Client = self._get_client()
+ self.AsyncClient = self._get_async_client()
+ self.Client = redis.Redis
self.ResponseError = self._get_response_error()
self.active_fanout_queues = set()
self.auto_delete_queues = set()
@@ -446,8 +456,7 @@
try:
self.client.info()
except Exception:
- if self._pool:
- self._pool.disconnect()
+ self._disconnect_pools()
raise
self.connection.cycle.add(self) # add to channel poller.
@@ -458,12 +467,28 @@
register_after_fork(self, self._after_fork)
def _after_fork(self):
- if self._pool is not None:
- self._pool.disconnect()
+ self._disconnect_pools()
+
+ def _disconnect_pools(self):
+ if not self._disconnecting_pools:
+ self._disconnecting_pools = True
+ try:
+ if self._async_pool is not None:
+ self._async_pool.disconnect()
+ if self._pool is not None:
+ self._pool.disconnect()
+ self._async_pool = self._pool = None
+ finally:
+ self._disconnecting_pools = False
def _on_connection_disconnect(self, connection):
+ self._in_poll = False
+ self._in_listen = False
if self.connection and self.connection.cycle:
self.connection.cycle._on_connection_disconnect(connection)
+ self._disconnect_pools()
+ if not self._closing:
+ raise get_redis_ConnectionError()
def _do_restore_message(self, payload, exchange, routing_key,
client=None, leftmost=False):
@@ -738,8 +763,8 @@
return sum(sizes[::2])
def close(self):
- if self._pool:
- self._pool.disconnect()
+ self._closing = True
+ self._disconnect_pools()
if not self.closed:
# remove from channel poller.
self.connection.cycle.discard(self)
@@ -776,7 +801,7 @@
))
return vhost
- def _connparams(self):
+ def _connparams(self, async=False):
conninfo = self.connection.client
connparams = {'host': conninfo.hostname or '127.0.0.1',
'port': conninfo.port or DEFAULT_PORT,
@@ -803,52 +828,48 @@
redis.Connection
)
- class Connection(connection_cls):
- def disconnect(self):
- channel._on_connection_disconnect(self)
- super(Connection, self).disconnect()
- connparams['connection_class'] = Connection
+ if async:
+ class Connection(connection_cls):
+ def disconnect(self):
+ super(Connection, self).disconnect()
+ channel._on_connection_disconnect(self)
+ connparams['connection_class'] = Connection
return connparams
- def _create_client(self):
+ def _create_client(self, async=False):
+ if async:
+ return self.AsyncClient(connection_pool=self.async_pool)
return self.Client(connection_pool=self.pool)
- def _get_pool(self):
- params = self._connparams()
+ def _get_pool(self, async=False):
+ params = self._connparams(async=async)
self.keyprefix_fanout = self.keyprefix_fanout.format(db=params['db'])
return redis.ConnectionPool(**params)
- def _get_client(self):
+ def _get_async_client(self):
if redis.VERSION < (2, 4, 4):
raise VersionMismatch(
'Redis transport requires redis-py versions 2.4.4 or later. '
'You have {0.__version__}'.format(redis))
- # KombuRedis maintains a connection attribute on it's instance and
+ # AsyncRedis maintains a connection attribute on it's instance and
# uses that when executing commands
# This was added after redis-py was changed.
- class KombuRedis(redis.Redis): # pragma: no cover
+ class AsyncRedis(redis.Redis): # pragma: no cover
def __init__(self, *args, **kwargs):
- super(KombuRedis, self).__init__(*args, **kwargs)
+ super(AsyncRedis, self).__init__(*args, **kwargs)
self.connection = self.connection_pool.get_connection('_')
- return KombuRedis
+ return AsyncRedis
@contextmanager
def conn_or_acquire(self, client=None):
if client:
yield client
else:
- if self._in_poll:
- client = self._create_client()
- try:
- yield client
- finally:
- self.pool.release(client.connection)
- else:
- yield self.client
+ yield self._create_client()
@property
def pool(self):
@@ -856,15 +877,21 @@
self._pool = self._get_pool()
return self._pool
+ @property
+ def async_pool(self):
+ if self._async_pool is None:
+ self._async_pool = self._get_pool(async=True)
+ return self._async_pool
+
@cached_property
def client(self):
"""Client used to publish messages, BRPOP etc."""
- return self._create_client()
+ return self._create_client(async=True)
@cached_property
def subclient(self):
"""Pub/Sub connection used to consume fanout queues."""
- client = self._create_client()
+ client = self._create_client(async=True)
pubsub = client.pubsub()
pool = pubsub.connection_pool
pubsub.connection = pool.get_connection('pubsub', pubsub.shard_hint)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu/utils/__init__.py new/kombu-3.0.33/kombu/utils/__init__.py
--- old/kombu-3.0.29/kombu/utils/__init__.py 2015-10-26 18:43:47.000000000 +0100
+++ new/kombu-3.0.33/kombu/utils/__init__.py 2016-01-08 23:35:32.000000000 +0100
@@ -16,7 +16,11 @@
from itertools import count, repeat
from functools import wraps
from time import sleep
-from uuid import UUID, uuid4 as _uuid4, _uuid_generate_random
+from uuid import UUID, uuid4
+try:
+ from uuid import _uuid_generate_random
+except ImportError:
+ _uuid_generate_random = None
from kombu.five import items, reraise, string_t
@@ -140,13 +144,12 @@
print(str(m).format(*fargs, **fkwargs), file=sys.stderr)
-def uuid4():
- # Workaround for http://bugs.python.org/issue4607
- if ctypes and _uuid_generate_random: # pragma: no cover
+if ctypes and _uuid_generate_random: # pragma: no cover
+ def uuid4():
+ # Workaround for http://bugs.python.org/issue4607
buffer = ctypes.create_string_buffer(16)
_uuid_generate_random(buffer)
return UUID(bytes=buffer.raw)
- return _uuid4()
def uuid():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu.egg-info/PKG-INFO new/kombu-3.0.33/kombu.egg-info/PKG-INFO
--- old/kombu-3.0.29/kombu.egg-info/PKG-INFO 2015-10-26 19:13:11.000000000 +0100
+++ new/kombu-3.0.33/kombu.egg-info/PKG-INFO 2016-01-09 03:38:05.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: kombu
-Version: 3.0.29
+Version: 3.0.33
Summary: Messaging library for Python
Home-page: http://kombu.readthedocs.org
Author: Ask Solem
@@ -12,7 +12,7 @@
kombu - Messaging library for Python
========================================
- :Version: 3.0.29
+ :Version: 3.0.33
`Kombu` is a messaging library for Python.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu.egg-info/SOURCES.txt new/kombu-3.0.33/kombu.egg-info/SOURCES.txt
--- old/kombu-3.0.29/kombu.egg-info/SOURCES.txt 2015-10-26 19:13:11.000000000 +0100
+++ new/kombu-3.0.33/kombu.egg-info/SOURCES.txt 2016-01-09 03:38:05.000000000 +0100
@@ -107,6 +107,8 @@
examples/simple_task_queue/tasks.py
examples/simple_task_queue/worker.py
extra/doc2ghpages
+extra/appveyor/install.ps1
+extra/appveyor/run_with_compiler.cmd
extra/release/bump_version.py
extra/release/doc4allmods
extra/release/flakeplus.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/kombu.egg-info/requires.txt new/kombu-3.0.33/kombu.egg-info/requires.txt
--- old/kombu-3.0.29/kombu.egg-info/requires.txt 2015-10-26 19:13:11.000000000 +0100
+++ new/kombu-3.0.33/kombu.egg-info/requires.txt 2016-01-09 03:38:05.000000000 +0100
@@ -1,5 +1,5 @@
anyjson>=0.3.3
-amqp>=1.4.7,<2.0
+amqp>=1.4.9,<2.0
[sqlalchemy]
sqlalchemy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kombu-3.0.29/requirements/default.txt new/kombu-3.0.33/requirements/default.txt
--- old/kombu-3.0.29/requirements/default.txt 2015-10-26 18:43:47.000000000 +0100
+++ new/kombu-3.0.33/requirements/default.txt 2016-01-09 03:06:52.000000000 +0100
@@ -1,2 +1,2 @@
anyjson>=0.3.3
-amqp>=1.4.7,<2.0
+amqp>=1.4.9,<2.0
1
0
Hello community,
here is the log from the commit of package python3-openpyxl for openSUSE:Factory checked in at 2016-01-30 11:31:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-openpyxl (Old)
and /work/SRC/openSUSE:Factory/.python3-openpyxl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-openpyxl"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-openpyxl/python3-openpyxl.changes 2015-11-23 07:30:14.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-openpyxl.new/python3-openpyxl.changes 2016-01-30 11:31:18.000000000 +0100
@@ -1,0 +2,30 @@
+Wed Jan 27 04:41:00 UTC 2016 - arun(a)gmx.de
+
+- specfile:
+ * update copyright year
+
+- update to version 2.3.3:
+ * Bug fixes
+ + #540 Cannot read merged cells in read-only mode
+ + #565 Empty styled text blocks cannot be parsed
+ + #569 Issue warning rather than raise Exception raised for
+ unparsable definedNames
+ + #575 Cannot open workbooks with embdedded OLE files
+ + #584 Exception when saving borders with attribues
+ * Minor changes
+ + PR 103 Documentation about chart scaling and axis limits
+ + Raise an exception when trying to copy cells from other
+ workbooks.
+
+- changes from version 2.3.2:
+ * Bug fixes
+ + #554 Cannot add comments to a worksheet when preserving VBA
+ + #561 Exception when reading phonetic text
+ + #562 DARKBLUE is the same as RED
+ + #563 Minimum for row and column indexes not enforced
+ * Minor changes
+ + PR 97 One VML file per worksheet.
+ + PR 96 Correct descriptor for CharacterProperties.rtl
+ + #498 Metadata is not essential to use the package.
+
+-------------------------------------------------------------------
Old:
----
openpyxl-2.3.1.tar.gz
New:
----
openpyxl-2.3.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-openpyxl.spec ++++++
--- /var/tmp/diff_new_pack.vAkDUj/_old 2016-01-30 11:31:19.000000000 +0100
+++ /var/tmp/diff_new_pack.vAkDUj/_new 2016-01-30 11:31:19.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-openpyxl
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python3-openpyxl
-Version: 2.3.1
+Version: 2.3.3
Release: 0
Summary: A Python library to read/write Excel 2007 xlsx/xlsm files
License: MIT and Python-2.0
++++++ openpyxl-2.3.1.tar.gz -> openpyxl-2.3.3.tar.gz ++++++
++++ 1979 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package fontforge for openSUSE:Factory checked in at 2016-01-30 11:31:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fontforge (Old)
and /work/SRC/openSUSE:Factory/.fontforge.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fontforge"
Changes:
--------
--- /work/SRC/openSUSE:Factory/fontforge/fontforge.changes 2015-12-20 10:52:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.fontforge.new/fontforge.changes 2016-01-30 11:31:14.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Jan 26 08:10:44 UTC 2016 - pgajdos(a)suse.com
+
+- do not crash on invalid input data (when eof reached) [bsc#963023]
+ + fontforge-eof-crash.patch
+
+-------------------------------------------------------------------
New:
----
fontforge-eof-crash.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fontforge.spec ++++++
--- /var/tmp/diff_new_pack.qLWnxt/_old 2016-01-30 11:31:16.000000000 +0100
+++ /var/tmp/diff_new_pack.qLWnxt/_new 2016-01-30 11:31:16.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package fontforge
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -32,6 +32,8 @@
# workardound for bug 930076, imho upstream should fix this
# https://github.com/fontforge/fontforge/issues/2270
Patch1: fontforge-version.patch
+# https://github.com/fontforge/fontforge/pull/2613, bsc#963023
+Patch2: fontforge-eof-crash.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: cairo-devel
@@ -99,6 +101,7 @@
%setup -q
%patch0 -p1
%patch1
+%patch2
sed -i 's/\r$//' doc/html/{Big5.txt,corpchar.txt}
# workaround for bug 930076; we just need the _version_of_the_release_! (see also fontforge-version.patch) ---
grep 'doversion(FONTFORGE_MODTIME_STR)' fontforgeexe/startnoui.c && \
++++++ fontforge-eof-crash.patch ++++++
Index: fontforge/parsettf.c
===================================================================
--- fontforge/parsettf.c.orig 2016-01-26 09:01:44.025472518 +0100
+++ fontforge/parsettf.c 2016-01-26 09:04:24.853470665 +0100
@@ -5185,7 +5185,10 @@
/* the index table is backwards from the way I want to use it */
gcbig = 0;
for ( i=0; i<gc; ++i ) {
- indexes[val = getushort(ttf)] = i;
+ val = getushort(ttf);
+ if ( val<0 ) /* Don't crash on EOF */
+ break;
+ indexes[val] = i;
if ( val>=258 ) ++gcbig;
}
1
0
Hello community,
here is the log from the commit of package python3-pytest for openSUSE:Factory checked in at 2016-01-30 11:31:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-pytest (Old)
and /work/SRC/openSUSE:Factory/.python3-pytest.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-pytest"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-pytest/python3-pytest-doc.changes 2016-01-05 21:53:45.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-pytest.new/python3-pytest-doc.changes 2016-01-30 11:31:09.000000000 +0100
@@ -1,0 +2,33 @@
+Tue Jan 26 03:48:38 UTC 2016 - arun(a)gmx.de
+
+- specfile:
+ * changes from zip to tar.gz
+
+- update to version 2.8.7:
+ * fix #1338: use predictable object resolution for monkeypatch
+
+- changes from version 2.8.6:
+ * fix #1259: allow for double nodeids in junitxml, this was a
+ regression failing plugins combinations like pytest-pep8 +
+ pytest-flakes
+ * Workaround for exception that occurs in pyreadline when using
+ --pdb with standard I/O capture enabled. Thanks Erik M. Bray for
+ the PR.
+ * fix #900: Better error message in case the target of a monkeypatch
+ call raises an ImportError.
+ * fix #1292: monkeypatch calls (setattr, setenv, etc.) are now
+ O(1). Thanks David R. MacIver for the report and Bruno Oliveira
+ for the PR.
+ * fix #1223: captured stdout and stderr are now properly displayed
+ before entering pdb when --pdb is used instead of being thrown
+ away. Thanks Cal Leeming for the PR.
+ * fix #1305: pytest warnings emitted during pytest_terminal_summary
+ are now properly displayed. Thanks Ionel Maries Cristian for the
+ report and Bruno Oliveira for the PR.
+ * fix #628: fixed internal UnicodeDecodeError when doctests contain
+ unicode. Thanks Jason R. Coombs for the report and Bruno Oliveira
+ for the PR.
+ * fix #1334: Add captured stdout to jUnit XML report on setup
+ error. Thanks Georgy Dyuldin for the PR.
+
+-------------------------------------------------------------------
python3-pytest.changes: same change
Old:
----
pytest-2.8.5.zip
New:
----
pytest-2.8.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-pytest-doc.spec ++++++
--- /var/tmp/diff_new_pack.cE2bGJ/_old 2016-01-30 11:31:10.000000000 +0100
+++ /var/tmp/diff_new_pack.cE2bGJ/_new 2016-01-30 11:31:10.000000000 +0100
@@ -17,15 +17,14 @@
Name: python3-pytest-doc
-Version: 2.8.5
+Version: 2.8.7
Release: 0
Summary: Simple powerful testing with Python
License: MIT
Group: Development/Languages/Python
Url: http://pytest.org
-Source: http://pypi.python.org/packages/source/p/pytest/pytest-%{version}.zip
+Source: http://pypi.python.org/packages/source/p/pytest/pytest-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: unzip
# Documentation requirements:
BuildRequires: python3-Sphinx
BuildRequires: python3-py >= 1.4.22
++++++ python3-pytest.spec ++++++
--- /var/tmp/diff_new_pack.cE2bGJ/_old 2016-01-30 11:31:10.000000000 +0100
+++ /var/tmp/diff_new_pack.cE2bGJ/_new 2016-01-30 11:31:10.000000000 +0100
@@ -17,17 +17,16 @@
Name: python3-pytest
-Version: 2.8.5
+Version: 2.8.7
Release: 0
Summary: Simple powerful testing with Python
License: MIT
Group: Development/Languages/Python
Url: http://pytest.org
-Source: http://pypi.python.org/packages/source/p/pytest/pytest-%{version}.zip
+Source: http://pypi.python.org/packages/source/p/pytest/pytest-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python3
BuildRequires: python3-devel
-BuildRequires: unzip
# Test requirements:
%if 0%{?suse_version} <= 1310
# mock is built-in for python 3.4
1
0
Hello community,
here is the log from the commit of package python-Sphinx for openSUSE:Factory checked in at 2016-01-30 11:31:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Sphinx (Old)
and /work/SRC/openSUSE:Factory/.python-Sphinx.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Sphinx"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Sphinx/python-Sphinx.changes 2016-01-20 09:53:57.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-Sphinx.new/python-Sphinx.changes 2016-01-30 11:31:05.000000000 +0100
@@ -1,0 +2,25 @@
+Mon Jan 25 10:56:43 UTC 2016 - michael(a)stroeder.com
+
+- requires python-pygments => 2.1
+- update to version 1.3.5:
+ * Fix line numbers was not shown on warnings in LaTeX and texinfo
+ builders
+ * Fix filenames were not shown on warnings of citations
+ * Fix line numbers was not shown on warnings in LaTeX and texinfo
+ builders
+ * Fix line numbers was not shown on warnings of indecies
+ * #2026: Fix LaTeX builder rais error if parsed-literal includes
+ links
+ * #2243: Ignore strange docstring types for classes, do not crash
+ * #2247: Fix #2205 breaks make html for definition list with
+ classifiers that contains regular-expression like string
+ * #1565: Show warning if Pygments throws an ErrorToken
+ * #2211: Fix paragraphs in table cell doesn't work in Latex output
+ * #2253: ":pyobject:" option of "literalinclude" directive can't
+ detect indented body block when the block starts with blank or
+ comment lines.
+ * Fix TOC is not shown when no ":maxdepth:" for toctrees (ref: #771)
+ * Fix warning message for ":numref:" if target is in orphaned doc
+ (ref: #2244)
+
+-------------------------------------------------------------------
Old:
----
Sphinx-1.3.4.tar.gz
New:
----
Sphinx-1.3.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Sphinx.spec ++++++
--- /var/tmp/diff_new_pack.CXtMY9/_old 2016-01-30 11:31:06.000000000 +0100
+++ /var/tmp/diff_new_pack.CXtMY9/_new 2016-01-30 11:31:06.000000000 +0100
@@ -17,7 +17,7 @@
Name: python-Sphinx
-Version: 1.3.4
+Version: 1.3.5
Release: 0
Url: http://sphinx-doc.org
Summary: Python documentation generator
@@ -37,7 +37,7 @@
BuildRequires: python-snowballstemmer
BuildRequires: python-sphinx_rtd_theme
# Testsuite requirements:
-BuildRequires: python-Pygments >= 2.0
+BuildRequires: python-Pygments >= 2.1
BuildRequires: python-nose
Requires(post): update-alternatives
Requires(postun): update-alternatives
++++++ Sphinx-1.3.4.tar.gz -> Sphinx-1.3.5.tar.gz ++++++
++++ 3202 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-Pygments for openSUSE:Factory checked in at 2016-01-30 11:30:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Pygments (Old)
and /work/SRC/openSUSE:Factory/.python-Pygments.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Pygments"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Pygments/python-Pygments.changes 2015-03-16 06:58:49.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-Pygments.new/python-Pygments.changes 2016-01-30 11:31:01.000000000 +0100
@@ -1,0 +2,29 @@
+Mon Jan 25 14:47:30 UTC 2016 - michael(a)stroeder.com
+
+- Update to version 2.1
+ - Added styles:
+ * Lovelace (PR#456)
+ * Algol and Algol-nu (#1090)
+ - Added formatters:
+ * IRC (PR#458)
+ * True color (24-bit) terminal ANSI sequences (#1142)
+ (formatter alias: "16m")
+ - New "filename" option for HTML formatter (PR#527).
+ - Improved performance of the HTML formatter for long lines (PR#504).
+ - Updated autopygmentize script (PR#445).
+ - Fixed style inheritance for non-standard token types in HTML output.
+ - Added support for async/await to Python 3 lexer.
+ - Rewrote linenos option for TerminalFormatter (it's better, but slightly
+ different output than before) (#1147).
+ - Javascript lexer now supports most of ES6 (#1100).
+ - Cocoa builtins updated for iOS 8.1 (PR#433).
+ - Combined BashSessionLexer and ShellSessionLexer, new version should support
+ the prompt styles of either.
+ - Added option to pygmentize to show a full traceback on exceptions.
+ - Fixed incomplete output on Windows and Python 3 (e.g. when using iPython
+ Notebook) (#1153).
+ - Allowed more traceback styles in Python console lexer (PR#253).
+ - Added decorators to TypeScript (PR#509).
+ - Fix highlighting of certain IRC logs formats (#1076).
+
+-------------------------------------------------------------------
Old:
----
Pygments-2.0.2.tar.gz
New:
----
Pygments-2.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Pygments.spec ++++++
--- /var/tmp/diff_new_pack.i3Ax6t/_old 2016-01-30 11:31:02.000000000 +0100
+++ /var/tmp/diff_new_pack.i3Ax6t/_new 2016-01-30 11:31:02.000000000 +0100
@@ -17,7 +17,7 @@
Name: python-Pygments
-Version: 2.0.2
+Version: 2.1
Release: 0
Url: http://pygments.org
Summary: Pygments is a syntax highlighting package written in Python
++++++ Pygments-2.0.2.tar.gz -> Pygments-2.1.tar.gz ++++++
++++ 193310 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libinput for openSUSE:Factory checked in at 2016-01-30 11:30:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libinput (Old)
and /work/SRC/openSUSE:Factory/.libinput.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libinput"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libinput/libinput.changes 2015-12-27 01:58:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libinput.new/libinput.changes 2016-01-30 11:30:56.000000000 +0100
@@ -1,0 +2,11 @@
+Mon Jan 25 15:38:41 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 1.1.5:
+ * This release fixes a disable-while-typing issue on the Macbook
+ Pro and works around some middle-finger tap issues on semi-mt
+ devices. Unfortunately, due to the inconsistent (and often
+ garbage) data that semi-mt touchpads send we had to resort to
+ disabling pinch gestures on those devices to make three-finger
+ taps reliable.
+
+-------------------------------------------------------------------
Old:
----
libinput-1.1.4.tar.xz
libinput-1.1.4.tar.xz.sig
New:
----
libinput-1.1.5.tar.xz
libinput-1.1.5.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libinput.spec ++++++
--- /var/tmp/diff_new_pack.MM8xCH/_old 2016-01-30 11:30:57.000000000 +0100
+++ /var/tmp/diff_new_pack.MM8xCH/_new 2016-01-30 11:30:57.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libinput
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,8 +18,8 @@
Name: libinput
%define lname libinput10
-%define rversion 1.1.4
-Version: 1.1.4
+%define rversion 1.1.5
+Version: 1.1.5
Release: 0
Summary: Input device and event processing library
License: MIT
++++++ libinput-1.1.4.tar.xz -> libinput-1.1.5.tar.xz ++++++
++++ 8130 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package openldap2 for openSUSE:Factory checked in at 2016-01-30 11:30:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openldap2 (Old)
and /work/SRC/openSUSE:Factory/.openldap2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openldap2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/openldap2/openldap2-client.changes 2015-12-06 07:38:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.openldap2.new/openldap2-client.changes 2016-01-30 11:30:52.000000000 +0100
@@ -2 +2,42 @@
-Wed Dec 2 12:51:10 UTC 2015 - hguo(a)suse.com
+Mon Jan 25 14:10:12 UTC 2016 - hguo(a)suse.com
+
+- Relabel patch 0011-Enforce-minimum-DH-size-of-1024.patch
+ into 0010-Enforce-minimum-DH-size-of-1024.patch
+
+-------------------------------------------------------------------
+Tue Dec 8 11:36:16 UTC 2015 - michael(a)stroeder.com
+
+- Upgrade to upstream 2.4.43 release with accumulated bug fixes.
+- Still build on SLES12
+- Loadable backend and overlay modules are now installed
+ into arch-specific path %{_libdir}/openldap
+- All backends and overlays as modules for smaller memory footprint
+ on memory constrained systems
+- Added extra package for back-sock
+- Consequent use of %{_rundir} everywhere
+- Rely on upstream ./configure script instead of any other
+ macro foo
+- Dropped linking with libwrap
+- Dropped 0004-libldap-use-gethostbyname_r.dif because this
+ work-around for nss_ldap is obsolete
+- New sub-package openldap2-contrib with selected contrib/ overlays
+- Replaced addonschema.tar.gz with separate schema sources
+- Updated ldapns.schema from recent slapo-nssov source tree
+- Added symbolic link to slapd executable in /usr/sbin/
+- Added more complex example configuration file
+ /etc/openldap/slapd.conf.example
+- Set OPENLDAP_START_LDAPI="yes" in /etc/sysconfig/openldap
+- Set OPENLDAP_REGISTER_SLP="no" in /etc/sysconfig/openldap
+- Added patch for OpenLDAP ITS#7796 to avoid excessive
+ "not index" logging:
+ 0011-openldap-re24-its7796.patch
+- Replaced openldap-rc.tgz with single source files
+- Added soft dependency (Recommends) to cyrus-sasl
+- Added soft dependency (Recommends) to cyrus-sasl-devel
+ to openldap2-devel
+- Added patch for OpenLDAP ITS#8336 (assert in liblmdb):
+ 0012-openldap-re24-its8336.patch
+- Remove obsolete patch 0001-build-adjustments.dif
+
+-------------------------------------------------------------------
+Wed Dec 2 12:50:47 UTC 2015 - hguo(a)suse.com
@@ -39 +80 @@
-Thu Oct 1 11:08:59 UTC 2015 - hguo(a)suse.com
+Thu Oct 1 11:08:41 UTC 2015 - hguo(a)suse.com
--- /work/SRC/openSUSE:Factory/openldap2/openldap2.changes 2015-12-06 07:38:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.openldap2.new/openldap2.changes 2016-01-30 11:30:52.000000000 +0100
@@ -1,0 +2,41 @@
+Mon Jan 25 14:10:12 UTC 2016 - hguo(a)suse.com
+
+- Relabel patch 0011-Enforce-minimum-DH-size-of-1024.patch
+ into 0010-Enforce-minimum-DH-size-of-1024.patch
+
+-------------------------------------------------------------------
+Tue Dec 8 11:36:16 UTC 2015 - michael(a)stroeder.com
+
+- Upgrade to upstream 2.4.43 release with accumulated bug fixes.
+- Still build on SLES12
+- Loadable backend and overlay modules are now installed
+ into arch-specific path %{_libdir}/openldap
+- All backends and overlays as modules for smaller memory footprint
+ on memory constrained systems
+- Added extra package for back-sock
+- Consequent use of %{_rundir} everywhere
+- Rely on upstream ./configure script instead of any other
+ macro foo
+- Dropped linking with libwrap
+- Dropped 0004-libldap-use-gethostbyname_r.dif because this
+ work-around for nss_ldap is obsolete
+- New sub-package openldap2-contrib with selected contrib/ overlays
+- Replaced addonschema.tar.gz with separate schema sources
+- Updated ldapns.schema from recent slapo-nssov source tree
+- Added symbolic link to slapd executable in /usr/sbin/
+- Added more complex example configuration file
+ /etc/openldap/slapd.conf.example
+- Set OPENLDAP_START_LDAPI="yes" in /etc/sysconfig/openldap
+- Set OPENLDAP_REGISTER_SLP="no" in /etc/sysconfig/openldap
+- Added patch for OpenLDAP ITS#7796 to avoid excessive
+ "not index" logging:
+ 0011-openldap-re24-its7796.patch
+- Replaced openldap-rc.tgz with single source files
+- Added soft dependency (Recommends) to cyrus-sasl
+- Added soft dependency (Recommends) to cyrus-sasl-devel
+ to openldap2-devel
+- Added patch for OpenLDAP ITS#8336 (assert in liblmdb):
+ 0012-openldap-re24-its8336.patch
+- Remove obsolete patch 0001-build-adjustments.dif
+
+-------------------------------------------------------------------
Old:
----
0001-build-adjustments.dif
0004-libldap-use-gethostbyname_r.dif
0010-Revert-Revert-ITS-8240-remove-obsolete-assert.patch
0011-Enforce-minimum-DH-size-of-1024.patch
README.dynamic-overlays
addonschema.tar.gz
openldap-2.4.42.tgz
openldap-rc.tgz
New:
----
0010-Enforce-minimum-DH-size-of-1024.patch
0011-openldap-re24-its7796.patch
0012-openldap-re24-its8336.patch
README.module-loading
SuSEfirewall2.openldap
ldapns.schema
openldap-2.4.43.tgz
rfc2307bis.schema
slapd.conf.example
slapd.service
start
sysconfig.openldap
yast.schema
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openldap2-client.spec ++++++
--- /var/tmp/diff_new_pack.UGwmDj/_old 2016-01-30 11:30:55.000000000 +0100
+++ /var/tmp/diff_new_pack.UGwmDj/_new 2016-01-30 11:30:55.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package openldap2-client
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,52 +17,59 @@
%define run_test_suite 0
-%define version_main 2.4.42
+%define version_main 2.4.43
-%if ! %{defined _rundir}
-%define _rundir %{_localstatedir}/run
+%if %{suse_version} >= 1310 && %{suse_version} != 1315
+%define _rundir /run/slapd
+%else
+%define _rundir /var/run/slapd
%endif
Name: openldap2-client
Summary: The OpenLDAP commandline client tools
License: OLDAP-2.8
Group: Productivity/Networking/LDAP/Clients
-Version: 2.4.42
+Version: %{version_main}
Release: 0
Url: http://www.openldap.org
Source: openldap-%{version_main}.tgz
-Source1: openldap-rc.tgz
-Source2: addonschema.tar.gz
Source3: DB_CONFIG
Source4: sasl-slapd.conf
-Source5: README.dynamic-overlays
+Source5: README.module-loading
Source6: schema2ldif
Source7: baselibs.conf
-Patch1: 0001-build-adjustments.dif
+Source9: ldapns.schema
+Source10: rfc2307bis.schema
+Source11: yast.schema
+Source12: slapd.conf.example
+Source13: start
+Source14: slapd.service
+Source15: SuSEfirewall2.openldap
+Source16: sysconfig.openldap
Patch2: 0002-slapd.conf.dif
Patch3: 0003-LDAPI-socket-location.dif
-Patch4: 0004-libldap-use-gethostbyname_r.dif
Patch5: 0005-pie-compile.dif
Patch6: 0006-No-Build-date-and-time-in-binaries.dif
Patch7: 0007-Recover-on-DB-version-change.dif
Patch8: 0008-In-monitor-backend-do-not-return-Connection0-entries.patch
Patch9: 0009-Fix-ldap-host-lookup-ipv6.patch
-Patch10: 0010-Revert-Revert-ITS-8240-remove-obsolete-assert.patch
-Patch11: 0011-Enforce-minimum-DH-size-of-1024.patch
+Patch10: 0010-Enforce-minimum-DH-size-of-1024.patch
+Patch11: 0011-openldap-re24-its7796.patch
+Patch12: 0012-openldap-re24-its8336.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cyrus-sasl-devel
BuildRequires: groff
BuildRequires: libopenssl-devel
BuildRequires: libtool
+Requires: libldap-2_4-2 = %{version_main}
+Recommends: cyrus-sasl
%if "%{name}" == "openldap2"
BuildRequires: db-devel
BuildRequires: openslp-devel
-BuildRequires: tcpd-devel
BuildRequires: unixODBC-devel
Conflicts: openldap
-Requires: libldap-2_4-2 = %{version_main}
PreReq: %insserv_prereq %fillup_prereq /usr/sbin/useradd /usr/sbin/groupadd /usr/bin/grep
-%if 0%{?suse_version} >= 1140
+%if %{suse_version} >= 1310 && %{suse_version} != 1315
# avoid cycle with krb5
BuildRequires: krb5-mini
BuildRequires: pkgconfig(systemd)
@@ -70,7 +77,6 @@
%endif
%else
Conflicts: openldap-client
-Requires: libldap-2_4-2 = %{version_main}
%endif
# For /usr/bin/strings
Requires(pre): binutils
@@ -78,10 +84,10 @@
%if "%{name}" == "openldap2"
%description
-The Lightweight Directory Access Protocol (LDAP) is used to access
-online directory services. It runs directly over TCP and can be used to
-access a stand-alone LDAP directory service or to access a directory
-service that has an X.500 back-end.
+OpenLDAP is a client and server reference implementation of the
+Lightweight Directory Access Protocol v3 (LDAPv3).
+
+The server provides several database backends and overlays.
%package -n openldap2-back-perl
Summary: OpenLDAP Perl Back-End
@@ -93,6 +99,16 @@
The OpenLDAP Perl back-end allows you to execute Perl code specific to
different LDAP operations.
+%package -n openldap2-back-sock
+Summary: OpenLDAP Socket Back-End
+Group: Productivity/Networking/LDAP/Servers
+Requires: openldap2 = %{version_main}
+Provides: openldap2:/usr/share/man/man5/slapd-sock.5.gz
+
+%description -n openldap2-back-sock
+The OpenLDAP socket back-end allows you to handle LDAP requests and
+results with an external process listening on a Unix domain socket.
+
%package -n openldap2-back-meta
Summary: OpenLDAP Meta Back-End
Group: Productivity/Networking/LDAP/Servers
@@ -115,6 +131,25 @@
stored in a Relational (SQL) Database as an LDAP subtree without the need
to do any programming.
+%package -n openldap2-contrib
+Summary: OpenLDAP Contrib Modules
+Group: Productivity/Networking/LDAP/Servers
+Requires: openldap2 = %{version_main}
+
+%description -n openldap2-contrib
+Various overlays found in contrib/:
+allop
+allowed Generates attributes indicating access rights
+autogroup
+cloak
+denyop
+lastbind writes last bind timestamp to entry
+noopsrch handles no-op search control
+nops
+pw-sha2 generates/validates SHA-2 password hashes
+pw-pbkdf2 generates/validates PBKDF2 password hashes
+smbk5pwd generates Samba3 password hashes (heimdal krb disabled)
+
%package -n openldap2-doc
Summary: OpenLDAP Documentation
Group: Documentation/Other
@@ -126,6 +161,7 @@
%description -n openldap2-doc
The OpenLDAP Admin Guide plus a set of OpenLDAP related IETF internet drafts
+
Authors:
--------
The OpenLDAP Project <project(a)openldap.org>
@@ -145,6 +181,7 @@
#
Conflicts: openldap-devel
Requires: libldap-2_4-2 = %{version_main}
+Recommends: cyrus-sasl-devel
%description -n openldap2-devel
This package provides the OpenLDAP libraries, header files, and
@@ -171,11 +208,10 @@
%endif
%prep
-%setup -q -n openldap-%{version_main} -a1 -a2
-%patch1 -p1
+%setup -q -n openldap-%{version_main}
%patch2 -p1
%patch3 -p1
-%patch4 -p1
+#%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
@@ -183,48 +219,66 @@
%patch9 -p1
%patch10 -p1
%patch11 -p1
+%patch12 -p1
cp %{SOURCE5} .
%build
-%{?suse_update_config:%{suse_update_config -f build}}
-libtoolize --force
-autoreconf
-export CFLAGS="$RPM_OPT_FLAGS -Wno-format-extra-args -fno-strict-aliasing -DLDAP_DEPRECATED -DLDAP_CONNECTIONLESS -DSLAP_CONFIG_DELETE"
+# %{?suse_update_config:%{suse_update_config -f build}}
+#libtoolize --force
+#autoreconf
+# export CFLAGS="${RPM_OPT_FLAGS} -Wno-format-extra-args -fno-strict-aliasing -DNDEBUG -DSLAP_CONFIG_DELETE -DSLAP_SCHEMA_EXPOSE -DLDAP_COLLECTIVE_ATTRIBUTES"
+export CFLAGS="-Wno-format-extra-args -fno-strict-aliasing -DNDEBUG -DSLAP_CONFIG_DELETE -DSLAP_SCHEMA_EXPOSE -DLDAP_COLLECTIVE_ATTRIBUTES"
export STRIP=""
-%configure \
- --localstatedir=%{_rundir}/slapd \
- --libexecdir=/usr/lib/openldap \
- --enable-wrappers \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=%{_sysconfdir} \
+ --libdir=%{_libdir} \
+ --libexecdir=%{_libdir} \
+ --localstatedir=%{_rundir} \
+ --enable-wrappers=no \
--enable-spasswd \
--enable-modules \
--enable-shared \
--enable-dynamic \
- --with-tls \
+ --with-tls=openssl \
--with-cyrus-sasl \
--enable-crypt \
--enable-ipv6=yes \
%if "%{name}" == "openldap2"
--enable-aci \
- --enable-bdb \
- --enable-hdb \
+ --enable-bdb=mod \
+ --enable-hdb=mod \
--enable-rewrite \
- --enable-ldap=yes \
+ --enable-ldap=mod \
--enable-meta=mod \
- --enable-monitor=yes \
+ --enable-monitor=mod \
--enable-perl=mod \
+ --enable-sock=mod \
--enable-sql=mod \
- --enable-mdb=yes \
+ --enable-mdb=mod \
+ --enable-relay=mod \
--enable-slp \
--enable-overlays=mod \
- --enable-syncprov=yes \
- --enable-ppolicy=yes \
+ --enable-syncprov=mod \
+ --enable-ppolicy=mod \
%else
--disable-slapd \
%endif
--enable-lmpasswd \
- --with-yielding-select
+ --with-yielding-select \
+ || cat config.log
make depend
make %{?_smp_mflags}
+%if "%{name}" == "openldap2"
+# Build selected contrib overlays
+for SLAPO_NAME in allowed allop autogroup lastbind nops denyop cloak noopsrch passwd/sha2 passwd/pbkdf2
+do
+ make -C contrib/slapd-modules/${SLAPO_NAME} %{?_smp_mflags} "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}"
+done
+# One more level up needed because of passwd/sha2
+# slapo-smbk5pwd only for Samba password hashes
+make -C contrib/slapd-modules/smbk5pwd %{?_smp_mflags} "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" DEFS="-DDO_SAMBA" HEIMDAL_LIB=""
+%endif
%check
%if %run_test_suite
@@ -252,50 +306,67 @@
%endif
%install
-mkdir -p $RPM_BUILD_ROOT/usr/lib/openldap/
-mkdir -p $RPM_BUILD_ROOT/usr/sbin
-mkdir -p $RPM_BUILD_ROOT/%{_unitdir}
-make STRIP="" DESTDIR=$RPM_BUILD_ROOT install
-install -m 755 start $RPM_BUILD_ROOT/usr/lib/openldap/start
-install -m 644 slapd.service $RPM_BUILD_ROOT/%{_unitdir}
-mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/openldap/slapd.d
-mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sasl2
-install -m 644 %{SOURCE4} $RPM_BUILD_ROOT/%{_sysconfdir}/sasl2/slapd.conf
-install -m 755 -d $RPM_BUILD_ROOT/var/lib/ldap
-chmod a+x $RPM_BUILD_ROOT/%{_libdir}/liblber.so*
-chmod a+x $RPM_BUILD_ROOT/%{_libdir}/libldap_r.so*
-chmod a+x $RPM_BUILD_ROOT/%{_libdir}/libldap.so*
-install -m 755 %{SOURCE6} $RPM_BUILD_ROOT/usr/sbin/schema2ldif
+mkdir -p ${RPM_BUILD_ROOT}/%{_libdir}/openldap
+mkdir -p ${RPM_BUILD_ROOT}/usr/lib/openldap
+mkdir -p ${RPM_BUILD_ROOT}/usr/sbin
+mkdir -p ${RPM_BUILD_ROOT}/%{_unitdir}
+make STRIP="" "DESTDIR=${RPM_BUILD_ROOT}" "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" install
+# Additional symbolic link to slapd executable in /usr/sbin/
+%if "%{name}" == "openldap2"
+ln -s %{_libdir}/slapd ${RPM_BUILD_ROOT}/usr/sbin/slapd
+%endif
+%if "%{name}" == "openldap2"
+# Install selected contrib overlays
+for SLAPO_NAME in allowed allop autogroup lastbind nops denyop cloak noopsrch passwd/sha2 passwd/pbkdf2
+do
+ make -C contrib/slapd-modules/${SLAPO_NAME} STRIP="" "DESTDIR=${RPM_BUILD_ROOT}" "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" install
+done
+# slapo-smbk5pwd only for Samba password hashes
+make -C contrib/slapd-modules/smbk5pwd STRIP="" "DESTDIR=${RPM_BUILD_ROOT}" "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" install
+%endif
+install -m 755 %{SOURCE13} ${RPM_BUILD_ROOT}/usr/lib/openldap/start
+install -m 644 %{SOURCE14} ${RPM_BUILD_ROOT}/%{_unitdir}
+mkdir -p ${RPM_BUILD_ROOT}/%{_sysconfdir}/openldap/slapd.d
+mkdir -p ${RPM_BUILD_ROOT}/%{_sysconfdir}/sasl2
+install -m 644 %{SOURCE4} ${RPM_BUILD_ROOT}/%{_sysconfdir}/sasl2/slapd.conf
+install -m 755 -d ${RPM_BUILD_ROOT}/var/lib/ldap
+chmod a+x ${RPM_BUILD_ROOT}/%{_libdir}/liblber.so*
+chmod a+x ${RPM_BUILD_ROOT}/%{_libdir}/libldap_r.so*
+chmod a+x ${RPM_BUILD_ROOT}/%{_libdir}/libldap.so*
+install -m 755 %{SOURCE6} ${RPM_BUILD_ROOT}/usr/sbin/schema2ldif
%if "%{name}" == "openldap2"
%define DOCDIR %{_defaultdocdir}/%{name}
-mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
-install -m 644 sysconfig.openldap $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.openldap
-install -m 644 *.schema $RPM_BUILD_ROOT/etc/openldap/schema
-install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/var/lib/ldap/DB_CONFIG
-install -m 644 $RPM_BUILD_ROOT/etc/openldap/DB_CONFIG.example $RPM_BUILD_ROOT/var/lib/ldap/DB_CONFIG.example
-install -d $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/
-install -m 644 SuSEfirewall2.openldap $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/openldap
+mkdir -p ${RPM_BUILD_ROOT}/var/adm/fillup-templates
+install -m 644 %{SOURCE16} ${RPM_BUILD_ROOT}/var/adm/fillup-templates/sysconfig.openldap
+install -m 644 %{SOURCE9} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema
+install -m 644 %{SOURCE10} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema
+install -m 644 %{SOURCE11} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema
+install -m 644 %{SOURCE12} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap
+install -m 644 %{SOURCE3} ${RPM_BUILD_ROOT}/var/lib/ldap/DB_CONFIG
+install -m 644 ${RPM_BUILD_ROOT}/etc/openldap/DB_CONFIG.example ${RPM_BUILD_ROOT}/var/lib/ldap/DB_CONFIG.example
+install -d ${RPM_BUILD_ROOT}/etc/sysconfig/SuSEfirewall2.d/services/
+install -m 644 %{SOURCE15} ${RPM_BUILD_ROOT}/etc/sysconfig/SuSEfirewall2.d/services/openldap
rm -f `find doc/guide ! -name *.html -a ! -name *.gif -a ! -name *.png -a ! -type d`
rm -rf doc/guide/release
-install -d $RPM_BUILD_ROOT/%{DOCDIR}/adminguide \
- $RPM_BUILD_ROOT/%{DOCDIR}/images \
- $RPM_BUILD_ROOT/%{DOCDIR}/drafts
-install -m 644 doc/guide/admin/* $RPM_BUILD_ROOT/%{DOCDIR}/adminguide
-install -m 644 doc/guide/images/*.gif $RPM_BUILD_ROOT/%{DOCDIR}/images
-install -m 644 doc/drafts/* $RPM_BUILD_ROOT/%{DOCDIR}/drafts
+install -d ${RPM_BUILD_ROOT}/%{DOCDIR}/adminguide \
+ ${RPM_BUILD_ROOT}/%{DOCDIR}/images \
+ ${RPM_BUILD_ROOT}/%{DOCDIR}/drafts
+install -m 644 doc/guide/admin/* ${RPM_BUILD_ROOT}/%{DOCDIR}/adminguide
+install -m 644 doc/guide/images/*.gif ${RPM_BUILD_ROOT}/%{DOCDIR}/images
+install -m 644 doc/drafts/* ${RPM_BUILD_ROOT}/%{DOCDIR}/drafts
install -m 644 ANNOUNCEMENT \
COPYRIGHT \
LICENSE \
README \
CHANGES \
%{SOURCE5} \
- $RPM_BUILD_ROOT/%{DOCDIR}
+ ${RPM_BUILD_ROOT}/%{DOCDIR}
install -m 644 servers/slapd/slapd.ldif \
- $RPM_BUILD_ROOT/%{DOCDIR}/slapd.ldif.default
-rm -f $RPM_BUILD_ROOT/etc/openldap/DB_CONFIG.example
-rm -f $RPM_BUILD_ROOT/etc/openldap/schema/README
-rm -f $RPM_BUILD_ROOT/etc/openldap/slapd.ldif*
-rm -f $RPM_BUILD_ROOT%{_rundir}/slapd/openldap-data/DB_CONFIG.example
+ ${RPM_BUILD_ROOT}/%{DOCDIR}/slapd.ldif.default
+rm -f ${RPM_BUILD_ROOT}/etc/openldap/DB_CONFIG.example
+rm -f ${RPM_BUILD_ROOT}/etc/openldap/schema/README
+rm -f ${RPM_BUILD_ROOT}/etc/openldap/slapd.ldif*
+rm -f ${RPM_BUILD_ROOT}/%{_rundir}/openldap-data/DB_CONFIG.example
mv servers/slapd/back-sql/rdbms_depend servers/slapd/back-sql/examples
# Provide SUSE policy symlink /usr/sbin/rcFOO -> /etc/init.d/FOO
# /usr/sbin/service exists only since openSUSE 12.3:
@@ -305,16 +376,15 @@
ln -s /sbin/service %{buildroot}%{_sbindir}/rcslapd
%endif
%endif
-rm -f $RPM_BUILD_ROOT/usr/lib/openldap/modules/*.a
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-dnssrv.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-ndb.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-null.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-passwd.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-shell.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-sock.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-tcl.5
+rm -f ${RPM_BUILD_ROOT}/%{_libdir}/openldap/*.a
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-dnssrv.5
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-ndb.5
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-null.5
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-passwd.5
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-shell.5
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-tcl.5
# Remove *.la files, libtool does not handle this correct
-rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.la
+rm -f ${RPM_BUILD_ROOT}%{_libdir}/lib*.la
#put filelists into files
cat >openldap2.filelist <<EOF
@@ -328,36 +398,45 @@
%dir /etc/openldap/schema
%config /etc/openldap/schema/*.schema
%config /etc/openldap/schema/*.ldif
-%config(noreplace) %attr(640, root, ldap) /etc/openldap/slapd.conf
+%config(noreplace) %attr(640, root, ldap) /%{_sysconfdir}/openldap/slapd.conf
%config(noreplace) %attr(640, ldap, ldap) /var/lib/ldap/DB_CONFIG
%config /var/lib/ldap/DB_CONFIG.example
-%attr(640, root, ldap) /%{_sysconfdir}/openldap/slapd.conf.default
+%config %attr(640, root, ldap) /%{_sysconfdir}/openldap/slapd.conf.default
+%config %attr(640, root, ldap) /%{_sysconfdir}/openldap/slapd.conf.example
%config(noreplace) /etc/sasl2/slapd.conf
%dir /usr/lib/openldap
-%dir /usr/lib/openldap/modules
-/usr/lib/openldap/modules/accesslog*
-/usr/lib/openldap/modules/auditlog*
-/usr/lib/openldap/modules/collect*
-/usr/lib/openldap/modules/constraint*
-/usr/lib/openldap/modules/dds*
-/usr/lib/openldap/modules/deref*
-/usr/lib/openldap/modules/dyngroup*
-/usr/lib/openldap/modules/dynlist*
-/usr/lib/openldap/modules/memberof*
-/usr/lib/openldap/modules/pcache*
-/usr/lib/openldap/modules/refint*
-/usr/lib/openldap/modules/retcode*
-/usr/lib/openldap/modules/rwm*
-/usr/lib/openldap/modules/seqmod*
-/usr/lib/openldap/modules/sssvlv*
-/usr/lib/openldap/modules/translucent*
-/usr/lib/openldap/modules/unique*
-/usr/lib/openldap/modules/valsort*
-/usr/lib/openldap/slapd
+%dir /%{_libdir}/openldap
+%{_libdir}/openldap/back_bdb*
+%{_libdir}/openldap/back_hdb*
+%{_libdir}/openldap/back_ldap*
+%{_libdir}/openldap/back_mdb*
+%{_libdir}/openldap/back_monitor*
+%{_libdir}/openldap/back_relay*
+%{_libdir}/openldap/accesslog*
+%{_libdir}/openldap/auditlog*
+%{_libdir}/openldap/collect*
+%{_libdir}/openldap/constraint*
+%{_libdir}/openldap/dds*
+%{_libdir}/openldap/deref*
+%{_libdir}/openldap/dyngroup*
+%{_libdir}/openldap/dynlist*
+%{_libdir}/openldap/memberof*
+%{_libdir}/openldap/pcache*
+%{_libdir}/openldap/ppolicy*
+%{_libdir}/openldap/refint*
+%{_libdir}/openldap/retcode*
+%{_libdir}/openldap/rwm*
+%{_libdir}/openldap/seqmod*
+%{_libdir}/openldap/sssvlv*
+%{_libdir}/openldap/syncprov*
+%{_libdir}/openldap/translucent*
+%{_libdir}/openldap/unique*
+%{_libdir}/openldap/valsort*
+%{_libdir}/slapd
/usr/lib/openldap/start
-/usr/lib/systemd/system/slapd.service
-%dir %attr(0700, ldap, ldap) /var/lib/ldap
-%dir %attr(0755, ldap, ldap) %ghost %{_rundir}/slapd
+%{_unitdir}/slapd.service
+%dir %attr(0750, ldap, ldap) /var/lib/ldap
+%ghost %attr(0750, ldap, ldap) %{_rundir}
%doc %{_mandir}/man8/sl*
%doc %{_mandir}/man5/slapd.*
%doc %{_mandir}/man5/slapd-bdb.*
@@ -417,20 +496,37 @@
%_libdir/libldap*.a
EOF
cat > openldap2-back-perl.filelist <<EOF
-/usr/lib/openldap/modules/back_perl*
+%{_libdir}/openldap/back_perl*
%doc %{_mandir}/man5/slapd-perl.*
EOF
+cat > openldap2-back-sock.filelist <<EOF
+%{_libdir}/openldap/back_sock*
+%doc %{_mandir}/man5/slapd-sock.*
+EOF
cat > openldap2-back-meta.filelist <<EOF
-/usr/lib/openldap/modules/back_meta*
+%{_libdir}/openldap/back_meta*
%doc %{_mandir}/man5/slapd-meta.*
EOF
cat > openldap2-back-sql.filelist <<EOF
-/usr/lib/openldap/modules/back_sql*
+%{_libdir}/openldap/back_sql*
%doc %{_mandir}/man5/slapd-sql.*
%doc servers/slapd/back-sql/examples
%doc servers/slapd/back-sql/docs/bugs
%doc servers/slapd/back-sql/docs/install
EOF
+cat > openldap2-contrib.filelist <<EOF
+%{_libdir}/openldap/allowed.*
+%{_libdir}/openldap/allop.*
+%{_libdir}/openldap/autogroup.*
+%{_libdir}/openldap/lastbind.*
+%{_libdir}/openldap/noopsrch.*
+%{_libdir}/openldap/nops.*
+%{_libdir}/openldap/pw-sha2.*
+%{_libdir}/openldap/pw-pbkdf2.*
+%{_libdir}/openldap/denyop.*
+%{_libdir}/openldap/cloak.*
+%{_libdir}/openldap/smbk5pwd.*
+EOF
cat >openldap2-doc.filelist <<EOF
%dir %{DOCDIR}
%doc %{DOCDIR}/drafts
@@ -442,20 +538,20 @@
cat openldap2-client.filelist libldap.filelist openldap2-devel.filelist \
openldap2-devel-static.filelist |
%else
-cat openldap2.filelist openldap2-back-perl.filelist \
+cat openldap2.filelist openldap2-back-perl.filelist openldap2-back-sock.filelist \
openldap2-back-meta.filelist openldap2-back-sql.filelist \
- openldap2-doc.filelist compat-libldap.filelist |
+ openldap2-doc.filelist openldap2-contrib.filelist |
%endif
grep -v "%dir " |sed -e "s|^.* ||" |grep "^/" |while read name ; do
- rm -rf $RPM_BUILD_ROOT$name
+ rm -rf ${RPM_BUILD_ROOT}${name}
done
%if "%{name}" == "openldap2"
%pre
/usr/sbin/groupadd -g 70 -o -r ldap || :
-/usr/sbin/useradd -r -o -g ldap -u 76 -s /bin/bash -c "User for OpenLDAP" -d /var/lib/ldap ldap || :
+/usr/sbin/useradd -r -o -g ldap -u 76 -s /bin/false -c "User for OpenLDAP" -d /var/lib/ldap ldap || :
if /usr/bin/chkconfig ldap 2>&1 | grep -q on; then
- touch /var/run/enable_slapd_service
+ touch %{_rundir}/enable_slapd_service
fi
%service_add_pre slapd.service
@@ -467,7 +563,7 @@
%{fillup_only -n openldap ldap}
%{remove_and_set -n openldap OPENLDAP_RUN_DB_RECOVER}
%service_add_post slapd.service
-if [ -f /var/run/enable_slapd_service ]; then
+if [ -f %{_rundir}/enable_slapd_service ]; then
/usr/bin/systemctl --quiet enable slapd
fi
@@ -483,6 +579,9 @@
%files -n openldap2-back-perl -f openldap2-back-perl.filelist
%defattr(-,root,root)
+%files -n openldap2-back-sock -f openldap2-back-sock.filelist
+%defattr(-,root,root)
+
%files -n openldap2-back-meta -f openldap2-back-meta.filelist
%defattr(-,root,root)
@@ -492,6 +591,9 @@
%files -n openldap2-doc -f openldap2-doc.filelist
%defattr(-,root,root)
+%files -n openldap2-contrib -f openldap2-contrib.filelist
+%defattr(-,root,root)
+
%else
%post -n libldap-2_4-2 -p /sbin/ldconfig
++++++ openldap2.spec ++++++
--- /var/tmp/diff_new_pack.UGwmDj/_old 2016-01-30 11:30:55.000000000 +0100
+++ /var/tmp/diff_new_pack.UGwmDj/_new 2016-01-30 11:30:55.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package openldap2
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,52 +17,59 @@
%define run_test_suite 0
-%define version_main 2.4.42
+%define version_main 2.4.43
-%if ! %{defined _rundir}
-%define _rundir %{_localstatedir}/run
+%if %{suse_version} >= 1310 && %{suse_version} != 1315
+%define _rundir /run/slapd
+%else
+%define _rundir /var/run/slapd
%endif
Name: openldap2
Summary: The OpenLDAP Server
License: OLDAP-2.8
Group: Productivity/Networking/LDAP/Clients
-Version: 2.4.42
+Version: %{version_main}
Release: 0
Url: http://www.openldap.org
Source: openldap-%{version_main}.tgz
-Source1: openldap-rc.tgz
-Source2: addonschema.tar.gz
Source3: DB_CONFIG
Source4: sasl-slapd.conf
-Source5: README.dynamic-overlays
+Source5: README.module-loading
Source6: schema2ldif
Source7: baselibs.conf
-Patch1: 0001-build-adjustments.dif
+Source9: ldapns.schema
+Source10: rfc2307bis.schema
+Source11: yast.schema
+Source12: slapd.conf.example
+Source13: start
+Source14: slapd.service
+Source15: SuSEfirewall2.openldap
+Source16: sysconfig.openldap
Patch2: 0002-slapd.conf.dif
Patch3: 0003-LDAPI-socket-location.dif
-Patch4: 0004-libldap-use-gethostbyname_r.dif
Patch5: 0005-pie-compile.dif
Patch6: 0006-No-Build-date-and-time-in-binaries.dif
Patch7: 0007-Recover-on-DB-version-change.dif
Patch8: 0008-In-monitor-backend-do-not-return-Connection0-entries.patch
Patch9: 0009-Fix-ldap-host-lookup-ipv6.patch
-Patch10: 0010-Revert-Revert-ITS-8240-remove-obsolete-assert.patch
-Patch11: 0011-Enforce-minimum-DH-size-of-1024.patch
+Patch10: 0010-Enforce-minimum-DH-size-of-1024.patch
+Patch11: 0011-openldap-re24-its7796.patch
+Patch12: 0012-openldap-re24-its8336.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cyrus-sasl-devel
BuildRequires: groff
BuildRequires: libopenssl-devel
BuildRequires: libtool
+Requires: libldap-2_4-2 = %{version_main}
+Recommends: cyrus-sasl
%if "%{name}" == "openldap2"
BuildRequires: db-devel
BuildRequires: openslp-devel
-BuildRequires: tcpd-devel
BuildRequires: unixODBC-devel
Conflicts: openldap
-Requires: libldap-2_4-2 = %{version_main}
PreReq: %insserv_prereq %fillup_prereq /usr/sbin/useradd /usr/sbin/groupadd /usr/bin/grep
-%if 0%{?suse_version} >= 1140
+%if %{suse_version} >= 1310 && %{suse_version} != 1315
# avoid cycle with krb5
BuildRequires: krb5-mini
BuildRequires: pkgconfig(systemd)
@@ -70,7 +77,6 @@
%endif
%else
Conflicts: openldap-client
-Requires: libldap-2_4-2 = %{version_main}
%endif
# For /usr/bin/strings
Requires(pre): binutils
@@ -78,10 +84,10 @@
%if "%{name}" == "openldap2"
%description
-The Lightweight Directory Access Protocol (LDAP) is used to access
-online directory services. It runs directly over TCP and can be used to
-access a stand-alone LDAP directory service or to access a directory
-service that has an X.500 back-end.
+OpenLDAP is a client and server reference implementation of the
+Lightweight Directory Access Protocol v3 (LDAPv3).
+
+The server provides several database backends and overlays.
%package -n openldap2-back-perl
Summary: OpenLDAP Perl Back-End
@@ -93,6 +99,16 @@
The OpenLDAP Perl back-end allows you to execute Perl code specific to
different LDAP operations.
+%package -n openldap2-back-sock
+Summary: OpenLDAP Socket Back-End
+Group: Productivity/Networking/LDAP/Servers
+Requires: openldap2 = %{version_main}
+Provides: openldap2:/usr/share/man/man5/slapd-sock.5.gz
+
+%description -n openldap2-back-sock
+The OpenLDAP socket back-end allows you to handle LDAP requests and
+results with an external process listening on a Unix domain socket.
+
%package -n openldap2-back-meta
Summary: OpenLDAP Meta Back-End
Group: Productivity/Networking/LDAP/Servers
@@ -115,6 +131,25 @@
stored in a Relational (SQL) Database as an LDAP subtree without the need
to do any programming.
+%package -n openldap2-contrib
+Summary: OpenLDAP Contrib Modules
+Group: Productivity/Networking/LDAP/Servers
+Requires: openldap2 = %{version_main}
+
+%description -n openldap2-contrib
+Various overlays found in contrib/:
+allop
+allowed Generates attributes indicating access rights
+autogroup
+cloak
+denyop
+lastbind writes last bind timestamp to entry
+noopsrch handles no-op search control
+nops
+pw-sha2 generates/validates SHA-2 password hashes
+pw-pbkdf2 generates/validates PBKDF2 password hashes
+smbk5pwd generates Samba3 password hashes (heimdal krb disabled)
+
%package -n openldap2-doc
Summary: OpenLDAP Documentation
Group: Documentation/Other
@@ -126,6 +161,7 @@
%description -n openldap2-doc
The OpenLDAP Admin Guide plus a set of OpenLDAP related IETF internet drafts
+
Authors:
--------
The OpenLDAP Project <project(a)openldap.org>
@@ -145,6 +181,7 @@
#
Conflicts: openldap-devel
Requires: libldap-2_4-2 = %{version_main}
+Recommends: cyrus-sasl-devel
%description -n openldap2-devel
This package provides the OpenLDAP libraries, header files, and
@@ -171,11 +208,10 @@
%endif
%prep
-%setup -q -n openldap-%{version_main} -a1 -a2
-%patch1 -p1
+%setup -q -n openldap-%{version_main}
%patch2 -p1
%patch3 -p1
-%patch4 -p1
+#%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
@@ -183,49 +219,65 @@
%patch9 -p1
%patch10 -p1
%patch11 -p1
+%patch12 -p1
cp %{SOURCE5} .
%build
-%{?suse_update_config:%{suse_update_config -f build}}
-libtoolize --force
-autoreconf
-export CFLAGS="$RPM_OPT_FLAGS -Wno-format-extra-args -fno-strict-aliasing -DLDAP_DEPRECATED -DLDAP_CONNECTIONLESS -DSLAP_CONFIG_DELETE"
+# %{?suse_update_config:%{suse_update_config -f build}}
+#libtoolize --force
+#autoreconf
+# export CFLAGS="${RPM_OPT_FLAGS} -Wno-format-extra-args -fno-strict-aliasing -DNDEBUG -DSLAP_CONFIG_DELETE -DSLAP_SCHEMA_EXPOSE -DLDAP_COLLECTIVE_ATTRIBUTES"
+export CFLAGS="-Wno-format-extra-args -fno-strict-aliasing -DNDEBUG -DSLAP_CONFIG_DELETE -DSLAP_SCHEMA_EXPOSE -DLDAP_COLLECTIVE_ATTRIBUTES"
export STRIP=""
-%configure \
- --localstatedir=%{_rundir}/slapd \
- --libexecdir=/usr/lib/openldap \
- --enable-wrappers \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=%{_sysconfdir} \
+ --libdir=%{_libdir} \
+ --libexecdir=%{_libdir} \
+ --localstatedir=%{_rundir} \
+ --enable-wrappers=no \
--enable-spasswd \
--enable-modules \
--enable-shared \
--enable-dynamic \
- --with-tls \
+ --with-tls=openssl \
--with-cyrus-sasl \
--enable-crypt \
--enable-ipv6=yes \
%if "%{name}" == "openldap2"
--enable-aci \
- --enable-bdb \
- --enable-hdb \
+ --enable-bdb=mod \
+ --enable-hdb=mod \
--enable-rewrite \
- --enable-ldap=yes \
+ --enable-ldap=mod \
--enable-meta=mod \
- --enable-monitor=yes \
+ --enable-monitor=mod \
--enable-perl=mod \
+ --enable-sock=mod \
--enable-sql=mod \
- --enable-mdb=yes \
+ --enable-mdb=mod \
+ --enable-relay=mod \
--enable-slp \
--enable-overlays=mod \
- --enable-syncprov=yes \
- --enable-ppolicy=yes \
+ --enable-syncprov=mod \
+ --enable-ppolicy=mod \
%else
--disable-slapd \
%endif
--enable-lmpasswd \
- --with-yielding-select
+ --with-yielding-select \
+ || cat config.log
make depend
make %{?_smp_mflags}
%if "%{name}" == "openldap2"
+# Build selected contrib overlays
+for SLAPO_NAME in allowed allop autogroup lastbind nops denyop cloak noopsrch passwd/sha2 passwd/pbkdf2
+do
+ make -C contrib/slapd-modules/${SLAPO_NAME} %{?_smp_mflags} "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}"
+done
+# One more level up needed because of passwd/sha2
+# slapo-smbk5pwd only for Samba password hashes
+make -C contrib/slapd-modules/smbk5pwd %{?_smp_mflags} "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" DEFS="-DDO_SAMBA" HEIMDAL_LIB=""
%endif
%check
@@ -254,50 +306,67 @@
%endif
%install
-mkdir -p $RPM_BUILD_ROOT/usr/lib/openldap/
-mkdir -p $RPM_BUILD_ROOT/usr/sbin
-mkdir -p $RPM_BUILD_ROOT/%{_unitdir}
-make STRIP="" DESTDIR=$RPM_BUILD_ROOT install
-install -m 755 start $RPM_BUILD_ROOT/usr/lib/openldap/start
-install -m 644 slapd.service $RPM_BUILD_ROOT/%{_unitdir}
-mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/openldap/slapd.d
-mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sasl2
-install -m 644 %{SOURCE4} $RPM_BUILD_ROOT/%{_sysconfdir}/sasl2/slapd.conf
-install -m 755 -d $RPM_BUILD_ROOT/var/lib/ldap
-chmod a+x $RPM_BUILD_ROOT/%{_libdir}/liblber.so*
-chmod a+x $RPM_BUILD_ROOT/%{_libdir}/libldap_r.so*
-chmod a+x $RPM_BUILD_ROOT/%{_libdir}/libldap.so*
-install -m 755 %{SOURCE6} $RPM_BUILD_ROOT/usr/sbin/schema2ldif
+mkdir -p ${RPM_BUILD_ROOT}/%{_libdir}/openldap
+mkdir -p ${RPM_BUILD_ROOT}/usr/lib/openldap
+mkdir -p ${RPM_BUILD_ROOT}/usr/sbin
+mkdir -p ${RPM_BUILD_ROOT}/%{_unitdir}
+make STRIP="" "DESTDIR=${RPM_BUILD_ROOT}" "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" install
+# Additional symbolic link to slapd executable in /usr/sbin/
+%if "%{name}" == "openldap2"
+ln -s %{_libdir}/slapd ${RPM_BUILD_ROOT}/usr/sbin/slapd
+%endif
+%if "%{name}" == "openldap2"
+# Install selected contrib overlays
+for SLAPO_NAME in allowed allop autogroup lastbind nops denyop cloak noopsrch passwd/sha2 passwd/pbkdf2
+do
+ make -C contrib/slapd-modules/${SLAPO_NAME} STRIP="" "DESTDIR=${RPM_BUILD_ROOT}" "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" install
+done
+# slapo-smbk5pwd only for Samba password hashes
+make -C contrib/slapd-modules/smbk5pwd STRIP="" "DESTDIR=${RPM_BUILD_ROOT}" "sysconfdir=%{_sysconfdir}/openldap" "libdir=%{_libdir}" "libexecdir=%{_libdir}" install
+%endif
+install -m 755 %{SOURCE13} ${RPM_BUILD_ROOT}/usr/lib/openldap/start
+install -m 644 %{SOURCE14} ${RPM_BUILD_ROOT}/%{_unitdir}
+mkdir -p ${RPM_BUILD_ROOT}/%{_sysconfdir}/openldap/slapd.d
+mkdir -p ${RPM_BUILD_ROOT}/%{_sysconfdir}/sasl2
+install -m 644 %{SOURCE4} ${RPM_BUILD_ROOT}/%{_sysconfdir}/sasl2/slapd.conf
+install -m 755 -d ${RPM_BUILD_ROOT}/var/lib/ldap
+chmod a+x ${RPM_BUILD_ROOT}/%{_libdir}/liblber.so*
+chmod a+x ${RPM_BUILD_ROOT}/%{_libdir}/libldap_r.so*
+chmod a+x ${RPM_BUILD_ROOT}/%{_libdir}/libldap.so*
+install -m 755 %{SOURCE6} ${RPM_BUILD_ROOT}/usr/sbin/schema2ldif
%if "%{name}" == "openldap2"
%define DOCDIR %{_defaultdocdir}/%{name}
-mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
-install -m 644 sysconfig.openldap $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.openldap
-install -m 644 *.schema $RPM_BUILD_ROOT/etc/openldap/schema
-install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/var/lib/ldap/DB_CONFIG
-install -m 644 $RPM_BUILD_ROOT/etc/openldap/DB_CONFIG.example $RPM_BUILD_ROOT/var/lib/ldap/DB_CONFIG.example
-install -d $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/
-install -m 644 SuSEfirewall2.openldap $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/openldap
+mkdir -p ${RPM_BUILD_ROOT}/var/adm/fillup-templates
+install -m 644 %{SOURCE16} ${RPM_BUILD_ROOT}/var/adm/fillup-templates/sysconfig.openldap
+install -m 644 %{SOURCE9} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema
+install -m 644 %{SOURCE10} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema
+install -m 644 %{SOURCE11} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap/schema
+install -m 644 %{SOURCE12} ${RPM_BUILD_ROOT}%{_sysconfdir}/openldap
+install -m 644 %{SOURCE3} ${RPM_BUILD_ROOT}/var/lib/ldap/DB_CONFIG
+install -m 644 ${RPM_BUILD_ROOT}/etc/openldap/DB_CONFIG.example ${RPM_BUILD_ROOT}/var/lib/ldap/DB_CONFIG.example
+install -d ${RPM_BUILD_ROOT}/etc/sysconfig/SuSEfirewall2.d/services/
+install -m 644 %{SOURCE15} ${RPM_BUILD_ROOT}/etc/sysconfig/SuSEfirewall2.d/services/openldap
rm -f `find doc/guide ! -name *.html -a ! -name *.gif -a ! -name *.png -a ! -type d`
rm -rf doc/guide/release
-install -d $RPM_BUILD_ROOT/%{DOCDIR}/adminguide \
- $RPM_BUILD_ROOT/%{DOCDIR}/images \
- $RPM_BUILD_ROOT/%{DOCDIR}/drafts
-install -m 644 doc/guide/admin/* $RPM_BUILD_ROOT/%{DOCDIR}/adminguide
-install -m 644 doc/guide/images/*.gif $RPM_BUILD_ROOT/%{DOCDIR}/images
-install -m 644 doc/drafts/* $RPM_BUILD_ROOT/%{DOCDIR}/drafts
+install -d ${RPM_BUILD_ROOT}/%{DOCDIR}/adminguide \
+ ${RPM_BUILD_ROOT}/%{DOCDIR}/images \
+ ${RPM_BUILD_ROOT}/%{DOCDIR}/drafts
+install -m 644 doc/guide/admin/* ${RPM_BUILD_ROOT}/%{DOCDIR}/adminguide
+install -m 644 doc/guide/images/*.gif ${RPM_BUILD_ROOT}/%{DOCDIR}/images
+install -m 644 doc/drafts/* ${RPM_BUILD_ROOT}/%{DOCDIR}/drafts
install -m 644 ANNOUNCEMENT \
COPYRIGHT \
LICENSE \
README \
CHANGES \
%{SOURCE5} \
- $RPM_BUILD_ROOT/%{DOCDIR}
+ ${RPM_BUILD_ROOT}/%{DOCDIR}
install -m 644 servers/slapd/slapd.ldif \
- $RPM_BUILD_ROOT/%{DOCDIR}/slapd.ldif.default
-rm -f $RPM_BUILD_ROOT/etc/openldap/DB_CONFIG.example
-rm -f $RPM_BUILD_ROOT/etc/openldap/schema/README
-rm -f $RPM_BUILD_ROOT/etc/openldap/slapd.ldif*
-rm -f $RPM_BUILD_ROOT%{_rundir}/slapd/openldap-data/DB_CONFIG.example
+ ${RPM_BUILD_ROOT}/%{DOCDIR}/slapd.ldif.default
+rm -f ${RPM_BUILD_ROOT}/etc/openldap/DB_CONFIG.example
+rm -f ${RPM_BUILD_ROOT}/etc/openldap/schema/README
+rm -f ${RPM_BUILD_ROOT}/etc/openldap/slapd.ldif*
+rm -f ${RPM_BUILD_ROOT}/%{_rundir}/openldap-data/DB_CONFIG.example
mv servers/slapd/back-sql/rdbms_depend servers/slapd/back-sql/examples
# Provide SUSE policy symlink /usr/sbin/rcFOO -> /etc/init.d/FOO
# /usr/sbin/service exists only since openSUSE 12.3:
@@ -307,16 +376,15 @@
ln -s /sbin/service %{buildroot}%{_sbindir}/rcslapd
%endif
%endif
-rm -f $RPM_BUILD_ROOT/usr/lib/openldap/modules/*.a
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-dnssrv.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-ndb.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-null.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-passwd.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-shell.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-sock.5
-rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-tcl.5
+rm -f ${RPM_BUILD_ROOT}/%{_libdir}/openldap/*.a
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-dnssrv.5
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-ndb.5
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-null.5
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-passwd.5
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-shell.5
+rm -f ${RPM_BUILD_ROOT}/usr/share/man/man5/slapd-tcl.5
# Remove *.la files, libtool does not handle this correct
-rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.la
+rm -f ${RPM_BUILD_ROOT}%{_libdir}/lib*.la
#put filelists into files
cat >openldap2.filelist <<EOF
@@ -330,36 +398,45 @@
%dir /etc/openldap/schema
%config /etc/openldap/schema/*.schema
%config /etc/openldap/schema/*.ldif
-%config(noreplace) %attr(640, root, ldap) /etc/openldap/slapd.conf
+%config(noreplace) %attr(640, root, ldap) /%{_sysconfdir}/openldap/slapd.conf
%config(noreplace) %attr(640, ldap, ldap) /var/lib/ldap/DB_CONFIG
%config /var/lib/ldap/DB_CONFIG.example
-%attr(640, root, ldap) /%{_sysconfdir}/openldap/slapd.conf.default
+%config %attr(640, root, ldap) /%{_sysconfdir}/openldap/slapd.conf.default
+%config %attr(640, root, ldap) /%{_sysconfdir}/openldap/slapd.conf.example
%config(noreplace) /etc/sasl2/slapd.conf
%dir /usr/lib/openldap
-%dir /usr/lib/openldap/modules
-/usr/lib/openldap/modules/accesslog*
-/usr/lib/openldap/modules/auditlog*
-/usr/lib/openldap/modules/collect*
-/usr/lib/openldap/modules/constraint*
-/usr/lib/openldap/modules/dds*
-/usr/lib/openldap/modules/deref*
-/usr/lib/openldap/modules/dyngroup*
-/usr/lib/openldap/modules/dynlist*
-/usr/lib/openldap/modules/memberof*
-/usr/lib/openldap/modules/pcache*
-/usr/lib/openldap/modules/refint*
-/usr/lib/openldap/modules/retcode*
-/usr/lib/openldap/modules/rwm*
-/usr/lib/openldap/modules/seqmod*
-/usr/lib/openldap/modules/sssvlv*
-/usr/lib/openldap/modules/translucent*
-/usr/lib/openldap/modules/unique*
-/usr/lib/openldap/modules/valsort*
-/usr/lib/openldap/slapd
+%dir /%{_libdir}/openldap
+%{_libdir}/openldap/back_bdb*
+%{_libdir}/openldap/back_hdb*
+%{_libdir}/openldap/back_ldap*
+%{_libdir}/openldap/back_mdb*
+%{_libdir}/openldap/back_monitor*
+%{_libdir}/openldap/back_relay*
+%{_libdir}/openldap/accesslog*
+%{_libdir}/openldap/auditlog*
+%{_libdir}/openldap/collect*
+%{_libdir}/openldap/constraint*
+%{_libdir}/openldap/dds*
+%{_libdir}/openldap/deref*
+%{_libdir}/openldap/dyngroup*
+%{_libdir}/openldap/dynlist*
+%{_libdir}/openldap/memberof*
+%{_libdir}/openldap/pcache*
+%{_libdir}/openldap/ppolicy*
+%{_libdir}/openldap/refint*
+%{_libdir}/openldap/retcode*
+%{_libdir}/openldap/rwm*
+%{_libdir}/openldap/seqmod*
+%{_libdir}/openldap/sssvlv*
+%{_libdir}/openldap/syncprov*
+%{_libdir}/openldap/translucent*
+%{_libdir}/openldap/unique*
+%{_libdir}/openldap/valsort*
+%{_libdir}/slapd
/usr/lib/openldap/start
-/usr/lib/systemd/system/slapd.service
-%dir %attr(0700, ldap, ldap) /var/lib/ldap
-%dir %attr(0755, ldap, ldap) %ghost %{_rundir}/slapd
+%{_unitdir}/slapd.service
+%dir %attr(0750, ldap, ldap) /var/lib/ldap
+%ghost %attr(0750, ldap, ldap) %{_rundir}
%doc %{_mandir}/man8/sl*
%doc %{_mandir}/man5/slapd.*
%doc %{_mandir}/man5/slapd-bdb.*
@@ -380,11 +457,6 @@
%doc %{DOCDIR}/CHANGES
%doc %{DOCDIR}/slapd.ldif.default
EOF
-%if %suse_version < 1130
-cat >>openldap2.filelist <<EOF
-/usr/sbin/openldap-2.3-slapcat
-EOF
-%endif
#
#
cat > openldap2-client.filelist <<EOF
@@ -424,20 +496,37 @@
%_libdir/libldap*.a
EOF
cat > openldap2-back-perl.filelist <<EOF
-/usr/lib/openldap/modules/back_perl*
+%{_libdir}/openldap/back_perl*
%doc %{_mandir}/man5/slapd-perl.*
EOF
+cat > openldap2-back-sock.filelist <<EOF
+%{_libdir}/openldap/back_sock*
+%doc %{_mandir}/man5/slapd-sock.*
+EOF
cat > openldap2-back-meta.filelist <<EOF
-/usr/lib/openldap/modules/back_meta*
+%{_libdir}/openldap/back_meta*
%doc %{_mandir}/man5/slapd-meta.*
EOF
cat > openldap2-back-sql.filelist <<EOF
-/usr/lib/openldap/modules/back_sql*
+%{_libdir}/openldap/back_sql*
%doc %{_mandir}/man5/slapd-sql.*
%doc servers/slapd/back-sql/examples
%doc servers/slapd/back-sql/docs/bugs
%doc servers/slapd/back-sql/docs/install
EOF
+cat > openldap2-contrib.filelist <<EOF
+%{_libdir}/openldap/allowed.*
+%{_libdir}/openldap/allop.*
+%{_libdir}/openldap/autogroup.*
+%{_libdir}/openldap/lastbind.*
+%{_libdir}/openldap/noopsrch.*
+%{_libdir}/openldap/nops.*
+%{_libdir}/openldap/pw-sha2.*
+%{_libdir}/openldap/pw-pbkdf2.*
+%{_libdir}/openldap/denyop.*
+%{_libdir}/openldap/cloak.*
+%{_libdir}/openldap/smbk5pwd.*
+EOF
cat >openldap2-doc.filelist <<EOF
%dir %{DOCDIR}
%doc %{DOCDIR}/drafts
@@ -449,32 +538,20 @@
cat openldap2-client.filelist libldap.filelist openldap2-devel.filelist \
openldap2-devel-static.filelist |
%else
-cat openldap2.filelist openldap2-back-perl.filelist \
+cat openldap2.filelist openldap2-back-perl.filelist openldap2-back-sock.filelist \
openldap2-back-meta.filelist openldap2-back-sql.filelist \
- openldap2-doc.filelist
+ openldap2-doc.filelist openldap2-contrib.filelist |
%endif
grep -v "%dir " |sed -e "s|^.* ||" |grep "^/" |while read name ; do
- rm -rf $RPM_BUILD_ROOT$name
+ rm -rf ${RPM_BUILD_ROOT}${name}
done
%if "%{name}" == "openldap2"
%pre
/usr/sbin/groupadd -g 70 -o -r ldap || :
-/usr/sbin/useradd -r -o -g ldap -u 76 -s /bin/bash -c "User for OpenLDAP" -d /var/lib/ldap ldap || :
-# try to figure out if a db update is needed
-if [ ${1:-0} -gt 1 ] && [ -f /usr/lib/openldap/slapd ] &&
- /usr/bin/strings /usr/lib/openldap/slapd | \
- grep "slapd 2.3" 2>&1 > /dev/null;
-then
- # create a backup of the schema shipped with 2.3
- # at least core.schema changed between 2.3 and 2.4
- TEMPDIR=`mktemp -d /etc/openldap/schema.backup.XXXXXX`
- echo "Schema backup created in $TEMPDIR"
- cp -p --remove-destination /etc/openldap/schema/* $TEMPDIR
- echo $TEMPDIR > /etc/openldap/UPDATE_NEEDED ;
-fi
+/usr/sbin/useradd -r -o -g ldap -u 76 -s /bin/false -c "User for OpenLDAP" -d /var/lib/ldap ldap || :
if /usr/bin/chkconfig ldap 2>&1 | grep -q on; then
- touch /var/run/enable_slapd_service
+ touch %{_rundir}/enable_slapd_service
fi
%service_add_pre slapd.service
@@ -486,7 +563,7 @@
%{fillup_only -n openldap ldap}
%{remove_and_set -n openldap OPENLDAP_RUN_DB_RECOVER}
%service_add_post slapd.service
-if [ -f /var/run/enable_slapd_service ]; then
+if [ -f %{_rundir}/enable_slapd_service ]; then
/usr/bin/systemctl --quiet enable slapd
fi
@@ -502,6 +579,9 @@
%files -n openldap2-back-perl -f openldap2-back-perl.filelist
%defattr(-,root,root)
+%files -n openldap2-back-sock -f openldap2-back-sock.filelist
+%defattr(-,root,root)
+
%files -n openldap2-back-meta -f openldap2-back-meta.filelist
%defattr(-,root,root)
@@ -511,6 +591,9 @@
%files -n openldap2-doc -f openldap2-doc.filelist
%defattr(-,root,root)
+%files -n openldap2-contrib -f openldap2-contrib.filelist
+%defattr(-,root,root)
+
%else
%post -n libldap-2_4-2 -p /sbin/ldconfig
++++++ 0002-slapd.conf.dif ++++++
--- /var/tmp/diff_new_pack.UGwmDj/_old 2016-01-30 11:30:55.000000000 +0100
+++ /var/tmp/diff_new_pack.UGwmDj/_new 2016-01-30 11:30:55.000000000 +0100
@@ -1,35 +1,38 @@
-From a8be17d4a1db1c6ee24b328f3f34e21ccb02ca3f Mon Sep 17 00:00:00 2001
-From: Ralf Haferkamp <rhafer(a)suse.de>
-Date: Wed, 16 Jun 2010 14:05:49 +0200
-Subject: slapd.conf
-
-
diff --git a/servers/slapd/slapd.conf b/servers/slapd/slapd.conf
-index 4938b85..9caf292 100644
+index 4938b85..b9bec75 100644
--- a/servers/slapd/slapd.conf
+++ b/servers/slapd/slapd.conf
-@@ -3,6 +3,10 @@
+@@ -2,7 +2,11 @@
+ # See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
- include %SYSCONFDIR%/schema/core.schema
-+include %SYSCONFDIR%/schema/cosine.schema
-+include %SYSCONFDIR%/schema/inetorgperson.schema
-+include %SYSCONFDIR%/schema/rfc2307bis.schema
-+include %SYSCONFDIR%/schema/yast.schema
+-include %SYSCONFDIR%/schema/core.schema
++include /etc/openldap/schema/core.schema
++include /etc/openldap/schema/cosine.schema
++include /etc/openldap/schema/inetorgperson.schema
++include /etc/openldap/schema/rfc2307bis.schema
++include /etc/openldap/schema/yast.schema
# Define global ACLs to disable default read access.
-@@ -10,8 +14,8 @@ include %SYSCONFDIR%/schema/core.schema
+@@ -10,13 +14,13 @@ include %SYSCONFDIR%/schema/core.schema
# service AND an understanding of referrals.
#referral ldap://root.openldap.org
-pidfile %LOCALSTATEDIR%/run/slapd.pid
-argsfile %LOCALSTATEDIR%/run/slapd.args
-+pidfile %LOCALSTATEDIR%/slapd.pid
-+argsfile %LOCALSTATEDIR%/slapd.args
++pidfile /run/slapd/slapd.pid
++argsfile /run/slapd/slapd.args
# Load dynamic backend modules:
- # modulepath %MODULEDIR%
+-# modulepath %MODULEDIR%
++# modulepath /usr/lib/openldap
+ # moduleload back_bdb.la
+-# moduleload back_hdb.la
++moduleload back_hdb.la
+ # moduleload back_ldap.la
+
+ # Sample security restrictions
@@ -26,20 +30,30 @@ argsfile %LOCALSTATEDIR%/run/slapd.args
# security ssf=1 update_ssf=112 simple_bind=64
@@ -75,9 +78,12 @@
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn. (e.g., "access to * by * read")
-@@ -52,6 +66,8 @@ argsfile %LOCALSTATEDIR%/run/slapd.args
+@@ -50,8 +64,10 @@ argsfile %LOCALSTATEDIR%/run/slapd.args
+ # BDB database definitions
+ #######################################################################
- database bdb
+-database bdb
++database hdb
suffix "dc=my-domain,dc=com"
+checkpoint 1024 5
+cachesize 10000
@@ -92,6 +98,3 @@
+directory /var/lib/ldap
# Indices to maintain
index objectClass eq
---
-1.7.10.4
-
++++++ 0011-Enforce-minimum-DH-size-of-1024.patch -> 0010-Enforce-minimum-DH-size-of-1024.patch ++++++
++++++ 0011-openldap-re24-its7796.patch ++++++
diff --git a/servers/slapd/back-bdb/filterindex.c b/servers/slapd/back-bdb/filterindex.c
index 71e3ea4..bafef72 100644
--- a/servers/slapd/back-bdb/filterindex.c
+++ b/servers/slapd/back-bdb/filterindex.c
@@ -741,7 +741,7 @@ equality_candidates(
&db, &mask, &prefix );
if ( rc == LDAP_INAPPROPRIATE_MATCHING ) {
- Debug( LDAP_DEBUG_ANY,
+ Debug( LDAP_DEBUG_TRACE,
"<= bdb_equality_candidates: (%s) not indexed\n",
ava->aa_desc->ad_cname.bv_val, 0, 0 );
return 0;
@@ -858,7 +858,7 @@ approx_candidates(
&db, &mask, &prefix );
if ( rc == LDAP_INAPPROPRIATE_MATCHING ) {
- Debug( LDAP_DEBUG_ANY,
+ Debug( LDAP_DEBUG_TRACE,
"<= bdb_approx_candidates: (%s) not indexed\n",
ava->aa_desc->ad_cname.bv_val, 0, 0 );
return 0;
@@ -978,7 +978,7 @@ substring_candidates(
&db, &mask, &prefix );
if ( rc == LDAP_INAPPROPRIATE_MATCHING ) {
- Debug( LDAP_DEBUG_ANY,
+ Debug( LDAP_DEBUG_TRACE,
"<= bdb_substring_candidates: (%s) not indexed\n",
sub->sa_desc->ad_cname.bv_val, 0, 0 );
return 0;
@@ -1095,7 +1095,7 @@ inequality_candidates(
&db, &mask, &prefix );
if ( rc == LDAP_INAPPROPRIATE_MATCHING ) {
- Debug( LDAP_DEBUG_ANY,
+ Debug( LDAP_DEBUG_TRACE,
"<= bdb_inequality_candidates: (%s) not indexed\n",
ava->aa_desc->ad_cname.bv_val, 0, 0 );
return 0;
diff --git a/servers/slapd/back-mdb/filterindex.c b/servers/slapd/back-mdb/filterindex.c
index 58c1cc8..20c58b7 100644
--- a/servers/slapd/back-mdb/filterindex.c
+++ b/servers/slapd/back-mdb/filterindex.c
@@ -709,7 +709,7 @@ equality_candidates(
&dbi, &mask, &prefix );
if ( rc == LDAP_INAPPROPRIATE_MATCHING ) {
- Debug( LDAP_DEBUG_ANY,
+ Debug( LDAP_DEBUG_TRACE,
"<= mdb_equality_candidates: (%s) not indexed\n",
ava->aa_desc->ad_cname.bv_val, 0, 0 );
return 0;
@@ -825,7 +825,7 @@ approx_candidates(
&dbi, &mask, &prefix );
if ( rc == LDAP_INAPPROPRIATE_MATCHING ) {
- Debug( LDAP_DEBUG_ANY,
+ Debug( LDAP_DEBUG_TRACE,
"<= mdb_approx_candidates: (%s) not indexed\n",
ava->aa_desc->ad_cname.bv_val, 0, 0 );
return 0;
@@ -944,7 +944,7 @@ substring_candidates(
&dbi, &mask, &prefix );
if ( rc == LDAP_INAPPROPRIATE_MATCHING ) {
- Debug( LDAP_DEBUG_ANY,
+ Debug( LDAP_DEBUG_TRACE,
"<= mdb_substring_candidates: (%s) not indexed\n",
sub->sa_desc->ad_cname.bv_val, 0, 0 );
return 0;
@@ -1060,7 +1060,7 @@ inequality_candidates(
&dbi, &mask, &prefix );
if ( rc == LDAP_INAPPROPRIATE_MATCHING ) {
- Debug( LDAP_DEBUG_ANY,
+ Debug( LDAP_DEBUG_TRACE,
"<= mdb_inequality_candidates: (%s) not indexed\n",
ava->aa_desc->ad_cname.bv_val, 0, 0 );
return 0;
++++++ 0012-openldap-re24-its8336.patch ++++++
>From fd7bfbc0df0ade534bea84914d385ecf2a73f678 Mon Sep 17 00:00:00 2001
From: Howard Chu <hyc(a)openldap.org>
Date: Tue, 8 Dec 2015 18:17:24 +0000
Subject: ITS#8336 fix page_search_root assert on FreeDB
Let "illegal" branch pages thru on the FreeDB - the condition
is only temporary and will be fixed by the time rebalance finishes.
diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c
index fa0c9e5..a624cba 100644
--- a/libraries/liblmdb/mdb.c
+++ b/libraries/liblmdb/mdb.c
@@ -5279,7 +5279,11 @@ mdb_page_search_root(MDB_cursor *mc, MDB_val *key, int flags)
indx_t i;
DPRINTF(("branch page %"Z"u has %u keys", mp->mp_pgno, NUMKEYS(mp)));
- mdb_cassert(mc, NUMKEYS(mp) > 1);
+ /* Don't assert on branch pages in the FreeDB. We can get here
+ * while in the process of rebalancing a FreeDB branch page; we must
+ * let that proceed. ITS#8336
+ */
+ mdb_cassert(mc, !mc->mc_dbi || NUMKEYS(mp) > 1);
DPRINTF(("found index 0 to page %"Z"u", NODEPGNO(NODEPTR(mp, 0))));
if (flags & (MDB_PS_FIRST|MDB_PS_LAST)) {
++++++ README.module-loading ++++++
All of the OpenLDAP backends (except back-config) and overlays are now
compiled as dynamic modules in our packages. If you want to use any of
these in your setup make sure to put the correct "olcModuleLoad" or
"moduleload" statements in your configuration.
For details please see the slapd-config(5) and slapd.conf(5) manpages
(depending on which config mechanism you use).
For a list of the included dynamic modules list all modules files:
ls /usr/lib*/openldap/*.so
Or just the backend files:
ls /usr/lib*/openldap/back_*.so
Documentations for the overlays can be found in the respective man pages or
the OpenLDAP Administration Guide which is part of the "openldap2-doc"
package.
Backend man-pages:
man 5 slapo-<back_name>
Overlays man-pages:
man 5 slapo-<name>
++++++ SuSEfirewall2.openldap ++++++
## Name: OpenLDAP Server
## Description: Opens ports for the OpenLDAP Server (slapd).
# space separated list of allowed TCP ports
TCP="ldap ldaps"
# space separated list of allowed UDP ports
UDP="ldap"
# space separated list of allowed RPC services
RPC=""
# space separated list of allowed IP protocols
IP=""
# space separated list of allowed UDP broadcast ports
BROADCAST=""
++++++ ldapns.schema ++++++
# $Id: ldapns.schema,v 1.3 2003/05/29 12:57:29 lukeh Exp $
# LDAP Name Service Additional Schema
# http://www.iana.org/assignments/gssapi-service-names
attributetype ( 1.3.6.1.4.1.5322.17.2.1 NAME 'authorizedService'
DESC 'IANA GSS-API authorized service name'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
objectclass ( 1.3.6.1.4.1.5322.17.1.1 NAME 'authorizedServiceObject'
DESC 'Auxiliary object class for adding authorizedService attribute'
SUP top
AUXILIARY
MAY authorizedService )
objectclass ( 1.3.6.1.4.1.5322.17.1.2 NAME 'hostObject'
DESC 'Auxiliary object class for adding host attribute'
SUP top
AUXILIARY
MAY host )
++++++ openldap-2.4.42.tgz -> openldap-2.4.43.tgz ++++++
++++ 6915 lines of diff (skipped)
++++++ rfc2307bis.schema ++++++
# builtin
#
#attributetype ( 1.3.6.1.1.1.1.0 NAME 'uidNumber'
# DESC 'An integer uniquely identifying a user in an administrative domain'
# EQUALITY integerMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
# SINGLE-VALUE )
# builtin
#
#attributetype ( 1.3.6.1.1.1.1.1 NAME 'gidNumber'
# DESC 'An integer uniquely identifying a group in an
# administrative domain'
# EQUALITY integerMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
# SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.2 NAME 'gecos'
DESC 'The GECOS field; the common name'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.3 NAME 'homeDirectory'
DESC 'The absolute path to the home directory'
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.4 NAME 'loginShell'
DESC 'The path to the login shell'
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.5 NAME 'shadowLastChange'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.6 NAME 'shadowMin'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.7 NAME 'shadowMax'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.8 NAME 'shadowWarning'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.9 NAME 'shadowInactive'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.10 NAME 'shadowExpire'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.11 NAME 'shadowFlag'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.12 NAME 'memberUid'
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.1.1.1.13 NAME 'memberNisNetgroup'
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.1.1.1.14 NAME 'nisNetgroupTriple'
DESC 'Netgroup triple'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.1.1.1.15 NAME 'ipServicePort'
DESC 'Service port number'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.16 NAME 'ipServiceProtocol'
DESC 'Service protocol name'
SUP name )
attributetype ( 1.3.6.1.1.1.1.17 NAME 'ipProtocolNumber'
DESC 'IP protocol number'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.18 NAME 'oncRpcNumber'
DESC 'ONC RPC number'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.19 NAME 'ipHostNumber'
DESC 'IPv4 addresses as a dotted decimal omitting leading
zeros or IPv6 addresses as defined in RFC2373'
SUP name )
attributetype ( 1.3.6.1.1.1.1.20 NAME 'ipNetworkNumber'
DESC 'IP network as a dotted decimal, eg. 192.168,
omitting leading zeros'
SUP name
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.21 NAME 'ipNetmaskNumber'
DESC 'IP netmask as a dotted decimal, eg. 255.255.255.0,
omitting leading zeros'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.22 NAME 'macAddress'
DESC 'MAC address in maximal, colon separated hex
notation, eg. 00:00:92:90:ee:e2'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.1.1.1.23 NAME 'bootParameter'
DESC 'rpc.bootparamd parameter'
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.1.1.1.24 NAME 'bootFile'
DESC 'Boot image name'
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.1.1.1.26 NAME 'nisMapName'
DESC 'Name of a A generic NIS map'
SUP name )
attributetype ( 1.3.6.1.1.1.1.27 NAME 'nisMapEntry'
DESC 'A generic NIS entry'
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.28 NAME 'nisPublicKey'
DESC 'NIS public key'
EQUALITY octetStringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.29 NAME 'nisSecretKey'
DESC 'NIS secret key'
EQUALITY octetStringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.30 NAME 'nisDomain'
DESC 'NIS domain'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
attributetype ( 1.3.6.1.1.1.1.31 NAME 'automountMapName'
DESC 'automount Map Name'
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.32 NAME 'automountKey'
DESC 'Automount Key value'
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.1.1.1.33 NAME 'automountInformation'
DESC 'Automount information'
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY
DESC 'Abstraction of an account with POSIX attributes'
MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
MAY ( userPassword $ loginShell $ gecos $
description ) )
objectclass ( 1.3.6.1.1.1.2.1 NAME 'shadowAccount' SUP top AUXILIARY
DESC 'Additional attributes for shadow passwords'
MUST uid
MAY ( userPassword $ description $
shadowLastChange $ shadowMin $ shadowMax $
shadowWarning $ shadowInactive $
shadowExpire $ shadowFlag ) )
objectclass ( 1.3.6.1.1.1.2.2 NAME 'posixGroup' SUP top AUXILIARY
DESC 'Abstraction of a group of accounts'
MUST gidNumber
MAY ( userPassword $ memberUid $
description ) )
objectclass ( 1.3.6.1.1.1.2.3 NAME 'ipService' SUP top STRUCTURAL
DESC 'Abstraction an Internet Protocol service.
Maps an IP port and protocol (such as tcp or udp)
to one or more names; the distinguished value of
the cn attribute denotes the services canonical
name'
MUST ( cn $ ipServicePort $ ipServiceProtocol )
MAY description )
objectclass ( 1.3.6.1.1.1.2.4 NAME 'ipProtocol' SUP top STRUCTURAL
DESC 'Abstraction of an IP protocol. Maps a protocol number
to one or more names. The distinguished value of the cn
attribute denotes the protocols canonical name'
MUST ( cn $ ipProtocolNumber )
MAY description )
objectclass ( 1.3.6.1.1.1.2.5 NAME 'oncRpc' SUP top STRUCTURAL
DESC 'Abstraction of an Open Network Computing (ONC)
[RFC1057] Remote Procedure Call (RPC) binding.
This class maps an ONC RPC number to a name.
The distinguished value of the cn attribute denotes
the RPC services canonical name'
MUST ( cn $ oncRpcNumber )
MAY description )
objectclass ( 1.3.6.1.1.1.2.6 NAME 'ipHost' SUP top AUXILIARY
DESC 'Abstraction of a host, an IP device. The distinguished
value of the cn attribute denotes the hosts canonical
name. Device SHOULD be used as a structural class'
MUST ( cn $ ipHostNumber )
MAY ( userPassword $ l $ description $ manager ) )
objectclass ( 1.3.6.1.1.1.2.7 NAME 'ipNetwork' SUP top STRUCTURAL
DESC 'Abstraction of a network. The distinguished value of
the cn attribute denotes the networks canonical name'
MUST ipNetworkNumber
MAY ( cn $ ipNetmaskNumber $ l $ description $ manager ) )
objectclass ( 1.3.6.1.1.1.2.8 NAME 'nisNetgroup' SUP top STRUCTURAL
DESC 'Abstraction of a netgroup. May refer to other netgroups'
MUST cn
MAY ( nisNetgroupTriple $ memberNisNetgroup $ description ) )
objectclass ( 1.3.6.1.1.1.2.9 NAME 'nisMap' SUP top STRUCTURAL
DESC 'A generic abstraction of a NIS map'
MUST nisMapName
MAY description )
objectclass ( 1.3.6.1.1.1.2.10 NAME 'nisObject' SUP top STRUCTURAL
DESC 'An entry in a NIS map'
MUST ( cn $ nisMapEntry $ nisMapName )
MAY description )
objectclass ( 1.3.6.1.1.1.2.11 NAME 'ieee802Device' SUP top AUXILIARY
DESC 'A device with a MAC address; device SHOULD be
used as a structural class'
MAY macAddress )
objectclass ( 1.3.6.1.1.1.2.12 NAME 'bootableDevice' SUP top AUXILIARY
DESC 'A device with boot parameters; device SHOULD be
used as a structural class'
MAY ( bootFile $ bootParameter ) )
objectclass ( 1.3.6.1.1.1.2.14 NAME 'nisKeyObject' SUP top AUXILIARY
DESC 'An object with a public and secret key'
MUST ( cn $ nisPublicKey $ nisSecretKey )
MAY ( uidNumber $ description ) )
objectclass ( 1.3.6.1.1.1.2.15 NAME 'nisDomainObject' SUP top AUXILIARY
DESC 'Associates a NIS domain with a naming context'
MUST nisDomain )
objectclass ( 1.3.6.1.1.1.2.16 NAME 'automountMap' SUP top STRUCTURAL
MUST ( automountMapName )
MAY description )
objectclass ( 1.3.6.1.1.1.2.17 NAME 'automount' SUP top STRUCTURAL
DESC 'Automount information'
MUST ( automountKey $ automountInformation )
MAY description )
## namedObject is needed for groups without members
objectclass ( 1.3.6.1.4.1.5322.13.1.1 NAME 'namedObject' SUP top
STRUCTURAL MAY cn )
++++++ slapd.conf.example ++++++
############################################################################
# See slapd.conf(5) for details on configuration options.
# This file SHOULD NOT be world readable.
#
# Important note:
# You surely have to adjust some settings to meet your (security)
# requirements.
# At least you should replace suffix "dc=example,dc=com" by
# something meaningful for your setup.
# If you plan to use OpenLDAP server as backend for Samba and/or Kerberos
# KDC then you MUST add decent ACLs for protecting user credentials!
#
# Read the man pages before changing something!
#
# You can debug the config by running (as root while slapd stopped):
# /usr/sbin/slapd -f /etc/openldap/slapd.conf -u ldap -g ldap -h "ldapi:/// ldap://127.0.0.1" -d 65535
############################################################################
#---------------------------------------------------------------------------
# slapd global parameters
#---------------------------------------------------------------------------
# serverID must be unique across all provider replicas
# for using multi-master replication (MMR)
serverID 99
# only alter this when you know what you're doing
#threads 4
# Run-time files
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
# for more debugging set:
#loglevel config stats stats2
loglevel stats
#---------------------------------------------------------------------------
# Load runtime loadable modules
#---------------------------------------------------------------------------
# Load additional backend modules installed by package 'openldap2'
# The following backends are statically built-in and therefore don't have
# to be loaded here:
# config, ldif, monitor, bdb, hdb, ldap, mdb, relay
#moduleload back_
#moduleload back_
#moduleload back_mdb
#moduleload back_meta
#moduleload back_sock
# Load additional overlay modules installed by package 'openldap2'
# The following overlay are statically built-in and therefore don't have
# to be loaded here:
# ppolicy, syncprov
#moduleload accesslog
#moduleload constraint
#moduleload dds
#moduleload deref
#moduleload dynlist
#moduleload memberof
moduleload refint
#moduleload sssvlv
#moduleload translucent
moduleload unique
#moduleload valsort
# Load additional overlay modules installed by package 'openldap2-contrib'
#moduleload allowed
#moduleload lastbind
#moduleload noopsrch
#moduleload pw-pbkdf2
#moduleload pw-sha2
#moduleload smbk5pwd
#---------------------------------------------------------------------------
# Include schema files
#---------------------------------------------------------------------------
# Schema files installed by package 'openldap2'
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/rfc2307bis.schema
include /etc/openldap/schema/ppolicy.schema
#include /etc/openldap/schema/yast.schema
# Schema file installed by package 'dhcp-server'
#include /etc/openldap/schema/dhcp.schema
# Schema file installed by package 'samba'
#include /etc/openldap/schema/samba3.schema
# Schema file installed by package 'krb5-plugin-kdb-ldap'
#include /usr/share/doc/packages/krb5/kerberos.schema
#---------------------------------------------------------------------------
# Transport Layer Security (TLS) configuration
#---------------------------------------------------------------------------
# require at least TLS 1.0 and highly secure ciphers
#TLSProtocolMin 3.1
#TLSCipherSuite HIGH:!SSLv3:!SSLv2:!ADH
# TLS certificate and key files
#TLSCACertificateFile /etc/ssl/ca-bundle.pem
#TLSCertificateFile /etc/openldap/ssl.crt/server.crt
#TLSCertificateKeyFile /etc/openldap/ssl.key/server.key
# For enabling Perfect Forward Secrecy (PFS), see dhparam(1)
#TLSDHParamFile /etc/openldap/ssl.key/dhparam
#---------------------------------------------------------------------------
# Password hashing
#---------------------------------------------------------------------------
#password-hash {CRYPT}
# Parameters for {CRYPT} scheme: SHA-512, 72 bits) of salt, 5000 iterations
#password-crypt-salt-format "$6$%.12s"
#---------------------------------------------------------------------------
# Security requirements
#---------------------------------------------------------------------------
#disallow bind_anon
#require bind LDAPv3 strong
# SSF value for ldapi://
localSSF 256
# minimum required SSF value (security strength factor)
# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64
#security ssf=128 update_ssf=256 simple_bind=128
security ssf=0
#---------------------------------------------------------------------------
# Global access control (ACLs)
#---------------------------------------------------------------------------
# Root DSE: allow anyone to read it
access to
dn.base=""
by * read
# Sub schema sub entry: allow anyone to read it
access to
dn.base="cn=Subschema"
by * read
#---------------------------------------------------------------------------
# Authz-DN mappings
#---------------------------------------------------------------------------
# If connected via IPC socket (ldapi:///) and SASL/EXTERNAL was used
# System user root is mapped to the rootdn in database dc=example,dc=com
# which has also read access on config and monitor databases
authz-regexp
"gidNumber=0\\+uidNumber=0,cn=peercred,cn=external,cn=auth"
"cn=root,dc=example,dc=com"
# Map local system user to LDAP entry
# if connected via IPC socket (ldapi:///) and SASL/EXTERNAL was used
authz-regexp
"gidnumber=([0-9]+)\\+uidnumber=([0-9]+),cn=peercred,cn=external,cn=auth"
"ldap:///dc=example,dc=com??sub?(&(objectClass=posixAccount)(uidNumber=$2)(gidNumber=$1))"
# this maps the attribute uid to a LDAP entry
# if one of the typical password-based SASL mechs was used
authz-regexp
"uid=([a-zA-Z0-9_-]+),cn=(DIGEST-MD5|CRAM-MD5|NTLM|PLAIN|LOGIN|SCRAM-SHA-1),cn=auth"
"ldap:///dc=example,dc=com??sub?(uid=$1)"
# this maps the attribute uid to a LDAP entry
# if one of the Kerberos based SASL mechs was used
#authz-regexp
# "uid=([a-zA-Z0-9_-]+),cn=(GSSAPI|GS2-KRB5|GS2-IAKERB),cn=auth"
# "ldap:///dc=example,dc=com??sub?(|(krbPrincipalName=$1)(krbPrincipalAlias=$1))"
# Map client cert subject DN to LDAP entry if SASL/EXTERNAL was used
#authz-regexp
# "(.+)"
# "ldap:///dc=example,dc=com??sub?(&(objectClass=pkiUser)(seeAlso=$1))"
#===========================================================================
# Database specific configuration sections below
# Required order of databases:
# config (first), ...others..., monitor (last)
#===========================================================================
#---------------------------------------------------------------------------
# cn=config // Configuration database (always first!)
# see slapd-config(5)
#---------------------------------------------------------------------------
database config
# Cleartext passwords, especially for the rootdn, should
# be avoid! See slappasswd(8) and slapd.conf(5) for details.
# Best thing is not to set rootpw at all!
# For local config access by root use LDAPI with SASL/EXTERNAL instead
# (see above).
#rootpw secret
access to
dn.subtree="cn=config"
by dn.exact="cn=root,dc=example,dc=com" manage
by group.base="cn=slapd admins,ou=groups,dc=example,dc=com" read
by * none
#---------------------------------------------------------------------------
# dc=example,dc=com // Example MDB database to be used by normal clients
# see slapd-mdb(5)
#---------------------------------------------------------------------------
database mdb
suffix "dc=example,dc=com"
# rootdn has to be set for overlays' internal operations
rootdn "cn=root,dc=example,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid! See slappasswd(8) and slapd.conf(5) for details.
# Best thing is not to set rootpw at all!
rootpw secret
# The database directory MUST exist prior to running slapd and
# SHOULD only be accessible by the slapd user 'ldap'.
# mkdir /var/lib/ldap/example-db && chown ldap:ldap /var/lib/ldap/example-db && chmod 0700 /var/lib/ldap/example-db
directory /var/lib/ldap/example-db
# Permissions of database files created
mode 0600
# extra information to be available in cn=monitor for this database
monitoring on
# Perform ACL checks on the content of a new entry being added
add_content_acl on
# backend-specific database parameters
checkpoint 1024 5
# 100 MB (you can raise the limit later)
maxsize 104857600
# Indices to maintain
#
# Whenever you change indexing configuration you have to re-run slapindex
# while slapd being stopped!
# Don't forget to fix ownership/permissions of newly generated index files
# afterwards!
# set always!
index objectClass eq
# for typical address book use
index cn,sn,givenName,mail eq,sub
# for user management
index uid,uidNumber,gidNumber eq
# for authz-regexp mapping of Kerberos principal name
#index krbPrincipalName,krbPrincipalAlias eq
# for authz-regexp mapping of client cert subject DNs
#index seeAlso eq
# for syncrepl
index entryUUID,entryCSN eq
# access control lists (ACLs) for dc=example,dc=com
# see slapd.access(5) for details on access control lists (ACLs)
# full read access also to 'userPassword' for group of replicas
# and control is forwarded to subsequent ACLs
access to
dn.subtree=dc=example,dc=com
by group.base="cn=slapd replicas,ou=groups,dc=example,dc=com" read
by * break
# write-only access to 'userPassword' for user, auth access else
access to
attrs=userPassword
by self =w
by * auth
# 'userPKCS' must only be accessible by self
access to
attrs=userPKCS12
by self write
by * none
# No access to history of passwords
#access to
# attrs=pwdHistory
# by * none
# Catch-all ACL for the rest
access to
dn.subtree=dc=example,dc=com
by group.base="cn=slapd admins,ou=groups,dc=example,dc=com" manage
by self read
by users read
by * auth
# see slapo-ppolicy(5)
overlay ppolicy
# Default password policy entry
#ppolicy_default cn=ppolicy-default,ou=policies,dc=example,dc=com
# Hash clear-text userPassword values sent in with add/modify operations
#ppolicy_hash_cleartext
# Return AccountLocked error code to client
#ppolicy_use_lockout
# see slapo-refint(5)
overlay refint
refint_attributes member seeAlso
refint_nothing cn=dummy
# Check sub-tree wide uniqueness of certain attributes
# see slapo-unique(5)
# you have to add eq-index for efficient uniqueness check!
# Note that filter part is currently ignored because of OpenLDAP ITS#6825
overlay unique
unique_uri "ldap:///dc=example,dc=com?uid,uidNumber,homeDirectory?sub"
unique_uri "ldap:///ou=groups,dc=example,dc=com?cn,gidNumber?sub?(|(objectClass=groupOfNames)(objectClass=posixGroup))"
#unique_uri "ldap:///dc=example,dc=com?krbPrincipalName,krbPrincipalAlias?sub"
#unique_uri "ldap:///dc=example,dc=com?ipHostNumber?sub"
#unique_uri "ldap:///dc=example,dc=com?employeeNumber?sub"
#unique_uri "ldap:///dc=example,dc=com?uniqueIdentifier?sub"
#overlay syncprov
#mirrormode on
#---------------------------------------------------------------------------
# cn=monitor // Monitoring database (always last!)
# see slapd-monitor(5)
#---------------------------------------------------------------------------
database monitor
access to
dn.subtree="cn=monitor"
by dn.exact="cn=root,dc=example,dc=com" write
by group.base="cn=slapd admins,ou=groups,dc=example,dc=com" write
by users read
++++++ slapd.service ++++++
[Unit]
Description=OpenLDAP Server Daemon
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/lib/openldap/start
[Install]
WantedBy=multi-user.target
++++++ start ++++++
#! /bin/sh
# Copyright (c) 1997-2000 SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# Author: Carsten Hoeger
# Ralf Haferkamp
#
# /etc/init.d/ldap
#
### BEGIN INIT INFO
# Provides: ldap
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: OpenLDAP Server (slapd)
# Description: Start and Stop the OpenLDAP Server (slapd) to
# provide LDAP directory services.
### END INIT INFO
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
test -f /etc/sysconfig/openldap && . /etc/sysconfig/openldap
SLAPD_BIN=/usr/sbin/slapd
LDAP_URLS=""
LDAPS_URLS=""
LDAPI_URLS=""
SLAPD_CONFIG_ARG="-F /etc/openldap/slapd.d"
SLAPD_PID_DIR="/var/run/slapd/"
test -x $SLAPD_BIN || exit 5
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num><num>
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
. /etc/rc.status
# First reset status of this service
rc_reset
function init_ldap_listener_urls(){
case "$OPENLDAP_START_LDAP" in
[Yy][Ee][Ss])
if [ -n "$OPENLDAP_LDAP_INTERFACES" ]
then
for iface in $OPENLDAP_LDAP_INTERFACES ;do
LDAP_URLS="$LDAP_URLS ldap://$iface"
done
else
LDAP_URLS="ldap:///"
fi
;;
esac
}
function init_ldapi_listener_urls(){
case "$OPENLDAP_START_LDAPI" in
[Yy][Ee][Ss])
if [ -n "$OPENLDAP_LDAPI_INTERFACES" ]
then
for iface in $OPENLDAP_LDAPI_INTERFACES ;do
esc_iface=`echo "$iface" | sed -e s'/\\//\\%2f/'g`
LDAPI_URLS="$LDAPI_URLS ldapi://$esc_iface"
done
else
LDAPI_URLS="ldapi:///"
fi
;;
esac
}
function init_ldaps_listener_urls(){
case "$OPENLDAP_START_LDAPS" in
[Yy][Ee][Ss])
if [ -n "$OPENLDAP_LDAPS_INTERFACES" ]
then
for iface in $OPENLDAP_LDAPS_INTERFACES ;do
LDAPS_URLS="$LDAPS_URLS ldaps://$iface"
done
else
LDAPS_URLS="ldaps:///"
fi
;;
esac
}
function check_connection(){
SLAPD_TIMEOUT=10
START=$( date +%s)
while [ $(( $( date +%s) - ${START} )) -lt ${SLAPD_TIMEOUT} ]; do
ldapsearch -x -H "$LDAP_URLS $LDAPI_URLS $LDAPS_URLS" -b "" -s base &>/dev/null
LDAPSEARCH_RC=$?
if [ ${LDAPSEARCH_RC} -ge 0 ] && [ ${LDAPSEARCH_RC} -le 80 ] ; then break
else sleep 1
fi
done
}
depth=0;
function chown_database_dirs_bconfig() {
ldapdir=$(find $1 -type f -name "olcDatabase*" | xargs grep -i olcdbdirectory | awk '{print $2}')
for dir in $ldapdir; do
[ -d "$dir" ] && [ -n "$OPENLDAP_USER" ] && \
chown -R $OPENLDAP_USER $dir 2>/dev/null
[ -d "$dir" ] && [ -n "$OPENLDAP_GROUP" ] && \
chgrp -R $OPENLDAP_GROUP $dir 2>/dev/null
done
}
function chown_database_dirs() {
ldapdir=`grep ^directory $1 | awk '{print $2}'`
for dir in $ldapdir; do
[ -d "$dir" ] && [ -n "$OPENLDAP_USER" ] && \
chown -R $OPENLDAP_USER $dir 2>/dev/null
[ -d "$dir" ] && [ -n "$OPENLDAP_GROUP" ] && \
chgrp -R $OPENLDAP_GROUP $dir 2>/dev/null
done
includes=`grep ^include $1 | awk '{print $2}'`
if [ $depth -le 50 ]; then
depth=$(( $depth + 1 ));
for i in $includes; do
chown_database_dirs "$i" ;
done
fi
}
USER_CMD=""
GROUP_CMD=""
[ ! "x$OPENLDAP_USER" = "x" ] && USER_CMD="-u $OPENLDAP_USER"
[ ! "x$OPENLDAP_GROUP" = "x" ] && GROUP_CMD="-g $OPENLDAP_GROUP"
[ ! "x$OPENLDAP_CONFIG_BACKEND" = "xldap" ] && SLAPD_CONFIG_ARG="-f /etc/openldap/slapd.conf"
if [ -f /etc/openldap/UPDATE_NEEDED ]; then
rc_failed 6
echo " The configuration of your LDAP server needs to be updated."
echo " Please see /usr/share/doc/packages/openldap2/README.update"
echo " for details."
echo " After the update please remove the file:"
echo " /etc/openldap/UPDATE_NEEDED"
rc_status -v
exit
fi
# chown backend directories if OPENLDAP_CHOWN_DIRS ist set
if [ "$(echo "$OPENLDAP_CHOWN_DIRS" | tr 'A-Z' 'a-z')" = "yes" ]; then
if [ -n "$OPENLDAP_USER" -o -n "$OPENLDAP_GROUP" ]; then
if [ -n "$OPENLDAP_CONFIG_BACKEND" -a "$OPENLDAP_CONFIG_BACKEND" = "ldap" ]; then
chown -R $OPENLDAP_USER /etc/openldap/slapd.d 2>/dev/null
chgrp -R $OPENLDAP_GROUP /etc/openldap/slapd.d 2>/dev/null
chown_database_dirs_bconfig "/etc/openldap/slapd.d"
# assume back-config usage if slapd.conf is not present but slapd.d is
elif [ ! -f /etc/openldap/slapd.conf -a /etc/openldap/slapd.d ]; then
chown -R $OPENLDAP_USER /etc/openldap/slapd.d 2>/dev/null
chgrp -R $OPENLDAP_GROUP /etc/openldap/slapd.d 2>/dev/null
chown_database_dirs_bconfig "/etc/openldap/slapd.d"
else
chown_database_dirs "/etc/openldap/slapd.conf"
chgrp $OPENLDAP_GROUP /etc/openldap/slapd.conf 2>/dev/null
fi
if test -f /etc/sasl2/slapd.conf ; then
chgrp $OPENLDAP_GROUP /etc/sasl2/slapd.conf 2>/dev/null
chmod 640 /etc/sasl2/slapd.conf 2>/dev/null
fi
if [ -n "$OPENLDAP_KRB5_KEYTAB" ]; then
keytabfile=${OPENLDAP_KRB5_KEYTAB/#FILE:/}
if test -f $keytabfile ; then
chgrp $OPENLDAP_GROUP $keytabfile 2>/dev/null
chmod g+r $keytabfile 2>/dev/null
fi
fi
fi
fi
if [ -n "$OPENLDAP_KRB5_KEYTAB" ]; then
export KRB5_KTNAME=$OPENLDAP_KRB5_KEYTAB
fi
case "$OPENLDAP_REGISTER_SLP" in
[Yy][Ee][Ss])
SLAPD_SLP_REG="-o slp=on"
;;
*)
SLAPD_SLP_REG="-o slp=off"
;;
esac
init_ldap_listener_urls
init_ldapi_listener_urls
init_ldaps_listener_urls
if [ ! -d $SLAPD_PID_DIR ]; then
mkdir -p $SLAPD_PID_DIR
chown ldap:ldap $SLAPD_PID_DIR
fi
echo -n "Starting ldap-server"
exec $SLAPD_BIN -h "$LDAP_URLS $LDAPS_URLS $LDAPI_URLS" \
$SLAPD_CONFIG_ARG $USER_CMD $GROUP_CMD \
$OPENLDAP_SLAPD_PARAMS $SLAPD_SLP_REG
++++++ sysconfig.openldap ++++++
## Path: Network/LDAP
## Description: Basic Configuration of the OpenLDAP Directory Server
## Type: yesno
## Default: yes
## ServiceRestart: ldap
#
# If set to "no" the LDAP server will not accept any "normal" LDAP connections
# but just connections over "ldaps" or "ldapi". Setting this to "no" does only
# make sense when either OPENLDAP_START_LDAPS or OPENLDAP_START_LDAPI is set
# "yes".
#
OPENLDAP_START_LDAP="yes"
## Type: yesno
## Default: no
## ServiceRestart: ldap
#
# If set to "yes" the "ldap over ssl" feature of slapd will be enabled. Don't
# forget to add the "TLSCertificateFile" and "TLSCertificateKeyFile" options
# to the /etc/openldap/slapd.conf (man slapd.conf).
# Note: Don't confuse this with "START_TLS", the preferred method for
# making encrypted LDAP connections, which is enabled as soon as You
# specify "TLSCertificateFile" and "TLSCertificateKeyFile" in your config
# file
#
OPENLDAP_START_LDAPS="no"
## Type: yesno
## Default: no
## ServiceRestart: ldap
#
# If set to "yes", "ldap over IPC" feature of slapd will be enabled.
# The ldap server creates a Unix domain socket as /var/run/slapd/ldapi.
# Default: no
#
OPENLDAP_START_LDAPI="yes"
## Type: string
## Default: ""
## ServiceRestart: ldap
#
# If not empty, additional parameters for slapd daemon.
# Default: ""
#
OPENLDAP_SLAPD_PARAMS=""
## Type: string
## Default: ldap
## ServiceRestart: ldap
#
# specifies a user, as which the openldap server should be executed
# Default: ldap
#
OPENLDAP_USER="ldap"
## Type: string
## Default: ldap
## ServiceRestart: ldap
#
# specifies a group, as which the openldap server should be executed
# Default: ldap
#
OPENLDAP_GROUP="ldap"
## Type: yesno
## Default: yes
## ServiceRestart: ldap
#
# If set to "yes" the init scripts will change the owner/group of the
# different backend database directories (e.g. /var/lib/ldap) to the
# user/group specified above
#
OPENLDAP_CHOWN_DIRS="yes"
## Type: string
## Default: ""
## ServiceRestart: ldap
#
# Use this to specify the interfaces that the server such accept
# LDAP connections from. The values are specified in the format
# <address>:<port>, where address is an IP address and port is the
# portnumber, the daemon should listen to (defaulting to 389). If this
# parameter is empty the server will attach to all interfaces. This
# parameter is only evaluated if "OPENLDAP_START_LDAP" is set to
# "yes"
# Default: ""
#
OPENLDAP_LDAP_INTERFACES=""
## Type: string
## Default: ""
## ServiceRestart: ldap
#
# Use this to specify the interfaces that the server such accept
# LDAPS connections from. The values are specified in the format
# <address>:<port>, where address is an IP address and port is the
# portnumber, the daemon should listen to (defaulting to 636). If this
# parameter is empty the server will attach to all interfaces. This
# parameter is only evaluated if "OPENLDAP_START_LDAPS" is set to
# "yes"
# Default: ""
#
OPENLDAP_LDAPS_INTERFACES=""
## Type: string
## Default: ""
## ServiceRestart: ldap
#
# Use this to specify the paths of the Unix Domain Sockets that
# the server should create an accept incoming LDAPI connections
# on. This parameter is only evaluated if "OPENLDAP_START_LDAPI"
# is set to "yes".
# Default: ""
#
OPENLDAP_LDAPI_INTERFACES=""
## Type: yesno
## Default: "yes"
## ServiceRestart: ldap
#
# If set to "no" the LDAP server will not try itself at a running SLP
# daemon.
# Default: "yes"
#
OPENLDAP_REGISTER_SLP="no"
## Type: string
## Default: ""
## ServiceRestart: ldap
#
# Set this to the name of the keytab, if you want to use a non-default
# Kerberos Keytab. If OPENLDAP_CHOWN_DIRS is set to "yes" the permissions of
# this file will be changed so that the group OPENLDAP_GROUP has read
# access to the file.
# Example: OPENLDAP_KRB5_KEYTAB="FILE:/etc/openldap/krb5.keytab
# Default: ""
#
OPENLDAP_KRB5_KEYTAB=""
## Type: string
## Default: "files"
## ServiceRestart: ldap
#
# Here you can configure which of the configuration backends you want to
# use. Possible values are "files" for slapd.conf(5) styleconfiguration or
# "ldap" for the slapd-config(5) LDAP based configuration backend.
#
OPENLDAP_CONFIG_BACKEND=""
## Type: yesno
## Default: "yes"
## ServiceRestart: ldap
#
# Here you can configure if the slapd shall start with or without memory limit.
#
OPENLDAP_MEMORY_LIMIT="yes"
++++++ yast.schema ++++++
## Some macros
objectidentifier SUSE 1.3.6.1.4.1.7057
objectidentifier SUSE.YaST SUSE:10.1
objectidentifier SUSE.YaST.ModuleConfig SUSE:10.1.2
objectidentifier SUSE.YaST.ModuleConfig.OC SUSE.YaST.ModuleConfig:1
objectidentifier SUSE.YaST.ModuleConfig.Attr SUSE.YaST.ModuleConfig:2
# Attributes
# deprecated
#
#attributetype ( SUSE.YaST.ModuleConfig.Attr:1 NAME ( 'userConfigDn' )
# DESC 'Where is the configuration for user management stored'
# EQUALITY distinguishedNameMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
attributetype ( SUSE.YaST.ModuleConfig.Attr:2 NAME ( 'suseDefaultBase' )
DESC 'Base DN where new Objects should be created by default'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:3 NAME ( 'suseNextUniqueId' )
DESC 'Next unused unique ID, can be used to generate directory wide uniqe IDs'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:4 NAME ( 'suseMinUniqueId' )
DESC 'lower Border for Unique IDs'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:5 NAME ( 'suseMaxUniqueId' )
DESC 'upper Border for Unique IDs'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:6 NAME ( 'suseDefaultTemplate' )
DESC 'The DN of a template that should be used by default'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:7 NAME ( 'suseSearchFilter' )
DESC 'Search filter to localize Objects'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
# deprecated
#
#attributetype ( SUSE.YaST.ModuleConfig.Attr:8 NAME ( 'DefaultObjectClass' )
# DESC 'ObjectClass that new Objects should use'
# EQUALITY caseIgnoreIA5Match
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
#
#attributetype ( SUSE.YaST.ModuleConfig.Attr:9 NAME ( 'suseRequiredAttribute' )
# DESC ''
# EQUALITY caseIgnoreIA5Match
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
#
#attributetype ( SUSE.YaST.ModuleConfig.Attr:10 NAME ( 'allowedAttribute' )
# DESC ''
# EQUALITY caseIgnoreIA5Match
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( SUSE.YaST.ModuleConfig.Attr:11 NAME ( 'suseDefaultValue' )
DESC 'an Attribute-Value-Assertions to define defaults for specific Attributes'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
attributetype ( SUSE.YaST.ModuleConfig.Attr:12 NAME ( 'suseNamingAttribute' )
DESC 'AttributeType that should be used as the RDN'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:15 NAME ( 'suseSecondaryGroup' )
DESC 'seconday group DN'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
attributetype ( SUSE.YaST.ModuleConfig.Attr:16 NAME ( 'suseMinPasswordLength' )
DESC 'minimum Password length for new users'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:17 NAME ( 'suseMaxPasswordLength' )
DESC 'maximum Password length for new users'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:18 NAME ( 'susePasswordHash' )
DESC 'Hash method to use for new users'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:19 NAME ( 'suseSkelDir' )
DESC ''
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( SUSE.YaST.ModuleConfig.Attr:20 NAME ( 'susePlugin' )
DESC 'plugin to use upon user/ group creation'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
attributetype ( SUSE.YaST.ModuleConfig.Attr:21 NAME ( 'suseMapAttribute' )
DESC ''
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
attributetype ( SUSE.YaST.ModuleConfig.Attr:22 NAME ( 'suseImapServer' )
DESC ''
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:23 NAME ( 'suseImapAdmin' )
DESC ''
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:24 NAME ( 'suseImapDefaultQuota' )
DESC ''
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( SUSE.YaST.ModuleConfig.Attr:25 NAME ( 'suseImapUseSsl' )
DESC ''
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
SINGLE-VALUE )
# ObjectClasses
objectClass ( SUSE.YaST.ModuleConfig.OC:2 NAME 'suseModuleConfiguration'
SUP top STRUCTURAL
DESC 'Contains configuration of Management Modules'
MUST ( cn )
MAY ( suseDefaultBase ))
objectClass ( SUSE.YaST.ModuleConfig.OC:3 NAME 'suseUserConfiguration'
SUP suseModuleConfiguration STRUCTURAL
DESC 'Configuration of user management tools'
MAY ( suseMinPasswordLength $ suseMaxPasswordLength $
susePasswordHash $ suseSkelDir $ suseNextUniqueId $ suseMinUniqueId $
suseMaxUniqueId $ suseDefaultTemplate $ suseSearchFilter $
suseMapAttribute ))
objectClass ( SUSE.YaST.ModuleConfig.OC:4 NAME 'suseObjectTemplate'
SUP top STRUCTURAL
DESC 'Base Class for Object-Templates'
MUST ( cn )
MAY ( susePlugin $ suseDefaultValue $ suseNamingAttribute ))
objectClass ( SUSE.YaST.ModuleConfig.OC:5 NAME 'suseUserTemplate'
SUP suseObjectTemplate STRUCTURAL
DESC 'User object template'
MUST ( cn )
MAY ( suseSecondaryGroup ))
objectClass ( SUSE.YaST.ModuleConfig.OC:6 NAME 'suseGroupTemplate'
SUP suseObjectTemplate STRUCTURAL
DESC 'Group object template'
MUST ( cn ))
objectClass ( SUSE.YaST.ModuleConfig.OC:7 NAME 'suseGroupConfiguration'
SUP suseModuleConfiguration STRUCTURAL
DESC 'Configuration of user management tools'
MAY ( suseNextUniqueId $ suseMinUniqueId $ suseMaxUniqueId $
suseDefaultTemplate $ suseSearchFilter $ suseMapAttribute ))
objectClass ( SUSE.YaST.ModuleConfig.OC:8 NAME 'suseCaConfiguration'
SUP suseModuleConfiguration STRUCTURAL
DESC 'Configuration of CA management tools')
objectClass ( SUSE.YaST.ModuleConfig.OC:9 NAME 'suseDnsConfiguration'
SUP suseModuleConfiguration STRUCTURAL
DESC 'Configuration of mail server management tools')
objectClass ( SUSE.YaST.ModuleConfig.OC:10 NAME 'suseDhcpConfiguration'
SUP suseModuleConfiguration STRUCTURAL
DESC 'Configuration of DHCP server management tools')
objectClass ( SUSE.YaST.ModuleConfig.OC:11 NAME 'suseMailConfiguration'
SUP suseModuleConfiguration STRUCTURAL
DESC 'Configuration of IMAP user management tools'
MUST ( suseImapServer $ suseImapAdmin $ suseImapDefaultQuota $
suseImapUseSsl ))
1
0
Hello community,
here is the log from the commit of package apache-commons-logging for openSUSE:Factory checked in at 2016-01-30 11:30:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apache-commons-logging (Old)
and /work/SRC/openSUSE:Factory/.apache-commons-logging.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apache-commons-logging"
Changes:
--------
--- /work/SRC/openSUSE:Factory/apache-commons-logging/apache-commons-logging.changes 2015-04-02 16:00:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.apache-commons-logging.new/apache-commons-logging.changes 2016-01-30 11:30:48.000000000 +0100
@@ -1,0 +2,7 @@
+Sun Jan 24 13:55:36 UTC 2016 - p.drouand(a)gmail.com
+
+- Update to version 1.2
+ see http://commons.apache.org/proper/commons-logging/changes-report.html
+ or RELEASE-NOTES.txt for details
+
+-------------------------------------------------------------------
Old:
----
commons-logging-1.1.3-src.tar.gz
commons-logging-1.1.3-src.tar.gz.asc
commons-logging-api-1.1.pom
New:
----
commons-logging-1.2-src.tar.gz
commons-logging-1.2-src.tar.gz.asc
commons-logging-1.2.pom
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ apache-commons-logging.spec ++++++
--- /var/tmp/diff_new_pack.qDxKgr/_old 2016-01-30 11:30:49.000000000 +0100
+++ /var/tmp/diff_new_pack.qDxKgr/_new 2016-01-30 11:30:49.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package apache-commons-logging
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2000-2007, JPackage Project
#
# All modifications and additions to the file contributed by third parties
@@ -21,7 +21,7 @@
%define short_name commons-%{base_name}
%bcond_with java_bootstrap
Name: apache-%{short_name}
-Version: 1.1.3
+Version: 1.2
Release: 0
Summary: Apache Commons Logging
License: Apache-2.0
@@ -30,7 +30,7 @@
Source0: http://www.apache.org/dist/commons/%{base_name}/source/%{short_name}-%{vers…
Source1: http://www.apache.org/dist/commons/%{base_name}/source/%{short_name}-%{vers…
Source2: apache-commons-logging.keyring
-Source3: http://mirrors.ibiblio.org/pub/mirrors/maven2/%{short_name}/%{short_name}-a…
+Source3: http://central.maven.org/maven2/commons-logging/commons-logging/%{version}/…
Patch0: commons-logging-1.1.3-src-junit.diff
BuildRequires: ant
BuildRequires: apache-commons-parent
++++++ commons-logging-1.1.3-src.tar.gz -> commons-logging-1.2-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/NOTICE.txt new/commons-logging-1.2-src/NOTICE.txt
--- old/commons-logging-1.1.3-src/NOTICE.txt 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/NOTICE.txt 2014-07-05 20:11:36.000000000 +0200
@@ -1,5 +1,5 @@
Apache Commons Logging
-Copyright 2003-2013 The Apache Software Foundation
+Copyright 2003-2014 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/README.txt new/commons-logging-1.2-src/README.txt
--- old/commons-logging-1.1.3-src/README.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/commons-logging-1.2-src/README.txt 2014-07-05 20:11:36.000000000 +0200
@@ -0,0 +1,50 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+Logging
+-------
+
+Getting started:
+
+1) Build the jar file
+
+ If you have the source distribution you will need to build the jar file
+ using Maven 2/3. For instructions on downloading and installing Maven see
+ http://maven.apache.org/.
+
+ To build execute the command 'mvn package verify'.
+ The jar file will be built in the target directory.
+
+ Note: the unit tests are executed during the verify phase and require that
+ the respective jar files have been created successfully.
+
+2) Generate the documentation
+
+ Run the 'mvn verify site' command. The documentation will be written
+ to the target/site directory. The documentation has some examples of
+ how to use this package as well as a troubleshooting guide.
+
+3) Create source and binary distributions
+
+ Run the 'mvn verify site assembly:assembly' command. The source and binary
+ distributions are created in the 'target' directory.
+
+4) Use
+
+ Simply include the jar file built in step #1 in your classpath. Import the
+ classes that you want to use and you are ready to go!
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/RELEASE-NOTES.txt new/commons-logging-1.2-src/RELEASE-NOTES.txt
--- old/commons-logging-1.1.3-src/RELEASE-NOTES.txt 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/RELEASE-NOTES.txt 2014-07-05 20:11:36.000000000 +0200
@@ -1,22 +1,31 @@
Apache Commons Logging
- Version 1.1.3
+ Version 1.2
RELEASE NOTES
-The Commons Logging team is pleased to announce the release of Apache Commons Logging 1.1.3
+The Apache Commons Logging team is pleased to announce
+the release of Apache Commons Logging 1.2
-Commons Logging is a thin adapter allowing configurable bridging to other,
-well known logging systems.
+Apache Commons Logging is a thin adapter allowing configurable
+bridging to other, well known logging systems.
This is a maintenance release containing bug fixes.
+Java 1.2 or later is required.
Changes in this version include:
Fixed Bugs:
-o LOGGING-151: Use "org.apache.commons.logging" as bundle symbolic name. Thanks to Krzysztof Daniel.
+o LOGGING-37: Improve performance of LogFactory#getFactory() by calling
+ Thread#currentThread()#getContextClassLoader() directly instead
+ of using reflection. As a consequence support for JDK 1.1 has
+ been dropped. Thanks to Matthias Ernst, Archie Cobbs.
+o LOGGING-156: Fix SecurityAllowedTestCase when executed with OpenJDK 1.7 due
+ to an additional required RuntimePermission. Thanks to Mikolaj Izdebski.
+o LOGGING-157: Fix javadoc to comply with javadoc tool from jdk 1.8. Thanks to Ville Skyttä.
+
Historical list of changes: http://commons.apache.org/proper/commons-logging/changes-report.html
-For complete information on Commons Logging, including instructions on how to submit bug reports,
+For complete information on Apache Commons Logging, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Logging website:
http://commons.apache.org/proper/commons-logging/
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/build.xml new/commons-logging-1.2-src/build.xml
--- old/commons-logging-1.1.3-src/build.xml 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/build.xml 2014-07-05 20:11:36.000000000 +0200
@@ -39,7 +39,7 @@
- the path to a 1.4 J2SDK. This will be used to compile those classes
- which require the 1.4 API.
-
- - $Id: build.xml 1483540 2013-05-16 20:03:52Z tn $
+ - $Id: build.xml 1608092 2014-07-05 18:11:22Z tn $
-->
<project name="Logging" default="all" basedir=".">
@@ -94,7 +94,7 @@
<property name="component.title" value="Logging Wrapper Library"/>
<!-- The current version number of this component -->
- <property name="component.version" value="1.1.3"/>
+ <property name="component.version" value="1.2"/>
<!-- The base directory for compilation targets -->
<property name="build.home" value="${basedir}/target"/>
@@ -106,7 +106,7 @@
<property name="dist.home" value="dist"/>
<!-- The base directory for releases -->
- <property name="artifacts.home" value="artifacts"/>
+ <property name="artifacts.home" value="artifacts"/>
<!-- The base directory for component sources -->
<property name="source.home" value="src/main/java"/>
@@ -130,7 +130,7 @@
<!-- ========== Compiler Defaults ========================================= -->
<!-- Version of java class files to generate. -->
- <property name="target.version" value="1.1"/>
+ <property name="target.version" value="1.2"/>
<!-- Version of java source to accept -->
<property name="source.version" value="1.2"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/pmd.xml new/commons-logging-1.2-src/pmd.xml
--- old/commons-logging-1.1.3-src/pmd.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/commons-logging-1.2-src/pmd.xml 2014-07-05 20:11:36.000000000 +0200
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<ruleset name="mybraces"
+ xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
+ <description>Excludes from default PMD rules.</description>
+ <rule ref="rulesets/java/unusedcode.xml">
+ <exclude name="UnnecessaryParentheses"/>
+ </rule>
+</ruleset>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/pom.xml new/commons-logging-1.2-src/pom.xml
--- old/commons-logging-1.1.3-src/pom.xml 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/pom.xml 2014-07-05 20:11:36.000000000 +0200
@@ -26,14 +26,14 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-parent</artifactId>
- <version>28</version>
+ <version>34</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
- <name>Commons Logging</name>
- <version>1.1.3</version>
- <description>Commons Logging is a thin adapter allowing configurable bridging to other,
+ <name>Apache Commons Logging</name>
+ <version>1.2</version>
+ <description>Apache Commons Logging is a thin adapter allowing configurable bridging to other,
well known logging systems.</description>
<url>http://commons.apache.org/proper/commons-logging/</url>
@@ -375,6 +375,7 @@
<goal>verify</goal>
</goals>
<configuration>
+ <runOrder>${failsafe.runorder}</runOrder>
<includes>
<include>**/*TestCase.java</include>
</includes>
@@ -491,6 +492,27 @@
<artifactId>jdepend-maven-plugin</artifactId>
<version>2.0-beta-1</version>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>2.5.2</version>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>3.0.1</version>
+ <configuration>
+ <!-- targetJdk 1.1, 1.2 is not supported -->
+ <targetJdk>1.3</targetJdk>
+ <linkXref>true</linkXref>
+ <rulesets>
+ <ruleset>${basedir}/pmd.xml</ruleset>
+ </rulesets>
+ </configuration>
+ </plugin>
</plugins>
</reporting>
@@ -502,16 +524,18 @@
</distributionManagement>
<properties>
- <maven.compile.source>1.2</maven.compile.source>
- <maven.compile.target>1.1</maven.compile.target>
+ <maven.compiler.source>1.2</maven.compiler.source>
+ <maven.compiler.target>1.2</maven.compiler.target>
<commons.componentid>logging</commons.componentid>
- <commons.release.version>1.1.3</commons.release.version>
+ <commons.release.version>1.2</commons.release.version>
<commons.jira.id>LOGGING</commons.jira.id>
<commons.jira.pid>12310484</commons.jira.pid>
<!-- The RC version used in the staging repository URL. -->
<commons.rc.version>RC2</commons.rc.version>
<commons.surefire.version>2.12</commons.surefire.version>
- <skipSurefireReport>true</skipSurefireReport>
+ <skipSurefireReport>true</skipSurefireReport>
+ <!-- Allow default test run order to be changed -->
+ <failsafe.runorder>filesystem</failsafe.runorder>
<commons.osgi.import>
javax.servlet;version="[2.1.0, 3.0.0)";resolution:=optional,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/changes/changes.xml new/commons-logging-1.2-src/src/changes/changes.xml
--- old/commons-logging-1.1.3-src/src/changes/changes.xml 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/src/changes/changes.xml 2014-07-05 20:11:36.000000000 +0200
@@ -43,6 +43,18 @@
<title>Release Notes</title>
</properties>
<body>
+ <release version="1.2" date="2014-07-11" description="This is a maintenance release containing bug fixes. Java 1.2 or later is required.">
+ <action issue="LOGGING-37" dev="tn" type="fix" due-to="Matthias Ernst,Archie Cobbs">
+ Improve performance of LogFactory#getFactory() by calling Thread#currentThread()#getContextClassLoader()
+ directly instead of using reflection. As a consequence support for JDK 1.1 has been dropped.
+ </action>
+ <action issue="LOGGING-156" dev="tn" type="fix" due-to="Mikolaj Izdebski">
+ Fix SecurityAllowedTestCase when executed with OpenJDK 1.7 due to an additional required RuntimePermission.
+ </action>
+ <action issue="LOGGING-157" dev="tn" type="fix" due-to="Ville Skyttä">
+ Fix javadoc to comply with javadoc tool from jdk 1.8.
+ </action>
+ </release>
<release version="1.1.3" date="2013-05-23" description="This is a maintenance release containing bug fixes.">
<action issue="LOGGING-151" dev="tn" type="fix" due-to="Krzysztof Daniel">
Use "org.apache.commons.logging" as bundle symbolic name.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/conf/MANIFEST.MF new/commons-logging-1.2-src/src/conf/MANIFEST.MF
--- old/commons-logging-1.1.3-src/src/conf/MANIFEST.MF 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/src/conf/MANIFEST.MF 2014-07-05 20:11:36.000000000 +0200
@@ -1,20 +1,20 @@
Manifest-Version: 1.0
-Export-Package: org.apache.commons.logging;version="1.1.3",org.apache.
- commons.logging.impl;version="1.1.3"
+Export-Package: org.apache.commons.logging;version="1.2.0",org.apache.
+ commons.logging.impl;version="1.2.0"
Implementation-Title: Commons Logging
Implementation-Vendor: The Apache Software Foundation
Implementation-Vendor-Id: org.apache
Specification-Title: Commons Logging
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-SymbolicName: org.apache.commons.logging
-X-Compile-Target-JDK: 1.1
-Implementation-Version: 1.1.3
+X-Compile-Target-JDK: 1.2
+Implementation-Version: 1.2
Specification-Vendor: The Apache Software Foundation
Bundle-Name: Commons Logging
Created-By: Apache Maven Bundle Plugin
X-Compile-Source-JDK: 1.2
Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 1.1.3
+Bundle-Version: 1.2.0
Bundle-ManifestVersion: 2
Bundle-Description: Commons Logging is a thin adapter allowing configu
rable bridging to other, well known logging systems.
@@ -25,4 +25,4 @@
.0.1]",org.apache.log4j;resolution:=optional;version="[1.2.15,2.0.0)"
Include-Resource: META-INF/NOTICE.txt=NOTICE.txt,META-INF/LICENSE.txt=
LICENSE.txt
-Specification-Version: 1.1.3
+Specification-Version: 1.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/main/assembly/src.xml new/commons-logging-1.2-src/src/main/assembly/src.xml
--- old/commons-logging-1.1.3-src/src/main/assembly/src.xml 2013-05-16 22:04:21.000000000 +0200
+++ new/commons-logging-1.2-src/src/main/assembly/src.xml 2014-07-05 20:11:36.000000000 +0200
@@ -28,8 +28,10 @@
<fileSet>
<includes>
<include>checkstyle.xml</include>
+ <include>README.txt</include>
<include>LICENSE.txt</include>
<include>NOTICE.txt</include>
+ <include>pmd.xml</include>
<include>pom.xml</include>
<include>PROPOSAL.html</include>
<include>RELEASE-NOTES.txt</include>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/main/java/org/apache/commons/logging/Log.java new/commons-logging-1.2-src/src/main/java/org/apache/commons/logging/Log.java
--- old/commons-logging-1.1.3-src/src/main/java/org/apache/commons/logging/Log.java 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/src/main/java/org/apache/commons/logging/Log.java 2014-07-05 20:11:36.000000000 +0200
@@ -43,22 +43,80 @@
* to be logged).
* <p>
* For example,
- * <code><pre>
+ * <pre>
* if (log.isDebugEnabled()) {
* ... do something expensive ...
* log.debug(theResult);
* }
- * </pre></code>
+ * </pre>
* <p>
* Configuration of the underlying logging system will generally be done
* external to the Logging APIs, through whatever mechanism is supported by
* that system.
*
- * @version $Id: Log.java 1432663 2013-01-13 17:24:18Z tn $
+ * @version $Id: Log.java 1606045 2014-06-27 12:11:56Z tn $
*/
public interface Log {
- // ----------------------------------------------------- Logging Properties
+ /**
+ * Logs a message with debug log level.
+ *
+ * @param message log this message
+ */
+ void debug(Object message);
+
+ /**
+ * Logs an error with debug log level.
+ *
+ * @param message log this message
+ * @param t log this cause
+ */
+ void debug(Object message, Throwable t);
+
+ /**
+ * Logs a message with error log level.
+ *
+ * @param message log this message
+ */
+ void error(Object message);
+
+ /**
+ * Logs an error with error log level.
+ *
+ * @param message log this message
+ * @param t log this cause
+ */
+ void error(Object message, Throwable t);
+
+ /**
+ * Logs a message with fatal log level.
+ *
+ * @param message log this message
+ */
+ void fatal(Object message);
+
+ /**
+ * Logs an error with fatal log level.
+ *
+ * @param message log this message
+ * @param t log this cause
+ */
+ void fatal(Object message, Throwable t);
+
+ /**
+ * Logs a message with info log level.
+ *
+ * @param message log this message
+ */
+ void info(Object message);
+
+ /**
+ * Logs an error with info log level.
+ *
+ * @param message log this message
+ * @param t log this cause
+ */
+ void info(Object message, Throwable t);
/**
* Is debug logging currently enabled?
@@ -69,7 +127,7 @@
*
* @return true if debug is enabled in the underlying logger.
*/
- public boolean isDebugEnabled();
+ boolean isDebugEnabled();
/**
* Is error logging currently enabled?
@@ -80,7 +138,7 @@
*
* @return true if error is enabled in the underlying logger.
*/
- public boolean isErrorEnabled();
+ boolean isErrorEnabled();
/**
* Is fatal logging currently enabled?
@@ -91,7 +149,7 @@
*
* @return true if fatal is enabled in the underlying logger.
*/
- public boolean isFatalEnabled();
+ boolean isFatalEnabled();
/**
* Is info logging currently enabled?
@@ -102,7 +160,7 @@
*
* @return true if info is enabled in the underlying logger.
*/
- public boolean isInfoEnabled();
+ boolean isInfoEnabled();
/**
* Is trace logging currently enabled?
@@ -113,7 +171,7 @@
*
* @return true if trace is enabled in the underlying logger.
*/
- public boolean isTraceEnabled();
+ boolean isTraceEnabled();
/**
* Is warn logging currently enabled?
@@ -124,97 +182,35 @@
*
* @return true if warn is enabled in the underlying logger.
*/
- public boolean isWarnEnabled();
-
- // -------------------------------------------------------- Logging Methods
-
- /**
- * Log a message with trace log level.
- *
- * @param message log this message
- */
- public void trace(Object message);
-
- /**
- * Log an error with trace log level.
- *
- * @param message log this message
- * @param t log this cause
- */
- public void trace(Object message, Throwable t);
-
- /**
- * Log a message with debug log level.
- *
- * @param message log this message
- */
- public void debug(Object message);
-
- /**
- * Log an error with debug log level.
- *
- * @param message log this message
- * @param t log this cause
- */
- public void debug(Object message, Throwable t);
-
- /**
- * Log a message with info log level.
- *
- * @param message log this message
- */
- public void info(Object message);
-
- /**
- * Log an error with info log level.
- *
- * @param message log this message
- * @param t log this cause
- */
- public void info(Object message, Throwable t);
-
- /**
- * Log a message with warn log level.
- *
- * @param message log this message
- */
- public void warn(Object message);
-
- /**
- * Log an error with warn log level.
- *
- * @param message log this message
- * @param t log this cause
- */
- public void warn(Object message, Throwable t);
+ boolean isWarnEnabled();
/**
- * Log a message with error log level.
+ * Logs a message with trace log level.
*
* @param message log this message
*/
- public void error(Object message);
+ void trace(Object message);
/**
- * Log an error with error log level.
+ * Logs an error with trace log level.
*
* @param message log this message
* @param t log this cause
*/
- public void error(Object message, Throwable t);
+ void trace(Object message, Throwable t);
/**
- * Log a message with fatal log level.
+ * Logs a message with warn log level.
*
* @param message log this message
*/
- public void fatal(Object message);
+ void warn(Object message);
/**
- * Log an error with fatal log level.
+ * Logs an error with warn log level.
*
* @param message log this message
* @param t log this cause
*/
- public void fatal(Object message, Throwable t);
+ void warn(Object message, Throwable t);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/main/java/org/apache/commons/logging/LogFactory.java new/commons-logging-1.2-src/src/main/java/org/apache/commons/logging/LogFactory.java
--- old/commons-logging-1.1.3-src/src/main/java/org/apache/commons/logging/LogFactory.java 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/src/main/java/org/apache/commons/logging/LogFactory.java 2014-07-05 20:11:35.000000000 +0200
@@ -23,8 +23,6 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLConnection;
import java.security.AccessController;
@@ -42,7 +40,7 @@
* based on the SAXParserFactory and DocumentBuilderFactory implementations
* (corresponding to the JAXP pluggability APIs) found in Apache Xerces.
*
- * @version $Id: LogFactory.java 1449064 2013-02-22 14:49:22Z tn $
+ * @version $Id: LogFactory.java 1606041 2014-06-27 11:56:59Z tn $
*/
public abstract class LogFactory {
// Implementation note re AccessController usage
@@ -151,23 +149,23 @@
* classloaders to be substituted by an alternative implementation.
* <p>
* <strong>Note:</strong> <code>LogFactory</code> will print:
- * <code><pre>
- * [ERROR] LogFactory: Load of custom hashtable failed</em>
- * </pre></code>
+ * <pre>
+ * [ERROR] LogFactory: Load of custom hashtable failed
+ * </pre>
* to system error and then continue using a standard Hashtable.
* <p>
* <strong>Usage:</strong> Set this property when Java is invoked
* and <code>LogFactory</code> will attempt to load a new instance
* of the given implementation class.
* For example, running the following ant scriplet:
- * <code><pre>
+ * <pre>
* <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
* ...
* <sysproperty
* key="org.apache.commons.logging.LogFactory.HashtableImpl"
* value="org.apache.commons.logging.AltHashtable"/>
* </java>
- * </pre></code>
+ * </pre>
* will mean that <code>LogFactory</code> will load an instance of
* <code>org.apache.commons.logging.AltHashtable</code>.
* <p>
@@ -787,8 +785,6 @@
* or null if security doesn't allow it.
* @throws LogConfigurationException if there was some weird error while
* attempting to get the context classloader.
- * @throws SecurityException if the current java security policy doesn't
- * allow this class to access the context classloader.
*/
protected static ClassLoader getContextClassLoader() throws LogConfigurationException {
return directGetContextClassLoader();
@@ -807,8 +803,6 @@
* or null if security doesn't allow it.
* @throws LogConfigurationException if there was some weird error while
* attempting to get the context classloader.
- * @throws SecurityException if the current java security policy doesn't
- * allow this class to access the context classloader.
*/
private static ClassLoader getContextClassLoaderInternal() throws LogConfigurationException {
return (ClassLoader)AccessController.doPrivileged(
@@ -834,64 +828,27 @@
*
* @throws LogConfigurationException if a suitable class loader
* cannot be identified.
- * @throws SecurityException if the java security policy forbids
- * access to the context classloader from one of the classes in the
- * current call stack.
+ * @return the thread's context classloader or {@code null} if the java security
+ * policy forbids access to the context classloader from one of the classes
+ * in the current call stack.
* @since 1.1
*/
protected static ClassLoader directGetContextClassLoader() throws LogConfigurationException {
ClassLoader classLoader = null;
try {
- // Are we running on a JDK 1.2 or later system?
- final Method method = Thread.class.getMethod("getContextClassLoader", (Class[]) null);
-
- // Get the thread context class loader (if there is one)
- try {
- classLoader = (ClassLoader)method.invoke(Thread.currentThread(), (Object[]) null);
- } catch (IllegalAccessException e) {
- throw new LogConfigurationException
- ("Unexpected IllegalAccessException", e);
- } catch (InvocationTargetException e) {
- /**
- * InvocationTargetException is thrown by 'invoke' when
- * the method being invoked (getContextClassLoader) throws
- * an exception.
- *
- * getContextClassLoader() throws SecurityException when
- * the context class loader isn't an ancestor of the
- * calling class's class loader, or if security
- * permissions are restricted.
- *
- * In the first case (not related), we want to ignore and
- * keep going. We cannot help but also ignore the second
- * with the logic below, but other calls elsewhere (to
- * obtain a class loader) will trigger this exception where
- * we can make a distinction.
- */
- if (e.getTargetException() instanceof SecurityException) {
- // ignore
- } else {
- // Capture 'e.getTargetException()' exception for details
- // alternate: log 'e.getTargetException()', and pass back 'e'.
- throw new LogConfigurationException("Unexpected InvocationTargetException", e.getTargetException());
- }
- }
- } catch (NoSuchMethodException e) {
- // Assume we are running on JDK 1.1
- classLoader = getClassLoader(LogFactory.class);
-
- // We deliberately don't log a message here to outputStream;
- // this message would be output for every call to LogFactory.getLog()
- // when running on JDK1.1
- //
- // if (outputStream != null) {
- // outputStream.println(
- // "Method Thread.getContextClassLoader does not exist;"
- // + " assuming this is JDK 1.1, and that the context"
- // + " classloader is the same as the class that loaded"
- // + " the concrete LogFactory class.");
- // }
+ classLoader = Thread.currentThread().getContextClassLoader();
+ } catch (SecurityException ex) {
+ /**
+ * getContextClassLoader() throws SecurityException when
+ * the context class loader isn't an ancestor of the
+ * calling class's class loader, or if security
+ * permissions are restricted.
+ *
+ * We ignore this exception to be consistent with the previous
+ * behavior (e.g. 1.1.3 and earlier).
+ */
+ // ignore
}
// Return the selected class loader
@@ -951,8 +908,8 @@
* implementation class, loaded by the specified class loader.
* If that fails, try the class loader used to load this
* (abstract) LogFactory.
- * <p>
* <h2>ClassLoader conflicts</h2>
+ * <p>
* Note that there can be problems if the specified ClassLoader is not the
* same as the classloader that loaded this class, ie when loading a
* concrete LogFactory subclass via a context classloader.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/site/site.xml new/commons-logging-1.2-src/src/site/site.xml
--- old/commons-logging-1.1.3-src/src/site/site.xml 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/src/site/site.xml 2014-07-05 20:11:35.000000000 +0200
@@ -39,8 +39,8 @@
href="/RELEASE-NOTES.txt"/>
<item name='JavaDoc (Latest release)'
href='/javadocs/api-release/index.html'/>
- <item name='JavaDoc (v1.1)'
- href='/javadocs/api-1.1/index.html'/>
+ <item name='JavaDoc (v1.1.3)'
+ href='/javadocs/api-1.1.3/index.html'/>
<item name='JavaDoc (v1.0.4)'
href='/javadocs/api-1.0.4/index.html'/>
</menu>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/site/xdoc/download_logging.xml new/commons-logging-1.2-src/src/site/xdoc/download_logging.xml
--- old/commons-logging-1.1.3-src/src/site/xdoc/download_logging.xml 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/src/site/xdoc/download_logging.xml 2014-07-05 20:11:36.000000000 +0200
@@ -45,11 +45,11 @@
-->
<document>
<properties>
- <title>Download Commons Logging</title>
+ <title>Download Apache Commons Logging</title>
<author email="dev(a)commons.apache.org">Commons Documentation Team</author>
</properties>
<body>
- <section name="Download Commons Logging">
+ <section name="Download Apache Commons Logging">
<subsection name="Using a Mirror">
<p>
We recommend you use a mirror to download our release
@@ -95,32 +95,32 @@
</p>
</subsection>
</section>
- <section name="Commons Logging 1.1.3 ">
+ <section name="Apache Commons Logging 1.2 ">
<subsection name="Binaries">
<table>
<tr>
- <td><a href="[preferred]/commons/logging/binaries/commons-logging-1.1.3-bin.tar.gz">commons-logging-1.1.3-bin.tar.gz</a></td>
- <td><a href="http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.1.3-b…">md5</a></td>
- <td><a href="http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.1.3-b…">pgp</a></td>
+ <td><a href="[preferred]/commons/logging/binaries/commons-logging-1.2-bin.tar.gz">commons-logging-1.2-bin.tar.gz</a></td>
+ <td><a href="http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.2-bin…">md5</a></td>
+ <td><a href="http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.2-bin…">pgp</a></td>
</tr>
<tr>
- <td><a href="[preferred]/commons/logging/binaries/commons-logging-1.1.3-bin.zip">commons-logging-1.1.3-bin.zip</a></td>
- <td><a href="http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.1.3-b…">md5</a></td>
- <td><a href="http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.1.3-b…">pgp</a></td>
+ <td><a href="[preferred]/commons/logging/binaries/commons-logging-1.2-bin.zip">commons-logging-1.2-bin.zip</a></td>
+ <td><a href="http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.2-bin…">md5</a></td>
+ <td><a href="http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.2-bin…">pgp</a></td>
</tr>
</table>
</subsection>
<subsection name="Source">
<table>
<tr>
- <td><a href="[preferred]/commons/logging/source/commons-logging-1.1.3-src.tar.gz">commons-logging-1.1.3-src.tar.gz</a></td>
- <td><a href="http://www.apache.org/dist/commons/logging/source/commons-logging-1.1.3-src…">md5</a></td>
- <td><a href="http://www.apache.org/dist/commons/logging/source/commons-logging-1.1.3-src…">pgp</a></td>
+ <td><a href="[preferred]/commons/logging/source/commons-logging-1.2-src.tar.gz">commons-logging-1.2-src.tar.gz</a></td>
+ <td><a href="http://www.apache.org/dist/commons/logging/source/commons-logging-1.2-src.t…">md5</a></td>
+ <td><a href="http://www.apache.org/dist/commons/logging/source/commons-logging-1.2-src.t…">pgp</a></td>
</tr>
<tr>
- <td><a href="[preferred]/commons/logging/source/commons-logging-1.1.3-src.zip">commons-logging-1.1.3-src.zip</a></td>
- <td><a href="http://www.apache.org/dist/commons/logging/source/commons-logging-1.1.3-src…">md5</a></td>
- <td><a href="http://www.apache.org/dist/commons/logging/source/commons-logging-1.1.3-src…">pgp</a></td>
+ <td><a href="[preferred]/commons/logging/source/commons-logging-1.2-src.zip">commons-logging-1.2-src.zip</a></td>
+ <td><a href="http://www.apache.org/dist/commons/logging/source/commons-logging-1.2-src.z…">md5</a></td>
+ <td><a href="http://www.apache.org/dist/commons/logging/source/commons-logging-1.2-src.z…">pgp</a></td>
</tr>
</table>
</subsection>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/site/xdoc/index.xml new/commons-logging-1.2-src/src/site/xdoc/index.xml
--- old/commons-logging-1.1.3-src/src/site/xdoc/index.xml 2013-05-16 22:04:22.000000000 +0200
+++ new/commons-logging-1.2-src/src/site/xdoc/index.xml 2014-07-05 20:11:36.000000000 +0200
@@ -81,6 +81,11 @@
Binary and source distributions are available
<a href="http://commons.apache.org/logging/download_logging.cgi">here</a>.
</p>
+ <subsection name='1.2 Release - July 2014'>
+ <p>The main purpose of the 1.2 release is to drop support for Java 1.1.</p>
+ <p>For a full list of changes since the 1.1.3 release, please refer to the
+ <a href="changes-report.html">change-report</a>.</p>
+ </subsection>
<subsection name='1.1.3 Release - May 2013'>
<p>The 1.1.3 release only updates the Bundle-SymbolicName in the manifest
to "org.apache.commons.logging".</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/test/java/org/apache/commons/logging/AltHashtableTestCase.java new/commons-logging-1.2-src/src/test/java/org/apache/commons/logging/AltHashtableTestCase.java
--- old/commons-logging-1.1.3-src/src/test/java/org/apache/commons/logging/AltHashtableTestCase.java 2013-05-16 22:04:21.000000000 +0200
+++ new/commons-logging-1.2-src/src/test/java/org/apache/commons/logging/AltHashtableTestCase.java 2014-07-05 20:11:35.000000000 +0200
@@ -23,7 +23,7 @@
/**
* Test the ability to force the LogFactory class to use some
* arbitrary Hashtable implementation to store its mapping from
- * context-classloader -> LogFactory object.
+ * context-classloader -> LogFactory object.
*/
public class AltHashtableTestCase extends TestCase {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/test/java/org/apache/commons/logging/security/DummyClass.java new/commons-logging-1.2-src/src/test/java/org/apache/commons/logging/security/DummyClass.java
--- old/commons-logging-1.1.3-src/src/test/java/org/apache/commons/logging/security/DummyClass.java 1970-01-01 01:00:00.000000000 +0100
+++ new/commons-logging-1.2-src/src/test/java/org/apache/commons/logging/security/DummyClass.java 2014-07-05 20:11:35.000000000 +0200
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE
+ * file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file
+ * to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+ * applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ */
+package org.apache.commons.logging.security;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class DummyClass {
+
+ public DummyClass() {
+ Log log = LogFactory.getLog(DummyClass.class);
+ log.info("Some log message");
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/test/java/org/apache/commons/logging/security/MockSecurityManager.java new/commons-logging-1.2-src/src/test/java/org/apache/commons/logging/security/MockSecurityManager.java
--- old/commons-logging-1.1.3-src/src/test/java/org/apache/commons/logging/security/MockSecurityManager.java 2013-05-16 22:04:21.000000000 +0200
+++ new/commons-logging-1.2-src/src/test/java/org/apache/commons/logging/security/MockSecurityManager.java 2014-07-05 20:11:35.000000000 +0200
@@ -95,6 +95,13 @@
return;
}
+ if (cname.equals("java.util.logging.Level") && stack[i].getMethodName().equals("getLocalizedLevelName")) {
+ // LOGGING-156: OpenJDK 1.7 JULI code (java.util.logging.Level#getLocalizedLevelName)
+ // calls ResourceBundle#getBundle() without using AccessController#doPrivileged()
+ // requiring RuntimePermission: "accessClassInPackage.sun.util.logging.resources"
+ return;
+ }
+
if (cname.equals("java.security.AccessController")) {
// Presumably method name equals "doPrivileged"
//
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/test/java/org/apache/commons/logging/security/SecurityAllowedTestCase.java new/commons-logging-1.2-src/src/test/java/org/apache/commons/logging/security/SecurityAllowedTestCase.java
--- old/commons-logging-1.1.3-src/src/test/java/org/apache/commons/logging/security/SecurityAllowedTestCase.java 2013-05-16 22:04:21.000000000 +0200
+++ new/commons-logging-1.2-src/src/test/java/org/apache/commons/logging/security/SecurityAllowedTestCase.java 2014-07-05 20:11:35.000000000 +0200
@@ -125,7 +125,7 @@
// we better compare that we have no security exception during the call to log
// IBM JVM tries to load bundles during the invoke call, which increase the count
- assertEquals(untrustedCodeCount, mySecurityManager.getUntrustedCodeCount());
+ assertEquals("Untrusted code count", untrustedCodeCount, mySecurityManager.getUntrustedCodeCount());
} catch(Throwable t) {
// Restore original security manager so output can be generated; the
// PrintWriter constructor tries to read the line.separator
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/commons-logging-1.1.3-src/src/test/java/org/apache/commons/logging/security/SecurityForbiddenTestCase.java new/commons-logging-1.2-src/src/test/java/org/apache/commons/logging/security/SecurityForbiddenTestCase.java
--- old/commons-logging-1.1.3-src/src/test/java/org/apache/commons/logging/security/SecurityForbiddenTestCase.java 2013-05-16 22:04:21.000000000 +0200
+++ new/commons-logging-1.2-src/src/test/java/org/apache/commons/logging/security/SecurityForbiddenTestCase.java 2014-07-05 20:11:35.000000000 +0200
@@ -47,6 +47,7 @@
public class SecurityForbiddenTestCase extends TestCase
{
private SecurityManager oldSecMgr;
+ private ClassLoader otherClassLoader;
// Dummy special hashtable, so we can tell JCL to use this instead of
// the standard one.
@@ -75,6 +76,12 @@
public void setUp() {
// save security manager so it can be restored in tearDown
oldSecMgr = System.getSecurityManager();
+
+ PathableClassLoader classLoader = new PathableClassLoader(null);
+ classLoader.addLogicalLib("commons-logging");
+ classLoader.addLogicalLib("testclasses");
+
+ otherClassLoader = classLoader;
}
public void tearDown() {
@@ -131,4 +138,54 @@
fail("Unexpected exception:" + t.getMessage() + ":" + sw.toString());
}
}
+
+ /**
+ * Test what happens when JCL is run with absolutely no security
+ * privileges at all and a class loaded with a different classloader
+ * than the context classloader of the current thread tries to log something.
+ */
+ public void testContextClassLoader() {
+ System.setProperty(
+ LogFactory.HASHTABLE_IMPLEMENTATION_PROPERTY,
+ CustomHashtable.class.getName());
+ MockSecurityManager mySecurityManager = new MockSecurityManager();
+
+ System.setSecurityManager(mySecurityManager);
+
+ try {
+ // load a dummy class with another classloader
+ // to force a SecurityException when the LogFactory calls
+ // Thread.getCurrentThread().getContextClassLoader()
+ loadClass("org.apache.commons.logging.security.DummyClass", otherClassLoader);
+
+ System.setSecurityManager(oldSecMgr);
+ assertEquals(0, mySecurityManager.getUntrustedCodeCount());
+ } catch(Throwable t) {
+ // Restore original security manager so output can be generated; the
+ // PrintWriter constructor tries to read the line.separator
+ // system property.
+ System.setSecurityManager(oldSecMgr);
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ t.printStackTrace(pw);
+ fail("Unexpected exception:" + t.getMessage() + ":" + sw.toString());
+ }
+ }
+
+ /**
+ * Loads a class with the given classloader.
+ */
+ private Object loadClass(String name, ClassLoader classLoader) {
+ try {
+ Class clazz = classLoader.loadClass(name);
+ Object obj = clazz.newInstance();
+ return obj;
+ } catch ( Exception e ) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ e.printStackTrace(pw);
+ fail("Unexpected exception:" + e.getMessage() + ":" + sw.toString());
+ }
+ return null;
+ }
}
++++++ commons-logging-api-1.1.pom -> commons-logging-1.2.pom ++++++
++++ 652 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/apache-commons-logging/commons-logging-api-1.1.pom
++++ and /work/SRC/openSUSE:Factory/.apache-commons-logging.new/commons-logging-1.2.pom
1
0
Hello community,
here is the log from the commit of package python-keyring for openSUSE:Factory checked in at 2016-01-30 11:30:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-keyring (Old)
and /work/SRC/openSUSE:Factory/.python-keyring.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-keyring"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-keyring/python-keyring.changes 2015-12-21 12:03:30.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-keyring.new/python-keyring.changes 2016-01-30 11:30:43.000000000 +0100
@@ -1,0 +2,50 @@
+Tue Jan 12 16:56:53 UTC 2016 - michael(a)stroeder.com
+
+- update to upstream release 7.1.2
+- require Python 2.7+
+- require python-setuptools_scm 1.9+
+
+7.1
+* Issue #186: Removed preference for keyrings based on
+ ``XDG_CURRENT_DESKTOP`` as these values are to varied
+ to be a reliable indicator of which keyring implementation
+ might be preferable.
+
+7.0.2
+* Issue #187: Restore ``Keyring`` name in ``kwallet`` backend.
+ Users of keyring 6.1 or later should prefer an explicit reference
+ to DBusKeyring or QtKeyring instead.
+
+7.0.1
+* Issue #183 and Issue #185: Gnome keyring no longer relies
+ on environment variables, but instead relies on the GnomeKeyring
+ library to determine viability.
+
+7.0
+* Issue #99: Keyring now expects the config file to be located
+ in the XDG_CONFIG_HOME rather than XDG_DATA_HOME and will
+ fail to start if the config is found in the old location but not
+ the new. On systems where the two locations are distinct,
+ simply copy or symlink the config to remain compatible with
+ older versions or move the file to work only with 7.0 and later.
+* Replaced Pull Request #182 with a conditional SessionBus
+ construction, based on subsequent discussion.
+
+6.1.1
+* Pull Request #182: Prevent DBus from indicating as a viable
+ backend when no viable X DISPLAY variable is present.
+
+6.1
+* Pull Request #174: Add DBus backend for KWallet, preferred to Qt
+ backend. Theoretically, it should be auto-detected based on
+ available libraries and interchangeable with the Qt backend.
+
+6.0
+* Drop support for Python 2.6.
+
+5.7.1
+* Updated project metadata to match Github hosting and
+ generally refreshed the metadata structure to match
+ practices with other projects.
+
+-------------------------------------------------------------------
Old:
----
keyring-5.7.tar.gz
New:
----
keyring-7.1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-keyring.spec ++++++
--- /var/tmp/diff_new_pack.JKy6ry/_old 2016-01-30 11:30:45.000000000 +0100
+++ /var/tmp/diff_new_pack.JKy6ry/_new 2016-01-30 11:30:45.000000000 +0100
@@ -17,7 +17,7 @@
Name: python-keyring
-Version: 5.7
+Version: 7.1.2
Release: 0
Url: https://bitbucket.org/kang/python-keyring-lib
Summary: Store and access your passwords safely
@@ -25,9 +25,9 @@
Group: Development/Languages/Python
Source: https://pypi.python.org/packages/source/k/keyring/keyring-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: python-devel
+BuildRequires: python-devel >= 2.7
BuildRequires: python-setuptools
-BuildRequires: python-setuptools_scm
+BuildRequires: python-setuptools_scm >= 1.9
# Test requirements:
BuildRequires: python-mock
BuildRequires: python-pytest
++++++ keyring-5.7.tar.gz -> keyring-7.1.2.tar.gz ++++++
++++ 2642 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package Mesa for openSUSE:13.2:Update checked in at 2016-01-29 11:55:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/Mesa (Old)
and /work/SRC/openSUSE:13.2:Update/.Mesa.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "Mesa"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.V9LaqR/_old 2016-01-29 11:55:34.000000000 +0100
+++ /var/tmp/diff_new_pack.V9LaqR/_new 2016-01-29 11:55:34.000000000 +0100
@@ -1 +1 @@
-<link package='Mesa.4346' cicount='copy' />
+<link package='Mesa.4558' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package patterns-openSUSE for openSUSE:Factory checked in at 2016-01-28 22:50:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/patterns-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.patterns-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patterns-openSUSE"
Changes:
--------
--- /work/SRC/openSUSE:Factory/patterns-openSUSE/patterns-openSUSE.changes 2016-01-23 18:40:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.patterns-openSUSE.new/patterns-openSUSE.changes 2016-01-28 22:50:27.000000000 +0100
@@ -1,0 +2,13 @@
+Wed Jan 27 13:50:43 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Obsolete the kde4bindings for perl, python, ruby and mono. They
+ haven't been ported and are obstructing the switch of Akonadi to
+ its Frameworks port
+
+-------------------------------------------------------------------
+Sun Jan 24 02:11:55 UTC 2016 - dimstar(a)opensuse.org
+
+- Do not require midori on the Rescue CD: we already have Firefox
+ on it; midori pulling in webkit makes it just too big.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ patterns-openSUSE.spec ++++++
--- /var/tmp/diff_new_pack.HuWV4U/_old 2016-01-28 22:50:28.000000000 +0100
+++ /var/tmp/diff_new_pack.HuWV4U/_new 2016-01-28 22:50:28.000000000 +0100
@@ -2866,6 +2866,11 @@
Obsoletes: kdebase4-workspace-devel
Requires: pattern() = basesystem
Requires: pattern() = x11
+# Obsolete the KDE bindings which have not been ported yet
+Obsoletes: mono-kde4
+Obsoletes: perl-kde4
+Obsoletes: python3-kde3
+Obsoletes: ruby-kde4
# from data/KDE4-BASIS
Requires: breeze
Requires: breeze5-cursors
@@ -5350,7 +5355,6 @@
Requires: file-roller
Requires: gparted
Requires: leafpad
-Requires: midori
Requires: mupdf
Requires: photorec
Requires: ristretto
1
0
Hello community,
here is the log from the commit of package python3-Sphinx for openSUSE:Factory checked in at 2016-01-28 22:50:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-Sphinx (Old)
and /work/SRC/openSUSE:Factory/.python3-Sphinx.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-Sphinx"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-Sphinx/python3-Sphinx.changes 2016-01-09 23:09:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-Sphinx.new/python3-Sphinx.changes 2016-01-28 22:50:25.000000000 +0100
@@ -1,0 +2,98 @@
+Mon Jan 25 21:40:36 UTC 2016 - toddrme2178(a)gmail.com
+
+- Add additional latex requirements.
+
+-------------------------------------------------------------------
+Sun Jan 24 20:29:36 UTC 2016 - arun(a)gmx.de
+
+- update to version 1.3.5:
+ * Fix line numbers was not shown on warnings in LaTeX and texinfo
+ builders
+ * Fix filenames were not shown on warnings of citations
+ * Fix line numbers was not shown on warnings in LaTeX and texinfo
+ builders
+ * Fix line numbers was not shown on warnings of indecies
+ * #2026: Fix LaTeX builder rais error if parsed-literal includes
+ links
+ * #2243: Ignore strange docstring types for classes, do not crash
+ * #2247: Fix #2205 breaks make html for definition list with
+ classifiers that contains regular-expression like string
+ * #1565: Show warning if Pygments throws an ErrorToken
+ * #2211: Fix paragraphs in table cell doesn't work in Latex output
+ * #2253: ":pyobject:" option of "literalinclude" directive can't
+ detect indented body block when the block starts with blank or
+ comment lines.
+ * Fix TOC is not shown when no ":maxdepth:" for toctrees (ref: #771)
+ * Fix warning message for ":numref:" if target is in orphaned doc
+ (ref: #2244)
+
+-------------------------------------------------------------------
+Wed Jan 20 05:31:04 UTC 2016 - arun(a)gmx.de
+
+- update to version 1.3.4:
+ * #2134: Fix figure caption with reference causes latex build error
+ * #2094: Fix rubric with reference not working in Latex
+ * #2147: Fix literalinclude code in latex does not break in pages
+ * #1833: Fix email addresses is showed again if latex_show_urls is
+ not None
+ * #2176: sphinx.ext.graphviz: use <object> instead of <img> to embed
+ svg
+ * #967: Fix SVG inheritance diagram is not hyperlinked (clickable)
+ * #1237: Fix footnotes not working in definition list in LaTeX
+ * #2168: Fix raw directive does not work for text writer
+ * #2171: Fix cannot linkcheck url with unicode
+ * #2182: LaTeX: support image file names with more than 1 dots
+ * #2189: Fix previous sibling link for first file in subdirectory
+ uses last file, not intended previous from root toctree
+ * #2003: Fix decode error under python2 (only) when "make linkcheck"
+ is run
+ * #2186: Fix LaTeX output of \mathbb in math
+ * #1480, #2188: LaTeX: Support math in section titles
+ * #2071: Fix same footnote in more than two section titles =>
+ LaTeX/PDF Bug
+ * #2040: Fix UnicodeDecodeError in sphinx-apidoc when author
+ contains non-ascii characters
+ * #2193: Fix shutil.SameFileError if source directory and
+ destination directory are same
+ * #2178: Fix unparseable C++ cross-reference when referencing a
+ function with :cpp:any:
+ * #2206: Fix Sphinx latex doc build failed due to a footnotes
+ * #2201: Fix wrong table caption for tables with over 30 rows
+ * #2213: Set <blockquote> in the classic theme to fit with <p>
+ * #1815: Fix linkcheck does not raise an exception if warniserror
+ set to true and link is broken
+ * #2197: Fix slightly cryptic error message for missing index.rst
+ file
+ * #1894: Unlisted phony targets in quickstart Makefile
+ * #2125: Fix unifies behavior of collapsed fields ("GroupedField"
+ and "TypedField")
+ * #1408: Check latex_logo validity before copying
+ * #771: Fix latex output doesn't set tocdepth
+ * #1820: On Windows, console coloring is broken with colorama
+ version 0.3.3. Now sphinx use colorama>=0.3.5 to avoid this
+ problem.
+ * #2072: Fix footnotes in chapter-titles do not appear in PDF output
+ * #1580: Fix paragraphs in longtable don't work in Latex output
+ * #1366: Fix centered image not centered in latex
+ * #1860: Fix man page using ":samp:" with braces - font doesn't
+ reset
+ * #1610: Sphinx crashes in japanese indexing in some systems
+ * Fix Sphinx crashes if mecab initialization failed
+ * #2160: Fix broken TOC of PDFs if section includes an image
+ * #2172: Fix dysfunctional admonition \py@lightbox in
+ sphinx.sty. Thanks to jfbu.
+ * #2198,#2205: "make gettext" generate broken msgid for definition
+ lists.
+ * #2062: Escape characters in doctests are treated incorrectly with
+ Python 2.
+ * #2225: Fix if the option does not begin with dash, linking is not
+ performed
+ * #2226: Fix math is not HTML-encoded when :nowrap: is given
+ (jsmath, mathjax)
+ * #1601, #2220: 'any' role breaks extended domains
+ behavior. Affected extensions doesn't support resolve_any_xref
+ and resolve_xref returns problematic node instead of None.
+ sphinxcontrib-httpdomain is one of them.
+ * #2229: Fix no warning is given for unknown options
+
+-------------------------------------------------------------------
Old:
----
Sphinx-1.3.3.tar.gz
New:
----
Sphinx-1.3.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-Sphinx.spec ++++++
--- /var/tmp/diff_new_pack.shUM2H/_old 2016-01-28 22:50:26.000000000 +0100
+++ /var/tmp/diff_new_pack.shUM2H/_new 2016-01-28 22:50:26.000000000 +0100
@@ -17,7 +17,7 @@
Name: python3-Sphinx
-Version: 1.3.3
+Version: 1.3.5
Release: 0
Url: http://sphinx.pocoo.org
Summary: Python documentation generator
@@ -101,11 +101,13 @@
Requires: tex(atbegshi.sty)
Requires: tex(babel.sty)
Requires: tex(bm.sty)
+Requires: tex(capt-of.sty)
Requires: tex(cmap.sty)
Requires: tex(color.sty)
Requires: tex(colortbl.sty)
Requires: tex(dvipdfmx.def)
Requires: tex(english.ldf)
+Requires: tex(eqparbox.sty)
Requires: tex(fancybox.sty)
Requires: tex(fancyhdr.sty)
Requires: tex(fancyvrb.sty)
@@ -123,6 +125,8 @@
Requires: tex(longtable.sty)
Requires: tex(makeidx.sty)
Requires: tex(multirow.sty)
+Requires: tex(needspace.sty)
+Requires: tex(newfloat.sty)
Requires: tex(palatino.sty)
Requires: tex(parskip.sty)
Requires: tex(pcrr.tfm)
++++++ Sphinx-1.3.3.tar.gz -> Sphinx-1.3.5.tar.gz ++++++
++++ 6738 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python3-setuptools for openSUSE:Factory checked in at 2016-01-28 22:50:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-setuptools (Old)
and /work/SRC/openSUSE:Factory/.python3-setuptools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-setuptools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-setuptools/python3-setuptools.changes 2016-01-23 01:04:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-setuptools.new/python3-setuptools.changes 2016-01-28 22:50:24.000000000 +0100
@@ -1,0 +2,31 @@
+Mon Jan 25 17:04:28 UTC 2016 - arun(a)gmx.de
+
+- update to version 19.6:
+ * Added a new entry script "setuptools.launch", implementing the
+ shim found in "pip.util.setuptools_build". Use this command to
+ launch distutils-only packages under setuptools in the same way
+ that pip does, causing the setuptools monkeypatching of distutils
+ to be invoked prior to invoking a script. Useful for debugging or
+ otherwise installing a distutils-only package under setuptools
+ when pip isn't available or otherwise does not expose the desired
+ functionality. For example::
+
+ $ python -m setuptools.launch setup.py develop
+ * Issue #488: Fix dual manifestation of Extension class in extension
+ packages installed as dependencies when Cython is present.
+
+-------------------------------------------------------------------
+Sun Jan 24 03:29:36 UTC 2016 - arun(a)gmx.de
+
+- update to version 19.5:
+ * Issue #486: Correct TypeError when getfilesystemencoding
+ returns None.
+ * Issue #139: Clarified the license as MIT.
+ * Pull Request #169: Removed special handling of command
+ spec in scripts for Jython.
+
+- changes from version 19.4.1:
+ * Issue #487: Use direct invocation of "importlib.machinery" in
+ "pkg_resources" to avoid missing detection on relevant platforms.
+
+-------------------------------------------------------------------
Old:
----
setuptools-19.4.tar.gz
New:
----
setuptools-19.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-setuptools.spec ++++++
--- /var/tmp/diff_new_pack.3T9yaE/_old 2016-01-28 22:50:25.000000000 +0100
+++ /var/tmp/diff_new_pack.3T9yaE/_new 2016-01-28 22:50:25.000000000 +0100
@@ -17,7 +17,7 @@
Name: python3-setuptools
-Version: 19.4
+Version: 19.6
Release: 0
Url: http://pypi.python.org/pypi/setuptools
Summary: Easily download, build, install, upgrade, and uninstall Python packages
++++++ setuptools-19.4.tar.gz -> setuptools-19.6.tar.gz ++++++
++++ 2075 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package java-1_8_0-openjdk for openSUSE:Factory checked in at 2016-01-28 22:50:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/java-1_8_0-openjdk (Old)
and /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-1_8_0-openjdk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/java-1_8_0-openjdk/java-1_8_0-openjdk.changes 2015-10-28 17:15:38.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new/java-1_8_0-openjdk.changes 2016-01-28 22:50:14.000000000 +0100
@@ -1,0 +2,52 @@
+Mon Jan 25 07:54:33 UTC 2016 - fstrba(a)suse.com
+
+- Upgrade to upstream tag jdk8u72-b15
+ * Oracle Critical Patch Update of January 2016 (bsc#962743)
+ * Using aarch64 hotspot tag aarch64-jdk8u72-b15
+- Security issues fixed:
+ * CVE-2015-7575: Mozilla Network Security Services (NSS) before
+ 3.20.2, as used in Mozilla Firefox before 43.0.2 and Firefox
+ ESR 38.x before 38.5.2, does not reject MD5 signatures in Server
+ Key Exchange messages in TLS 1.2 Handshake Protocol traffic,
+ which makes it easier for man-in-the-middle attackers to spoof
+ servers by triggering a collision.
+ * CVE-2015-8126: Multiple buffer overflows in the (1) png_set_PLTE
+ and (2) png_get_PLTE functions in libpng before 1.0.64, 1.1.x
+ and 1.2.x before 1.2.54, 1.3.x and 1.4.x before 1.4.17, 1.5.x
+ before 1.5.24, and 1.6.x before 1.6.19 allow remote attackers to
+ cause a denial of service (application crash) or possibly have
+ unspecified other impact via a small bit-depth value in an IHDR
+ (aka image header) chunk in a PNG image.
+ * CVE-2016-0402: Unspecified vulnerability in the Java SE and
+ Java SE Embedded components in Oracle Java SE 6u105, 7u91, and
+ 8u66 and Java SE Embedded 8u65 allows remote attackers to affect
+ integrity via unknown vectors related to Networking.
+ * CVE-2016-0448: Unspecified vulnerability in the Java SE and
+ Java SE Embedded components in Oracle Java SE 6u105, 7u91, and
+ 8u66, and Java SE Embedded 8u65 allows remote authenticated
+ users to affect confidentiality via vectors related to JMX.
+ * CVE-2016-0466: Unspecified vulnerability in the Java SE, Java SE
+ Embedded, and JRockit components in Oracle Java SE 6u105, 7u91,
+ and 8u66; Java SE Embedded 8u65; and JRockit R28.3.8 allows
+ remote attackers to affect availability via vectors related to
+ JAXP.
+ * CVE-2016-0475: Unspecified vulnerability in the Java SE, Java SE
+ Embedded, and JRockit components in Oracle Java SE 8u66; Java SE
+ Embedded 8u65; and JRockit R28.3.8 allows remote attackers to
+ affect confidentiality and integrity via unknown vectors related
+ to Libraries.
+ * CVE-2016-0483: Unspecified vulnerability in the Java SE, Java SE
+ Embedded, and JRockit components in Oracle Java SE 6u105, 7u91,
+ and 8u66; Java SE Embedded 8u65; and JRockit R28.3.8 allows
+ remote attackers to affect confidentiality, integrity, and
+ availability via vectors related to AWT.
+ * CVE-2016-0494: Unspecified vulnerability in the Java SE and Java
+ SE Embedded components in Oracle Java SE 6u105, 7u91, and 8u66
+ and Java SE Embedded 8u65 allows remote attackers to affect
+ confidentiality, integrity, and availability via unknown vectors
+ related to 2D.
+- Modified patch:
+ * s390-java-opts.patch
+ + rediff to the changed context
+
+-------------------------------------------------------------------
Old:
----
14a4b0a9a0b7.tar.bz2
1ac6501881b2.tar.bz2
8e9c73f18f7e.tar.bz2
b6b6756b041d.tar.bz2
c684352da3e3.tar.bz2
d038f63e5167.tar.bz2
d9c2dcdd835c.tar.bz2
dbdfb913c528.tar.bz2
df0218bcade3.tar.bz2
New:
----
1bcc41894340.tar.bz2
2f840ac0adf0.tar.bz2
48d0c20256a3.tar.bz2
769b21d1b85c.tar.bz2
8d2e1dabe378.tar.bz2
91e3b8e2e006.tar.bz2
d6670c5d49ba.tar.bz2
f3e86cc60726.tar.bz2
fff0c11d2811.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ java-1_8_0-openjdk.spec ++++++
--- /var/tmp/diff_new_pack.WiBsvI/_old 2016-01-28 22:50:17.000000000 +0100
+++ /var/tmp/diff_new_pack.WiBsvI/_new 2016-01-28 22:50:17.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package java-1_8_0-openjdk
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,21 +29,21 @@
%global syslibdir %{_libdir}
%global archname %{name}
# Standard JPackage naming and versioning defines.
-%global updatever 65
-%global buildver b17
+%global updatever 72
+%global buildver b15
%global root_project jdk8u
%global root_repository jdk8u
-%global root_revision c684352da3e3
-%global corba_revision d9c2dcdd835c
-%global hotspot_revision 8e9c73f18f7e
-%global jaxp_revision b6b6756b041d
-%global jaxws_revision dbdfb913c528
-%global jdk_revision 14a4b0a9a0b7
-%global langtools_revision d038f63e5167
-%global nashorn_revision df0218bcade3
+%global root_revision fff0c11d2811
+%global corba_revision 91e3b8e2e006
+%global hotspot_revision d6670c5d49ba
+%global jaxp_revision 1bcc41894340
+%global jaxws_revision 2f840ac0adf0
+%global jdk_revision f3e86cc60726
+%global langtools_revision 48d0c20256a3
+%global nashorn_revision 769b21d1b85c
%global aarch64_project aarch64-port
-%global aarch64_repository jdk8u60
-%global aarch64_hotspot_revision 1ac6501881b2
+%global aarch64_repository jdk8u
+%global aarch64_hotspot_revision 8d2e1dabe378
%global icedtea_sound_version 1.0.1
# priority must be 6 digits in total
%global priority 1805
++++++ 14a4b0a9a0b7.tar.bz2 -> 1bcc41894340.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_8_0-openjdk/14a4b0a9a0b7.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new/1bcc41894340.tar.bz2 differ: char 11, line 1
++++++ 14a4b0a9a0b7.tar.bz2 -> 2f840ac0adf0.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_8_0-openjdk/14a4b0a9a0b7.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new/2f840ac0adf0.tar.bz2 differ: char 11, line 1
++++++ df0218bcade3.tar.bz2 -> 48d0c20256a3.tar.bz2 ++++++
++++ 977380 lines of diff (skipped)
++++++ dbdfb913c528.tar.bz2 -> 769b21d1b85c.tar.bz2 ++++++
++++ 967186 lines of diff (skipped)
++++++ 14a4b0a9a0b7.tar.bz2 -> 8d2e1dabe378.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_8_0-openjdk/14a4b0a9a0b7.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new/8d2e1dabe378.tar.bz2 differ: char 11, line 1
++++++ 14a4b0a9a0b7.tar.bz2 -> 91e3b8e2e006.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_8_0-openjdk/14a4b0a9a0b7.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new/91e3b8e2e006.tar.bz2 differ: char 11, line 1
++++++ 14a4b0a9a0b7.tar.bz2 -> d6670c5d49ba.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_8_0-openjdk/14a4b0a9a0b7.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new/d6670c5d49ba.tar.bz2 differ: char 11, line 1
++++++ 14a4b0a9a0b7.tar.bz2 -> f3e86cc60726.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_8_0-openjdk/14a4b0a9a0b7.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new/f3e86cc60726.tar.bz2 differ: char 11, line 1
++++++ 14a4b0a9a0b7.tar.bz2 -> fff0c11d2811.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_8_0-openjdk/14a4b0a9a0b7.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_8_0-openjdk.new/fff0c11d2811.tar.bz2 differ: char 11, line 1
++++++ s390-java-opts.patch ++++++
--- /var/tmp/diff_new_pack.WiBsvI/_old 2016-01-28 22:50:24.000000000 +0100
+++ /var/tmp/diff_new_pack.WiBsvI/_new 2016-01-28 22:50:24.000000000 +0100
@@ -1,7 +1,6 @@
-diff -urEbwB jdk8/common/autoconf/boot-jdk.m4 jdk8/common/autoconf/boot-jdk.m4
---- jdk8/common/autoconf/boot-jdk.m4 2014-10-28 18:10:36.000000000 +0100
-+++ jdk8/common/autoconf/boot-jdk.m4 2014-11-11 12:54:41.698246995 +0100
-@@ -319,21 +319,12 @@
+--- jdk8/common/autoconf/boot-jdk.m4 2015-12-22 20:16:46.000000000 +0100
++++ jdk8/common/autoconf/boot-jdk.m4 2016-01-23 13:16:40.069301419 +0100
+@@ -329,21 +329,12 @@
AC_MSG_CHECKING([flags for boot jdk java command for big workloads])
# Starting amount of heap memory.
@@ -10,7 +9,7 @@
# Maximum amount of heap memory.
# Maximum stack size.
-- if test "x$BUILD_NUM_BITS" = x32; then
+- if test "x$BOOT_JDK_BITS" = x32; then
- JVM_MAX_HEAP=1100M
+ JVM_MAX_HEAP=768M
STACK_SIZE=768
1
0
Hello community,
here is the log from the commit of package python3-Pygments for openSUSE:Factory checked in at 2016-01-28 22:50:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-Pygments (Old)
and /work/SRC/openSUSE:Factory/.python3-Pygments.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-Pygments"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-Pygments/python3-Pygments.changes 2015-02-10 20:22:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-Pygments.new/python3-Pygments.changes 2016-01-28 22:50:07.000000000 +0100
@@ -1,0 +2,61 @@
+Sun Jan 24 20:40:44 UTC 2016 - arun(a)gmx.de
+
+- specfile:
+ * update copyright year
+
+- update to version 2.1:
+ * Added lexers:
+ + Emacs Lisp (PR#431)
+ + Arduino (PR#442)
+ + Modula-2 with multi-dialect support (#1090)
+ + Fortran fixed format (PR#213)
+ + Archetype Definition language (PR#483)
+ + Terraform (PR#432)
+ + Jcl, Easytrieve (PR#208)
+ + ParaSail (PR#381)
+ + Boogie (PR#420)
+ + Turtle (PR#425)
+ + Fish Shell (PR#422)
+ + Roboconf (PR#449)
+ + Test Anything Protocol (PR#428)
+ + Shen (PR#385)
+ + Component Pascal (PR#437)
+ + SuperCollider (PR#472)
+ + Shell consoles (Tcsh, PowerShell, MSDOS) (PR#479)
+ + Elm and J (PR#452)
+ + Crmsh (PR#440)
+ + Praat (PR#492)
+ + CSound (PR#494)
+ + Ezhil (PR#443)
+ + Thrift (PR#469)
+ + QVT Operational (PR#204)
+ + Hexdump (PR#508)
+ + CAmkES Configuration (PR#462)
+ * Added styles:
+ + Lovelace (PR#456)
+ + Algol and Algol-nu (#1090)
+ * Added formatters:
+ + IRC (PR#458)
+ + True color (24-bit) terminal ANSI sequences (#1142)
+ (formatter alias: "16m")
+ * New "filename" option for HTML formatter (PR#527).
+ * Improved performance of the HTML formatter for long lines
+ (PR#504).
+ * Updated autopygmentize script (PR#445).
+ * Fixed style inheritance for non-standard token types in HTML
+ output.
+ * Added support for async/await to Python 3 lexer.
+ * Rewrote linenos option for TerminalFormatter (it's better, but
+ slightly different output than before) (#1147).
+ * Javascript lexer now supports most of ES6 (#1100).
+ * Cocoa builtins updated for iOS 8.1 (PR#433).
+ * Combined BashSessionLexer and ShellSessionLexer, new version
+ should support the prompt styles of either.
+ * Added option to pygmentize to show a full traceback on exceptions.
+ * Fixed incomplete output on Windows and Python 3 (e.g. when using
+ iPython Notebook) (#1153).
+ * Allowed more traceback styles in Python console lexer (PR#253).
+ * Added decorators to TypeScript (PR#509).
+ * Fix highlighting of certain IRC logs formats (#1076).
+
+-------------------------------------------------------------------
Old:
----
Pygments-2.0.2.tar.gz
New:
----
Pygments-2.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-Pygments.spec ++++++
--- /var/tmp/diff_new_pack.BeIrEF/_old 2016-01-28 22:50:08.000000000 +0100
+++ /var/tmp/diff_new_pack.BeIrEF/_new 2016-01-28 22:50:08.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-Pygments
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python3-Pygments
-Version: 2.0.2
+Version: 2.1
Release: 0
Url: http://pygments.org
Summary: Pygments is a syntax highlighting package written in Python
++++++ Pygments-2.0.2.tar.gz -> Pygments-2.1.tar.gz ++++++
++++ 193310 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package perl-HTML-Parser for openSUSE:Factory checked in at 2016-01-28 22:50:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-HTML-Parser (Old)
and /work/SRC/openSUSE:Factory/.perl-HTML-Parser.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-HTML-Parser"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-HTML-Parser/perl-HTML-Parser.changes 2015-04-21 10:50:31.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-HTML-Parser.new/perl-HTML-Parser.changes 2016-01-28 22:50:02.000000000 +0100
@@ -1,0 +2,26 @@
+Wed Jan 20 10:12:44 UTC 2016 - coolo(a)suse.com
+
+- updated to 3.72
+ see /usr/share/doc/packages/perl-HTML-Parser/Changes
+
+ 2016-01-19 Release 3.72
+
+ Gisle Aas (3):
+ Avoid more clang casting warnings
+ Remove trailing whitespace
+ Ensure entities expand to utf8 sequences under 'utf8_mode' [RT#99755]
+
+ David Steinbrunner (2):
+ typo fix
+ typo fixes
+
+ Jacques Germishuys (1):
+ Silence clang warning
+
+ bulk88 (1):
+ const+static-ing
+
+
+ _______________________________________________________________________________
+
+-------------------------------------------------------------------
Old:
----
HTML-Parser-3.71.tar.gz
New:
----
HTML-Parser-3.72.tar.gz
cpanspec.yml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-HTML-Parser.spec ++++++
--- /var/tmp/diff_new_pack.Q7yrdZ/_old 2016-01-28 22:50:03.000000000 +0100
+++ /var/tmp/diff_new_pack.Q7yrdZ/_new 2016-01-28 22:50:03.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package perl-HTML-Parser
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,15 @@
Name: perl-HTML-Parser
-Version: 3.71
+Version: 3.72
Release: 0
%define cpan_name HTML-Parser
Summary: HTML parser class
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/HTML-Parser/
-Source: http://www.cpan.org/authors/id/G/GA/GAAS/%{cpan_name}-%{version}.tar.gz
+Source0: http://www.cpan.org/authors/id/G/GA/GAAS/%{cpan_name}-%{version}.tar.gz
+Source1: cpanspec.yml
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
@@ -55,7 +56,7 @@
%prep
%setup -q -n %{cpan_name}-%{version}
-find . -type f -print0 | xargs -0 chmod 644
+find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
++++++ HTML-Parser-3.71.tar.gz -> HTML-Parser-3.72.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTML-Parser-3.71/Changes new/HTML-Parser-3.72/Changes
--- old/HTML-Parser-3.71/Changes 2013-05-09 00:21:16.000000000 +0200
+++ new/HTML-Parser-3.72/Changes 2016-01-19 18:37:01.000000000 +0100
@@ -1,4 +1,23 @@
_______________________________________________________________________________
+2016-01-19 Release 3.72
+
+Gisle Aas (3):
+ Avoid more clang casting warnings
+ Remove trailing whitespace
+ Ensure entities expand to utf8 sequences under 'utf8_mode' [RT#99755]
+
+David Steinbrunner (2):
+ typo fix
+ typo fixes
+
+Jacques Germishuys (1):
+ Silence clang warning
+
+bulk88 (1):
+ const+static-ing
+
+
+_______________________________________________________________________________
2013-05-09 Release 3.71
Gisle Aas (1):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTML-Parser-3.71/META.json new/HTML-Parser-3.72/META.json
--- old/HTML-Parser-3.71/META.json 2013-05-09 00:21:52.000000000 +0200
+++ new/HTML-Parser-3.72/META.json 2016-01-19 18:41:33.000000000 +0100
@@ -4,7 +4,7 @@
"Gisle Aas <gisle(a)activestate.com>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921",
+ "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.133380",
"license" : [
"perl_5"
],
@@ -49,5 +49,5 @@
},
"x_MailingList" : "mailto:libwww@perl.org"
},
- "version" : "3.71"
+ "version" : "3.72"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTML-Parser-3.71/META.yml new/HTML-Parser-3.72/META.yml
--- old/HTML-Parser-3.71/META.yml 2013-05-09 00:21:52.000000000 +0200
+++ new/HTML-Parser-3.72/META.yml 2016-01-19 18:41:32.000000000 +0100
@@ -8,7 +8,7 @@
configure_requires:
ExtUtils::MakeMaker: 0
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921'
+generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.133380'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -25,6 +25,6 @@
XSLoader: 0
perl: 5.008
resources:
+ MailingList: mailto:libwww@perl.org
repository: http://github.com/gisle/html-parser
- x_MailingList: mailto:libwww@perl.org
-version: 3.71
+version: 3.72
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTML-Parser-3.71/Parser.pm new/HTML-Parser-3.72/Parser.pm
--- old/HTML-Parser-3.71/Parser.pm 2013-05-09 00:19:18.000000000 +0200
+++ new/HTML-Parser-3.72/Parser.pm 2016-01-19 18:37:26.000000000 +0100
@@ -1,15 +1,9 @@
package HTML::Parser;
-# Copyright 1996-2009, Gisle Aas.
-# Copyright 1999-2000, Michael A. Chase.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-
use strict;
use vars qw($VERSION @ISA);
-$VERSION = "3.71";
+$VERSION = "3.72";
require HTML::Entities;
@@ -373,7 +367,7 @@
sequence "/>" instead of ">". When recognized by C<HTML::Parser> they
cause an artificial end event in addition to the start event. The
C<text> for the artificial end event will be empty and the C<tokenpos>
-array will be undefined even though the the token array will have one
+array will be undefined even though the token array will have one
element containing the tag name.
=item $p->marked_sections
@@ -1190,7 +1184,7 @@
for any entities that expand to characters with code above 127. This
is not a good thing.
-The recommened solution is to apply Encode::decode_utf8() on the data before
+The recommended solution is to apply Encode::decode_utf8() on the data before
feeding it to the $p->parse(). For $p->parse_file() pass a file that has been
opened in ":utf8" mode.
@@ -1231,7 +1225,7 @@
=head1 COPYRIGHT
- Copyright 1996-2008 Gisle Aas. All rights reserved.
+ Copyright 1996-2016 Gisle Aas. All rights reserved.
Copyright 1999-2000 Michael A. Chase. All rights reserved.
This library is free software; you can redistribute it and/or
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTML-Parser-3.71/Parser.xs new/HTML-Parser-3.72/Parser.xs
--- old/HTML-Parser-3.71/Parser.xs 2013-03-25 23:33:39.000000000 +0100
+++ new/HTML-Parser-3.72/Parser.xs 2016-01-19 16:18:18.000000000 +0100
@@ -1,5 +1,5 @@
-/*
- * Copyright 1999-2009, Gisle Aas.
+/*
+ * Copyright 1999-2016, Gisle Aas.
* Copyright 1999-2000, Michael A. Chase.
*
* This library is free software; you can redistribute it and/or
@@ -312,7 +312,7 @@
#endif
-MGVTBL vtbl_pstate =
+const MGVTBL vtbl_pstate =
{
0,
0,
@@ -362,7 +362,7 @@
#endif
mg = mg_find(sv, '~');
assert(mg);
- mg->mg_virtual = &vtbl_pstate;
+ mg->mg_virtual = (MGVTBL*)&vtbl_pstate;
#if defined(USE_ITHREADS) && PATCHLEVEL >= 8
mg->mg_flags |= MGf_DUP;
#endif
@@ -480,7 +480,7 @@
case 12: attr = &pstate->xml_pic; break;
case 13: attr = &pstate->backquote; break;
default:
- croak("Unknown boolean attribute (%d)", ix);
+ croak("Unknown boolean attribute (%d)", (int)ix);
}
RETVAL = boolSV(*attr);
if (items > 1)
@@ -517,7 +517,7 @@
case 2: attr = &pstate->ignore_tags; break;
case 3: attr = &pstate->ignore_elements; break;
default:
- croak("Unknown tag-list attribute (%d)", ix);
+ croak("Unknown tag-list attribute (%d)", (int)ix);
}
if (GIMME_V != G_VOID)
croak("Can't report tag lists yet");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTML-Parser-3.71/README new/HTML-Parser-3.72/README
--- old/HTML-Parser-3.71/README 2013-03-25 23:32:22.000000000 +0100
+++ new/HTML-Parser-3.72/README 2016-01-19 16:16:41.000000000 +0100
@@ -58,7 +58,7 @@
COPYRIGHT
- © 1995-2009 Gisle Aas. All rights reserved.
+ © 1995-2016 Gisle Aas. All rights reserved.
© 1999-2000 Michael A. Chase. All rights reserved.
This library is free software; you can redistribute it and/or modify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTML-Parser-3.71/hparser.c new/HTML-Parser-3.72/hparser.c
--- old/HTML-Parser-3.71/hparser.c 2013-03-25 23:32:23.000000000 +0100
+++ new/HTML-Parser-3.72/hparser.c 2016-01-19 16:18:55.000000000 +0100
@@ -1,5 +1,5 @@
-/*
- * Copyright 1999-2009, Gisle Aas
+/*
+ * Copyright 1999-2016, Gisle Aas
* Copyright 1999-2000, Michael A. Chase
*
* This library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
#include "tokenpos.h" /* dTOKEN; PUSH_TOKEN() */
-static
+const static
struct literal_tag {
int len;
char* str;
@@ -59,10 +59,10 @@
ARG_FLAG_FLAT_ARRAY
};
-char *argname[] = {
+static const char * const argname[] = {
/* Must be in the same order as enum argcode */
"self", /* ARG_SELF */
- "tokens", /* ARG_TOKENS */
+ "tokens", /* ARG_TOKENS */
"tokenpos", /* ARG_TOKENPOS */
"token0", /* ARG_TOKEN0 */
"tagname", /* ARG_TAGNAME */
@@ -215,7 +215,7 @@
if (event == E_NONE)
goto IGNORE_EVENT;
-
+
#ifdef MARKED_SECTION
if (p_state->ms == MS_IGNORE)
goto IGNORE_EVENT;
@@ -335,7 +335,7 @@
argspec = h->argspec ? SvPV(h->argspec, my_na) : "";
if (SvTYPE(h->cb) == SVt_PVAV) {
-
+
if (*argspec == ARG_FLAG_FLAT_ARRAY) {
argspec++;
array = (AV*)h->cb;
@@ -464,8 +464,10 @@
SvUTF8_on(attrval);
if (!p_state->attr_encoded) {
#ifdef UNICODE_HTML_PARSER
- if (p_state->utf8_mode)
+ if (p_state->utf8_mode) {
sv_utf8_decode(attrval);
+ sv_utf8_upgrade(attrval);
+ }
#endif
decode_entities(aTHX_ attrval, p_state->entity2char, 0);
if (p_state->utf8_mode)
@@ -522,7 +524,7 @@
arg = sv_2mortal(newRV_noinc((SV*)av));
}
break;
-
+
case ARG_TEXT:
arg = sv_2mortal(newSVpvn(beg, end - beg));
if (utf8)
@@ -536,8 +538,10 @@
SvUTF8_on(arg);
if (!p_state->is_cdata) {
#ifdef UNICODE_HTML_PARSER
- if (p_state->utf8_mode)
+ if (p_state->utf8_mode) {
sv_utf8_decode(arg);
+ sv_utf8_upgrade(arg);
+ }
#endif
decode_entities(aTHX_ arg, p_state->entity2char, 1);
if (p_state->utf8_mode)
@@ -545,7 +549,7 @@
}
}
break;
-
+
case ARG_IS_CDATA:
if (event == E_TEXT) {
arg = boolSV(p_state->is_cdata);
@@ -595,7 +599,7 @@
case ARG_UNDEF:
arg = sv_mortalcopy(&PL_sv_undef);
break;
-
+
default:
arg = sv_2mortal(newSVpvf("Bad argspec %d", *s));
break;
@@ -663,7 +667,7 @@
}
#endif
}
-#undef CHR_DIST
+#undef CHR_DIST
return;
}
@@ -701,7 +705,7 @@
if (isHNAME_FIRST(*s) || *s == '@') {
char *name = s;
int a = ARG_SELF;
- char **arg_name;
+ const char * const *arg_name;
s++;
while (isHNAME_CHAR(*s))
@@ -735,7 +739,7 @@
}
}
else {
- croak("Unrecognized identifier %.*s in argspec", s - name, name);
+ croak("Unrecognized identifier %.*s in argspec", (int) (s - name), name);
}
}
else if (*s == '"' || *s == '\'') {
@@ -768,7 +772,7 @@
while (isHSPACE(*s))
s++;
-
+
if (*s == '}' && SvPVX(argspec)[0] == ARG_FLAG_FLAT_ARRAY) {
/* end of '@{ ... }' */
s++;
@@ -812,7 +816,7 @@
p_state->column = p_state->pend_text_column;
report_event(p_state, E_TEXT,
- SvPVX(old_pend_text), SvEND(old_pend_text),
+ SvPVX(old_pend_text), SvEND(old_pend_text),
SvUTF8(old_pend_text), 0, 0, self);
SvOK_off(old_pend_text);
@@ -945,7 +949,7 @@
goto LOCATE_END;
}
}
-
+
if (s == end)
return beg;
}
@@ -1058,11 +1062,11 @@
/* comment finished */
goto FIND_NAMES;
}
- }
+ }
}
else
goto FAIL;
-
+
}
if (*s == '[') {
s++;
@@ -1084,7 +1088,7 @@
FAIL:
SvREFCNT_dec(tokens);
return 0; /* not yet implemented */
-
+
PREMATURE:
SvREFCNT_dec(tokens);
return beg;
@@ -1424,7 +1428,7 @@
FREE_TOKENS;
return s;
}
-
+
FREE_TOKENS;
return 0;
@@ -1512,9 +1516,9 @@
continue;
token_pos.end = s - 2;
}
-
+
/* a complete processing instruction seen */
- report_event(p_state, E_PROCESS, beg, s, utf8,
+ report_event(p_state, E_PROCESS, beg, s, utf8,
&token_pos, 1, self);
return s;
}
@@ -1565,7 +1569,7 @@
end_text = s;
s++;
-
+
/* here we rely on '\0' termination of perl svpv buffers */
if (*s == '/') {
s++;
@@ -1640,7 +1644,7 @@
0, 0, self);
t = s;
SvREFCNT_dec(av_pop(p_state->ms_stack));
- marked_section_update(p_state);
+ marked_section_update(p_state);
continue;
}
}
@@ -1794,7 +1798,7 @@
/* report rest as text */
report_event(p_state, E_TEXT, s, end, utf8, 0, 0, self);
}
-
+
SvREFCNT_dec(p_state->buf);
p_state->buf = 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTML-Parser-3.71/hparser.h new/HTML-Parser-3.72/hparser.h
--- old/HTML-Parser-3.71/hparser.h 2013-03-25 23:32:23.000000000 +0100
+++ new/HTML-Parser-3.72/hparser.h 2016-01-19 16:18:46.000000000 +0100
@@ -1,5 +1,5 @@
-/*
- * Copyright 1999-2009, Gisle Aas
+/*
+ * Copyright 1999-2016, Gisle Aas
* Copyright 1999-2000, Michael A. Chase
*
* This library is free software; you can redistribute it and/or
@@ -129,4 +129,3 @@
SV* tmp;
};
typedef struct p_state PSTATE;
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTML-Parser-3.71/lib/HTML/Filter.pm new/HTML-Parser-3.72/lib/HTML/Filter.pm
--- old/HTML-Parser-3.71/lib/HTML/Filter.pm 2013-03-25 23:32:23.000000000 +0100
+++ new/HTML-Parser-3.72/lib/HTML/Filter.pm 2016-01-19 18:38:44.000000000 +0100
@@ -6,7 +6,7 @@
require HTML::Parser;
@ISA=qw(HTML::Parser);
-$VERSION = "3.57";
+$VERSION = "3.72";
sub declaration { $_[0]->output("<!$_[1]>") }
sub process { $_[0]->output($_[2]) }
@@ -28,7 +28,7 @@
=head1 NOTE
B<This module is deprecated.> The C<HTML::Parser> now provides the
-functionally of C<HTML::Filter> much more efficiently with the the
+functionally of C<HTML::Filter> much more efficiently with the
C<default> handler.
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTML-Parser-3.71/t/unicode.t new/HTML-Parser-3.72/t/unicode.t
--- old/HTML-Parser-3.71/t/unicode.t 2013-03-25 23:32:23.000000000 +0100
+++ new/HTML-Parser-3.72/t/unicode.t 2016-01-19 16:13:30.000000000 +0100
@@ -7,7 +7,7 @@
plan skip_all => "This perl does not support Unicode" if $] < 5.008;
}
-plan tests => 105;
+plan tests => 107;
my @warn;
$SIG{__WARN__} = sub {
@@ -172,7 +172,7 @@
$p->parse(q(<a href="a=1&lang=2×=3">foo</a>))->eof;
is(@parsed, "5");
is($parsed[1][0], "start");
-is($parsed[1][8]{href}, "a=1&lang=2\xd7=3");
+is($parsed[1][8]{href}, "a=1&lang=2\xC3\x97=3");
ok(!HTML::Entities::_probably_utf8_chunk(""));
ok(!HTML::Entities::_probably_utf8_chunk("f"));
@@ -196,3 +196,17 @@
ok(!@warn);
is(@parsed, 9);
+
+@parsed = ();
+$p = HTML::Parser->new(
+ api_version => 3,
+ utf8_mode => 1,
+ unbroken_text => 1,
+ default_h => [\@parsed, 'event,dtext'],
+);
+
+$p->parse("<p>R\xC3\xA9ductions jusqu'à -70%.<p>Réductions jusqu'à -70%.");
+$p->eof;
+
+is($parsed[2][1], "R\xC3\xA9ductions jusqu'\xC3\xA0 -70%.");
+is($parsed[4][1], "R\xC3\xA9ductions jusqu'\xC3\xA0 -70%.");
++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#description: |-
# override description from CPAN
#summary: override summary from CPAN
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
# foo.patch: -p1
# bar.patch:
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL
#post_build: |-
# rm unused.files
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
#ignore_requires: Bizarre::Module
1
0
Hello community,
here is the log from the commit of package ortp for openSUSE:Factory checked in at 2016-01-28 22:49:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ortp (Old)
and /work/SRC/openSUSE:Factory/.ortp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ortp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ortp/ortp.changes 2015-11-18 22:32:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ortp.new/ortp.changes 2016-01-28 22:49:57.000000000 +0100
@@ -1,0 +2,5 @@
+Sun Jan 24 10:57:29 UTC 2016 - jengelh(a)inai.de
+
+- Add tarball signature
+
+-------------------------------------------------------------------
New:
----
ortp-0.25.0.tar.gz.sig
ortp.keyring
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ortp.spec ++++++
--- /var/tmp/diff_new_pack.Jb6xPf/_old 2016-01-28 22:49:58.000000000 +0100
+++ /var/tmp/diff_new_pack.Jb6xPf/_new 2016-01-28 22:49:58.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ortp
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2014 Mariusz Fik <fisiu(a)opensuse.org>.
#
# All modifications and additions to the file contributed by third parties
@@ -24,10 +24,12 @@
Release: 0
Summary: Real-time Transport Protocol Stack
License: LGPL-2.1+
-Group: System/Libraries
+Group: Productivity/Telephony
Url: http://linphone.org/eng/documentation/dev/ortp.html
Source: http://download.savannah.gnu.org/releases/linphone/ortp/sources/%{name}-%{v…
-Source1: baselibs.conf
+Source2: http://download.savannah.gnu.org/releases/linphone/ortp/sources/%{name}-%{v…
+Source3: %{name}.keyring
+Source4: baselibs.conf
BuildRequires: gcc
BuildRequires: glibc-devel
BuildRequires: make
++++++ ortp.keyring ++++++
pub 1024D/0x3ECD52DEE2F56985 2006-04-21
Key fingerprint = 9774 BC17 2575 8EB1 6D63 9F8B 3ECD 52DE E2F5 6985
uid [ unknown] linphone.org <simon.morlat(a)linphone.org>
sub 1024g/0x1D877DFF53FDE059 2006-04-21
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGiBERI2/0RBACFSZw305fWOaYIpd9BIq5fGRcB+mV74JSj+x2aCeTCzD92+rYC
K0jH/sS7+x6+AIkMyuOBZjIy6FiFQEsjgGb93vG0rrpHHvGLcO4Rg+Dl4ekEt5O8
4iNvGoqzGwsHdQgjuzM+aLhil65Xcfg1XSj4K1bgHHeeuzSbMbqOVZM7QwCg8XYa
VKFTdF+89O/R2M33rrOH1zED/A/E/uwLhlsXkulAhq6axRW6WcJrhZBxc+/WMbnp
c1el8/P4v5Pv2tqNJFON6iUxfNwbKxkFtIOfdxc6dOkYRIwp6k7t3PHbKsBQCWwY
Tmc2hQJCglsI6jfG+Y7jedqfUgKkw/6tx1b3pfl73xwR4qt53BU1Hgx8G8t6bQu2
8WuLA/9x++sJu+NGWT4NrNw/NmCBSnhSoHqN1oiXuKkq03deYpVF6ttwSOQL+6NY
UwTwVFWBwhawuAQMj6gtgMV8VB2UIzsLssotiGESZ3WdyZbi9GvHOlYJT2y4KDUC
erIC+9qBzoIjssE9bzuWdATI0DCcYtwNjE9lVUViHK1mahJw97QobGlucGhvbmUu
b3JnIDxzaW1vbi5tb3JsYXRAbGlucGhvbmUub3JnPohgBBMRAgAgBQJESNv9Ahsj
BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQPs1S3uL1aYWn3QCfYp8rtkQs1qAp
S0RBY2j5saP88XkAnAvpuofYVNaj6eYcXWBNuQuJuWQFuQENBERI2/4QBACkFtLn
uqF3gyurIN7lAzkTLVgu/PiweEaJCbjtHogtdkG2pGiYNe7EnkR9lpCU/g1EiiXZ
VagywCc8iqhMp3RIKMDdnZUKplvZDwGtHg5hccOzk4AxNFIhAjR2V7qZUk4D6gSk
vkTuV5VQyiV9fMdlA02Y1mHWhC4eOBsbzm8e1wADBQP+OTiCJv0WlVTxdQoyal1j
umD3Cf7SXANCNecNjwbjddNEkpxvlxA798KsF1MwMIQ+xcoL38HFgrbiQ35hDG+i
AJnqZr519TDfh9jH8z5sYT8mfQk5KsTeVqb3Ot+ktk3yZpR9FICfFTblhtBEzFau
ANOaED/qsrO+W1+q71oCm3CISQQYEQIACQUCREjb/gIbDAAKCRA+zVLe4vVphYlZ
AKCuKYmJ6obVbQ+jnP8RdGBZVNf1lQCdF7SMK+h6vWH7JohPrClM50OxFI0=
=E9DM
-----END PGP PUBLIC KEY BLOCK-----
1
0
Hello community,
here is the log from the commit of package python3-virtualenv for openSUSE:Factory checked in at 2016-01-28 22:49:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-virtualenv (Old)
and /work/SRC/openSUSE:Factory/.python3-virtualenv.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-virtualenv"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-virtualenv/python3-virtualenv-doc.changes 2015-08-27 08:55:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-virtualenv.new/python3-virtualenv-doc.changes 2016-01-28 22:49:52.000000000 +0100
@@ -1,0 +2,38 @@
+Fri Jan 22 07:04:23 UTC 2016 - arun(a)gmx.de
+
+- update to version 14.0.1:
+ * Upgrade from pip 8.0.0 to 8.0.2.
+ * Fix the default of --(no-)download to default to downloading.
+
+-------------------------------------------------------------------
+Wed Jan 20 05:45:41 UTC 2016 - arun(a)gmx.de
+
+- specfile:
+ * update copyright year
+
+- update to version 14.0.0:
+ * BACKWARDS INCOMPATIBLE Drop support for Python 3.2.
+ * Upgrade setuptools to 19.4
+ * Upgrade wheel to 0.26.0
+ * Upgrade pip to 8.0.0
+ * Upgrade argparse to 1.4.0
+ * Added support for python-config script (PR #798)
+ * Updated activate.fish (PR #589) (PR #799)
+ * Account for a site.pyo correctly in some python implementations
+ (PR #759)
+ * Properly restore an empty PS1 (#407)
+ * Properly remove pydoc when deactivating
+ * Remove workaround for very old Mageia / Mandriva linuxes (PR #472)
+ * Added a space after virtualenv name in the prompt: (env) $PS1
+ * Make sure not to run a –user install when creating the virtualenv
+ (PR #803)
+ * Remove virtualenv file’s path from directory when executing with a
+ new python. Fixes issue #779, #763 (PR #805)
+ * Remove use of () in .bat files so Program Files (x86) works #35
+ * Download new releases of the preinstalled software from PyPI when
+ there are new releases available. This behavior can be disabled
+ using --no-download.
+ * Make --no-setuptools, --no-pip, and --no-wheel independent of each
+ other.
+
+-------------------------------------------------------------------
python3-virtualenv.changes: same change
Old:
----
virtualenv-13.1.2.tar.gz
New:
----
virtualenv-14.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-virtualenv-doc.spec ++++++
--- /var/tmp/diff_new_pack.IjCjIO/_old 2016-01-28 22:49:52.000000000 +0100
+++ /var/tmp/diff_new_pack.IjCjIO/_new 2016-01-28 22:49:52.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-virtualenv-doc
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python3-virtualenv-doc
-Version: 13.1.2
+Version: 14.0.1
Release: 0
Url: http://www.virtualenv.org/
Summary: Documentation for python3-virtualenv
python3-virtualenv.spec: same change
++++++ virtualenv-13.1.2.tar.gz -> virtualenv-14.0.1.tar.gz ++++++
++++ 3788 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package java-1_7_0-openjdk for openSUSE:Factory checked in at 2016-01-28 22:49:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/java-1_7_0-openjdk (Old)
and /work/SRC/openSUSE:Factory/.java-1_7_0-openjdk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-1_7_0-openjdk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/java-1_7_0-openjdk/java-1_7_0-openjdk-bootstrap.changes 2015-10-28 17:15:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.java-1_7_0-openjdk.new/java-1_7_0-openjdk-bootstrap.changes 2016-01-28 22:49:37.000000000 +0100
@@ -1,0 +2,67 @@
+Fri Jan 22 10:41:45 UTC 2016 - fstrba(a)suse.com
+
+- Update to 2.6.4 - OpenJDK 7u95 (bsc#962743)
+ * Security fixes
+ - S8059054, CVE-2016-0402: Better URL processing
+ - S8130710, CVE-2016-0448: Better attributes processing
+ - S8132210: Reinforce JMX collector internals
+ - S8132988: Better printing dialogues
+ - S8133962, CVE-2016-0466: More general limits
+ - S8137060: JMX memory management improvements
+ - S8139012: Better font substitutions
+ - S8139017, CVE-2016-0483: More stable image decoding
+ - S8140543, CVE-2016-0494: Arrange font actions
+ - S8143185: Cleanup for handling proxies
+ - S8143941, CVE-2015-8126, CVE-2015-8472: Update splashscreen
+ displays
+ - S8144773, CVE-2015-7575: Further reduce use of MD5 (SLOTH)
+ - S8142882, CVE-2015-4871: rebinding of the receiver of a
+ DirectMethodHandle may allow a protected method to be accessed
+ * Import of OpenJDK 7 u95 build 0
+ - S7167988: PKIX CertPathBuilder in reverse mode doesn't work if
+ more than one trust anchor is specified
+ - S8068761: [TEST_BUG] java/nio/channels/ServerSocketChannel/AdaptServerSocket.java
+ failed with SocketTimeoutException
+ - S8074068: Cleanup in src/share/classes/sun/security/x509/
+ - S8075773: jps running as root fails after the fix of JDK-8050807
+ - S8081297: SSL Problem with Tomcat
+ - S8131181: Increment minor version of HSx for 7u95 and
+ initialize the build number
+ - S8132082: Let OracleUcrypto accept RSAPrivateKey
+ - S8134605: Partial rework of the fix for 8081297
+ - S8134861: XSLT: Extension func call cause exception if
+ namespace URI contains partial package name
+ - S8135307: CompletionFailure thrown when calling FieldDoc.type,
+ if the field's type is missing
+ - S8138716: (tz) Support tzdata2015g
+ - S8140244: Port fix of JDK-8075773 to MacOSX
+ - S8141213: [Parfait]Potentially blocking function
+ GetArrayLength called in JNI critical region at line 239 of
+ jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c in
+ function GET_ARRAYS
+ - S8141287: Add MD5 to jdk.certpath.disabledAlgorithms - Take 2
+ - S8142928: [TEST_BUG] sun/security/provider/certpath/ReverseBuilder/ReverseBuild.java
+ 8u71 failure
+ - S8143132: L10n resource file translation update
+ - S8144955: Wrong changes were pushed with 8143942
+ - S8145551: Test failed with Crash for Improved font lookups
+ - S8147466: Add -fno-strict-overflow to
+ IndicRearrangementProcessor{,2}.cpp
+ * Backports
+ - S8140244: Port fix of JDK-8075773 to AIX
+ - S8133196, PR2712, RH1251935: HTTPS hostname invalid issue with
+ InetAddress
+ - S8140620, PR2710: Find and load default.sf2 as the default
+ soundbank on Linux
+- Update the java-1_7_0-openjdk.keyring file to include both keys
+ of Andrew John Hughes of icedtea fame.
+- Rename the keyring file and disable it in the spec file until
+ the key servers can handle those keys.
+
+-------------------------------------------------------------------
+Mon Jan 18 08:52:48 UTC 2016 - fstrba(a)suse.com
+
+- Move libjavagtk to the full package as not to polute the headless
+ with X dependencies (bsc#939523).
+
+-------------------------------------------------------------------
java-1_7_0-openjdk.changes: same change
Old:
----
icedtea-2.6.2.tar.xz
icedtea-2.6.2.tar.xz.sig
java-1_7_0-openjdk.keyring
New:
----
icedtea-2.6.4.tar.xz
icedtea-2.6.4.tar.xz.sig
java-1_7_0-openjdk.keyring.renamed
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ java-1_7_0-openjdk-bootstrap.spec ++++++
--- /var/tmp/diff_new_pack.cCuldY/_old 2016-01-28 22:49:41.000000000 +0100
+++ /var/tmp/diff_new_pack.cCuldY/_new 2016-01-28 22:49:41.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package java-1_7_0-openjdk-bootstrap
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%{!?aarch64:%global aarch64 aarch64 arm64 armv8}
%global jit_arches %ix86 x86_64 ppc64 ppc64le %arm %aarch64
%global test_arches %ix86 x86_64 ppc64 ppc64le
-%global icedtea_version 2.6.2
+%global icedtea_version 2.6.4
%global icedtea_sound_version 1.0.1
%global mauvedate 2008-10-22
%global buildoutputdir openjdk.build/
@@ -31,7 +31,7 @@
# Standard JPackage naming and versioning defines.
%global priority 1705
%global javaver 1.7.0
-%global buildver 91
+%global buildver 95
# Standard JPackage directories and symbolic links.
%global sdklnk java-%{javaver}-openjdk
%global archname %{sdklnk}
@@ -170,9 +170,12 @@
Source11: http://icedtea.classpath.org/download/drops/icedtea7/%{icedtea_version}/hot…
# those properties are for opeSUSE only
Source1001: fontconfig.SUSE.properties
+# Unfortunately, upstream changed the signing key for icedtea packages and
+# the key servers are unable to handle it correctly. Disabling it until times
+# are better.
Source2000: http://icedtea.classpath.org/download/source/icedtea-%{icedtea_version}.tar…
Source2001: http://icedtea.classpath.org/download/source/icedtea-sound-%{icedtea_sound_…
-Source2002: java-1_7_0-openjdk.keyring
+Source2002: java-1_7_0-openjdk.keyring.renamed
Source2500: pre_checkin.sh
# RPM/distribution specific patches
# Remove the use of __DATE__ and __TIME__ in order to diminish unnecessary rebuilds
@@ -1105,6 +1108,7 @@
%endif
%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libsplashscreen.so
%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/xawt/libmawt.so
+%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libjavagtk.so
%files headless
%defattr(0644,root,root,0755)
@@ -1141,14 +1145,16 @@
%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/*.so
#belongs to accessibility
%exclude %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so
+
#belongs to full package
%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libjsoundalsa.so
-
%if %{with_pulseaudio}
%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libicedtea-sound.so
%exclude %{_jvmdir}/%{sdkdir}/jre/lib/pulseaudio.properties
%endif
%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libsplashscreen.so
+%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/xawt/libmawt.so
+%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libjavagtk.so
%ifarch %ix86
%dir %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client
@@ -1160,8 +1166,7 @@
%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/headless/libmawt.so
%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.*
%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjsig.so
-#belongs to full package
-%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/xawt/libmawt.so
+
%config(noreplace) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/jvm.cfg
%if ! %{with zero}
++++++ java-1_7_0-openjdk.spec ++++++
--- /var/tmp/diff_new_pack.cCuldY/_old 2016-01-28 22:49:41.000000000 +0100
+++ /var/tmp/diff_new_pack.cCuldY/_new 2016-01-28 22:49:41.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package java-1_7_0-openjdk
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%{!?aarch64:%global aarch64 aarch64 arm64 armv8}
%global jit_arches %ix86 x86_64 ppc64 ppc64le %arm %aarch64
%global test_arches %ix86 x86_64 ppc64 ppc64le
-%global icedtea_version 2.6.2
+%global icedtea_version 2.6.4
%global icedtea_sound_version 1.0.1
%global mauvedate 2008-10-22
%global buildoutputdir openjdk.build/
@@ -31,7 +31,7 @@
# Standard JPackage naming and versioning defines.
%global priority 1705
%global javaver 1.7.0
-%global buildver 91
+%global buildver 95
# Standard JPackage directories and symbolic links.
%global sdklnk java-%{javaver}-openjdk
%global archname %{sdklnk}
@@ -170,9 +170,12 @@
Source11: http://icedtea.classpath.org/download/drops/icedtea7/%{icedtea_version}/hot…
# those properties are for opeSUSE only
Source1001: fontconfig.SUSE.properties
+# Unfortunately, upstream changed the signing key for icedtea packages and
+# the key servers are unable to handle it correctly. Disabling it until times
+# are better.
Source2000: http://icedtea.classpath.org/download/source/icedtea-%{icedtea_version}.tar…
Source2001: http://icedtea.classpath.org/download/source/icedtea-sound-%{icedtea_sound_…
-Source2002: java-1_7_0-openjdk.keyring
+Source2002: java-1_7_0-openjdk.keyring.renamed
Source2500: pre_checkin.sh
# RPM/distribution specific patches
# Remove the use of __DATE__ and __TIME__ in order to diminish unnecessary rebuilds
@@ -1105,6 +1108,7 @@
%endif
%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libsplashscreen.so
%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/xawt/libmawt.so
+%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libjavagtk.so
%files headless
%defattr(0644,root,root,0755)
@@ -1141,14 +1145,16 @@
%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/*.so
#belongs to accessibility
%exclude %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so
+
#belongs to full package
%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libjsoundalsa.so
-
%if %{with_pulseaudio}
%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libicedtea-sound.so
%exclude %{_jvmdir}/%{sdkdir}/jre/lib/pulseaudio.properties
%endif
%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libsplashscreen.so
+%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/xawt/libmawt.so
+%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libjavagtk.so
%ifarch %ix86
%dir %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client
@@ -1160,8 +1166,7 @@
%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/headless/libmawt.so
%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.*
%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjsig.so
-#belongs to full package
-%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/xawt/libmawt.so
+
%config(noreplace) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/jvm.cfg
%if ! %{with zero}
++++++ corba.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-a4d55c5cec23/.hgtags new/corba-2135da66cc53/.hgtags
--- old/corba-a4d55c5cec23/.hgtags 2015-10-21 04:15:30.000000000 +0200
+++ new/corba-2135da66cc53/.hgtags 2016-01-18 16:52:10.000000000 +0100
@@ -646,3 +646,7 @@
0445c54dcfb6cd523525a07eec0f2b26c43eb3c4 icedtea-2.6.2pre02
f9630ed441a06612f61a88bd3da39075015213a7 jdk7u91-b00
34be12b4b6ea5f30d364a916a92effeafdce678d jdk7u91-b01
+a4d55c5cec23631523672ca8b27767ec882eb835 icedtea-2.6.2
+e3a6331d136ecac575730b498501f5b0dc4302e2 jdk7u91-b02
+9a3ca529125ad02ef3b0afd3c2f8fa6f80e0e46f icedtea-2.6.3
+96b735f85c61ad721113713551271106a5070742 jdk7u95-b00
++++++ hotspot.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_7_0-openjdk/hotspot.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_7_0-openjdk.new/hotspot.tar.bz2 differ: char 11, line 1
++++++ icedtea-2.6.2.tar.xz -> icedtea-2.6.4.tar.xz ++++++
++++ 5161 lines of diff (skipped)
++++++ java-1_7_0-openjdk.keyring.renamed ++++++
pub rsa4096/248BDC07 2011-09-28 [expires: 2017-10-08]
uid [ unknown] Dr Andrew John Hughes <gnu_andrew(a)member.fsf.org>
uid [ unknown] Andrew John Hughes <gnu.andrew(a)redhat.com>
uid [ unknown] Dr Andrew John Hughes <ahughes(a)redhat.com>
sub rsa4096/954E386D 2011-09-28 [expires: 2017-10-08]
pub rsa4096/66484681 2012-01-18 [expires: 2017-01-16]
uid [ unknown] Omair Majid <omajid(a)redhat.com>
sub rsa4096/7CC8AAC6 2012-01-18 [expires: 2017-01-16]
pub ed25519/35964222 2015-01-05 [expires: 2016-11-24]
uid [ unknown] Andrew John Hughes <gnu.andrew(a)redhat.com>
uid [ unknown] Andrew John Hughes (ECC Key) <gnu_andrew(a)member.fsf.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
mQINBE6DsxYBEAC1BEaIiSABPHGOv7nVgYhR4i4RtISnDhYcLX2Vyd0IuUDBeUJu
D5PBdl/d0Ski/HwXQCaAUa8DLy+eC5llgGGNXGVKU8KMk/sbign0dZonF6uDe36t
MfI+w71XCZYD9wXB3Hfjl4XMIEczi71SmuAD/snY1kRm5cFfUzGx3nqqxIR7TIpY
smTJwC7jlnaDPgcleQPwyu6IWKlwVnfHgjUqsPz9fxTCAcQiUw/u9teE8B7VD89T
VeRv3oqg95QuQV9PkloUbUwOe2XG/4Jvix3+jmqzWzv/luXEOT84BsuiAjpz4mT5
tz3zwaW2umSwSeU0foC+ONhZzVdcajIYkCZZEe3+mNfOFFtoyeUeZkSlcsexUEXC
aeEFCoHBqyfquLDMqarKTr/j0vzHPEuQ6N/INf+yhA2IbPVwLEEZ4nMtcwKe9S7y
Ucu5nFIPtsK7nO0oKTRNIq48+JgzLyKnYEu9Ld+3xfDynp6pT4zMqbIAFMrxHm89
JeOPZIgPJuKrjHzyfzxANPsdtqcGHAdDXCwk03cagpfkAYUQWCPcMv2uQRiqJIsJ
cNomuUV7l8ZuTnw+i+/0ZSNKqE5k5OZvZ+Xf7yMCpc5RB5UdTkt4NR7qmz5d/cMq
CoKz9QsU7RuiDDV4jK2HuDIFbXMNto4MRedvJcnpfaZPoWZFWGsvHOBjGQARAQAB
tCpBbmRyZXcgSm9obiBIdWdoZXMgPGdudS5hbmRyZXdAcmVkaGF0LmNvbT6JAhwE
EAECAAYFAlNFjGwACgkQ8obxT2ZIRoE+Yw/+JjKRTODIfjEhrYcEyx9r4U7WV+Q5
D6kbtLH08KOVDfj/oYjwXHjIGjEYSiQMsd9HE50H4UbBPg38ln04s8TDxsZbwJnI
IuNlrdlHacXeaxydLZuGN6GEjdQP0+bSRM9Ryc4MZwW166kkEj80fB1T3BJsiL8T
bu61hVsCEY1wAv5qPPGNv/OgYwuVj472w91mqZUaBEQyryFn63YMHzbe8JoNlJ65
pswKHbNeMLmrZfxJQLT7+e90/4oCq1KNo3e4ML6i53ahHZdoUQgxv8pBGtQ+LQ/a
1f1Nb0SErgPsj5OSM/2IM+bUnpxq7dgZGTtmkRHNkZWbo8dc8FzoerXQ7RSljig/
x1hCiOBFj2sxb1V8bhiozCAowxndMBy0nqElDmYpjZcOu4EZOBnaMGrOQ5iaphOc
yAyuf5NSZmJmW5VlDp91LG34+pk2e62kjp+3/FuMGWNNaCHRMFXc+KFsBvrlFpBY
kNlvlDJLgNOjpNj98sOmV2lVWYDbOFudlHLn8PsEYnzlemLDHRorj9CPFsaEymWK
hibfVMnTQuc7dIwl9jUbO7PbMSDiMRcz8Lo0fqf4u/FA4fB2KgRLc4OVzDHjsJkn
7skp0/2KfS4VkKS82Yezwew8qnZ3PCfk5YDhcC3jzCGJFfYCe79I9FRaoac7vB5H
AUpCxh2tfuzC+ROJAj0EEwEKACcCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AF
AlJUHNUFCQWxnT8ACgkQO5aleCSL3AfRSg/9HHL7d8/MBLLc9pJB1N3YuV8hwGa6
2o1+PT64tBPOoh3KP9wSrberHiLP0JVJDgLIdYA9rLQDHZcb9ltB9q4RQVzyfJtK
6c80c9YKi/1hFEuJxs0Xx3zI2X1eE4ouEo18NvzROPyPsq38dHdosoKzCb0GW8M4
0s3YqcrrHuv/r+mKQv7V6OupY50povbVN/EFKNOUK6xIw1JIoe+DT1iIq0pPj8y1
S28oeCugfLfd+NU9T0FdM4LK67XxdnDoCr78pvEgYhH9X3hRiSpof6UGat0v21hH
qHUtPZoLIWbCUzFJUWoIt+EbRpJcAULs1rklO5WDYXORPv0PypMqebxWCnvMkN6F
xhaYmbE28l61tlS74jpX6/gm8zq7syP8JvOGrDP/432e5oV1UF0Ay/RLCh8xKQh2
uKxbNtl3NSXeOD/YLl28Q3FN3UfJMV5AjaZvwsLCh9cch8HzOYRvyGPVqnNG5MIZ
EyNoA+vhCVtzHiN3tF3E6zGo+ccYSl3xxjyn0ol4HZ/QIIeD/vsnASzycmB0VMzr
KUCN3lkgtGy8BKRnMcHfLL480JtAJObrKaTbnuduLXxrXVYObujymrlADLWlZ2Mi
ciKXHE9YPRAixqfjvpBXkU7GaRSc/g12hIK5fApSP/FmuwbACwJojt1+FrKecBD9
PvqlI30ToGuSnLGJAj0EEwEKACcFAlB4ZpUCGwMFCQPV5skFCwkIBwMFFQoJCAsF
FgIDAQACHgECF4AACgkQO5aleCSL3AcAUA//fDurJW5CIBvAtVZXKQLQ6+05FCfE
PbIdnpI9kRpah+JdBJuOUC7B2ekbw29/SiVfga34+Dlr+fXAK4MfdhjmINl4xKdG
G1HqVWm7D3L8Eu1n5jUgSFvLB1nzfrPaUS11nYhPvpF2/CHfwHc8Fu/5EVWmYjhs
x0L1BL2oN72vOEQNxoIaQb//Kn11qFQEt8HYyqZORpQHJP37ZVfUx7CXznX+ce0Y
Gnzfn2j8i9ImVqmMG/teAWiPDCBz6ZjOzkPTJ354fAPdNj/pDmHL08zSlwaAllEO
WlWC6GfiWw/4ajLhHuBRvzaAJmLHW3mQvPPP2raY5mKDawflWNzckwMLEM4DJ6Td
wmjavk8GaPzAnSmpboGjsU9fjL1mSDVkQRkDnmG2Pm4iEBqYALah7q5vaTnLGKSr
CQXjDWmzPaNYanZYG4kS1xesQ8FPLjQbCncZSDd8+D5rwXcT5eHkpyiHObgCCtAN
dLscJg3s9anz1QgjyWY1W+EJBeFiHsQ3zlFqMhsWamLHh6k/w02wRREvqv09qX1M
aMq+1j3taa20t06XrVoit65U9X2Xs0uwPP3q292Teau/0P8nu8g/bfyZiKyz227I
J4TECItHdOel5LJm4gK65ZAcE2aPcLnpdeOobvkMMyxoFVxifpaVve71EUjIYHVv
//q8kx54y9vl6IiJAj0EEwEKACcCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AF
AlQ17vQFCQtV1l4ACgkQO5aleCSL3Ae7ug//YWolCEpPU5BUS5Ag2Zr3iNtaTTGd
EWiBqzjhkoazFfVlziMxYrQrevWgAH7fQYWu5IiA5OijMX/ZulEHauGctD2cW4Q5
JERIvNqqfMIW/WZSCy0iCI92hNEWjeKQ1vOIihYKx44Of5G6vcWvUZxVaIMYvC4T
H+G2I2oxrmlRbsqJtkQJcU4bC/q0j+0FOEaXOZxUu3GmIvdSDJ/v6k6TBed2HrrR
LG0ZvS/q0G4thN56yksjf8EwzK+//Bj4pd4ow5vjYPt33zMiaykUoym6rh3emMOg
iPKm2T3vfuo8u1b9XOI2SIUlWuGFjcvCcOB3/RJ0AEW+C7ambX9smo6YAPDa1Q/R
3ernL5RwfSrUcyWcAuEH/axzzSOs7+5QpfmRJJcACVSmdZ7rCxlf5Yue5ToWpULm
rxwjUHGLklrQ2cgnk/+Ane5cVn4RJ+aLeQ7RGeobc/314m5ylnksU25nBGfdmFbH
4NG7jtCPnEiJycUyc1TmUu3iNpP/hPYeg4azzyQlmPIBPkRNW6f+rxfuxAWa99b2
QFU3KRpiN2RoiNs4TaVvGnycvREoXLws2UI4J1fiLKoszmvjhmjS1xh0hFmbE06A
9NRNkpvBAiEHTesjFbMW1s3GxH4Iby75V9sb3/WjD0qsc1IcEcy5y57/VSZV/Q3k
VFQ/VFpS+pVdB1GIXgQQFgoABgUCVKnn8AAKCRDP2g+bNZZCIvZ/AQCfEl/fS5xp
sbSKLa8UAVnr9mtKGKYbkRftENZYtBznfgD/UzSaGrmlDjCkdVhubW6yprU5RNxX
U0losl9P6IKqcQu0KkRyIEFuZHJldyBKb2huIEh1Z2hlcyA8YWh1Z2hlc0ByZWRo
YXQuY29tPohGBBARCgAGBQJOg7WKAAoJEBQsJZGU79nYZaAAoMnBcyGFU9TEg3YX
q+h5+kZhQt+cAJ9YE2ec8xx3t4WOypsyRPLR+5nM84kCHAQQAQIABgUCU0WMbAAK
CRDyhvFPZkhGgb/QD/0Tsh4JOzcp1Qx5QiAOCQOwSMpyaZQhcXVC9m16NwHzY70Z
1iLVJqDoNdiszzVaH7Jc41/MYOemcr+kyLTaZP0CBwixYRWWAOPhtRsHTmoyYSzv
jnc93pnP6NaR6GGWuVo2kEVKA4DLLqwbEg3W+OuN6mJa3ShUwrx3pwSFnSFAZRnv
Y0dXVAgu5hyumKFu5cMPLBJtSX31U2SEEl9NuQ9TPhRrwQkPwiK5ckMnuF/zBJWr
LOANHq0jn6CkAxIvqKYgTN1qxaWHx0xze37cxkKGMO5fwyJ08HD01eHoOToSlAKX
gvRgLi2EKox6G3O5HPjhFypNPDRwnvb4jMBb0/9QEl20erH+3rx75soRf060TLmK
h6GtFHbv+hRPq2S98mwJ/BERm8dF5zPEUX2el4HzpN3ptBDlJpP4ZxPDjhiCHoev
ldne0/NyjnNtab9u3h1aVYz+gnZs4jbKWysxCp0EA8XlgJBbhEEYg0i9FmrCSOxV
yozbZf6RYYsjqJJasEJ/e8R+IZ2P8bbv8+oPU8DWoxyOrvcWNeVr6er/BGoGBzQv
Hc8WR/EZbbFM9zwuLluhqFxVZmiOo5We9sH19+PskEs7/Zmku8NF1E6UlLRU8avg
yldgcwuzJwsbaG9xOb7PVlpU/08OeSm9dJ59s2VaMGeKNzyMxXt7Y15SECuQYYkC
PQQTAQoAJwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCUHhmXwUJA9XmyQAK
CRA7lqV4JIvcB8vQD/4pquKiXXdEHmHeazGv7tJGm1haWaXwgj7itEyNYXQhCLpt
WkMjV0aViYOmqoW/JJT6+NJDEtTe/x5ehNu5PcxXTFXLcB1eMzH56AUzVM1Lvsm0
vLJP8hCyt78yGanEbvUBLUBVG9254xIt6jKgNlx0SyogsDXw+tS/0ROBPRfzc7ZD
l40nxeATHNSZqPrc3yiAzQfJQLy0PB8LKv0Id4XWLh8QXGpa3exBvxq5DBE46gqN
wSXHNYzcPLYpscB3cn2XcrZVfd6E9CuIQQZdX0QLAPjZE8MOYrHCknqdXUm5X0P6
9DKWSqHMfn4uPXEDerNb7/JCfOHpPTaXP7RVO6vNfOZ7ORHibd6eQsjUsJ1s2NZn
+Zex9U4E0Zm0dvFP7RdXJGU0Hq//EulWUD81nANvzEJE1rN+8IGaFz1FPp0yCEG6
/kydlp4EyEgHn8E3W9B+N4Y432pKyD5C4lrcxYlUPzZ8lNFnOYTHE0iIgpZFyvpv
5ptCAkDPyQlDZHXzbVhk8PBg7PnulUQR8WaqJoQItMqRXgpvjqJbA6mdAV5XuNAu
SMFJ2/XBqqcU69b4/6byWwAqd+/LLR8gNVkOk7572ubnK34gDLCTO4yq8fpQTdLm
oElbRUleRqFf3DN0uW9kamejINl+deTb7Y91QfyB1X8N3mh4okxWDMBMVe/Df4kC
PQQTAQoAJwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCUlQc4QUJBbGdPwAK
CRA7lqV4JIvcB2bRD/4r+6uyawKV7B0UsjftOk/DXEnIQuJ3sq+7Mmp9l7YAPzEh
vaBalLXjyp7YGQDsSBBtodNne8f161+lEUGvCFVK6R6oN73rscf6TlOix7rteayK
WyWHOGXafP1fJXe+Rlqcr7QCysF+J3s+9JIQienYaIarF7XIgh9GePIRSKIenvvm
wqzdPAEj3vZd4aJFQWWr/bo5vAFhXdRiZA3q7zD07dEkcg01+d7won9EU5FfJia0
gRD7zCTscdkaQrm1r8KNmBZpcslvJBCfzlBtdBqkgV9H6sHIkoO8UNN/AsPe8Irt
64v7PueQ6mQkB4dZKSkjftNvARwNBm4CzA7mJxr2ScS/LIqFTJRyU5sVV2Mg8Y2M
aOSOgzq4wPub7GjvPDgv3Xi7NiT0BiT8P8Ih9JcJzYv9IGloy4Hb2hGwLodk/4VB
e8/qRBJZC/4pbBG9zXj2CWMXCqFXHwu7DydRJj9sl3oTxroORpiS9khTobDPx+EZ
N+yvIvxNaUkhzydoSM/u7bb1HxVZytA8AZ7oxjYvke4R4jd8X9WzliOL2k9kOvSR
AeRdZpcyBaFRqq0jzlPGvHhvUZREmd5djmnjo0R1PQpzd4Uk5kk2FHgtOQVnF9Zz
UJE+pyU7m5ZWXbfWQlhcwm5A94BMsHQ6kd4caTsq1+qa4uCbmgx09wu5m6GpZ4kC
PQQTAQoAJwUCToO0YQIbAwUJAeEzgAULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAK
CRA7lqV4JIvcBwTKEACO4hP6TnTZn3rsCNL2DqGFqbAX8s/UTPFoiHvhYLsnBCbK
bhEQwIO7ZmwaT5pqHLcc99lR96TVf0kIw9B5MYk8vEI2PFSOBQ1LaPstbmgQsXPt
P/WqQuXjXWzabnPVyXTMPOpXMjVbCltCi2YGenWaElic0CHEL/QVgYUW1jTMkAhT
3Qbb9Fci1H3WFMkhmA1x9/MN5iLtP1f0jqJezA0ilV/l0IeC3ytzN9Swm9k+r17J
If8JldgukFqoIhYOnaAGtHGLG7KZN3RZWj/jg4+cK/1K1kRqdEmWrMYF959nMFBV
nFIiR/Ak6iCmoD7eQR7US7is6SRsk5b1Kzh3ttHd116BAP3stf/cOPV0iqFgYNNA
FyJUyBJqnn4XzRmqfsXcrMvinQSZRP2Upj+QYbBg7eAq/dISPZEWUxpmUlxUB05Y
FJ7n/5M5+ivrreZctDQVu64rE2ZmBL9XGE12sfbL4QaxKOJcthqK4PeyyaikYXyl
9UMJ5iQJIV8NvNh36ctY9Z1qMy8zhylceljnMC25Lq/gnUpcu0zTUyWVql19cNAU
GZelTKo1k/sbODKYyHlR32izscOlumVM8MbK9Y2w2nnB0BTtN7mwLFCXNVVA1Piz
BzZplYlFki9oGUR+sePJwEUPYIyZRrJSTRnerdmlouhflF9zcxOEYiKuH9qILIkC
PQQTAQoAJwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCVDXu9AUJC1XWXgAK
CRA7lqV4JIvcBy/iD/4iKYp4c4DQxh1EIFTrAcz4a23llLlBHSuaNzW6izHH8Zm4
SglVDZKQhhuFP5rLRHQaY01zlI+X3k0pbGTIKExUQxPUWfM0tsBvM27P+iJYrv26
1TbuRJ3Xw38Dzr1ZDxhbiZsHfHsCpj85btNzR1yp3Rib+PXj8jmryI9oFF+8x5U8
oEw5LqDlCvai6uBOvEw8B9Z5/ipT5K3Tbehh5cJWTA28cyZpHib1EF5EH2bS2vdI
FOAOVk0b4Y9nJKZu4uX6vRixYoJyaV+Hn0FMROi6vI4MYrrnztI5DPiwUwM1DcRH
CAqqVmqLo/eli6KG9qkk6eeP79SIDD8w98tiftWg9L8RoZnqURM17IFbqTQZxDcw
tR1E/9FMlUgOm6Z+oON6RLyp0K7+4NZCZDKlygzcS8U0qrIpUOcSeSO3BHMbkY/T
2x8EbYj4hk2raGSoBvsN5rV4OnKtMCZHYOqzUS2BDEDZ53cSDd3yeVKVpRJZG/wp
6Ak3BvEi8aszsZhtVl4cut6TxzAnzvTA/gJk5lbemK4R3wFAMMdsFhn0bb2UvfEN
7rmmSRVPJLxADUJ9XJQ2WF+EQF0V3kyEm/xtnAB+wZbY7POgB+pYW/6pA0PcvDGo
SayO2t9D5xZlyNSnS4za2bRRzHBYRh4rAwbUMgMos5Qo4jOSHMaxl4K02G/BZYhe
BBAWCgAGBQJUqefwAAoJEM/aD5s1lkIiKSgA/0x9ILSQg2JhsO75FqGWGlKcdwyi
h1f1SNQ0A+iisX/PAP45SQ2UnowHiZMn7L8pE/rsieuNAaeLljWtMLwc9MViDLQx
RHIgQW5kcmV3IEpvaG4gSHVnaGVzIDxnbnVfYW5kcmV3QG1lbWJlci5mc2Yub3Jn
PohGBBARCgAGBQJOg7WXAAoJEBQsJZGU79nYqjoAoK0jVQyFR5235jrr4QFfoAod
6QioAJ9V9GoGd9S6cO1bxDiCsExHBOw66IkCHAQQAQIABgUCU0WMbAAKCRDyhvFP
ZkhGgZzFEACygKs6qjnsra1SlIHmHITAcFANAEiCo//H9hlVKdN7dpZt6psZgiX5
+ZGSvrpWpQ/attsh7KstulfuGOw7a+6rDG1pHBvfozCt/nbFHwCwSmt65IKuDtrj
SaZsd+LD/BQ8dEVPWWLSVLaHwu2+kv9j1I7YlhwS1nfwyuplrcy8AgONOzvReUEo
w4I1tdmdLXBLUM1NIJ+QpilWBJZPeypBoz8CHmh+I8nBLZDYFgux83v6267iqdJI
CV8pyMDqunZE2ySu3ZHph79/mwPedKPaK8EfkHhMEG7WB51sw6QM0mSAQpVKTCNR
wXs5MrcShyKZ9uuPTTnjOgW+tUt0sj8ltxwPG5gWp4r6YA2Z2kR1nTbKFCCGpgF+
vK6CJX5R08Oei5GJZNXn8ch11fBWASF884YZ33vwIqsdVruUPM14mvABOix3+xVH
MD2er9kU2CKIaW+z5h9JmFOFkz08PxlL58HkRnZ3jw2sqxbYnSKWZc2v/QCuZwFm
/3S0wFn7T/tI84sx6OQ5NP+asULYB9wI3FwTvdiyPQWO3bORK32qWs/9rd6rGuI8
wpHvEQM50lis+4mUSYVZs/yOhYyPDG+APt7tp/UNPrhM3A785TDLRDe9ZoJkVUKk
spqJ0qn00fGbjJAnUvfUkzaUeBek1Gic5VNsMFozt8uQjWXO7p1ZJYkCPQQTAQoA
JwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCUHhmaQUJA9XmyQAKCRA7lqV4
JIvcBzV6D/wLaRYjbitzsrq7AaeCPEJy6Llp6n/9pKNrRm5AB1HJ7uAQkakk93O3
D+eVRiSC1IgLIOVhRg1xj2V051oAI7Gf1cjZbg+GbfWTGOUXAsrtOYe/PQlrG6HB
/frPLipN+D+kFMdhqrGGHi5Pa9VNepUxaKDwJ7UcYsSSvATcQbr110aYtIZxSLLO
MnVxpMTddOz5PPXYyP7ioWScJVRmniXEj1CwGxt37eiLvH0R3mGsCtTKr1rANt4l
riu4sElFwuKJPmMpFIsZqv/ePmHQrlEPQAlDhzAqmWzGyPG6ZhLr4hLU4KUUVi9j
tTbsmVlVAwb4YM8CNp98rR0YTZ7mOM3zHvadyV2kiMtED9qfihMTHYEpdnVdEpae
kmnG4SyOQ7bDyvO2NEfhWyRajnQyBRedmRaySwvjoLFxbGSBs9GX+LRycDsg+Yae
eD8D/m3kk6EuUUNJcKeSr6XFsQryN3fBmhunBeRSZYAUNQlB5NVG0jeh8MijCmUB
Zp5uTsJ3Kmaf5ZFFhc4U82ua3tIUzZED3QrnumynqdCunmCnIHvlFZzEx9U6PntL
A/JPmN+fE49DGv1jrcOVTa6yL9otuukG8t8edZ1UbeVJdIPDjnJfHB60p4yfOelJ
HC8V3EcfybtRn5gTnzDoJti8GWw3L2j7hyFsg6rXFQkTcd63oT0wAokCPQQTAQoA
JwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCUlQc4QUJBbGdPwAKCRA7lqV4
JIvcB9bSD/0fSkOIe2z9F/RytaHlQK7NahxxhTTrVFFTk/QvaChFio/JDRRpwefr
UVLaY/AUaAwFw3S6U18PfgzsmC5dR5xojFWqcg/3PVS1mTYZVQf/zkDrvNxnNCVh
0lplqFrpqnPv9GnE3AFFeXcM/DZz0U0UbDRzUo7wZJOYVOzyGnW1g+rmhslaLodO
6pak+kpEAjndRzqmZbJufzX5kOCXMHNA799YMYeiCuzoBu3Jg9QCafh4kknbdgIe
u4xLgiU25exSLkoIVScWChzbDuOFPSL5IzkuiSpjnCcZham40O8zMX8foGuyK6LN
h//KFb9wsPkuyWM0q8iFEnmAvjlX2HTfcVWRRv4EdWjB2I9soyPtOiisCXFrm6oX
kxCbktDVOayGGZL9jTAd8PYxoi2lPRGjhyzZe1pCmtHKNxsPy6IIODoCPR1GuWL6
LVsyq+o1OIR+Zw25P6LhWyMEWxnn3yQWl7G1O7dyyrpVv0e0AvdOXW85xq51ZXKd
IXgJX/tNqiZItHOD9I7HVO/OZaFFmDynqL+odkpr73nR5StCc157CAa+m2uTc4Cz
sJTWfnFszNtSV72afKVSXgGmcat7IvJZPNmPMRZiEpqSnGeMFJdPKLDDn9JVq6Pw
g2kWHjMR5mOuGd150CxAGP4XXRgNPwJf1b9Hp0bFm6Aafg71cS62pYkCPQQTAQoA
JwUCToOzFgIbAwUJAeEzgAULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRA7lqV4
JIvcB9qPD/9gq5WRbjrtQO7ZeojeM1WLGXAAIEUn3pSANogZIAl+jFBwxc85P30s
gd0EkqGSMaNt4uxPoS6OGPT64pzWZZs9AIxUftvJNss8NGg3ZKFKFtVKT+C3cKmc
5O06RpTZMTssMnBwLw/TyJ8MkhLB0frnWf1grgS/gIPTVMwBA/WJ3XA57wsIiU5p
sp2aVacnUioHstnJtrQsgYj78CUs1Ul36Vsor0zMxXCqqXkXXifoq8rCEDINPTGw
mlVRujQfslelTX/YAQFmhAJqxo+GiksYQVqkCBuE4Wsg3VYmqtwon1g8JuDDzVAH
lQPyy40kAabRg18NY8Luum0xvDjxEP/JNWADzcVRJx5rGHAYt5iyegQIp0R8qYr+
Uojbw9g2M52yO8qr7wRoYqZBhsshZ34BbeZyZiESHRbL00xoaHOeGJorjxmHHgnk
7lrW5jdW1RGwm/YjQTepOuzXegp7NLBp3eg2XVjK30hIo4FQ2I5mFDR2gUe/FFd8
EGYDndwCZptBRnkRnFgly2kJtI1t+ngk2snHKMMtUtaWrqB/QdVENMqx0M3MOT77
8I7AAn1jbMSvYufZ2O2n81gE/ul4arv/SKTV5zkHBjDp6morcsVThnQJCSOjF7oW
v1DqZpUwaZ3l43qt98yATx+0bFxYFW/+vajCqXRM981thoQ/FAO9MokCQAQTAQoA
KgIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUJC1XWXgUCVDXvZQIZAQAKCRA7
lqV4JIvcB3NjEACBylLaAIrU118k8wyT/BUs+F8spqm6omRAXM/4kmnguj1flRe4
5CF8yWx1nPxN9W8qUU6QIgcecVp9+WQg4f/htVUl6t3P6R13rjqvs9X3d4ZF67X0
HrobSvem0LQC2csD+wLBbZHVZFuo9gIhjZ4kI67ulmCCa7MmCP1JxRQ+vZve9O+Y
k4hvTBIqyXs4orVQ2rl3qU8AsUrZd++0aZk0OU2YP4Lkhi+ntlWV2JkSy/Eji1LI
PjwhFgeBq0mskblGGlCJLZ6xHg+pk2/O66i++6mjX2SLe2EnLh6DMxpmyoZKWJgz
yV4FUUliwhmHLSOOCHL2NDEcRuMtEMYlIugNHyOeKt+L19vrZVGOhLp1x+7omU6+
DDnuu6kZKOU8Ndqh1DQooaWMOX4e8WwRYxzsyYEXOk8Q30YIamyhLt41UHBz3QGJ
DhvpOnqqOgyPo8FPHRSdY/nIxAhZp1EiRRm1bU23QGdYochxRS7BKN78tadO+teg
NBHEPONpxwtFHlZkiQS8NWK93IsU5hEAorXJ0OeG5YNfh93A+kXMoCrngX1G3TC2
PANDvtWkeXVXpkWwLfLNoToGh2F8T0olbNcv4ROQFCL+5VuttBFfI8ISziizGStP
NjrQzop+jAUWZpMmgbTriQPK5HxNKjCN6Zrwf0RsLtN1Mz+guzoWLWE25YheBBAW
CgAGBQJUqefwAAoJEM/aD5s1lkIirOMA/1/+5NuDjjlunch4Bz8Q7eVjU/v7Kwio
tEUVf6cqSY5MAQDyYWcfrWskCJIBHfgIutDtp5XnHnQ31JKbyMu94IVGDokCPQQT
AQoAJwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCVDXu9AUJC1XWXgAKCRA7
lqV4JIvcB1y0D/9dBS4e6TM+HoO02mts6zzgyLC8JQv6Ux0boftEB3cw0SWG5ALy
XphCWyjt3XibVtN11IxNAWlshYbMfycSDWe+fWOQ0TFu1l54LQzuFsyJcUG+zDUd
/8SJaLc8uSuR14LbktIhe3tA0HX6qTXTKP/sQ+EE969v+dJW3mP0l30Zb1CNEc/7
PDnajAz85HFmF4M+YSF7ldPSAk3Il5Gipi0p66UmrEZIl7/Jrpr46TdKGAdNekYw
D0O800qw2BugH0XykOWD8a7a/Teo5vMThCr+FBfX6YMFaltot6HMsGFZAUwohc12
pn5G5Rst0msjmYMmDcFaDga4mo4F7NLemCwnJz+oquVcpK2X+1IMD8GrCjTvr1q4
PRfkdhVqoBG8rjMNSW3TbPTiX/9kYDepysiy6E60u/hTrGgzd+DzDAWU+RUvPlEs
0bYZ9NscAsv6x1/mLm7ALi/7ZOSFtyxgGDP9J6rocN36J7Vl/IGuDE1fToUfvfy1
zJ2RyA6UfDZdV0NQovYOQWW7Qa/kS4u6mfj+nuV8QUUMfrt06Mrw7MI37/XKnYrD
reRrabz77ZyUmRBHjuy0l+CPFs3V/RfucZim5vlUR8BJ5iJqy0hwD21uzgHz7wkz
Q90TFPPyhjXt5KdLtLr8RFfzeDyh/qzGqId4WBJkLI4sQCtxmbE/Cgz484heBBAW
CgAGBQJUqefwAAoJEM/aD5s1lkIiKSgA/0x9ILSQg2JhsO75FqGWGlKcdwyih1f1
SNQ0A+iisX/PAP45SQ2UnowHiZMn7L8pE/rsieuNAaeLljWtMLwc9MViDIheBBAW
CgAGBQJUqefwAAoJEM/aD5s1lkIi9n8BAJ8SX99LnGmxtIotrxQBWev2a0oYphuR
F+0Q1li0HOd+AP9TNJoauaUOMKR1WG5tbrKmtTlE3FdTSWiyX0/ogqpxC7kCDQRO
g7SJARAAnEmBK66XwkDrxuOsLhH003qWOEyqtnRYTTYq2NsBGICOD1lF4RmoBnx3
F07r3EP5AQ7KEQEF0iZ1UMFvSWQ6VkUfL6ZqQEEQX9zgXAsy7SH2vZs0ngC2yr05
hYjH9S8/53gY5TkOILaqBlxIrOju9RAApqiWeeLKQ9qU+7bhWSqcHAWcmEDw0BL6
V1GR8FR+vjfBtzcLWzCuMLI0AdDKtYT2bnIHHYo9MbkTLL1jWqd83KyHoNKjFcRZ
2IeqTQB6YYD5oCfDnsWPSO9DgiJ58dssqhZ2oxbvJSfYXW06to2xZm7n/7xZr3mC
YayG2m5QByjP7E2c7Bd+PN+iZGlIWUSkrLbNzHXzjAyN883avBPtUmYUOiH1EHDp
yoQDsumLXHKrFUtHmTC8vkkEDTvF1UPNAqEd4yKLM/mmXw7T+gkjp1Aw6xA/77gu
et10OIKGEQxmgjbWFrITEdurtYfhV8XQdMMOIYXZl//R88sK6A3Bc+IIWLSzsCqa
SBEfkH0fRiuhYANlB6+6wY1enbdz14wwJWbxAZZ22dk6SOpG1v+qQC7XKKan7bzU
Ekn/OWDRr2fjRnaujwqr9aQ/HWcK9ohdGS+fkqa3GGKEwBe/7j1Cpvr4q7iGwVPU
4qkdJmcCyC1VfP5N1FomxvxbYlmxWxIJ2FBh6ICoyq09l/znC9MAEQEAAYkCJQQY
AQoADwIbDAUCUlQdBwUJBbGb/gAKCRA7lqV4JIvcBwrgEACXJbS6vPAlko2oYG4V
EMp4C//U9GaX9jagh/XkJn/qRkw3fDAGee99pUR+DNnBDKOIjx14JqkSbPXZBrds
93Lw7/TB1jNh0MbwH9pe7QAv4Y1v11J8bEPtAfu8/XskjfLw4w4aHCU7cDS7Ey5F
mLjHuLzYXEJQkOsSl/qNyJ2jy8vXQdbVlHO2VZ670DTVnx/t8t+BgldpMElMePLt
h0l86OJHZuWcHWRKS+XRka/I1Ga3eWWtl6WiduqvYlaR7yKr5sGr9Q6+bBErFQbq
4MXehShteLZC2QMu/YuscaF8fqHtSUzQSSqIHfVNhNgHT9RO2Vb/K2IGxk2D8ha3
DO2uguvGhRa+blmCJ8SULt5uclw9942tPTLD6zhVdn9tHhT7K56bLnXDANoQNtSM
oXe0LdzbWDGyZhwAl6FClqmNTt+ggPTdtq15S0Meww5xIEaSdWndKS1kwKmSPg8K
KguKAvwQ09SL2KQ7cQR4aYdSUc0Keo5CVzouFmXSZIyvg5rItsAlqKI9CnkTOmt4
urRlvRPH1uYFgrtR078Yvky8dknbu/r4OnNGoPeaH73bn6XRoL2iS1fIB1kWll26
BT7CQE/WqKUFYPeodGH4HbcvZdp+ht/LZQ/wZvu2Bso5jWfMgu64YzfoOex5VMdk
c2JlwKea5ie7/ILA5sdi2CjroIkCJQQYAQoADwIbDAUCVDXu0QUJC1XUyAAKCRA7
lqV4JIvcBzWhD/9Go8YdZzpi/bc8JYQLnn5LfgmFNO9BbTtH3UtKi8LUGsXi+221
/A88qDT0ePzsLOB9voIrrlpc2Z+AI1YzvDU3Xs9yLNcfhneAmdJozP1FRg0nwT4d
vnK1JC3dDgsaQL/fCUmspzE7xbXdLOMRUN0AN5qHdoY7KUh1EFz8M9SF0CK+dDLx
K9O3FlJupAybVwXV43K1ZB1qhGZ4eDuTs3wsoWRRfTLKyYPS20ZNB2pZVHSORJO1
R45VwS2gXcNrIYxKQmZUUc3PNkxUfwJjprO8WUp5lP/nMZrDuMuQemiqWE8gdZC9
UvJ/OR3PyycE3B4F2dhuPUpRm+k9j7E1fMeWJpStFUVYn1kkcdADb1yjWECdKfOw
F9cifJ4Ot2AMnwQg8yywPLFOQ3cyddDkgJ/znQkvTcsAPCPrGONTsLdoThfirsBa
nZRXEiC6zibRA2uJewpRDQekTdOrOjC5CRrjKZeQdCyL01wy89txPxlIGyjv0T9U
N4Si5NGW9+5d7gfWGW+SYX3dtvxSWtPqIPHEEZnUS4unDcbp8jzzKPC9+KSA4B9I
l+HjQ7ApCs3F+nOoLX2O6Jph4J6kRC1OXUzkV9wXdmFOxLoYwrs0HGRaY4NGZmEt
9f6iPYC2q2WJ5TW5KaLok8Dj9soJFKNYkYJBdYLOPnAWi3xVtQgKU6KMdoheBBAW
CgAGBQJUqefwAAoJEM/aD5s1lkIiKSgA/0x9ILSQg2JhsO75FqGWGlKcdwyih1f1
SNQ0A+iisX/PAP45SQ2UnowHiZMn7L8pE/rsieuNAaeLljWtMLwc9MViDJkCDQRP
FvPHARAAt/1NYr1JG1NFJrIC8LX6Vraa9F2ss6BxQtmmmy12ork60EcCSe110Hbh
Qkg+pkoFGNTLAGzTm7XAZkpzZx1cuEPsDTm2kwp2Zxr8bPBuOYoCMOHt6KzGxYJo
+ClxvvfDxgN93/J36GOUkVhnMyd1t61eSPyHyomvFG20ubgu1KvUv55CRhAuz0Z3
ejSSdNyewU5yGVg9Twmju+BYeR4abOu1K/NZ2UzLpHs+C8pDXhaUNr2VuqvhDEC8
50XHB2bNpyepp27fBKy08RpbY4Zi/u4oveLBj3fm45zfjpCRYhCg47DBqWiK2Xuc
M1O0mlyYTRvJGjSkkfeWrZjurMrzQGRllegJ4BHwiqiW00/q4mEmFl3XwEjiVOUq
1L9GComeUql0oJGvBZajz7WvKVD6DTGH3YAa831U8sK1RMP4SHYCJVrOv8V/9Vpd
4qQA/vkEM0oQPAkl4TOpO7K4nt3MHlq6bz3fcJNFCNj+9rbHVd7EmyUl598hzsLJ
u0eF2bDenudsESqxDQRmA5a3LQEgaqydknyZWKVsHUJstTYdpORBnWpNmifKGA8H
TDFQEqp0QRh7c7x3GzHcuiA20GVW0YlXQbg1dIJOtOzXccVh9LjG8tFBK15N7Mna
UzMl3Mei0echY6Mcu52Ys4QHZzpgIB4ZiOQB/65mPk5XebQZ4AUAEQEAAbQfT21h
aXIgTWFqaWQgPG9tYWppZEByZWRoYXQuY29tPokCPgQTAQIAKAUCTxbzxwIbAwUJ
CWYBgAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ8obxT2ZIRoGRxA/+KHH8
uHz7zfayexZuUp2ZO56lPBIAvGucE9RHQfNx2B8rDU8t4OofMiwRGBiNYokF5tOQ
8sid75Q99+Iw9y2dqGNN/t0S4qFSWRewN0FHtXtOtYSjvjbROqT/mEsxBx6uKZck
Qwj/+4WtaRFfoprCERp2e/f5BHgCMED0gS9pcdEQ/XEMpUemND/jUAyEwz1rfPYn
65F6inR/s+vdB2eGhXm7rNhMnWukMVuqMi2rqTXmHTQQ/T/MgI8jPVtn/Z2nsrBK
saVDJtcipAX40/4DZbsGUmitlSEGD+SoQDEQSIqa1Mizr+7GG57MjRZcd1RQ5A80
dhzXYtmwsIDiQb6P69fs3IEz1M4LumQMcUMMFEBnDxyPm18iLEcy10WV4wBxsu/O
R7plBBa8BsvlNDz7Ymy8tShmjQBCmC9x0fDQmK4HkQi+IzQMWW6hPjjxreKhdToM
Pi3ALGbQ/2STUSbDWCH++iiqTHUXODBy+dQWrcJ7J2rtUhU5GjiJpYB9wbisz9lm
VNUuz68RRcSRf+2pSF7jjJojH7nDszxVtQxyGstxCXmUHw5aXj/HrS/3SOmd7eux
kD6MUbQdpvFp5ouAab9maWJ/SJDDly8YttIKXpzFdkiz3LlpafJPYNqU/JvjSR0Y
JY9ODsflP8HZKfZp4p2MLomGCiMi2O2LyDxpbVSJAhwEEAEKAAYFAlJUKYkACgkQ
O5aleCSL3AfeOw//d89BDWPJtDrFlgTRb7rqlXF5iTYyb2qziAvc02hLH8jRaM8R
CNCLiI+dSzgVUvzH5KpluY+vUaDrLdoAPsC/oK8yu8XOJ8x9nmN6jaj6IXnv6JEi
nhg6n0oyR87Kah5F2rW+HQSfWOrEiCGfg+g+VOoGrG7gPJfknT+cLppimVwBs2an
x5UfRSycnt7Fi1fpIBvQaPsm8yBDH0s5BbIgMI47C8ld0BhauHg2HgI63XJtn9VW
X+MnBjZ8CWT4p5oEz1P6/1MKaBawEEv7IoXA1aKAeGP//JzFcQlrRnHWhtEXyjKJ
X9VYYkcCWrzvsnNqldusU98g6YmzbXo34jY21Giy3i4ZJLZCbVKjsOOUPzkKluwF
cVyge4hJyCnuHLyiSRvia1MvvvyipIGzClE8WXKuiYdXdQcKFOey7Uuu7SUCA488
1veuKp2GknO3jeDYsbVDzQWhUi4t8wbnIRrgSi0li+2VER5QfQGU8D4IbEeO34gO
dN/W/kluoNtUxEKZ253NM0jy0pwM82qhUZL2ysccbH3RAPjEEUk/5mib+IfdsISV
QYBH4IxKP8PMvHNsTpMycckMfqIHEn8wzBh8BBmOcIzFc6axxVletalIhGDvBZPD
AzvHo1LeKPgi+bzKbLf7Og5R0zjm8C/9o+90i74B9szZmTbwGcfoHi90HG65Ag0E
TxbzxwEQAMZ2sFJV18vzKFgWvT1q5UMOgp12cnVa/SY2PUc5Pvcq1r2vWELgF9Wf
i94Q8LQA3jg1ACp+uUXy+xB/G1TbW4uuvCOmSKsuQ/KWO+GANvCpiDb/Yi4RsfEQ
XdKdx7lkwzrGpT/ufSRGaIrU5+Ca6rkz5qtTGWFITix0+M6KBtaZMK0vkJr/6nHj
DvRcbcNVpScVDXOR4eVQpWp5sI7RbnR5TRB9oNd6SXdNvbZ6IKxM7epA1Vt8ZWzR
eIQnec91JX9q+UFw+zth+xmOMhNlAo9UvIAgp/7LOWEjrfn8JADzez6TiC36TR5Z
qgxA1KSZ2L3lbaFKspxK7aMN9uTjTR1sxriOwr4UUqn9N7LfoPv1TPX7MfnGxUUh
QkDyBtbsngDKVapcPqu4TKTUeaadChDERcmuHsqChfUr+YAPgxp/wl8zjMgVtLJp
zs2CuL/ktCHlBUcsNRsVs+WXb5wONOk85cMIJkHijx3rdgKdLSi9861Yb0RcRDvz
XrO1vlYYQvIa+UAehUYiggFEoe8VX/orVQjPLzN1uktSgIEuwvI2UQStFP+YlSwX
QENuIzfiHg1GkRTEL4CblT4w14IOS4Zd0Dl+0gNvyoM7KaBnGN+f8g71FYKX1sjz
XlHc5HG14iqE2mYbXvoGI6ouGzbTVGgc7XD8MGfCgOqa2LBzf2qlABEBAAGJAiUE
GAECAA8FAk8W88cCGwwFCQlmAYAACgkQ8obxT2ZIRoG+lA//TwE/6iVoUFzvo23i
WIVNyFCF5PQ/7DjiQpy3eWHAc4lsrrgLuuNKq/jTS8zgP9I3R+HgD4mZkcKUYWsN
S4Tymml0HEZ4/tcd4i+V2dXDVY6I+UEhTjwHhMk0UbZyrmewx0v8x1BHawBgxRAy
gowJFq6pWDo+TNTm0cj+SY9ei/QYV1SGgu63ccbwpp13Oo4MggZbMsCDcF4jh8LU
81Gs93d0JsJYqLSkhuBlmbcyMdX9tjdvHJXHvvWFA+8c6cUHPuMCWeTYEkXgKXvU
+nqYKcOJ3fL1OtxoQAzvBQS0+bT1nx0RmVeS+M/jWXfhETd8JOryPqdqeuzv3YOB
Tmc23JpJF7QEcz3+KvnaOswiJHdIAOcWyPb3M+plNiqUpNRmEt/UUhf5xrTrodgP
qNk+JgWFCNuXyuHA1We1m54bs7XEiY31UG+2tEoX8LwgCTq39l5LAbxNh1NvZmZv
1OyPvXYA4T15n+LRq/Hy7et+pg9Yz4bC5D1U28Py1HzHGmUzZ+5L6gpdHO4AgAef
teSOBuuRLLUnZ6ze8BzbwLPESPR1lOdW81MDcPag/Fem9wCPfIuzPXK3XkBMHLWg
aWpEZcGK34eVw45bO6ZryeCt4lXfOSACyd6vzRpFZT+BqxISIlQZLK5Qw9+3Cihy
gbyBLL+UQ5Va6C3g+5XlmPbPbZmYMwRUqeTZFgkrBgEEAdpHDwEBB0BkGF2H3iaQ
2nuPeM7K6tiO4JrwFgyTXAOmHC8hCqISWrQqQW5kcmV3IEpvaG4gSHVnaGVzIDxn
bnUuYW5kcmV3QHJlZGhhdC5jb20+iIIEExYKACoCGwMFCQHhM4AFCwkIBwMFFQoJ
CAsFFgIDAQACHgECF4AFAlSp6CgCGQEACgkQz9oPmzWWQiLBHQEAnpfs+9Cf2QDG
LFf6t78FmVHpWDvfjm7zmQW1eH/90zABALot8z6e6VgU7B9kSv6safCfYZBMrmS9
ppm3zrkEkDQHiQIcBBABCgAGBQJUqehcAAoJEDuWpXgki9wH9eEQAJL5WyZ/Az7D
TA4UbdY9pSUn2QUkellG3pfqKx7dXKzSQkzSwkvURccfb2nVwUK3hblIasX7q+Ez
57OlSpA1+wXOC6qEjGwfoQGBPYXUkf0pGrnjH9VVPN7b6ZcAjxyqDFSSpyb03Vi6
2U4NzAJkwDIvOL4yaNIMlIfkJ4sUKppTuDE4fw+Z/UPKSLArFW75/RSACpJC43qO
CjcMGEczIUjZNDw7Mlhric81EBISL2Jc1cEJRzo2QVPZ6KPxwAdsDRiwwX1JWHJd
ImhnG0sYYU5h+cJsUHwUqj6rnW/lNsHVUSByZQMHuvobUi1N9YoOBp/i0BXmQoRF
Ui2xdPVLnly00ptjvKEvBQl3xde4ts+FECYiOyeprPUlCpHEOqxHrY6FCrEfJbhQ
2L1QHzycGU+RJpTFf3xa5X+Ttq2RSULxMSIbTBFxjYBnh8reqMzqn1zQjrARwI6N
NnoBPD9PWJmGcQVnl8/lQYPmqQw4QJYNU6djFlMN0hwGoWcogKAhrgbZYB+y+7/0
oORMPTdE7Ufu53Q+vUDBHG8x6CN1rDNSKOwM3oQXIxHMLiVcsOZ1jd3xJ4aZNnVU
a/TeeRoUOh1kwPKX31tPTBV/G272CyK3UU7R4WLvJ9lcux6k0Z41YN+JYFLG6Yx9
DxcTfgYIl6WGPKRoXRRpgO1CGvd7PS+7iIIEExYKACoCGwMFCwkIBwMFFQoJCAsF
FgIDAQACHgECF4ACGQEFAlZV9+wFCQONRpMACgkQz9oPmzWWQiJaGgD7B9h73UGc
mdq/HJl3B1NC64EiapLUPUl28s/EOgqAiSkBAOo4EK6vRy7W953sztAti9y5Mcb8
9Mn0qe8yn1Dx7/gEtDhBbmRyZXcgSm9obiBIdWdoZXMgKEVDQyBLZXkpIDxnbnVf
YW5kcmV3QG1lbWJlci5mc2Yub3JnPoh/BBMWCgAnBQJUqeTZAhsDBQkB4TOABQsJ
CAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEM/aD5s1lkIi5AkA/3W2ahvwPylfvzk5
6ZlLDurEvNbEtozzWQxyzAV6A0IJAQCxo/vHVkKu+WrqJZxykvoDxQmJmyhXfkYc
HPa/lQ7EA4kCHAQQAQoABgUCVKnoYgAKCRA7lqV4JIvcB7CpD/41HVWaTNAC9w6N
rv20vxF4fSxOE0YClWjxBcA4i7KH/JivDd+XeNRKB9QH9CFN1TL/Ep2JZetZJCLc
xZvpRDOkfo74C5gSkE1wNEhvA6zD4vRsvE7uNQPd7/HdeVEpZj7iyp71LaSIkwgY
Va2BQNMGMFeBoV/7pf26GqZql+g0ruea+53lzVce5xTvuGb4LaCyoylLsVUzyq58
cTVANQrDM3Hgwi+NrK8fmFzPFxj2eJdf1HBVlewLeyH5kDjnMDyIaXK7q9g0Uigr
A9J7S++IU040HLDMnUEyX6jZGhhue/PdMe0ekVzXupt1NB4ev4JKUt1aOXBeNfO8
tbLlgUGqVLdPsOWmWUyTE33UT7Z/WAIsnzgJwR1B8eRUmbzeEg6cHRbI8cMbxswm
GseskxmVMcLMMARdfoc1+Tjgqo8IEJcOcoxdVQu3E8iAT/GYRgq8qsPMejwoWh5w
5283NbFOYLmBlw87ZRRaxaZ8lkw8kQKT1ZprZn+BB1uDbi1fXEO9KvS2q1ayOvMb
eXAEF6PusJgl2cYqk/BFg0v35wmygushnD3skNo6Y1b1nOQNnxSUVA5O1O3inyw1
KaO+hC/KW/vp5TfaCWdjZrs/+Z8nODxXIIl+SWMX+lo6EzAXfGmfDNCUKcON58DU
eLBgiuMdnhF12gl1cA1ie/yo5NgyoIh/BBMWCgAnAhsDBQsJCAcDBRUKCQgLBRYC
AwEAAh4BAheABQJWVffsBQkDjUaTAAoJEM/aD5s1lkIiHKABANAhXTOKuOn45uF5
riqsXkcQrMrng5e/8iPC9uTYCSGZAP9oJ5x+BohiIxgkjE/ZbuRe14w/m0VtC17x
Z5j2pc+dCQ==
=/e2U
-----END PGP PUBLIC KEY BLOCK-----
++++++ jaxp.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxp-f1202fb27695/.hgtags new/jaxp-bc6edb6c12a7/.hgtags
--- old/jaxp-f1202fb27695/.hgtags 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxp-bc6edb6c12a7/.hgtags 2016-01-18 16:52:13.000000000 +0100
@@ -647,3 +647,7 @@
4e264c1f6b2f335e0068608e9ec4c312cddde7a4 icedtea-2.6.2pre02
e95e9042c8f31c5fe3149afdbe114592a3e32e91 jdk7u91-b00
9f5bcd95c8d54f8cf5ab922b0b9e94f7ea6cdeb8 jdk7u91-b01
+f1202fb276950491aa1ed30e214351d235c94920 icedtea-2.6.2
+6d9a192976332443bb3be46d49d5b255d9781fe9 jdk7u91-b02
+f7bf82fcbd098bc520ceb92f97890ee6f7da3506 icedtea-2.6.3
+7c422316234f10b327fdbc181aedd5e74f31fd38 jdk7u95-b00
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxp-f1202fb27695/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java
--- old/jaxp-f1202fb27695/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java 2016-01-18 16:52:13.000000000 +0100
@@ -1362,7 +1362,7 @@
{ "optionE", " [-E (Entit\u00E4tsreferenzen nicht einblenden)]"},
{ "optionV", " [-E (Entit\u00E4tsreferenzen nicht einblenden)]"},
{ "optionQC", " [-QC (Stille Musterkonfliktwarnungen)]"},
- { "optionQ", " [-Q (Stiller Modus)]"},
+ { "optionQ", " [-Q (Silent-Modus)]"},
{ "optionLF", " [-LF (Nur Zeilenvorsch\u00FCbe bei Ausgabe verwenden {Standard ist CR/LF})]"},
{ "optionCR", " [-CR (Nur Zeilenschaltungen bei Ausgabe verwenden {Standard ist CR/LF})]"},
{ "optionESCAPE", " [-ESCAPE (Escapezeichen {Standard ist <>&\"'\r\n}]"},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxp-f1202fb27695/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java
--- old/jaxp-f1202fb27695/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java 2016-01-18 16:52:13.000000000 +0100
@@ -1213,7 +1213,7 @@
"Le nom de fonction ne peut pas \u00EAtre NULL."},
{ ER_XPATH_RESOLVER_NEGATIVE_ARITY,
- "Le nombre d'arguments ne peut pas \u00EAtre n\u00E9gatif."},
+ "L'arit\u00E9 ne peut pas \u00EAtre n\u00E9gative."},
// Warnings...
{ WG_FOUND_CURLYBRACE,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxp-f1202fb27695/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java
--- old/jaxp-f1202fb27695/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java 2016-01-18 16:52:13.000000000 +0100
@@ -932,9 +932,9 @@
//Check if FSP and SM - only then proceed with loading
if (namespace != null && isSecureProcessing
&& isExtensionFunctionEnabled
- && (namespace.equals(JAVA_EXT_XALAN)
- || namespace.equals(JAVA_EXT_XSLTC)
- || namespace.equals(JAVA_EXT_XALAN_OLD)
+ && (namespace.startsWith(JAVA_EXT_XALAN)
+ || namespace.startsWith(JAVA_EXT_XSLTC)
+ || namespace.startsWith(JAVA_EXT_XALAN_OLD)
|| namespace.startsWith(XALAN_CLASSPACKAGE_NAMESPACE))) {
_clazz = getXSLTC().loadExternalFunction(_className);
} else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxp-f1202fb27695/src/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java
--- old/jaxp-f1202fb27695/src/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java 2016-01-18 16:52:13.000000000 +0100
@@ -332,7 +332,7 @@
new Object[]{entityName});
}
}
- fEntityManager.startEntity(false, entityName, true);
+ fEntityManager.startEntity(true, entityName, true);
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxp-f1202fb27695/src/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java
--- old/jaxp-f1202fb27695/src/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java 2016-01-18 16:52:13.000000000 +0100
@@ -905,7 +905,7 @@
}
int length = fCurrentEntity.position - offset;
fCurrentEntity.columnNumber += length - newlines;
- if (fCurrentEntity.reference) {
+ if (fCurrentEntity.isGE) {
checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
}
content.setValues(fCurrentEntity.ch, offset, length);
@@ -1052,6 +1052,9 @@
}
int length = fCurrentEntity.position - offset;
fCurrentEntity.columnNumber += length - newlines;
+ if (fCurrentEntity.isGE) {
+ checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
+ }
content.setValues(fCurrentEntity.ch, offset, length);
// return next character
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxp-f1202fb27695/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java
--- old/jaxp-f1202fb27695/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java 2016-01-18 16:52:13.000000000 +0100
@@ -1105,7 +1105,7 @@
/**
* Starts a named entity.
*
- * @param reference flag to indicate whether the entity is an Entity Reference.
+ * @param isGE flag to indicate whether the entity is a General Entity
* @param entityName The name of the entity to start.
* @param literal True if this entity is started within a literal
* value.
@@ -1113,7 +1113,7 @@
* @throws IOException Thrown on i/o error.
* @throws XNIException Thrown by entity handler to signal an error.
*/
- public void startEntity(boolean reference, String entityName, boolean literal)
+ public void startEntity(boolean isGE, String entityName, boolean literal)
throws IOException, XNIException {
// was entity declared?
@@ -1237,7 +1237,7 @@
}
// start the entity
- startEntity(reference, entityName, xmlInputSource, literal, external);
+ startEntity(isGE, entityName, xmlInputSource, literal, external);
} // startEntity(String,boolean)
@@ -1286,7 +1286,7 @@
* This method can be used to insert an application defined XML
* entity stream into the parsing stream.
*
- * @param reference flag to indicate whether the entity is an Entity Reference.
+ * @param isGE flag to indicate whether the entity is a General Entity
* @param name The name of the entity.
* @param xmlInputSource The input source of the entity.
* @param literal True if this entity is started within a
@@ -1296,12 +1296,12 @@
* @throws IOException Thrown on i/o error.
* @throws XNIException Thrown by entity handler to signal an error.
*/
- public void startEntity(boolean reference, String name,
+ public void startEntity(boolean isGE, String name,
XMLInputSource xmlInputSource,
boolean literal, boolean isExternal)
throws IOException, XNIException {
- String encoding = setupCurrentEntity(reference, name, xmlInputSource, literal, isExternal);
+ String encoding = setupCurrentEntity(isGE, name, xmlInputSource, literal, isExternal);
//when entity expansion limit is set by the Application, we need to
//check for the entity expansion limit set by the parser, if number of entity
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxp-f1202fb27695/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java
--- old/jaxp-f1202fb27695/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java 2016-01-18 16:52:13.000000000 +0100
@@ -1038,7 +1038,7 @@
}
int length = fCurrentEntity.position - offset;
fCurrentEntity.columnNumber += length - newlines;
- if (fCurrentEntity.reference) {
+ if (fCurrentEntity.isGE) {
checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
}
@@ -1215,6 +1215,9 @@
}
int length = fCurrentEntity.position - offset;
fCurrentEntity.columnNumber += length - newlines;
+ if (fCurrentEntity.isGE) {
+ checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
+ }
content.setValues(fCurrentEntity.ch, offset, length);
// return next character
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxp-f1202fb27695/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java
--- old/jaxp-f1202fb27695/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxp-bc6edb6c12a7/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java 2016-01-18 16:52:13.000000000 +0100
@@ -947,7 +947,7 @@
new Object[]{entityName});
}
}
- fEntityManager.startEntity(false, entityName, true);
+ fEntityManager.startEntity(true, entityName, true);
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxp-f1202fb27695/src/com/sun/xml/internal/stream/Entity.java new/jaxp-bc6edb6c12a7/src/com/sun/xml/internal/stream/Entity.java
--- old/jaxp-f1202fb27695/src/com/sun/xml/internal/stream/Entity.java 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxp-bc6edb6c12a7/src/com/sun/xml/internal/stream/Entity.java 2016-01-18 16:52:13.000000000 +0100
@@ -344,8 +344,8 @@
// to know that prolog is read
public boolean xmlDeclChunkRead = false;
- // flag to indicate whether the Entity is an Entity Reference
- public boolean reference = false;
+ // flag to indicate whether the Entity is a General Entity
+ public boolean isGE = false;
/** returns the name of the current encoding
* @return current encoding name
@@ -391,11 +391,11 @@
//
/** Constructs a scanned entity. */
- public ScannedEntity(boolean reference, String name,
+ public ScannedEntity(boolean isGE, String name,
XMLResourceIdentifier entityLocation,
InputStream stream, Reader reader,
String encoding, boolean literal, boolean mayReadChunks, boolean isExternal) {
- this.reference = reference;
+ this.isGE = isGE;
this.name = name ;
this.entityLocation = entityLocation;
this.stream = stream;
++++++ jaxws.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jaxws-14c411b1183c/.hgtags new/jaxws-271b555de438/.hgtags
--- old/jaxws-14c411b1183c/.hgtags 2015-10-21 04:15:31.000000000 +0200
+++ new/jaxws-271b555de438/.hgtags 2016-01-18 16:52:15.000000000 +0100
@@ -646,3 +646,7 @@
e8660c5ef3e5cce19f4459009e69270c52629312 icedtea-2.6.2pre02
8206da0912d36f48b023f983c0a3bd9235c33c12 jdk7u91-b00
3862008078f83ca7f7c669b1b9d1f0f2e256aad8 jdk7u91-b01
+14c411b1183cb5ef628c39cecae460a86357d24b icedtea-2.6.2
+2230b8f8e03a8eaefc83acb577f30c4de88c45a7 jdk7u91-b02
+39ef53b9c4030cde1ced8232f94b143968f4d22e icedtea-2.6.3
+3427b35ce5a1a0143b4aedf3f5e0a1953ad7fd7f jdk7u95-b00
++++++ jdk.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_7_0-openjdk/jdk.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_7_0-openjdk.new/jdk.tar.bz2 differ: char 11, line 1
++++++ langtools.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/langtools-73356b81c5c7/.hgtags new/langtools-fd0a34cb97b4/.hgtags
--- old/langtools-73356b81c5c7/.hgtags 2015-10-21 04:15:32.000000000 +0200
+++ new/langtools-fd0a34cb97b4/.hgtags 2016-01-18 16:52:45.000000000 +0100
@@ -646,3 +646,7 @@
d627a940b6ca8fb4353f844e4f91163a3dcde0bc icedtea-2.6.2pre02
2741575d96f3985d41de8ebe1ba7fae8afbb0fde jdk7u91-b00
1a9e2dcc91dc3d0c103b09c478b3ac31ac45733f jdk7u91-b01
+73356b81c5c773a29729ae3b641516e0ac4a015d icedtea-2.6.2
+08e99c45e470ce8b87875c1cbe78ac2f341555a3 jdk7u91-b02
+91fdb0c83e50c398bee5f0550600d20650f2a6ef icedtea-2.6.3
+3c71abf7435352aee6e74ba2581274181ad3d17e jdk7u95-b00
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/langtools-73356b81c5c7/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java new/langtools-fd0a34cb97b4/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java
--- old/langtools-73356b81c5c7/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java 2015-10-21 04:15:32.000000000 +0200
+++ new/langtools-fd0a34cb97b4/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java 2016-01-18 16:52:45.000000000 +0100
@@ -120,12 +120,14 @@
* Returns the flags of a ClassSymbol in terms of javac's flags
*/
static long getFlags(ClassSymbol clazz) {
- while (true) {
- try {
- return clazz.flags();
- } catch (CompletionFailure ex) {
- // quietly ignore completion failures
- }
+ try {
+ return clazz.flags();
+ } catch (CompletionFailure ex) {
+ /* Quietly ignore completion failures and try again - the type
+ * for which the CompletionFailure was thrown shouldn't be completed
+ * again by the completer that threw the CompletionFailure.
+ */
+ return getFlags(clazz);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/langtools-73356b81c5c7/src/share/classes/com/sun/tools/javadoc/MethodDocImpl.java new/langtools-fd0a34cb97b4/src/share/classes/com/sun/tools/javadoc/MethodDocImpl.java
--- old/langtools-73356b81c5c7/src/share/classes/com/sun/tools/javadoc/MethodDocImpl.java 2015-10-21 04:15:32.000000000 +0200
+++ new/langtools-fd0a34cb97b4/src/share/classes/com/sun/tools/javadoc/MethodDocImpl.java 2016-01-18 16:52:45.000000000 +0100
@@ -128,7 +128,7 @@
t.tag == TypeTags.CLASS;
t = env.types.supertype(t)) {
ClassSymbol c = (ClassSymbol)t.tsym;
- for (Scope.Entry e = c.members().lookup(sym.name); e.scope != null; e = e.next()) {
+ for (Scope.Entry e = membersOf(c).lookup(sym.name); e.scope != null; e = e.next()) {
if (sym.overrides(e.sym, origin, env.types, true)) {
return TypeMaker.getType(env, t);
}
@@ -160,7 +160,7 @@
t.tag == TypeTags.CLASS;
t = env.types.supertype(t)) {
ClassSymbol c = (ClassSymbol)t.tsym;
- for (Scope.Entry e = c.members().lookup(sym.name); e.scope != null; e = e.next()) {
+ for (Scope.Entry e = membersOf(c).lookup(sym.name); e.scope != null; e = e.next()) {
if (sym.overrides(e.sym, origin, env.types, true)) {
return env.getMethodDoc((MethodSymbol)e.sym);
}
@@ -169,6 +169,19 @@
return null;
}
+ /**Retrieve members of c, ignoring any CompletionFailures that occur. */
+ private Scope membersOf(ClassSymbol c) {
+ try {
+ return c.members();
+ } catch (CompletionFailure cf) {
+ /* Quietly ignore completion failures and try again - the type
+ * for which the CompletionFailure was thrown shouldn't be completed
+ * again by the completer that threw the CompletionFailure.
+ */
+ return membersOf(c);
+ }
+ }
+
/**
* Tests whether this method overrides another.
* The overridden method may be one declared in a superclass or
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/langtools-73356b81c5c7/src/share/classes/com/sun/tools/javadoc/TypeMaker.java new/langtools-fd0a34cb97b4/src/share/classes/com/sun/tools/javadoc/TypeMaker.java
--- old/langtools-73356b81c5c7/src/share/classes/com/sun/tools/javadoc/TypeMaker.java 2015-10-21 04:15:32.000000000 +0200
+++ new/langtools-fd0a34cb97b4/src/share/classes/com/sun/tools/javadoc/TypeMaker.java 2016-01-18 16:52:45.000000000 +0100
@@ -29,6 +29,7 @@
import com.sun.tools.javac.code.Symbol;
import com.sun.tools.javac.code.Symbol.ClassSymbol;
+import com.sun.tools.javac.code.Symbol.CompletionFailure;
import com.sun.tools.javac.code.Type;
import com.sun.tools.javac.code.Type.ClassType;
import com.sun.tools.javac.code.Type.TypeVar;
@@ -44,12 +45,25 @@
return getType(env, t, true);
}
+ public static com.sun.javadoc.Type getType(DocEnv env, Type t,
+ boolean errToClassDoc) {
+ try {
+ return getTypeImpl(env, t, errToClassDoc);
+ } catch (CompletionFailure cf) {
+ /* Quietly ignore completion failures and try again - the type
+ * for which the CompletionFailure was thrown shouldn't be completed
+ * again by the completer that threw the CompletionFailure.
+ */
+ return getType(env, t, errToClassDoc);
+ }
+ }
+
/**
* @param errToClassDoc if true, ERROR type results in a ClassDoc;
* false preserves legacy behavior
*/
@SuppressWarnings("fallthrough")
- public static com.sun.javadoc.Type getType(DocEnv env, Type t,
+ private static com.sun.javadoc.Type getTypeImpl(DocEnv env, Type t,
boolean errToClassDoc) {
if (env.legacyDoclet) {
t = env.types.erasure(t);
++++++ openjdk.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/icedtea7-forest-2-6-601ca7147b8c/.hgtags new/icedtea7-forest-2-6-4f1e498cad9c/.hgtags
--- old/icedtea7-forest-2-6-601ca7147b8c/.hgtags 2015-10-21 04:15:30.000000000 +0200
+++ new/icedtea7-forest-2-6-4f1e498cad9c/.hgtags 2016-01-18 16:52:07.000000000 +0100
@@ -644,3 +644,7 @@
d27c76db0808b7a59313916e9880deded3368ed2 icedtea-2.6.2pre02
63d687368ce5bca36efbe48db2cf26df171b162d jdk7u91-b00
03b03194afbe87a049a1c6d83f49788602c363d8 jdk7u91-b01
+601ca7147b8c551d394ad97b6288b01c9e763ea4 icedtea-2.6.2
+2be0ab1a24b2b6910d8f31e3314ffa48f30f21df jdk7u91-b02
+f0e7f22f09ef0ddd583eb8ce9a14edcccfa4f7ea icedtea-2.6.3
+a28bc539342e4ca724a5abd2521c6a58f04c2113 jdk7u95-b00
1
0
Hello community,
here is the log from the commit of package opera for openSUSE:Factory:NonFree checked in at 2016-01-28 17:25:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/opera (Old)
and /work/SRC/openSUSE:Factory:NonFree/.opera.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opera"
Changes:
--------
--- /work/SRC/openSUSE:Factory:NonFree/opera/opera.changes 2016-01-16 11:57:25.000000000 +0100
+++ /work/SRC/openSUSE:Factory:NonFree/.opera.new/opera.changes 2016-01-28 17:28:19.000000000 +0100
@@ -1,0 +2,7 @@
+Sun Jan 24 11:52:06 UTC 2016 - kieltux(a)gmail.com
+
+- Update to 34.0.2036.50:
+ * [Linux] Netflix will not play
+ * Browser hangs, without crash when using Turbo
+
+-------------------------------------------------------------------
Old:
----
opera-stable_34.0.2036.47_amd64.deb
New:
----
opera-stable_34.0.2036.50_amd64.deb
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ opera.spec ++++++
--- /var/tmp/diff_new_pack.fWAV0j/_old 2016-01-28 17:28:21.000000000 +0100
+++ /var/tmp/diff_new_pack.fWAV0j/_new 2016-01-28 17:28:21.000000000 +0100
@@ -17,7 +17,7 @@
Name: opera
-Version: 34.0.2036.47
+Version: 34.0.2036.50
Release: 0
Summary: Proprietary web browser
License: SUSE-NonFree
1
0
Hello community,
here is the log from the commit of package kdesvn for openSUSE:Factory checked in at 2016-01-28 17:25:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdesvn (Old)
and /work/SRC/openSUSE:Factory/.kdesvn.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdesvn"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdesvn/kdesvn.changes 2015-10-12 10:03:31.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdesvn.new/kdesvn.changes 2016-01-28 17:26:01.000000000 +0100
@@ -1,0 +2,12 @@
+Thu Jan 28 13:34:00 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Only recommend the kio_svn instead of require it. On Tumbleweed
+ the kio_svn is not building due to upstream changes of SVN itself.
+
+-------------------------------------------------------------------
+Tue Dec 29 12:34:00 UTC 2015 - opensuse.lietuviu.kalba(a)gmail.com
+
+- Added KDE-BUG-357297-Run-ssh-add-every-time.patch, fix
+ running ssh-add every time (kde#357297).
+
+-------------------------------------------------------------------
New:
----
KDE-BUG-357297-Run-ssh-add-every-time.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdesvn.spec ++++++
--- /var/tmp/diff_new_pack.Ca4lzc/_old 2016-01-28 17:26:02.000000000 +0100
+++ /var/tmp/diff_new_pack.Ca4lzc/_new 2016-01-28 17:26:02.000000000 +0100
@@ -30,12 +30,14 @@
Patch1: fix_crash_when_getting_logs.patch
# PATCH-FIX_UPSTREAM let-kdelibs-create-uninstall-target.patch -- fix build when CMake's CMP002 policy is set to NEW (with kdelibs4 >= 4.14.11)
Patch2: let-kdelibs-create-uninstall-target.patch
+# PATCH-FIX_UPSTREAM kde#357297
+Patch3: KDE-BUG-357297-Run-ssh-add-every-time.patch
BuildRequires: fdupes
BuildRequires: libkde4-devel
BuildRequires: openldap2-devel
BuildRequires: sqlite3-devel
BuildRequires: subversion-devel
-Requires: kio_svn
+Recommends: kio_svn
Provides: kde4-kdesvn = %{version}
Obsoletes: kde4-kdesvn < %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -66,6 +68,7 @@
%patch0 -p0
%patch1 -p1
%patch2 -p1
+%patch3 -p1
%build
%cmake_kde4 -d build
++++++ KDE-BUG-357297-Run-ssh-add-every-time.patch ++++++
diff --git a/src/helpers/sshagent.cpp b/src/helpers/sshagent.cpp
index 7c69b03..2fc3eae 100644
--- a/src/helpers/sshagent.cpp
+++ b/src/helpers/sshagent.cpp
@@ -124,7 +124,7 @@ bool SshAgent::addSshIdentities(bool force)
}
- if( !m_isRunning || (!m_isOurAgent&&!force)) {
+ if( !m_isRunning) {
return false;
}
1
0
Hello community,
here is the log from the commit of package lightdm-kde-greeter for openSUSE:Factory checked in at 2016-01-28 17:25:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lightdm-kde-greeter (Old)
and /work/SRC/openSUSE:Factory/.lightdm-kde-greeter.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lightdm-kde-greeter"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lightdm-kde-greeter/lightdm-kde-greeter.changes 2015-08-01 11:37:43.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.lightdm-kde-greeter.new/lightdm-kde-greeter.changes 2016-01-28 17:26:00.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Jan 28 13:06:04 CEST 2016 - tittiatcoke(a)gmail.com
+
+- Drop the requires on kdebase4-workspace-branding. This is no
+ longer available in Tumbleweed.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lightdm-kde-greeter.spec ++++++
--- /var/tmp/diff_new_pack.vwzE4n/_old 2016-01-28 17:26:01.000000000 +0100
+++ /var/tmp/diff_new_pack.vwzE4n/_new 2016-01-28 17:26:01.000000000 +0100
@@ -31,7 +31,6 @@
BuildRequires: lightdm-qt-devel >= 1.4.0
BuildRequires: update-alternatives
BuildRequires: pkgconfig(QtGui)
-Requires: kdebase4-workspace-branding = %{_kde_branding_version}
Requires: lightdm >= 1.4.0
Provides: lightdm-greeter = %{version}
Recommends: %{name}-lang = %{version}
1
0
Hello community,
here is the log from the commit of package keepalived for openSUSE:Factory checked in at 2016-01-28 17:25:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/keepalived (Old)
and /work/SRC/openSUSE:Factory/.keepalived.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "keepalived"
Changes:
--------
--- /work/SRC/openSUSE:Factory/keepalived/keepalived.changes 2015-10-20 00:05:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.keepalived.new/keepalived.changes 2016-01-28 17:25:59.000000000 +0100
@@ -1,0 +2,11 @@
+Thu Jan 28 12:13:36 UTC 2016 - mrueckert(a)suse.de
+
+- use package name buildrequires on sle11 to fix building
+
+-------------------------------------------------------------------
+Thu Jan 28 11:46:11 UTC 2016 - mrueckert(a)suse.de
+
+- enable snmp for better monitoring
+- enable sha1 support
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ keepalived.spec ++++++
--- /var/tmp/diff_new_pack.gnRLhV/_old 2016-01-28 17:26:00.000000000 +0100
+++ /var/tmp/diff_new_pack.gnRLhV/_new 2016-01-28 17:26:00.000000000 +0100
@@ -33,9 +33,15 @@
Source1: keepalived.service
Source2: keepalive-rpmlintrc
Patch1: keepalive-init.patch
+BuildRequires: net-snmp-devel
+BuildRequires: snmp-mibs
BuildRequires: openssl-devel
BuildRequires: pkgconfig
+%if 0%{?suse_version} > 1110
BuildRequires: pkgconfig(libnl-3.0)
+%else
+BuildRequires: libnl-devel
+%endif
# BuildRequires: netsnmp-devel
BuildRequires: popt-devel
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
@@ -71,7 +77,7 @@
%build
export STRIP=true
export CFLAGS="%optflags -DOPENSSL_NO_SSL_INTERN"
-%configure
+%configure --enable-snmp --enable-sha1
make %{?_smp_mflags}
%install
@@ -126,6 +132,8 @@
%{_mandir}/man1/genhash.1.gz
%{_mandir}/man5/keepalived.conf.5.gz
%{_mandir}/man8/keepalived.8.gz
+%{_datadir}/snmp/mibs/KEEPALIVED-MIB
+%{_datadir}/snmp/mibs/VRRP-MIB
%if %{with systemd}
%{_unitdir}/%name.service
%else
@@ -135,6 +143,6 @@
/var/adm/fillup-templates/sysconfig.%{name}
%doc AUTHOR ChangeLog CONTRIBUTORS COPYING README
%doc doc/samples/
-%doc doc/keepalived.conf.SYNOPSIS doc/KEEPALIVED-MIB doc/NOTE_vrrp_vmac.txt
+%doc doc/keepalived.conf.SYNOPSIS doc/NOTE_vrrp_vmac.txt
%changelog
1
0
Hello community,
here is the log from the commit of package mysql-community-server for openSUSE:Factory checked in at 2016-01-28 17:25:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mysql-community-server (Old)
and /work/SRC/openSUSE:Factory/.mysql-community-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mysql-community-server"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mysql-community-server/mysql-community-server.changes 2015-12-03 13:31:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.mysql-community-server.new/mysql-community-server.changes 2016-01-28 17:25:57.000000000 +0100
@@ -1,0 +2,15 @@
+Tue Jan 26 18:54:20 UTC 2016 - kstreitova(a)suse.com
+
+- update to 5.6.28
+ * changes
+ http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-28.html
+ * fixed CVEs:
+ CVE-2016-0546, CVE-2016-0504, CVE-2016-0505, CVE-2016-0594,
+ CVE-2016-0595, CVE-2016-0503, CVE-2016-0596, CVE-2016-0502,
+ CVE-2016-0597, CVE-2016-0611, CVE-2016-0598, CVE-2016-0600,
+ CVE-2016-0610, CVE-2016-0606, CVE-2016-0608, CVE-2016-0607,
+ CVE-2015-7744, CVE-2016-0605, CVE-2016-0609
+ * fix [bnc#962779], [bnc#959724]
+- refresh mysql-community-server-5.6.12-upgrade-datadir.patch
+
+-------------------------------------------------------------------
Old:
----
mysql-5.6.27.tar.gz
New:
----
mysql-5.6.28.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mysql-community-server.spec ++++++
--- /var/tmp/diff_new_pack.wf6MYX/_old 2016-01-28 17:25:59.000000000 +0100
+++ /var/tmp/diff_new_pack.wf6MYX/_new 2016-01-28 17:25:59.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package mysql-community-server
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -44,7 +44,7 @@
%define with_cassandra 0
%endif
Name: mysql-community-server
-Version: 5.6.27
+Version: 5.6.28
Release: 0
Summary: Server part of %{pretty_name}
License: SUSE-GPL-2.0-with-FLOSS-exception
++++++ configuration-tweaks.tar.bz2 ++++++
++++++ mysql-5.6.27.tar.gz -> mysql-5.6.28.tar.gz ++++++
/work/SRC/openSUSE:Factory/mysql-community-server/mysql-5.6.27.tar.gz /work/SRC/openSUSE:Factory/.mysql-community-server.new/mysql-5.6.28.tar.gz differ: char 5, line 1
++++++ mysql-patches.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mysql-patches/mysql-patches/mysql-community-server-5.6.12-upgrade-datadir.patch new/mysql-patches/mysql-patches/mysql-community-server-5.6.12-upgrade-datadir.patch
--- old/mysql-patches/mysql-patches/mysql-community-server-5.6.12-upgrade-datadir.patch 2015-06-16 13:03:35.000000000 +0200
+++ new/mysql-patches/mysql-patches/mysql-community-server-5.6.12-upgrade-datadir.patch 2016-01-26 19:44:51.000000000 +0100
@@ -10,7 +10,7 @@
===================================================================
--- client/mysql_upgrade.c.orig
+++ client/mysql_upgrade.c
-@@ -582,21 +582,37 @@ static int extract_variable_from_show(DY
+@@ -583,21 +583,37 @@ static int extract_variable_from_show(DY
static int get_upgrade_info_file_name(char* name)
{
@@ -58,7 +58,7 @@
fn_format(name, "mysql_upgrade_info", name, "", MYF(0));
DBUG_PRINT("exit", ("name: %s", name));
-@@ -1009,7 +1025,7 @@ int main(int argc, char **argv)
+@@ -1016,7 +1032,7 @@ int main(int argc, char **argv)
Read the mysql_upgrade_info file to check if mysql_upgrade
already has been run for this installation of MySQL
*/
@@ -67,15 +67,29 @@
{
printf("This installation of MySQL is already upgraded to %s, "
"use --force if you still need to run mysql_upgrade\n",
-@@ -1030,9 +1046,9 @@ int main(int argc, char **argv)
- */
- if ((!opt_systables_only &&
- (run_mysqlcheck_mysql_db_fixnames() || run_mysqlcheck_mysql_db_upgrade())) ||
-- run_sql_fix_privilege_tables() ||
- (!opt_systables_only &&
-- (run_mysqlcheck_fixnames() || run_mysqlcheck_upgrade())))
-+ (run_mysqlcheck_fixnames() || run_mysqlcheck_upgrade()))
-+ || run_sql_fix_privilege_tables())
+@@ -1048,12 +1064,6 @@ int main(int argc, char **argv)
+ "mysql db");
+ }
+ }
+- if (run_sql_fix_privilege_tables())
+- {
+- /* Specific error msg (if present) would be printed in the function call
+- * above */
+- die("Upgrade failed");
+- }
+ if (!opt_systables_only)
{
- /*
- The upgrade failed to complete in some way or another,
+ if (run_mysqlcheck_fixnames())
+@@ -1067,6 +1077,12 @@ int main(int argc, char **argv)
+ "all db(s) except mysql");
+ }
+ }
++ if (run_sql_fix_privilege_tables())
++ {
++ /* Specific error msg (if present) would be printed in the function call
++ * above */
++ die("Upgrade failed");
++ }
+ verbose("OK");
+
+ /* Create a file indicating upgrade has been performed */
1
0
Hello community,
here is the log from the commit of package armadillo for openSUSE:Factory checked in at 2016-01-28 17:25:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/armadillo (Old)
and /work/SRC/openSUSE:Factory/.armadillo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "armadillo"
Changes:
--------
--- /work/SRC/openSUSE:Factory/armadillo/armadillo.changes 2016-01-03 13:27:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.armadillo.new/armadillo.changes 2016-01-28 17:25:54.000000000 +0100
@@ -1,0 +2,11 @@
+Wed Jan 27 23:28:38 UTC 2016 - badshah400(a)gmail.com
+
+- Update to version 6.500.4 (Gourmet Electron Jumper):
+ + Added conv2() for 2D convolution.
+ + Added stand-alone kmeans() function for clustering data.
+ + Added trunc().
+ + Extended conv() to optionally provide central convolution.
+ + Faster handling of multiply-and-accumulate by accu() when
+ using Intel MKL, ATLAS or OpenBLAS.
+
+-------------------------------------------------------------------
Old:
----
armadillo-6.400.2.tar.gz
New:
----
armadillo-6.500.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ armadillo.spec ++++++
--- /var/tmp/diff_new_pack.sedCsD/_old 2016-01-28 17:25:55.000000000 +0100
+++ /var/tmp/diff_new_pack.sedCsD/_new 2016-01-28 17:25:55.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package armadillo
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%define soname libarmadillo6
Name: armadillo
-Version: 6.400.2
+Version: 6.500.4
Release: 0
Summary: Fast C++ matrix library with interfaces to LAPACK and ATLAS
License: MPL-2.0
++++++ armadillo-6.400.2.tar.gz -> armadillo-6.500.4.tar.gz ++++++
++++ 11282 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libvirt for openSUSE:Factory checked in at 2016-01-28 17:25:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt (Old)
and /work/SRC/openSUSE:Factory/.libvirt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt/libvirt.changes 2016-01-01 19:50:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libvirt.new/libvirt.changes 2016-01-28 17:25:52.000000000 +0100
@@ -1,0 +2,18 @@
+Sat Jan 23 01:19:22 UTC 2016 - jfehlig(a)suse.com
+
+- qemu: set /usr/share/qemu/ovmf-x86_64-ms-{code,vars}.bin as
+ default UEFI firmwares for x86_64
+ bsc#961853
+
+-------------------------------------------------------------------
+Mon Jan 18 18:30:52 UTC 2016 - jfehlig(a)suse.com
+
+- Update to libvirt 1.3.1
+ - CVE-2015-5313
+ - Many incremental improvements and bug fixes, see
+ http://libvirt.org/news.html
+ - Dropped patches: 034e47c3-CVE-2015-5313.patch,
+ ace1ee22-qemuxml2argv-test.patch, add-with-login-shell.patch,
+ virt-aa-helper-rw-mounts.patch
+
+-------------------------------------------------------------------
Old:
----
034e47c3-CVE-2015-5313.patch
ace1ee22-qemuxml2argv-test.patch
add-with-login-shell.patch
libvirt-1.3.0.tar.gz
libvirt-1.3.0.tar.gz.asc
virt-aa-helper-rw-mounts.patch
New:
----
libvirt-1.3.1.tar.gz
libvirt-1.3.1.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvirt.spec ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libvirt
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -215,6 +215,11 @@
%endif
%endif
+# Advertise OVMF for >= 13.1
+%if 0%{?suse_version} >= 1310
+ %define with_loader_nvram --with-loader-nvram="/usr/share/qemu/ovmf-x86_64-ms-code.bin:/usr/share/qemu/ovmf-x86_64-ms-vars.bin"
+%endif
+
%if %{with_macvtap}
%define with_libnl 1
%endif
@@ -240,7 +245,7 @@
Name: libvirt
Url: http://libvirt.org/
-Version: 1.3.0
+Version: 1.3.1
Release: 0
Summary: Library providing a simple virtualization API
License: LGPL-2.1+
@@ -453,11 +458,7 @@
Source4: libvirtd-relocation-server.fw
Source99: baselibs.conf
# Upstream patches
-Patch0: 034e47c3-CVE-2015-5313.patch
-Patch1: ace1ee22-qemuxml2argv-test.patch
# Patches pending upstream review
-Patch100: add-with-login-shell.patch
-Patch101: virt-aa-helper-rw-mounts.patch
# Need to go upstream
Patch150: xen-pv-cdrom.patch
Patch151: blockcopy-check-dst-identical-device.patch
@@ -973,10 +974,6 @@
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
-%patch100 -p1
-%patch101 -p1
%patch150 -p1
%patch151 -p1
%patch152 -p1
@@ -1204,6 +1201,7 @@
--libexecdir=%{_libdir}/%{name} \
--with-qemu-user=%{qemu_user} \
--with-qemu-group=%{qemu_group} \
+ %{?with_loader_nvram} \
--without-login-shell \
%{init_scripts} \
ac_cv_path_MODPROBE=/sbin/modprobe \
@@ -1214,10 +1212,7 @@
%install
%makeinstall SYSTEMD_UNIT_DIR=%{_unitdir} DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name}
-for i in object-events dominfo domsuspend hellolibvirt openauth xml/nwfilter systemtap domtop rename
-do
- (cd examples/$i ; make clean ; rm -rf .deps .libs Makefile Makefile.in)
-done
+make -C examples distclean
cp examples/lxcconvert/virt-lxc-convert $RPM_BUILD_ROOT%{_bindir}
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
%if %{with_wireshark}
++++++ apparmor-fixes.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.3.0/examples/apparmor/libvirt-qemu
+Index: libvirt-1.3.1/examples/apparmor/libvirt-qemu
===================================================================
---- libvirt-1.3.0.orig/examples/apparmor/libvirt-qemu
-+++ libvirt-1.3.0/examples/apparmor/libvirt-qemu
+--- libvirt-1.3.1.orig/examples/apparmor/libvirt-qemu
++++ libvirt-1.3.1/examples/apparmor/libvirt-qemu
@@ -143,6 +143,9 @@
# for restore
/bin/bash rmix,
++++++ apparmor-no-mount.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.3.0/examples/apparmor/libvirt-lxc
+Index: libvirt-1.3.1/examples/apparmor/libvirt-lxc
===================================================================
---- libvirt-1.3.0.orig/examples/apparmor/libvirt-lxc
-+++ libvirt-1.3.0/examples/apparmor/libvirt-lxc
+--- libvirt-1.3.1.orig/examples/apparmor/libvirt-lxc
++++ libvirt-1.3.1/examples/apparmor/libvirt-lxc
@@ -2,39 +2,15 @@
#include <abstractions/base>
++++++ blockcopy-check-dst-identical-device.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -11,11 +11,11 @@
src/qemu/qemu_driver.c | 7 +++++++
1 file changed, 7 insertions(+)
-Index: libvirt-1.3.0/src/qemu/qemu_driver.c
+Index: libvirt-1.3.1/src/qemu/qemu_driver.c
===================================================================
---- libvirt-1.3.0.orig/src/qemu/qemu_driver.c
-+++ libvirt-1.3.0/src/qemu/qemu_driver.c
-@@ -16728,6 +16728,15 @@ qemuDomainBlockCopyCommon(virDomainObjPt
+--- libvirt-1.3.1.orig/src/qemu/qemu_driver.c
++++ libvirt-1.3.1/src/qemu/qemu_driver.c
+@@ -16698,6 +16698,15 @@ qemuDomainBlockCopyCommon(virDomainObjPt
_("non-file destination not supported yet"));
goto endjob;
}
++++++ libvirt-1.3.0.tar.gz -> libvirt-1.3.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/libvirt/libvirt-1.3.0.tar.gz /work/SRC/openSUSE:Factory/.libvirt.new/libvirt-1.3.1.tar.gz differ: char 13, line 1
++++++ libvirt-guests-init-script.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,23 +1,25 @@
Adjust libvirt-guests init files to conform to SUSE standards
-Index: libvirt-1.3.0/tools/libvirt-guests.init.in
+Index: libvirt-1.3.1/tools/libvirt-guests.init.in
===================================================================
---- libvirt-1.3.0.orig/tools/libvirt-guests.init.in
-+++ libvirt-1.3.0/tools/libvirt-guests.init.in
-@@ -3,15 +3,15 @@
- # the following is the LSB init header
+--- libvirt-1.3.1.orig/tools/libvirt-guests.init.in
++++ libvirt-1.3.1/tools/libvirt-guests.init.in
+@@ -4,27 +4,27 @@
+ # http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-gen…
#
### BEGIN INIT INFO
-# Provides: libvirt-guests
+-# Default-Start: 3 4 5
+-# Default-Stop: 0 1 2 6
-# Required-Start: libvirtd
-# Required-Stop: libvirtd
--# Default-Start: 2 3 4 5
--# Default-Stop: 0 1 6
+# Provides: libvirt-guests
+# Required-Start: $network $remote_fs libvirtd
+# Required-Stop: $network $remote_fs libvirtd
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 4 6
+ # Should-Start:
+ # Should-Stop:
# Short-Description: suspend/resume libvirt guests on shutdown/boot
-# Description: This is a script for suspending active libvirt guests
-# on shutdown and resuming them on next boot
@@ -28,10 +30,25 @@
### END INIT INFO
# the following is chkconfig init header
-Index: libvirt-1.3.0/tools/libvirt-guests.sh.in
+ #
+-# libvirt-guests: suspend/resume libvirt guests on shutdown/boot
++# libvirt-guests: suspend/resume libvirt guests on shutdown/boot
+ #
+-# chkconfig: 345 99 01
+-# description: This is a script for suspending active libvirt guests \
+-# on shutdown and resuming them on next boot \
+-# See http://libvirt.org
++# chkconfig: 345 99 01
++# description: This is a script for suspending active libvirt guests \
++# on shutdown and resuming them on next boot \
++# See http://libvirt.org
+ #
+
+ exec @libexecdir@/libvirt-guests.sh "$@"
+Index: libvirt-1.3.1/tools/libvirt-guests.sh.in
===================================================================
---- libvirt-1.3.0.orig/tools/libvirt-guests.sh.in
-+++ libvirt-1.3.0/tools/libvirt-guests.sh.in
+--- libvirt-1.3.1.orig/tools/libvirt-guests.sh.in
++++ libvirt-1.3.1/tools/libvirt-guests.sh.in
@@ -16,14 +16,13 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
@@ -191,10 +208,10 @@
esac
-exit $RETVAL
+rc_exit
-Index: libvirt-1.3.0/tools/libvirt-guests.sysconf
+Index: libvirt-1.3.1/tools/libvirt-guests.sysconf
===================================================================
---- libvirt-1.3.0.orig/tools/libvirt-guests.sysconf
-+++ libvirt-1.3.0/tools/libvirt-guests.sysconf
+--- libvirt-1.3.1.orig/tools/libvirt-guests.sysconf
++++ libvirt-1.3.1/tools/libvirt-guests.sysconf
@@ -1,19 +1,29 @@
+## Path: System/Virtualization/libvirt-guests
+
++++++ libvirt-power8-models.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.3.0/src/cpu/cpu_map.xml
+Index: libvirt-1.3.1/src/cpu/cpu_map.xml
===================================================================
---- libvirt-1.3.0.orig/src/cpu/cpu_map.xml
-+++ libvirt-1.3.0/src/cpu/cpu_map.xml
+--- libvirt-1.3.1.orig/src/cpu/cpu_map.xml
++++ libvirt-1.3.1/src/cpu/cpu_map.xml
@@ -1424,6 +1424,16 @@
<pvr value='0x004d0000' mask='0xffff0000'/>
</model>
++++++ libvirt-suse-netcontrol.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,8 +1,8 @@
-Index: libvirt-1.3.0/configure.ac
+Index: libvirt-1.3.1/configure.ac
===================================================================
---- libvirt-1.3.0.orig/configure.ac
-+++ libvirt-1.3.0/configure.ac
-@@ -242,6 +242,7 @@ LIBVIRT_CHECK_FUSE
+--- libvirt-1.3.1.orig/configure.ac
++++ libvirt-1.3.1/configure.ac
+@@ -246,6 +246,7 @@ LIBVIRT_CHECK_FUSE
LIBVIRT_CHECK_GLUSTER
LIBVIRT_CHECK_HAL
LIBVIRT_CHECK_NETCF
@@ -10,7 +10,7 @@
LIBVIRT_CHECK_NUMACTL
LIBVIRT_CHECK_OPENWSMAN
LIBVIRT_CHECK_PCIACCESS
-@@ -2495,11 +2496,12 @@ if test "$with_libvirtd" = "no" ; then
+@@ -2507,11 +2508,12 @@ if test "$with_libvirtd" = "no" ; then
with_interface=no
fi
@@ -26,7 +26,7 @@
esac
if test "$with_interface" = "yes" ; then
-@@ -2893,6 +2895,7 @@ LIBVIRT_RESULT_FUSE
+@@ -2890,6 +2892,7 @@ LIBVIRT_RESULT_FUSE
LIBVIRT_RESULT_GLUSTER
LIBVIRT_RESULT_HAL
LIBVIRT_RESULT_NETCF
@@ -34,11 +34,11 @@
LIBVIRT_RESULT_NUMACTL
LIBVIRT_RESULT_OPENWSMAN
LIBVIRT_RESULT_PCIACCESS
-Index: libvirt-1.3.0/src/Makefile.am
+Index: libvirt-1.3.1/src/Makefile.am
===================================================================
---- libvirt-1.3.0.orig/src/Makefile.am
-+++ libvirt-1.3.0/src/Makefile.am
-@@ -922,6 +922,10 @@ if WITH_NETCF
+--- libvirt-1.3.1.orig/src/Makefile.am
++++ libvirt-1.3.1/src/Makefile.am
+@@ -923,6 +923,10 @@ if WITH_NETCF
INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_netcf.c
endif WITH_NETCF
@@ -49,7 +49,7 @@
if WITH_UDEV
INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_udev.c
-@@ -1547,6 +1551,10 @@ if WITH_NETCF
+@@ -1548,6 +1552,10 @@ if WITH_NETCF
libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
endif WITH_NETCF
@@ -60,11 +60,11 @@
if WITH_UDEV
libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
-Index: libvirt-1.3.0/tools/virsh.c
+Index: libvirt-1.3.1/tools/virsh.c
===================================================================
---- libvirt-1.3.0.orig/tools/virsh.c
-+++ libvirt-1.3.0/tools/virsh.c
-@@ -588,6 +588,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
+--- libvirt-1.3.1.orig/tools/virsh.c
++++ libvirt-1.3.1/tools/virsh.c
+@@ -589,6 +589,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
vshPrint(ctl, " Interface");
# if defined(WITH_NETCF)
vshPrint(ctl, " netcf");
@@ -73,10 +73,10 @@
# elif defined(WITH_UDEV)
vshPrint(ctl, " udev");
# endif
-Index: libvirt-1.3.0/src/interface/interface_backend_netcf.c
+Index: libvirt-1.3.1/src/interface/interface_backend_netcf.c
===================================================================
---- libvirt-1.3.0.orig/src/interface/interface_backend_netcf.c
-+++ libvirt-1.3.0/src/interface/interface_backend_netcf.c
+--- libvirt-1.3.1.orig/src/interface/interface_backend_netcf.c
++++ libvirt-1.3.1/src/interface/interface_backend_netcf.c
@@ -23,7 +23,12 @@
#include <config.h>
@@ -160,10 +160,10 @@
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
return -1;
if (virRegisterStateDriver(&interfaceStateDriver) < 0)
-Index: libvirt-1.3.0/src/interface/interface_driver.c
+Index: libvirt-1.3.1/src/interface/interface_driver.c
===================================================================
---- libvirt-1.3.0.orig/src/interface/interface_driver.c
-+++ libvirt-1.3.0/src/interface/interface_driver.c
+--- libvirt-1.3.1.orig/src/interface/interface_driver.c
++++ libvirt-1.3.1/src/interface/interface_driver.c
@@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0)
return 0;
@@ -181,10 +181,10 @@
if (udevIfaceRegister() == 0)
return 0;
#endif /* WITH_UDEV */
-Index: libvirt-1.3.0/m4/virt-netcontrol.m4
+Index: libvirt-1.3.1/m4/virt-netcontrol.m4
===================================================================
--- /dev/null
-+++ libvirt-1.3.0/m4/virt-netcontrol.m4
++++ libvirt-1.3.1/m4/virt-netcontrol.m4
@@ -0,0 +1,35 @@
+dnl The libnetcontrol library
+dnl
++++++ libvirtd-defaults.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.3.0/daemon/libvirtd.conf
+Index: libvirt-1.3.1/daemon/libvirtd.conf
===================================================================
---- libvirt-1.3.0.orig/daemon/libvirtd.conf
-+++ libvirt-1.3.0/daemon/libvirtd.conf
+--- libvirt-1.3.1.orig/daemon/libvirtd.conf
++++ libvirt-1.3.1/daemon/libvirtd.conf
@@ -18,8 +18,8 @@
# It is necessary to setup a CA and issue server certificates before
# using this capability.
@@ -13,10 +13,10 @@
# Listen for unencrypted TCP connections on the public TCP/IP port.
# NB, must pass the --listen flag to the libvirtd process for this to
-Index: libvirt-1.3.0/daemon/libvirtd-config.c
+Index: libvirt-1.3.1/daemon/libvirtd-config.c
===================================================================
---- libvirt-1.3.0.orig/daemon/libvirtd-config.c
-+++ libvirt-1.3.0/daemon/libvirtd-config.c
+--- libvirt-1.3.1.orig/daemon/libvirtd-config.c
++++ libvirt-1.3.1/daemon/libvirtd-config.c
@@ -242,7 +242,7 @@ daemonConfigNew(bool privileged ATTRIBUT
if (VIR_ALLOC(data) < 0)
return NULL;
@@ -26,10 +26,10 @@
data->listen_tcp = 0;
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
-Index: libvirt-1.3.0/daemon/test_libvirtd.aug.in
+Index: libvirt-1.3.1/daemon/test_libvirtd.aug.in
===================================================================
---- libvirt-1.3.0.orig/daemon/test_libvirtd.aug.in
-+++ libvirt-1.3.0/daemon/test_libvirtd.aug.in
+--- libvirt-1.3.1.orig/daemon/test_libvirtd.aug.in
++++ libvirt-1.3.1/daemon/test_libvirtd.aug.in
@@ -2,7 +2,7 @@ module Test_libvirtd =
::CONFIG::
++++++ libvirtd-init-script.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,9 +1,9 @@
Adjust libvirtd sysconfig file to conform to SUSE standards
-Index: libvirt-1.3.0/daemon/libvirtd.sysconf
+Index: libvirt-1.3.1/daemon/libvirtd.sysconf
===================================================================
---- libvirt-1.3.0.orig/daemon/libvirtd.sysconf
-+++ libvirt-1.3.0/daemon/libvirtd.sysconf
+--- libvirt-1.3.1.orig/daemon/libvirtd.sysconf
++++ libvirt-1.3.1/daemon/libvirtd.sysconf
@@ -1,16 +1,25 @@
+## Path: System/Virtualization/libvirt
+
++++++ libvirtd-systemd-socket.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -9,10 +9,10 @@
See bsc#933043
-Index: libvirt-1.3.0/daemon/libvirtd.socket.in
+Index: libvirt-1.3.1/daemon/libvirtd.socket.in
===================================================================
---- libvirt-1.3.0.orig/daemon/libvirtd.socket.in
-+++ libvirt-1.3.0/daemon/libvirtd.socket.in
+--- libvirt-1.3.1.orig/daemon/libvirtd.socket.in
++++ libvirt-1.3.1/daemon/libvirtd.socket.in
@@ -2,10 +2,8 @@
ListenStream=@runstatedir@/libvirt/libvirt-sock
ListenStream=@runstatedir@/libvirt/libvirt-sock-ro
++++++ lxc-wait-after-eth-del.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -13,10 +13,10 @@
src/lxc/lxc_process.c | 1 +
3 files changed, 4 insertions(+)
-Index: libvirt-1.3.0/src/lxc/lxc_controller.c
+Index: libvirt-1.3.1/src/lxc/lxc_controller.c
===================================================================
---- libvirt-1.3.0.orig/src/lxc/lxc_controller.c
-+++ libvirt-1.3.0/src/lxc/lxc_controller.c
+--- libvirt-1.3.1.orig/src/lxc/lxc_controller.c
++++ libvirt-1.3.1/src/lxc/lxc_controller.c
@@ -2002,6 +2002,7 @@ static int virLXCControllerDeleteInterfa
if (virNetDevVethDelete(ctrl->veths[i]) < 0)
ret = -1;
@@ -25,11 +25,11 @@
return ret;
}
-Index: libvirt-1.3.0/src/lxc/lxc_driver.c
+Index: libvirt-1.3.1/src/lxc/lxc_driver.c
===================================================================
---- libvirt-1.3.0.orig/src/lxc/lxc_driver.c
-+++ libvirt-1.3.0/src/lxc/lxc_driver.c
-@@ -4254,6 +4254,7 @@ lxcDomainAttachDeviceNetLive(virConnectP
+--- libvirt-1.3.1.orig/src/lxc/lxc_driver.c
++++ libvirt-1.3.1/src/lxc/lxc_driver.c
+@@ -4257,6 +4257,7 @@ lxcDomainAttachDeviceNetLive(virConnectP
case VIR_DOMAIN_NET_TYPE_BRIDGE:
case VIR_DOMAIN_NET_TYPE_NETWORK:
ignore_value(virNetDevVethDelete(veth));
@@ -37,7 +37,7 @@
break;
case VIR_DOMAIN_NET_TYPE_DIRECT:
-@@ -4681,6 +4682,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
+@@ -4684,6 +4685,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
virDomainAuditNet(vm, detach, NULL, "detach", false);
goto cleanup;
}
@@ -45,10 +45,10 @@
break;
/* It'd be nice to support this, but with macvlan
-Index: libvirt-1.3.0/src/lxc/lxc_process.c
+Index: libvirt-1.3.1/src/lxc/lxc_process.c
===================================================================
---- libvirt-1.3.0.orig/src/lxc/lxc_process.c
-+++ libvirt-1.3.0/src/lxc/lxc_process.c
+--- libvirt-1.3.1.orig/src/lxc/lxc_process.c
++++ libvirt-1.3.1/src/lxc/lxc_process.c
@@ -221,6 +221,7 @@ static void virLXCProcessCleanup(virLXCD
}
networkReleaseActualDevice(vm->def, iface);
++++++ ppc64le-canonical-name.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -2,10 +2,10 @@
See bnc#894956
-Index: libvirt-1.3.0/src/util/virarch.c
+Index: libvirt-1.3.1/src/util/virarch.c
===================================================================
---- libvirt-1.3.0.orig/src/util/virarch.c
-+++ libvirt-1.3.0/src/util/virarch.c
+--- libvirt-1.3.1.orig/src/util/virarch.c
++++ libvirt-1.3.1/src/util/virarch.c
@@ -169,6 +169,8 @@ virArch virArchFromHost(void)
arch = VIR_ARCH_I686;
} else if (STREQ(ut.machine, "amd64")) {
++++++ qemu-apparmor-screenshot.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.3.0/examples/apparmor/libvirt-qemu
+Index: libvirt-1.3.1/examples/apparmor/libvirt-qemu
===================================================================
---- libvirt-1.3.0.orig/examples/apparmor/libvirt-qemu
-+++ libvirt-1.3.0/examples/apparmor/libvirt-qemu
+--- libvirt-1.3.1.orig/examples/apparmor/libvirt-qemu
++++ libvirt-1.3.1/examples/apparmor/libvirt-qemu
@@ -152,6 +152,9 @@
/sys/bus/ r,
/sys/class/ r,
++++++ support-managed-pci-xen-driver.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -8,11 +8,11 @@
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 15 deletions(-)
-Index: libvirt-1.3.0/src/xenconfig/xen_common.c
+Index: libvirt-1.3.1/src/xenconfig/xen_common.c
===================================================================
---- libvirt-1.3.0.orig/src/xenconfig/xen_common.c
-+++ libvirt-1.3.0/src/xenconfig/xen_common.c
-@@ -403,6 +403,8 @@ xenParsePCI(virConfPtr conf, virDomainDe
+--- libvirt-1.3.1.orig/src/xenconfig/xen_common.c
++++ libvirt-1.3.1/src/xenconfig/xen_common.c
+@@ -393,6 +393,8 @@ xenParsePCI(virConfPtr conf, virDomainDe
{
virConfValuePtr list = virConfGetValue(conf, "pci");
virDomainHostdevDefPtr hostdev = NULL;
@@ -21,7 +21,7 @@
if (list && list->type == VIR_CONF_LIST) {
list = list->list;
-@@ -424,6 +426,11 @@ xenParsePCI(virConfPtr conf, virDomainDe
+@@ -414,6 +416,11 @@ xenParsePCI(virConfPtr conf, virDomainDe
/* pci=['0000:00:1b.0','0000:00:13.0'] */
if (!(key = list->str))
goto skippci;
@@ -33,7 +33,7 @@
if (!(nextkey = strchr(key, ':')))
goto skippci;
if (virStrncpy(domain, key, (nextkey - key), sizeof(domain)) == NULL) {
-@@ -467,10 +474,31 @@ xenParsePCI(virConfPtr conf, virDomainDe
+@@ -457,10 +464,31 @@ xenParsePCI(virConfPtr conf, virDomainDe
goto skippci;
if (virStrToLong_i(func, NULL, 16, &funcID) < 0)
goto skippci;
@@ -66,11 +66,11 @@
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
hostdev->source.subsys.u.pci.addr.domain = domainID;
hostdev->source.subsys.u.pci.addr.bus = busID;
-Index: libvirt-1.3.0/src/xenconfig/xen_sxpr.c
+Index: libvirt-1.3.1/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-1.3.0.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-1.3.0/src/xenconfig/xen_sxpr.c
-@@ -999,6 +999,7 @@ xenParseSxprPCI(virDomainDefPtr def,
+--- libvirt-1.3.1.orig/src/xenconfig/xen_sxpr.c
++++ libvirt-1.3.1/src/xenconfig/xen_sxpr.c
+@@ -1060,6 +1060,7 @@ xenParseSxprPCI(virDomainDefPtr def,
int busID;
int slotID;
int funcID;
@@ -78,7 +78,7 @@
node = cur->u.s.car;
if (!sexpr_lookup(node, "dev"))
-@@ -1046,11 +1047,13 @@ xenParseSxprPCI(virDomainDefPtr def,
+@@ -1107,11 +1108,13 @@ xenParseSxprPCI(virDomainDefPtr def,
goto error;
}
@@ -93,7 +93,7 @@
dev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
dev->source.subsys.u.pci.addr.domain = domainID;
dev->source.subsys.u.pci.addr.bus = busID;
-@@ -2013,11 +2016,15 @@ static void
+@@ -1976,11 +1979,15 @@ static void
xenFormatSxprPCI(virDomainHostdevDefPtr def,
virBufferPtr buf)
{
@@ -110,7 +110,7 @@
}
-@@ -2036,12 +2043,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP
+@@ -1999,12 +2006,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP
virBufferPtr buf,
int detach)
{
@@ -123,7 +123,7 @@
virBufferAddLit(buf, "(pci ");
xenFormatSxprPCI(def, buf);
if (detach)
-@@ -2096,12 +2097,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def,
+@@ -2059,12 +2060,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def,
for (i = 0; i < def->nhostdevs; i++) {
if (def->hostdevs[i]->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
def->hostdevs[i]->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) {
++++++ suse-qemu-conf.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.3.0/src/qemu/qemu.conf
+Index: libvirt-1.3.1/src/qemu/qemu.conf
===================================================================
---- libvirt-1.3.0.orig/src/qemu/qemu.conf
-+++ libvirt-1.3.0/src/qemu/qemu.conf
+--- libvirt-1.3.1.orig/src/qemu/qemu.conf
++++ libvirt-1.3.1/src/qemu/qemu.conf
@@ -201,11 +201,20 @@
# isolation, but it cannot appear in a list of drivers.
#
++++++ systemd-service-xen.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.3.0/daemon/libvirtd.service.in
+Index: libvirt-1.3.1/daemon/libvirtd.service.in
===================================================================
---- libvirt-1.3.0.orig/daemon/libvirtd.service.in
-+++ libvirt-1.3.0/daemon/libvirtd.service.in
+--- libvirt-1.3.1.orig/daemon/libvirtd.service.in
++++ libvirt-1.3.1/daemon/libvirtd.service.in
@@ -7,6 +7,7 @@ After=iscsid.service
After=apparmor.service
After=local-fs.target
++++++ virtlockd-init-script.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,9 +1,9 @@
Adjust virtlockd init files to conform to SUSE standards
-Index: libvirt-1.3.0/src/locking/virtlockd.sysconf
+Index: libvirt-1.3.1/src/locking/virtlockd.sysconf
===================================================================
---- libvirt-1.3.0.orig/src/locking/virtlockd.sysconf
-+++ libvirt-1.3.0/src/locking/virtlockd.sysconf
+--- libvirt-1.3.1.orig/src/locking/virtlockd.sysconf
++++ libvirt-1.3.1/src/locking/virtlockd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlockd
+
@@ -12,22 +12,28 @@
#
# Pass extra arguments to virtlockd
#VIRTLOCKD_ARGS=
-Index: libvirt-1.3.0/src/locking/virtlockd.init.in
+Index: libvirt-1.3.1/src/locking/virtlockd.init.in
===================================================================
---- libvirt-1.3.0.orig/src/locking/virtlockd.init.in
-+++ libvirt-1.3.0/src/locking/virtlockd.init.in
-@@ -4,12 +4,14 @@
- # http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-ge…
+--- libvirt-1.3.1.orig/src/locking/virtlockd.init.in
++++ libvirt-1.3.1/src/locking/virtlockd.init.in
+@@ -4,59 +4,57 @@
+ # http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-gen…
#
### BEGIN INIT INFO
-# Provides: virtlockd
--# Default-Start:
--# Default-Stop: 0 1 2 3 4 5 6
+-# Default-Start: 3 4 5
+-# Default-Stop: 0 1 2 6
+-# Required-Start:
+-# Required-Stop:
+-# Should-Start: $network $remote_fs
+-# Should-Stop: $network $remote_fs
+# Provides: virtlockd
+# Required-Start: $network $remote_fs
-+# Default-Start: 3 5
+# Required-Stop: $network $remote_fs
++# Default-Start: 3 5
+# Default-Stop: 0 1 2 4 6
++# Should-Start:
++# Should-Stop:
# Short-Description: virtual machine lock manager
-# Description: This is a daemon for managing locks
-# on virtual machine disk images
@@ -36,8 +42,21 @@
### END INIT INFO
# the following is chkconfig init header
-@@ -24,35 +26,33 @@
- # pidfile: @localstatedir@/run/virtlockd.pid
+ #
+-# virtlockd: virtual machine lock manager
++# virtlockd: virtual machine lock manager
+ #
+-# chkconfig: 345 96 04
+-# description: This is a daemon for managing locks \
+-# on virtual machine disk images
++# chkconfig: 345 96 04
++# description: This is a daemon for managing locks \
++# on virtual machine disk images
+ #
+-# processname: virtlockd
+-# pidfile: @localstatedir@/run/virtlockd.pid
++# processname: virtlockd
++# pidfile: @localstatedir@/run/virtlockd.pid
#
-# Source function library.
@@ -84,7 +103,7 @@
rm -f $PIDFILE
fi
}
-@@ -66,9 +66,7 @@ reload() {
+@@ -70,9 +68,7 @@ reload() {
echo -n $"Reloading $SERVICE configuration: "
killproc -p $PIDFILE $PROCESS -USR1
@@ -95,7 +114,7 @@
}
# See how we were called.
-@@ -77,18 +75,20 @@ case "$1" in
+@@ -81,18 +77,20 @@ case "$1" in
$1
;;
status)
++++++ virtlogd-init-script.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,21 +1,27 @@
Adjust virtlogd init files to conform to SUSE standards
-Index: libvirt-1.3.0/src/logging/virtlogd.init.in
+Index: libvirt-1.3.1/src/logging/virtlogd.init.in
===================================================================
---- libvirt-1.3.0.orig/src/logging/virtlogd.init.in
-+++ libvirt-1.3.0/src/logging/virtlogd.init.in
-@@ -4,12 +4,14 @@
- # http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-ge…
+--- libvirt-1.3.1.orig/src/logging/virtlogd.init.in
++++ libvirt-1.3.1/src/logging/virtlogd.init.in
+@@ -4,59 +4,56 @@
+ # http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-gen…
#
### BEGIN INIT INFO
-# Provides: virtlogd
--# Default-Start:
--# Default-Stop: 0 1 2 3 4 5 6
+-# Default-Start: 3 4 5
+-# Default-Stop: 0 1 2 6
+-# Required-Start:
+-# Required-Stop:
+-# Should-Start: $network $remote_fs
+-# Should-Stop: $network $remote_fs
+# Provides: virtlogd
+# Required-Start: $network $remote_fs
-+# Default-Start: 3 5
+# Required-Stop: $network $remote_fs
++# Default-Start: 3 5
+# Default-Stop: 0 1 2 4 6
++# Should-Start
++# Should-Stop:
# Short-Description: virtual machine log manager
-# Description: This is a daemon for managing logs
-# of virtual machine consoles
@@ -24,8 +30,21 @@
### END INIT INFO
# the following is chkconfig init header
-@@ -24,35 +26,32 @@
- # pidfile: @localstatedir@/run/virtlogd.pid
+ #
+-# virtlogd: virtual machine log manager
++# virtlogd: virtual machine log manager
+ #
+-# chkconfig: 345 96 04
+-# description: This is a daemon for managing logs \
+-# of virtual machine consoles
++# chkconfig: 345 96 04
++# description: This is a daemon for managing logs \
++# of virtual machine consoles
+ #
+-# processname: virtlogd
+-# pidfile: @localstatedir@/run/virtlogd.pid
++# processname: virtlogd
++# pidfile: @localstatedir@/run/virtlogd.pid
#
-# Source function library.
@@ -49,7 +68,7 @@
- daemon --pidfile $PIDFILE --check $SERVICE $PROCESS --daemon $VIRTLOGD_ARGS
- RETVAL=$?
- echo
-- [ $RETVAL -eq 0 ] && touch @localstatedir@/log/subsys/$SERVICE
+- [ $RETVAL -eq 0 ] && touch @localstatedir@/lock/subsys/$SERVICE
+ echo -n $"Starting $SERVICE "
+ test -d $PIDDIR || mkdir -p $PIDDIR
+ startproc -p $PIDFILE $PROCESS --pid-file $PIDFILE --daemon $VIRTLOGD_ARGS
@@ -66,11 +85,11 @@
- echo
+ rc_status -v
if [ $RETVAL -eq 0 ]; then
-- rm -f @localstatedir@/log/subsys/$SERVICE
+- rm -f @localstatedir@/lock/subsys/$SERVICE
rm -f $PIDFILE
fi
}
-@@ -66,9 +65,7 @@ reload() {
+@@ -70,9 +67,7 @@ reload() {
echo -n $"Reloading $SERVICE configuration: "
killproc -p $PIDFILE $PROCESS -USR1
@@ -81,7 +100,7 @@
}
# See how we were called.
-@@ -77,18 +74,20 @@ case "$1" in
+@@ -81,18 +76,20 @@ case "$1" in
$1
;;
status)
@@ -95,7 +114,7 @@
reload
;;
condrestart|try-restart)
-- [ -f @localstatedir@/log/subsys/$SERVICE ] && restart || :
+- [ -f @localstatedir@/lock/subsys/$SERVICE ] && restart || :
+ $0 status >/dev/null && restart || :
;;
*)
@@ -107,10 +126,10 @@
esac
-exit $RETVAL
+rc_exit
-Index: libvirt-1.3.0/src/logging/virtlogd.sysconf
+Index: libvirt-1.3.1/src/logging/virtlogd.sysconf
===================================================================
---- libvirt-1.3.0.orig/src/logging/virtlogd.sysconf
-+++ libvirt-1.3.0/src/logging/virtlogd.sysconf
+--- libvirt-1.3.1.orig/src/logging/virtlogd.sysconf
++++ libvirt-1.3.1/src/logging/virtlogd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlogd
+
++++++ xen-pv-cdrom.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -1,17 +1,17 @@
-Index: libvirt-1.3.0/src/xenconfig/xen_sxpr.c
+Index: libvirt-1.3.1/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-1.3.0.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-1.3.0/src/xenconfig/xen_sxpr.c
-@@ -334,7 +334,7 @@ xenParseSxprChar(const char *value,
+--- libvirt-1.3.1.orig/src/xenconfig/xen_sxpr.c
++++ libvirt-1.3.1/src/xenconfig/xen_sxpr.c
+@@ -390,7 +390,7 @@ xenParseSxprVifRate(const char *rate, un
static int
xenParseSxprDisks(virDomainDefPtr def,
const struct sexpr *root,
-- int hvm,
-+ int hvm ATTRIBUTE_UNUSED,
- int xendConfigVersion)
+- int hvm)
++ int hvm ATTRIBUTE_UNUSED)
{
const struct sexpr *cur, *node;
-@@ -385,7 +385,6 @@ xenParseSxprDisks(virDomainDefPtr def,
+ virDomainDiskDefPtr disk = NULL;
+@@ -440,7 +440,6 @@ xenParseSxprDisks(virDomainDefPtr def,
/* There is a case without the uname to the CD-ROM device */
offset = strchr(dst, ':');
if (!offset ||
++++++ xen-sxpr-disk-type.patch ++++++
--- /var/tmp/diff_new_pack.iADqka/_old 2016-01-28 17:25:54.000000000 +0100
+++ /var/tmp/diff_new_pack.iADqka/_new 2016-01-28 17:25:54.000000000 +0100
@@ -6,11 +6,11 @@
https://bugzilla.suse.com/show_bug.cgi?id=938228
-Index: libvirt-1.3.0/src/xenconfig/xen_sxpr.c
+Index: libvirt-1.3.1/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-1.3.0.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-1.3.0/src/xenconfig/xen_sxpr.c
-@@ -449,10 +449,11 @@ xenParseSxprDisks(virDomainDefPtr def,
+--- libvirt-1.3.1.orig/src/xenconfig/xen_sxpr.c
++++ libvirt-1.3.1/src/xenconfig/xen_sxpr.c
+@@ -504,10 +504,11 @@ xenParseSxprDisks(virDomainDefPtr def,
omnipotent, we can revisit this, perhaps stat()'ing
the src file in question */
virDomainDiskSetType(disk, VIR_STORAGE_TYPE_FILE);
1
0
Hello community,
here is the log from the commit of package gnucash for openSUSE:Factory checked in at 2016-01-28 17:24:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnucash (Old)
and /work/SRC/openSUSE:Factory/.gnucash.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnucash"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnucash/gnucash.changes 2016-01-15 10:41:05.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gnucash.new/gnucash.changes 2016-01-28 17:25:50.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 27 19:03:55 UTC 2016 - dimstar(a)opensuse.org
+
+- Require python-gnucash from the main package: silence a warning
+ on startup.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnucash.spec ++++++
--- /var/tmp/diff_new_pack.2v4MuJ/_old 2016-01-28 17:25:51.000000000 +0100
+++ /var/tmp/diff_new_pack.2v4MuJ/_new 2016-01-28 17:25:51.000000000 +0100
@@ -66,6 +66,8 @@
Requires: perl-HTML-Parser
Requires: perl-HTML-TableExtract
Requires: perl-libwww-perl
+# the python bindings are split out for potential other consumers
+Requires: python-gnucash >= %{version}
Requires: slib
Recommends: %{name}-lang
Recommends: gnucash-docs
1
0
Hello community,
here is the log from the commit of package clusterssh for openSUSE:Factory checked in at 2016-01-28 17:24:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clusterssh (Old)
and /work/SRC/openSUSE:Factory/.clusterssh.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "clusterssh"
Changes:
--------
--- /work/SRC/openSUSE:Factory/clusterssh/clusterssh.changes 2013-07-09 20:48:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.clusterssh.new/clusterssh.changes 2016-01-28 17:25:49.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Jan 27 13:33:48 UTC 2016 - darin(a)darins.net
+
+- Added patch remove-time-key.patch, which resolves the issue where
+ windows become unmoveable after executing cssh in KDE5.
+ See for bnc#956316 and https://github.com/duncs/clusterssh/issues/46
+
+-------------------------------------------------------------------
New:
----
remove-time-key.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ clusterssh.spec ++++++
--- /var/tmp/diff_new_pack.lHr94r/_old 2016-01-28 17:25:50.000000000 +0100
+++ /var/tmp/diff_new_pack.lHr94r/_new 2016-01-28 17:25:50.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package clusterssh
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,6 +29,7 @@
#Git-Clone: git://clusterssh.git.sf.net/gitroot/clusterssh/clusterssh
Source: http://downloads.sf.net/clusterssh/App-ClusterSSH-4.02_01.tar.gz
Source2: %name-rpmlintrc
+Patch1: remove-time-key.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
BuildRequires: fdupes
@@ -71,6 +72,7 @@
%prep
%setup -qn %modname-%dullver
+%patch -P 1 -p1
%build
perl Makefile.PL;
++++++ remove-time-key.patch ++++++
From: Brandon Perkins <bperkins(a)redhat.com>
Date: Fri, 6 Nov 2015 16:19:03 -0500
Subject: [PATCH] Remove 'time' key from the event hash.
References: https://github.com/duncs/clusterssh/issues/46
References: bugzilla.opensuse.org/956316
'time' key and value from the event hash results in windows that
cannot be manipulated under KDE5.
---
lib/App/ClusterSSH.pm | 2 --
1 file changed, 2 deletions(-)
Index: App-ClusterSSH-4.02_01/lib/App/ClusterSSH.pm
===================================================================
--- App-ClusterSSH-4.02_01.orig/lib/App/ClusterSSH.pm
+++ App-ClusterSSH-4.02_01/lib/App/ClusterSSH.pm
@@ -579,7 +579,6 @@ sub send_text($@) {
'name' => $event,
'detail' => $code,
'state' => $state,
- 'time' => time(),
'event' => $servers{$svr}{wid},
'root' => $xdisplay->root(),
'same_screen' => 1,
@@ -1647,7 +1646,6 @@ sub key_event {
'name' => $event,
'detail' => $keycode,
'state' => $state,
- 'time' => time(),
'event' => $servers{$_}{wid},
'root' => $xdisplay->root(),
'same_screen' => 1,
1
0
Hello community,
here is the log from the commit of package rubygem-facter for openSUSE:Factory checked in at 2016-01-28 17:24:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-facter (Old)
and /work/SRC/openSUSE:Factory/.rubygem-facter.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-facter"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-facter/rubygem-facter.changes 2015-11-28 15:19:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-facter.new/rubygem-facter.changes 2016-01-28 17:25:48.000000000 +0100
@@ -1,0 +2,12 @@
+Wed Jan 27 17:13:56 UTC 2016 - tampakrap(a)opensuse.org
+
+- Version bump 2.4.6, see
+ http://docs.puppetlabs.com/facter/2.4/release_notes.html#facter-246
+
+-------------------------------------------------------------------
+Fri Jan 22 16:47:49 UTC 2016 - kstreitova(a)suse.com
+
+- Version bump 2.4.5, see
+ http://docs.puppetlabs.com/facter/2.4/release_notes.html#facter-245
+
+-------------------------------------------------------------------
Old:
----
facter-2.4.4.gem
New:
----
facter-2.4.6.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-facter.spec ++++++
--- /var/tmp/diff_new_pack.7N3t2b/_old 2016-01-28 17:25:49.000000000 +0100
+++ /var/tmp/diff_new_pack.7N3t2b/_new 2016-01-28 17:25:49.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-facter
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
#
Name: rubygem-facter
-Version: 2.4.4
+Version: 2.4.6
Release: 0
%define mod_name facter
%define mod_full_name %{mod_name}-%{version}
++++++ facter-2.4.4.gem -> facter-2.4.6.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/facter/core/execution/posix.rb new/lib/facter/core/execution/posix.rb
--- old/lib/facter/core/execution/posix.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/facter/core/execution/posix.rb 1970-01-01 01:00:00.000000000 +0100
@@ -11,11 +11,11 @@
def which(bin)
if absolute_path?(bin)
- return bin if File.executable?(bin)
+ return bin if File.executable?(bin) and File.file?(bin)
else
search_paths.each do |dir|
dest = File.join(dir, bin)
- return dest if File.executable?(dest)
+ return dest if File.executable?(dest) and File.file?(dest)
end
end
nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/facter/gid.rb new/lib/facter/gid.rb
--- old/lib/facter/gid.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/facter/gid.rb 1970-01-01 01:00:00.000000000 +0100
@@ -10,7 +10,7 @@
Facter.add(:gid) do
confine do
- Facter::Core::Execution.which('id') && Facter.value(:kernel) != "SunOS"
+ Facter::Core::Execution.which('id') && !["SunOS", "windows"].include?(Facter.value(:kernel))
end
setcode { Facter::Core::Execution.exec('id -ng') }
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/facter/processors/os.rb new/lib/facter/processors/os.rb
--- old/lib/facter/processors/os.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/facter/processors/os.rb 1970-01-01 01:00:00.000000000 +0100
@@ -112,7 +112,7 @@
# get each physical processor
Facter::Util::WMI.execquery("select * from Win32_Processor").each do |proc|
# not supported before 2008
- if proc.respond_to?(:NumberOfLogicalProcessors)
+ if proc.ole_respond_to?(:NumberOfLogicalProcessors)
processor_num = proc.NumberOfLogicalProcessors
else
processor_num = 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/facter/util/virtual.rb new/lib/facter/util/virtual.rb
--- old/lib/facter/util/virtual.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/facter/util/virtual.rb 1970-01-01 01:00:00.000000000 +0100
@@ -162,7 +162,7 @@
path = Pathname.new('/proc/1/cgroup')
return false unless path.readable?
begin
- in_lxc = path.readlines.any? {|l| l.split(":")[2].to_s.start_with? '/lxc/' }
+ in_lxc = path.readlines.any? {|l| l.split(":")[2].to_s.include? '/lxc' }
rescue Errno::EPERM => exc
# If we get "operation not permitted" here, it probably means we are
# running OpenVZ. We are not running LXC anyway, so...
@@ -179,7 +179,7 @@
path = Pathname.new('/proc/1/cgroup')
return false unless path.readable?
begin
- in_docker = path.readlines.any? {|l| l.split(":")[2].to_s.start_with? '/docker/' }
+ in_docker = path.readlines.any? {|l| l.split(":")[2].to_s.include? '/docker' }
rescue Errno::EPERM => exc
# This can fail under OpenVZ, just like in .lxc?
return false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/facter/version.rb new/lib/facter/version.rb
--- old/lib/facter/version.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/facter/version.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
module Facter
if not defined? FACTERVERSION then
- FACTERVERSION = '2.4.4'
+ FACTERVERSION = '2.4.6'
end
# Returns the running version of Facter.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 1970-01-01 01:00:00.000000000 +0100
+++ new/metadata 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: facter
version: !ruby/object:Gem::Version
- version: 2.4.4
+ version: 2.4.6
prerelease:
platform: ruby
authors:
@@ -9,7 +9,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2015-05-19 00:00:00.000000000 Z
+date: 2016-01-26 00:00:00.000000000 Z
dependencies: []
description: You can prove anything with facts!
email: info(a)puppetlabs.com
@@ -201,6 +201,7 @@
- spec/fixtures/cpuinfo/two_multicore-grep
- spec/fixtures/virtual/proc_1_cgroup/in_a_container
- spec/fixtures/virtual/proc_1_cgroup/not_in_a_container
+- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices
- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container
- spec/fixtures/virtual/proc_self_status/vserver_2_1/guest
- spec/fixtures/virtual/proc_self_status/vserver_2_1/host
@@ -549,6 +550,7 @@
- spec/fixtures/cpuinfo/two_multicore-grep
- spec/fixtures/virtual/proc_1_cgroup/in_a_container
- spec/fixtures/virtual/proc_1_cgroup/not_in_a_container
+- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices
- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container
- spec/fixtures/virtual/proc_self_status/vserver_2_1/guest
- spec/fixtures/virtual/proc_self_status/vserver_2_1/host
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices new/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices
--- old/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices 1970-01-01 01:00:00.000000000 +0100
@@ -0,0 +1,10 @@
+10:hugetlb:/
+9:perf_event:/
+8:blkio:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
+7:net_cls:/
+6:freezer:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
+5:devices:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
+4:memory:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
+3:cpuacct,cpu:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
+2:cpuset:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
+1:name=systemd:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/core/execution/posix_spec.rb new/spec/unit/core/execution/posix_spec.rb
--- old/spec/unit/core/execution/posix_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/core/execution/posix_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -16,6 +16,7 @@
context "and provided with an absolute path" do
it "should return the binary if executable" do
+ File.expects(:file?).with('/opt/foo').returns true
File.expects(:executable?).with('/opt/foo').returns true
subject.which('/opt/foo').should == '/opt/foo'
end
@@ -24,12 +25,21 @@
File.expects(:executable?).with('/opt/foo').returns false
subject.which('/opt/foo').should be_nil
end
+
+ it "should return nil if the binary is not a file" do
+ File.expects(:file?).with('/opt/foo').returns false
+ File.expects(:executable?).with('/opt/foo').returns true
+ subject.which('/opt/foo').should be_nil
+ end
end
context "and not provided with an absolute path" do
it "should return the absolute path if found" do
+ File.expects(:file?).with('/bin/foo').never
File.expects(:executable?).with('/bin/foo').returns false
+ File.expects(:file?).with('/sbin/foo').returns true
File.expects(:executable?).with('/sbin/foo').returns true
+ File.expects(:file?).with('/usr/sbin/foo').never
File.expects(:executable?).with('/usr/sbin/foo').never
subject.which('foo').should == '/sbin/foo'
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/gid_spec.rb new/spec/unit/gid_spec.rb
--- old/spec/unit/gid_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/gid_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -39,4 +39,13 @@
Facter.fact(:gid).value.should == nil
end
end
+
+ describe "on windows systems" do
+ it "is not supported" do
+ Facter.fact(:kernel).stubs(:value).returns("windows")
+ Facter::Core::Execution.expects(:which).with('id').returns(true)
+
+ Facter.fact(:gid).value.should == nil
+ end
+ end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/processors/os_spec.rb new/spec/unit/processors/os_spec.rb
--- old/spec/unit/processors/os_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/processors/os_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -221,6 +221,7 @@
before :each do
proc = stubs 'proc'
proc.stubs(:Name).returns("Intel(R) Celeron(R) processor")
+ proc.stubs(:ole_respond_to?).with(:NumberOfLogicalProcessors).returns(false)
load(Array.new(2, proc))
end
@@ -235,6 +236,7 @@
before :each do
proc = stubs 'proc'
proc.stubs(:NumberOfLogicalProcessors).returns(2)
+ proc.stubs(:ole_respond_to?).with(:NumberOfLogicalProcessors).returns(true)
proc.stubs(:Name).returns("Intel(R) Celeron(R) processor")
load(Array.new(2, proc))
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/util/virtual_spec.rb new/spec/unit/util/virtual_spec.rb
--- old/spec/unit/util/virtual_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/util/virtual_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -368,6 +368,17 @@
end
end
+ context '/proc/1/cgroup has at least one hierarchy with docker underneath a systemd slice parent' do
+ before :each do
+ fakepath = Pathname.new(File.join(fixture_path, 'in_a_docker_container_with_systemd_slices'))
+ Pathname.stubs(:new).with('/proc/1/cgroup').returns(fakepath)
+ end
+
+ it 'is true' do
+ subject.should be_true
+ end
+ end
+
context '/proc/1/cgroup has no hierarchies rooted in /docker/' do
before :each do
fakepath = Pathname.new(File.join(fixture_path, 'not_in_a_container'))
1
0
Hello community,
here is the log from the commit of package hawk for openSUSE:Factory checked in at 2016-01-28 17:24:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hawk (Old)
and /work/SRC/openSUSE:Factory/.hawk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hawk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/hawk/hawk.changes 2015-12-13 09:40:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.hawk.new/hawk.changes 2016-01-28 17:25:46.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 27 12:55:51 UTC 2016 - kgronlund(a)suse.com
+
+- Update to version 1.0.0+git.1453899192.3f8428c:
+ + dev: Require gettext ~> 3.1
+
+-------------------------------------------------------------------
Old:
----
hawk-1.0.0+git.1448981395.15fb8b9.tar.bz2
New:
----
hawk-1.0.0+git.1453899192.3f8428c.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hawk.spec ++++++
--- /var/tmp/diff_new_pack.pz086A/_old 2016-01-28 17:25:48.000000000 +0100
+++ /var/tmp/diff_new_pack.pz086A/_new 2016-01-28 17:25:48.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package hawk
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -39,7 +39,7 @@
Summary: HA Web Konsole
License: GPL-2.0 and Apache-2.0
Group: %{pkg_group}
-Version: 1.0.0+git.1448981395.15fb8b9
+Version: 1.0.0+git.1453899192.3f8428c
Release: 0
Url: http://www.clusterlabs.org/wiki/Hawk
Source: %{name}-%{version}.tar.bz2
@@ -76,7 +76,7 @@
BuildRequires: rubygem(%{rb_default_ruby_abi}:builder) >= 3.2
BuildRequires: rubygem(%{rb_default_ruby_abi}:byebug) >= 3.5
BuildRequires: rubygem(%{rb_default_ruby_abi}:fast_gettext) >= 0.9.2
-BuildRequires: rubygem(%{rb_default_ruby_abi}:gettext:3.1)
+BuildRequires: rubygem(%{rb_default_ruby_abi}:gettext:3) >= 3.1
BuildRequires: rubygem(%{rb_default_ruby_abi}:gettext_i18n_rails:1) >= 1.2
BuildRequires: rubygem(%{rb_default_ruby_abi}:gettext_i18n_rails_js)
BuildRequires: rubygem(%{rb_default_ruby_abi}:haml-rails) >= 0.8.2
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.pz086A/_old 2016-01-28 17:25:48.000000000 +0100
+++ /var/tmp/diff_new_pack.pz086A/_new 2016-01-28 17:25:48.000000000 +0100
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/ClusterLabs/hawk.git</param>
- <param name="changesrevision">15fb8b9c1530377c10239d4d18ae708ae1b4af56</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">3f8428c3442598b95f339cfb44e93d744445848e</param></service></servicedata>
\ No newline at end of file
++++++ hawk-1.0.0+git.1448981395.15fb8b9.tar.bz2 -> hawk-1.0.0+git.1453899192.3f8428c.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hawk-1.0.0+git.1448981395.15fb8b9/hawk/Gemfile new/hawk-1.0.0+git.1453899192.3f8428c/hawk/Gemfile
--- old/hawk-1.0.0+git.1448981395.15fb8b9/hawk/Gemfile 2015-12-02 17:26:04.000000000 +0100
+++ new/hawk-1.0.0+git.1453899192.3f8428c/hawk/Gemfile 2016-01-27 13:55:42.000000000 +0100
@@ -62,7 +62,7 @@
gem "quiet_assets", "~> 1.1.0"
gem "ruby_parser", "~> 3.6", ">= 3.6.6"
- gem "gettext", "~> 3.1.6", require: false
+ gem "gettext", "~> 3.1", require: false
end
group :test do
1
0
Hello community,
here is the log from the commit of package python-kde4 for openSUSE:Factory checked in at 2016-01-28 17:24:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-kde4 (Old)
and /work/SRC/openSUSE:Factory/.python-kde4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-kde4"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-kde4/python-kde4.changes 2015-05-18 22:31:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-kde4.new/python-kde4.changes 2016-01-28 17:25:45.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 27 14:10:10 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Drop BuildRequires on kdepimlibs4 due to the change to the
+ Frameworks version of akonadi.
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/python-kde4/python3-kde4.changes 2015-05-18 22:31:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-kde4.new/python3-kde4.changes 2016-01-28 17:25:45.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 27 14:10:42 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Drop the BuildRequires on kdepimlibs4 due to the change to the
+ Frameworks version of Akonadi
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-kde4.spec ++++++
--- /var/tmp/diff_new_pack.zf9i8N/_old 2016-01-28 17:25:46.000000000 +0100
+++ /var/tmp/diff_new_pack.zf9i8N/_new 2016-01-28 17:25:46.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-kde4
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,19 +29,18 @@
BuildRequires: fdupes
BuildRequires: libjasper-devel
BuildRequires: libkde4-devel
-BuildRequires: libkdepimlibs4-devel
BuildRequires: okular-devel
BuildRequires: python-qt4-devel
BuildRequires: xz
Requires: python-qt4
Requires: update-alternatives
-Recommends: %{name}-akonadi
Recommends: %{name}-doc
Recommends: %{name}-khtml
Recommends: %{name}-knewstuff
Recommends: %{name}-plasma
Recommends: %{name}-phonon
# no more nepomuk & soprano with KDE's 4.13 release
+Obsoletes: %{name}-akonadi
Obsoletes: %{name}-nepomuk
Obsoletes: %{name}-soprano
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -55,17 +54,6 @@
Bindings for the KDE Development Platform based on PyQt4 and SIP. Use of these bindings
allows to write Python applications that use the KDE C++ libraries.
-%package akonadi
-Summary: Python bindings for KDE 4 - Akonadi
-Group: Development/Libraries/KDE
-Requires: %{name} = %{version}
-%kde4_akonadi_requires
-%kde4_runtime_requires
-
-%description akonadi
-This package contains bindings for the Akonadi PIM libraries, allowing the creation of
-Python applications using Akonadi.
-
%package doc
Summary: Documentation for Python bindings for KDE 4
Group: Development/Libraries/KDE
@@ -121,7 +109,6 @@
Provides: %{name}-common = %{version}
#TODO: Change back to '<' after next version update:
Obsoletes: %{name}-common <= %{version}
-Requires: %{name}-akonadi = %{version}
Requires: %{name}-khtml = %{version}
Requires: %{name}-knewstuff = %{version}
Requires: %{name}-phonon = %{version}
@@ -180,9 +167,8 @@
%{python_sitearch}/PyQt4/uic/widget-plugins
%{python_sitearch}/PyQt4/uic/pykdeuic4.*
-%files akonadi
-%defattr(-,root,root)
-%{python_sitearch}/PyKDE4/akonadi.so
+%files doc
+%doc docs/html
%files doc
%doc docs/html
++++++ python3-kde4.spec ++++++
--- /var/tmp/diff_new_pack.zf9i8N/_old 2016-01-28 17:25:46.000000000 +0100
+++ /var/tmp/diff_new_pack.zf9i8N/_new 2016-01-28 17:25:46.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-kde4
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,19 +29,18 @@
BuildRequires: fdupes
BuildRequires: libjasper-devel
BuildRequires: libkde4-devel
-BuildRequires: libkdepimlibs4-devel
BuildRequires: okular-devel
BuildRequires: python3-qt4-devel
BuildRequires: xz
Requires: python3-qt4
Requires: update-alternatives
-Recommends: %{name}-akonadi
Recommends: %{name}-doc
Recommends: %{name}-khtml
Recommends: %{name}-knewstuff
Recommends: %{name}-plasma
Recommends: %{name}-phonon
# no more nepomuk & soprano with KDE's 4.13 release
+Obsoletes: %{name}-akonadi
Obsoletes: %{name}-nepomuk
Obsoletes: %{name}-soprano
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -52,17 +51,6 @@
Bindings for the KDE Development Platform based on PyQt4 and SIP. Use of these bindings
allows to write Python applications that use the KDE C++ libraries.
-%package akonadi
-Summary: Python bindings for KDE 4 - Akonadi
-Group: Development/Libraries/KDE
-Requires: %{name} = %{version}
-%kde4_akonadi_requires
-%kde4_runtime_requires
-
-%description akonadi
-This package contains bindings for the Akonadi PIM libraries, allowing the creation of
-Python applications using Akonadi.
-
%package doc
Summary: Documentation for Python bindings for KDE 4
Group: Development/Libraries/KDE
@@ -124,7 +112,6 @@
Summary: Development files of %{name}
Group: Development/Libraries/KDE
Requires: %{name} = %{version}
-Requires: %{name}-akonadi = %{version}
Requires: %{name}-khtml = %{version}
Requires: %{name}-knewstuff = %{version}
Requires: %{name}-phonon = %{version}
@@ -185,10 +172,6 @@
%{python3_sitearch}/PyQt4/uic/pykdeuic4.*
%{python3_sitearch}/PyQt4/uic/__pycache__/
-%files akonadi
-%defattr(-,root,root)
-%{python3_sitearch}/PyKDE4/akonadi.so
-
%files doc
%doc docs/html
1
0
Hello community,
here is the log from the commit of package erlang for openSUSE:Factory checked in at 2016-01-28 17:24:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/erlang (Old)
and /work/SRC/openSUSE:Factory/.erlang.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "erlang"
Changes:
--------
--- /work/SRC/openSUSE:Factory/erlang/erlang.changes 2015-11-22 11:00:28.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.erlang.new/erlang.changes 2016-01-28 17:25:43.000000000 +0100
@@ -1,0 +2,37 @@
+Tue Jan 12 14:08:41 UTC 2016 - matwey.kornilov(a)gmail.com
+
+- Update to 18.2.2:
+ * ssh: The authentication method 'keyboard-interactive' failed
+ in the Erlang client when the server after successful
+ authentication continued by asking for zero more
+ passwords.
+
+-------------------------------------------------------------------
+Mon Dec 28 08:50:34 UTC 2015 - matwey.kornilov(a)gmail.com
+
+- Update to 18.2.1:
+ * Due to a bug in the handling of paths on windows
+ none of the following would work with paths
+ containing a space: ct_run dialyzer erlc escript typer
+ This also contains a fix for HiPE enabled emulator for
+ FreeBSD.
+- Update to 18.2:
+ * ssl: Add configurable upper limit for session
+ cache. erts: Add function enif_getenv to read OS
+ environment variables in a portable way from NIFs.
+ * kernel: Add {line_delim, byte()} option to
+ inet:setopts/2 and decode_packet/3
+ * ssh: The 'ecdsa-sha2-nistp256',
+ 'ecdsa-sha2-nistp384' and 'ecdsa-sha2-nistp521'
+ signature algorithms for ssh are implemented. See RFC5656.
+ * ssh: The ssh:daemon option dh_gex_groups is
+ extended to read a user provided ssh moduli file
+ with generator-modulus pairs. The file is in openssh
+ format.
+
+-------------------------------------------------------------------
+Thu Dec 17 17:37:16 CET 2015 - ro(a)suse.de
+
+- disable hipe on s390/s390x to fix build
+
+-------------------------------------------------------------------
Old:
----
OTP-18.1.3.tar.gz
New:
----
OTP-18.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ erlang.spec ++++++
--- /var/tmp/diff_new_pack.B8kuDd/_old 2016-01-28 17:25:45.000000000 +0100
+++ /var/tmp/diff_new_pack.B8kuDd/_new 2016-01-28 17:25:45.000000000 +0100
@@ -21,7 +21,7 @@
%endif
Name: erlang
-Version: 18.1.3
+Version: 18.2.2
Release: 0
Summary: General-purpose programming language and runtime environment
License: Apache-2.0
@@ -332,7 +332,9 @@
--enable-threads \
--enable-smp-support \
--enable-kernel-poll \
+%ifnarch s390 s390x
--enable-hipe \
+%endif
--enable-shared-zlib
# clean stalled files before rebuild them
make %{?_smp_mflags} clean
++++++ OTP-18.1.3.tar.gz -> OTP-18.2.2.tar.gz ++++++
/work/SRC/openSUSE:Factory/erlang/OTP-18.1.3.tar.gz /work/SRC/openSUSE:Factory/.erlang.new/OTP-18.2.2.tar.gz differ: char 13, line 1
++++++ _service ++++++
--- /var/tmp/diff_new_pack.B8kuDd/_old 2016-01-28 17:25:45.000000000 +0100
+++ /var/tmp/diff_new_pack.B8kuDd/_new 2016-01-28 17:25:45.000000000 +0100
@@ -2,4 +2,7 @@
<service name="download_files" mode="disabled">
<param name="recompress">no</param>
</service>
+ <service name="refresh_patches" mode="disabled">
+ <param name="changesgenerate">enable</param>
+ </service>
</services>
1
0
Hello community,
here is the log from the commit of package ledger for openSUSE:Factory checked in at 2016-01-28 17:24:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ledger (Old)
and /work/SRC/openSUSE:Factory/.ledger.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ledger"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ledger/ledger.changes 2015-08-03 17:22:20.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ledger.new/ledger.changes 2016-01-28 17:25:41.000000000 +0100
@@ -1,0 +2,19 @@
+Wed Jan 27 10:19:14 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 3.1.1
+- drop ledger-3.1-fix-build-with-boost-1.58.patch
+ ledger-3.1-convert-boost::optional-objects-to-bool-explicitly.patch
+* Added a --no-revalued option
+* Improved Embedded Python Support
+* Use ./.ledgerrc if ~/.ledgerrc doesn't exist
+* Fixed parsing of transactions with single-character payees and comments
+* Fixed crash when using -M option with empty result
+* Fixed sorting for option --auto-match
+* Fixed treatment of year 2015 and Y2014 directives
+* Fixed crash when using --trace 10 or above
+* Build fix for boost 1.58, 1.59, 1.60
+* Build fix for Cygwin
+* Various documentation improvements
+* Examples in the documentation are tested just like unit tests
+
+-------------------------------------------------------------------
Old:
----
ledger-3.1-convert-boost::optional-objects-to-bool-explicitly.patch
ledger-3.1-fix-build-with-boost-1.58.patch
v3.1.tar.gz
New:
----
v3.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ledger.spec ++++++
--- /var/tmp/diff_new_pack.xBPdeI/_old 2016-01-28 17:25:41.000000000 +0100
+++ /var/tmp/diff_new_pack.xBPdeI/_new 2016-01-28 17:25:41.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ledger
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,17 +17,13 @@
Name: ledger
-Version: 3.1
+Version: 3.1.1
Release: 0
Summary: Double-entry accounting system with a command-line reporting interface
License: BSD-3-Clause
Group: Productivity/Office/Finance
Url: https://github.com/%{name}/%{name}
Source: https://github.com/%{name}/%{name}/archive/v%{version}.tar.gz
-# PATCH-FIX-UPSTREAM ledger-3.1-convert-boost::optional-objects-to-bool-explicitly.patch -- picked from upstream
-Patch0: ledger-3.1-convert-boost::optional-objects-to-bool-explicitly.patch
-# PATCH-FIX-UPSTREAM ledger-3.1-fix-build-with-boost-1.58.patch -- picked from upstream
-Patch1: ledger-3.1-fix-build-with-boost-1.58.patch
BuildRequires: boost-devel
BuildRequires: cmake
BuildRequires: gcc-c++
@@ -44,8 +40,6 @@
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
%build
%cmake -DBUILD_LIBRARY=OFF
@@ -57,7 +51,7 @@
%files
%defattr(-,root,root)
-%doc README.md doc/LICENSE
+%doc README.md LICENSE.md
%doc %{_mandir}/man1/%{name}.1.gz
%{_bindir}/ledger
%{_sysconfdir}/bash_completion.d/ledger.sh
++++++ v3.1.tar.gz -> v3.1.1.tar.gz ++++++
++++ 18864 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package perl-CPAN-Perl-Releases for openSUSE:Factory checked in at 2016-01-28 17:24:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-CPAN-Perl-Releases (Old)
and /work/SRC/openSUSE:Factory/.perl-CPAN-Perl-Releases.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-CPAN-Perl-Releases"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-CPAN-Perl-Releases/perl-CPAN-Perl-Releases.changes 2015-12-29 12:59:40.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-CPAN-Perl-Releases.new/perl-CPAN-Perl-Releases.changes 2016-01-28 17:25:37.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 27 09:40:48 UTC 2016 - coolo(a)suse.com
+
+- updated to 2.56
+ see /usr/share/doc/packages/perl-CPAN-Perl-Releases/Changes
+
+-------------------------------------------------------------------
Old:
----
CPAN-Perl-Releases-2.54.tar.gz
New:
----
CPAN-Perl-Releases-2.56.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-CPAN-Perl-Releases.spec ++++++
--- /var/tmp/diff_new_pack.VJP2gC/_old 2016-01-28 17:25:38.000000000 +0100
+++ /var/tmp/diff_new_pack.VJP2gC/_new 2016-01-28 17:25:38.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package perl-CPAN-Perl-Releases
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-CPAN-Perl-Releases
-Version: 2.54
+Version: 2.56
Release: 0
%define cpan_name CPAN-Perl-Releases
Summary: Mapping Perl releases on CPAN to the location of the tarballs
++++++ CPAN-Perl-Releases-2.54.tar.gz -> CPAN-Perl-Releases-2.56.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-2.54/Changes new/CPAN-Perl-Releases-2.56/Changes
--- old/CPAN-Perl-Releases-2.54/Changes 2015-12-21 23:54:46.000000000 +0100
+++ new/CPAN-Perl-Releases-2.56/Changes 2016-01-20 23:33:57.000000000 +0100
@@ -1,8 +1,30 @@
==================================================
-Changes from 2010-12-22 00:00:00 +0000 to present.
+Changes from 2011-01-21 00:00:00 +0000 to present.
==================================================
-----------------------------------------
+version 2.56 at 2016-01-20 22:29:45 +0000
+-----------------------------------------
+
+ Change: e49a8ccdcab90da90f431b5852fa77a762fa2737
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2016-01-20 22:29:45 +0000
+
+ Updated with v5.23.7
+
+ Change: eea8677292ef0f82c5375362311e27cbf517995f
+ Author: Chris 'BinGOs' Williams <chris(a)bingosnet.co.uk>
+ Date : 2016-01-20 22:29:45 +0000
+
+ Remove RJBS release candidates and v5.7.1
+
+ As per
+ http://www.nntp.perl.org/group/perl.perl5.porters/2016/01/msg233715.h
+ tml
+
+ v5.7.1 as well as it is AWOL
+
+-----------------------------------------
version 2.54 at 2015-12-21 22:51:30 +0000
-----------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-2.54/LICENSE new/CPAN-Perl-Releases-2.56/LICENSE
--- old/CPAN-Perl-Releases-2.54/LICENSE 2015-12-21 23:54:46.000000000 +0100
+++ new/CPAN-Perl-Releases-2.56/LICENSE 2016-01-20 23:33:57.000000000 +0100
@@ -1,4 +1,4 @@
-This software is copyright (c) 2015 by Chris Williams.
+This software is copyright (c) 2016 by Chris Williams.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2015 by Chris Williams.
+This software is Copyright (c) 2016 by Chris Williams.
This is free software, licensed under:
@@ -272,7 +272,7 @@
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2015 by Chris Williams.
+This software is Copyright (c) 2016 by Chris Williams.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-2.54/MANIFEST new/CPAN-Perl-Releases-2.56/MANIFEST
--- old/CPAN-Perl-Releases-2.54/MANIFEST 2015-12-21 23:54:46.000000000 +0100
+++ new/CPAN-Perl-Releases-2.56/MANIFEST 2016-01-20 23:33:57.000000000 +0100
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.042.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.043.
Changes
LICENSE
MANIFEST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-2.54/META.json new/CPAN-Perl-Releases-2.56/META.json
--- old/CPAN-Perl-Releases-2.54/META.json 2015-12-21 23:54:46.000000000 +0100
+++ new/CPAN-Perl-Releases-2.56/META.json 2016-01-20 23:33:57.000000000 +0100
@@ -4,7 +4,7 @@
"Chris Williams <chris(a)bingosnet.co.uk>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.042, CPAN::Meta::Converter version 2.150005",
+ "generated_by" : "Dist::Zilla version 5.043, CPAN::Meta::Converter version 2.150005",
"license" : [
"perl_5"
],
@@ -54,6 +54,6 @@
"web" : "https://github.com/bingos/cpan-perl-releases"
}
},
- "version" : "2.54"
+ "version" : "2.56"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-2.54/META.yml new/CPAN-Perl-Releases-2.56/META.yml
--- old/CPAN-Perl-Releases-2.54/META.yml 2015-12-21 23:54:46.000000000 +0100
+++ new/CPAN-Perl-Releases-2.56/META.yml 2016-01-20 23:33:57.000000000 +0100
@@ -10,7 +10,7 @@
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.042, CPAN::Meta::Converter version 2.150005'
+generated_by: 'Dist::Zilla version 5.043, CPAN::Meta::Converter version 2.150005'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -21,4 +21,4 @@
resources:
homepage: https://github.com/bingos/cpan-perl-releases
repository: https://github.com/bingos/cpan-perl-releases.git
-version: '2.54'
+version: '2.56'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-2.54/Makefile.PL new/CPAN-Perl-Releases-2.56/Makefile.PL
--- old/CPAN-Perl-Releases-2.54/Makefile.PL 2015-12-21 23:54:46.000000000 +0100
+++ new/CPAN-Perl-Releases-2.56/Makefile.PL 2016-01-20 23:33:57.000000000 +0100
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.042.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.043.
use strict;
use warnings;
@@ -26,7 +26,7 @@
"IPC::Open3" => 0,
"Test::More" => "0.47"
},
- "VERSION" => "2.54",
+ "VERSION" => "2.56",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-2.54/README new/CPAN-Perl-Releases-2.56/README
--- old/CPAN-Perl-Releases-2.54/README 2015-12-21 23:54:46.000000000 +0100
+++ new/CPAN-Perl-Releases-2.56/README 2016-01-20 23:33:57.000000000 +0100
@@ -5,7 +5,7 @@
VERSION
- version 2.54
+ version 2.56
SYNOPSIS
@@ -74,7 +74,7 @@
COPYRIGHT AND LICENSE
- This software is copyright (c) 2015 by Chris Williams.
+ This software is copyright (c) 2016 by Chris Williams.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-2.54/dist.ini new/CPAN-Perl-Releases-2.56/dist.ini
--- old/CPAN-Perl-Releases-2.54/dist.ini 2015-12-21 23:54:46.000000000 +0100
+++ new/CPAN-Perl-Releases-2.56/dist.ini 2016-01-20 23:33:57.000000000 +0100
@@ -1,5 +1,5 @@
name = CPAN-Perl-Releases
-version = 2.54
+version = 2.56
author = Chris Williams <chris(a)bingosnet.co.uk>
license = Perl_5
copyright_holder = Chris Williams
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-2.54/lib/CPAN/Perl/Releases.pm new/CPAN-Perl-Releases-2.56/lib/CPAN/Perl/Releases.pm
--- old/CPAN-Perl-Releases-2.54/lib/CPAN/Perl/Releases.pm 2015-12-21 23:54:46.000000000 +0100
+++ new/CPAN-Perl-Releases-2.56/lib/CPAN/Perl/Releases.pm 2016-01-20 23:33:57.000000000 +0100
@@ -1,5 +1,5 @@
package CPAN::Perl::Releases;
-$CPAN::Perl::Releases::VERSION = '2.54';
+$CPAN::Perl::Releases::VERSION = '2.56';
#ABSTRACT: Mapping Perl releases on CPAN to the location of the tarballs
use strict;
@@ -35,7 +35,6 @@
"5.6.1" => { id => 'GSAR' },
"5.6.2" => { id => 'RGARCIA' },
"5.7.0" => { id => 'JHI' },
-"5.7.1" => { id => 'JHI' },
"5.7.2" => { id => 'JHI' },
"5.7.3" => { id => 'JHI' },
"5.8.0" => { id => 'JHI' },
@@ -114,14 +113,7 @@
"5.17.9" => { id => 'BINGOS' },
"5.17.10" => { id => 'CORION' },
"5.17.11" => { id => 'RJBS' },
-"5.18.0-RC1" => { id => 'RJBS' },
-"5.18.0-RC2" => { id => 'RJBS' },
-"5.18.0-RC3" => { id => 'RJBS' },
-"5.18.0-RC4" => { id => 'RJBS' },
"5.18.0" => { id => 'RJBS' },
-"5.18.1-RC1" => { id => 'RJBS' },
-"5.18.1-RC2" => { id => 'RJBS' },
-"5.18.1-RC3" => { id => 'RJBS' },
"5.18.1" => { id => 'RJBS' },
"5.19.0" => { id => 'RJBS' },
"5.19.1" => { id => 'DAGOLDEN' },
@@ -130,17 +122,12 @@
"5.19.4" => { id => 'SHAY' },
"5.19.5" => { id => 'SHAY' },
"5.19.6" => { id => 'BINGOS' },
-"5.18.2-RC1" => { id => 'RJBS' },
-"5.18.2-RC2" => { id => 'RJBS' },
-"5.18.2-RC3" => { id => 'RJBS' },
"5.19.7" => { id => 'ABIGAIL' },
-"5.18.2-RC4" => { id => 'RJBS' },
"5.18.2" => { id => 'RJBS' },
"5.19.8" => { id => 'RJBS' },
"5.19.9" => { id => 'TONYC' },
"5.19.10" => { id => 'ARC' },
"5.19.11" => { id => 'SHAY' },
-"5.20.0-RC1" => { id => 'RJBS' },
"5.20.0" => { id => 'RJBS' },
"5.21.0" => { id => 'RJBS' },
"5.21.1" => { id => 'WOLFSAGE' },
@@ -149,9 +136,7 @@
"5.20.1-RC1" => { id => 'SHAY' },
"5.20.1-RC2" => { id => 'SHAY' },
"5.20.1" => { id => 'SHAY' },
-"5.18.3-RC1" => { id => 'RJBS' },
"5.21.4" => { id => 'SHAY' },
-"5.18.3-RC2" => { id => 'RJBS' },
"5.18.3" => { id => 'RJBS' },
"5.18.4" => { id => 'RJBS' },
"5.21.5" => { id => 'ABIGAIL' },
@@ -163,8 +148,6 @@
"5.21.9" => { id => 'XSAWYERX' },
"5.21.10" => { id => 'SHAY' },
"5.21.11" => { id => 'SHAY' },
-"5.22.0-RC1" => { id => 'RJBS' },
-"5.22.0-RC2" => { id => 'RJBS' },
"5.22.0" => { id => 'RJBS' },
"5.23.0" => { id => 'RJBS' },
"5.23.1" => { id => 'WOLFSAGE' },
@@ -181,6 +164,7 @@
"5.22.1-RC4" => { id => 'SHAY' },
"5.22.1" => { id => 'SHAY' },
"5.23.6" => { id => 'DAGOLDEN' },
+"5.23.7" => { id => 'STEVAN' },
};
sub perl_tarballs {
@@ -248,7 +232,7 @@
=head1 VERSION
-version 2.54
+version 2.56
=head1 SYNOPSIS
@@ -315,7 +299,7 @@
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2015 by Chris Williams.
+This software is copyright (c) 2016 by Chris Williams.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CPAN-Perl-Releases-2.54/t/02-refactor.t new/CPAN-Perl-Releases-2.56/t/02-refactor.t
--- old/CPAN-Perl-Releases-2.54/t/02-refactor.t 2015-12-21 23:54:46.000000000 +0100
+++ new/CPAN-Perl-Releases-2.56/t/02-refactor.t 2016-01-20 23:33:57.000000000 +0100
@@ -276,38 +276,10 @@
"tar.bz2" => "R/RJ/RJBS/perl-5.17.11.tar.bz2",
"tar.gz" => "R/RJ/RJBS/perl-5.17.11.tar.gz",
},
- "5.18.0-RC1" => {
- "tar.bz2" => "R/RJ/RJBS/perl-5.18.0-RC1.tar.bz2",
- "tar.gz" => "R/RJ/RJBS/perl-5.18.0-RC1.tar.gz",
- },
- "5.18.0-RC2" => {
- "tar.bz2" => "R/RJ/RJBS/perl-5.18.0-RC2.tar.bz2",
- "tar.gz" => "R/RJ/RJBS/perl-5.18.0-RC2.tar.gz",
- },
- "5.18.0-RC3" => {
- "tar.bz2" => "R/RJ/RJBS/perl-5.18.0-RC3.tar.bz2",
- "tar.gz" => "R/RJ/RJBS/perl-5.18.0-RC3.tar.gz",
- },
- "5.18.0-RC4" => {
- "tar.bz2" => "R/RJ/RJBS/perl-5.18.0-RC4.tar.bz2",
- "tar.gz" => "R/RJ/RJBS/perl-5.18.0-RC4.tar.gz",
- },
"5.18.0" => {
"tar.bz2" => "R/RJ/RJBS/perl-5.18.0.tar.bz2",
"tar.gz" => "R/RJ/RJBS/perl-5.18.0.tar.gz",
},
- "5.18.1-RC1" => {
- "tar.bz2" => "R/RJ/RJBS/perl-5.18.1-RC1.tar.bz2",
- "tar.gz" => "R/RJ/RJBS/perl-5.18.1-RC1.tar.gz",
- },
- "5.18.1-RC2" => {
- "tar.bz2" => "R/RJ/RJBS/perl-5.18.1-RC2.tar.bz2",
- "tar.gz" => "R/RJ/RJBS/perl-5.18.1-RC2.tar.gz",
- },
- "5.18.1-RC3" => {
- "tar.bz2" => "R/RJ/RJBS/perl-5.18.1-RC3.tar.bz2",
- "tar.gz" => "R/RJ/RJBS/perl-5.18.1-RC3.tar.gz",
- },
"5.18.1" => {
"tar.bz2" => "R/RJ/RJBS/perl-5.18.1.tar.bz2",
"tar.gz" => "R/RJ/RJBS/perl-5.18.1.tar.gz",
@@ -359,9 +331,6 @@
"5.7.0" => {
"tar.gz" => "J/JH/JHI/perl-5.7.0.tar.gz",
},
- "5.7.1" => {
- "tar.gz" => "J/JH/JHI/perl-5.7.1.tar.gz",
- },
"5.7.2" => {
"tar.gz" => "J/JH/JHI/perl-5.7.2.tar.gz",
},
1
0
Hello community,
here is the log from the commit of package fence-agents for openSUSE:Factory checked in at 2016-01-28 17:24:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fence-agents (Old)
and /work/SRC/openSUSE:Factory/.fence-agents.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fence-agents"
Changes:
--------
--- /work/SRC/openSUSE:Factory/fence-agents/fence-agents.changes 2016-01-15 10:41:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.fence-agents.new/fence-agents.changes 2016-01-28 17:25:38.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 27 10:27:41 UTC 2016 - kgronlund(a)suse.com
+
+- Package fence_dummy in fence-agents-devel package
+- Clean up package
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fence-agents.spec ++++++
--- /var/tmp/diff_new_pack.bDgWKC/_old 2016-01-28 17:25:38.000000000 +0100
+++ /var/tmp/diff_new_pack.bDgWKC/_new 2016-01-28 17:25:38.000000000 +0100
@@ -27,15 +27,10 @@
Url: https://github.com/ClusterLabs/fence-agents
Source0: %{name}-%{version}.tar.gz
-Requires: python-curl
-Requires: python-openssl
-Requires: python-pexpect
-Requires: python-requests
-Requires: python-suds
-
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
+BuildRequires: fdupes
BuildRequires: glibc-devel
BuildRequires: libtool
BuildRequires: libxml2-tools
@@ -53,20 +48,16 @@
BuildRequires: python-xml
BuildRequires: xz
-%package -n fence-agents-unsupported
-Summary: Fence Agents for Pacemaker from RHCS
-Group: Productivity/Clustering/HA
-Requires: %{name} = %{version}-%{release}
-# These are requirements of specific fencing agents; when moving the
-# agent over to the supported main package, make sure to also shift the
-# Requires if needed
Requires: net-snmp
Requires: openssh
Requires: perl-Net-Telnet
+Requires: python-curl
+Requires: python-openssl
+Requires: python-pexpect
+Requires: python-requests
+Requires: python-suds
Requires: sg3_utils
Requires: telnet
-# for fence_vmware_soap:
-Requires: python-suds
# This is required by fence_virsh. Per discussion on fedora-devel
# switching from package to file based require.
Requires: /usr/bin/virsh
@@ -75,83 +66,23 @@
# have changed Requires around. Make sure to get the right one.
Requires: /usr/bin/ipmitool
+%if 0%{?with_regression_tests}
+BuildRequires: time
+%endif
+
%description
Fence Agents is a collection of scripts to handle remote power
management for several devices.
+%package devel
+Summary: Fence Agents for Pacemaker from RHCS
+Group: Development/Tools/Other
+Requires: %{name} = %{version}
-
-Authors:
---------
- Abhijith Das <adas(a)redhat.com>
- Adam Manthei <amanthei(a)redhat.com>
- A. J. Lewis <alewis(a)redhat.com>
- Alasdair G. Kergon <agk(a)redhat.com>
- Andrew Price <andy(a)andrewprice.me.uk>
- Benjamin Marzinski <bmarzins(a)redhat.com>
- Bob Peterson <rpeterso(a)redhat.com>
- Chris Feist <cfeist(a)redhat.com>
- Christine Caulfield <ccaulfie(a)redhat.com>
- Daniel Phillips <phillips(a)redhat.com>
- David Teigland <teigland(a)redhat.com>
- Fabio M. Di Nitto <fdinitto(a)redhat.com>
- James Parsons <jparsons(a)redhat.com>
- Joel Becker <joel.becker(a)oracle.com>
- Jonathan Brassow <jbrassow(a)redhat.com>
- jparsons <jparsons(a)redhat.com>
- Ken Preslan <kpreslan(a)redhat.com>
- Lon Hohberger <lhh(a)redhat.com>
- Marc - A. Dahlhaus <mad(a)wol.de>
- Marek 'marx' Grac <mgrac(a)redhat.com>
- Mark Hlawatschek <hlawatschek(a)atix.de>
- Michael Conrad Tadpol Tilstra <mtilstra(a)redhat.com>
- Patrick Caulfield <pcaulfie(a)redhat.com>
- Robert Peterson <rpeterso(a)redhat.com>
- Ross Vandegrift <ross(a)kallisti.us>
- Ryan McCabe <rmccabe(a)redhat.com>
- Ryan O'Hara <rohara(a)redhat.com>
- Stanko Kupcevic <kupcevic(a)redhat.com>
- Steven Whitehouse <swhiteho(a)redhat.com>
- Wendy Cheng <wcheng(a)redhat.com>
-
-%description -n fence-agents-unsupported
+%description devel
Fence Agents is a collection of scripts to handle remote power
-management for several devices.
-
-
-
-Authors:
---------
- Abhijith Das <adas(a)redhat.com>
- Adam Manthei <amanthei(a)redhat.com>
- A. J. Lewis <alewis(a)redhat.com>
- Alasdair G. Kergon <agk(a)redhat.com>
- Andrew Price <andy(a)andrewprice.me.uk>
- Benjamin Marzinski <bmarzins(a)redhat.com>
- Bob Peterson <rpeterso(a)redhat.com>
- Chris Feist <cfeist(a)redhat.com>
- Christine Caulfield <ccaulfie(a)redhat.com>
- Daniel Phillips <phillips(a)redhat.com>
- David Teigland <teigland(a)redhat.com>
- Fabio M. Di Nitto <fdinitto(a)redhat.com>
- James Parsons <jparsons(a)redhat.com>
- Joel Becker <joel.becker(a)oracle.com>
- Jonathan Brassow <jbrassow(a)redhat.com>
- jparsons <jparsons(a)redhat.com>
- Ken Preslan <kpreslan(a)redhat.com>
- Lon Hohberger <lhh(a)redhat.com>
- Marc - A. Dahlhaus <mad(a)wol.de>
- Marek 'marx' Grac <mgrac(a)redhat.com>
- Mark Hlawatschek <hlawatschek(a)atix.de>
- Michael Conrad Tadpol Tilstra <mtilstra(a)redhat.com>
- Patrick Caulfield <pcaulfie(a)redhat.com>
- Robert Peterson <rpeterso(a)redhat.com>
- Ross Vandegrift <ross(a)kallisti.us>
- Ryan McCabe <rmccabe(a)redhat.com>
- Ryan O'Hara <rohara(a)redhat.com>
- Stanko Kupcevic <kupcevic(a)redhat.com>
- Steven Whitehouse <swhiteho(a)redhat.com>
- Wendy Cheng <wcheng(a)redhat.com>
+management for several devices. This package contains
+fence agents only suitable for development.
%prep
%setup -q -n %{name}-%{version}
@@ -168,42 +99,38 @@
## tree fix up
# fix libfence permissions
-chmod 0755 %{buildroot}%{_datadir}/fence/*.py
+chmod 0755 %{buildroot}%{_datadir}/fence/fenc*.py
# remove docs
rm -rf %{buildroot}/usr/share/doc/fence-agents
# create links to agents in the plugins dir
mkdir -p %{buildroot}%{plugin_dir}
ln -s %{_sbindir}/fence_cisco_ucs %{buildroot}%{plugin_dir}
+%fdupes %buildroot%{_sbindir}
+%fdupes %buildroot%{_datadir}/cluster
-%clean
-if
- [ -n "${RPM_BUILD_ROOT}" -a "${RPM_BUILD_ROOT}" != "/" ]
-then
- rm -rf $RPM_BUILD_ROOT
-fi
+%if 0%{?with_regression_tests}
+%check
+make check
+PYTHONPATH=fence/agents/lib python fence/agents/lib/tests/test_fencing.py
+%endif
%files
%defattr(-,root,root,-)
%doc doc/COPYING.* doc/COPYRIGHT doc/README.licence
-#%%dir %%{_sysconfdir}/cluster
%dir %{plugin_dir}
%dir %{_libdir}/stonith/plugins
%dir %{_libdir}/stonith
%{_datadir}/fence
%{_datadir}/cluster
-#%%{_sbindir}/fence_cisco_ucs
-#%%{_mandir}/man8/fence_cisco_ucs*
%{plugin_dir}/fence_cisco_ucs
-
-#%%files -n fence-agents-unsupported
-#%%defattr(-,root,root,-)
-#%%config(noreplace) %%{_sysconfdir}/cluster/fence_na.conf
%{_sbindir}/fence_*
-#%%exclude %%{_sbindir}/fence_cisco_ucs
%exclude %{_sbindir}/fence_dummy
%exclude %{_mandir}/man8/fence_dummy*
%{_mandir}/man8/fence_*
-#%%exclude %%{_mandir}/man8/fence_cisco_ucs*
%{_libexecdir}/fence_*
+%files devel
+%{_sbindir}/fence_dummy
+%{_mandir}/man8/fence_dummy*
+
%changelog
1
0
Hello community,
here is the log from the commit of package perl-Minion for openSUSE:Factory checked in at 2016-01-28 17:24:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Minion (Old)
and /work/SRC/openSUSE:Factory/.perl-Minion.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Minion"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Minion/perl-Minion.changes 2016-01-22 01:09:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Minion.new/perl-Minion.changes 2016-01-28 17:25:36.000000000 +0100
@@ -1,0 +2,9 @@
+Wed Jan 27 10:13:10 UTC 2016 - coolo(a)suse.com
+
+- updated to 4.04
+ see /usr/share/doc/packages/perl-Minion/Changes
+
+ 4.04 2016-01-23
+ - Updated Minion::Backend::Pg to use new Mojo::Pg features.
+
+-------------------------------------------------------------------
Old:
----
Minion-4.03.tar.gz
New:
----
Minion-4.04.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Minion.spec ++++++
--- /var/tmp/diff_new_pack.LHSaYF/_old 2016-01-28 17:25:37.000000000 +0100
+++ /var/tmp/diff_new_pack.LHSaYF/_new 2016-01-28 17:25:37.000000000 +0100
@@ -17,7 +17,7 @@
Name: perl-Minion
-Version: 4.03
+Version: 4.04
Release: 0
%define cpan_name Minion
Summary: Job queue
++++++ Minion-4.03.tar.gz -> Minion-4.04.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-4.03/Changes new/Minion-4.04/Changes
--- old/Minion-4.03/Changes 2016-01-17 17:52:03.000000000 +0100
+++ new/Minion-4.04/Changes 2016-01-23 04:33:42.000000000 +0100
@@ -1,4 +1,7 @@
+4.04 2016-01-23
+ - Updated Minion::Backend::Pg to use new Mojo::Pg features.
+
4.03 2016-01-17
- Removed an unused index from Minion::Backend::Pg.
- Fixed a bug where the worker command would always watch the default queue.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-4.03/META.json new/Minion-4.04/META.json
--- old/Minion-4.03/META.json 2016-01-17 23:33:08.000000000 +0100
+++ new/Minion-4.04/META.json 2016-01-23 04:38:50.000000000 +0100
@@ -54,5 +54,5 @@
},
"x_IRC" : "irc://irc.perl.org/#mojo"
},
- "version" : "4.03"
+ "version" : "4.04"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-4.03/META.yml new/Minion-4.04/META.yml
--- old/Minion-4.03/META.yml 2016-01-17 23:33:08.000000000 +0100
+++ new/Minion-4.04/META.yml 2016-01-23 04:38:50.000000000 +0100
@@ -27,4 +27,4 @@
homepage: http://mojolicious.org
license: http://www.opensource.org/licenses/artistic-license-2.0
repository: https://github.com/kraih/minion.git
-version: '4.03'
+version: '4.04'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-4.03/lib/Minion/Backend/Pg.pm new/Minion-4.04/lib/Minion/Backend/Pg.pm
--- old/Minion-4.03/lib/Minion/Backend/Pg.pm 2016-01-17 23:30:50.000000000 +0100
+++ new/Minion-4.04/lib/Minion/Backend/Pg.pm 2016-01-23 04:33:36.000000000 +0100
@@ -74,9 +74,8 @@
sub new {
my $self = shift->SUPER::new(pg => Mojo::Pg->new(@_));
- my $pg = $self->pg->max_connections(1);
+ my $pg = $self->pg->auto_migrate(1)->max_connections(1);
$pg->migrations->name('minion')->from_data;
- $pg->once(connection => sub { shift->migrations->migrate });
return $self;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-4.03/lib/Minion.pm new/Minion-4.04/lib/Minion.pm
--- old/Minion-4.03/lib/Minion.pm 2016-01-06 19:48:29.000000000 +0100
+++ new/Minion-4.04/lib/Minion.pm 2016-01-22 22:30:56.000000000 +0100
@@ -16,7 +16,7 @@
has remove_after => 864000;
has tasks => sub { {} };
-our $VERSION = '4.03';
+our $VERSION = '4.04';
sub add_task { ($_[0]->tasks->{$_[1]} = $_[2]) and return $_[0] }
1
0
Hello community,
here is the log from the commit of package easytag for openSUSE:Factory checked in at 2016-01-28 17:24:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/easytag (Old)
and /work/SRC/openSUSE:Factory/.easytag.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "easytag"
Changes:
--------
--- /work/SRC/openSUSE:Factory/easytag/easytag.changes 2015-08-31 22:59:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.easytag.new/easytag.changes 2016-01-28 17:25:32.000000000 +0100
@@ -1,0 +2,21 @@
+Tue Jan 26 08:00:11 UTC 2016 - zaitor(a)opensuse.org
+
+- Update to version 2.4.1:
+ + Opus parsing crash fix.
+ + Playlist writing crash fix.
+ + Handle FLAC files with an invalid sample rate.
+ + Fix generated playlist order.
+ + Consistently use the GLib filename encoding.
+ + Extensive refactoring of locale and encoding handling.
+ + Improve fallback legacy locale detection.
+ + CDDB fill fields fix.
+ + Fix CDDB search fields and categories settings handling.
+ + Use the correct encoding when writing ID3v2.4 tags.
+ + Fix a linking error on Mac OS X.
+ + Improve illegal character logic, especially for trailing
+ characters.
+ + Remove several outdated and unnecessary Windows compatibility
+ wrappers.
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
easytag-2.4.0.tar.xz
New:
----
easytag-2.4.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ easytag.spec ++++++
--- /var/tmp/diff_new_pack.e7q078/_old 2016-01-28 17:25:33.000000000 +0100
+++ /var/tmp/diff_new_pack.e7q078/_new 2016-01-28 17:25:33.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package easytag
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: easytag
-Version: 2.4.0
+Version: 2.4.1
Release: 0
Summary: GTK+ tag editor for audio files
License: GPL-2.0+
@@ -38,7 +38,7 @@
BuildRequires: pkgconfig(gio-2.0) >= 2.38.0
BuildRequires: pkgconfig(gtk+-3.0) >= 3.10.0
BuildRequires: pkgconfig(id3tag)
-BuildRequires: pkgconfig(libnautilus-extension)
+BuildRequires: pkgconfig(libnautilus-extension) >= 3.0
BuildRequires: pkgconfig(ogg) >= 1.0
BuildRequires: pkgconfig(opusfile)
BuildRequires: pkgconfig(speex)
++++++ easytag-2.4.0.tar.xz -> easytag-2.4.1.tar.xz ++++++
++++ 80748 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package syncthing for openSUSE:Factory checked in at 2016-01-28 17:24:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/syncthing (Old)
and /work/SRC/openSUSE:Factory/.syncthing.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "syncthing"
Changes:
--------
--- /work/SRC/openSUSE:Factory/syncthing/syncthing.changes 2016-01-20 09:54:51.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.syncthing.new/syncthing.changes 2016-01-28 17:25:31.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Jan 27 06:26:36 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to 0.12.16:
+ * Don't require restart for usage reporting changes.
+ * Avoid spurious scans with inotify package.
+
+-------------------------------------------------------------------
Old:
----
syncthing-source-v0.12.15.tar.gz
New:
----
syncthing-source-v0.12.16.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ syncthing.spec ++++++
--- /var/tmp/diff_new_pack.dAaexx/_old 2016-01-28 17:25:32.000000000 +0100
+++ /var/tmp/diff_new_pack.dAaexx/_new 2016-01-28 17:25:32.000000000 +0100
@@ -17,7 +17,7 @@
Name: syncthing
-Version: 0.12.15
+Version: 0.12.16
Release: 0
Summary: FOSS Continuous File Synchronisation
License: MPL-2.0
++++++ syncthing-source-v0.12.15.tar.gz -> syncthing-source-v0.12.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/RELEASE new/syncthing/RELEASE
--- old/syncthing/RELEASE 2016-01-17 10:58:06.000000000 +0100
+++ new/syncthing/RELEASE 2016-01-24 08:14:53.000000000 +0100
@@ -1 +1 @@
-v0.12.15
+v0.12.16
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/build.go new/syncthing/build.go
--- old/syncthing/build.go 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/build.go 2016-01-24 08:14:48.000000000 +0100
@@ -26,6 +26,7 @@
"runtime"
"strconv"
"strings"
+ "text/template"
"time"
)
@@ -331,33 +332,32 @@
}
}
- control := `Package: syncthing
-Architecture: {{arch}}
-Depends: libc6
-Version: {{version}}
-Maintainer: Syncthing Release Management <release(a)syncthing.net>
-Description: Open Source Continuous File Synchronization
- Syncthing does bidirectional synchronization of files between two or
- more computers.
-`
- changelog := `syncthing ({{version}}); urgency=medium
-
- * Packaging of {{version}}.
-
- -- Jakob Borg <jakob(a)nym.se> {{date}}
-`
-
- control = strings.Replace(control, "{{arch}}", debarch, -1)
- control = strings.Replace(control, "{{version}}", version[1:], -1)
- changelog = strings.Replace(changelog, "{{arch}}", debarch, -1)
- changelog = strings.Replace(changelog, "{{version}}", version[1:], -1)
- changelog = strings.Replace(changelog, "{{date}}", time.Now().Format(time.RFC1123), -1)
-
os.MkdirAll("deb/DEBIAN", 0755)
- ioutil.WriteFile("deb/DEBIAN/control", []byte(control), 0644)
- ioutil.WriteFile("deb/DEBIAN/compat", []byte("9\n"), 0644)
- ioutil.WriteFile("deb/DEBIAN/changelog", []byte(changelog), 0644)
+ data := map[string]string{
+ "arch": debarch,
+ "version": version[1:],
+ "date": time.Now().Format(time.RFC1123),
+ }
+ for _, file := range listFiles("debian") {
+ tpl, err := template.New(filepath.Base(file)).ParseFiles(file)
+ if err != nil {
+ log.Fatal(err)
+ }
+ outFile := filepath.Join("deb/DEBIAN", filepath.Base(file))
+ out, err := os.Create(outFile)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if err := tpl.Execute(out, data); err != nil {
+ log.Fatal(err)
+ }
+ if err := out.Close(); err != nil {
+ log.Fatal(err)
+ }
+ info, _ := os.Lstat(file)
+ os.Chmod(outFile, info.Mode())
+ }
}
func copyFile(src, dst string, perm os.FileMode) error {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/cmd/syncthing/gui.go new/syncthing/cmd/syncthing/gui.go
--- old/syncthing/cmd/syncthing/gui.go 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/cmd/syncthing/gui.go 2016-01-24 08:14:48.000000000 +0100
@@ -1220,7 +1220,7 @@
func (v jsonVersionVector) MarshalJSON() ([]byte, error) {
res := make([]string, len(v))
for i, c := range v {
- res[i] = fmt.Sprintf("%d:%d", c.ID, c.Value)
+ res[i] = fmt.Sprintf("%v:%d", c.ID, c.Value)
}
return json.Marshal(res)
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/cmd/syncthing/main.go new/syncthing/cmd/syncthing/main.go
--- old/syncthing/cmd/syncthing/main.go 2016-01-13 22:34:47.000000000 +0100
+++ new/syncthing/cmd/syncthing/main.go 2016-01-24 08:14:48.000000000 +0100
@@ -1206,7 +1206,7 @@
// short ID:s; that is, that the devices in the cluster all have unique
// initial 64 bits.
func checkShortIDs(cfg *config.Wrapper) error {
- exists := make(map[uint64]protocol.DeviceID)
+ exists := make(map[protocol.ShortID]protocol.DeviceID)
for deviceID := range cfg.Devices() {
shortID := deviceID.Short()
if otherID, ok := exists[shortID]; ok {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/debian/changelog new/syncthing/debian/changelog
--- old/syncthing/debian/changelog 1970-01-01 01:00:00.000000000 +0100
+++ new/syncthing/debian/changelog 2016-01-24 08:14:48.000000000 +0100
@@ -0,0 +1,5 @@
+syncthing ({{.version}}); urgency=medium
+
+ * Packaging of {{.version}}.
+
+ -- Syncthing Release Management <release(a)syncthing.net> {{.date}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/debian/compat new/syncthing/debian/compat
--- old/syncthing/debian/compat 1970-01-01 01:00:00.000000000 +0100
+++ new/syncthing/debian/compat 2016-01-24 08:14:48.000000000 +0100
@@ -0,0 +1 @@
+9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/debian/control new/syncthing/debian/control
--- old/syncthing/debian/control 1970-01-01 01:00:00.000000000 +0100
+++ new/syncthing/debian/control 2016-01-24 08:14:48.000000000 +0100
@@ -0,0 +1,8 @@
+Package: syncthing
+Architecture: {{.arch}}
+Depends: libc6, procps
+Version: {{.version}}
+Maintainer: Syncthing Release Management <release(a)syncthing.net>
+Description: Open Source Continuous File Synchronization
+ Syncthing does bidirectional synchronization of files between two or
+ more computers.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/debian/postinst new/syncthing/debian/postinst
--- old/syncthing/debian/postinst 1970-01-01 01:00:00.000000000 +0100
+++ new/syncthing/debian/postinst 2016-01-24 08:14:48.000000000 +0100
@@ -0,0 +1,6 @@
+#!/bin/bash
+set -euo pipefail
+
+if [[ ${1:-} == configure ]]; then
+ pkill -x -HUP syncthing || true
+fi
Files old/syncthing/extra/FAQ.pdf and new/syncthing/extra/FAQ.pdf differ
Files old/syncthing/extra/Getting-Started.pdf and new/syncthing/extra/Getting-Started.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/gui/default/assets/lang/lang-pt-BR.json new/syncthing/gui/default/assets/lang/lang-pt-BR.json
--- old/syncthing/gui/default/assets/lang/lang-pt-BR.json 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/gui/default/assets/lang/lang-pt-BR.json 2016-01-24 08:14:48.000000000 +0100
@@ -119,7 +119,7 @@
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Caminho para a pasta na máquina local. Será criado caso não exista. O caractere til (~) pode ser usado como um atalho para",
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "O caminho onde as versões serão salvas (deixe vazio para usar a pasta padrão .stversions dentro desta pasta).",
"Pause": "Pausar",
- "Paused": "Pausada",
+ "Paused": "Em pausa",
"Please consult the release notes before performing a major upgrade.": "Por favor, consulte as notas de lançamento antes de atualizar para uma versão \"major\".",
"Please set a GUI Authentication User and Password in the Settings dialog.": "Por favor, defina um nome de usuário e senha para acesso à interface web, nas configurações.",
"Please wait": "Aguarde",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/auto/gui.files.go new/syncthing/lib/auto/gui.files.go
--- old/syncthing/lib/auto/gui.files.go 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/lib/auto/gui.files.go 2016-01-24 08:14:48.000000000 +0100
@@ -5,7 +5,7 @@
)
const (
- AssetsBuildDate = "Sun, 17 Jan 2016 09:56:51 GMT"
+ AssetsBuildDate = "Sun, 24 Jan 2016 07:09:21 GMT"
)
func Assets() map[string][]byte {
@@ -43,7 +43,7 @@
assets["default/assets/lang/lang-nl.json"], _ = base64.StdEncoding.DecodeString("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")
assets["default/assets/lang/lang-nn.json"], _ = base64.StdEncoding.DecodeString("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")
assets["default/assets/lang/lang-pl.json"], _ = base64.StdEncoding.DecodeString("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")
- assets["default/assets/lang/lang-pt-BR.json"], _ = base64.StdEncoding.DecodeString("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")
+ assets["default/assets/lang/lang-pt-BR.json"], _ = base64.StdEncoding.DecodeString("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")
assets["default/assets/lang/lang-pt-PT.json"], _ = base64.StdEncoding.DecodeString("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")
assets["default/assets/lang/lang-ro-RO.json"], _ = base64.StdEncoding.DecodeString("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")
assets["default/assets/lang/lang-ru.json"], _ = base64.StdEncoding.DecodeString("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")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/model/model.go new/syncthing/lib/model/model.go
--- old/syncthing/lib/model/model.go 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/lib/model/model.go 2016-01-24 08:14:48.000000000 +0100
@@ -67,7 +67,7 @@
finder *db.BlockFinder
progressEmitter *ProgressEmitter
id protocol.DeviceID
- shortID uint64
+ shortID protocol.ShortID
cacheIgnoredFiles bool
protectedFiles []string
@@ -1323,15 +1323,14 @@
var unifySubs []string
nextSub:
for _, sub := range subs {
- for sub != "" {
- parent := filepath.Dir(sub)
- if parent == "." || parent == string(filepath.Separator) {
- parent = ""
- }
- if _, ok = fs.Get(protocol.LocalDeviceID, parent); ok {
+ for sub != "" && sub != ".stfolder" && sub != ".stignore" {
+ if _, ok = fs.Get(protocol.LocalDeviceID, sub); ok {
break
}
- sub = parent
+ sub = filepath.Dir(sub)
+ if sub == "." || sub == string(filepath.Separator) {
+ sub = ""
+ }
}
for _, us := range unifySubs {
if strings.HasPrefix(sub, us) {
@@ -1959,7 +1958,16 @@
}
}
- // All of the generic options require restart
+ // Some options don't require restart as those components handle it fine
+ // by themselves.
+ from.Options.URAccepted = to.Options.URAccepted
+ from.Options.URUniqueID = to.Options.URUniqueID
+ // All of the other generic options require restart. Or at least they may;
+ // removing this check requires going through those options carefully and
+ // making sure there are individual services that handle them correctly.
+ // This code is the "original" requires-restart check and protects other
+ // components that haven't yet been converted to VerifyConfig/CommitConfig
+ // handling.
if !reflect.DeepEqual(from.Options, to.Options) {
l.Debugln(m, "requires restart, options differ")
return false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/model/rwfolder.go new/syncthing/lib/model/rwfolder.go
--- old/syncthing/lib/model/rwfolder.go 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/lib/model/rwfolder.go 2016-01-24 08:14:48.000000000 +0100
@@ -87,7 +87,7 @@
ignorePerms bool
copiers int
pullers int
- shortID uint64
+ shortID protocol.ShortID
order config.PullOrder
maxConflicts int
sleep time.Duration
@@ -108,7 +108,7 @@
errorsMut sync.Mutex
}
-func newRWFolder(m *Model, shortID uint64, cfg config.FolderConfiguration) *rwFolder {
+func newRWFolder(m *Model, shortID protocol.ShortID, cfg config.FolderConfiguration) *rwFolder {
p := &rwFolder{
stateTracker: stateTracker{
folder: cfg.ID,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/osutil/rlimit_unix.go new/syncthing/lib/osutil/rlimit_unix.go
--- old/syncthing/lib/osutil/rlimit_unix.go 2015-10-28 10:58:15.000000000 +0100
+++ new/syncthing/lib/osutil/rlimit_unix.go 2016-01-24 08:14:48.000000000 +0100
@@ -13,7 +13,7 @@
// MaximizeOpenFileLimit tries to set the resoure limit RLIMIT_NOFILE (number
// of open file descriptors) to the max (hard limit), if the current (soft
// limit) is below the max. Returns the new (though possibly unchanged) limit,
-// or an error if it was could not be changed.
+// or an error if it could not be changed.
func MaximizeOpenFileLimit() (int, error) {
// Get the current limit on number of open files.
var lim syscall.Rlimit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/protocol/deviceid.go new/syncthing/lib/protocol/deviceid.go
--- old/syncthing/lib/protocol/deviceid.go 2015-10-30 10:24:01.000000000 +0100
+++ new/syncthing/lib/protocol/deviceid.go 2016-01-24 08:14:48.000000000 +0100
@@ -16,6 +16,7 @@
)
type DeviceID [32]byte
+type ShortID uint64
var LocalDeviceID = DeviceID{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
@@ -69,14 +70,20 @@
}
// Short returns an integer representing bits 0-63 of the device ID.
-func (n DeviceID) Short() uint64 {
- return binary.BigEndian.Uint64(n[:])
+func (n DeviceID) Short() ShortID {
+ return ShortID(binary.BigEndian.Uint64(n[:]))
}
func (n *DeviceID) MarshalText() ([]byte, error) {
return []byte(n.String()), nil
}
+func (s ShortID) String() string {
+ var bs [8]byte
+ binary.BigEndian.PutUint64(bs[:], uint64(s))
+ return base32.StdEncoding.EncodeToString(bs[:])[:7]
+}
+
func (n *DeviceID) UnmarshalText(bs []byte) error {
id := string(bs)
id = strings.Trim(id, "=")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/protocol/deviceid_test.go new/syncthing/lib/protocol/deviceid_test.go
--- old/syncthing/lib/protocol/deviceid_test.go 2015-10-30 10:24:01.000000000 +0100
+++ new/syncthing/lib/protocol/deviceid_test.go 2016-01-24 08:14:48.000000000 +0100
@@ -74,3 +74,25 @@
t.Error("Compare error")
}
}
+
+func TestShortIDString(t *testing.T) {
+ id, _ := DeviceIDFromString(formatted)
+
+ sid := id.Short().String()
+ if len(sid) != 7 {
+ t.Errorf("Wrong length for short ID: got %d, want 7", len(sid))
+ }
+
+ want := formatted[:len(sid)]
+ if sid != want {
+ t.Errorf("Wrong short ID: got %q, want %q", sid, want)
+ }
+}
+
+func TestDeviceIDFromBytes(t *testing.T) {
+ id0, _ := DeviceIDFromString(formatted)
+ id1 := DeviceIDFromBytes(id0[:])
+ if id1.String() != formatted {
+ t.Errorf("Wrong device ID, got %q, want %q", id1, formatted)
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/protocol/protocol_test.go new/syncthing/lib/protocol/protocol_test.go
--- old/syncthing/lib/protocol/protocol_test.go 2016-01-13 22:34:47.000000000 +0100
+++ new/syncthing/lib/protocol/protocol_test.go 2016-01-24 08:14:48.000000000 +0100
@@ -36,7 +36,7 @@
os.Exit(m.Run())
}
-func TestHeaderFunctions(t *testing.T) {
+func TestHeaderEncodeDecode(t *testing.T) {
f := func(ver, id, typ int) bool {
ver = int(uint(ver) % 16)
id = int(uint(id) % 4096)
@@ -50,6 +50,26 @@
}
}
+func TestHeaderMarshalUnmarshal(t *testing.T) {
+ f := func(ver, id, typ int) bool {
+ ver = int(uint(ver) % 16)
+ id = int(uint(id) % 4096)
+ typ = int(uint(typ) % 256)
+ buf := new(bytes.Buffer)
+ xw := xdr.NewWriter(buf)
+ h0 := header{version: ver, msgID: id, msgType: typ}
+ h0.encodeXDR(xw)
+
+ xr := xdr.NewReader(buf)
+ var h1 header
+ h1.decodeXDR(xr)
+ return h0 == h1
+ }
+ if err := quick.Check(f, nil); err != nil {
+ t.Error(err)
+ }
+}
+
func TestHeaderLayout(t *testing.T) {
var e, a uint32
@@ -321,3 +341,47 @@
case <-time.After(250 * time.Millisecond):
}
}
+
+func TestFileInfoSize(t *testing.T) {
+ fi := FileInfo{
+ Blocks: []BlockInfo{
+ {Size: 42},
+ {Offset: 42, Size: 23},
+ {Offset: 42 + 23, Size: 34},
+ },
+ }
+
+ size := fi.Size()
+ want := int64(42 + 23 + 34)
+ if size != want {
+ t.Errorf("Incorrect size reported, got %d, want %d", size, want)
+ }
+
+ size = fi.Size() // Cached, this time
+ if size != want {
+ t.Errorf("Incorrect cached size reported, got %d, want %d", size, want)
+ }
+
+ fi.CachedSize = 8
+ want = 8
+ size = fi.Size() // Ensure it came from the cache
+ if size != want {
+ t.Errorf("Incorrect cached size reported, got %d, want %d", size, want)
+ }
+
+ fi.CachedSize = 0
+ fi.Flags = FlagDirectory
+ want = 128
+ size = fi.Size() // Directories are 128 bytes large
+ if size != want {
+ t.Errorf("Incorrect cached size reported, got %d, want %d", size, want)
+ }
+
+ fi.CachedSize = 0
+ fi.Flags = FlagDeleted
+ want = 128
+ size = fi.Size() // Also deleted files
+ if size != want {
+ t.Errorf("Incorrect cached size reported, got %d, want %d", size, want)
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/protocol/vector.go new/syncthing/lib/protocol/vector.go
--- old/syncthing/lib/protocol/vector.go 2015-10-30 10:24:01.000000000 +0100
+++ new/syncthing/lib/protocol/vector.go 2016-01-24 08:14:48.000000000 +0100
@@ -10,31 +10,31 @@
// Counter represents a single counter in the version vector.
type Counter struct {
- ID uint64
+ ID ShortID
Value uint64
}
// Update returns a Vector with the index for the specific ID incremented by
// one. If it is possible, the vector v is updated and returned. If it is not,
// a copy will be created, updated and returned.
-func (v Vector) Update(ID uint64) Vector {
+func (v Vector) Update(id ShortID) Vector {
for i := range v {
- if v[i].ID == ID {
+ if v[i].ID == id {
// Update an existing index
v[i].Value++
return v
- } else if v[i].ID > ID {
+ } else if v[i].ID > id {
// Insert a new index
nv := make(Vector, len(v)+1)
copy(nv, v[:i])
- nv[i].ID = ID
+ nv[i].ID = id
nv[i].Value = 1
copy(nv[i+1:], v[i:])
return nv
}
}
// Append a new index
- return append(v, Counter{ID, 1})
+ return append(v, Counter{id, 1})
}
// Merge returns the vector containing the maximum indexes from v and b. If it
@@ -105,7 +105,7 @@
}
// Counter returns the current value of the given counter ID.
-func (v Vector) Counter(id uint64) uint64 {
+func (v Vector) Counter(id ShortID) uint64 {
for _, c := range v {
if c.ID == id {
return c.Value
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/protocol/vector_xdr.go new/syncthing/lib/protocol/vector_xdr.go
--- old/syncthing/lib/protocol/vector_xdr.go 2015-10-30 10:24:01.000000000 +0100
+++ new/syncthing/lib/protocol/vector_xdr.go 2016-01-24 08:14:48.000000000 +0100
@@ -21,7 +21,7 @@
func (v Vector) EncodeXDRInto(w xdrWriter) (int, error) {
w.WriteUint32(uint32(len(v)))
for i := range v {
- w.WriteUint64(v[i].ID)
+ w.WriteUint64(uint64(v[i].ID))
w.WriteUint64(v[i].Value)
}
return 4 + 16*len(v), nil
@@ -35,7 +35,7 @@
}
n := make(Vector, l)
for i := range n {
- n[i].ID = r.ReadUint64()
+ n[i].ID = ShortID(r.ReadUint64())
n[i].Value = r.ReadUint64()
}
*v = n
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/scanner/walk.go new/syncthing/lib/scanner/walk.go
--- old/syncthing/lib/scanner/walk.go 2015-11-22 15:59:05.000000000 +0100
+++ new/syncthing/lib/scanner/walk.go 2016-01-24 08:14:48.000000000 +0100
@@ -69,7 +69,7 @@
// Number of routines to use for hashing
Hashers int
// Our vector clock id
- ShortID uint64
+ ShortID protocol.ShortID
// Optional progress tick interval which defines how often FolderScanProgress
// events are emitted. Negative number means disabled.
ProgressTickIntervalS int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/lib/upgrade/upgrade_supported.go new/syncthing/lib/upgrade/upgrade_supported.go
--- old/syncthing/lib/upgrade/upgrade_supported.go 2015-11-29 08:58:55.000000000 +0100
+++ new/syncthing/lib/upgrade/upgrade_supported.go 2016-01-24 08:14:48.000000000 +0100
@@ -56,7 +56,7 @@
return nil
}
if resp.StatusCode > 299 {
- l.Infoln("API call returned HTTP error: %s", resp.Status)
+ l.Infoln("API call returned HTTP error:", resp.Status)
return nil
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-bep.7 new/syncthing/man/syncthing-bep.7
--- old/syncthing/man/syncthing-bep.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-bep.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-BEP" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-BEP" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-bep \- Block Exchange Protocol v1
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-config.5 new/syncthing/man/syncthing-config.5
--- old/syncthing/man/syncthing-config.5 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-config.5 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-CONFIG" "5" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-CONFIG" "5" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-config \- Syncthing Configuration
.
@@ -348,6 +348,19 @@
The word \fBdynamic\fP means to use local and global discovery to find the
device.
.UNINDENT
+.SH IGNOREDDEVICE ELEMENT
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+<ignoredDevice>5SYI2FS\-LW6YAXI\-JJDYETS\-NDBBPIO\-256MWBO\-XDPXWVG\-24QPUM4\-PDW4UQU</ignoredDevice>
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+This optional element lists device IDs that have been specifically ignored. One element must be present for each device ID. Connection attempts from these devices are logged to the console but never displayed in the web GUI.
.SH GUI ELEMENT
.INDENT 0.0
.INDENT 3.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-device-ids.7 new/syncthing/man/syncthing-device-ids.7
--- old/syncthing/man/syncthing-device-ids.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-device-ids.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-DEVICE-IDS" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-DEVICE-IDS" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-device-ids \- Understanding Device IDs
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-event-api.7 new/syncthing/man/syncthing-event-api.7
--- old/syncthing/man/syncthing-event-api.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-event-api.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-EVENT-API" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-EVENT-API" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-event-api \- Event API
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-faq.7 new/syncthing/man/syncthing-faq.7
--- old/syncthing/man/syncthing-faq.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-faq.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-FAQ" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-FAQ" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-faq \- Frequently Asked Questions
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-globaldisco.7 new/syncthing/man/syncthing-globaldisco.7
--- old/syncthing/man/syncthing-globaldisco.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-globaldisco.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-GLOBALDISCO" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-GLOBALDISCO" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-globaldisco \- Global Discovery Protocol v3
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-localdisco.7 new/syncthing/man/syncthing-localdisco.7
--- old/syncthing/man/syncthing-localdisco.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-localdisco.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-LOCALDISCO" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-LOCALDISCO" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-localdisco \- Local Discovery Protocol v3
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-networking.7 new/syncthing/man/syncthing-networking.7
--- old/syncthing/man/syncthing-networking.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-networking.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-NETWORKING" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-NETWORKING" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-networking \- Firewall Setup
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-relay.7 new/syncthing/man/syncthing-relay.7
--- old/syncthing/man/syncthing-relay.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-relay.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-RELAY" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-RELAY" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-relay \- Relay Protocol v1
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-rest-api.7 new/syncthing/man/syncthing-rest-api.7
--- old/syncthing/man/syncthing-rest-api.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-rest-api.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-REST-API" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-REST-API" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-rest-api \- REST API
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-security.7 new/syncthing/man/syncthing-security.7
--- old/syncthing/man/syncthing-security.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-security.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-SECURITY" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-SECURITY" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-security \- Security Principles
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-stignore.5 new/syncthing/man/syncthing-stignore.5
--- old/syncthing/man/syncthing-stignore.5 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-stignore.5 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING-STIGNORE" "5" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING-STIGNORE" "5" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing-stignore \- Prevent files from being synchronized to other nodes
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing-versioning.7 new/syncthing/man/syncthing-versioning.7
--- old/syncthing/man/syncthing-versioning.7 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing-versioning.7 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "TODO" "7" "January 17, 2016" "v0.12" "Syncthing"
+.TH "TODO" "7" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
Todo \- Keep automatic backups of deleted files by other nodes
.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/syncthing/man/syncthing.1 new/syncthing/man/syncthing.1
--- old/syncthing/man/syncthing.1 2016-01-17 10:58:01.000000000 +0100
+++ new/syncthing/man/syncthing.1 2016-01-24 08:14:48.000000000 +0100
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "SYNCTHING" "1" "January 17, 2016" "v0.12" "Syncthing"
+.TH "SYNCTHING" "1" "January 20, 2016" "v0.12" "Syncthing"
.SH NAME
syncthing \- Syncthing
.
1
0
Hello community,
here is the log from the commit of package ghc-file-embed for openSUSE:Factory checked in at 2016-01-28 17:24:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-file-embed (Old)
and /work/SRC/openSUSE:Factory/.ghc-file-embed.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-file-embed"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-file-embed/ghc-file-embed.changes 2015-11-26 17:03:40.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-file-embed.new/ghc-file-embed.changes 2016-01-28 17:25:30.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Jan 22 08:46:18 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.0.9.1
+* embedStringFile
+
+-------------------------------------------------------------------
Old:
----
file-embed-0.0.9.tar.gz
New:
----
file-embed-0.0.9.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-file-embed.spec ++++++
--- /var/tmp/diff_new_pack.2xHCuS/_old 2016-01-28 17:25:30.000000000 +0100
+++ /var/tmp/diff_new_pack.2xHCuS/_new 2016-01-28 17:25:30.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-file-embed
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
%bcond_without tests
Name: ghc-file-embed
-Version: 0.0.9
+Version: 0.0.9.1
Release: 0
Summary: Use Template Haskell to embed file contents directly
License: BSD-2-Clause
++++++ file-embed-0.0.9.tar.gz -> file-embed-0.0.9.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/file-embed-0.0.9/Data/FileEmbed.hs new/file-embed-0.0.9.1/Data/FileEmbed.hs
--- old/file-embed-0.0.9/Data/FileEmbed.hs 2015-08-14 06:52:02.000000000 +0200
+++ new/file-embed-0.0.9.1/Data/FileEmbed.hs 2016-01-20 08:30:52.000000000 +0100
@@ -3,7 +3,7 @@
{-# LANGUAGE OverloadedStrings #-}
-- | This module uses template Haskell. Following is a simplified explanation of usage for those unfamiliar with calling Template Haskell functions.
--
--- The function @embedFile@ in this modules embeds a file into the exceutable
+-- The function @embedFile@ in this modules embeds a file into the executable
-- that you can use it at runtime. A file is represented as a @ByteString@.
-- However, as you can see below, the type signature indicates a value of type
-- @Q Exp@ will be returned. In order to convert this into a @ByteString@, you
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/file-embed-0.0.9/file-embed.cabal new/file-embed-0.0.9.1/file-embed.cabal
--- old/file-embed-0.0.9/file-embed.cabal 2015-08-14 06:52:02.000000000 +0200
+++ new/file-embed-0.0.9.1/file-embed.cabal 2016-01-20 08:30:52.000000000 +0100
@@ -1,5 +1,5 @@
name: file-embed
-version: 0.0.9
+version: 0.0.9.1
license: BSD3
license-file: LICENSE
author: Michael Snoyman <michael(a)snoyman.com>
@@ -32,7 +32,6 @@
hs-source-dirs: test
build-depends: base
, file-embed
- , HUnit
, filepath
source-repository head
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/file-embed-0.0.9/test/main.hs new/file-embed-0.0.9.1/test/main.hs
--- old/file-embed-0.0.9/test/main.hs 2015-08-14 06:52:02.000000000 +0200
+++ new/file-embed-0.0.9.1/test/main.hs 2016-01-20 08:30:52.000000000 +0100
@@ -1,10 +1,15 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE OverloadedStrings #-}
+import Control.Monad (unless)
import Data.FileEmbed
-import Test.HUnit ((@?=))
import System.FilePath ((</>))
+infix 1 @?=
+
+(@?=) :: (Eq a, Show a) => a -> a -> IO ()
+actual @?= expected = unless (actual == expected) (error $ "expected: " ++ show expected ++ "\n but got: " ++ show actual)
+
main :: IO ()
main = do
let received = $(embedDir "test/sample")
1
0
Hello community,
here is the log from the commit of package sysdig for openSUSE:Factory checked in at 2016-01-28 17:24:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sysdig (Old)
and /work/SRC/openSUSE:Factory/.sysdig.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sysdig"
Changes:
--------
--- /work/SRC/openSUSE:Factory/sysdig/sysdig.changes 2015-12-25 13:06:10.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.sysdig.new/sysdig.changes 2016-01-28 17:25:27.000000000 +0100
@@ -1,0 +2,26 @@
+Tue Jan 26 19:36:57 UTC 2016 - mpluskal(a)suse.com
+
+- Update to 0.7.1
+ * Fix sysdig-probe compilation for kernel < 3.4.0
+ * Fix compilation on OSX
+- Changes for 0.7.0
+ * Fix sysdig-probe for kernel 4.4
+ * Fix a remotely possible deadlock during ioctl calls
+ * Fix Kubernetes support when data returned from the API server
+ is particularly big
+ * Minor bugfixes
+ * Spectrogram views in csysdig: spectro_all (System call latency
+ spectrogram) and spectro_file (File I/O latency spectrogram)
+ * Ability to authenticate to a Kubernetes API server using a
+ certificate, via -K <file_name> or --k8s-api-cert=<file_name>.
+ Can also be specified via the environment variable
+ SYSDIG_K8S_API_CERT
+ * Ability to sort columns in csysdig views using the keyboard
+ * --filter-proclist: apply the filter to the process table
+ * -M: add the possibility to stop collecting after X seconds
+ evt.latency.quantized: 10-base log of the delta between an
+ exit event and the correspondent enter event evt.latency.human:
+ delta between an exit event and the correspondent enter event,
+ as a human readable string (e.g. 10.3ms)
+
+-------------------------------------------------------------------
Old:
----
sysdig-0.6.0.tar.gz
New:
----
sysdig-0.7.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sysdig.spec ++++++
--- /var/tmp/diff_new_pack.Bu3dtp/_old 2016-01-28 17:25:28.000000000 +0100
+++ /var/tmp/diff_new_pack.Bu3dtp/_new 2016-01-28 17:25:28.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package sysdig
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: sysdig
-Version: 0.6.0
+Version: 0.7.1
Release: 0
Summary: System-level exploration
License: GPL-2.0
++++++ sysdig-0.6.0.tar.gz -> sysdig-0.7.1.tar.gz ++++++
++++ 10208 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package icedtea-web for openSUSE:Factory checked in at 2016-01-28 17:24:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/icedtea-web (Old)
and /work/SRC/openSUSE:Factory/.icedtea-web.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "icedtea-web"
Changes:
--------
--- /work/SRC/openSUSE:Factory/icedtea-web/icedtea-web.changes 2015-11-12 19:40:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.icedtea-web.new/icedtea-web.changes 2016-01-28 17:25:26.000000000 +0100
@@ -1,0 +2,14 @@
+Mon Jan 18 08:12:44 UTC 2016 - fstrba(a)suse.com
+
+- Let java-VERSION-openjdk-plugin supplement java-VERSION-openjdk
+ only and not the generic java-openjdk (bsc#929464)
+
+-------------------------------------------------------------------
+Wed Jan 13 08:26:03 UTC 2016 - fstrba(a)suse.com
+
+- Added patch:
+ * icedtea-web-1.6.1-HexDumpEncoder.patch
+ - Adapt to the move of HexDumpEncoder from sun.misc to
+ sun.security.utils from jdk-9+99.
+
+-------------------------------------------------------------------
@@ -111 +125 @@
-- Update to 1.5.2
+- Update to 1.5.2 (fate#318956)
java-1_7_0-openjdk-plugin.changes: same change
java-1_8_0-openjdk-plugin.changes: same change
New:
----
icedtea-web-1.6.1-HexDumpEncoder.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ icedtea-web.spec ++++++
--- /var/tmp/diff_new_pack.ZQVHLI/_old 2016-01-28 17:25:27.000000000 +0100
+++ /var/tmp/diff_new_pack.ZQVHLI/_new 2016-01-28 17:25:27.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package icedtea-web
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
++++++ java-1_7_0-openjdk-plugin.spec ++++++
--- /var/tmp/diff_new_pack.ZQVHLI/_old 2016-01-28 17:25:27.000000000 +0100
+++ /var/tmp/diff_new_pack.ZQVHLI/_new 2016-01-28 17:25:27.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package java-1_7_0-openjdk-plugin
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -34,6 +34,7 @@
Url: http://icedtea.classpath.org
Source0: http://icedtea.classpath.org/download/source/icedtea-web-%{version}.tar.gz
Patch0: icedtea-web-1.6.1-doInit.patch
+Patch1: icedtea-web-1.6.1-HexDumpEncoder.patch
Patch1000: icedtea-web-suse-desktop-files.patch
BuildRequires: %{java_name}-devel >= %{javaver}
# IcedTeaPlugin build requirements.
@@ -56,8 +57,8 @@
# Postun requires alternatives to uninstall tool alternatives.
Requires(postun): update-alternatives
Suggests: icedtea-web-javadoc
-# bnc#737105/FATE#313084
-Supplements: packageand(browser(npapi):java-openjdk)
+# bnc#737105/FATE#313084/bsc#929464
+Supplements: packageand(browser(npapi):%{java_name})
Provides: icedtea-web = %{version}-%{release}
Provides: java-plugin = %{javaver}
Obsoletes: icedtea-web < %{version}-%{release}
@@ -83,6 +84,7 @@
%prep
%setup -q -n icedtea-web-%{version}
%patch0 -p1
+%patch1 -p1
%patch1000 -p1
%build
java-1_8_0-openjdk-plugin.spec: same change
++++++ icedtea-web-1.6.1-HexDumpEncoder.patch ++++++
--- a/acinclude.m4 Thu Jan 14 12:22:37 2016 +0100
+++ b/acinclude.m4 Thu Jan 14 16:28:48 2016 +0100
@@ -500,6 +500,55 @@
AC_PROVIDE([$0])dnl
])
+dnl Macro to check for a Java class HexDumpEncoder
+AC_DEFUN([IT_CHECK_FOR_HEXDUMPENCODER],[
+AC_REQUIRE([IT_FIND_JAVAC])
+AC_REQUIRE([IT_FIND_JAVA])
+AC_CACHE_CHECK([if HexDumpEncoder is available], it_cv_HEXDUMPENCODER, [
+CLASS=sun/applet/Test.java
+BYTECODE=$(echo $CLASS|sed 's#\.java##')
+mkdir -p tmp.$$/$(dirname $CLASS)
+cd tmp.$$
+cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+package sun.applet;
+
+import sun.misc.*;
+import sun.security.util.*;
+
+public class Test
+{
+ public static void main(String[] args)
+ throws Exception
+ {
+ try {
+ System.out.println(Class.forName("sun.misc.HexDumpEncoder"));
+ } catch (ClassNotFoundException e) {
+ System.out.println(Class.forName("sun.security.util.HexDumpEncoder"));
+ }
+ }
+}
+]
+EOF
+if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+ if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_HEXDUMPENCODER=yes;
+ else
+ it_cv_HEXDUMPENCODER=no;
+ fi
+else
+ it_cv_HEXDUMPENCODER=no;
+fi
+])
+rm -f $CLASS *.class
+cd ..
+# should be rmdir but has to be rm -rf due to sun.applet usage
+rm -rf tmp.$$
+if test x"${it_cv_HEXDUMPENCODER}" = "xno"; then
+ AC_MSG_ERROR([HexDumpEncoder not found.])
+fi
+])
+
AC_DEFUN_ONCE([IT_CHECK_FOR_MERCURIAL],
[
AC_PATH_TOOL([HG],[hg])
--- a/configure.ac Thu Jan 14 12:22:37 2016 +0100
+++ b/configure.ac Thu Jan 14 16:28:48 2016 +0100
@@ -68,7 +68,7 @@
dnl PR46074 (gcc) - Missing java.net cookie code required by IcedTea plugin
dnl IT563 - NetX uses sun.security code
-dnl IT605 - NetX depends on sun.misc.HexDumpEncoder
+dnl IT605 - NetX depends on sun.misc HexDumpEncoder or sun.security.util.HexDumpEncoder
dnl IT570 - NetX depends on sun.applet.AppletViewPanel
dnl IT571 - NetX depends on com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager.java
dnl IT573 - Plugin depends on sun.awt,X11.XEmbeddedFrame.java
@@ -83,7 +83,7 @@
IT_CHECK_FOR_CLASS(SUN_SECURITY_UTIL_SECURITYCONSTANTS, [sun.security.util.SecurityConstants])
IT_CHECK_FOR_CLASS(SUN_SECURITY_UTIL_HOSTNAMECHECKER, [sun.security.util.HostnameChecker])
IT_CHECK_FOR_CLASS(SUN_SECURITY_X509_X500NAME, [sun.security.x509.X500Name])
-IT_CHECK_FOR_CLASS(SUN_MISC_HEXDUMPENCODER, [sun.misc.HexDumpEncoder])
+IT_CHECK_FOR_HEXDUMPENCODER
IT_CHECK_FOR_CLASS(SUN_SECURITY_VALIDATOR_VALIDATOREXCEPTION, [sun.security.validator.ValidatorException])
IT_CHECK_FOR_CLASS(COM_SUN_NET_SSL_INTERNAL_SSL_X509EXTENDEDTRUSTMANAGER,
[com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager])
--- a/netx/net/sourceforge/jnlp/security/dialogs/CertsInfoPane.java Thu Jan 14 12:22:37 2016 +0100
+++ b/netx/net/sourceforge/jnlp/security/dialogs/CertsInfoPane.java Thu Jan 14 16:28:48 2016 +0100
@@ -43,8 +43,15 @@
import java.security.cert.CertPath;
import java.security.cert.X509Certificate;
import java.security.MessageDigest;
+/**
+ * Do not remove this two unused imports, nor expands its "*" call.
+ * It is workaround to allow itw to run on jdk8 and older and also on jdk9 and newer
+ */
-import sun.misc.HexDumpEncoder;
+// jdk8 is using sun.misc.HexDumpEncoder,
+import sun.misc.*;
+// jdk9 is using sun.security.util.HexDumpEncoder
+import sun.security.util.*;
import sun.security.x509.*;
import javax.swing.*;
import javax.swing.event.*;
1
0
Hello community,
here is the log from the commit of package java-1_9_0-openjdk for openSUSE:Factory checked in at 2016-01-28 17:24:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/java-1_9_0-openjdk (Old)
and /work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-1_9_0-openjdk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/java-1_9_0-openjdk/java-1_9_0-openjdk.changes 2015-11-26 17:01:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new/java-1_9_0-openjdk.changes 2016-01-28 17:25:15.000000000 +0100
@@ -1,0 +2,29 @@
+Tue Jan 26 16:04:42 UTC 2016 - fstrba(a)suse.com
+
+- Upgrade to upstream tag jdk-9+102
+
+-------------------------------------------------------------------
+Thu Jan 14 12:05:59 UTC 2016 - fstrba(a)suse.com
+
+- Added patch:
+ * hotspot-nowerror.patch: disable warnings being errors in
+ hostspot. It causes unnecessary build failure on some
+ architectures.
+
+-------------------------------------------------------------------
+Tue Jan 12 06:19:39 UTC 2016 - fstrba(a)suse.com
+
+- Upgrade to upstream tag jdk-9+100
+
+-------------------------------------------------------------------
+Fri Nov 20 08:17:53 UTC 2015 - fstrba(a)suse.com
+
+- Upgrade to upstream tag jdk9-b93
+- Removed patches:
+ * fix-system-jpeg-loading.patch
+ - integrated upstream
+- Added patch:
+ * fix-zero-k_entry.patch
+ - backport upstream fix
+
+-------------------------------------------------------------------
Old:
----
106c06398f7a.tar.bz2
34b77a618e98.tar.bz2
53cb98d68a1a.tar.bz2
6a5c99506f44.tar.bz2
a3415b57507c.tar.bz2
f7d70caad89a.tar.bz2
fcabfb3c38ac.tar.bz2
fe772cbc64f4.tar.bz2
fix-system-jpeg-loading.patch
New:
----
0868b93587cc.tar.bz2
6149fc30cd71.tar.bz2
6406ecf5d394.tar.bz2
6eb3c8132e48.tar.bz2
9c4662334d93.tar.bz2
9dcf193c0b6c.tar.bz2
d5239fc1b697.tar.bz2
e56208758885.tar.bz2
hotspot-nowerror.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ java-1_9_0-openjdk.spec ++++++
--- /var/tmp/diff_new_pack.R5HAPQ/_old 2016-01-28 17:25:17.000000000 +0100
+++ /var/tmp/diff_new_pack.R5HAPQ/_new 2016-01-28 17:25:17.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package java
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,25 +29,25 @@
%global syslibdir %{_libdir}
%global archname %{name}
# Standard JPackage naming and versioning defines.
-%global majorver 1
-%global minorver 9
-%global microver 0
-%global updatever 0
-%global buildver b92
+%global majorver 9
+%global minorver 0
+%global securityver 0
+%global patchver 0
+%global buildver 102
%global root_project jdk9
%global root_repository jdk9
-%global root_revision 106c06398f7a
-%global corba_revision f7d70caad89a
-%global hotspot_revision 53cb98d68a1a
-%global jaxp_revision fcabfb3c38ac
-%global jaxws_revision fe772cbc64f4
-%global jdk_revision 6a5c99506f44
-%global langtools_revision a3415b57507c
-%global nashorn_revision 34b77a618e98
+%global root_revision 6406ecf5d394
+%global corba_revision 9c4662334d93
+%global hotspot_revision d5239fc1b697
+%global jaxp_revision 9dcf193c0b6c
+%global jaxws_revision 0868b93587cc
+%global jdk_revision 6eb3c8132e48
+%global langtools_revision 6149fc30cd71
+%global nashorn_revision e56208758885
%global icedtea_sound_version 1.0.1
# priority must be 6 digits in total
%global priority 1905
-%global javaver %{majorver}.%{minorver}.%{microver}
+%global javaver 1.%{majorver}.0
# Standard JPackage directories and symbolic links.
%global sdklnk java-%{javaver}-openjdk
%global archname %{sdklnk}
@@ -155,8 +155,8 @@
%global tapsetroot %{_datadir}/systemtap
%global tapsetdir %{tapsetroot}/tapset/%{_build_cpu}
%endif
-Name: java-%{majorver}_%{minorver}_%{microver}-openjdk
-Version: %{javaver}.%{updatever}~%{buildver}
+Name: java-1_%{majorver}_0-openjdk
+Version: %{majorver}.%{minorver}.%{securityver}.%{patchver}~%{buildver}
Release: 0
Summary: OpenJDK Runtime Environment
License: Apache-1.1 and Apache-2.0 and GPL-1.0+ and GPL-2.0 and GPL-2.0-with-classpath-exception and LGPL-2.0 and MPL-1.0 and MPL-1.1 and SUSE-Public-Domain and W3C
@@ -206,6 +206,8 @@
Patch12: adlc-parser.patch
# Fix: implicit-pointer-decl
Patch13: implicit-pointer-decl.patch
+# Disable -Werror in hotspot
+Patch14: hotspot-nowerror.patch
#
# OpenJDK specific patches
#
@@ -214,8 +216,6 @@
Patch101: s390-size_t.patch
# Patch for PPC/PPC64
Patch103: ppc-zero-hotspot.patch
-# Patches for system libraries
-Patch203: fix-system-jpeg-loading.patch
BuildRequires: alsa-lib-devel
BuildRequires: autoconf
BuildRequires: automake
@@ -290,7 +290,7 @@
%if %{bootcycle}
BuildRequires: java-1.8.0-devel >= 1.8.0
%else
-BuildRequires: java-devel >= %{javaver}
+BuildRequires: java-devel >= %{majorver}.0.0.0
%endif
# runtime certificates generation available in 11.3+ - bnc#596177
%if 0%{?suse_version} >= 1130
@@ -462,8 +462,6 @@
rm -rvf jdk/src/java.desktop/share/native/liblcms/cms*
rm -rvf jdk/src/java.desktop/share/native/liblcms/lcms2*
-%patch203 -p1
-
%if %{with_pulseaudio}
%patch0 -p1
%patch1 -p1
@@ -477,6 +475,7 @@
%patch10 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p1
# s390 build fixes
++++++ 106c06398f7a.tar.bz2 -> 0868b93587cc.tar.bz2 ++++++
++++ 707731 lines of diff (skipped)
++++++ 106c06398f7a.tar.bz2 -> 6149fc30cd71.tar.bz2 ++++++
++++ 930038 lines of diff (skipped)
++++++ 106c06398f7a.tar.bz2 -> 6406ecf5d394.tar.bz2 ++++++
++++ 30744 lines of diff (skipped)
++++++ 106c06398f7a.tar.bz2 -> 6eb3c8132e48.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_9_0-openjdk/106c06398f7a.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new/6eb3c8132e48.tar.bz2 differ: char 11, line 1
++++++ 53cb98d68a1a.tar.bz2 -> 9c4662334d93.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_9_0-openjdk/53cb98d68a1a.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new/9c4662334d93.tar.bz2 differ: char 11, line 1
++++++ 106c06398f7a.tar.bz2 -> 9dcf193c0b6c.tar.bz2 ++++++
++++ 855102 lines of diff (skipped)
++++++ 106c06398f7a.tar.bz2 -> d5239fc1b697.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_9_0-openjdk/106c06398f7a.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new/d5239fc1b697.tar.bz2 differ: char 11, line 1
++++++ 106c06398f7a.tar.bz2 -> e56208758885.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_9_0-openjdk/106c06398f7a.tar.bz2 /work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new/e56208758885.tar.bz2 differ: char 11, line 1
++++++ hotspot-nowerror.patch ++++++
--- jdk9/hotspot/make/linux/makefiles/gcc.make 2016-01-14 12:13:43.947734277 +0100
+++ jdk9/hotspot/make/linux/makefiles/gcc.make 2016-01-14 12:14:38.850498622 +0100
@@ -203,7 +203,7 @@
endif
# Compiler warnings are treated as errors
-WARNINGS_ARE_ERRORS = -Werror
+WARNINGS_ARE_ERRORS =
ifeq ($(USE_CLANG), true)
# However we need to clean the code up before we can unrestrictedly enable this option with Clang
1
0
Hello community,
here is the log from the commit of package fsharp for openSUSE:Factory checked in at 2016-01-28 17:24:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fsharp (Old)
and /work/SRC/openSUSE:Factory/.fsharp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fsharp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/fsharp/fsharp.changes 2015-12-13 09:40:13.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.fsharp.new/fsharp.changes 2016-01-28 17:25:11.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Jan 26 17:37:24 UTC 2016 - idonmez(a)suse.com
+
+- Ship xbuild files
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fsharp.spec ++++++
--- /var/tmp/diff_new_pack.OclFTl/_old 2016-01-28 17:25:13.000000000 +0100
+++ /var/tmp/diff_new_pack.OclFTl/_new 2016-01-28 17:25:13.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package fsharp
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -54,7 +54,6 @@
%makeinstall
rm -rf ${RPM_BUILD_ROOT}%{_prefix}/lib/mono/monodroid
rm -rf ${RPM_BUILD_ROOT}%{_prefix}/lib/mono/monotouch
-rm -rf ${RPM_BUILD_ROOT}%{_prefix}/lib/mono/xbuild
#fix script-without-shebang warnings
find %{buildroot}%{_prefix}/lib/mono -iname "*.Fsharp.Targets" -type f -print0 | xargs -0 chmod -v -x
@@ -121,5 +120,6 @@
%{_prefix}/lib/mono/gac/policy.3.47.FSharp.Core/
%{_prefix}/lib/mono/gac/policy.3.7.FSharp.Core/
%{_prefix}/lib/mono/gac/policy.3.78.FSharp.Core/
+%{_prefix}/lib/mono/xbuild
%changelog
1
0
Hello community,
here is the log from the commit of package python-certifi for openSUSE:Factory checked in at 2016-01-28 17:24:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-certifi (Old)
and /work/SRC/openSUSE:Factory/.python-certifi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-certifi"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-certifi/python-certifi.changes 2015-09-30 05:52:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-certifi.new/python-certifi.changes 2016-01-28 17:25:10.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Jan 22 12:22:53 UTC 2016 - michael(a)stroeder.com
+
+- Update to version 2015.11.20.1
+
+-------------------------------------------------------------------
Old:
----
certifi-2015.9.6.2.tar.gz
New:
----
certifi-2015.11.20.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-certifi.spec ++++++
--- /var/tmp/diff_new_pack.Q2pgVM/_old 2016-01-28 17:25:11.000000000 +0100
+++ /var/tmp/diff_new_pack.Q2pgVM/_new 2016-01-28 17:25:11.000000000 +0100
@@ -16,7 +16,7 @@
Name: python-certifi
-Version: 2015.9.6.2
+Version: 2015.11.20.1
Release: 0
License: MPL-2.0
Summary: Python package for providing Mozilla's CA Bundle
++++++ certifi-2015.9.6.2.tar.gz -> certifi-2015.11.20.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certifi-2015.9.6.2/PKG-INFO new/certifi-2015.11.20.1/PKG-INFO
--- old/certifi-2015.9.6.2/PKG-INFO 2015-09-07 17:43:22.000000000 +0200
+++ new/certifi-2015.11.20.1/PKG-INFO 2015-11-30 12:18:08.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: certifi
-Version: 2015.9.6.2
+Version: 2015.11.20.1
Summary: Python package for providing Mozilla's CA Bundle.
Home-page: http://certifi.io/
Author: Kenneth Reitz
@@ -16,7 +16,7 @@
Installation
------------
- `certifi` is available on PyPI. Simply install it with `pip`::
+ ``certifi`` is available on PyPI. Simply install it with ``pip``::
$ pip install certifi
@@ -32,6 +32,24 @@
Enjoy!
+ 1024-bit Root Certificates
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Browsers and certificate authorities have concluded that 1024-bit keys are
+ unacceptably weak for certificates, particularly root certificates. For this
+ reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
+ bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
+ certifiate from the same CA. Because Mozilla removed these certificates from
+ its bundle, ``certifi`` removed them as well.
+
+ Unfortunately, old versions of OpenSSL (less than 1.0.2) sometimes fail to
+ validate certificate chains that use the strong roots. For this reason, if you
+ fail to validate a certificate using the ``certifi.where()`` mechanism, you can
+ intentionally re-add the 1024-bit roots back into your bundle by calling
+ ``certifi.old_where()`` instead. This is not recommended in production: if at
+ all possible you should upgrade to a newer OpenSSL. However, if you have no
+ other option, this may work for you.
+
.. _`Certifi`: http://certifi.io/en/latest/
.. _`Requests`: http://docs.python-requests.org/en/latest/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certifi-2015.9.6.2/README.rst new/certifi-2015.11.20.1/README.rst
--- old/certifi-2015.9.6.2/README.rst 2015-04-23 20:12:52.000000000 +0200
+++ new/certifi-2015.11.20.1/README.rst 2015-11-15 22:00:19.000000000 +0100
@@ -8,7 +8,7 @@
Installation
------------
-`certifi` is available on PyPI. Simply install it with `pip`::
+``certifi`` is available on PyPI. Simply install it with ``pip``::
$ pip install certifi
@@ -24,5 +24,23 @@
Enjoy!
+1024-bit Root Certificates
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Browsers and certificate authorities have concluded that 1024-bit keys are
+unacceptably weak for certificates, particularly root certificates. For this
+reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
+bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
+certifiate from the same CA. Because Mozilla removed these certificates from
+its bundle, ``certifi`` removed them as well.
+
+Unfortunately, old versions of OpenSSL (less than 1.0.2) sometimes fail to
+validate certificate chains that use the strong roots. For this reason, if you
+fail to validate a certificate using the ``certifi.where()`` mechanism, you can
+intentionally re-add the 1024-bit roots back into your bundle by calling
+``certifi.old_where()`` instead. This is not recommended in production: if at
+all possible you should upgrade to a newer OpenSSL. However, if you have no
+other option, this may work for you.
+
.. _`Certifi`: http://certifi.io/en/latest/
.. _`Requests`: http://docs.python-requests.org/en/latest/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certifi-2015.9.6.2/certifi/__init__.py new/certifi-2015.11.20.1/certifi/__init__.py
--- old/certifi-2015.9.6.2/certifi/__init__.py 2015-09-07 17:41:55.000000000 +0200
+++ new/certifi-2015.11.20.1/certifi/__init__.py 2015-11-30 12:17:07.000000000 +0100
@@ -1,3 +1,3 @@
from .core import where, old_where
-__version__ = "2015.09.06.2"
+__version__ = "2015.11.20.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certifi-2015.9.6.2/certifi/cacert.pem new/certifi-2015.11.20.1/certifi/cacert.pem
--- old/certifi-2015.9.6.2/certifi/cacert.pem 2015-09-06 04:50:26.000000000 +0200
+++ new/certifi-2015.11.20.1/certifi/cacert.pem 2015-11-20 10:12:33.000000000 +0100
@@ -1,31 +1,4 @@
-# Issuer: O=Equifax OU=Equifax Secure Certificate Authority
-# Subject: O=Equifax OU=Equifax Secure Certificate Authority
-# Label: "Equifax Secure CA"
-# Serial: 903804111
-# MD5 Fingerprint: 67:cb:9d:c0:13:24:8a:82:9b:b2:17:1e:d1:1b:ec:d4
-# SHA1 Fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a
-# SHA256 Fingerprint: 08:29:7a:40:47:db:a2:36:80:c7:31:db:6e:31:76:53:ca:78:48:e1:be:bd:3a:0b:01:79:a7:07:f9:2c:f1:78
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
-UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
-dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
-MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
-dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
-BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
-cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
-AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
-MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
-aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
-ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
-IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
-MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
-A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
-7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
-1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
------END CERTIFICATE-----
-
# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA
# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA
# Label: "GlobalSign Root CA"
@@ -117,38 +90,6 @@
TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
-----END CERTIFICATE-----
-# Issuer: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
-# Subject: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
-# Label: "Verisign Class 4 Public Primary Certification Authority - G3"
-# Serial: 314531972711909413743075096039378935511
-# MD5 Fingerprint: db:c8:f2:27:2e:b1:ea:6a:29:23:5d:fe:56:3e:33:df
-# SHA1 Fingerprint: c8:ec:8c:87:92:69:cb:4b:ab:39:e9:8d:7e:57:67:f3:14:95:73:9d
-# SHA256 Fingerprint: e3:89:36:0d:0f:db:ae:b3:d2:50:58:4b:47:30:31:4e:22:2f:39:c1:56:a0:20:14:4e:8d:96:05:61:79:15:06
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
-GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
-+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
-U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
-NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
-ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
-ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
-CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
-g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
-2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
-bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
# Issuer: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
# Subject: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
# Label: "Entrust.net Premium 2048 Secure Server CA"
@@ -910,40 +851,6 @@
iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
-----END CERTIFICATE-----
-# Issuer: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com
-# Subject: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com
-# Label: "UTN DATACorp SGC Root CA"
-# Serial: 91374294542884689855167577680241077609
-# MD5 Fingerprint: b3:a5:3e:77:21:6d:ac:4a:c0:c9:fb:d5:41:3d:ca:06
-# SHA1 Fingerprint: 58:11:9f:0e:12:82:87:ea:50:fd:d9:87:45:6f:4f:78:dc:fa:d6:d4
-# SHA256 Fingerprint: 85:fb:2f:91:dd:12:27:5a:01:45:b6:36:53:4f:84:02:4a:d6:8b:69:b8:ee:88:68:4f:f7:11:37:58:05:b3:48
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB
-kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw
-IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG
-EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD
-VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu
-dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6
-E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ
-D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK
-4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq
-lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW
-bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB
-o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT
-MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js
-LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr
-BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB
-AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj
-j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH
-KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv
-2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3
-mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
# Issuer: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com
# Subject: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com
# Label: "UTN USERFirst Hardware Root CA"
@@ -1507,39 +1414,6 @@
9w4LTJxoeHtxMcfrHuBnQfO3oKfN5XozNmr6mis=
-----END CERTIFICATE-----
-# Issuer: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) Kasım 2005
-# Subject: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) Kasım 2005
-# Label: "TURKTRUST Certificate Services Provider Root 2"
-# Serial: 1
-# MD5 Fingerprint: 37:a5:6e:d4:b1:25:84:97:b7:fd:56:15:7a:f9:a2:00
-# SHA1 Fingerprint: b4:35:d4:e1:11:9d:1c:66:90:a7:49:eb:b3:94:bd:63:7b:a7:82:b7
-# SHA256 Fingerprint: c4:70:cf:54:7e:23:02:b9:77:fb:29:dd:71:a8:9a:7b:6c:1f:60:77:7b:03:29:f5:60:17:f3:28:bf:4f:6b:e6
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOc
-UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xS
-S1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kg
-SGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcNMDUxMTA3MTAwNzU3
-WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVrdHJv
-bmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJU
-UjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSw
-bGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWe
-LiAoYykgS2FzxLFtIDIwMDUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqeLCDe2JAOCtFp0if7qnef
-J1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKIx+XlZEdh
-R3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJ
-Qv2gQrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGX
-JHpsmxcPbe9TmJEr5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1p
-zpwACPI2/z7woQ8arBT9pmAPAgMBAAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58S
-Fq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
-KoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/nttRbj2hWyfIvwq
-ECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFz
-gw2lGh1uEpJ+hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotH
-uFEJjOp9zYhys2AzsfAKRO8P9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LS
-y3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5UrbnBEI=
------END CERTIFICATE-----
-
# Issuer: CN=SwissSign Gold CA - G2 O=SwissSign AG
# Subject: CN=SwissSign Gold CA - G2 O=SwissSign AG
# Label: "SwissSign Gold CA - G2"
@@ -3362,37 +3236,6 @@
IoaZM3Fa6hlXPZHNqcCjbgcTpsnt+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
-----END CERTIFICATE-----
-# Issuer: CN=A-Trust-nQual-03 O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH OU=A-Trust-nQual-03
-# Subject: CN=A-Trust-nQual-03 O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH OU=A-Trust-nQual-03
-# Label: "A-Trust-nQual-03"
-# Serial: 93214
-# MD5 Fingerprint: 49:63:ae:27:f4:d5:95:3d:d8:db:24:86:b8:9c:07:53
-# SHA1 Fingerprint: d3:c0:63:f2:19:ed:07:3e:34:ad:5d:75:0b:32:76:29:ff:d5:9a:f2
-# SHA256 Fingerprint: 79:3c:bf:45:59:b9:fd:e3:8a:b2:2d:f1:68:69:f6:98:81:ae:14:c4:b0:13:9a:c7:88:a7:8a:1a:fc:ca:02:fb
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJB
-VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
-bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5R
-dWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5RdWFsLTAzMB4XDTA1MDgxNzIyMDAw
-MFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgwRgYDVQQKDD9BLVRy
-dXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0ZW52
-ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMM
-EEEtVHJ1c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCtPWFuA/OQO8BBC4SAzewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUj
-lUC5B3ilJfYKvUWG6Nm9wASOhURh73+nyfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZ
-znF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPESU7l0+m0iKsMrmKS1GWH
-2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4iHQF63n1
-k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs
-2e3Vcuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYD
-VR0OBAoECERqlWdVeRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
-AQEAVdRU0VlIXLOThaq/Yy/kgM40ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fG
-KOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmrsQd7TZjTXLDR8KdCoLXEjq/+
-8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZdJXDRZslo+S4R
-FGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmE
-DNuxUCAKGkq6ahq97BvIxYSazQ==
------END CERTIFICATE-----
-
# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA
# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA
# Label: "TWCA Root Certification Authority"
@@ -5227,3 +5070,83 @@
8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvW
gQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE=
-----END CERTIFICATE-----
+
+# Issuer: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed
+# Subject: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed
+# Label: "OISTE WISeKey Global Root GB CA"
+# Serial: 157768595616588414422159278966750757568
+# MD5 Fingerprint: a4:eb:b9:61:28:2e:b7:2f:98:b0:35:26:90:99:51:1d
+# SHA1 Fingerprint: 0f:f9:40:76:18:d3:d7:6a:4b:98:f0:a8:35:9e:0c:fd:27:ac:cc:ed
+# SHA256 Fingerprint: 6b:9c:08:e8:6e:b0:f7:67:cf:ad:65:cd:98:b6:21:49:e5:49:4a:67:f5:84:5e:7b:d1:ed:01:9f:27:b8:6b:d6
+-----BEGIN CERTIFICATE-----
+MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt
+MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg
+Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i
+YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x
+CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG
+b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
+bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3
+HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx
+WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX
+1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk
+u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P
+99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r
+M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB
+BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh
+cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5
+gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO
+ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf
+aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
+Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
+-----END CERTIFICATE-----
+
+# Issuer: CN=Certification Authority of WoSign G2 O=WoSign CA Limited
+# Subject: CN=Certification Authority of WoSign G2 O=WoSign CA Limited
+# Label: "Certification Authority of WoSign G2"
+# Serial: 142423943073812161787490648904721057092
+# MD5 Fingerprint: c8:1c:7d:19:aa:cb:71:93:f2:50:f8:52:a8:1e:ba:60
+# SHA1 Fingerprint: fb:ed:dc:90:65:b7:27:20:37:bc:55:0c:9c:56:de:bb:f2:78:94:e1
+# SHA256 Fingerprint: d4:87:a5:6f:83:b0:74:82:e8:5e:96:33:94:c1:ec:c2:c9:e5:1d:09:03:ee:94:6b:02:c3:01:58:1e:d9:9e:16
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBY
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNV
+BAMTJENlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDEx
+MDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgxCzAJBgNVBAYTAkNOMRowGAYDVQQK
+ExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPX
+JYY1kBaiXW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgO
+gHzKtB0TiGsOqCR3A9DuW/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg
+5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg95k4ot+vElbGs/V6r+kHLXZ1L3PR8du9n
+fwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BKv0mUYQs4kI9dJGwlezt5
+2eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJ
+KoZIhvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8
+fHulwqZm46qwtyeYP0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G
+3CE4Q3RM+zD4F3LBMvzIkRfEzFg3TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yy
+SrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu+sif/a+RZQp4OBXllxcU3fng
+LDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+7Q9LGOHSJDy7
+XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
+-----END CERTIFICATE-----
+
+# Issuer: CN=CA WoSign ECC Root O=WoSign CA Limited
+# Subject: CN=CA WoSign ECC Root O=WoSign CA Limited
+# Label: "CA WoSign ECC Root"
+# Serial: 138625735294506723296996289575837012112
+# MD5 Fingerprint: 80:c6:53:ee:61:82:28:72:f0:ff:21:b9:17:ca:b2:20
+# SHA1 Fingerprint: d2:7a:d2:be:ed:94:c0:a1:3c:c7:25:21:ea:5d:71:be:81:19:f3:2b
+# SHA256 Fingerprint: 8b:45:da:1c:06:f7:91:eb:0c:ab:f2:6b:e5:88:f5:fb:23:16:5c:2e:61:4b:f8:85:56:2d:0d:ce:50:b2:9b:02
+-----BEGIN CERTIFICATE-----
+MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQsw
+CQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMT
+EkNBIFdvU2lnbiBFQ0MgUm9vdDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4
+NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEb
+MBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZIzj0CAQYFK4EEACID
+YgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiUt5v8
+KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES
+1ns2o0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUqv3VWqP2h4syhf3RMluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB
+1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0Daupn75OcsqF1NnstTJFGG+rrQIwfcf3
+aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYua/GRspBl9JrmkO5K
+-----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certifi-2015.9.6.2/certifi/old_root.pem new/certifi-2015.11.20.1/certifi/old_root.pem
--- old/certifi-2015.9.6.2/certifi/old_root.pem 2015-04-28 19:31:53.000000000 +0200
+++ new/certifi-2015.11.20.1/certifi/old_root.pem 2015-11-30 12:11:07.000000000 +0100
@@ -385,3 +385,30 @@
3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
-----END CERTIFICATE-----
+
+# Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+# Subject: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+# Label: "Equifax Secure Certificate Authority"
+# Serial: 903804111
+# MD5 Fingerprint: 67:cb:9d:c0:13:24:8a:82:9b:b2:17:1e:d1:1b:ec:d4
+# SHA1 Fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a
+# SHA256 Fingerprint: 08:29:7a:40:47:db:a2:36:80:c7:31:db:6e:31:76:53:ca:78:48:e1:be:bd:3a:0b:01:79:a7:07:f9:2c:f1:78
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
+UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
+dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
+MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
+dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
+BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
+cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
+AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
+MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
+ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
+IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
+MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
+A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
+7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
+1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
+-----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certifi-2015.9.6.2/certifi/weak.pem new/certifi-2015.11.20.1/certifi/weak.pem
--- old/certifi-2015.9.6.2/certifi/weak.pem 2015-09-06 05:19:56.000000000 +0200
+++ new/certifi-2015.11.20.1/certifi/weak.pem 2015-11-30 12:12:06.000000000 +0100
@@ -1,31 +1,4 @@
-# Issuer: O=Equifax OU=Equifax Secure Certificate Authority
-# Subject: O=Equifax OU=Equifax Secure Certificate Authority
-# Label: "Equifax Secure CA"
-# Serial: 903804111
-# MD5 Fingerprint: 67:cb:9d:c0:13:24:8a:82:9b:b2:17:1e:d1:1b:ec:d4
-# SHA1 Fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a
-# SHA256 Fingerprint: 08:29:7a:40:47:db:a2:36:80:c7:31:db:6e:31:76:53:ca:78:48:e1:be:bd:3a:0b:01:79:a7:07:f9:2c:f1:78
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
-UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
-dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
-MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
-dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
-BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
-cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
-AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
-MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
-aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
-ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
-IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
-MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
-A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
-7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
-1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
------END CERTIFICATE-----
-
# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA
# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA
# Label: "GlobalSign Root CA"
@@ -117,38 +90,6 @@
TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
-----END CERTIFICATE-----
-# Issuer: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
-# Subject: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
-# Label: "Verisign Class 4 Public Primary Certification Authority - G3"
-# Serial: 314531972711909413743075096039378935511
-# MD5 Fingerprint: db:c8:f2:27:2e:b1:ea:6a:29:23:5d:fe:56:3e:33:df
-# SHA1 Fingerprint: c8:ec:8c:87:92:69:cb:4b:ab:39:e9:8d:7e:57:67:f3:14:95:73:9d
-# SHA256 Fingerprint: e3:89:36:0d:0f:db:ae:b3:d2:50:58:4b:47:30:31:4e:22:2f:39:c1:56:a0:20:14:4e:8d:96:05:61:79:15:06
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
-GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
-+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
-U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
-NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
-ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
-ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
-CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
-g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
-2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
-bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
# Issuer: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
# Subject: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
# Label: "Entrust.net Premium 2048 Secure Server CA"
@@ -910,40 +851,6 @@
iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
-----END CERTIFICATE-----
-# Issuer: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com
-# Subject: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com
-# Label: "UTN DATACorp SGC Root CA"
-# Serial: 91374294542884689855167577680241077609
-# MD5 Fingerprint: b3:a5:3e:77:21:6d:ac:4a:c0:c9:fb:d5:41:3d:ca:06
-# SHA1 Fingerprint: 58:11:9f:0e:12:82:87:ea:50:fd:d9:87:45:6f:4f:78:dc:fa:d6:d4
-# SHA256 Fingerprint: 85:fb:2f:91:dd:12:27:5a:01:45:b6:36:53:4f:84:02:4a:d6:8b:69:b8:ee:88:68:4f:f7:11:37:58:05:b3:48
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB
-kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw
-IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG
-EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD
-VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu
-dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6
-E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ
-D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK
-4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq
-lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW
-bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB
-o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT
-MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js
-LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr
-BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB
-AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj
-j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH
-KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv
-2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3
-mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
# Issuer: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com
# Subject: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com
# Label: "UTN USERFirst Hardware Root CA"
@@ -1507,39 +1414,6 @@
9w4LTJxoeHtxMcfrHuBnQfO3oKfN5XozNmr6mis=
-----END CERTIFICATE-----
-# Issuer: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) Kasım 2005
-# Subject: CN=TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı O=TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) Kasım 2005
-# Label: "TURKTRUST Certificate Services Provider Root 2"
-# Serial: 1
-# MD5 Fingerprint: 37:a5:6e:d4:b1:25:84:97:b7:fd:56:15:7a:f9:a2:00
-# SHA1 Fingerprint: b4:35:d4:e1:11:9d:1c:66:90:a7:49:eb:b3:94:bd:63:7b:a7:82:b7
-# SHA256 Fingerprint: c4:70:cf:54:7e:23:02:b9:77:fb:29:dd:71:a8:9a:7b:6c:1f:60:77:7b:03:29:f5:60:17:f3:28:bf:4f:6b:e6
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOc
-UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xS
-S1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kg
-SGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcNMDUxMTA3MTAwNzU3
-WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVrdHJv
-bmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJU
-UjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSw
-bGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWe
-LiAoYykgS2FzxLFtIDIwMDUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqeLCDe2JAOCtFp0if7qnef
-J1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKIx+XlZEdh
-R3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJ
-Qv2gQrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGX
-JHpsmxcPbe9TmJEr5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1p
-zpwACPI2/z7woQ8arBT9pmAPAgMBAAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58S
-Fq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
-KoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/nttRbj2hWyfIvwq
-ECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFz
-gw2lGh1uEpJ+hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotH
-uFEJjOp9zYhys2AzsfAKRO8P9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LS
-y3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5UrbnBEI=
------END CERTIFICATE-----
-
# Issuer: CN=SwissSign Gold CA - G2 O=SwissSign AG
# Subject: CN=SwissSign Gold CA - G2 O=SwissSign AG
# Label: "SwissSign Gold CA - G2"
@@ -3362,37 +3236,6 @@
IoaZM3Fa6hlXPZHNqcCjbgcTpsnt+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
-----END CERTIFICATE-----
-# Issuer: CN=A-Trust-nQual-03 O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH OU=A-Trust-nQual-03
-# Subject: CN=A-Trust-nQual-03 O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH OU=A-Trust-nQual-03
-# Label: "A-Trust-nQual-03"
-# Serial: 93214
-# MD5 Fingerprint: 49:63:ae:27:f4:d5:95:3d:d8:db:24:86:b8:9c:07:53
-# SHA1 Fingerprint: d3:c0:63:f2:19:ed:07:3e:34:ad:5d:75:0b:32:76:29:ff:d5:9a:f2
-# SHA256 Fingerprint: 79:3c:bf:45:59:b9:fd:e3:8a:b2:2d:f1:68:69:f6:98:81:ae:14:c4:b0:13:9a:c7:88:a7:8a:1a:fc:ca:02:fb
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJB
-VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
-bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5R
-dWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5RdWFsLTAzMB4XDTA1MDgxNzIyMDAw
-MFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgwRgYDVQQKDD9BLVRy
-dXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0ZW52
-ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMM
-EEEtVHJ1c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCtPWFuA/OQO8BBC4SAzewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUj
-lUC5B3ilJfYKvUWG6Nm9wASOhURh73+nyfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZ
-znF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPESU7l0+m0iKsMrmKS1GWH
-2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4iHQF63n1
-k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs
-2e3Vcuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYD
-VR0OBAoECERqlWdVeRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
-AQEAVdRU0VlIXLOThaq/Yy/kgM40ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fG
-KOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmrsQd7TZjTXLDR8KdCoLXEjq/+
-8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZdJXDRZslo+S4R
-FGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmE
-DNuxUCAKGkq6ahq97BvIxYSazQ==
------END CERTIFICATE-----
-
# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA
# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA
# Label: "TWCA Root Certification Authority"
@@ -5227,6 +5070,86 @@
8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvW
gQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE=
-----END CERTIFICATE-----
+
+# Issuer: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed
+# Subject: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed
+# Label: "OISTE WISeKey Global Root GB CA"
+# Serial: 157768595616588414422159278966750757568
+# MD5 Fingerprint: a4:eb:b9:61:28:2e:b7:2f:98:b0:35:26:90:99:51:1d
+# SHA1 Fingerprint: 0f:f9:40:76:18:d3:d7:6a:4b:98:f0:a8:35:9e:0c:fd:27:ac:cc:ed
+# SHA256 Fingerprint: 6b:9c:08:e8:6e:b0:f7:67:cf:ad:65:cd:98:b6:21:49:e5:49:4a:67:f5:84:5e:7b:d1:ed:01:9f:27:b8:6b:d6
+-----BEGIN CERTIFICATE-----
+MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt
+MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg
+Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i
+YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x
+CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG
+b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
+bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3
+HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx
+WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX
+1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk
+u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P
+99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r
+M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB
+BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh
+cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5
+gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO
+ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf
+aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
+Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
+-----END CERTIFICATE-----
+
+# Issuer: CN=Certification Authority of WoSign G2 O=WoSign CA Limited
+# Subject: CN=Certification Authority of WoSign G2 O=WoSign CA Limited
+# Label: "Certification Authority of WoSign G2"
+# Serial: 142423943073812161787490648904721057092
+# MD5 Fingerprint: c8:1c:7d:19:aa:cb:71:93:f2:50:f8:52:a8:1e:ba:60
+# SHA1 Fingerprint: fb:ed:dc:90:65:b7:27:20:37:bc:55:0c:9c:56:de:bb:f2:78:94:e1
+# SHA256 Fingerprint: d4:87:a5:6f:83:b0:74:82:e8:5e:96:33:94:c1:ec:c2:c9:e5:1d:09:03:ee:94:6b:02:c3:01:58:1e:d9:9e:16
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBY
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNV
+BAMTJENlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDEx
+MDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgxCzAJBgNVBAYTAkNOMRowGAYDVQQK
+ExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPX
+JYY1kBaiXW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgO
+gHzKtB0TiGsOqCR3A9DuW/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg
+5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg95k4ot+vElbGs/V6r+kHLXZ1L3PR8du9n
+fwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BKv0mUYQs4kI9dJGwlezt5
+2eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJ
+KoZIhvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8
+fHulwqZm46qwtyeYP0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G
+3CE4Q3RM+zD4F3LBMvzIkRfEzFg3TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yy
+SrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu+sif/a+RZQp4OBXllxcU3fng
+LDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+7Q9LGOHSJDy7
+XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
+-----END CERTIFICATE-----
+
+# Issuer: CN=CA WoSign ECC Root O=WoSign CA Limited
+# Subject: CN=CA WoSign ECC Root O=WoSign CA Limited
+# Label: "CA WoSign ECC Root"
+# Serial: 138625735294506723296996289575837012112
+# MD5 Fingerprint: 80:c6:53:ee:61:82:28:72:f0:ff:21:b9:17:ca:b2:20
+# SHA1 Fingerprint: d2:7a:d2:be:ed:94:c0:a1:3c:c7:25:21:ea:5d:71:be:81:19:f3:2b
+# SHA256 Fingerprint: 8b:45:da:1c:06:f7:91:eb:0c:ab:f2:6b:e5:88:f5:fb:23:16:5c:2e:61:4b:f8:85:56:2d:0d:ce:50:b2:9b:02
+-----BEGIN CERTIFICATE-----
+MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQsw
+CQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMT
+EkNBIFdvU2lnbiBFQ0MgUm9vdDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4
+NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEb
+MBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZIzj0CAQYFK4EEACID
+YgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiUt5v8
+KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES
+1ns2o0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUqv3VWqP2h4syhf3RMluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB
+1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0Daupn75OcsqF1NnstTJFGG+rrQIwfcf3
+aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYua/GRspBl9JrmkO5K
+-----END CERTIFICATE-----
# Issuer: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
# Subject: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
# Label: "Entrust.net Secure Server CA"
@@ -5614,3 +5537,30 @@
3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
-----END CERTIFICATE-----
+
+# Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+# Subject: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+# Label: "Equifax Secure Certificate Authority"
+# Serial: 903804111
+# MD5 Fingerprint: 67:cb:9d:c0:13:24:8a:82:9b:b2:17:1e:d1:1b:ec:d4
+# SHA1 Fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a
+# SHA256 Fingerprint: 08:29:7a:40:47:db:a2:36:80:c7:31:db:6e:31:76:53:ca:78:48:e1:be:bd:3a:0b:01:79:a7:07:f9:2c:f1:78
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
+UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
+dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
+MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
+dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
+BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
+cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
+AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
+MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
+ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
+IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
+MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
+A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
+7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
+1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
+-----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certifi-2015.9.6.2/certifi.egg-info/PKG-INFO new/certifi-2015.11.20.1/certifi.egg-info/PKG-INFO
--- old/certifi-2015.9.6.2/certifi.egg-info/PKG-INFO 2015-09-07 17:43:22.000000000 +0200
+++ new/certifi-2015.11.20.1/certifi.egg-info/PKG-INFO 2015-11-30 12:18:08.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: certifi
-Version: 2015.9.6.2
+Version: 2015.11.20.1
Summary: Python package for providing Mozilla's CA Bundle.
Home-page: http://certifi.io/
Author: Kenneth Reitz
@@ -16,7 +16,7 @@
Installation
------------
- `certifi` is available on PyPI. Simply install it with `pip`::
+ ``certifi`` is available on PyPI. Simply install it with ``pip``::
$ pip install certifi
@@ -32,6 +32,24 @@
Enjoy!
+ 1024-bit Root Certificates
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Browsers and certificate authorities have concluded that 1024-bit keys are
+ unacceptably weak for certificates, particularly root certificates. For this
+ reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
+ bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
+ certifiate from the same CA. Because Mozilla removed these certificates from
+ its bundle, ``certifi`` removed them as well.
+
+ Unfortunately, old versions of OpenSSL (less than 1.0.2) sometimes fail to
+ validate certificate chains that use the strong roots. For this reason, if you
+ fail to validate a certificate using the ``certifi.where()`` mechanism, you can
+ intentionally re-add the 1024-bit roots back into your bundle by calling
+ ``certifi.old_where()`` instead. This is not recommended in production: if at
+ all possible you should upgrade to a newer OpenSSL. However, if you have no
+ other option, this may work for you.
+
.. _`Certifi`: http://certifi.io/en/latest/
.. _`Requests`: http://docs.python-requests.org/en/latest/
1
0
Hello community,
here is the log from the commit of package WALinuxAgent for openSUSE:Factory checked in at 2016-01-28 17:24:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/WALinuxAgent (Old)
and /work/SRC/openSUSE:Factory/.WALinuxAgent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "WALinuxAgent"
Changes:
--------
--- /work/SRC/openSUSE:Factory/WALinuxAgent/WALinuxAgent.changes 2015-10-30 13:43:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.WALinuxAgent.new/WALinuxAgent.changes 2016-01-28 17:25:09.000000000 +0100
@@ -1,0 +2,15 @@
+Tue Jan 19 13:55:14 UTC 2016 - rjschwei(a)suse.com
+
+- Update to version 2.0.17 (bsc#962589)
+ + add the support for the rdma driver installing/updating.
+ (this in only for SUSE)
+- From 2.0.16
+ + Handle 410 when reporting health
+ + Add timeout to http request
+ + Fix multiple issues with extension handling
+- From 2.0.15
+ + FreeBSD - fix default gateway
+ + Oracle - fix distro name detection
+ + Redhat - Port "chpasswd" from 2.1
+
+-------------------------------------------------------------------
Old:
----
WALinuxAgent-2.0.14.tar.gz
New:
----
WALinuxAgent-2.0.17.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ WALinuxAgent.spec ++++++
--- /var/tmp/diff_new_pack.cXI367/_old 2016-01-28 17:25:10.000000000 +0100
+++ /var/tmp/diff_new_pack.cXI367/_new 2016-01-28 17:25:10.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package WALinuxAgent
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
Summary: The Microsoft Azure Linux Agent
License: Apache-2.0
Group: System/Daemons
-Version: 2.0.14
+Version: 2.0.17
Release: 0
Url: https://github.com/Azure/WALinuxAgent
Source0: https://github.com/Azure/%{name}/archive/%{name}-%{version}.tar.gz
++++++ WALinuxAgent-2.0.14.tar.gz -> WALinuxAgent-2.0.17.tar.gz ++++++
++++ 2453 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package ocl-icd for openSUSE:Factory checked in at 2016-01-28 17:24:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ocl-icd (Old)
and /work/SRC/openSUSE:Factory/.ocl-icd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ocl-icd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ocl-icd/ocl-icd.changes 2015-09-08 17:58:17.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ocl-icd.new/ocl-icd.changes 2016-01-28 17:25:09.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Jan 26 11:33:59 UTC 2016 - mpluskal(a)suse.com
+
+- Update to 2.2.7
+ * See NEWS for full list of changes
+
+-------------------------------------------------------------------
Old:
----
ocl-icd-2.2.7.tar.gz
New:
----
ocl-icd-2.2.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ocl-icd.spec ++++++
--- /var/tmp/diff_new_pack.MzFYxj/_old 2016-01-28 17:25:09.000000000 +0100
+++ /var/tmp/diff_new_pack.MzFYxj/_new 2016-01-28 17:25:09.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ocl-icd
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,16 +17,17 @@
Name: ocl-icd
-Version: 2.2.7
+Version: 2.2.8
Release: 0
Summary: OpenCL ICD Bindings
License: BSD-2-Clause
Group: System/Libraries
Url: https://forge.imag.fr/projects/ocl-icd/
-Source: https://forge.imag.fr/frs/download.php/667/%{name}-%{version}.tar.gz
+Source: https://forge.imag.fr/frs/download.php/698/%{name}-%{version}.tar.gz
BuildRequires: opencl-headers >= 1.2
BuildRequires: pkg-config
BuildRequires: ruby
+BuildRequires: pkgconfig(egl)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
++++++ ocl-icd-2.2.7.tar.gz -> ocl-icd-2.2.8.tar.gz ++++++
++++ 2497 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-pyzmq for openSUSE:Factory checked in at 2016-01-28 17:24:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyzmq (Old)
and /work/SRC/openSUSE:Factory/.python-pyzmq.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyzmq"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyzmq/python-pyzmq.changes 2015-09-17 09:18:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyzmq.new/python-pyzmq.changes 2016-01-28 17:25:07.000000000 +0100
@@ -1,0 +2,28 @@
+Tue Jan 26 11:42:18 UTC 2016 - toddrme2178(a)gmail.com
+
+- update to version 15.2.0:
+ * FIX: handle multiple events in a single register call in
+ :mod:`zmq.asyncio`
+ * FIX: unicode/bytes bug in password prompt in :mod:`zmq.ssh` on
+ Python 3
+ * FIX: workaround gevent monkeypatches in garbage collection thread
+ * update bundled minitornado from tornado-4.3.
+ * improved inspection by setting binding=True in cython compile
+ options
+ * add asyncio Authenticator implementation in
+ :mod:`zmq.auth.asyncio`
+ * workaround overflow bug in libzmq preventing receiving messages
+ larger than MAX_INT
+- update to version 15.1.0:
+ * FIX: Remove inadvertant tornado dependency when using
+ :mod:`zmq.asyncio`
+ * FIX: 15.0 Python 3.5 wheels didn't work on Windows
+ * Add GSSAPI support to Authenticators
+ * Support new constants defined in upcoming libzmq-4.2.dev
+- update to version 15.0.0:
+ * add :mod:`asyncio` support via :mod:`zmq.asyncio`
+ * add :mod:`tornado` future support via :mod:`zmq.eventloop.future`
+ * trigger bundled libzmq if system libzmq is found to be < 3. System
+ libzmq 2 can be forced by explicitly requesting --zmq=/prefix/.
+
+-------------------------------------------------------------------
Old:
----
pyzmq-14.7.0.tar.gz
New:
----
pyzmq-15.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyzmq.spec ++++++
--- /var/tmp/diff_new_pack.amLfde/_old 2016-01-28 17:25:08.000000000 +0100
+++ /var/tmp/diff_new_pack.amLfde/_new 2016-01-28 17:25:08.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-pyzmq
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python-pyzmq
-Version: 14.7.0
+Version: 15.2.0
Release: 0
Summary: Python bindings for 0MQ
License: LGPL-3.0+ and BSD-3-Clause
@@ -28,21 +28,19 @@
# PATCH-FIX-OPENSUSE skip_test_tracker.patch
Patch1: skip_test_tracker.patch
BuildRequires: python-Cython
-BuildRequires: python-devel
-BuildRequires: python-setuptools
-BuildRequires: zeromq-devel
-%if 0%{?suse_version} && 0%{?suse_version} <= 1110
BuildRequires: python-cffi
+BuildRequires: python-devel
BuildRequires: python-gevent
BuildRequires: python-numpy
BuildRequires: python-paramiko
BuildRequires: python-pexpect
BuildRequires: python-py
+BuildRequires: python-setuptools
BuildRequires: python-simplejson
BuildRequires: python-tornado
+BuildRequires: zeromq-devel
# Test requirements
BuildRequires: python-nose
-%endif
Requires: python
Recommends: python-cffi
Recommends: python-gevent
@@ -85,22 +83,28 @@
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
-# uses NETLINK which does not exist under linux mode..
-%if !0%{?qemu_user_space_build:1}
-%check
-python setup.py build_ext --inplace
-python setup.py test
-%endif
+# Disable tests, they are so slow that OBS thinks the build died.
+#%check
+## Remove non-deterministic authentication test
+## This fails to connect randomly
+# rm -rf zmq/tests/test_auth.py
+#
+# pthon3 setup.py build_ext --inplace
+# python3 setup.py test
%files
%defattr(-,root,root,-)
%doc AUTHORS.md COPYING.BSD COPYING.LESSER README.md examples docs
%{python_sitearch}/zmq/
-%{python_sitearch}/pyzmq-%{version}-py%{py_ver}.egg-info
+%{python_sitearch}/pyzmq-%{version}-py*.egg-info
%exclude %{python_sitearch}/zmq/utils/*.h
+%exclude %{python_sitearch}/zmq/backend/cffi/_verify.c
+%exclude %{python_sitearch}/zmq/backend/cffi/_cdefs.h
%files devel
%defattr(-,root,root,-)
%{python_sitearch}/zmq/utils/*.h
+%{python_sitearch}/zmq/backend/cffi/_verify.c
+%{python_sitearch}/zmq/backend/cffi/_cdefs.h
%changelog
++++++ pyzmq-14.7.0.tar.gz -> pyzmq-15.2.0.tar.gz ++++++
++++ 32684 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package ghc for openSUSE:Factory checked in at 2016-01-28 17:24:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc (Old)
and /work/SRC/openSUSE:Factory/.ghc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc/ghc.changes 2016-01-08 15:23:28.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc.new/ghc.changes 2016-01-28 17:25:06.000000000 +0100
@@ -1,0 +2,9 @@
+Tue Jan 26 08:22:59 UTC 2016 - mimi.vx(a)gmail.com
+
+- update Cabal to 1.22.7.0
+- refresh u_Cabal_update.patch
+* Backport #3012 to the 1.22 branch
+* Add foldl' import
+* The Cabal part for fully gcc-like response files
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc.spec ++++++
--- /var/tmp/diff_new_pack.nFgc01/_old 2016-01-28 17:25:07.000000000 +0100
+++ /var/tmp/diff_new_pack.nFgc01/_new 2016-01-28 17:25:07.000000000 +0100
@@ -125,7 +125,7 @@
%global ghc_pkg_c_deps ghc-compiler = %{ghc_version_override}-%{release}
%if %{defined ghclibdir}
-%ghc_lib_subpackage Cabal 1.22.6.0
+%ghc_lib_subpackage Cabal 1.22.7.0
%ghc_lib_subpackage array 0.5.1.0
%ghc_lib_subpackage -c gmp-devel,libffi-devel base 4.8.2.0
%ghc_lib_subpackage binary 0.7.5.0
++++++ u_Cabal_update.patch ++++++
--- /var/tmp/diff_new_pack.nFgc01/_old 2016-01-28 17:25:07.000000000 +0100
+++ /var/tmp/diff_new_pack.nFgc01/_new 2016-01-28 17:25:07.000000000 +0100
@@ -1,14 +1,23 @@
diff --git a/ghc-7.10.3.old/libraries/Cabal/Cabal/Cabal.cabal b/ghc-7.10.3/libraries/Cabal/Cabal/Cabal.cabal
-index b498ca0..f3b3c32 100644
+index b498ca0..bf64bd5 100644
--- a/ghc-7.10.3.old/libraries/Cabal/Cabal/Cabal.cabal
+++ b/ghc-7.10.3/libraries/Cabal/Cabal/Cabal.cabal
@@ -1,5 +1,5 @@
name: Cabal
-version: 1.22.5.0
-+version: 1.22.6.0
++version: 1.22.7.0
copyright: 2003-2006, Isaac Jones
2005-2011, Duncan Coutts
license: BSD3
+@@ -19,7 +19,7 @@ description:
+ organizing, and cataloging Haskell libraries and tools.
+ category: Distribution
+ cabal-version: >=1.10
+-build-type: Custom
++build-type: Simple
+ -- Even though we do use the default Setup.lhs it's vital to bootstrapping
+ -- that we build Setup.lhs using our own local Cabal source code.
+
@@ -145,7 +145,7 @@ library
if flag(bundled-binary-generic)
build-depends: binary >= 0.5 && < 0.7
@@ -77,6 +86,66 @@
-- Build static/dynamic object files for TH, if needed.
when compileForTH $
+diff --git a/ghc-7.10.3.old/libraries/Cabal/Cabal/Distribution/Simple/Haddock.hs b/ghc-7.10.3/libraries/Cabal/Cabal/Distribution/Simple/Haddock.hs
+index 095d6b8..2d09292 100644
+--- a/ghc-7.10.3.old/libraries/Cabal/Cabal/Distribution/Simple/Haddock.hs
++++ b/ghc-7.10.3/libraries/Cabal/Cabal/Distribution/Simple/Haddock.hs
+@@ -84,14 +84,16 @@ import Language.Haskell.Extension
+
+
+ import Control.Monad ( when, forM_ )
++import Data.Char ( isSpace )
+ import Data.Either ( rights )
+ import Data.Monoid
++import Data.Foldable ( foldl' )
+ import Data.Maybe ( fromMaybe, listToMaybe )
+
+ import System.Directory (doesFileExist)
+ import System.FilePath ( (</>), (<.>)
+ , normalise, splitPath, joinPath, isAbsolute )
+-import System.IO (hClose, hPutStrLn, hSetEncoding, utf8)
++import System.IO (hClose, hPutStr, hPutStrLn, hSetEncoding, utf8)
+ import Distribution.Version
+
+ -- ------------------------------------------------------------------------------
+@@ -467,7 +469,7 @@ renderArgs :: Verbosity
+ -> IO a
+ renderArgs verbosity tmpFileOpts version comp args k = do
+ let haddockSupportsUTF8 = version >= Version [2,14,4] []
+- haddockSupportsResponseFiles = version > Version [2,16,1] []
++ haddockSupportsResponseFiles = version > Version [2,16,2] []
+ createDirectoryIfMissingVerbose verbosity True outputDir
+ withTempFileEx tmpFileOpts outputDir "haddock-prologue.txt" $
+ \prologueFileName h -> do
+@@ -482,7 +484,7 @@ renderArgs verbosity tmpFileOpts version comp args k = do
+ withTempFileEx tmpFileOpts outputDir "haddock-response.txt" $
+ \responseFileName hf -> do
+ when haddockSupportsUTF8 (hSetEncoding hf utf8)
+- mapM_ (hPutStrLn hf) renderedArgs
++ hPutStr hf $ unlines $ map escapeArg renderedArgs
+ hClose hf
+ let respFile = "@" ++ responseFileName
+ k ([respFile], result)
+@@ -500,6 +502,19 @@ renderArgs verbosity tmpFileOpts version comp args k = do
+ pkgstr = display $ packageName pkgid
+ pkgid = arg argPackageName
+ arg f = fromFlag $ f args
++ -- Support a gcc-like response file syntax. Each separate
++ -- argument and its possible parameter(s), will be separated in the
++ -- response file by an actual newline; all other whitespace,
++ -- single quotes, double quotes, and the character used for escaping
++ -- (backslash) are escaped. The called program will need to do a similar
++ -- inverse operation to de-escape and re-constitute the argument list.
++ escape cs c
++ | isSpace c
++ || '\\' == c
++ || '\'' == c
++ || '"' == c = c:'\\':cs -- n.b., our caller must reverse the result
++ | otherwise = c:cs
++ escapeArg = reverse . foldl' escape []
+
+ renderPureArgs :: Version -> Compiler -> HaddockArgs -> [String]
+ renderPureArgs version comp args = concat
diff --git a/ghc-7.10.3.old/libraries/Cabal/Cabal/Distribution/Version.hs b/ghc-7.10.3/libraries/Cabal/Cabal/Distribution/Version.hs
index 1123749..e5c2e28 100644
--- a/ghc-7.10.3.old/libraries/Cabal/Cabal/Distribution/Version.hs
@@ -124,10 +193,16 @@
{-# DEPRECATED AnyVersion "Use 'anyVersion', 'foldVersionRange' or 'asVersionIntervals'" #-}
{-# DEPRECATED ThisVersion "use 'thisVersion', 'foldVersionRange' or 'asVersionIntervals'" #-}
diff --git a/ghc-7.10.3.old/libraries/Cabal/Cabal/changelog b/ghc-7.10.3/libraries/Cabal/Cabal/changelog
-index f5fb8ff..e3ab68c 100644
+index f5fb8ff..57b3450 100644
--- a/ghc-7.10.3.old/libraries/Cabal/Cabal/changelog
+++ b/ghc-7.10.3/libraries/Cabal/Cabal/changelog
-@@ -1,3 +1,6 @@
+@@ -1,3 +1,12 @@
++1.22.7.0 Ryan Thomas <ryan(a)ryant.org> January 2016
++ * Backport #3012 to the 1.22 branch
++ * Cabal.cabal: change build-type to Simple
++ * Add foldl' import
++ * The Cabal part for fully gcc-like response files
++
+1.22.6.0
+ * Relax upper bound to allow upcoming binary-0.8
+
1
0
Hello community,
here is the log from the commit of package ghc-aeson-extra for openSUSE:Factory checked in at 2016-01-28 17:24:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-aeson-extra (Old)
and /work/SRC/openSUSE:Factory/.ghc-aeson-extra.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-aeson-extra"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-aeson-extra/ghc-aeson-extra.changes 2016-01-07 00:25:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-aeson-extra.new/ghc-aeson-extra.changes 2016-01-28 17:25:05.000000000 +0100
@@ -1,0 +2,5 @@
+Wed Jan 20 10:02:25 UTC 2016 - mimi.vx(a)gmail.com
+
+- relax base-compat constraints
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-aeson-extra.spec ++++++
--- /var/tmp/diff_new_pack.hPadA5/_old 2016-01-28 17:25:06.000000000 +0100
+++ /var/tmp/diff_new_pack.hPadA5/_new 2016-01-28 17:25:06.000000000 +0100
@@ -79,6 +79,7 @@
%prep
%setup -q -n %{pkg_name}-%{version}
+cabal-tweak-dep-ver base-compat '<0.9' '<0.10'
%build
%ghc_lib_build
1
0
Hello community,
here is the log from the commit of package ghc-yaml for openSUSE:Factory checked in at 2016-01-28 17:24:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-yaml (Old)
and /work/SRC/openSUSE:Factory/.ghc-yaml.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-yaml"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-yaml/ghc-yaml.changes 2015-12-09 22:17:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-yaml.new/ghc-yaml.changes 2016-01-28 17:25:04.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 20 13:48:32 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.8.15.3
+* Give a warning when compiling with GHCJS
+
+-------------------------------------------------------------------
Old:
----
yaml-0.8.15.2.tar.gz
New:
----
yaml-0.8.15.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-yaml.spec ++++++
--- /var/tmp/diff_new_pack.ZQQJNm/_old 2016-01-28 17:25:05.000000000 +0100
+++ /var/tmp/diff_new_pack.ZQQJNm/_new 2016-01-28 17:25:05.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-yaml
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%global pkg_name yaml
Name: ghc-yaml
-Version: 0.8.15.2
+Version: 0.8.15.3
Release: 0
Summary: Support for parsing and rendering YAML documents
License: BSD-3-Clause
@@ -69,7 +69,6 @@
%setup -q -n %{pkg_name}-%{version}
%build
-
%define cabal_configure_options -f system-libyaml
%ghc_lib_build
++++++ yaml-0.8.15.2.tar.gz -> yaml-0.8.15.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yaml-0.8.15.2/ChangeLog.md new/yaml-0.8.15.3/ChangeLog.md
--- old/yaml-0.8.15.2/ChangeLog.md 2015-11-29 17:03:39.000000000 +0100
+++ new/yaml-0.8.15.3/ChangeLog.md 2016-01-18 15:53:27.000000000 +0100
@@ -1,3 +1,7 @@
+## 0.8.15.3
+
+* Give a warning when compiling with GHCJS
+
## 0.8.15.2
* Canonicalise Monad instances [#76](https://github.com/snoyberg/yaml/pull/76)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yaml-0.8.15.2/Data/Yaml.hs new/yaml-0.8.15.3/Data/Yaml.hs
--- old/yaml-0.8.15.2/Data/Yaml.hs 2015-11-29 17:03:39.000000000 +0100
+++ new/yaml-0.8.15.3/Data/Yaml.hs 2016-01-18 15:53:27.000000000 +0100
@@ -16,7 +16,11 @@
--
-- For documentation on the @aeson@ types, functions, classes, and
-- operators, please see the @Data.Aeson@ module of the @aeson@ package.
+#if (defined (ghcjs_HOST_OS))
+module Data.Yaml {-# WARNING "GHCJS is not supported yet (will break at runtime once called)." #-}
+#else
module Data.Yaml
+#endif
( -- * Types
Value (..)
, Parser
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yaml-0.8.15.2/yaml.cabal new/yaml-0.8.15.3/yaml.cabal
--- old/yaml-0.8.15.2/yaml.cabal 2015-11-29 17:03:39.000000000 +0100
+++ new/yaml-0.8.15.3/yaml.cabal 2016-01-18 15:53:27.000000000 +0100
@@ -1,5 +1,5 @@
name: yaml
-version: 0.8.15.2
+version: 0.8.15.3
license: BSD3
license-file: LICENSE
author: Michael Snoyman <michael(a)snoyman.com>, Anton Ageev <antage(a)gmail.com>,Kirill Simonov
1
0
Hello community,
here is the log from the commit of package ghc-warp for openSUSE:Factory checked in at 2016-01-28 17:24:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-warp (Old)
and /work/SRC/openSUSE:Factory/.ghc-warp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-warp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-warp/ghc-warp.changes 2016-01-07 00:25:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-warp.new/ghc-warp.changes 2016-01-28 17:25:03.000000000 +0100
@@ -1,0 +2,16 @@
+Wed Jan 20 13:45:15 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 3.2.2
+* Throwing errno for pread
+* Add back warpVersion
+* Major version up due to breaking changes. This is because the HTTP/2 code was
+ started over with Warp 3.1.3 due to performance issue
+* runHTTP2, runHTTP2Env, runHTTP2Settings and runHTTP2SettingsSocket were removed
+ from the Network.Wai.Handler.Warp module.
+* The performance of HTTP/2 was drastically improved. Now the performance of HTTP/2
+ is almost the same as that of HTTP/1.1.
+* The logic to handle files in HTTP/2 is now identical to that in HTTP/1.1.
+* Internal stuff was removed from the Network.Wai.Handler.Warp module
+ according to the plan.
+
+-------------------------------------------------------------------
Old:
----
warp-3.1.12.tar.gz
New:
----
warp-3.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-warp.spec ++++++
--- /var/tmp/diff_new_pack.YUriPL/_old 2016-01-28 17:25:04.000000000 +0100
+++ /var/tmp/diff_new_pack.YUriPL/_new 2016-01-28 17:25:04.000000000 +0100
@@ -21,7 +21,7 @@
%bcond_with tests
Name: ghc-warp
-Version: 3.1.12
+Version: 3.2.2
Release: 0
Summary: A fast, light-weight web server for WAI applications
License: MIT
++++++ warp-3.1.12.tar.gz -> warp-3.2.2.tar.gz ++++++
++++ 3295 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package ghc-wai for openSUSE:Factory checked in at 2016-01-28 17:24:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-wai (Old)
and /work/SRC/openSUSE:Factory/.ghc-wai.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-wai"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-wai/ghc-wai.changes 2015-12-23 08:49:27.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-wai.new/ghc-wai.changes 2016-01-28 17:25:02.000000000 +0100
@@ -1,0 +2,12 @@
+Wed Jan 20 12:01:48 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 3.2.0
+* Major version up due to breaking changes. We chose 3.2.0, not 3.1.0 for
+ consistency with Warp 3.2.0.
+* The Network.Wai.HTTP2 module was removed.
+* tryGetFileSize, hContentRange, hAcceptRanges, contentRangeHeader and
+ chooseFilePart, adjustForFilePart and parseByteRanges were removed from
+ the Network.Wai.Internal module.
+* New fields for Request: requestHeaderReferer and requestHeaderUserAgent.
+
+-------------------------------------------------------------------
Old:
----
wai-3.0.5.0.tar.gz
New:
----
wai-3.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-wai.spec ++++++
--- /var/tmp/diff_new_pack.aeeLVy/_old 2016-01-28 17:25:03.000000000 +0100
+++ /var/tmp/diff_new_pack.aeeLVy/_new 2016-01-28 17:25:03.000000000 +0100
@@ -21,7 +21,7 @@
%bcond_with tests
Name: ghc-wai
-Version: 3.0.5.0
+Version: 3.2.0
Release: 0
Summary: Web Application Interface
License: MIT
++++++ wai-3.0.5.0.tar.gz -> wai-3.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-3.0.5.0/Network/Wai/HTTP2.hs new/wai-3.2.0/Network/Wai/HTTP2.hs
--- old/wai-3.0.5.0/Network/Wai/HTTP2.hs 2015-12-07 10:08:37.000000000 +0100
+++ new/wai-3.2.0/Network/Wai/HTTP2.hs 1970-01-01 01:00:00.000000000 +0100
@@ -1,272 +0,0 @@
-{-# LANGUAGE OverloadedStrings, RankNTypes #-}
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-
--- | An HTTP\/2-aware variant of the 'Network.Wai.Application' type. Compared
--- to the original, this exposes the new functionality of server push and
--- trailers, allows stream fragments to be sent in the form of file ranges, and
--- allows the stream body to produce a value to be used in constructing the
--- trailers. Existing @Applications@ can be faithfully upgraded to HTTP\/2
--- with 'promoteApplication' or served transparently over both protocols with
--- the normal Warp 'Network.Wai.Handler.Warp.run' family of functions.
---
--- An 'HTTP2Application' takes a 'Request' and a 'PushFunc' and produces a
--- 'Responder' that will push any associated resources and send the response
--- body. The response is always a stream of 'Builder's and file chunks.
--- Equivalents of the 'Network.Wai.responseBuilder' family of functions are
--- provided for creating 'Responder's conveniently.
---
--- Pushed streams are handled by an IO action that triggers a server push. It
--- returns @True@ if the @PUSH_PROMISE@ frame was sent, @False@ if not. Note
--- this means it will still return @True@ if the client reset or ignored the
--- stream. This gives handlers the freedom to implement their own heuristics
--- for whether to actually push a resource, while also allowing middleware and
--- frameworks to trigger server pushes automatically.
-
-module Network.Wai.HTTP2
- (
- -- * Applications
- HTTP2Application
- -- * Responder
- , Responder(..)
- , RespondFunc
- , Body
- , Chunk(..)
- , Trailers
- -- * Server push
- , PushFunc
- , PushPromise(..)
- , promiseHeaders
- -- * Conveniences
- , promoteApplication
- -- ** Responders
- , respond
- , respondCont
- , respondIO
- , respondFile
- , respondFilePart
- , respondNotFound
- , respondWith
- -- ** Stream Bodies
- , streamFilePart
- , streamBuilder
- , streamSimple
- ) where
-
-import Blaze.ByteString.Builder (Builder)
-import Blaze.ByteString.Builder.ByteString (fromByteString)
-import Control.Exception (Exception, throwIO)
-import Control.Monad.Trans.Cont (ContT(..))
-import Data.ByteString (ByteString)
-#if __GLASGOW_HASKELL__ < 709
-import Data.Functor ((<$>))
-#endif
-import Data.IORef (newIORef, readIORef, writeIORef)
-#if __GLASGOW_HASKELL__ < 709
-import Data.Monoid (mempty)
-#endif
-import Data.Typeable (Typeable)
-import qualified Network.HTTP.Types as H
-
-import Network.Wai (Application)
-import Network.Wai.Internal
- ( FilePart(..)
- , Request(requestHeaders)
- , Response(..)
- , ResponseReceived(..)
- , StreamingBody
- , adjustForFilePart
- , chooseFilePart
- , tryGetFileSize
- )
-
--- | Headers sent after the end of a data stream, as defined by section 4.1.2 of
--- the HTTP\/1.1 spec (RFC 7230), and section 8.1 of the HTTP\/2 spec.
-type Trailers = [H.Header]
-
--- | The synthesized request and headers of a pushed stream.
-data PushPromise = PushPromise
- { promisedMethod :: H.Method
- , promisedPath :: ByteString
- , promisedAuthority :: ByteString
- , promisedScheme :: ByteString
- , promisedHeader :: H.RequestHeaders
- }
-
--- | The HTTP\/2-aware equivalent of 'Network.Wai.Application'.
-type HTTP2Application = Request -> PushFunc -> Responder
-
--- | Part of a streaming response -- either a 'Builder' or a range of a file.
-data Chunk = FileChunk FilePath FilePart | BuilderChunk Builder
-
--- | The streaming body of a response. Equivalent to
--- 'Network.Wai.StreamingBody' except that it can also write file ranges and
--- return the stream's trailers.
-type Body = (Chunk -> IO ()) -> IO () -> IO Trailers
-
--- | Given to 'Responders'; provide a status, headers, and a stream body, and
--- we'll give you a token proving you called the 'RespondFunc'.
-type RespondFunc s = H.Status -> H.ResponseHeaders -> Body -> IO s
-
--- | The result of an 'HTTP2Application'; or, alternately, an application
--- that's independent of the request. This is a continuation-passing style
--- function that first provides a response by calling the given respond
--- function, then returns the request's 'Trailers'.
---
--- The respond function is similar to the one in 'Network.Wai.Application', but
--- it only takes a streaming body, the status and headers are curried, and it
--- also produces trailers for the stream.
-newtype Responder = Responder
- { runResponder :: forall s. RespondFunc s -> IO s }
-
--- | A function given to an 'HTTP2Application' to initiate a server-pushed
--- stream. Its argument is the same as the result of an 'HTTP2Application', so
--- you can either implement the response inline, or call your own application
--- to create the response.
---
--- The result is 'True' if the @PUSH_PROMISE@ frame will be sent, or 'False' if
--- it will not. This can happen if server push is disabled, the concurrency
--- limit of server-initiated streams is reached, or the associated stream has
--- already been closed.
---
--- This function shall ensure that stream data provided after it returns will
--- be sent after the @PUSH_PROMISE@ frame, so that servers can implement the
--- requirement that any pushed stream for a resource be initiated before
--- sending DATA frames that reference it.
-type PushFunc = PushPromise -> Responder -> IO Bool
-
--- | Create the 'H.RequestHeaders' corresponding to the given 'PushPromise'.
---
--- This is primarily useful for WAI handlers like Warp, and application
--- implementers are unlikely to use it directly.
-promiseHeaders :: PushPromise -> H.RequestHeaders
-promiseHeaders p =
- [ (":method", promisedMethod p)
- , (":path", promisedPath p)
- , (":authority", promisedAuthority p)
- , (":scheme", promisedScheme p)
- ] ++ promisedHeader p
-
--- | Create a response body consisting of a single range of a file. Does not
--- set Content-Length or Content-Range headers. For that, use
--- 'respondFilePart' or 'respondFile'.
-streamFilePart :: FilePath -> FilePart -> Body
-streamFilePart path part write _ = write (FileChunk path part) >> return []
-
--- | Respond with a single range of a file, adding the Accept-Ranges,
--- Content-Length and Content-Range headers and changing the status to 206 as
--- appropriate.
---
--- If you want the range to be inferred automatically from the Range header,
--- use 'respondFile' instead. On the other hand, if you want to avoid the
--- automatic header and status adjustments, use 'respond' and 'streamFilePart'
--- directly.
-respondFilePart :: H.Status -> H.ResponseHeaders -> FilePath -> FilePart -> Responder
-respondFilePart s h path part = Responder $ \k -> do
- let (s', h') = adjustForFilePart s h part
- k s' h' $ streamFilePart path part
-
--- | Serve the requested range of the specified file (based on the Range
--- header), using the given 'H.Status' and 'H.ResponseHeaders' as a base. If
--- the file is not accessible, the status will be replaced with 404 and a
--- default not-found message will be served. If a partial file is requested,
--- the status will be replaced with 206 and the Content-Range header will be
--- added. The Content-Length header will always be added.
-respondFile :: H.Status -> H.ResponseHeaders -> FilePath -> H.RequestHeaders -> Responder
-respondFile s h path reqHdrs = Responder $ \k -> do
- fileSize <- tryGetFileSize path
- case fileSize of
- Left _ -> runResponder (respondNotFound h) k
- Right size -> runResponder (respondFileExists s h path size reqHdrs) k
-
--- As 'respondFile', but with prior knowledge of the file's existence and size.
-respondFileExists :: H.Status -> H.ResponseHeaders -> FilePath -> Integer -> H.RequestHeaders -> Responder
-respondFileExists s h path size reqHdrs =
- respondFilePart s h path $ chooseFilePart size $ lookup H.hRange reqHdrs
-
--- | Respond with a minimal 404 page with the given headers.
-respondNotFound :: H.ResponseHeaders -> Responder
-respondNotFound h = Responder $ \k -> k H.notFound404 h' $
- streamBuilder $ fromByteString "File not found."
- where
- contentType = (H.hContentType, "text/plain; charset=utf-8")
- h' = contentType:filter ((/=H.hContentType) . fst) h
-
--- | Construct a 'Responder' that will just call the 'RespondFunc' with the
--- given arguments.
-respond :: H.Status -> H.ResponseHeaders -> Body -> Responder
-respond s h b = Responder $ \k -> k s h b
-
--- | Fold the given bracketing action into a 'Responder'. Note the first
--- argument is isomorphic to @Codensity IO a@ or @forall s. ContT s IO a@, and
--- is the type of a partially-applied 'Control.Exception.bracket' or
--- @with@-style function.
---
--- > respondWith (bracket acquire release) $
--- > \x -> respondNotFound [("x", show x)]
---
--- is equivalent to
---
--- > Responder $ \k -> bracket acquire release $
--- > \x -> runResponder (respondNotFound [("x", show x)] k
---
--- This is morally equivalent to ('>>=') on 'Codensity' 'IO'.
-respondWith :: (forall s. (a -> IO s) -> IO s) -> (a -> Responder) -> Responder
-respondWith with f = respondCont $ f <$> ContT with
-
--- | Fold the 'ContT' into the contained 'Responder'.
-respondCont :: (forall r. ContT r IO Responder) -> Responder
-respondCont cont = Responder $ \k -> runContT cont $ \r -> runResponder r k
-
--- | Fold the 'IO' into the contained 'Responder'.
-respondIO :: IO Responder -> Responder
-respondIO io = Responder $ \k -> io >>= \r -> runResponder r k
-
--- | Create a response body consisting of a single builder.
-streamBuilder :: Builder -> Body
-streamBuilder builder write _ = write (BuilderChunk builder) >> return []
-
--- | Create a response body of a stream of 'Builder's.
-streamSimple :: StreamingBody -> Body
-streamSimple body write flush = body (write . BuilderChunk) flush >> return []
-
--- | Use a normal WAI 'Response' to send the response. Useful if you're
--- sharing code between HTTP\/2 applications and HTTP\/1 applications.
---
--- The 'Request' is used to determine the right file range to serve for
--- 'ResponseFile'.
-promoteResponse :: Request -> Response -> Responder
-promoteResponse req response = case response of
- (ResponseBuilder s h b) ->
- Responder $ \k -> k s h (streamBuilder b)
- (ResponseStream s h body) ->
- Responder $ \k -> k s h (streamSimple body)
- (ResponseRaw _ fallback) -> promoteResponse req fallback
- (ResponseFile s h path mpart) -> maybe
- (respondFile s h path $ requestHeaders req)
- (respondFilePart s h path)
- mpart
-
--- | An 'Network.Wai.Application' we tried to promote neither called its
--- respond action nor raised; this is only possible if it imported the
--- 'ResponseReceived' constructor and used it to lie about having called the
--- action.
-data RespondNeverCalled = RespondNeverCalled deriving (Show, Typeable)
-
-instance Exception RespondNeverCalled
-
--- | Promote a normal WAI 'Application' to an 'HTTP2Application' by ignoring
--- the HTTP/2-specific features.
-promoteApplication :: Application -> HTTP2Application
-promoteApplication app req _ = Responder $ \k -> do
- -- In HTTP2Applications, the Responder is required to ferry a value of
- -- arbitrary type from the RespondFunc back to the caller of the
- -- application, but in Application the type is fixed to ResponseReceived.
- -- To add this extra power to an Application, we have to squirrel it away
- -- in an IORef as a hack.
- ref <- newIORef Nothing
- let k' r = do
- writeIORef ref . Just =<< runResponder (promoteResponse req r) k
- return ResponseReceived
- ResponseReceived <- app req k'
- readIORef ref >>= maybe (throwIO RespondNeverCalled) return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-3.0.5.0/Network/Wai/Internal.hs new/wai-3.2.0/Network/Wai/Internal.hs
--- old/wai-3.0.5.0/Network/Wai/Internal.hs 2015-12-07 10:08:37.000000000 +0100
+++ new/wai-3.2.0/Network/Wai/Internal.hs 2015-12-30 01:24:47.000000000 +0100
@@ -1,7 +1,6 @@
{-# OPTIONS_HADDOCK not-home #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE CPP #-}
-{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
-- | Internal constructors and helper functions. Note that no guarantees are
@@ -9,25 +8,17 @@
module Network.Wai.Internal where
import Blaze.ByteString.Builder (Builder)
-import Control.Exception (IOException, try)
import qualified Data.ByteString as B hiding (pack)
-import qualified Data.ByteString.Builder as B
-import qualified Data.ByteString.Char8 as B (pack, readInteger)
-import qualified Data.ByteString.Lazy as L
#if __GLASGOW_HASKELL__ < 709
import Data.Functor ((<$>))
#endif
-import Data.Maybe (listToMaybe)
import Data.Text (Text)
import Data.Typeable (Typeable)
import Data.Vault.Lazy (Vault)
import Data.Word (Word64)
import qualified Network.HTTP.Types as H
-import qualified Network.HTTP.Types.Header as HH
import Network.Socket (SockAddr)
-import Numeric (showInt)
import Data.List (intercalate)
-import qualified System.PosixCompat.Files as P
-- | Information on the request sent by the client. This abstracts away the
-- details of the underlying implementation.
@@ -93,6 +84,14 @@
--
-- Since 2.0.0
, requestHeaderRange :: Maybe B.ByteString
+ -- | The value of the Referer header in a HTTP request.
+ --
+ -- Since 3.2.0
+ , requestHeaderReferer :: Maybe B.ByteString
+ -- | The value of the User-Agent header in a HTTP request.
+ --
+ -- Since 3.2.0
+ , requestHeaderUserAgent :: Maybe B.ByteString
}
deriving (Typeable)
@@ -157,91 +156,3 @@
-- Since 3.0.0
data ResponseReceived = ResponseReceived
deriving Typeable
-
--- | Look up the size of a file in 'Right' or the 'IOException' in 'Left'.
-tryGetFileSize :: FilePath -> IO (Either IOException Integer)
-tryGetFileSize path =
- fmap (fromIntegral . P.fileSize) <$> try (P.getFileStatus path)
-
--- | \"Content-Range\".
-hContentRange :: H.HeaderName
-hContentRange = "Content-Range"
-
--- | \"Accept-Ranges\".
-hAcceptRanges :: H.HeaderName
-hAcceptRanges = "Accept-Ranges"
-
--- | @contentRangeHeader beg end total@ constructs a Content-Range 'H.Header'
--- for the range specified.
-contentRangeHeader :: Integer -> Integer -> Integer -> H.Header
-contentRangeHeader beg end total = (hContentRange, range)
- where
- range = B.pack
- -- building with ShowS
- $ 'b' : 'y': 't' : 'e' : 's' : ' '
- : (if beg > end then ('*':) else
- showInt beg
- . ('-' :)
- . showInt end)
- ( '/'
- : showInt total "")
-
--- | Given the full size of a file and optionally a Range header value,
--- determine the range to serve by parsing the range header and obeying it, or
--- serving the whole file if it's absent or malformed.
-chooseFilePart :: Integer -> Maybe B.ByteString -> FilePart
-chooseFilePart size Nothing = FilePart 0 size size
-chooseFilePart size (Just range) = case parseByteRanges range >>= listToMaybe of
- -- Range is broken
- Nothing -> FilePart 0 size size
- Just hrange -> checkRange hrange
- where
- checkRange (H.ByteRangeFrom beg) = fromRange beg (size - 1)
- checkRange (H.ByteRangeFromTo beg end) = fromRange beg (min (size - 1) end)
- checkRange (H.ByteRangeSuffix count) = fromRange (max 0 (size - count)) (size - 1)
-
- fromRange beg end = FilePart beg (end - beg + 1) size
-
--- | Adjust the given 'H.Status' and 'H.ResponseHeaders' based on the given
--- 'FilePart'. This means replacing the status with 206 if the response is
--- partial, and adding the Content-Length and Accept-Ranges (always) and
--- Content-Range (if appropriate) headers.
-adjustForFilePart :: H.Status -> H.ResponseHeaders -> FilePart -> (H.Status, H.ResponseHeaders)
-adjustForFilePart s h part = (s', h'')
- where
- off = filePartOffset part
- len = filePartByteCount part
- size = filePartFileSize part
-
- contentRange = contentRangeHeader off (off + len - 1) size
- lengthBS = L.toStrict $ B.toLazyByteString $ B.integerDec len
- s' = if filePartByteCount part /= size then H.partialContent206 else s
- h' = (H.hContentLength, lengthBS):(hAcceptRanges, "bytes"):h
- h'' = (if len == size then id else (contentRange:)) h'
-
--- | Parse the value of a Range header into a 'HH.ByteRanges'.
-parseByteRanges :: B.ByteString -> Maybe HH.ByteRanges
-parseByteRanges bs1 = do
- bs2 <- stripPrefix "bytes=" bs1
- (r, bs3) <- range bs2
- ranges (r:) bs3
- where
- range bs2 = do
- (i, bs3) <- B.readInteger bs2
- if i < 0 -- has prefix "-" ("-0" is not valid, but here treated as "0-")
- then Just (HH.ByteRangeSuffix (negate i), bs3)
- else do
- bs4 <- stripPrefix "-" bs3
- case B.readInteger bs4 of
- Just (j, bs5) | j >= i -> Just (HH.ByteRangeFromTo i j, bs5)
- _ -> Just (HH.ByteRangeFrom i, bs4)
- ranges front bs3
- | B.null bs3 = Just (front [])
- | otherwise = do
- bs4 <- stripPrefix "," bs3
- (r, bs5) <- range bs4
- ranges (front . (r:)) bs5
-
- stripPrefix x y
- | x `B.isPrefixOf` y = Just (B.drop (B.length x) y)
- | otherwise = Nothing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-3.0.5.0/Network/Wai.hs new/wai-3.2.0/Network/Wai.hs
--- old/wai-3.0.5.0/Network/Wai.hs 2015-12-07 10:08:37.000000000 +0100
+++ new/wai-3.2.0/Network/Wai.hs 2015-12-30 01:24:47.000000000 +0100
@@ -59,6 +59,8 @@
, requestBodyLength
, requestHeaderHost
, requestHeaderRange
+ , requestHeaderReferer
+ , requestHeaderUserAgent
, strictRequestBody
, lazyRequestBody
-- * Response
@@ -274,6 +276,8 @@
, requestBodyLength = KnownLength 0
, requestHeaderHost = Nothing
, requestHeaderRange = Nothing
+ , requestHeaderReferer = Nothing
+ , requestHeaderUserAgent = Nothing
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wai-3.0.5.0/wai.cabal new/wai-3.2.0/wai.cabal
--- old/wai-3.0.5.0/wai.cabal 2015-12-07 10:08:37.000000000 +0100
+++ new/wai-3.2.0/wai.cabal 2015-12-30 01:24:47.000000000 +0100
@@ -1,5 +1,5 @@
Name: wai
-Version: 3.0.5.0
+Version: 3.2.0
Synopsis: Web Application Interface.
Description: Provides a common protocol for communication between web applications and web servers.
description: API docs and the README are available at <http://www.stackage.org/package/wai>.
@@ -27,10 +27,8 @@
, http-types >= 0.7
, text >= 0.7
, transformers >= 0.0
- , unix-compat >= 0.2
, vault >= 0.3 && < 0.4
Exposed-modules: Network.Wai
- Network.Wai.HTTP2
Network.Wai.Internal
ghc-options: -Wall
1
0
Hello community,
here is the log from the commit of package ghc-temporary for openSUSE:Factory checked in at 2016-01-28 17:24:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-temporary (Old)
and /work/SRC/openSUSE:Factory/.ghc-temporary.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-temporary"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-temporary/ghc-temporary.changes 2015-05-21 08:12:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-temporary.new/ghc-temporary.changes 2016-01-28 17:25:01.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Jan 26 10:04:40 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 1.2.0.4
+
+-------------------------------------------------------------------
Old:
----
temporary-1.2.0.3.tar.gz
New:
----
temporary-1.2.0.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-temporary.spec ++++++
--- /var/tmp/diff_new_pack.JUVaOB/_old 2016-01-28 17:25:02.000000000 +0100
+++ /var/tmp/diff_new_pack.JUVaOB/_new 2016-01-28 17:25:02.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name temporary
Name: ghc-temporary
-Version: 1.2.0.3
+Version: 1.2.0.4
Release: 0
Summary: Haskell portable temporary file and directory support
License: BSD-3-Clause
++++++ temporary-1.2.0.3.tar.gz -> temporary-1.2.0.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/temporary-1.2.0.3/System/IO/Temp.hs new/temporary-1.2.0.4/System/IO/Temp.hs
--- old/temporary-1.2.0.3/System/IO/Temp.hs 2014-05-11 14:22:06.000000000 +0200
+++ new/temporary-1.2.0.4/System/IO/Temp.hs 2016-01-24 22:49:53.000000000 +0100
@@ -20,7 +20,7 @@
import Distribution.Compat.TempFile
--- | Create and use a temporary directory in the system standard temporary directory.
+-- | Create and use a temporary file in the system standard temporary directory.
--
-- Behaves exactly the same as 'withTempFile', except that the parent temporary directory
-- will be that returned by 'getTemporaryDirectory'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/temporary-1.2.0.3/temporary.cabal new/temporary-1.2.0.4/temporary.cabal
--- old/temporary-1.2.0.3/temporary.cabal 2014-05-11 14:22:06.000000000 +0200
+++ new/temporary-1.2.0.4/temporary.cabal 2016-01-24 23:33:16.000000000 +0100
@@ -1,5 +1,5 @@
name: temporary
-version: 1.2.0.3
+version: 1.2.0.4
cabal-version: >= 1.6
synopsis: Portable temporary file and directory support for Windows and Unix, based on code from Cabal
description: The functions for creating temporary files and directories in the base library are quite limited. The unixutils
@@ -14,10 +14,14 @@
(c) 2005-2009, Duncan Coutts
author: Isaac Jones <ijones(a)syntaxpolice.org>
Duncan Coutts <duncan(a)haskell.org>
-maintainer: Max Bolingbroke <batterseapower(a)hotmail.com>
-homepage: http://www.github.com/batterseapower/temporary
+maintainer: Mateusz Kowalczyk <fuuzetsu(a)fuuzetsu.co.uk>, Roman Cheplyaka <roma(a)ro-che.info>
+homepage: http://www.github.com/feuerbach/temporary
build-type: Simple
+source-repository head
+ type: git
+ location: git://github.com/feuerbach/temporary.git
+
Library
exposed-modules: System.IO.Temp
other-modules: Distribution.Compat.Exception
1
0
Hello community,
here is the log from the commit of package ghc-tar for openSUSE:Factory checked in at 2016-01-28 17:24:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-tar (Old)
and /work/SRC/openSUSE:Factory/.ghc-tar.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-tar"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-tar/ghc-tar.changes 2015-11-26 17:03:15.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-tar.new/ghc-tar.changes 2016-01-28 17:25:01.000000000 +0100
@@ -1,0 +2,26 @@
+Fri Jan 15 10:17:58 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.5.0.1
+* Change type of Index.serialise to be simply strict bytestring.
+* Preserve file timestamps on unpack
+
+-------------------------------------------------------------------
+Mon Jan 11 08:26:53 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.4.5.0
+* revert accidental minor API change in 0.4.x series (the type of the owner and
+ group name strings). The 0.4.3.0 and 0.4.4.0 releases contained the accidental
+ API change.
+* Add a handy foldlEntries function
+* Build and warning fixes for GHC 7.10 and 8.0
+* New Index module function toList to get all index entries
+* New Index function unfinalise to extend existing index
+ + 9x faster reading
+ + 9x faster index construction
+ + 24x faster index extension
+* More compact entry types, using ByteStrings
+* More Eq and Show instances
+* Greater QC test coverage
+* Fix minor bug in reading non-standard v7 format entries
+
+-------------------------------------------------------------------
Old:
----
tar-0.4.2.2.tar.gz
New:
----
tar-0.5.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-tar.spec ++++++
--- /var/tmp/diff_new_pack.vxtEhM/_old 2016-01-28 17:25:01.000000000 +0100
+++ /var/tmp/diff_new_pack.vxtEhM/_new 2016-01-28 17:25:01.000000000 +0100
@@ -20,7 +20,7 @@
%bcond_with tests
Name: ghc-tar
-Version: 0.4.2.2
+Version: 0.5.0.1
Release: 0
Summary: Reading, writing and manipulating ".tar" archive files
Group: System/Libraries
@@ -35,6 +35,8 @@
# Begin cabal-rpm deps:
BuildRequires: ghc-array-devel
BuildRequires: ghc-bytestring-devel
+BuildRequires: ghc-containers-devel
+BuildRequires: ghc-deepseq-devel
BuildRequires: ghc-directory-devel
BuildRequires: ghc-filepath-devel
BuildRequires: ghc-time-devel
++++++ tar-0.4.2.2.tar.gz -> tar-0.5.0.1.tar.gz ++++++
++++ 2847 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package ghc-pipes for openSUSE:Factory checked in at 2016-01-28 17:24:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-pipes (Old)
and /work/SRC/openSUSE:Factory/.ghc-pipes.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-pipes"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-pipes/ghc-pipes.changes 2015-11-18 22:34:41.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-pipes.new/ghc-pipes.changes 2016-01-28 17:24:59.000000000 +0100
@@ -1,0 +2,5 @@
+Wed Jan 20 10:03:51 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 4.1.8
+
+-------------------------------------------------------------------
Old:
----
pipes-4.1.7.tar.gz
New:
----
pipes-4.1.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-pipes.spec ++++++
--- /var/tmp/diff_new_pack.0t2vo8/_old 2016-01-28 17:25:00.000000000 +0100
+++ /var/tmp/diff_new_pack.0t2vo8/_new 2016-01-28 17:25:00.000000000 +0100
@@ -21,7 +21,7 @@
%bcond_with tests
Name: ghc-pipes
-Version: 4.1.7
+Version: 4.1.8
Release: 0
Summary: Compositional pipelines
License: BSD-3-Clause
++++++ pipes-4.1.7.tar.gz -> pipes-4.1.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pipes-4.1.7/pipes.cabal new/pipes-4.1.8/pipes.cabal
--- old/pipes-4.1.7/pipes.cabal 2015-11-08 21:06:24.000000000 +0100
+++ new/pipes-4.1.8/pipes.cabal 2016-01-18 19:05:18.000000000 +0100
@@ -1,5 +1,5 @@
Name: pipes
-Version: 4.1.7
+Version: 4.1.8
Cabal-Version: >= 1.10
Build-Type: Simple
License: BSD3
@@ -44,7 +44,7 @@
HS-Source-Dirs: src
Build-Depends:
base >= 4.4 && < 5 ,
- transformers >= 0.2.0.0 && < 0.5,
+ transformers >= 0.2.0.0 && < 0.6,
mmorph >= 1.0.0 && < 1.1,
mtl >= 2.1 && < 2.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pipes-4.1.7/src/Pipes/Internal.hs new/pipes-4.1.8/src/Pipes/Internal.hs
--- old/pipes-4.1.7/src/Pipes/Internal.hs 2015-11-08 21:06:24.000000000 +0100
+++ new/pipes-4.1.8/src/Pipes/Internal.hs 2016-01-18 19:05:17.000000000 +0100
@@ -84,10 +84,10 @@
Respond b fb' -> Respond b (\b' -> go (fb' b'))
M m -> M (m >>= \p' -> return (go p'))
Pure f -> fmap f px
- (*>) = (>>)
+ m *> k = m >>= (\_ -> k)
instance Monad m => Monad (Proxy a' a b' b m) where
- return = Pure
+ return = pure
(>>=) = _bind
_bind
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pipes-4.1.7/src/Pipes.hs new/pipes-4.1.8/src/Pipes.hs
--- old/pipes-4.1.7/src/Pipes.hs 2015-11-08 21:06:24.000000000 +0100
+++ new/pipes-4.1.8/src/Pipes.hs 2016-01-18 19:05:17.000000000 +0100
@@ -408,7 +408,7 @@
yield (f x) ) ) )
instance (Monad m) => Monad (ListT m) where
- return a = Select (yield a)
+ return = pure
m >>= f = Select (for (enumerate m) (\a -> enumerate (f a)))
fail _ = mzero
1
0
Hello community,
here is the log from the commit of package ghc-profunctors for openSUSE:Factory checked in at 2016-01-28 17:24:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-profunctors (Old)
and /work/SRC/openSUSE:Factory/.ghc-profunctors.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-profunctors"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-profunctors/ghc-profunctors.changes 2015-12-09 22:17:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-profunctors.new/ghc-profunctors.changes 2016-01-28 17:25:00.000000000 +0100
@@ -1,0 +2,10 @@
+Wed Jan 20 11:55:47 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 5.2
+* Renamed Cotambara to TambaraChoice and Pastro to PastroChoice.
+* Added a true Cotambara and Copastro construction for (co)freely generating
+ costrength, along with CotambaraSum and CopastroSum variants.
+* Engaged in a fair bit of bikeshedding about the module structure for lesser used
+ modules in this package.
+
+-------------------------------------------------------------------
Old:
----
profunctors-5.1.2.tar.gz
New:
----
profunctors-5.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-profunctors.spec ++++++
--- /var/tmp/diff_new_pack.gkDvTD/_old 2016-01-28 17:25:00.000000000 +0100
+++ /var/tmp/diff_new_pack.gkDvTD/_new 2016-01-28 17:25:00.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name profunctors
Name: ghc-profunctors
-Version: 5.1.2
+Version: 5.2
Release: 0
Summary: Profunctors
License: BSD-3-Clause
@@ -32,6 +32,7 @@
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-rpm-macros
# Begin cabal-rpm deps:
+BuildRequires: ghc-base-orphans-devel
BuildRequires: ghc-bifunctors-devel
BuildRequires: ghc-comonad-devel
BuildRequires: ghc-distributive-devel
++++++ profunctors-5.1.2.tar.gz -> profunctors-5.2.tar.gz ++++++
++++ 2590 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package ghc-optparse-applicative for openSUSE:Factory checked in at 2016-01-28 17:24:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-optparse-applicative (Old)
and /work/SRC/openSUSE:Factory/.ghc-optparse-applicative.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-optparse-applicative"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-optparse-applicative/ghc-optparse-applicative.changes 2016-01-08 15:22:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-optparse-applicative.new/ghc-optparse-applicative.changes 2016-01-28 17:24:58.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Jan 20 09:59:00 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.12.1.0
+* Improve subparser contexts to improve usage error texts
+* Fixed bugs
+
+-------------------------------------------------------------------
Old:
----
optparse-applicative-0.12.0.0.tar.gz
New:
----
optparse-applicative-0.12.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-optparse-applicative.spec ++++++
--- /var/tmp/diff_new_pack.shnxZg/_old 2016-01-28 17:24:59.000000000 +0100
+++ /var/tmp/diff_new_pack.shnxZg/_new 2016-01-28 17:24:59.000000000 +0100
@@ -18,7 +18,7 @@
%global pkg_name optparse-applicative
Name: ghc-optparse-applicative
-Version: 0.12.0.0
+Version: 0.12.1.0
Release: 0
Summary: Utilities and combinators for parsing command line options
Group: System/Libraries
++++++ optparse-applicative-0.12.0.0.tar.gz -> optparse-applicative-0.12.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/optparse-applicative-0.12.0.0/CHANGELOG.md new/optparse-applicative-0.12.1.0/CHANGELOG.md
--- old/optparse-applicative-0.12.0.0/CHANGELOG.md 2015-09-25 12:00:41.000000000 +0200
+++ new/optparse-applicative-0.12.1.0/CHANGELOG.md 2016-01-19 10:57:20.000000000 +0100
@@ -1,3 +1,17 @@
+## Version 0.12.1.0 (18 Jan 2016)
+
+- Updated dependency bounds.
+
+- Improve subparser contexts to improve usage error texts
+
+- Doc
+
+- Fixed bugs
+ * \# 164 - Invalid options and invalid arguments after parser has succeeded
+ not displaying
+ * \# 146 - multi-word filename completion is broken
+
+
## Version 0.12.0.0 (17 Sep 2015)
- Add "missing" error condition descriptions when required flags and arguments
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/optparse-applicative-0.12.0.0/Options/Applicative/BashCompletion.hs new/optparse-applicative-0.12.1.0/Options/Applicative/BashCompletion.hs
--- old/optparse-applicative-0.12.0.0/Options/Applicative/BashCompletion.hs 2015-09-25 12:00:41.000000000 +0200
+++ new/optparse-applicative-0.12.1.0/Options/Applicative/BashCompletion.hs 2016-01-19 10:57:20.000000000 +0100
@@ -78,6 +78,7 @@
[ "_" ++ progn ++ "()"
, "{"
, " local cmdline"
+ , " local IFS=$'\n'"
, " CMDLINE=(--bash-completion-index $COMP_CWORD)"
, ""
, " for arg in ${COMP_WORDS[@]}; do"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/optparse-applicative-0.12.0.0/Options/Applicative/Common.hs new/optparse-applicative-0.12.1.0/Options/Applicative/Common.hs
--- old/optparse-applicative-0.12.0.0/Options/Applicative/Common.hs 2015-09-25 12:00:41.000000000 +0200
+++ new/optparse-applicative-0.12.1.0/Options/Applicative/Common.hs 2016-01-19 10:57:20.000000000 +0100
@@ -52,7 +52,7 @@
OptDescStyle (..)
) where
-import Control.Applicative (pure, (<*>), (<$>), (<|>), (<$))
+import Control.Applicative (pure, (<*>), (<*), (*>), (<$>), (<|>), (<$))
import Control.Arrow (left)
import Control.Monad (guard, mzero, msum, when, liftM)
import Control.Monad.Trans.Class (lift)
@@ -102,14 +102,13 @@
return result
CmdReader _ f ->
flip fmap (f arg) $ \subp -> StateT $ \args -> do
- setContext (Just arg) subp
prefs <- getPrefs
let runSubparser
| prefBacktrack prefs = \i a ->
runParser (getPolicy i) (infoParser i) a
| otherwise = \i a
-> (,) <$> runParserInfo i a <*> pure []
- runSubparser subp args
+ enterContext arg subp *> runSubparser subp args <* exitContext
_ -> Nothing
optMatches :: MonadP m => Bool -> OptReader a -> OptWord -> Maybe (StateT Args m a)
@@ -243,8 +242,9 @@
runParserFully :: MonadP m => ArgPolicy -> Parser a -> Args -> m a
runParserFully policy p args = do
(r, args') <- runParser policy p args
- guard $ null args'
- return r
+ case args' of
+ [] -> return r
+ a:_ -> parseError a
-- | The default value of a 'Parser'. This function returns an error if any of
-- the options don't have a default value.
@@ -258,13 +258,11 @@
= Left $ Leaf (f (OptHelpInfo m d) opt)
| otherwise
= Left $ MultNode []
-evalParser m d f (MultP p1 p2) = case evalParser m d f p1 <*> evalParser m d f p2 of
- Right a -> Right a
- Left _ -> case (evalParser m d f p1, evalParser m d f p2) of
- (Left a', Left b') -> Left $ MultNode [a', b']
- (Left a', _) -> Left $ MultNode [a']
- (_, Left b') -> Left $ MultNode [b']
- _ -> Left $ MultNode []
+evalParser m d f (MultP p1 p2) = case (evalParser m d f p1, evalParser m d f p2) of
+ (Right a', Right b') -> Right $ a' b'
+ (Left a', Left b') -> Left $ MultNode [a', b']
+ (Left a', _) -> Left $ MultNode [a']
+ (_, Left b') -> Left $ MultNode [b']
evalParser m d f (AltP p1 p2) = case (evalParser m d f p1, evalParser m d f p2) of
(Right a', _) -> Right a'
(_, Right b') -> Right b'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/optparse-applicative-0.12.0.0/Options/Applicative/Extra.hs new/optparse-applicative-0.12.1.0/Options/Applicative/Extra.hs
--- old/optparse-applicative-0.12.0.0/Options/Applicative/Extra.hs 2015-09-25 12:00:41.000000000 +0200
+++ new/optparse-applicative-0.12.1.0/Options/Applicative/Extra.hs 2016-01-19 10:57:20.000000000 +0100
@@ -44,6 +44,9 @@
, help "Show this help text"
, hidden ]
+-- | Builder for a command parser with a \"helper\" option attached.
+-- Used in the same way as `subparser`, but includes a \"--help|-h\" inside
+-- the subcommand.
hsubparser :: Mod CommandFields a -> Parser a
hsubparser m = mkParser d g rdr
where
@@ -133,7 +136,7 @@
--
-- @handleParseResult . Failure $ parserFailure pprefs pinfo ShowHelpText mempty@
parserFailure :: ParserPrefs -> ParserInfo a
- -> ParseError -> Context
+ -> ParseError -> [Context]
-> ParserFailure ParserHelp
parserFailure pprefs pinfo msg ctx = ParserFailure $ \progn ->
let h = with_context ctx pinfo $ \names pinfo' -> mconcat
@@ -149,12 +152,12 @@
ShowHelpText -> ExitSuccess
InfoMsg _ -> ExitSuccess
- with_context :: Context
+ with_context :: [Context]
-> ParserInfo a
-> (forall b . [String] -> ParserInfo b -> c)
-> c
- with_context NullContext i f = f [] i
- with_context (Context n i) _ f = f n i
+ with_context [] i f = f [] i
+ with_context c@(Context _ i:_) _ f = f (contextNames c) i
usage_help progn names i = case msg of
InfoMsg _ -> mempty
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/optparse-applicative-0.12.0.0/Options/Applicative/Internal.hs new/optparse-applicative-0.12.1.0/Options/Applicative/Internal.hs
--- old/optparse-applicative-0.12.0.0/Options/Applicative/Internal.hs 2015-09-25 12:00:41.000000000 +0200
+++ new/optparse-applicative-0.12.1.0/Options/Applicative/Internal.hs 2016-01-19 10:57:20.000000000 +0100
@@ -17,6 +17,7 @@
, runCompletion
, SomeParser(..)
, ComplError(..)
+ , contextNames
, ListT
, takeListT
@@ -35,15 +36,13 @@
(runExcept, runExceptT, withExcept, ExceptT(..), throwE, catchE)
import Control.Monad.Trans.Reader
(mapReaderT, runReader, runReaderT, Reader, ReaderT, ask)
-import Control.Monad.Trans.Writer (runWriterT, WriterT, tell)
-import Control.Monad.Trans.State (StateT, get, put, evalStateT)
-import Data.Maybe (maybeToList)
-import Data.Monoid (Monoid(..))
+import Control.Monad.Trans.State (StateT, get, put, modify, evalStateT, runStateT)
import Options.Applicative.Types
class (Alternative m, MonadPlus m) => MonadP m where
- setContext :: Maybe String -> ParserInfo a -> m ()
+ enterContext :: String -> ParserInfo a -> m ()
+ exitContext :: m ()
getPrefs :: m ParserPrefs
missingArgP :: ParseError -> Completer -> m a
@@ -51,7 +50,7 @@
errorP :: ParseError -> m a
exitP :: Parser b -> Either ParseError a -> m a
-newtype P a = P (ExceptT ParseError (WriterT Context (Reader ParserPrefs)) a)
+newtype P a = P (ExceptT ParseError (StateT [Context] (Reader ParserPrefs)) a)
instance Functor P where
fmap f (P m) = P $ fmap f m
@@ -74,20 +73,16 @@
data Context
- = forall a . Context [String] (ParserInfo a)
- | NullContext
+ = forall a . Context String (ParserInfo a)
-contextNames :: Context -> [String]
-contextNames (Context ns _) = ns
-contextNames NullContext = []
-
-instance Monoid Context where
- mempty = NullContext
- mappend c (Context ns i) = Context (contextNames c ++ ns) i
- mappend c _ = c
+contextNames :: [Context] -> [String]
+contextNames ns =
+ let go (Context n _) = n
+ in reverse $ go <$> ns
instance MonadP P where
- setContext name = P . lift . tell . Context (maybeToList name)
+ enterContext name pinfo = P $ lift $ modify $ (:) $ Context name pinfo
+ exitContext = P $ lift $ modify $ drop 1
getPrefs = P . lift . lift $ ask
missingArgP e _ = errorP e
@@ -101,8 +96,8 @@
hoistEither :: MonadP m => Either ParseError a -> m a
hoistEither = either errorP return
-runP :: P a -> ParserPrefs -> (Either ParseError a, Context)
-runP (P p) = runReader . runWriterT . runExceptT $ p
+runP :: P a -> ParserPrefs -> (Either ParseError a, [Context])
+runP (P p) = runReader . flip runStateT [] . runExceptT $ p
uncons :: [a] -> Maybe (a, [a])
uncons [] = Nothing
@@ -165,7 +160,8 @@
mplus (Completion x) (Completion y) = Completion $ mplus x y
instance MonadP Completion where
- setContext _ _ = return ()
+ enterContext _ _ = return ()
+ exitContext = return ()
getPrefs = Completion $ lift ask
missingArgP _ = Completion . lift . lift . ComplOption
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/optparse-applicative-0.12.0.0/optparse-applicative.cabal new/optparse-applicative-0.12.1.0/optparse-applicative.cabal
--- old/optparse-applicative-0.12.0.0/optparse-applicative.cabal 2015-09-25 12:00:41.000000000 +0200
+++ new/optparse-applicative-0.12.1.0/optparse-applicative.cabal 2016-01-19 10:57:20.000000000 +0100
@@ -1,5 +1,5 @@
name: optparse-applicative
-version: 0.12.0.0
+version: 0.12.1.0
synopsis: Utilities and combinators for parsing command line options
description:
Here is a simple example of an applicative option parser:
@@ -110,7 +110,7 @@
Options.Applicative.Internal
ghc-options: -Wall
build-depends: base == 4.*,
- transformers >= 0.2 && < 0.5,
- transformers-compat >= 0.3 && < 0.5,
- process >= 1.0 && < 1.4,
+ transformers >= 0.2 && < 0.6,
+ transformers-compat >= 0.3 && < 0.6,
+ process >= 1.0 && < 1.5,
ansi-wl-pprint >= 0.6.6 && < 0.7
1
0
Hello community,
here is the log from the commit of package ghc-OpenGLRaw for openSUSE:Factory checked in at 2016-01-28 17:24:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-OpenGLRaw (Old)
and /work/SRC/openSUSE:Factory/.ghc-OpenGLRaw.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-OpenGLRaw"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-OpenGLRaw/ghc-OpenGLRaw.changes 2016-01-05 21:55:49.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-OpenGLRaw.new/ghc-OpenGLRaw.changes 2016-01-28 17:24:57.000000000 +0100
@@ -1,0 +2,10 @@
+Mon Jan 11 07:53:35 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 3.1.0.0
+* Changed the type of GL_FALSE and GL_TRUE to GLboolean, leading to fewer
+ fromIntegral calls in user code.
+* Added deprecated functions mkGLDEBUGPROC, mkGLDEBUGPROCAMD, mkGLDEBUGPROCARB,
+ mkGLDEBUGPROCKHR for gl compatibility.
+* Updated OpenGL registry to r32348.
+
+-------------------------------------------------------------------
Old:
----
OpenGLRaw-3.0.0.0.tar.gz
New:
----
OpenGLRaw-3.1.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-OpenGLRaw.spec ++++++
--- /var/tmp/diff_new_pack.jcXhkN/_old 2016-01-28 17:24:57.000000000 +0100
+++ /var/tmp/diff_new_pack.jcXhkN/_new 2016-01-28 17:24:58.000000000 +0100
@@ -20,7 +20,7 @@
%global pkg_name OpenGLRaw
Name: ghc-OpenGLRaw
-Version: 3.0.0.0
+Version: 3.1.0.0
Release: 0
Summary: A raw binding for the OpenGL graphics system
License: BSD-3-Clause
++++++ OpenGLRaw-3.0.0.0.tar.gz -> OpenGLRaw-3.1.0.0.tar.gz ++++++
++++ 25983 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package ghc-MonadRandom for openSUSE:Factory checked in at 2016-01-28 17:23:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-MonadRandom (Old)
and /work/SRC/openSUSE:Factory/.ghc-MonadRandom.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-MonadRandom"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-MonadRandom/ghc-MonadRandom.changes 2016-01-22 01:08:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-MonadRandom.new/ghc-MonadRandom.changes 2016-01-28 17:24:54.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 20 09:49:57 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.4.2.2
+* Allow transformers-0.5.
+
+-------------------------------------------------------------------
Old:
----
MonadRandom-0.4.2.1.tar.gz
New:
----
MonadRandom-0.4.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-MonadRandom.spec ++++++
--- /var/tmp/diff_new_pack.25nlEK/_old 2016-01-28 17:24:55.000000000 +0100
+++ /var/tmp/diff_new_pack.25nlEK/_new 2016-01-28 17:24:55.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name MonadRandom
Name: ghc-MonadRandom
-Version: 0.4.2.1
+Version: 0.4.2.2
Release: 0
Summary: Random-number generation monad
License: MIT
++++++ MonadRandom-0.4.2.1.tar.gz -> MonadRandom-0.4.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MonadRandom-0.4.2.1/CHANGES.markdown new/MonadRandom-0.4.2.2/CHANGES.markdown
--- old/MonadRandom-0.4.2.1/CHANGES.markdown 2016-01-17 00:40:44.000000000 +0100
+++ new/MonadRandom-0.4.2.2/CHANGES.markdown 2016-01-18 18:09:08.000000000 +0100
@@ -1,3 +1,8 @@
+0.4.2.2 (18 January 2016)
+-------------------------
+
+ - Allow `transformers-0.5`.
+
0.4.2.1 (16 January 2016)
-------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MonadRandom-0.4.2.1/MonadRandom.cabal new/MonadRandom-0.4.2.2/MonadRandom.cabal
--- old/MonadRandom-0.4.2.1/MonadRandom.cabal 2016-01-17 00:40:44.000000000 +0100
+++ new/MonadRandom-0.4.2.2/MonadRandom.cabal 2016-01-18 18:09:08.000000000 +0100
@@ -1,5 +1,5 @@
name: MonadRandom
-version: 0.4.2.1
+version: 0.4.2.2
synopsis: Random-number generation monad.
description: Support for computations which consume random values.
license: OtherLicense
@@ -11,6 +11,13 @@
build-type: Simple
cabal-version: >=1.10
extra-source-files: CHANGES.markdown
+tested-with:
+ GHC==7.4.2,
+ GHC==7.6.3,
+ GHC==7.8.4,
+ GHC==7.10.3,
+ GHC==8.0.1
+
source-repository head
type: git
location: git://github.com/byorgey/MonadRandom.git
@@ -18,7 +25,7 @@
library
exposed-modules: Control.Monad.Random, Control.Monad.Random.Class
build-depends: base >= 2 && < 5,
- transformers >= 0.3 && < 0.5,
+ transformers >= 0.3 && < 0.6,
transformers-compat >= 0.4 && < 0.6,
mtl >= 2.1 && < 2.3,
random
1
0
Hello community,
here is the log from the commit of package ghc-mono-traversable for openSUSE:Factory checked in at 2016-01-28 17:24:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-mono-traversable (Old)
and /work/SRC/openSUSE:Factory/.ghc-mono-traversable.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-mono-traversable"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-mono-traversable/ghc-mono-traversable.changes 2016-01-07 00:25:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-mono-traversable.new/ghc-mono-traversable.changes 2016-01-28 17:24:56.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Jan 26 09:50:06 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.10.1
+* Allow comonad-5
+
+-------------------------------------------------------------------
Old:
----
mono-traversable-0.10.0.1.tar.gz
New:
----
mono-traversable-0.10.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-mono-traversable.spec ++++++
--- /var/tmp/diff_new_pack.QDsQN7/_old 2016-01-28 17:24:56.000000000 +0100
+++ /var/tmp/diff_new_pack.QDsQN7/_new 2016-01-28 17:24:56.000000000 +0100
@@ -20,7 +20,7 @@
%bcond_with tests
Name: ghc-mono-traversable
-Version: 0.10.0.1
+Version: 0.10.1
Release: 0
Summary: Type classes for mapping, folding, and traversing monomorphic containers
Group: System/Libraries
++++++ mono-traversable-0.10.0.1.tar.gz -> mono-traversable-0.10.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mono-traversable-0.10.0.1/ChangeLog.md new/mono-traversable-0.10.1/ChangeLog.md
--- old/mono-traversable-0.10.0.1/ChangeLog.md 2015-12-13 09:10:48.000000000 +0100
+++ new/mono-traversable-0.10.1/ChangeLog.md 2016-01-18 13:20:42.000000000 +0100
@@ -1,3 +1,7 @@
+## 0.10.1
+
+* Allow comonad-5 [#86](https://github.com/snoyberg/mono-traversable/issues/86)
+
## 0.10.0.1
* Instance for Data.Sequence.Seq is incorrect. [#83](https://github.com/snoyberg/mono-traversable/issues/83)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mono-traversable-0.10.0.1/mono-traversable.cabal new/mono-traversable-0.10.1/mono-traversable.cabal
--- old/mono-traversable-0.10.0.1/mono-traversable.cabal 2015-12-13 09:10:48.000000000 +0100
+++ new/mono-traversable-0.10.1/mono-traversable.cabal 2016-01-18 13:20:42.000000000 +0100
@@ -1,5 +1,5 @@
name: mono-traversable
-version: 0.10.0.1
+version: 0.10.1
synopsis: Type classes for mapping, folding, and traversing monomorphic containers
description: Monomorphic variants of the Functor, Foldable, and Traversable typeclasses. If you understand Haskell's basic typeclasses, you understand mono-traversable. In addition to what you are used to, it adds on an IsSequence typeclass and has code for marking data structures as non-empty.
homepage: https://github.com/snoyberg/mono-traversable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mono-traversable-0.10.0.1/src/Data/MonoTraversable.hs new/mono-traversable-0.10.1/src/Data/MonoTraversable.hs
--- old/mono-traversable-0.10.0.1/src/Data/MonoTraversable.hs 2015-12-13 09:10:48.000000000 +0100
+++ new/mono-traversable-0.10.1/src/Data/MonoTraversable.hs 2016-01-18 13:20:42.000000000 +0100
@@ -1,4 +1,5 @@
{-# LANGUAGE ConstrainedClassMethods #-}
+{-# LANGUAGE CPP #-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
@@ -68,7 +69,9 @@
import Control.Comonad.Store (StoreT)
import Control.Comonad.Env (EnvT)
import Control.Comonad.Traced (TracedT)
+#if !MIN_VERSION_comonad(5,0,0)
import Data.Functor.Coproduct (Coproduct)
+#endif
import Control.Monad.Trans.Writer (WriterT)
import qualified Control.Monad.Trans.Writer.Strict as Strict (WriterT)
import Control.Monad.Trans.State (StateT(..))
@@ -151,7 +154,9 @@
type instance Element (EnvT e w a) = a
type instance Element (StoreT s w a) = a
type instance Element (TracedT m w a) = a
+#if !MIN_VERSION_comonad(5,0,0)
type instance Element (Coproduct f g a) = a
+#endif
-- | Monomorphic containers that can be mapped over.
class MonoFunctor mono where
@@ -198,7 +203,9 @@
instance Functor w => MonoFunctor (EnvT e w a)
instance Functor w => MonoFunctor (StoreT s w a)
instance Functor w => MonoFunctor (TracedT m w a)
+#if !MIN_VERSION_comonad(5,0,0)
instance (Functor f, Functor g) => MonoFunctor (Coproduct f g a)
+#endif
instance Arrow a => MonoFunctor (WrappedArrow a b c)
instance Functor f => MonoFunctor (MaybeApply f a)
instance Functor f => MonoFunctor (WrappedApplicative f a)
@@ -1274,7 +1281,9 @@
instance Comonad w => MonoComonad (EnvT e w a)
instance Comonad w => MonoComonad (StoreT s w a)
instance (Comonad w, Monoid m) => MonoComonad (TracedT m w a)
+#if !MIN_VERSION_comonad(5,0,0)
instance (Comonad f, Comonad g) => MonoComonad (Coproduct f g a)
+#endif
-- Not Comonad
instance MonoComonad (ViewL a) where
1
0
Hello community,
here is the log from the commit of package ghc-memory for openSUSE:Factory checked in at 2016-01-28 17:23:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-memory (Old)
and /work/SRC/openSUSE:Factory/.ghc-memory.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-memory"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-memory/ghc-memory.changes 2016-01-07 00:25:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-memory.new/ghc-memory.changes 2016-01-28 17:24:53.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Jan 15 10:04:57 UTC 2016 - mimi.vx(a)gmail.com
+
+- update 0.11
+
+-------------------------------------------------------------------
Old:
----
memory-0.10.tar.gz
New:
----
memory-0.11.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-memory.spec ++++++
--- /var/tmp/diff_new_pack.UOWviT/_old 2016-01-28 17:24:54.000000000 +0100
+++ /var/tmp/diff_new_pack.UOWviT/_new 2016-01-28 17:24:54.000000000 +0100
@@ -21,7 +21,7 @@
%bcond_with tests
Name: ghc-memory
-Version: 0.10
+Version: 0.11
Release: 0
Summary: Memory and related abtraction stuff
License: BSD-3-Clause
++++++ memory-0.10.tar.gz -> memory-0.11.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/memory-0.10/Data/ByteArray/ScrubbedBytes.hs new/memory-0.11/Data/ByteArray/ScrubbedBytes.hs
--- old/memory-0.10/Data/ByteArray/ScrubbedBytes.hs 2015-09-08 15:28:21.000000000 +0200
+++ new/memory-0.11/Data/ByteArray/ScrubbedBytes.hs 2016-01-12 23:28:28.000000000 +0100
@@ -64,10 +64,29 @@
| otherwise = IO $ \s ->
case newAlignedPinnedByteArray# sz 8# s of
(# s1, mbarr #) ->
- let !scrubber = getScrubber sz
+ let !scrubber = (getScrubber sz) (byteArrayContents# (unsafeCoerce# mbarr))
!mba = ScrubbedBytes mbarr
- in case mkWeak# mbarr () (scrubber (byteArrayContents# (unsafeCoerce# mbarr)) >> touchScrubbedBytes mba) s1 of
+ in case mkWeak# mbarr () (finalize scrubber mba) s1 of
(# s2, _ #) -> (# s2, mba #)
+ where
+#if __GLASGOW_HASKELL__ > 800
+ finalize :: (State# RealWorld -> State# RealWorld) -> ScrubbedBytes -> State# RealWorld -> State# RealWorld
+ finalize scrubber mba@(ScrubbedBytes _) = \s1 ->
+ case scrubber s1 of
+ s2 -> touch# mba s2
+#elif __GLASGOW_HASKELL__ >= 800
+ finalize :: (State# RealWorld -> State# RealWorld) -> ScrubbedBytes -> State# RealWorld -> (# State# RealWorld, () #)
+ finalize scrubber mba@(ScrubbedBytes _) = \s1 ->
+ case scrubber s1 of
+ s2 -> case touch# mba s2 of
+ s3 -> (# s3, () #)
+#else
+ finalize :: (State# RealWorld -> State# RealWorld) -> ScrubbedBytes -> IO ()
+ finalize scrubber mba@(ScrubbedBytes _) = IO $ \s1 -> do
+ case scrubber s1 of
+ s2 -> case touch# mba s2 of
+ s3 -> (# s3, () #)
+#endif
scrubbedBytesAllocRet :: Int -> (Ptr p -> IO a) -> IO (a, ScrubbedBytes)
scrubbedBytesAllocRet sz f = do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/memory-0.10/Data/Memory/Internal/CompatPrim.hs new/memory-0.11/Data/Memory/Internal/CompatPrim.hs
--- old/memory-0.10/Data/Memory/Internal/CompatPrim.hs 2015-09-08 15:28:21.000000000 +0200
+++ new/memory-0.11/Data/Memory/Internal/CompatPrim.hs 2016-01-12 23:28:28.000000000 +0100
@@ -75,10 +75,10 @@
-> (Int# -> a) -- ^ if it divided by 8, the argument is the number of 8 bytes words
-> (Int# -> a) -- ^ if it doesn't, just the number of bytes
-> a
-#if __GLASGOW_HASKELL__ >= 740
+#if __GLASGOW_HASKELL__ > 704
eitherDivideBy8# v f8 f1 =
- let !(# q, r #) = quotRemInt v 8#
- in if booleanPrim (r ==# 0)
+ let !(# q, r #) = quotRemInt# v 8#
+ in if booleanPrim (r ==# 0#)
then f8 q
else f1 v
#else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/memory-0.10/Data/Memory/Internal/Scrubber.hs new/memory-0.11/Data/Memory/Internal/Scrubber.hs
--- old/memory-0.10/Data/Memory/Internal/Scrubber.hs 2015-09-08 15:28:21.000000000 +0200
+++ new/memory-0.11/Data/Memory/Internal/Scrubber.hs 2016-01-12 23:28:28.000000000 +0100
@@ -15,10 +15,9 @@
) where
import GHC.Prim
-import GHC.IO
import Data.Memory.Internal.CompatPrim (booleanPrim)
-getScrubber :: Int# -> (Addr# -> IO ())
+getScrubber :: Int# -> (Addr# -> State# RealWorld -> State# RealWorld)
getScrubber sz
| booleanPrim (sz ==# 4#) = scrub4
| booleanPrim (sz ==# 8#) = scrub8
@@ -26,31 +25,31 @@
| booleanPrim (sz ==# 32#) = scrub32
| otherwise = scrubBytes sz
where
- scrub4 a = IO $ \s -> (# writeWord32OffAddr# a 0# 0## s, () #)
+ scrub4 a = \s -> writeWord32OffAddr# a 0# 0## s
#if WORD_SIZE_IN_BITS == 64
- scrub8 a = IO $ \s -> (# writeWord64OffAddr# a 0# 0## s, () #)
- scrub16 a = IO $ \s1 ->
+ scrub8 a = \s -> writeWord64OffAddr# a 0# 0## s
+ scrub16 a = \s1 ->
let !s2 = writeWord64OffAddr# a 0# 0## s1
!s3 = writeWord64OffAddr# a 1# 0## s2
- in (# s3, () #)
- scrub32 a = IO $ \s1 ->
+ in s3
+ scrub32 a = \s1 ->
let !s2 = writeWord64OffAddr# a 0# 0## s1
!s3 = writeWord64OffAddr# a 1# 0## s2
!s4 = writeWord64OffAddr# a 2# 0## s3
!s5 = writeWord64OffAddr# a 3# 0## s4
- in (# s5, () #)
+ in s5
#else
- scrub8 a = IO $ \s1 ->
+ scrub8 a = \s1 ->
let !s2 = writeWord32OffAddr# a 0# 0## s1
!s3 = writeWord32OffAddr# a 1# 0## s2
- in (# s3, () #)
- scrub16 a = IO $ \s1 ->
+ in s3
+ scrub16 a = \s1 ->
let !s2 = writeWord32OffAddr# a 0# 0## s1
!s3 = writeWord32OffAddr# a 1# 0## s2
!s4 = writeWord32OffAddr# a 2# 0## s3
!s5 = writeWord32OffAddr# a 3# 0## s4
- in (# s5, () #)
- scrub32 a = IO $ \s1 ->
+ in s5
+ scrub32 a = \s1 ->
let !s2 = writeWord32OffAddr# a 0# 0## s1
!s3 = writeWord32OffAddr# a 1# 0## s2
!s4 = writeWord32OffAddr# a 2# 0## s3
@@ -59,11 +58,11 @@
!s7 = writeWord32OffAddr# a 5# 0## s6
!s8 = writeWord32OffAddr# a 6# 0## s7
!s9 = writeWord32OffAddr# a 7# 0## s8
- in (# s9, () #)
+ in s9
#endif
-scrubBytes :: Int# -> Addr# -> IO ()
-scrubBytes sz8 addr = IO $ \s -> (# loop sz8 addr s, () #)
+scrubBytes :: Int# -> Addr# -> State# RealWorld -> State# RealWorld
+scrubBytes sz8 addr = \s -> loop sz8 addr s
where loop :: Int# -> Addr# -> State# RealWorld -> State# RealWorld
loop n a s
| booleanPrim (n ==# 0#) = s
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/memory-0.10/memory.cabal new/memory-0.11/memory.cabal
--- old/memory-0.10/memory.cabal 2015-09-08 15:28:21.000000000 +0200
+++ new/memory-0.11/memory.cabal 2016-01-12 23:28:28.000000000 +0100
@@ -1,5 +1,5 @@
Name: memory
-Version: 0.10
+Version: 0.11
Synopsis: memory and related abstraction stuff
Description:
Chunk of memory, polymorphic byte array management and manipulation
@@ -13,6 +13,8 @@
* Aliasing with endianness support.
.
* Encoding : Base16, Base32, Base64.
+ .
+ * Hashing : FNV, SipHash
License: BSD3
License-file: LICENSE
Copyright: Vincent Hanquez <vincent(a)snarc.org>
1
0
Hello community,
here is the log from the commit of package ghc-lifted-async for openSUSE:Factory checked in at 2016-01-28 17:23:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-lifted-async (Old)
and /work/SRC/openSUSE:Factory/.ghc-lifted-async.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-lifted-async"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-lifted-async/ghc-lifted-async.changes 2015-12-01 09:19:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-lifted-async.new/ghc-lifted-async.changes 2016-01-28 17:24:49.000000000 +0100
@@ -1,0 +2,10 @@
+Wed Jan 20 09:54:36 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.8.0.1
+* Relax upper bound for constraints
+* Drop Monad instance for Concurrently
+* Expose STM operations
+* Relax upper bound for base
+* Add Monoid and Semigroup instances for Concurrently
+
+-------------------------------------------------------------------
Old:
----
lifted-async-0.7.0.2.tar.gz
New:
----
lifted-async-0.8.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-lifted-async.spec ++++++
--- /var/tmp/diff_new_pack.VCDfbf/_old 2016-01-28 17:24:53.000000000 +0100
+++ /var/tmp/diff_new_pack.VCDfbf/_new 2016-01-28 17:24:53.000000000 +0100
@@ -21,7 +21,7 @@
%bcond_with tests
Name: ghc-lifted-async
-Version: 0.7.0.2
+Version: 0.8.0.1
Release: 0
Summary: Run lifted IO operations asynchronously and wait for their results
License: BSD-3-Clause
++++++ lifted-async-0.7.0.2.tar.gz -> lifted-async-0.8.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lifted-async-0.7.0.2/CHANGELOG.md new/lifted-async-0.8.0.1/CHANGELOG.md
--- old/lifted-async-0.7.0.2/CHANGELOG.md 2015-11-27 02:28:01.000000000 +0100
+++ new/lifted-async-0.8.0.1/CHANGELOG.md 2016-01-17 22:16:51.000000000 +0100
@@ -1,3 +1,14 @@
+## v0.8.0.1 - 2015-01-17
+
+* Relax upper bound for constraints
+
+## v0.8.0 - 2016-01-10
+
+* Drop Monad instance for Concurrently
+* Expose STM operations
+* Relax upper bound for base and async
+* Add Monoid and Semigroup instances for Concurrently
+
## v0.7.0.2 - 2015-11-26
* Relax upper bound for the constraints package
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lifted-async-0.7.0.2/lifted-async.cabal new/lifted-async-0.8.0.1/lifted-async.cabal
--- old/lifted-async-0.7.0.2/lifted-async.cabal 2015-11-27 02:28:01.000000000 +0100
+++ new/lifted-async-0.8.0.1/lifted-async.cabal 2016-01-17 22:16:51.000000000 +0100
@@ -1,5 +1,5 @@
name: lifted-async
-version: 0.7.0.2
+version: 0.8.0.1
synopsis: Run lifted IO operations asynchronously and wait for their results
homepage: https://github.com/maoe/lifted-async
bug-reports: https://github.com/maoe/lifted-async/issues
@@ -7,7 +7,7 @@
license-file: LICENSE
author: Mitsutoshi Aoe
maintainer: Mitsutoshi Aoe <maoe(a)foldr.in>
-copyright: Copyright (C) 2012-2015 Mitsutoshi Aoe
+copyright: Copyright (C) 2012-2016 Mitsutoshi Aoe
category: Concurrency
build-type: Simple
cabal-version: >= 1.8
@@ -34,14 +34,14 @@
Control.Concurrent.Async.Lifted
Control.Concurrent.Async.Lifted.Safe
build-depends:
- base >= 4.5 && < 4.9
- , async >= 2.0.1 && < 2.1
+ base >= 4.5 && < 4.10
+ , async >= 2.0.1 && < 2.2
, lifted-base >= 0.2 && < 0.3
, transformers-base >= 0.4 && < 0.5
if flag(monad-control-1)
build-depends: monad-control == 1.0.*
if impl(ghc >= 7.8)
- build-depends: constraints >= 0.2 && < 0.7
+ build-depends: constraints >= 0.2 && < 0.9
else
build-depends: constraints >= 0.2 && < 0.6
else
@@ -114,5 +114,5 @@
source-repository this
type: git
- tag: v0.7.0.2
+ tag: v0.8.0.1
location: https://github.com/maoe/lifted-async.git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lifted-async-0.7.0.2/src/Control/Concurrent/Async/Lifted/Safe.hs new/lifted-async-0.8.0.1/src/Control/Concurrent/Async/Lifted/Safe.hs
--- old/lifted-async-0.7.0.2/src/Control/Concurrent/Async/Lifted/Safe.hs 2015-11-27 02:28:01.000000000 +0100
+++ new/lifted-async-0.8.0.1/src/Control/Concurrent/Async/Lifted/Safe.hs 2016-01-17 22:16:51.000000000 +0100
@@ -53,6 +53,16 @@
, Unsafe.waitEither_
, waitBoth
+#if MIN_VERSION_async(2, 1, 0)
+ -- ** Waiting for multiple 'Async's in STM
+ , A.waitAnySTM
+ , A.waitAnyCatchSTM
+ , A.waitEitherSTM
+ , A.waitEitherCatchSTM
+ , A.waitEitherSTM_
+ , A.waitBothSTM
+#endif
+
-- ** Linking
, Unsafe.link, Unsafe.link2
@@ -89,6 +99,11 @@
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ < 710
import Data.Traversable
#endif
+#if !MIN_VERSION_base(4, 8, 0)
+import Data.Monoid (Monoid(mappend, mempty))
+#elif MIN_VERSION_base(4, 9, 0)
+import Data.Semigroup (Semigroup((<>)))
+#endif
-- | Generalized version of 'A.async'.
async
@@ -366,8 +381,20 @@
\\ (inst :: Forall (Pure m) :- Pure m a)
\\ (inst :: Forall (Pure m) :- Pure m b)
-instance (MonadBaseControl IO m, Forall (Pure m)) =>
- Monad (Concurrently m) where
- return = Concurrently . return
- Concurrently a >>= f = Concurrently $ a >>= runConcurrently . f
+#if MIN_VERSION_base(4, 9, 0)
+instance (MonadBaseControl IO m, Semigroup a, Forall (Pure m)) =>
+ Semigroup (Concurrently m a) where
+ (<>) = liftA2 (<>)
+
+instance (MonadBaseControl IO m, Semigroup a, Monoid a, Forall (Pure m)) =>
+ Monoid (Concurrently m a) where
+ mempty = pure mempty
+ mappend = (<>)
+#else
+instance (MonadBaseControl IO m, Monoid a, Forall (Pure m)) =>
+ Monoid (Concurrently m a) where
+ mempty = pure mempty
+ mappend = liftA2 mappend
+#endif
+
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lifted-async-0.7.0.2/src/Control/Concurrent/Async/Lifted.hs new/lifted-async-0.8.0.1/src/Control/Concurrent/Async/Lifted.hs
--- old/lifted-async-0.7.0.2/src/Control/Concurrent/Async/Lifted.hs 2015-11-27 02:28:01.000000000 +0100
+++ new/lifted-async-0.8.0.1/src/Control/Concurrent/Async/Lifted.hs 2016-01-17 22:16:51.000000000 +0100
@@ -49,11 +49,21 @@
, waitEither_
, waitBoth
+#if MIN_VERSION_async(2, 1, 0)
+ -- ** Waiting for multiple 'Async's in STM
+ , A.waitAnySTM
+ , A.waitAnyCatchSTM
+ , A.waitEitherSTM
+ , A.waitEitherCatchSTM
+ , A.waitEitherSTM_
+ , A.waitBothSTM
+#endif
+
-- ** Linking
, link, link2
-- * Convenient utilities
- , race, race_, concurrently, mapConcurrently
+ , race, race_, concurrently, mapConcurrently, forConcurrently
, Concurrently(..)
) where
@@ -73,6 +83,11 @@
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ < 710
import Data.Traversable
#endif
+#if !MIN_VERSION_base(4, 8, 0)
+import Data.Monoid (Monoid(mappend, mempty))
+#elif MIN_VERSION_base(4, 9, 0)
+import Data.Semigroup (Semigroup((<>)))
+#endif
-- | Generalized version of 'A.async'.
async :: MonadBaseControl IO m => m a -> m (Async (StM m a))
@@ -352,6 +367,14 @@
-> m (t b)
mapConcurrently f = runConcurrently . traverse (Concurrently . f)
+-- | Generalized version of 'A.forConcurrently'.
+forConcurrently
+ :: (Traversable t, MonadBaseControl IO m)
+ => t a
+ -> (a -> m b)
+ -> m (t b)
+forConcurrently = flip mapConcurrently
+
-- | Generalized version of 'A.Concurrently'.
--
-- A value of type @'Concurrently' m a@ is an IO-based operation that can be
@@ -385,9 +408,20 @@
Concurrently as <|> Concurrently bs =
Concurrently $ either id id <$> race as bs
-instance MonadBaseControl IO m => Monad (Concurrently m) where
- return = Concurrently . return
- Concurrently a >>= f = Concurrently $ a >>= runConcurrently . f
+#if MIN_VERSION_base(4, 9, 0)
+instance (MonadBaseControl IO m, Semigroup a) =>
+ Semigroup (Concurrently m a) where
+ (<>) = liftA2 (<>)
+
+instance (MonadBaseControl IO m, Semigroup a, Monoid a) =>
+ Monoid (Concurrently m a) where
+ mempty = pure mempty
+ mappend = (<>)
+#else
+instance (MonadBaseControl IO m, Monoid a) => Monoid (Concurrently m a) where
+ mempty = pure mempty
+ mappend = liftA2 mappend
+#endif
sequenceEither :: MonadBaseControl IO m => Either e (StM m a) -> m (Either e a)
sequenceEither = either (return . Left) (liftM Right . restoreM)
1
0
Hello community,
here is the log from the commit of package ghc-JuicyPixels for openSUSE:Factory checked in at 2016-01-28 17:23:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-JuicyPixels (Old)
and /work/SRC/openSUSE:Factory/.ghc-JuicyPixels.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-JuicyPixels"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-JuicyPixels/ghc-JuicyPixels.changes 2015-12-09 22:16:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-JuicyPixels.new/ghc-JuicyPixels.changes 2016-01-28 17:24:47.000000000 +0100
@@ -1,0 +2,11 @@
+Tue Jan 26 09:39:22 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 3.2.7
+* Addition: convertRGB8 and convertRGBA8 helper functions
+* Addition: new output colorspace for JPEG format: Y, RGB & CMYK
+* Addition: RGBA8 bitmap reading (thanks to mtolly)
+* Enhancement: Optimized JPG & Tiff reading (thanks to Calvin Beck)
+* Enhancement: INLINE SPECIALIZE for pixelMap (Pixel8 -> Pixel8) (thx to Calvin Beck)
+* Fix: GHC 8.0 compilation (thanks to phadej)
+
+-------------------------------------------------------------------
Old:
----
JuicyPixels-3.2.6.4.tar.gz
New:
----
JuicyPixels-3.2.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-JuicyPixels.spec ++++++
--- /var/tmp/diff_new_pack.bDE1ez/_old 2016-01-28 17:24:49.000000000 +0100
+++ /var/tmp/diff_new_pack.bDE1ez/_new 2016-01-28 17:24:49.000000000 +0100
@@ -20,7 +20,7 @@
# no useful debuginfo for Haskell packages without C sources
%global debug_package %{nil}
Name: ghc-JuicyPixels
-Version: 3.2.6.4
+Version: 3.2.7
Release: 0
Summary: Picture loading/serialization
License: BSD-3-Clause
++++++ JuicyPixels-3.2.6.4.tar.gz -> JuicyPixels-3.2.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/JuicyPixels.cabal new/JuicyPixels-3.2.7/JuicyPixels.cabal
--- old/JuicyPixels-3.2.6.4/JuicyPixels.cabal 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/JuicyPixels.cabal 2016-01-25 23:33:57.000000000 +0100
@@ -1,5 +1,5 @@
Name: JuicyPixels
-Version: 3.2.6.4
+Version: 3.2.7
Synopsis: Picture loading/serialization (in png, jpeg, bitmap, gif, tga, tiff and radiance)
Description:
<<data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADABAMAAACg8nE0AAAAElBMVEUAAABJqDSTWEL/qyb///8AAABH/1GTAAAAAXRSTlMAQObYZgAAAN5JREFUeF7s1sEJgFAQxFBbsAV72v5bEVYWPwT/XDxmCsi7zvHXavYREBDI3XP2GgICqBBYuwIC+/rVayPUAyAg0HvIXBcQoDFDGnUBgWQQ2Bx3AYFaRoBpAQHWb3bt2ARgGAiCYFFuwf3X5HA/McgGJWI2FdykCv4aBYzmKwDwvl6NVmUAAK2vlwEALK7fo88GANB6HQsAAAAAAAAA7P94AQCzswEAAAAAAAAAAAAAAAAAAICzh4UAO4zWAYBfRutHA4Bn5C69JhowAMGoBaMWDG0wCkbBKBgFo2AUAACPmegUST/IJAAAAABJRU5ErkJggg==>>
@@ -28,7 +28,7 @@
Source-Repository this
Type: git
Location: git://github.com/Twinside/Juicy.Pixels.git
- Tag: v3.2.6.4
+ Tag: v3.2.7
Flag Mmap
Description: Enable the file loading via mmap (memory map)
@@ -52,11 +52,10 @@
Codec.Picture.ColorQuant
Ghc-options: -O3 -Wall
- Ghc-prof-options: -rtsopts -Wall -prof -auto-all
Build-depends: base >= 4.5 && < 5,
bytestring >= 0.9 && < 0.11,
mtl >= 1.1 && < 2.3,
- binary >= 0.5 && < 0.8,
+ binary >= 0.5 && < 0.9,
zlib >= 0.5.3.1 && < 0.7,
transformers >= 0.2,
vector >= 0.9 && < 0.12,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/README.md new/JuicyPixels-3.2.7/README.md
--- old/JuicyPixels-3.2.6.4/README.md 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/README.md 2016-01-25 23:33:57.000000000 +0100
@@ -52,6 +52,7 @@
- Bitmap (.bmp) (mainly used as a debug output format)
* Reading
+ - 32bits (RGBA) images
- 24bits (RGB) images
- 8bits (greyscale & paletted) images
@@ -62,10 +63,12 @@
* Metadata (reading/writing): DPI information
- - Jpeg (.jpg, .jpeg)
+ - Jpeg (.jpg, .jpeg)
* Reading normal and interlaced baseline DCT image
- YCbCr (default) CMYK/YCbCrK/RGB colorspaces
+
* Writing non-interlaced JPG
+ - YCbCr (favored), Y, RGB & CMYK colorspaces
* Metadata:
- Reading and writing DpiX & DpiY from JFIF header.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/changelog new/JuicyPixels-3.2.7/changelog
--- old/JuicyPixels-3.2.6.4/changelog 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/changelog 2016-01-25 23:33:57.000000000 +0100
@@ -1,7 +1,20 @@
Change log
==========
-v3.2.6.3 December 2015
+v3.2.7 January 2016
+-------------------
+ * Addition: convertRGB8 and convertRGBA8 helper functions
+ * Addition: new output colorspace for JPEG format: Y, RGB & CMYK
+ * Addition: RGBA8 bitmap reading (thanks to mtolly)
+ * Enhancement: Optimized JPG & Tiff reading (thanks to Calvin Beck)
+ * Enhancement: INLINE SPECIALIZE for pixelMap (Pixel8 -> Pixel8) (thx to Calvin Beck)
+ * Fix: GHC 8.0 compilation (thanks to phadej)
+
+v3.2.6.5 December 2015
+----------------------
+ * Fix: Compilation on GHC 7.6/7.8
+
+v3.2.6.4 December 2015
----------------------
* Fix: previous broken bugfix.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/src/Codec/Picture/BitWriter.hs new/JuicyPixels-3.2.7/src/Codec/Picture/BitWriter.hs
--- old/JuicyPixels-3.2.6.4/src/Codec/Picture/BitWriter.hs 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/src/Codec/Picture/BitWriter.hs 2016-01-25 23:33:57.000000000 +0100
@@ -1,4 +1,5 @@
{-# LANGUAGE Rank2Types #-}
+{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE CPP #-}
-- | This module implement helper functions to read & write data
-- at bits level.
@@ -9,7 +10,9 @@
, getNextBitsLSBFirst
, getNextBitsMSBFirst
, getNextBitJpg
+ , getNextIntJpg
, setDecodedString
+ , setDecodedStringMSB
, setDecodedStringJpg
, runBoolReader
@@ -33,6 +36,7 @@
import Control.Monad( when )
import Control.Monad.ST( ST )
import qualified Control.Monad.Trans.State.Strict as S
+import Data.Int ( Int32 )
import Data.Word( Word8, Word32 )
import Data.Bits( (.&.), (.|.), unsafeShiftR, unsafeShiftL )
@@ -42,6 +46,7 @@
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as L
+
--------------------------------------------------
---- Reader
--------------------------------------------------
@@ -93,8 +98,8 @@
BoolState idx _ chain <- S.get
when (idx /= 7) (setDecodedStringJpg chain)
-{-# INLINE getNextBitJpg #-}
getNextBitJpg :: BoolReader s Bool
+{-# INLINE getNextBitJpg #-}
getNextBitJpg = do
BoolState idx v chain <- S.get
let val = (v .&. (1 `unsafeShiftL` idx)) /= 0
@@ -103,25 +108,51 @@
else S.put $ BoolState (idx - 1) v chain
return val
-{-# INLINE getNextBitMSB #-}
-getNextBitMSB :: BoolReader s Bool
-getNextBitMSB = do
+getNextIntJpg :: Int -> BoolReader s Int32
+{-# INLINE getNextIntJpg #-}
+getNextIntJpg = go 0 where
+ go !acc !0 = return acc
+ go !acc !n = do
BoolState idx v chain <- S.get
- let val = (v .&. (1 `unsafeShiftL` (7 - idx))) /= 0
- if idx == 7
- then setDecodedString chain
- else S.put $ BoolState (idx + 1) v chain
- return val
+ let !leftBits = 1 + fromIntegral idx
+ if n >= leftBits then do
+ setDecodedStringJpg chain
+ let !remaining = n - leftBits
+ !mask = (1 `unsafeShiftL` leftBits) - 1
+ !finalV = fromIntegral v .&. mask
+ !theseBits = finalV `unsafeShiftL` remaining
+ go (acc .|. theseBits) remaining
+ else do
+ let !remaining = leftBits - n
+ !mask = (1 `unsafeShiftL` n) - 1
+ !finalV = fromIntegral v `unsafeShiftR` remaining
+ S.put $ BoolState (fromIntegral remaining - 1) v chain
+ return $ (finalV .&. mask) .|. acc
+
+
+setDecodedStringMSB :: B.ByteString -> BoolReader s ()
+setDecodedStringMSB str = case B.uncons str of
+ Nothing -> S.put $ BoolState 8 0 B.empty
+ Just (v, rest) -> S.put $ BoolState 8 v rest
+
{-# INLINE getNextBitsMSBFirst #-}
getNextBitsMSBFirst :: Int -> BoolReader s Word32
-getNextBitsMSBFirst = aux 0
- where aux acc 0 = return acc
- aux acc n = do
- bit <- getNextBitMSB
- let nextVal | bit = (acc `unsafeShiftL` 1) .|. 1
- | otherwise = acc `unsafeShiftL` 1
- aux nextVal (n - 1)
+getNextBitsMSBFirst requested = go 0 requested where
+ go :: Word32 -> Int -> BoolReader s Word32
+ go !acc !0 = return acc
+ go !acc !n = do
+ BoolState idx v chain <- S.get
+ let !leftBits = fromIntegral idx
+ if n >= leftBits then do
+ setDecodedStringMSB chain
+ let !theseBits = fromIntegral v `unsafeShiftL` (n - leftBits)
+ go (acc .|. theseBits) (n - leftBits)
+ else do
+ let !remaining = leftBits - n
+ !mask = (1 `unsafeShiftL` remaining) - 1
+ S.put $ BoolState (fromIntegral remaining) (v .&. mask) chain
+ return $ (fromIntegral v `unsafeShiftR` remaining) .|. acc
{-# INLINE getNextBitsLSBFirst #-}
getNextBitsLSBFirst :: Int -> BoolReader s Word32
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/src/Codec/Picture/Bitmap.hs new/JuicyPixels-3.2.7/src/Codec/Picture/Bitmap.hs
--- old/JuicyPixels-3.2.6.4/src/Codec/Picture/Bitmap.hs 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/src/Codec/Picture/Bitmap.hs 2016-01-25 23:33:56.000000000 +0100
@@ -41,6 +41,7 @@
, getWord8
, getWord16le
, getWord32le
+ , getWord32be
, bytesRead
, skip
)
@@ -253,6 +254,34 @@
inner 0 0 initialIndex
VS.unsafeFreeze buff
+decodeImageRGBA8 :: BmpInfoHeader -> (Int, Int, Int, Int) -> B.ByteString -> Image PixelRGBA8
+decodeImageRGBA8 (BmpInfoHeader { width = w, height = h }) (posR, posG, posB, posA) str = Image wi hi stArray where
+ wi = fromIntegral w
+ hi = abs $ fromIntegral h
+ stArray = runST $ do
+ arr <- M.new (fromIntegral $ w * abs h * 4)
+ if h > 0 then
+ foldM_ (readLine arr) 0 [0 .. hi - 1]
+ else
+ foldM_ (readLine arr) 0 [hi - 1, hi - 2 .. 0]
+ VS.unsafeFreeze arr
+
+ stride = linePadding 32 wi -- will be 0
+
+ readLine :: forall s. M.MVector s Word8 -> Int -> Int -> ST s Int
+ readLine arr readIndex line = inner readIndex writeIndex where
+ lastIndex = wi * (hi - 1 - line + 1) * 4
+ writeIndex = wi * (hi - 1 - line) * 4
+
+ inner readIdx writeIdx | writeIdx >= lastIndex = return $ readIdx + stride
+ inner readIdx writeIdx = do
+ -- 32-bit BMP pixels are BGRA
+ (arr `M.unsafeWrite` writeIdx ) (str `B.index` (readIdx + posR))
+ (arr `M.unsafeWrite` (writeIdx + 1)) (str `B.index` (readIdx + posG))
+ (arr `M.unsafeWrite` (writeIdx + 2)) (str `B.index` (readIdx + posB))
+ (arr `M.unsafeWrite` (writeIdx + 3)) (str `B.index` (readIdx + posA))
+ inner (readIdx + 4) (writeIdx + 4)
+
decodeImageRGB8 :: BmpInfoHeader -> B.ByteString -> Image PixelRGB8
decodeImageRGB8 (BmpInfoHeader { width = w, height = h }) str = Image wi hi stArray where
wi = fromIntegral w
@@ -322,6 +351,8 @@
-- | Try to decode a bitmap image.
-- Right now this function can output the following pixel types :
--
+-- * PixelRGBA8
+--
-- * PixelRGB8
--
-- * Pixel8
@@ -349,27 +380,49 @@
paletteColorCount
| colorCount bmpHeader == 0 = 2 ^ bpp
| otherwise = fromIntegral $ colorCount bmpHeader
+ getData = do
+ readed' <- bytesRead
+ skip . fromIntegral $ dataOffset hdr - fromIntegral readed'
+ getRemainingBytes
+ addMetadata i = (i, metadataOfHeader bmpHeader)
- table <- if bpp > 8
- then return V.empty
- else V.replicateM paletteColorCount pixelGet
-
- readed' <- bytesRead
-
- skip . fromIntegral $ dataOffset hdr - fromIntegral readed'
- rest <- getRemainingBytes
- let addMetadata i = (i, metadataOfHeader bmpHeader)
case (bitPerPixel bmpHeader, planes bmpHeader,
bitmapCompression bmpHeader) of
- -- (32, 1, 0) -> {- ImageRGBA8 <$>-} fail "Meuh"
- (24, 1, 0) -> return . addMetadata . ImageRGB8 $ decodeImageRGB8 bmpHeader rest
- ( 8, 1, 0) ->
- let indexer v = table V.! fromIntegral v in
- return . addMetadata . ImageRGB8 . pixelMap indexer $ decodeImageY8 bmpHeader rest
+ (32, 1, 0) -> do
+ rest <- getData
+ return . addMetadata . ImageRGBA8 $ decodeImageRGBA8 bmpHeader (2, 1, 0, 3) rest
+ -- (2, 1, 0, 3) means BGRA pixel order
+ (32, 1, 3) -> do
+ posRed <- getBitfield
+ posGreen <- getBitfield
+ posBlue <- getBitfield
+ posAlpha <- getBitfield
+ rest <- getData
+ return . addMetadata . ImageRGBA8 $
+ decodeImageRGBA8 bmpHeader (posRed, posGreen, posBlue, posAlpha) rest
+ (24, 1, 0) -> do
+ rest <- getData
+ return . addMetadata . ImageRGB8 $ decodeImageRGB8 bmpHeader rest
+ ( 8, 1, 0) -> do
+ table <- V.replicateM paletteColorCount pixelGet
+ rest <- getData
+ let indexer v = table V.! fromIntegral v
+ return . addMetadata . ImageRGB8 . pixelMap indexer $ decodeImageY8 bmpHeader rest
a -> fail $ "Can't handle BMP file " ++ show a
+getBitfield :: Get Int
+getBitfield = do
+ w32 <- getWord32be
+ case w32 of
+ 0xFF000000 -> return 0
+ 0x00FF0000 -> return 1
+ 0x0000FF00 -> return 2
+ 0x000000FF -> return 3
+ _ -> fail $
+ "Codec.Picture.Bitmap.getBitfield: unsupported bitfield of " ++ show w32
+
-- | Write an image in a file use the bitmap format.
writeBitmap :: (BmpEncodable pixel)
=> FilePath -> Image pixel -> IO ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/src/Codec/Picture/Gif/LZW.hs new/JuicyPixels-3.2.7/src/Codec/Picture/Gif/LZW.hs
--- old/JuicyPixels-3.2.6.4/src/Codec/Picture/Gif/LZW.hs 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/src/Codec/Picture/Gif/LZW.hs 2016-01-25 23:33:57.000000000 +0100
@@ -1,191 +1,194 @@
-{-# LANGUAGE CPP #-}
-module Codec.Picture.Gif.LZW( decodeLzw, decodeLzwTiff ) where
-
-#if !MIN_VERSION_base(4,8,0)
-import Control.Applicative( (<$>) )
-#endif
-
-import Data.Word( Word8 )
-import Control.Monad( when, unless )
-
-import Data.Bits( (.&.) )
-
-import Control.Monad.ST( ST )
-import Control.Monad.Trans.Class( MonadTrans, lift )
-
-import Foreign.Storable ( Storable )
-
-import qualified Data.ByteString as B
-import qualified Data.Vector.Storable.Mutable as M
-
-import Codec.Picture.BitWriter
-
-{-# INLINE (.!!!.) #-}
-(.!!!.) :: (Storable a) => M.STVector s a -> Int -> ST s a
-(.!!!.) = M.unsafeRead
- {-M.read-}
-
-{-# INLINE (..!!!..) #-}
-(..!!!..) :: (MonadTrans t, Storable a)
- => M.STVector s a -> Int -> t (ST s) a
-(..!!!..) v idx = lift $ v .!!!. idx
-
-{-# INLINE (.<-.) #-}
-(.<-.) :: (Storable a) => M.STVector s a -> Int -> a -> ST s ()
-(.<-.) = M.unsafeWrite
- {-M.write-}
-
-{-# INLINE (..<-..) #-}
-(..<-..) :: (MonadTrans t, Storable a)
- => M.STVector s a -> Int -> a -> t (ST s) ()
-(..<-..) v idx = lift . (v .<-. idx)
-
-
-duplicateData :: (Show a, MonadTrans t, Storable a)
- => M.STVector s a -> M.STVector s a
- -> Int -> Int -> Int -> t (ST s) ()
-duplicateData src dest sourceIndex size destIndex = lift $ aux sourceIndex destIndex
- where endIndex = sourceIndex + size
- aux i _ | i == endIndex = return ()
- aux i j = do
- src .!!!. i >>= (dest .<-. j)
- aux (i + 1) (j + 1)
-
-rangeSetter :: (Storable a, Num a)
- => Int -> M.STVector s a
- -> ST s (M.STVector s a)
-rangeSetter count vec = aux 0
- where aux n | n == count = return vec
- aux n = (vec .<-. n) (fromIntegral n) >> aux (n + 1)
-
-decodeLzw :: B.ByteString -> Int -> Int -> M.STVector s Word8
- -> BoolReader s ()
-decodeLzw str maxBitKey initialKey outVec = do
- setDecodedString str
- lzw GifVariant maxBitKey initialKey 0 outVec
-
-isOldTiffLZW :: B.ByteString -> Bool
-isOldTiffLZW str = firstByte == 0 && secondByte == 1
- where firstByte = str `B.index` 0
- secondByte = (str `B.index` 1) .&. 1
-
-decodeLzwTiff :: B.ByteString -> M.STVector s Word8 -> Int
- -> BoolReader s()
-decodeLzwTiff str outVec initialWriteIdx = do
- setDecodedString str
- let variant | isOldTiffLZW str = OldTiffVariant
- | otherwise = TiffVariant
- lzw variant 12 9 initialWriteIdx outVec
-
-data TiffVariant =
- GifVariant
- | TiffVariant
- | OldTiffVariant
- deriving Eq
-
--- | Gif image constraint from spec-gif89a, code size max : 12 bits.
-lzw :: TiffVariant -> Int -> Int -> Int -> M.STVector s Word8
- -> BoolReader s ()
-lzw variant nMaxBitKeySize initialKeySize initialWriteIdx outVec = do
- -- Allocate buffer of maximum size.
- lzwData <- lift (M.replicate maxDataSize 0) >>= resetArray
- lzwOffsetTable <- lift (M.replicate tableEntryCount 0) >>= resetArray
- lzwSizeTable <- lift $ M.replicate tableEntryCount 0
- lift $ lzwSizeTable `M.set` 1
-
- let firstVal code = do
- dataOffset <- lzwOffsetTable ..!!!.. code
- lzwData ..!!!.. dataOffset
-
- writeString at code = do
- dataOffset <- lzwOffsetTable ..!!!.. code
- dataSize <- lzwSizeTable ..!!!.. code
-
- when (at + dataSize <= maxWrite) $
- duplicateData lzwData outVec dataOffset dataSize at
-
- return dataSize
-
- addString pos at code val = do
- dataOffset <- lzwOffsetTable ..!!!.. code
- dataSize <- lzwSizeTable ..!!!.. code
-
- when (pos < tableEntryCount) $ do
- (lzwOffsetTable ..<-.. pos) at
- (lzwSizeTable ..<-.. pos) $ dataSize + 1
-
- when (at + dataSize + 1 <= maxDataSize) $ do
- duplicateData lzwData lzwData dataOffset dataSize at
- (lzwData ..<-.. (at + dataSize)) val
-
- return $ dataSize + 1
-
- maxWrite = M.length outVec
- loop outWriteIdx writeIdx dicWriteIdx codeSize oldCode code
- | outWriteIdx >= maxWrite = return ()
- | code == endOfInfo = return ()
- | code == clearCode = do
- toOutput <- getNextCode startCodeSize
- unless (toOutput == endOfInfo) $ do
- dataSize <- writeString outWriteIdx toOutput
- getNextCode startCodeSize >>=
- loop (outWriteIdx + dataSize)
- firstFreeIndex firstFreeIndex startCodeSize toOutput
-
- | otherwise = do
- (written, dicAdd) <-
- if code >= writeIdx then do
- c <- firstVal oldCode
- wroteSize <- writeString outWriteIdx oldCode
- (outVec ..<-.. (outWriteIdx + wroteSize)) c
- addedSize <- addString writeIdx dicWriteIdx oldCode c
- return (wroteSize + 1, addedSize)
- else do
- wroteSize <- writeString outWriteIdx code
- c <- firstVal code
- addedSize <- addString writeIdx dicWriteIdx oldCode c
- return (wroteSize, addedSize)
-
- let new_code_size = updateCodeSize codeSize $ writeIdx + 1
- getNextCode new_code_size >>=
- loop (outWriteIdx + written)
- (writeIdx + 1)
- (dicWriteIdx + dicAdd)
- new_code_size
- code
-
- getNextCode startCodeSize >>=
- loop initialWriteIdx firstFreeIndex firstFreeIndex startCodeSize 0
-
- where tableEntryCount = 2 ^ min 12 nMaxBitKeySize
- maxDataSize = tableEntryCount `div` 2 * (1 + tableEntryCount) + 1
-
- isNewTiff = variant == TiffVariant
- (switchOffset, isTiffVariant) = case variant of
- GifVariant -> (0, False)
- TiffVariant -> (1, True)
- OldTiffVariant -> (0, True)
-
- initialElementCount = 2 ^ initialKeySize :: Int
- clearCode | isTiffVariant = 256
- | otherwise = initialElementCount
-
- endOfInfo | isTiffVariant = 257
- | otherwise = clearCode + 1
-
- startCodeSize
- | isTiffVariant = initialKeySize
- | otherwise = initialKeySize + 1
-
- firstFreeIndex = endOfInfo + 1
-
- resetArray a = lift $ rangeSetter initialElementCount a
-
- updateCodeSize codeSize writeIdx
- | writeIdx == 2 ^ codeSize - switchOffset = min 12 $ codeSize + 1
- | otherwise = codeSize
-
- getNextCode s
- | isNewTiff = fromIntegral <$> getNextBitsMSBFirst s
- | otherwise = fromIntegral <$> getNextBitsLSBFirst s
-
+{-# LANGUAGE CPP #-}
+module Codec.Picture.Gif.LZW( decodeLzw, decodeLzwTiff ) where
+
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative( (<$>) )
+#endif
+
+import Data.Word( Word8 )
+import Control.Monad( when, unless )
+
+import Data.Bits( (.&.) )
+
+import Control.Monad.ST( ST )
+import Control.Monad.Trans.Class( MonadTrans, lift )
+
+import Foreign.Storable ( Storable )
+
+import qualified Data.ByteString as B
+import qualified Data.Vector.Storable.Mutable as M
+
+import Codec.Picture.BitWriter
+
+{-# INLINE (.!!!.) #-}
+(.!!!.) :: (Storable a) => M.STVector s a -> Int -> ST s a
+(.!!!.) = M.unsafeRead
+ {-M.read-}
+
+{-# INLINE (..!!!..) #-}
+(..!!!..) :: (MonadTrans t, Storable a)
+ => M.STVector s a -> Int -> t (ST s) a
+(..!!!..) v idx = lift $ v .!!!. idx
+
+{-# INLINE (.<-.) #-}
+(.<-.) :: (Storable a) => M.STVector s a -> Int -> a -> ST s ()
+(.<-.) = M.unsafeWrite
+ {-M.write-}
+
+{-# INLINE (..<-..) #-}
+(..<-..) :: (MonadTrans t, Storable a)
+ => M.STVector s a -> Int -> a -> t (ST s) ()
+(..<-..) v idx = lift . (v .<-. idx)
+
+
+duplicateData :: (Show a, MonadTrans t, Storable a)
+ => M.STVector s a -> M.STVector s a
+ -> Int -> Int -> Int -> t (ST s) ()
+duplicateData src dest sourceIndex size destIndex = lift $ aux sourceIndex destIndex
+ where endIndex = sourceIndex + size
+ aux i _ | i == endIndex = return ()
+ aux i j = do
+ src .!!!. i >>= (dest .<-. j)
+ aux (i + 1) (j + 1)
+
+rangeSetter :: (Storable a, Num a)
+ => Int -> M.STVector s a
+ -> ST s (M.STVector s a)
+rangeSetter count vec = aux 0
+ where aux n | n == count = return vec
+ aux n = (vec .<-. n) (fromIntegral n) >> aux (n + 1)
+
+decodeLzw :: B.ByteString -> Int -> Int -> M.STVector s Word8
+ -> BoolReader s ()
+decodeLzw str maxBitKey initialKey outVec = do
+ setDecodedString str
+ lzw GifVariant maxBitKey initialKey 0 outVec
+
+isOldTiffLZW :: B.ByteString -> Bool
+isOldTiffLZW str = firstByte == 0 && secondByte == 1
+ where firstByte = str `B.index` 0
+ secondByte = (str `B.index` 1) .&. 1
+
+decodeLzwTiff :: B.ByteString -> M.STVector s Word8 -> Int
+ -> BoolReader s()
+decodeLzwTiff str outVec initialWriteIdx = do
+ if isOldTiffLZW str then
+ setDecodedString str
+ else
+ setDecodedStringMSB str
+ let variant | isOldTiffLZW str = OldTiffVariant
+ | otherwise = TiffVariant
+ lzw variant 12 9 initialWriteIdx outVec
+
+data TiffVariant =
+ GifVariant
+ | TiffVariant
+ | OldTiffVariant
+ deriving Eq
+
+-- | Gif image constraint from spec-gif89a, code size max : 12 bits.
+lzw :: TiffVariant -> Int -> Int -> Int -> M.STVector s Word8
+ -> BoolReader s ()
+lzw variant nMaxBitKeySize initialKeySize initialWriteIdx outVec = do
+ -- Allocate buffer of maximum size.
+ lzwData <- lift (M.replicate maxDataSize 0) >>= resetArray
+ lzwOffsetTable <- lift (M.replicate tableEntryCount 0) >>= resetArray
+ lzwSizeTable <- lift $ M.replicate tableEntryCount 0
+ lift $ lzwSizeTable `M.set` 1
+
+ let firstVal code = do
+ dataOffset <- lzwOffsetTable ..!!!.. code
+ lzwData ..!!!.. dataOffset
+
+ writeString at code = do
+ dataOffset <- lzwOffsetTable ..!!!.. code
+ dataSize <- lzwSizeTable ..!!!.. code
+
+ when (at + dataSize <= maxWrite) $
+ duplicateData lzwData outVec dataOffset dataSize at
+
+ return dataSize
+
+ addString pos at code val = do
+ dataOffset <- lzwOffsetTable ..!!!.. code
+ dataSize <- lzwSizeTable ..!!!.. code
+
+ when (pos < tableEntryCount) $ do
+ (lzwOffsetTable ..<-.. pos) at
+ (lzwSizeTable ..<-.. pos) $ dataSize + 1
+
+ when (at + dataSize + 1 <= maxDataSize) $ do
+ duplicateData lzwData lzwData dataOffset dataSize at
+ (lzwData ..<-.. (at + dataSize)) val
+
+ return $ dataSize + 1
+
+ maxWrite = M.length outVec
+ loop outWriteIdx writeIdx dicWriteIdx codeSize oldCode code
+ | outWriteIdx >= maxWrite = return ()
+ | code == endOfInfo = return ()
+ | code == clearCode = do
+ toOutput <- getNextCode startCodeSize
+ unless (toOutput == endOfInfo) $ do
+ dataSize <- writeString outWriteIdx toOutput
+ getNextCode startCodeSize >>=
+ loop (outWriteIdx + dataSize)
+ firstFreeIndex firstFreeIndex startCodeSize toOutput
+
+ | otherwise = do
+ (written, dicAdd) <-
+ if code >= writeIdx then do
+ c <- firstVal oldCode
+ wroteSize <- writeString outWriteIdx oldCode
+ (outVec ..<-.. (outWriteIdx + wroteSize)) c
+ addedSize <- addString writeIdx dicWriteIdx oldCode c
+ return (wroteSize + 1, addedSize)
+ else do
+ wroteSize <- writeString outWriteIdx code
+ c <- firstVal code
+ addedSize <- addString writeIdx dicWriteIdx oldCode c
+ return (wroteSize, addedSize)
+
+ let new_code_size = updateCodeSize codeSize $ writeIdx + 1
+ getNextCode new_code_size >>=
+ loop (outWriteIdx + written)
+ (writeIdx + 1)
+ (dicWriteIdx + dicAdd)
+ new_code_size
+ code
+
+ getNextCode startCodeSize >>=
+ loop initialWriteIdx firstFreeIndex firstFreeIndex startCodeSize 0
+
+ where tableEntryCount = 2 ^ min 12 nMaxBitKeySize
+ maxDataSize = tableEntryCount `div` 2 * (1 + tableEntryCount) + 1
+
+ isNewTiff = variant == TiffVariant
+ (switchOffset, isTiffVariant) = case variant of
+ GifVariant -> (0, False)
+ TiffVariant -> (1, True)
+ OldTiffVariant -> (0, True)
+
+ initialElementCount = 2 ^ initialKeySize :: Int
+ clearCode | isTiffVariant = 256
+ | otherwise = initialElementCount
+
+ endOfInfo | isTiffVariant = 257
+ | otherwise = clearCode + 1
+
+ startCodeSize
+ | isTiffVariant = initialKeySize
+ | otherwise = initialKeySize + 1
+
+ firstFreeIndex = endOfInfo + 1
+
+ resetArray a = lift $ rangeSetter initialElementCount a
+
+ updateCodeSize codeSize writeIdx
+ | writeIdx == 2 ^ codeSize - switchOffset = min 12 $ codeSize + 1
+ | otherwise = codeSize
+
+ getNextCode s
+ | isNewTiff = fromIntegral <$> getNextBitsMSBFirst s
+ | otherwise = fromIntegral <$> getNextBitsLSBFirst s
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/src/Codec/Picture/Jpg/Common.hs new/JuicyPixels-3.2.7/src/Codec/Picture/Jpg/Common.hs
--- old/JuicyPixels-3.2.6.4/src/Codec/Picture/Jpg/Common.hs 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/src/Codec/Picture/Jpg/Common.hs 2016-01-25 23:33:57.000000000 +0100
@@ -23,11 +23,10 @@
import Control.Applicative( pure, (<$>) )
#endif
-import Control.Monad( replicateM, when )
+import Control.Monad( when )
import Control.Monad.ST( ST, runST )
import Data.Bits( unsafeShiftL, unsafeShiftR, (.&.) )
import Data.Int( Int16, Int32 )
-import Data.List( foldl' )
import Data.Maybe( fromMaybe )
import Data.Word( Word8 )
import qualified Data.Vector.Storable as VS
@@ -174,8 +173,7 @@
-- | Unpack an int of the given size encoded from MSB to LSB.
unpackInt :: Int -> BoolReader s Int32
-unpackInt bitCount = packInt <$> replicateM bitCount getNextBitJpg
-
+unpackInt = getNextIntJpg
{-# INLINE rasterMap #-}
rasterMap :: (Monad m)
@@ -187,11 +185,6 @@
where columner x | x >= width = liner (y + 1)
columner x = f x y >> columner (x + 1)
-packInt :: [Bool] -> Int32
-packInt = foldl' bitStep 0
- where bitStep acc True = (acc `unsafeShiftL` 1) + 1
- bitStep acc False = acc `unsafeShiftL` 1
-
pixelClamp :: Int16 -> Word8
pixelClamp n = fromIntegral . min 255 $ max 0 n
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/src/Codec/Picture/Jpg/Types.hs new/JuicyPixels-3.2.7/src/Codec/Picture/Jpg/Types.hs
--- old/JuicyPixels-3.2.6.4/src/Codec/Picture/Jpg/Types.hs 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/src/Codec/Picture/Jpg/Types.hs 2016-01-25 23:33:57.000000000 +0100
@@ -427,7 +427,8 @@
getByteString (fromIntegral size - 2)
putFrame :: JpgFrame -> Put
-putFrame (JpgAdobeAPP14 _adobe) = return ()
+putFrame (JpgAdobeAPP14 adobe) =
+ put (JpgAppSegment 14) >> putWord16be 14 >> put adobe
putFrame (JpgJFIF jfif) =
put (JpgAppSegment 0) >> putWord16be (14+2) >> put jfif
putFrame (JpgExif _exif) =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/src/Codec/Picture/Jpg.hs new/JuicyPixels-3.2.7/src/Codec/Picture/Jpg.hs
--- old/JuicyPixels-3.2.6.4/src/Codec/Picture/Jpg.hs 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/src/Codec/Picture/Jpg.hs 2016-01-25 23:33:56.000000000 +0100
@@ -11,7 +11,9 @@
, decodeJpegWithMetadata
, encodeJpegAtQuality
, encodeJpegAtQualityWithMetadata
+ , encodeDirectJpegAtQualityWithMetadata
, encodeJpeg
+ , JpgEncodable
) where
#if !MIN_VERSION_base(4,8,0)
@@ -546,6 +548,8 @@
--
-- * PixelRGB8
--
+-- * PixelCMYK8
+--
-- * PixelYCbCr8
--
decodeJpeg :: B.ByteString -> Either String DynamicImage
@@ -623,7 +627,8 @@
frozen <- unsafeFreezeImage fImg
return (st, imageData frozen)
-extractBlock :: Image PixelYCbCr8 -- ^ Source image
+extractBlock :: forall s px. (PixelBaseComponent px ~ Word8)
+ => Image px -- ^ Source image
-> MutableMacroBlock s Int16 -- ^ Mutable block where to put extracted block
-> Int -- ^ Plane
-> Int -- ^ X sampling factor
@@ -741,6 +746,22 @@
, prepareHuffmanTable AcComponent 1 defaultAcChromaHuffmanTable
]
+lumaQuantTableAtQuality :: Int -> QuantificationTable
+lumaQuantTableAtQuality qual = scaleQuantisationMatrix qual defaultLumaQuantizationTable
+
+chromaQuantTableAtQuality :: Int -> QuantificationTable
+chromaQuantTableAtQuality qual =
+ scaleQuantisationMatrix qual defaultChromaQuantizationTable
+
+zigzaggedQuantificationSpec :: Int -> [JpgQuantTableSpec]
+zigzaggedQuantificationSpec qual =
+ [ JpgQuantTableSpec { quantPrecision = 0, quantDestination = 0, quantTable = luma }
+ , JpgQuantTableSpec { quantPrecision = 0, quantDestination = 1, quantTable = chroma }
+ ]
+ where
+ luma = zigZagReorderForwardv $ lumaQuantTableAtQuality qual
+ chroma = zigZagReorderForwardv $ chromaQuantTableAtQuality qual
+
-- | Function to call to encode an image to jpeg.
-- The quality factor should be between 0 and 100 (100 being
-- the best quality).
@@ -749,6 +770,203 @@
-> L.ByteString -- ^ Encoded JPEG
encodeJpegAtQuality quality = encodeJpegAtQualityWithMetadata quality mempty
+-- | Record gathering all information to encode a component
+-- from the source image. Previously was a huge tuple
+-- burried in the code
+data EncoderState = EncoderState
+ { _encComponentIndex :: !Int
+ , _encBlockWidth :: !Int
+ , _encBlockHeight :: !Int
+ , _encQuantTable :: !QuantificationTable
+ , _encDcHuffman :: !HuffmanWriterCode
+ , _encAcHuffman :: !HuffmanWriterCode
+ }
+
+
+-- | Helper type class describing all JPG-encodable pixel types
+class (Pixel px, PixelBaseComponent px ~ Word8) => JpgEncodable px where
+ additionalBlocks :: Image px -> [JpgFrame]
+ additionalBlocks _ = []
+
+ componentsOfColorSpace :: Image px -> [JpgComponent]
+
+ encodingState :: Int -> Image px -> V.Vector EncoderState
+
+ imageHuffmanTables :: Image px -> [(JpgHuffmanTableSpec, HuffmanPackedTree)]
+ imageHuffmanTables _ = defaultHuffmanTables
+
+ scanSpecificationOfColorSpace :: Image px -> [JpgScanSpecification]
+
+ quantTableSpec :: Image px -> Int -> [JpgQuantTableSpec]
+ quantTableSpec _ qual = take 1 $ zigzaggedQuantificationSpec qual
+
+ maximumSubSamplingOf :: Image px -> Int
+ maximumSubSamplingOf _ = 1
+
+instance JpgEncodable Pixel8 where
+ scanSpecificationOfColorSpace _ =
+ [ JpgScanSpecification { componentSelector = 1
+ , dcEntropyCodingTable = 0
+ , acEntropyCodingTable = 0
+ }
+ ]
+
+ componentsOfColorSpace _ =
+ [ JpgComponent { componentIdentifier = 1
+ , horizontalSamplingFactor = 1
+ , verticalSamplingFactor = 1
+ , quantizationTableDest = 0
+ }
+ ]
+
+ imageHuffmanTables _ =
+ [ prepareHuffmanTable DcComponent 0 defaultDcLumaHuffmanTable
+ , prepareHuffmanTable AcComponent 0 defaultAcLumaHuffmanTable
+ ]
+
+ encodingState qual _ = V.singleton EncoderState
+ { _encComponentIndex = 0
+ , _encBlockWidth = 1
+ , _encBlockHeight = 1
+ , _encQuantTable = zigZagReorderForwardv $ lumaQuantTableAtQuality qual
+ , _encDcHuffman = makeInverseTable defaultDcLumaHuffmanTree
+ , _encAcHuffman = makeInverseTable defaultAcLumaHuffmanTree
+ }
+
+
+instance JpgEncodable PixelYCbCr8 where
+ maximumSubSamplingOf _ = 2
+ quantTableSpec _ qual = zigzaggedQuantificationSpec qual
+ scanSpecificationOfColorSpace _ =
+ [ JpgScanSpecification { componentSelector = 1
+ , dcEntropyCodingTable = 0
+ , acEntropyCodingTable = 0
+ }
+ , JpgScanSpecification { componentSelector = 2
+ , dcEntropyCodingTable = 1
+ , acEntropyCodingTable = 1
+ }
+ , JpgScanSpecification { componentSelector = 3
+ , dcEntropyCodingTable = 1
+ , acEntropyCodingTable = 1
+ }
+ ]
+
+ componentsOfColorSpace _ =
+ [ JpgComponent { componentIdentifier = 1
+ , horizontalSamplingFactor = 2
+ , verticalSamplingFactor = 2
+ , quantizationTableDest = 0
+ }
+ , JpgComponent { componentIdentifier = 2
+ , horizontalSamplingFactor = 1
+ , verticalSamplingFactor = 1
+ , quantizationTableDest = 1
+ }
+ , JpgComponent { componentIdentifier = 3
+ , horizontalSamplingFactor = 1
+ , verticalSamplingFactor = 1
+ , quantizationTableDest = 1
+ }
+ ]
+
+ encodingState qual _ = V.fromListN 3 [lumaState, chromaState, chromaState { _encComponentIndex = 2 }]
+ where
+ lumaState = EncoderState
+ { _encComponentIndex = 0
+ , _encBlockWidth = 2
+ , _encBlockHeight = 2
+ , _encQuantTable = zigZagReorderForwardv $ lumaQuantTableAtQuality qual
+ , _encDcHuffman = makeInverseTable defaultDcLumaHuffmanTree
+ , _encAcHuffman = makeInverseTable defaultAcLumaHuffmanTree
+ }
+ chromaState = EncoderState
+ { _encComponentIndex = 1
+ , _encBlockWidth = 1
+ , _encBlockHeight = 1
+ , _encQuantTable = zigZagReorderForwardv $ chromaQuantTableAtQuality qual
+ , _encDcHuffman = makeInverseTable defaultDcChromaHuffmanTree
+ , _encAcHuffman = makeInverseTable defaultAcChromaHuffmanTree
+ }
+
+instance JpgEncodable PixelRGB8 where
+ additionalBlocks _ = [] where
+ _adobe14 = JpgAdobeApp14
+ { _adobeDctVersion = 100
+ , _adobeFlag0 = 0
+ , _adobeFlag1 = 0
+ , _adobeTransform = AdobeUnknown
+ }
+
+ imageHuffmanTables _ =
+ [ prepareHuffmanTable DcComponent 0 defaultDcLumaHuffmanTable
+ , prepareHuffmanTable AcComponent 0 defaultAcLumaHuffmanTable
+ ]
+
+ scanSpecificationOfColorSpace _ = fmap build "RGB" where
+ build c = JpgScanSpecification
+ { componentSelector = fromIntegral $ fromEnum c
+ , dcEntropyCodingTable = 0
+ , acEntropyCodingTable = 0
+ }
+
+ componentsOfColorSpace _ = fmap build "RGB" where
+ build c = JpgComponent
+ { componentIdentifier = fromIntegral $ fromEnum c
+ , horizontalSamplingFactor = 1
+ , verticalSamplingFactor = 1
+ , quantizationTableDest = 0
+ }
+
+ encodingState qual _ = V.fromListN 3 $ fmap build [0 .. 2] where
+ build ix = EncoderState
+ { _encComponentIndex = ix
+ , _encBlockWidth = 1
+ , _encBlockHeight = 1
+ , _encQuantTable = zigZagReorderForwardv $ lumaQuantTableAtQuality qual
+ , _encDcHuffman = makeInverseTable defaultDcLumaHuffmanTree
+ , _encAcHuffman = makeInverseTable defaultAcLumaHuffmanTree
+ }
+
+instance JpgEncodable PixelCMYK8 where
+ additionalBlocks _ = [] where
+ _adobe14 = JpgAdobeApp14
+ { _adobeDctVersion = 100
+ , _adobeFlag0 = 32768
+ , _adobeFlag1 = 0
+ , _adobeTransform = AdobeYCck
+ }
+
+ imageHuffmanTables _ =
+ [ prepareHuffmanTable DcComponent 0 defaultDcLumaHuffmanTable
+ , prepareHuffmanTable AcComponent 0 defaultAcLumaHuffmanTable
+ ]
+
+ scanSpecificationOfColorSpace _ = fmap build "CMYK" where
+ build c = JpgScanSpecification
+ { componentSelector = fromIntegral $ fromEnum c
+ , dcEntropyCodingTable = 0
+ , acEntropyCodingTable = 0
+ }
+
+ componentsOfColorSpace _ = fmap build "CMYK" where
+ build c = JpgComponent
+ { componentIdentifier = fromIntegral $ fromEnum c
+ , horizontalSamplingFactor = 1
+ , verticalSamplingFactor = 1
+ , quantizationTableDest = 0
+ }
+
+ encodingState qual _ = V.fromListN 4 $ fmap build [0 .. 3] where
+ build ix = EncoderState
+ { _encComponentIndex = ix
+ , _encBlockWidth = 1
+ , _encBlockHeight = 1
+ , _encQuantTable = zigZagReorderForwardv $ lumaQuantTableAtQuality qual
+ , _encDcHuffman = makeInverseTable defaultDcLumaHuffmanTree
+ , _encAcHuffman = makeInverseTable defaultAcLumaHuffmanTree
+ }
+
-- | Equivalent to 'encodeJpegAtQuality', but will store the following
-- metadatas in the file using a JFIF block:
--
@@ -759,121 +977,86 @@
-> Metadatas
-> Image PixelYCbCr8 -- ^ Image to encode
-> L.ByteString -- ^ Encoded JPEG
-encodeJpegAtQualityWithMetadata quality metas img@(Image { imageWidth = w, imageHeight = h }) = encode finalImage
- where finalImage = JpgImage $
- encodeMetadatas metas ++
- [ JpgQuantTable quantTables
- , JpgScans JpgBaselineDCTHuffman hdr
- , JpgHuffmanTable defaultHuffmanTables
- , JpgScanBlob scanHeader encodedImage
- ]
-
- outputComponentCount = 3
-
- scanHeader = scanHeader'{ scanLength = fromIntegral $ calculateSize scanHeader' }
- scanHeader' = JpgScanHeader
- { scanLength = 0
- , scanComponentCount = outputComponentCount
- , scans = [ JpgScanSpecification { componentSelector = 1
- , dcEntropyCodingTable = 0
- , acEntropyCodingTable = 0
- }
- , JpgScanSpecification { componentSelector = 2
- , dcEntropyCodingTable = 1
- , acEntropyCodingTable = 1
- }
- , JpgScanSpecification { componentSelector = 3
- , dcEntropyCodingTable = 1
- , acEntropyCodingTable = 1
- }
- ]
-
- , spectralSelection = (0, 63)
- , successiveApproxHigh = 0
- , successiveApproxLow = 0
- }
-
- hdr = hdr' { jpgFrameHeaderLength = fromIntegral $ calculateSize hdr' }
- hdr' = JpgFrameHeader { jpgFrameHeaderLength = 0
- , jpgSamplePrecision = 8
- , jpgHeight = fromIntegral h
- , jpgWidth = fromIntegral w
- , jpgImageComponentCount = outputComponentCount
- , jpgComponents = [
- JpgComponent { componentIdentifier = 1
- , horizontalSamplingFactor = 2
- , verticalSamplingFactor = 2
- , quantizationTableDest = 0
- }
- , JpgComponent { componentIdentifier = 2
- , horizontalSamplingFactor = 1
- , verticalSamplingFactor = 1
- , quantizationTableDest = 1
- }
- , JpgComponent { componentIdentifier = 3
- , horizontalSamplingFactor = 1
- , verticalSamplingFactor = 1
- , quantizationTableDest = 1
- }
- ]
- }
-
- lumaQuant = scaleQuantisationMatrix (fromIntegral quality)
- defaultLumaQuantizationTable
- chromaQuant = scaleQuantisationMatrix (fromIntegral quality)
- defaultChromaQuantizationTable
-
- zigzagedLumaQuant = zigZagReorderForwardv lumaQuant
- zigzagedChromaQuant = zigZagReorderForwardv chromaQuant
- quantTables = [ JpgQuantTableSpec { quantPrecision = 0, quantDestination = 0
- , quantTable = zigzagedLumaQuant }
- , JpgQuantTableSpec { quantPrecision = 0, quantDestination = 1
- , quantTable = zigzagedChromaQuant }
- ]
-
- encodedImage = runST $ do
- let horizontalMetaBlockCount =
- w `divUpward` (dctBlockSize * maxSampling)
- verticalMetaBlockCount =
- h `divUpward` (dctBlockSize * maxSampling)
- maxSampling = 2
- lumaSamplingSize = ( maxSampling, maxSampling, zigzagedLumaQuant
- , makeInverseTable defaultDcLumaHuffmanTree
- , makeInverseTable defaultAcLumaHuffmanTree)
- chromaSamplingSize = ( maxSampling - 1, maxSampling - 1, zigzagedChromaQuant
- , makeInverseTable defaultDcChromaHuffmanTree
- , makeInverseTable defaultAcChromaHuffmanTree)
- componentDef = [lumaSamplingSize, chromaSamplingSize, chromaSamplingSize]
-
- imageComponentCount = length componentDef
-
- dc_table <- M.replicate 3 0
- block <- createEmptyMutableMacroBlock
- workData <- createEmptyMutableMacroBlock
- zigzaged <- createEmptyMutableMacroBlock
- writeState <- newWriteStateRef
-
- -- It's ugly, I know, be avoid allocation
- let blockDecoder mx my = component $ zip [0..] componentDef
- where component [] = return ()
- component ((comp, (sizeX, sizeY, table, dc, ac)) : comp_rest) =
- rasterMap sizeX sizeY decoder >> component comp_rest
- where xSamplingFactor = maxSampling - sizeX + 1
- ySamplingFactor = maxSampling - sizeY + 1
- extractor = extractBlock img block xSamplingFactor ySamplingFactor imageComponentCount
-
- decoder subX subY = do
- let blockY = my * sizeY + subY
- blockX = mx * sizeX + subX
- prev_dc <- dc_table `M.unsafeRead` comp
- (dc_coeff, neo_block) <- extractor comp blockX blockY >>=
- encodeMacroBlock table workData zigzaged prev_dc
- (dc_table `M.unsafeWrite` comp) $ fromIntegral dc_coeff
- serializeMacroBlock writeState dc ac neo_block
-
- rasterMap
- horizontalMetaBlockCount verticalMetaBlockCount
- blockDecoder
+encodeJpegAtQualityWithMetadata = encodeDirectJpegAtQualityWithMetadata
+
+-- | Equivalent to 'encodeJpegAtQuality', but will store the following
+-- metadatas in the file using a JFIF block:
+--
+-- * 'Codec.Picture.Metadata.DpiX'
+-- * 'Codec.Picture.Metadata.DpiY'
+--
+-- This function also allow to create JPEG files with the following color
+-- space:
+--
+-- * Y (Pixel8) for greyscale.
+-- * RGB (PixelRGB8) with no color downsampling on any plane
+-- * CMYK (PixelCMYK8) with no color downsampling on any plane
+--
+encodeDirectJpegAtQualityWithMetadata :: forall px. (JpgEncodable px)
+ => Word8 -- ^ Quality factor
+ -> Metadatas
+ -> Image px -- ^ Image to encode
+ -> L.ByteString -- ^ Encoded JPEG
+encodeDirectJpegAtQualityWithMetadata quality metas img = encode finalImage where
+ !w = imageWidth img
+ !h = imageHeight img
+ finalImage = JpgImage $
+ encodeMetadatas metas ++
+ additionalBlocks img ++
+ [ JpgQuantTable $ quantTableSpec img (fromIntegral quality)
+ , JpgScans JpgBaselineDCTHuffman hdr
+ , JpgHuffmanTable $ imageHuffmanTables img
+ , JpgScanBlob scanHeader encodedImage
+ ]
+
+ !outputComponentCount = componentCount (undefined :: px)
+
+ scanHeader = scanHeader'{ scanLength = fromIntegral $ calculateSize scanHeader' }
+ scanHeader' = JpgScanHeader
+ { scanLength = 0
+ , scanComponentCount = fromIntegral outputComponentCount
+ , scans = scanSpecificationOfColorSpace img
+ , spectralSelection = (0, 63)
+ , successiveApproxHigh = 0
+ , successiveApproxLow = 0
+ }
+
+ hdr = hdr' { jpgFrameHeaderLength = fromIntegral $ calculateSize hdr' }
+ hdr' = JpgFrameHeader
+ { jpgFrameHeaderLength = 0
+ , jpgSamplePrecision = 8
+ , jpgHeight = fromIntegral h
+ , jpgWidth = fromIntegral w
+ , jpgImageComponentCount = fromIntegral outputComponentCount
+ , jpgComponents = componentsOfColorSpace img
+ }
+
+ !maxSampling = maximumSubSamplingOf img
+ !horizontalMetaBlockCount = w `divUpward` (dctBlockSize * maxSampling)
+ !verticalMetaBlockCount = h `divUpward` (dctBlockSize * maxSampling)
+ !componentDef = encodingState (fromIntegral quality) img
+
+ encodedImage = runST $ do
+ dc_table <- M.replicate outputComponentCount 0
+ block <- createEmptyMutableMacroBlock
+ workData <- createEmptyMutableMacroBlock
+ zigzaged <- createEmptyMutableMacroBlock
+ writeState <- newWriteStateRef
+
+ rasterMap horizontalMetaBlockCount verticalMetaBlockCount $ \mx my ->
+ V.forM_ componentDef $ \(EncoderState comp sizeX sizeY table dc ac) ->
+ let !xSamplingFactor = maxSampling - sizeX + 1
+ !ySamplingFactor = maxSampling - sizeY + 1
+ !extractor = extractBlock img block xSamplingFactor ySamplingFactor outputComponentCount
+ in
+ rasterMap sizeX sizeY $ \subX subY -> do
+ let !blockY = my * sizeY + subY
+ !blockX = mx * sizeX + subX
+ prev_dc <- dc_table `M.unsafeRead` comp
+ extracted <- extractor comp blockX blockY
+ (dc_coeff, neo_block) <- encodeMacroBlock table workData zigzaged prev_dc extracted
+ (dc_table `M.unsafeWrite` comp) $ fromIntegral dc_coeff
+ serializeMacroBlock writeState dc ac neo_block
- finalizeBoolWriter writeState
+ finalizeBoolWriter writeState
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/src/Codec/Picture/Saving.hs new/JuicyPixels-3.2.7/src/Codec/Picture/Saving.hs
--- old/JuicyPixels-3.2.6.4/src/Codec/Picture/Saving.hs 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/src/Codec/Picture/Saving.hs 2016-01-25 23:33:57.000000000 +0100
@@ -1,4 +1,5 @@
{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE CPP #-}
-- | Helper functions to save dynamic images to other file format
-- with automatic color space/sample format conversion done automatically.
module Codec.Picture.Saving( imageToJpg
@@ -10,6 +11,10 @@
, imageToTga
) where
+#if !MIN_VERSION_base(4,8,0)
+import Data.Monoid( mempty )
+#endif
+
import Data.Bits( unsafeShiftR )
import Data.Word( Word8, Word16 )
import qualified Data.ByteString.Lazy as L
@@ -94,9 +99,13 @@
-- | This function will try to do anything to encode an image
-- as JPEG, make all color conversion and such. Equivalent
-- of 'decodeImage' for jpeg encoding
+-- Save Y or YCbCr Jpeg only, all other colorspaces are converted.
+-- To save a RGB or CMYK JPEG file, use the
+-- 'Codec.Picture.Jpg.encodeDirectJpegAtQualityWithMetadata' function
imageToJpg :: Int -> DynamicImage -> L.ByteString
imageToJpg quality dynImage =
let encodeAtQuality = encodeJpegAtQuality (fromIntegral quality)
+ encodeWithMeta = encodeDirectJpegAtQualityWithMetadata (fromIntegral quality) mempty
in case dynImage of
ImageYCbCr8 img -> encodeAtQuality img
ImageCMYK8 img -> imageToJpg quality . ImageRGB8 $ convertImage img
@@ -105,10 +114,8 @@
ImageRGBF img -> imageToJpg quality . ImageRGB8 $ toStandardDef img
ImageRGBA8 img -> encodeAtQuality (convertImage $ dropAlphaLayer img)
ImageYF img -> imageToJpg quality . ImageY8 $ greyScaleToStandardDef img
- ImageY8 img -> encodeAtQuality . convertImage
- $ (promoteImage img :: Image PixelRGB8)
- ImageYA8 img -> encodeAtQuality $
- convertImage (promoteImage $ dropAlphaLayer img :: Image PixelRGB8)
+ ImageY8 img -> encodeWithMeta img
+ ImageYA8 img -> encodeWithMeta $ dropAlphaLayer img
ImageY16 img -> imageToJpg quality . ImageY8 $ from16to8 img
ImageYA16 img -> imageToJpg quality . ImageYA8 $ from16to8 img
ImageRGB16 img -> imageToJpg quality . ImageRGB8 $ from16to8 img
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/src/Codec/Picture/Types.hs new/JuicyPixels-3.2.7/src/Codec/Picture/Types.hs
--- old/JuicyPixels-3.2.6.4/src/Codec/Picture/Types.hs 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/src/Codec/Picture/Types.hs 2016-01-25 23:33:57.000000000 +0100
@@ -739,7 +739,7 @@
-> Int -- ^ Height in pixels
-> m (MutableImage (PrimState m) px)
{-# INLINE generateMutableImage #-}
-generateMutableImage f w h = MutableImage w h <$> generated where
+generateMutableImage f w h = MutableImage w h `liftM` generated where
compCount = componentCount (undefined :: px)
generated = do
@@ -897,6 +897,7 @@
{-# SPECIALIZE INLINE pixelMap :: (PixelRGB8 -> PixelRGBA8) -> Image PixelRGB8 -> Image PixelRGBA8 #-}
{-# SPECIALIZE INLINE pixelMap :: (PixelRGBA8 -> PixelRGBA8) -> Image PixelRGBA8 -> Image PixelRGBA8 #-}
{-# SPECIALIZE INLINE pixelMap :: (Pixel8 -> PixelRGB8) -> Image Pixel8 -> Image PixelRGB8 #-}
+{-# SPECIALIZE INLINE pixelMap :: (Pixel8 -> Pixel8) -> Image Pixel8 -> Image Pixel8 #-}
pixelMap f Image { imageWidth = w, imageHeight = h, imageData = vec } =
Image w h pixels
where sourceComponentCount = componentCount (undefined :: a)
@@ -1105,9 +1106,10 @@
instance LumaPlaneExtractable PixelRGBA8 where
{-# INLINE computeLuma #-}
- computeLuma (PixelRGBA8 r g b _) = floor $ 0.3 * toRational r +
- 0.59 * toRational g +
- 0.11 * toRational b
+ computeLuma (PixelRGBA8 r g b _) =
+ floor $ (0.3 :: Double) * fromIntegral r
+ + 0.59 * fromIntegral g
+ + 0.11 * fromIntegral b
instance LumaPlaneExtractable PixelYCbCr8 where
{-# INLINE computeLuma #-}
@@ -1570,9 +1572,11 @@
instance LumaPlaneExtractable PixelRGB16 where
{-# INLINE computeLuma #-}
- computeLuma (PixelRGB16 r g b) = floor $ 0.3 * toRational r +
- 0.59 * toRational g +
- 0.11 * toRational b
+ computeLuma (PixelRGB16 r g b) =
+ floor $ (0.3 :: Double) * fromIntegral r
+ + 0.59 * fromIntegral g
+ + 0.11 * fromIntegral b
+
--------------------------------------------------
---- PixelRGB8 instances
--------------------------------------------------
@@ -1654,9 +1658,10 @@
instance LumaPlaneExtractable PixelRGB8 where
{-# INLINE computeLuma #-}
- computeLuma (PixelRGB8 r g b) = floor $ 0.3 * toRational r +
- 0.59 * toRational g +
- 0.11 * toRational b
+ computeLuma (PixelRGB8 r g b) =
+ floor $ (0.3 :: Double) * fromIntegral r
+ + 0.59 * fromIntegral g
+ + 0.11 * fromIntegral b
--------------------------------------------------
---- PixelRGBA8 instances
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.6.4/src/Codec/Picture.hs new/JuicyPixels-3.2.7/src/Codec/Picture.hs
--- old/JuicyPixels-3.2.6.4/src/Codec/Picture.hs 2015-12-02 22:38:14.000000000 +0100
+++ new/JuicyPixels-3.2.7/src/Codec/Picture.hs 2016-01-25 23:33:56.000000000 +0100
@@ -1,7 +1,10 @@
{-# LANGUAGE CPP #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TupleSections #-}
+{-# LANGUAGE FlexibleInstances #-}
-- | Main module for image import/export into various image formats.
--
-- To use the library without thinking about it, look after 'decodeImage' and
@@ -23,6 +26,10 @@
, generateFoldImage
, withImage
+ -- * RGB helper functions
+ , convertRGB8
+ , convertRGBA8
+
-- * Lens compatibility
, Traversal
, imagePixels
@@ -138,6 +145,7 @@
import Control.Applicative( (<$>) )
#endif
+import Data.Bits( unsafeShiftR )
import Control.DeepSeq( NFData, deepseq )
import qualified Control.Exception as Exc ( catch, IOException )
import Codec.Picture.Metadata( Metadatas )
@@ -200,6 +208,7 @@
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as L
+import qualified Data.Vector.Storable as VS
-- | Return the first Right thing, accumulating error
eitherLoad :: c -> [(String, c -> Either String b)] -> Either String b
@@ -263,6 +272,7 @@
readImageWithMetadata :: FilePath -> IO (Either String (DynamicImage, Metadatas))
readImageWithMetadata = withImageDecoder decodeImageWithMetadata
+
-- | If you want to decode an image in a bytestring without even thinking
-- in term of format or whatever, this is the function to use. It will try
-- to decode in each known format and if one decoding succeeds, it will return
@@ -270,6 +280,85 @@
decodeImage :: B.ByteString -> Either String DynamicImage
decodeImage = fmap fst . decodeImageWithMetadata
+class Decimable px1 px2 where
+ decimateBitDepth :: Image px1 -> Image px2
+
+decimateWord16 :: ( Pixel px1, Pixel px2
+ , PixelBaseComponent px1 ~ Pixel16
+ , PixelBaseComponent px2 ~ Pixel8
+ ) => Image px1 -> Image px2
+decimateWord16 (Image w h da) =
+ Image w h $ VS.map (\v -> fromIntegral $ v `unsafeShiftR` 8) da
+
+decimateFloat :: ( Pixel px1, Pixel px2
+ , PixelBaseComponent px1 ~ PixelF
+ , PixelBaseComponent px2 ~ Pixel8
+ ) => Image px1 -> Image px2
+decimateFloat (Image w h da) =
+ Image w h $ VS.map (floor . (255*) . max 0 . min 1) da
+
+instance Decimable Pixel16 Pixel8 where
+ decimateBitDepth = decimateWord16
+
+instance Decimable PixelYA16 PixelYA8 where
+ decimateBitDepth = decimateWord16
+
+instance Decimable PixelRGB16 PixelRGB8 where
+ decimateBitDepth = decimateWord16
+
+instance Decimable PixelRGBA16 PixelRGBA8 where
+ decimateBitDepth = decimateWord16
+
+instance Decimable PixelCMYK16 PixelCMYK8 where
+ decimateBitDepth = decimateWord16
+
+instance Decimable PixelF Pixel8 where
+ decimateBitDepth = decimateFloat
+
+instance Decimable PixelRGBF PixelRGB8 where
+ decimateBitDepth = decimateFloat
+
+-- | Convert by any mean possible a dynamic image to an image
+-- in RGBA. The process can lose precision while converting from
+-- 16bits pixels or Floating point pixels.
+convertRGBA8 :: DynamicImage -> Image PixelRGBA8
+convertRGBA8 dynImage = case dynImage of
+ ImageY8 img -> promoteImage img
+ ImageY16 img -> promoteImage (decimateBitDepth img :: Image Pixel8)
+ ImageYF img -> promoteImage (decimateBitDepth img :: Image Pixel8)
+ ImageYA8 img -> promoteImage img
+ ImageYA16 img -> promoteImage (decimateBitDepth img :: Image PixelYA8)
+ ImageRGB8 img -> promoteImage img
+ ImageRGB16 img -> promoteImage (decimateBitDepth img :: Image PixelRGB8)
+ ImageRGBF img -> promoteImage (decimateBitDepth img :: Image PixelRGB8)
+ ImageRGBA8 img -> promoteImage img
+ ImageRGBA16 img -> decimateBitDepth img
+ ImageYCbCr8 img -> promoteImage (convertImage img :: Image PixelRGB8)
+ ImageCMYK8 img -> promoteImage (convertImage img :: Image PixelRGB8)
+ ImageCMYK16 img ->
+ promoteImage (convertImage (decimateBitDepth img :: Image PixelCMYK8) :: Image PixelRGB8)
+
+-- | Convert by any mean possible a dynamic image to an image
+-- in RGB. The process can lose precision while converting from
+-- 16bits pixels or Floating point pixels. Any alpha layer will
+-- be dropped
+convertRGB8 :: DynamicImage -> Image PixelRGB8
+convertRGB8 dynImage = case dynImage of
+ ImageY8 img -> promoteImage img
+ ImageY16 img -> promoteImage (decimateBitDepth img :: Image Pixel8)
+ ImageYF img -> promoteImage (decimateBitDepth img :: Image Pixel8)
+ ImageYA8 img -> promoteImage img
+ ImageYA16 img -> promoteImage (decimateBitDepth img :: Image PixelYA8)
+ ImageRGB8 img -> img
+ ImageRGB16 img -> decimateBitDepth img
+ ImageRGBF img -> decimateBitDepth img :: Image PixelRGB8
+ ImageRGBA8 img -> dropAlphaLayer img
+ ImageRGBA16 img -> dropAlphaLayer (decimateBitDepth img :: Image PixelRGBA8)
+ ImageYCbCr8 img -> convertImage img
+ ImageCMYK8 img -> convertImage img
+ ImageCMYK16 img -> convertImage (decimateBitDepth img :: Image PixelCMYK8)
+
+
-- | Equivalent to 'decodeImage', but also provide potential metadatas
-- present in the given file.
decodeImageWithMetadata :: B.ByteString -> Either String (DynamicImage, Metadatas)
@@ -306,7 +395,7 @@
readJpeg :: FilePath -> IO (Either String DynamicImage)
readJpeg = withImageDecoder decodeJpeg
--- | Try to load a .bmp file. The colorspace would be RGB or Y.
+-- | Try to load a .bmp file. The colorspace would be RGB, RGBA or Y.
readBitmap :: FilePath -> IO (Either String DynamicImage)
readBitmap = withImageDecoder decodeBitmap
1
0
Hello community,
here is the log from the commit of package ghc-HUnit for openSUSE:Factory checked in at 2016-01-28 17:23:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-HUnit (Old)
and /work/SRC/openSUSE:Factory/.ghc-HUnit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-HUnit"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-HUnit/ghc-HUnit.changes 2016-01-22 01:08:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-HUnit.new/ghc-HUnit.changes 2016-01-28 17:24:47.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Jan 22 10:12:18 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 1.3.1.1
+
+-------------------------------------------------------------------
Old:
----
HUnit-1.3.1.0.tar.gz
New:
----
HUnit-1.3.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-HUnit.spec ++++++
--- /var/tmp/diff_new_pack.1TwUXh/_old 2016-01-28 17:24:47.000000000 +0100
+++ /var/tmp/diff_new_pack.1TwUXh/_new 2016-01-28 17:24:47.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name HUnit
Name: ghc-HUnit
-Version: 1.3.1.0
+Version: 1.3.1.1
Release: 0
Summary: A unit testing framework for Haskell
License: BSD-3-Clause
@@ -75,6 +75,6 @@
%files devel -f %{name}-devel.files
%defattr(-,root,root,-)
-%doc examples README.md doc
+%doc examples README.md
%changelog
++++++ HUnit-1.3.1.0.tar.gz -> HUnit-1.3.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.1.0/CHANGELOG.md new/HUnit-1.3.1.1/CHANGELOG.md
--- old/HUnit-1.3.1.0/CHANGELOG.md 1970-01-01 01:00:00.000000000 +0100
+++ new/HUnit-1.3.1.1/CHANGELOG.md 2016-01-19 17:16:50.000000000 +0100
@@ -0,0 +1,19 @@
+## Changes
+
+#### 1.3.1.1
+
+- Various updates to metadata and documentation removing outdated information and making other things more visible
+
+### 1.3.1.0
+
+- add minimal support for GHC 8.0
+
+### 1.3.0.0
+
+- removed support for old compilers
+
+- add source locations for failing assertions (GHC >= 7.10.2 only)
+
+#### 1.2.5.2
+
+- Added support for GHC 7.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.1.0/HUnit.cabal new/HUnit-1.3.1.1/HUnit.cabal
--- old/HUnit-1.3.1.0/HUnit.cabal 2016-01-11 10:04:20.000000000 +0100
+++ new/HUnit-1.3.1.1/HUnit.cabal 2016-01-19 17:16:50.000000000 +0100
@@ -1,23 +1,22 @@
Name: HUnit
-Version: 1.3.1.0
+Version: 1.3.1.1
Cabal-Version: >= 1.8
License: BSD3
License-File: LICENSE
Author: Dean Herington
Maintainer: Simon Hengel <sol(a)typeful.net>
Stability: stable
-Homepage: http://hunit.sourceforge.net/
+Homepage: https://github.com/hspec/HUnit#readme
Category: Testing
Synopsis: A unit testing framework for Haskell
Description:
HUnit is a unit testing framework for Haskell, inspired by the
JUnit tool for Java, see: <http://www.junit.org>.
Build-Type: Simple
-Data-Files:
- doc/Guide.html
- examples/Example.hs
- prologue.txt
+Extra-Source-Files:
+ CHANGELOG.md
README.md
+ examples/Example.hs
source-repository head
type: git
@@ -38,7 +37,7 @@
Test-Suite tests
Type: exitcode-stdio-1.0
Main-Is: HUnitTests.hs
- HS-Source-Dirs: tests
+ HS-Source-Dirs: tests, examples
Build-Depends:
base == 4.*,
deepseq,
@@ -49,4 +48,5 @@
HUnitTestBase
HUnitTestExtended
TerminalTest
+ Example
GHC-Options: -Wall
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.1.0/README.md new/HUnit-1.3.1.1/README.md
--- old/HUnit-1.3.1.0/README.md 2016-01-11 10:04:20.000000000 +0100
+++ new/HUnit-1.3.1.1/README.md 2016-01-19 17:16:50.000000000 +0100
@@ -1,28 +1,545 @@
-# HUnit
+# HUnit User's Guide
-HUnit is a unit testing framework for Haskell, inspired by the JUnit
-tool for Java. HUnit is free software; see its "License" file for
-details. HUnit is available at <http://hunit.sourceforge.net>.
+HUnit is a unit testing framework for Haskell, inspired by the JUnit tool for Java. This
+guide describes how to use HUnit, assuming you are familiar with Haskell, though not
+necessarily with JUnit. You can obtain HUnit, including this guide, at
+[https://github.com/hspec/HUnit](https://github.com/hspec/HUnit)
-HUnit 1.1.1 consists of a number of files. Besides Haskell source files
-in Test/HUnit (whose names end in ".hs" or ".lhs"), these files include:
+## Introduction
+A test-centered methodology for software development is most effective when tests are
+easy to create, change, and execute. The [JUnit](www.junit.org) tool
+pioneered support for test-first development in [Java](http://java.sun.com).
+HUnit is an adaptation of JUnit to Haskell, a general-purpose, purely functional
+programming language. (To learn more about Haskell, see www.haskell.org](http://www.haskell.org).
+With HUnit, as with JUnit, you can easily create tests, name them, group them into
+suites, and execute them, with the framework checking the results automatically. Test
+specification in HUnit is even more concise and flexible than in JUnit, thanks to the
+nature of the Haskell language. HUnit currently includes only a text-based test
+controller, but the framework is designed for easy extension. (Would anyone care to
+write a graphical test controller for HUnit?)
+
+The next section helps you get started using HUnit in simple ways. Subsequent sections
+give details on [writing tests](#writing-tests) and [running tests](#running-tests).
+The document concludes with a section describing HUnit's [constituent files](#constituent-files)
+and a section giving [references](#references) to further information.
+
+## Getting Started
+
+In the Haskell module where your tests will reside, import module `Test.HUnit`:
+
+```haskell
+import Test.HUnit
+```
+
+Define test cases as appropriate:
+
+```haskell
+test1 = TestCase (assertEqual "for (foo 3)," (1,2) (foo 3))
+test2 = TestCase (do (x,y) <- partA 3
+ assertEqual "for the first result of partA," 5 x
+ b <- partB y
+ assertBool ("(partB " ++ show y ++ ") failed") b)
+```
+
+Name the test cases and group them together:
+
+```haskell
+tests = TestList [TestLabel "test1" test1, TestLabel "test2" test2]
+```
+
+Run the tests as a group. At a Haskell interpreter prompt, apply the
+function `runTestTT` to the collected tests. (The `TT` suggests
+**T**ext orientation with output to the **T**erminal.)
+
+```haskell
+> runTestTT tests
+Cases: 2 Tried: 2 Errors: 0 Failures: 0
+>
+```
+
+If the tests are proving their worth, you might see:
+
+```haskell
+> runTestTT tests
+### Failure in: 0:test1
+for (foo 3),
+expected: (1,2)
+ but got: (1,3)
+Cases: 2 Tried: 2 Errors: 0 Failures: 1
+>
+```
+
+Isn't that easy?
+
+You can specify tests even more succinctly using operators and
+overloaded functions that HUnit provides:
+
+```haskell
+tests = test [ "test1" ~: "(foo 3)" ~: (1,2) ~=? (foo 3),
+ "test2" ~: do (x, y) <- partA 3
+ assertEqual "for the first result of partA," 5 x
+ partB y @? "(partB " ++ show y ++ ") failed" ]
+```
+
+Assuming the same test failures as before, you would see:
+
+```haskell
+> runTestTT tests
+### Failure in: 0:test1:(foo 3)
+expected: (1,2)
+ but got: (1,3)
+Cases: 2 Tried: 2 Errors: 0 Failures: 1
+>
+```
+
+## Writing Tests
+
+Tests are specified compositionally. [Assertions](#assertions) are
+combined to make a [test case](#test-case), and test cases are combined
+into [tests](#tests). HUnit also provides [advanced
+features](#advanced-features) for more convenient test specification.
+
+### Assertions
+
+ The basic building block of a test is an **assertion**.
+
+```haskell
+type Assertion = IO ()
+```
+
+An assertion is an `IO` computation that always produces a void result. Why is an assertion an `IO` computation? So that programs with real-world side effects can be tested. How does an assertion assert anything if it produces no useful result? The answer is that an assertion can signal failure by calling `assertFailure`.
+
+```haskell
+assertFailure :: String -> Assertion
+assertFailure msg = ioError (userError ("HUnit:" ++ msg))
+```
+
+`(assertFailure msg)` raises an exception. The string argument identifies the
+ failure. The failure message is prefixed by "`HUnit:`" to mark it as an HUnit
+ assertion failure message. The HUnit test framework interprets such an exception as
+ indicating failure of the test whose execution raised the exception. (Note: The details
+ concerning the implementation of `assertFailure` are subject to change and should
+ not be relied upon.)
+
+`assertFailure` can be used directly, but it is much more common to use it
+ indirectly through other assertion functions that conditionally assert failure.
+
+```haskell
+assertBool :: String -> Bool -> Assertion
+assertBool msg b = unless b (assertFailure msg)
+
+assertString :: String -> Assertion
+assertString s = unless (null s) (assertFailure s)
+
+assertEqual :: (Eq a, Show a) => String -> a -> a -> Assertion
+assertEqual preface expected actual =
+ unless (actual == expected) (assertFailure msg)
+ where msg = (if null preface then "" else preface ++ "\n") ++
+ "expected: " ++ show expected ++ "\n but got: " ++ show actual
+```
+
+With `assertBool` you give the assertion condition and failure message separately.
+ With `assertString` the two are combined. With `assertEqual` you provide a
+ "preface", an expected value, and an actual value; the failure message shows the two
+ unequal values and is prefixed by the preface. Additional ways to create assertions are
+ described later under [Avanced Features](#advanced-features)
+
+Since assertions are `IO` computations, they may be combined--along with other
+ `IO` computations--using `(>>=)`, `(>>)`, and the `do`
+ notation. As long as its result is of type `(IO ())`, such a combination
+ constitutes a single, collective assertion, incorporating any number of constituent
+ assertions. The important features of such a collective assertion are that it fails if
+ any of its constituent assertions is executed and fails, and that the first constituent
+ assertion to fail terminates execution of the collective assertion. Such behavior is
+ essential to specifying a test case.
+
+### Test Case
+
+A **test case** is the unit of test execution. That is, distinct test cases are
+ executed independently. The failure of one is independent of the failure of any other.
+
+A test case consists of a single, possibly collective, assertion. The possibly multiple
+ constituent assertions in a test case's collective assertion are **not** independent.
+ Their interdependence may be crucial to specifying correct operation for a test. A test
+ case may involve a series of steps, each concluding in an assertion, where each step
+ must succeed in order for the test case to continue. As another example, a test may
+ require some "set up" to be performed that must be undone ("torn down" in JUnit
+ parlance) once the test is complete. In this case, you could use Haskell's
+ `IO.bracket` function to achieve the desired effect.
+
+You can make a test case from an assertion by applying the `TestCase` constructor.
+ For example, `(TestCase (return ()))` is a test case that never
+ fails, and `(TestCase (assertEqual "for x," 3 x))`
+ is a test case that checks that the value of `x` is 3. Additional ways
+ to create test cases are described later under [Advanced Features](#advanced-eatures).
+
+### Tests
+
+As soon as you have more than one test, you'll want to name them to tell them apart. As
+ soon as you have more than several tests, you'll want to group them to process them more
+ easily. So, naming and grouping are the two keys to managing collections of tests.
+
+In tune with the "composite" design pattern [1], a
+ **test** is defined as a package of test cases. Concretely, a test is either a single
+ test case, a group of tests, or either of the first two identified by a label.
+
+```haskell
+data Test = TestCase Assertion
+ | TestList [Test]
+ | TestLabel String Test
+```
+
+There are three important features of this definition to note:
+
+
+* A `TestList` consists of a list of tests rather than a list of test cases.
+ This means that the structure of a `Test` is actually a tree. Using a
+ hierarchy helps organize tests just as it helps organize files in a file system.
+* A `TestLabel` is attached to a test rather than to a test case. This means
+ that all nodes in the test tree, not just test case (leaf) nodes, can be labeled.
+ Hierarchical naming helps organize tests just as it helps organize files in a file
+ system.
+* A `TestLabel` is separate from both `TestCase` and `TestList`.
+ This means that labeling is optional everywhere in the tree. Why is this a good
+ thing? Because of the hierarchical structure of a test, each constituent test case
+ is uniquely identified by its path in the tree, ignoring all labels. Sometimes a
+ test case's path (or perhaps its subpath below a certain node) is a perfectly
+ adequate "name" for the test case (perhaps relative to a certain node). In this
+ case, creating a label for the test case is both unnecessary and inconvenient.
+
+
+The number of test cases that a test comprises can be computed with `testCaseCount`.
+
+```haskell
+testCaseCount :: Test -> Int
+```
+
+As mentioned above, a test is identified by its **path** in the test hierarchy.
+
+```haskell
+data Node = ListItem Int | Label String
+ deriving (Eq, Show, Read)
+
+type Path = [Node] -- Node order is from test case to root.
+```
+
+Each occurrence of `TestList` gives rise to a `ListItem` and each
+ occurrence of `TestLabel` gives rise to a `Label`. The `ListItem`s
+ by themselves ensure uniqueness among test case paths, while the `Label`s allow
+ you to add mnemonic names for individual test cases and collections of them.
+
+Note that the order of nodes in a path is reversed from what you might expect: The first
+ node in the list is the one deepest in the tree. This order is a concession to
+ efficiency: It allows common path prefixes to be shared.
+
+The paths of the test cases that a test comprises can be computed with
+ `testCasePaths`. The paths are listed in the order in which the corresponding
+ test cases would be executed.
+
+```haskell
+testCasePaths :: Test -> [Path]
+```
+
+The three variants of `Test` can be constructed simply by applying
+ `TestCase`, `TestList`, and `TestLabel` to appropriate arguments.
+ Additional ways to create tests are described later under [Advanced Features](#advanced-features).
+
+The design of the type `Test` provides great conciseness, flexibility, and
+ convenience in specifying tests. Moreover, the nature of Haskell significantly augments
+ these qualities:
+
+* Combining assertions and other code to construct test cases is easy with the
+ `IO` monad.
+* Using overloaded functions and special operators (see below), specification of
+ assertions and tests is extremely compact.
+* Structuring a test tree by value, rather than by name as in JUnit, provides for more
+ convenient, flexible, and robust test suite specification. In particular, a test
+ suite can more easily be computed "on the fly" than in other test frameworks.
+* Haskell's powerful abstraction facilities provide unmatched support for test
+ refactoring.
+
+### Advanced Features
+
+HUnit provides additional features for specifying assertions and tests more conveniently
+ and concisely. These facilities make use of Haskell type classes.
+
+The following operators can be used to construct assertions.
+
+```haskell
+infix 1 @?, @=?, @?=
+
+(@?) :: (AssertionPredicable t) => t -> String -> Assertion
+pred @? msg = assertionPredicate pred >>= assertBool msg
+
+(@=?) :: (Eq a, Show a) => a -> a -> Assertion
+expected @=? actual = assertEqual "" expected actual
+
+(@?=) :: (Eq a, Show a) => a -> a -> Assertion
+actual @?= expected = assertEqual "" expected actual
+```
+
+You provide a boolean condition and failure message separately to `(@?)`, as for
+ `assertBool`, but in a different order. The `(@=?)` and `(@?=)`
+ operators provide shorthands for `assertEqual` when no preface is required. They
+ differ only in the order in which the expected and actual values are provided. (The
+ actual value--the uncertain one--goes on the "?" side of the operator.)
+
+The `(@?)` operator's first argument is something from which an assertion
+ predicate can be made, that is, its type must be `AssertionPredicable`.
+
+```haskell
+type AssertionPredicate = IO Bool
+
+class AssertionPredicable t
+ where assertionPredicate :: t -> AssertionPredicate
+
+instance AssertionPredicable Bool
+ where assertionPredicate = return
+
+instance (AssertionPredicable t) => AssertionPredicable (IO t)
+ where assertionPredicate = (>>= assertionPredicate)
+```
+
+The overloaded `assert` function in the `Assertable` type class constructs
+ an assertion.
+
+```haskell
+class Assertable t
+ where assert :: t -> Assertion
+
+instance Assertable ()
+ where assert = return
+
+instance Assertable Bool
+ where assert = assertBool ""
+
+instance (ListAssertable t) => Assertable [t]
+ where assert = listAssert
+
+instance (Assertable t) => Assertable (IO t)
+ where assert = (>>= assert)
+```
+
+The `ListAssertable` class allows `assert` to be applied to `[Char]`
+ (that is, `String`).
+
+```haskell
+class ListAssertable t
+ where listAssert :: [t] -> Assertion
+
+instance ListAssertable Char
+ where listAssert = assertString
+```
+
+With the above declarations, `(assert ())`,
+ `(assert True)`, and `(assert "")` (as well as
+ `IO` forms of these values, such as `(return ())`) are all
+ assertions that never fail, while `(assert False)` and
+ `(assert "some failure message")` (and their
+ `IO` forms) are assertions that always fail. You may define additional
+ instances for the type classes `Assertable`, `ListAssertable`, and
+ `AssertionPredicable` if that should be useful in your application.
+
+The overloaded `test` function in the `Testable` type class constructs a
+ test.
+
+```haskell
+class Testable t
+ where test :: t -> Test
+
+instance Testable Test
+ where test = id
+
+instance (Assertable t) => Testable (IO t)
+ where test = TestCase . assert
+
+instance (Testable t) => Testable [t]
+ where test = TestList . map test
+```
+
+The `test` function makes a test from either an `Assertion` (using
+ `TestCase`), a list of `Testable` items (using `TestList`), or
+ a `Test` (making no change).
+
+The following operators can be used to construct tests.
+
+```haskell
+infix 1 ~?, ~=?, ~?=
+infixr 0 ~:
+
+(~?) :: (AssertionPredicable t) => t -> String -> Test
+pred ~? msg = TestCase (pred @? msg)
+
+(~=?) :: (Eq a, Show a) => a -> a -> Test
+expected ~=? actual = TestCase (expected @=? actual)
+
+(~?=) :: (Eq a, Show a) => a -> a -> Test
+actual ~?= expected = TestCase (actual @?= expected)
+
+(~:) :: (Testable t) => String -> t -> Test
+label ~: t = TestLabel label (test t)
+```
+
+`(~?)`, `(~=?)`, and `(~?=)` each make an assertion, as for
+ `(@?)`, `(@=?)`, and `(@?=)`, respectively, and then a test case
+ from that assertion. `(~:)` attaches a label to something that is
+ `Testable`. You may define additional instances for the type class
+ `Testable` should that be useful.
+
+## Running Tests
+
+HUnit is structured to support multiple test controllers. The first
+ subsection below describes the [test execution](#test-execution)
+ characteristics common to all test controllers. The second subsection
+ describes the text-based controller that is included with HUnit.
+
+## Test Execution
+
+All test controllers share a common test execution model. They differ only in how the
+ results of test execution are shown.
+
+The execution of a test (a value of type `Test`) involves the serial execution (in
+ the `IO` monad) of its constituent test cases. The test cases are executed in a
+ depth-first, left-to-right order. During test execution, four counts of test cases are
+ maintained:
+
+```haskell
+data Counts = Counts { cases, tried, errors, failures :: Int }
+ deriving (Eq, Show, Read)
```
- * README.md -- this file
- * doc/Guide.html -- user's guide, in HTML format
- * LICENSE -- license for use of HUnit
+
+
+* `cases` is the number of test cases included in the test. This number is a
+ static property of a test and remains unchanged during test execution.
+* `tried` is the number of test cases that have been executed so far during the
+ test execution.
+* `errors` is the number of test cases whose execution ended with an unexpected
+ exception being raised. Errors indicate problems with test cases, as opposed to the
+ code under test.
+* `failures` is the number of test cases whose execution asserted failure.
+ Failures indicate problems with the code under test.
+
+
+Why is there no count for test case successes? The technical reason is that the counts
+ are maintained such that the number of test case successes is always equal to
+ `(tried - (errors + failures))`. The
+ psychosocial reason is that, with test-centered development and the expectation that
+ test failures will be few and short-lived, attention should be focused on the failures
+ rather than the successes.
+
+As test execution proceeds, three kinds of reporting event are communicated to the test
+ controller. (What the controller does in response to the reporting events depends on the
+ controller.)
+
+* *start* -- Just prior to initiation of a test case, the path of the test case
+ and the current counts (excluding the current test case) are reported.
+* *error* -- When a test case terminates with an error, the error message is
+ reported, along with the test case path and current counts (including the current
+ test case).
+* *failure* -- When a test case terminates with a failure, the failure message is
+ reported, along with the test case path and current counts (including the current
+ test case).
+
+Typically, a test controller shows *error* and *failure* reports immediately
+ but uses the *start* report merely to update an indication of overall test
+ execution progress.
+
+### Text-Based Controller
+
+A text-based test controller is included with HUnit.
+
+```haskell
+runTestText :: PutText st -> Test -> IO (Counts, st)
+```
+
+`runTestText` is generalized on a *reporting scheme* given as its first
+ argument. During execution of the test given as its second argument, the controller
+ creates a string for each reporting event and processes it according to the reporting
+ scheme. When test execution is complete, the controller returns the final counts along
+ with the final state for the reporting scheme.
+
+The strings for the three kinds of reporting event are as follows.
+
+* A *start* report is the result of the function `showCounts` applied to
+ the counts current immediately prior to initiation of the test case being started.
+* An *error* report is of the form
+ "`Error in: *path*\n*message*`",
+ where *path* is the path of the test case in error, as shown by
+ `showPath`, and *message* is a message describing the error. If the path
+ is empty, the report has the form "`Error:\n*message*`".
+* A *failure* report is of the form
+ "`Failure in: *path*\n*message*`", where
+ *path* is the path of the test case in error, as shown by
+ `showPath`, and *message* is the failure message. If the path is empty,
+ the report has the form "`Failure:\n*message*`".
+
+The function `showCounts` shows a set of counts.
+
+```haskell
+showCounts :: Counts -> String
+```
+
+The form of its result is
+`Cases: *cases* Tried: *tried* Errors: *errors* Failures: *failures*`
+where *cases*, *tried*, *errors*, and *failures* are the count values.
+
+The function `showPath` shows a test case path.
+
+```haskell
+ showPath :: Path -> String
+```
+
+The nodes in the path are reversed (so that the path reads from the root down to the test
+ case), and the representations for the nodes are joined by '`:`' separators. The
+ representation for `(ListItem *n*)` is `(show n)`. The representation
+ for `(Label *label*)` is normally *label*. However, if *label*
+ contains a colon or if `(show *label*)` is different from *label*
+ surrounded by quotation marks--that is, if any ambiguity could exist--then `(Label
+ *label*)` is represented as `(show *label*)`.
+
+HUnit includes two reporting schemes for the text-based test controller. You may define
+ others if you wish.
+
+```haskell
+putTextToHandle :: Handle -> Bool -> PutText Int
+```
+
+`putTextToHandle` writes error and failure reports, plus a report of the final
+ counts, to the given handle. Each of these reports is terminated by a newline. In
+ addition, if the given flag is `True`, it writes start reports to the handle as
+ well. A start report, however, is not terminated by a newline. Before the next report is
+ written, the start report is "erased" with an appropriate sequence of carriage return
+ and space characters. Such overwriting realizes its intended effect on terminal devices.
+
+```haskell
+putTextToShowS :: PutText ShowS
+```
+
+`putTextToShowS` ignores start reports and simply accumulates error and failure
+ reports, terminating them with newlines. The accumulated reports are returned (as the
+ second element of the pair returned by `runTestText`) as a `ShowS`
+ function (that is, one with type `(String -> String)`) whose
+ first argument is a string to be appended to the accumulated report lines.
+
+HUnit provides a shorthand for the most common use of the text-based test controller.
+
+```haskell
+runTestTT :: Test -> IO Counts
```
-See the user's guide for more information.
+`runTestTT` invokes `runTestText`, specifying `(putTextToHandle stderr
+True)` for the reporting scheme, and returns the final counts from the
+test execution.
-## Changes
+## References
-### 1.3.1.0
+* [1] Gamma, E., et al. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA, 1995: The classic book describing design patterns in an object-oriented context.
-- add minimal support for GHC 8.0
+* [junit.org](http://www.junit.org): Web page for JUnit, the tool after which HUnit is modeled.
-### 1.3.0.0
+* [http://junit.sourceforge.net/doc/testinfected/testing.htm](http://junit.sou…: A good introduction to test-first development and the use of JUnit.
-- removed support for old compilers
+* [http://junit.sourceforge.net/doc/cookstour/cookstour.htm](http://junit.sour…: A description of the internal structure of JUnit. Makes for an interesting comparison between JUnit and HUnit.
-- add source locations for failing assertions (GHC >= 7.10.2 only)
+The HUnit software and this guide were written by Dean Herington [heringto@cs.unc.edu](mailto:heringto@cs.unc.edu)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.1.0/doc/Guide.html new/HUnit-1.3.1.1/doc/Guide.html
--- old/HUnit-1.3.1.0/doc/Guide.html 2016-01-11 10:04:20.000000000 +0100
+++ new/HUnit-1.3.1.1/doc/Guide.html 1970-01-01 01:00:00.000000000 +0100
@@ -1,539 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" xml:lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="Author" content="Dean Herington"/>
- <meta name="KeyWords" content="HUnit, unit testing, test-first development, Haskell, JUnit"/>
- <title>HUnit 1.0 User's Guide</title>
- </head>
- <body>
-
- <h1>HUnit 1.2 User's Guide</h1>
-
- <p>HUnit is a unit testing framework for Haskell, inspired by the JUnit tool for Java. This
- guide describes how to use HUnit, assuming you are familiar with Haskell, though not
- necessarily with JUnit. You can obtain HUnit, including this guide, at <a
- href="http://code.haskell.org/HUnit">http://code.haskell.org/HUnit</a>.</p>
-
- <h2>Introduction</h2>
-
- <p>A test-centered methodology for software development is most effective when tests are
- easy to create, change, and execute. The <a href="http://www.junit.org">JUnit</a> tool
- pioneered support for test-first development in <a href="http://java.sun.com">Java</a>.
- HUnit is an adaptation of JUnit to Haskell, a general-purpose, purely functional
- programming language. (To learn more about Haskell, see <a href="http://www.haskell.org"
- >http://www.haskell.org</a>.)</p>
-
- <p>With HUnit, as with JUnit, you can easily create tests, name them, group them into
- suites, and execute them, with the framework checking the results automatically. Test
- specification in HUnit is even more concise and flexible than in JUnit, thanks to the
- nature of the Haskell language. HUnit currently includes only a text-based test
- controller, but the framework is designed for easy extension. (Would anyone care to
- write a graphical test controller for HUnit?)</p>
-
- <p>The next section helps you get started using HUnit in simple ways. Subsequent sections
- give details on <a href="#WritingTests">writing tests</a> and <a href="#RunningTests"
- >running tests</a>. The document concludes with a section describing HUnit's <a
- href="#ConstituentFiles">constituent files</a> and a section giving <a
- href="#References">references</a> to further information.</p>
-
- <h2 id="GettingStarted">Getting Started</h2>
-
- <p>In the Haskell module where your tests will reside, import module <tt>Test.HUnit</tt>:</p>
- <pre>
- import Test.HUnit
-</pre>
- <p>Define test cases as appropriate:</p>
- <pre>
- test1 = TestCase (assertEqual "for (foo 3)," (1,2) (foo 3))
- test2 = TestCase (do (x,y) <- partA 3
- assertEqual "for the first result of partA," 5 x
- b <- partB y
- assertBool ("(partB " ++ show y ++ ") failed") b)
-</pre>
- <p>Name the test cases and group them together:</p>
- <pre>
- tests = TestList [TestLabel "test1" test1, TestLabel "test2" test2]
-</pre>
- <p>Run the tests as a group. At a Haskell interpreter prompt, apply the function
- <tt>runTestTT</tt> to the collected tests. (The "<tt>TT</tt>" suggests
- <strong>T</strong>ext orientation with output to the <strong>T</strong>erminal.)</p>
- <pre>
- > runTestTT tests
- Cases: 2 Tried: 2 Errors: 0 Failures: 0
- >
-</pre>
- <p>If the tests are proving their worth, you might see:</p>
- <pre>
- > runTestTT tests
- ### Failure in: 0:test1
- for (foo 3),
- expected: (1,2)
- but got: (1,3)
- Cases: 2 Tried: 2 Errors: 0 Failures: 1
- >
-</pre>
- <p>Isn't that easy?</p>
-
- <p>You can specify tests even more succinctly using operators and overloaded functions that
- HUnit provides:</p>
- <pre>
- tests = test [ "test1" ~: "(foo 3)" ~: (1,2) ~=? (foo 3),
- "test2" ~: do (x, y) <- partA 3
- assertEqual "for the first result of partA," 5 x
- partB y @? "(partB " ++ show y ++ ") failed" ]
-</pre>
- <p>Assuming the same test failures as before, you would see:</p>
- <pre>
- > runTestTT tests
- ### Failure in: 0:test1:(foo 3)
- expected: (1,2)
- but got: (1,3)
- Cases: 2 Tried: 2 Errors: 0 Failures: 1
- >
-</pre>
-
- <h2 id="WritingTests">Writing Tests</h2>
-
- <p>Tests are specified compositionally. <a href="#Assertions">Assertions</a> are combined to
- make a <a href="#TestCase">test case</a>, and test cases are combined into <a
- href="#Tests">tests</a>. HUnit also provides <a href="#AdvancedFeatures">advanced
- features</a> for more convenient test specification.</p>
-
- <h3 id="Assertions">Assertions</h3>
-
- <p>The basic building block of a test is an <b>assertion</b>.</p>
- <pre>
- type Assertion = IO ()
-</pre>
- <p>An assertion is an <tt>IO</tt> computation that always produces a void result. Why is an
- assertion an <tt>IO</tt> computation? So that programs with real-world side effects can
- be tested. How does an assertion assert anything if it produces no useful result? The
- answer is that an assertion can signal failure by calling <tt>assertFailure</tt>.</p>
- <pre>
- assertFailure :: String -> Assertion
- assertFailure msg = ioError (userError ("HUnit:" ++ msg))
-</pre>
- <p><tt>(assertFailure msg)</tt> raises an exception. The string argument identifies the
- failure. The failure message is prefixed by "<tt>HUnit:</tt>" to mark it as an HUnit
- assertion failure message. The HUnit test framework interprets such an exception as
- indicating failure of the test whose execution raised the exception. (Note: The details
- concerning the implementation of <tt>assertFailure</tt> are subject to change and should
- not be relied upon.)</p>
-
- <p><tt>assertFailure</tt> can be used directly, but it is much more common to use it
- indirectly through other assertion functions that conditionally assert failure.</p>
- <pre>
- assertBool :: String -> Bool -> Assertion
- assertBool msg b = unless b (assertFailure msg)
-
- assertString :: String -> Assertion
- assertString s = unless (null s) (assertFailure s)
-
- assertEqual :: (Eq a, Show a) => String -> a -> a -> Assertion
- assertEqual preface expected actual =
- unless (actual == expected) (assertFailure msg)
- where msg = (if null preface then "" else preface ++ "\n") ++
- "expected: " ++ show expected ++ "\n but got: " ++ show actual
-</pre>
- <p>With <tt>assertBool</tt> you give the assertion condition and failure message separately.
- With <tt>assertString</tt> the two are combined. With <tt>assertEqual</tt> you provide a
- "preface", an expected value, and an actual value; the failure message shows the two
- unequal values and is prefixed by the preface. Additional ways to create assertions are
- described later under <a href="#AdvancedFeatures">Advanced Features</a>.</p>
-
- <p>Since assertions are <tt>IO</tt> computations, they may be combined--along with other
- <tt>IO</tt> computations--using <tt>(>>=)</tt>, <tt>(>>)</tt>, and the <tt>do</tt>
- notation. As long as its result is of type <tt>(IO ())</tt>, such a combination
- constitutes a single, collective assertion, incorporating any number of constituent
- assertions. The important features of such a collective assertion are that it fails if
- any of its constituent assertions is executed and fails, and that the first constituent
- assertion to fail terminates execution of the collective assertion. Such behavior is
- essential to specifying a test case.</p>
-
- <h3 id="TestCase">Test Case</h3>
-
- <p>A <b>test case</b> is the unit of test execution. That is, distinct test cases are
- executed independently. The failure of one is independent of the failure of any other.</p>
-
- <p>A test case consists of a single, possibly collective, assertion. The possibly multiple
- constituent assertions in a test case's collective assertion are <b>not</b> independent.
- Their interdependence may be crucial to specifying correct operation for a test. A test
- case may involve a series of steps, each concluding in an assertion, where each step
- must succeed in order for the test case to continue. As another example, a test may
- require some "set up" to be performed that must be undone ("torn down" in JUnit
- parlance) once the test is complete. In this case, you could use Haskell's
- <tt>IO.bracket</tt> function to achieve the desired effect.</p>
-
- <p>You can make a test case from an assertion by applying the <tt>TestCase</tt> constructor.
- For example, <tt>(TestCase (return ()))</tt> is a test case that never
- fails, and
- <tt>(TestCase (assertEqual "for x," 3 x))</tt>
- is a test case that checks that the value of <tt>x</tt> is 3. Additional ways
- to create test cases are described later under <a href="#AdvancedFeatures">Advanced
- Features</a>.</p>
-
- <h3 id="Tests">Tests</h3>
-
- <p>As soon as you have more than one test, you'll want to name them to tell them apart. As
- soon as you have more than several tests, you'll want to group them to process them more
- easily. So, naming and grouping are the two keys to managing collections of tests.</p>
-
- <p>In tune with the "composite" design pattern [<a href="#DesignPatterns">1</a>], a
- <b>test</b> is defined as a package of test cases. Concretely, a test is either a single
- test case, a group of tests, or either of the first two identified by a label.</p>
- <pre>
- data Test = TestCase Assertion
- | TestList [Test]
- | TestLabel String Test
-</pre>
- <p>There are three important features of this definition to note:</p>
- <ul>
- <li>A <tt>TestList</tt> consists of a list of tests rather than a list of test cases.
- This means that the structure of a <tt>Test</tt> is actually a tree. Using a
- hierarchy helps organize tests just as it helps organize files in a file system.</li>
- <li>A <tt>TestLabel</tt> is attached to a test rather than to a test case. This means
- that all nodes in the test tree, not just test case (leaf) nodes, can be labeled.
- Hierarchical naming helps organize tests just as it helps organize files in a file
- system.</li>
- <li>A <tt>TestLabel</tt> is separate from both <tt>TestCase</tt> and <tt>TestList</tt>.
- This means that labeling is optional everywhere in the tree. Why is this a good
- thing? Because of the hierarchical structure of a test, each constituent test case
- is uniquely identified by its path in the tree, ignoring all labels. Sometimes a
- test case's path (or perhaps its subpath below a certain node) is a perfectly
- adequate "name" for the test case (perhaps relative to a certain node). In this
- case, creating a label for the test case is both unnecessary and inconvenient.</li>
- </ul>
- <p>The number of test cases that a test comprises can be computed with
- <tt>testCaseCount</tt>.</p>
- <pre>
- testCaseCount :: Test -> Int
-</pre>
- <p>As mentioned above, a test is identified by its <b>path</b> in the test hierarchy.</p>
- <pre>
- data Node = ListItem Int | Label String
- deriving (Eq, Show, Read)
-
- type Path = [Node] -- Node order is from test case to root.
-</pre>
- <p>Each occurrence of <tt>TestList</tt> gives rise to a <tt>ListItem</tt> and each
- occurrence of <tt>TestLabel</tt> gives rise to a <tt>Label</tt>. The <tt>ListItem</tt>s
- by themselves ensure uniqueness among test case paths, while the <tt>Label</tt>s allow
- you to add mnemonic names for individual test cases and collections of them.</p>
-
- <p>Note that the order of nodes in a path is reversed from what you might expect: The first
- node in the list is the one deepest in the tree. This order is a concession to
- efficiency: It allows common path prefixes to be shared.</p>
-
- <p>The paths of the test cases that a test comprises can be computed with
- <tt>testCasePaths</tt>. The paths are listed in the order in which the corresponding
- test cases would be executed.</p>
- <pre>
- testCasePaths :: Test -> [Path]
-</pre>
-
- <p>The three variants of <tt>Test</tt> can be constructed simply by applying
- <tt>TestCase</tt>, <tt>TestList</tt>, and <tt>TestLabel</tt> to appropriate arguments.
- Additional ways to create tests are described later under <a href="#AdvancedFeatures"
- >Advanced Features</a>.</p>
-
- <p>The design of the type <tt>Test</tt> provides great conciseness, flexibility, and
- convenience in specifying tests. Moreover, the nature of Haskell significantly augments
- these qualities:</p>
- <ul>
- <li>Combining assertions and other code to construct test cases is easy with the
- <tt>IO</tt> monad.</li>
- <li>Using overloaded functions and special operators (see below), specification of
- assertions and tests is extremely compact.</li>
- <li>Structuring a test tree by value, rather than by name as in JUnit, provides for more
- convenient, flexible, and robust test suite specification. In particular, a test
- suite can more easily be computed "on the fly" than in other test frameworks.</li>
- <li>Haskell's powerful abstraction facilities provide unmatched support for test
- refactoring.</li>
- </ul>
-
- <h3 id="AdvancedFeatures">Advanced Features</h3>
-
- <p>HUnit provides additional features for specifying assertions and tests more conveniently
- and concisely. These facilities make use of Haskell type classes.</p>
-
- <p>The following operators can be used to construct assertions.</p>
- <pre>
- infix 1 @?, @=?, @?=
-
- (@?) :: (AssertionPredicable t) => t -> String -> Assertion
- pred @? msg = assertionPredicate pred >>= assertBool msg
-
- (@=?) :: (Eq a, Show a) => a -> a -> Assertion
- expected @=? actual = assertEqual "" expected actual
-
- (@?=) :: (Eq a, Show a) => a -> a -> Assertion
- actual @?= expected = assertEqual "" expected actual
-</pre>
- <p>You provide a boolean condition and failure message separately to <tt>(@?)</tt>, as for
- <tt>assertBool</tt>, but in a different order. The <tt>(@=?)</tt> and <tt>(@?=)</tt>
- operators provide shorthands for <tt>assertEqual</tt> when no preface is required. They
- differ only in the order in which the expected and actual values are provided. (The
- actual value--the uncertain one--goes on the "?" side of the operator.)</p>
-
- <p>The <tt>(@?)</tt> operator's first argument is something from which an assertion
- predicate can be made, that is, its type must be <tt>AssertionPredicable</tt>.</p>
- <pre>
- type AssertionPredicate = IO Bool
-
- class AssertionPredicable t
- where assertionPredicate :: t -> AssertionPredicate
-
- instance AssertionPredicable Bool
- where assertionPredicate = return
-
- instance (AssertionPredicable t) => AssertionPredicable (IO t)
- where assertionPredicate = (>>= assertionPredicate)
-</pre>
- <p>The overloaded <tt>assert</tt> function in the <tt>Assertable</tt> type class constructs
- an assertion.</p>
- <pre>
- class Assertable t
- where assert :: t -> Assertion
-
- instance Assertable ()
- where assert = return
-
- instance Assertable Bool
- where assert = assertBool ""
-
- instance (ListAssertable t) => Assertable [t]
- where assert = listAssert
-
- instance (Assertable t) => Assertable (IO t)
- where assert = (>>= assert)
-</pre>
- <p>The <tt>ListAssertable</tt> class allows <tt>assert</tt> to be applied to <tt>[Char]</tt>
- (that is, <tt>String</tt>).</p>
- <pre>
- class ListAssertable t
- where listAssert :: [t] -> Assertion
-
- instance ListAssertable Char
- where listAssert = assertString
-</pre>
- <p>With the above declarations, <tt>(assert ())</tt>,
- <tt>(assert True)</tt>, and <tt>(assert "")</tt> (as well as
- <tt>IO</tt> forms of these values, such as <tt>(return ())</tt>) are all
- assertions that never fail, while <tt>(assert False)</tt> and
- <tt>(assert "some failure message")</tt> (and their
- <tt>IO</tt> forms) are assertions that always fail. You may define additional
- instances for the type classes <tt>Assertable</tt>, <tt>ListAssertable</tt>, and
- <tt>AssertionPredicable</tt> if that should be useful in your application.</p>
-
- <p>The overloaded <tt>test</tt> function in the <tt>Testable</tt> type class constructs a
- test.</p>
- <pre>
- class Testable t
- where test :: t -> Test
-
- instance Testable Test
- where test = id
-
- instance (Assertable t) => Testable (IO t)
- where test = TestCase . assert
-
- instance (Testable t) => Testable [t]
- where test = TestList . map test
-</pre>
- <p>The <tt>test</tt> function makes a test from either an <tt>Assertion</tt> (using
- <tt>TestCase</tt>), a list of <tt>Testable</tt> items (using <tt>TestList</tt>), or
- a <tt>Test</tt> (making no change).</p>
-
- <p>The following operators can be used to construct tests.</p>
- <pre>
- infix 1 ~?, ~=?, ~?=
- infixr 0 ~:
-
- (~?) :: (AssertionPredicable t) => t -> String -> Test
- pred ~? msg = TestCase (pred @? msg)
-
- (~=?) :: (Eq a, Show a) => a -> a -> Test
- expected ~=? actual = TestCase (expected @=? actual)
-
- (~?=) :: (Eq a, Show a) => a -> a -> Test
- actual ~?= expected = TestCase (actual @?= expected)
-
- (~:) :: (Testable t) => String -> t -> Test
- label ~: t = TestLabel label (test t)
-</pre>
- <p><tt>(~?)</tt>, <tt>(~=?)</tt>, and <tt>(~?=)</tt> each make an assertion, as for
- <tt>(@?)</tt>, <tt>(@=?)</tt>, and <tt>(@?=)</tt>, respectively, and then a test case
- from that assertion. <tt>(~:)</tt> attaches a label to something that is
- <tt>Testable</tt>. You may define additional instances for the type class
- <tt>Testable</tt> should that be useful.</p>
-
- <h2 id="RunningTests">Running Tests</h2>
-
- <p>HUnit is structured to support multiple test controllers. The first subsection below
- describes the <a href="#TestExecution">test execution</a> characteristics common to all
- test controllers. The second subsection describes the <a href="#Text-BasedController"
- >text-based controller</a> that is included with HUnit.</p>
-
- <h3 id="TestExecution">Test Execution</h3>
-
- <p>All test controllers share a common test execution model. They differ only in how the
- results of test execution are shown.</p>
-
- <p>The execution of a test (a value of type <tt>Test</tt>) involves the serial execution (in
- the <tt>IO</tt> monad) of its constituent test cases. The test cases are executed in a
- depth-first, left-to-right order. During test execution, four counts of test cases are
- maintained:</p>
- <pre>
- data Counts = Counts { cases, tried, errors, failures :: Int }
- deriving (Eq, Show, Read)
-</pre>
- <ul>
- <li><tt>cases</tt> is the number of test cases included in the test. This number is a
- static property of a test and remains unchanged during test execution.</li>
- <li><tt>tried</tt> is the number of test cases that have been executed so far during the
- test execution.</li>
- <li><tt>errors</tt> is the number of test cases whose execution ended with an unexpected
- exception being raised. Errors indicate problems with test cases, as opposed to the
- code under test.</li>
- <li><tt>failures</tt> is the number of test cases whose execution asserted failure.
- Failures indicate problems with the code under test.</li>
- </ul>
- <p>Why is there no count for test case successes? The technical reason is that the counts
- are maintained such that the number of test case successes is always equal to
- <tt>(tried - (errors + failures))</tt>. The
- psychosocial reason is that, with test-centered development and the expectation that
- test failures will be few and short-lived, attention should be focused on the failures
- rather than the successes.</p>
-
- <p>As test execution proceeds, three kinds of reporting event are communicated to the test
- controller. (What the controller does in response to the reporting events depends on the
- controller.)</p>
- <ul>
- <li><i>start</i> -- Just prior to initiation of a test case, the path of the test case
- and the current counts (excluding the current test case) are reported.</li>
- <li><i>error</i> -- When a test case terminates with an error, the error message is
- reported, along with the test case path and current counts (including the current
- test case).</li>
- <li><i>failure</i> -- When a test case terminates with a failure, the failure message is
- reported, along with the test case path and current counts (including the current
- test case).</li>
- </ul>
- <p>Typically, a test controller shows <i>error</i> and <i>failure</i> reports immediately
- but uses the <i>start</i> report merely to update an indication of overall test
- execution progress.</p>
-
- <h3 id="Text-BasedController">Text-Based Controller</h3>
-
- <p>A text-based test controller is included with HUnit.</p>
- <pre>
- runTestText :: PutText st -> Test -> IO (Counts, st)
-</pre>
- <p><tt>runTestText</tt> is generalized on a <i>reporting scheme</i> given as its first
- argument. During execution of the test given as its second argument, the controller
- creates a string for each reporting event and processes it according to the reporting
- scheme. When test execution is complete, the controller returns the final counts along
- with the final state for the reporting scheme.</p>
-
- <p>The strings for the three kinds of reporting event are as follows.</p>
- <ul>
- <li>A <i>start</i> report is the result of the function <tt>showCounts</tt> applied to
- the counts current immediately prior to initiation of the test case being started.</li>
- <li>An <i>error</i> report is of the form
- "<tt>Error in: <i>path</i>\n<i>message</i></tt>",
- where <i>path</i> is the path of the test case in error, as shown by
- <tt>showPath</tt>, and <i>message</i> is a message describing the error. If the path
- is empty, the report has the form "<tt>Error:\n<i>message</i></tt>".</li>
- <li>A <i>failure</i> report is of the form
- "<tt>Failure in: <i>path</i>\n<i>message</i></tt>", where
- <i>path</i> is the path of the test case in error, as shown by
- <tt>showPath</tt>, and <i>message</i> is the failure message. If the path is empty,
- the report has the form "<tt>Failure:\n<i>message</i></tt>".</li>
- </ul>
-
- <p>The function <tt>showCounts</tt> shows a set of counts.</p>
- <pre>
- showCounts :: Counts -> String
-</pre>
- <p>The form of its result is
- "<tt>Cases: <i>cases</i> Tried: <i>tried</i> Errors: <i>errors</i> Failures: <i>failures</i></tt>"
- where <i>cases</i>, <i>tried</i>, <i>errors</i>, and <i>failures</i> are the count
- values.</p>
-
- <p>The function <tt>showPath</tt> shows a test case path.</p>
- <pre>
- showPath :: Path -> String
-</pre>
- <p>The nodes in the path are reversed (so that the path reads from the root down to the test
- case), and the representations for the nodes are joined by '<tt>:</tt>' separators. The
- representation for <tt>(ListItem <i>n</i>)</tt> is <tt>(show n)</tt>. The representation
- for <tt>(Label <i>label</i>)</tt> is normally <i>label</i>. However, if <i>label</i>
- contains a colon or if <tt>(show <i>label</i>)</tt> is different from <i>label</i>
- surrounded by quotation marks--that is, if any ambiguity could exist--then <tt>(Label
- <i>label</i>)</tt> is represented as <tt>(show <i>label</i>)</tt>.</p>
-
- <p>HUnit includes two reporting schemes for the text-based test controller. You may define
- others if you wish.</p>
- <pre>
- putTextToHandle :: Handle -> Bool -> PutText Int
-</pre>
- <p><tt>putTextToHandle</tt> writes error and failure reports, plus a report of the final
- counts, to the given handle. Each of these reports is terminated by a newline. In
- addition, if the given flag is <tt>True</tt>, it writes start reports to the handle as
- well. A start report, however, is not terminated by a newline. Before the next report is
- written, the start report is "erased" with an appropriate sequence of carriage return
- and space characters. Such overwriting realizes its intended effect on terminal devices.</p>
- <pre>
- putTextToShowS :: PutText ShowS
-</pre>
- <p><tt>putTextToShowS</tt> ignores start reports and simply accumulates error and failure
- reports, terminating them with newlines. The accumulated reports are returned (as the
- second element of the pair returned by <tt>runTestText</tt>) as a <tt>ShowS</tt>
- function (that is, one with type <tt>(String -> String)</tt>) whose
- first argument is a string to be appended to the accumulated report lines.</p>
-
- <p>HUnit provides a shorthand for the most common use of the text-based test controller.</p>
- <pre>
- runTestTT :: Test -> IO Counts
-</pre>
- <p><tt>runTestTT</tt> invokes <tt>runTestText</tt>, specifying <tt>(putTextToHandle stderr
- True)</tt> for the reporting scheme, and returns the final counts from the test
- execution.</p>
-
-
- <h2 id="References">References</h2>
-
- <dl>
-
- <dt id="DesignPatterns">[1] Gamma, E., et al. Design Patterns: Elements of Reusable
- Object-Oriented Software, Addison-Wesley, Reading, MA, 1995.</dt>
- <dd>The classic book describing design patterns in an object-oriented context.</dd>
-
- <dt>
- <a href="http://www.junit.org">http://www.junit.org</a>
- </dt>
- <dd>Web page for JUnit, the tool after which HUnit is modeled.</dd>
-
- <dt>
- <a href="http://junit.sourceforge.net/doc/testinfected/testing.htm">
- http://junit.sourceforge.net/doc/testinfected/testing.htm</a>
- </dt>
- <dd>A good introduction to test-first development and the use of JUnit.</dd>
-
- <dt>
- <a href="http://junit.sourceforge.net/doc/cookstour/cookstour.htm">
- http://junit.sourceforge.net/doc/cookstour/cookstour.htm</a>
- </dt>
- <dd>A description of the internal structure of JUnit. Makes for an interesting
- comparison between JUnit and HUnit.</dd>
-
- </dl>
-
- <hr/>
-
- <p>The HUnit software and this guide were written by Dean Herington (<a
- href="mailto:heringto@cs.unc.edu">heringto(a)cs.unc.edu</a>).</p>
- </body>
-</html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.1.0/examples/Example.hs new/HUnit-1.3.1.1/examples/Example.hs
--- old/HUnit-1.3.1.0/examples/Example.hs 2016-01-11 10:04:20.000000000 +0100
+++ new/HUnit-1.3.1.1/examples/Example.hs 2016-01-19 17:16:50.000000000 +0100
@@ -1,9 +1,9 @@
-- Example.hs -- Examples from HUnit user's guide
--
-- For more examples, check out the tests directory. It contains unit tests
--- for HUnit.
+-- for HUnit.
-module Main where
+module Example where
import Test.HUnit
@@ -36,5 +36,5 @@
partB y @? "(partB " ++ show y ++ ") failed" ]
main :: IO Counts
-main = do runTestTT tests
+main = do _ <- runTestTT tests
runTestTT tests'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.1.0/prologue.txt new/HUnit-1.3.1.1/prologue.txt
--- old/HUnit-1.3.1.0/prologue.txt 2016-01-11 10:04:20.000000000 +0100
+++ new/HUnit-1.3.1.1/prologue.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-HUnit is a unit testing framework for Haskell, inspired by the JUnit
-tool for Java, see: <http://www.junit.org>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.1.0/tests/HUnitTests.hs new/HUnit-1.3.1.1/tests/HUnitTests.hs
--- old/HUnit-1.3.1.0/tests/HUnitTests.hs 2016-01-11 10:04:20.000000000 +0100
+++ new/HUnit-1.3.1.1/tests/HUnitTests.hs 2016-01-19 17:16:50.000000000 +0100
@@ -10,6 +10,7 @@
import HUnitTestBase
import HUnitTestExtended
import TerminalTest
+import Example ()
main :: IO ()
main = do
1
0
Hello community,
here is the log from the commit of package ghc-http2 for openSUSE:Factory checked in at 2016-01-28 17:23:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-http2 (Old)
and /work/SRC/openSUSE:Factory/.ghc-http2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-http2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-http2/ghc-http2.changes 2016-01-07 00:25:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-http2.new/ghc-http2.changes 2016-01-28 17:24:44.000000000 +0100
@@ -1,0 +2,18 @@
+Fri Jan 22 10:05:24 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 1.4.4
+* Fixing a bug of reverse index.
+
+-------------------------------------------------------------------
+Wed Jan 20 09:47:10 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 1.4.3
+* Using proper baseDeficit for deletion.
+* Test files are now self-contained.
+* The reverse indices for static and dynamic are combined for performance.
+* Providing dequeueSTM, isEmpty and isEmptySTM. Users can compose their own control
+ queue with dequeueSTM and isEmptySTM.
+* Removing enqueueControl: it appeared that PriorityTree is not suitable for
+ control frames.
+
+-------------------------------------------------------------------
Old:
----
http2-1.3.1.tar.gz
New:
----
http2-1.4.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-http2.spec ++++++
--- /var/tmp/diff_new_pack.u08V0N/_old 2016-01-28 17:24:45.000000000 +0100
+++ /var/tmp/diff_new_pack.u08V0N/_new 2016-01-28 17:24:45.000000000 +0100
@@ -20,7 +20,7 @@
%bcond_with tests
Name: ghc-http2
-Version: 1.3.1
+Version: 1.4.4
Release: 0
Summary: HTTP/2.0 library including frames and HPACK
Group: System/Libraries
++++++ http2-1.3.1.tar.gz -> http2-1.4.4.tar.gz ++++++
++++ 1522626 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package ghc-http-client for openSUSE:Factory checked in at 2016-01-28 17:23:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-http-client (Old)
and /work/SRC/openSUSE:Factory/.ghc-http-client.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-http-client"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-http-client/ghc-http-client.changes 2015-12-29 12:59:57.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-http-client.new/ghc-http-client.changes 2016-01-28 17:24:43.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Jan 22 08:59:09 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.4.27
+* Enable managerModifyRequest to modify checkStatus
+
+-------------------------------------------------------------------
Old:
----
http-client-0.4.26.2.tar.gz
New:
----
http-client-0.4.27.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-http-client.spec ++++++
--- /var/tmp/diff_new_pack.HZxxgF/_old 2016-01-28 17:24:44.000000000 +0100
+++ /var/tmp/diff_new_pack.HZxxgF/_new 2016-01-28 17:24:44.000000000 +0100
@@ -21,7 +21,7 @@
%bcond_with tests
Name: ghc-http-client
-Version: 0.4.26.2
+Version: 0.4.27
Release: 0
Summary: HTTP client engine, intended as a base layer
License: MIT
++++++ http-client-0.4.26.2.tar.gz -> http-client-0.4.27.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http-client-0.4.26.2/ChangeLog.md new/http-client-0.4.27/ChangeLog.md
--- old/http-client-0.4.26.2/ChangeLog.md 2015-12-22 18:46:34.000000000 +0100
+++ new/http-client-0.4.27/ChangeLog.md 2016-01-21 08:59:31.000000000 +0100
@@ -1,3 +1,7 @@
+## 0.4.27
+
+* Enable managerModifyRequest to modify checkStatus [#179](https://github.com/snoyberg/http-client/pull/179)
+
## 0.4.26.2
* Fix compilation for GHC 7.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http-client-0.4.26.2/Network/HTTP/Client/Core.hs new/http-client-0.4.27/Network/HTTP/Client/Core.hs
--- old/http-client-0.4.26.2/Network/HTTP/Client/Core.hs 2015-12-22 18:46:34.000000000 +0100
+++ new/http-client-0.4.27/Network/HTTP/Client/Core.hs 2016-01-21 08:59:31.000000000 +0100
@@ -6,10 +6,12 @@
, httpLbs
, httpNoBody
, httpRaw
+ , httpRaw'
, responseOpen
, responseClose
, applyCheckStatus
, httpRedirect
+ , httpRedirect'
) where
#if !MIN_VERSION_base(4,6,0)
@@ -22,6 +24,7 @@
import Network.HTTP.Client.Request
import Network.HTTP.Client.Response
import Network.HTTP.Client.Cookies
+import Data.Maybe (fromMaybe, isJust)
import Data.Time
import Control.Exception
import qualified Data.ByteString as S
@@ -69,12 +72,22 @@
httpNoBody :: Request -> Manager -> IO (Response ())
httpNoBody req man = withResponse req man $ return . void
+
-- | Get a 'Response' without any redirect following.
httpRaw
:: Request
-> Manager
-> IO (Response BodyReader)
-httpRaw req0 m = do
+httpRaw = fmap (fmap snd) . httpRaw'
+
+-- | Get a 'Response' without any redirect following.
+--
+-- This extended version of 'httpRaw' also returns the Request potentially modified by @managerModifyRequest@.
+httpRaw'
+ :: Request
+ -> Manager
+ -> IO (Request, Response BodyReader)
+httpRaw' req0 m = do
req' <- mModifyRequest m $ mSetProxy m req0
(req, cookie_jar') <- case cookieJar req' of
Just cj -> do
@@ -100,7 +113,8 @@
-- Connection was reused, and might have been closed. Try again
(Left e, Reused) | mRetryableException m e -> do
connRelease DontReuse
- responseOpen req m
+ res <- responseOpen req m
+ return (req, res)
-- Not reused, or a non-retry, so this is a real exception
(Left e, _) -> throwIO e
-- Everything went ok, so the connection is good. If any exceptions get
@@ -109,8 +123,8 @@
Just _ -> do
now' <- getCurrentTime
let (cookie_jar, _) = updateCookieJar res req now' cookie_jar'
- return $ res {responseCookieJar = cookie_jar}
- Nothing -> return res
+ return (req, res {responseCookieJar = cookie_jar})
+ Nothing -> return (req, res)
where
responseTimeout' req
@@ -150,21 +164,21 @@
-- Since 0.1.0
responseOpen :: Request -> Manager -> IO (Response BodyReader)
responseOpen req0 manager = handle addTlsHostPort $ mWrapIOException manager $ do
- res <-
+ (req, res) <-
if redirectCount req0 == 0
- then httpRaw req0 manager
+ then httpRaw' req0 manager
else go (redirectCount req0) req0
- maybe (return res) throwIO =<< applyCheckStatus req0 (checkStatus req0) res
+ maybe (return res) throwIO =<< applyCheckStatus req (checkStatus req) res
where
addTlsHostPort (TlsException e) = throwIO $ TlsExceptionHostPort e (host req0) (port req0)
addTlsHostPort e = throwIO e
- go count req' = httpRedirect
+ go count req' = httpRedirect'
count
(\req -> do
- res <- httpRaw req manager
- let mreq = getRedirectedRequest req (responseHeaders res) (responseCookieJar res) (statusCode (responseStatus res))
- return (res, mreq))
+ (req'', res) <- httpRaw' req manager
+ let mreq = getRedirectedRequest req'' (responseHeaders res) (responseCookieJar res) (statusCode (responseStatus res))
+ return (res, fromMaybe req'' mreq, isJust mreq))
req'
-- | Apply 'Request'\'s 'checkStatus' and return resulting exception if any.
@@ -202,34 +216,49 @@
toStrict' = S.concat . L.toChunks
#endif
--- | Redirect loop
+-- | Redirect loop.
httpRedirect
:: Int -- ^ 'redirectCount'
-> (Request -> IO (Response BodyReader, Maybe Request)) -- ^ function which performs a request and returns a response, and possibly another request if there's a redirect.
-> Request
-> IO (Response BodyReader)
-httpRedirect count0 http' req0 = go count0 req0 []
+httpRedirect count0 http0 req0 = fmap snd $ httpRedirect' count0 http' req0
+ where
+ -- adapt callback API
+ http' req' = do
+ (res, mbReq) <- http0 req'
+ return (res, fromMaybe req0 mbReq, isJust mbReq)
+
+-- | Redirect loop.
+--
+-- This extended version of 'httpRaw' also returns the Request potentially modified by @managerModifyRequest@.
+httpRedirect'
+ :: Int -- ^ 'redirectCount'
+ -> (Request -> IO (Response BodyReader, Request, Bool)) -- ^ function which performs a request and returns a response, the potentially modified request, and a Bool indicating if there was a redirect.
+ -> Request
+ -> IO (Request, Response BodyReader)
+httpRedirect' count0 http' req0 = go count0 req0 []
where
go count _ ress | count < 0 = throwIO $ TooManyRedirects ress
go count req' ress = do
- (res, mreq) <- http' req'
- case mreq of
- Just req -> do
- -- Allow the original connection to return to the
- -- connection pool immediately by flushing the body.
- -- If the response body is too large, don't flush, but
- -- instead just close the connection.
- let maxFlush = 1024
- lbs <- brReadSome (responseBody res) maxFlush
- -- The connection may already be closed, e.g.
- -- when using withResponseHistory. See
- -- https://github.com/snoyberg/http-client/issues/169
- `catch` \(_ :: ConnectionClosed) -> return L.empty
- responseClose res
-
- -- And now perform the actual redirect
- go (count - 1) req (res { responseBody = lbs }:ress)
- Nothing -> return res
+ (res, req, isRedirect) <- http' req'
+ if isRedirect then do
+ -- Allow the original connection to return to the
+ -- connection pool immediately by flushing the body.
+ -- If the response body is too large, don't flush, but
+ -- instead just close the connection.
+ let maxFlush = 1024
+ lbs <- brReadSome (responseBody res) maxFlush
+ -- The connection may already be closed, e.g.
+ -- when using withResponseHistory. See
+ -- https://github.com/snoyberg/http-client/issues/169
+ `catch` \(_ :: ConnectionClosed) -> return L.empty
+ responseClose res
+
+ -- And now perform the actual redirect
+ go (count - 1) req (res { responseBody = lbs }:ress)
+ else
+ return (req, res)
-- | Close any open resources associated with the given @Response@. In general,
-- this will either close an active @Connection@ or return it to the @Manager@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http-client-0.4.26.2/Network/HTTP/Client.hs new/http-client-0.4.27/Network/HTTP/Client.hs
--- old/http-client-0.4.26.2/Network/HTTP/Client.hs 2015-12-22 18:46:34.000000000 +0100
+++ new/http-client-0.4.27/Network/HTTP/Client.hs 2016-01-21 08:59:31.000000000 +0100
@@ -215,19 +215,19 @@
reqRef <- newIORef req0
historyRef <- newIORef id
let go req = do
- res <- httpRaw req man
+ (req', res) <- httpRaw' req man
case getRedirectedRequest
- req
+ req'
(responseHeaders res)
(responseCookieJar res)
(statusCode $ responseStatus res) of
- Nothing -> return (res, Nothing)
- Just req' -> do
- writeIORef reqRef req'
+ Nothing -> return (res, req', False)
+ Just req'' -> do
+ writeIORef reqRef req''
body <- brReadSome (responseBody res) 1024
modifyIORef historyRef (. ((req, res { responseBody = body }):))
- return (res, Just req')
- res <- httpRedirect (redirectCount req0) go req0
+ return (res, req'', True)
+ (_, res) <- httpRedirect' (redirectCount req0) go req0
reqFinal <- readIORef reqRef
history <- readIORef historyRef
return HistoriedResponse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http-client-0.4.26.2/http-client.cabal new/http-client-0.4.27/http-client.cabal
--- old/http-client-0.4.26.2/http-client.cabal 2015-12-22 18:46:34.000000000 +0100
+++ new/http-client-0.4.27/http-client.cabal 2016-01-21 08:59:31.000000000 +0100
@@ -1,5 +1,5 @@
name: http-client
-version: 0.4.26.2
+version: 0.4.27
synopsis: An HTTP client engine, intended as a base layer for more user-friendly packages.
description: Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/http-client>.
homepage: https://github.com/snoyberg/http-client
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/http-client-0.4.26.2/test/Network/HTTP/ClientSpec.hs new/http-client-0.4.27/test/Network/HTTP/ClientSpec.hs
--- old/http-client-0.4.26.2/test/Network/HTTP/ClientSpec.hs 2015-12-22 18:46:34.000000000 +0100
+++ new/http-client-0.4.27/test/Network/HTTP/ClientSpec.hs 2016-01-21 08:59:31.000000000 +0100
@@ -1,6 +1,7 @@
{-# LANGUAGE OverloadedStrings #-}
module Network.HTTP.ClientSpec where
+import Control.Exception (toException)
import Network (withSocketsDo)
import Network.HTTP.Client
import Network.HTTP.Types (status200)
@@ -24,3 +25,9 @@
withManager settings $ \man -> do
res <- httpLbs "http://httpbin.org:1234" man
responseStatus res `shouldBe` status200
+
+ it "managerModifyRequestCheckStatus" $ do
+ let modify req = return req { checkStatus = \s hs cj -> Just $ toException $ StatusCodeException s hs cj }
+ settings = defaultManagerSettings { managerModifyRequest = modify }
+ withManager settings $ \man ->
+ httpLbs "http://httpbin.org" man `shouldThrow` anyException
1
0
Hello community,
here is the log from the commit of package ghc-HTTP for openSUSE:Factory checked in at 2016-01-28 17:23:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-HTTP (Old)
and /work/SRC/openSUSE:Factory/.ghc-HTTP.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-HTTP"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-HTTP/ghc-HTTP.changes 2016-01-08 15:23:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-HTTP.new/ghc-HTTP.changes 2016-01-28 17:24:42.000000000 +0100
@@ -1,0 +2,19 @@
+Sun Jan 24 10:04:26 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 4000.3.2
+* If the URI contains "user:pass@" part, use it for Basic Authorization
+* Add a test harness.
+* Don't leak a socket when getHostAddr throws an exception.
+* Send cookies in request format, not response format.
+* Moved BrowserAction to be a StateT IO, with instances for
+ Applicative, MonadIO, MonadState.
+* Add method to control size of connection pool.
+* Consider both host and port when reusing connections.
+* Handle response code 304 "not modified" properly.
+* Fix digest authentication by fixing md5 output string rep.
+* Make the default user agent string follow the package version.
+* Document lack of HTTPS support and fail when clients try
+ to use it instead of silently falling back to HTTP.
+* Add helper to set the request type and body.
+
+-------------------------------------------------------------------
Old:
----
HTTP-4000.2.23.tar.gz
New:
----
HTTP-4000.3.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-HTTP.spec ++++++
--- /var/tmp/diff_new_pack.GyTEkh/_old 2016-01-28 17:24:43.000000000 +0100
+++ /var/tmp/diff_new_pack.GyTEkh/_new 2016-01-28 17:24:43.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name HTTP
Name: ghc-HTTP
-Version: 4000.2.23
+Version: 4000.3.2
Release: 0
Summary: A library for client-side HTTP
License: BSD-3-Clause
@@ -37,7 +37,7 @@
BuildRequires: ghc-mtl-devel
BuildRequires: ghc-network-devel
BuildRequires: ghc-network-uri-devel
-BuildRequires: ghc-old-time-devel
+BuildRequires: ghc-time-devel
BuildRequires: ghc-parsec-devel
# End cabal-rpm deps
++++++ HTTP-4000.2.23.tar.gz -> HTTP-4000.3.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTTP-4000.2.23/HTTP.cabal new/HTTP-4000.3.2/HTTP.cabal
--- old/HTTP-4000.2.23/HTTP.cabal 2015-12-31 23:33:18.000000000 +0100
+++ new/HTTP-4000.3.2/HTTP.cabal 2016-01-16 09:57:23.000000000 +0100
@@ -1,5 +1,5 @@
Name: HTTP
-Version: 4000.2.23
+Version: 4000.3.2
Cabal-Version: >= 1.8
Build-type: Simple
License: BSD3
@@ -99,7 +99,8 @@
-- note the test harness constraints should be kept in sync with these
-- where dependencies are shared
Build-depends: base >= 4.3.0.0 && < 4.9, parsec >= 2.0 && < 3.2
- Build-depends: array >= 0.3.0.2 && < 0.6, old-time >= 1.0.0.0 && < 1.2, bytestring >= 0.9.1.5 && < 0.11
+ Build-depends: array >= 0.3.0.2 && < 0.6, bytestring >= 0.9.1.5 && < 0.11
+ Build-depends: time >= 1.1.2.3 && < 1.7
Extensions: FlexibleInstances
@@ -114,8 +115,6 @@
else
Build-depends: network >= 2.2.1.8 && < 2.6
- build-tools: ghc >= 7.0 && < 7.12
-
if flag(warn-as-error)
ghc-options: -Werror
@@ -125,8 +124,6 @@
Test-Suite test
type: exitcode-stdio-1.0
- build-tools: ghc >= 7.0 && < 7.12
-
hs-source-dirs: test
main-is: httpTests.hs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTTP-4000.2.23/Network/Browser.hs new/HTTP-4000.3.2/Network/Browser.hs
--- old/HTTP-4000.2.23/Network/Browser.hs 2015-12-31 23:33:18.000000000 +0100
+++ new/HTTP-4000.3.2/Network/Browser.hs 2016-01-16 09:57:23.000000000 +0100
@@ -149,7 +149,7 @@
( hSetBuffering, hPutStr, stdout, stdin, hGetChar
, BufferMode(NoBuffering, LineBuffering)
)
-import System.Time ( ClockTime, getClockTime )
+import Data.Time.Clock ( UTCTime, getCurrentTime )
------------------------------------------------------------------
@@ -638,7 +638,7 @@
-- at which they occurred.
data BrowserEvent
= BrowserEvent
- { browserTimestamp :: ClockTime
+ { browserTimestamp :: UTCTime
, browserRequestID :: RequestID
, browserRequestURI :: {-URI-}String
, browserEventType :: BrowserEventType
@@ -668,7 +668,7 @@
buildBrowserEvent :: BrowserEventType -> {-URI-}String -> RequestID -> IO BrowserEvent
buildBrowserEvent bt uri reqID = do
- ct <- getClockTime
+ ct <- getCurrentTime
return BrowserEvent
{ browserTimestamp = ct
, browserRequestID = reqID
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HTTP-4000.2.23/Network/TCP.hs new/HTTP-4000.3.2/Network/TCP.hs
--- old/HTTP-4000.2.23/Network/TCP.hs 2015-12-31 23:33:18.000000000 +0100
+++ new/HTTP-4000.3.2/Network/TCP.hs 2016-01-16 09:57:23.000000000 +0100
@@ -306,14 +306,7 @@
-- and that the connection peer matches the given
-- host name (which is recorded locally).
isConnectedTo :: Connection -> EndPoint -> IO Bool
-isConnectedTo (Connection conn) endPoint = do
- v <- readMVar (getRef conn)
- case v of
- ConnClosed -> print "aa" >> return False
- _
- | connEndPoint v == endPoint ->
- catchIO (getPeerName (connSock v) >> return True) (const $ return False)
- | otherwise -> return False
+isConnectedTo (Connection conn) endPoint = isTCPConnectedTo conn endPoint
isTCPConnectedTo :: HandleStream ty -> EndPoint -> IO Bool
isTCPConnectedTo conn endPoint = do
1
0
Hello community,
here is the log from the commit of package clinfo for openSUSE:Factory checked in at 2016-01-28 17:23:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clinfo (Old)
and /work/SRC/openSUSE:Factory/.clinfo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "clinfo"
Changes:
--------
--- /work/SRC/openSUSE:Factory/clinfo/clinfo.changes 2016-01-08 15:23:46.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.clinfo.new/clinfo.changes 2016-01-28 17:24:41.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Jan 26 08:44:01 UTC 2016 - mpluskal(a)suse.com
+
+- Update to 2.1.16.01.12
+ * no upstream changelog provided
+
+-------------------------------------------------------------------
Old:
----
clinfo-2.1.16.01.06.tar.gz
New:
----
clinfo-2.1.16.01.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ clinfo.spec ++++++
--- /var/tmp/diff_new_pack.63rQk2/_old 2016-01-28 17:24:42.000000000 +0100
+++ /var/tmp/diff_new_pack.63rQk2/_new 2016-01-28 17:24:42.000000000 +0100
@@ -18,7 +18,7 @@
Name: clinfo
-Version: 2.1.16.01.06
+Version: 2.1.16.01.12
Release: 0
Summary: It reports status information for all installed OpenCL ICDs
License: SUSE-Public-Domain
@@ -45,15 +45,13 @@
make %{?_smp_mflags}
%install
-mkdir -p %{buildroot}/%{_bindir}
-mkdir -p %{buildroot}/%{_mandir}/man1/
-install -pm 0755 clinfo %{buildroot}/%{_bindir}
-install -pm 0644 man/clinfo.1 %{buildroot}/%{_mandir}/man1
+install -D -p -m 0755 clinfo %{buildroot}%{_bindir}/clinfo
+install -D -p -m 0644 man/clinfo.1 %{buildroot}%{_mandir}/man1/clinfo.1
%files
%defattr (-,root,root)
%doc LICENSE README
%{_bindir}/clinfo
-%{_mandir}/man1/clinfo.1.*
+%{_mandir}/man1/clinfo.1%{ext_man}
%changelog
++++++ clinfo-2.1.16.01.06.tar.gz -> clinfo-2.1.16.01.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clinfo-2.1.16.01.06/man/clinfo.1 new/clinfo-2.1.16.01.12/man/clinfo.1
--- old/clinfo-2.1.16.01.06/man/clinfo.1 2016-01-06 12:07:55.000000000 +0100
+++ new/clinfo-2.1.16.01.12/man/clinfo.1 2016-01-12 11:51:23.000000000 +0100
@@ -1,4 +1,4 @@
-.TH CLINFO 1 "2016-01-06" "clinfo 2.1.16.01.06"
+.TH CLINFO 1 "2016-01-12" "clinfo 2.1.16.01.12"
.SH NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clinfo-2.1.16.01.06/src/clinfo.c new/clinfo-2.1.16.01.12/src/clinfo.c
--- old/clinfo-2.1.16.01.06/src/clinfo.c 2016-01-06 12:07:55.000000000 +0100
+++ new/clinfo-2.1.16.01.12/src/clinfo.c 2016-01-12 11:51:23.000000000 +0100
@@ -880,8 +880,9 @@
time_t time = val/UINT64_C(1000000000);
szval += snprintf(strbuf, bufsz, "%" PRIu64 "ns (", val);
szval += bufcpy(szval, ctime(&time));
+ /* overwrite ctime's newline with the closing parenthesis */
if (szval < bufsz)
- strbuf[szval] = ')';
+ strbuf[szval - 1] = ')';
}
show_strbuf(pname, 0);
return had_error;
@@ -2483,6 +2484,8 @@
const char *pname; // "ICD loader *"
};
+static const char * const oclicdl_pfx = "OCLICD";
+
#define LINFO(symbol, name) { symbol, #symbol, "ICD loader " name }
struct icdl_info_traits linfo_traits[] = {
LINFO(CL_ICDL_NAME, "Name"),
@@ -2541,9 +2544,18 @@
#endif
if (clGetICDLoaderInfoOCLICD != NULL) {
- puts("\nICD loader properties");
+ /* TODO think of a sensible header in CLINFO_RAW */
+ if (output_mode != CLINFO_RAW)
+ puts("\nICD loader properties");
current_function = __func__;
+ if (output_mode == CLINFO_RAW) {
+ line_pfx_len = strlen(oclicdl_pfx) + 5;
+ REALLOC(line_pfx, line_pfx_len, "line prefix OCL ICD");
+ sprintf(strbuf, "[%s/*]", oclicdl_pfx);
+ sprintf(line_pfx, "%*s", -line_pfx_len, strbuf);
+ }
+
for (current_line = 0; current_line < ARRAY_SIZE(linfo_traits); ++current_line) {
const struct icdl_info_traits *traits = linfo_traits + current_line;
current_param = traits->sname;
@@ -2586,7 +2598,7 @@
void version(void)
{
- puts("clinfo version 2.1.16.01.06");
+ puts("clinfo version 2.1.16.01.12");
}
void usage(void)
@@ -2674,7 +2686,8 @@
listPlatformsAndDevices(show_offline);
} else {
showDevices(show_offline);
- checkNullBehavior();
+ if (output_mode != CLINFO_RAW)
+ checkNullBehavior();
oclIcdProps();
}
1
0
Hello community,
here is the log from the commit of package perl-Mojolicious for openSUSE:Factory checked in at 2016-01-28 17:23:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old)
and /work/SRC/openSUSE:Factory/.perl-Mojolicious.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mojolicious"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes 2016-01-22 01:09:55.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new/perl-Mojolicious.changes 2016-01-28 17:24:40.000000000 +0100
@@ -1,0 +2,18 @@
+Mon Jan 25 16:55:00 UTC 2016 - coolo(a)suse.com
+
+- updated to 6.42
+ see /usr/share/doc/packages/perl-Mojolicious/Changes
+
+ 6.42 2016-01-24
+ - Fixed use of deprecated Perl feature in Mojo::JSON.
+ - Fixed validation filter bugs in Mojolicious::Validator::Validation.
+
+ 6.41 2016-01-20
+ - Added support for validation filters.
+ - Added filters attribute to Mojolicious::Validator.
+ - Added add_filter method to Mojolicious::Validator.
+ - Added filter arguments to optional and required methods in
+ Mojolicious::Validator::Validation.
+ - Fixed MOJO_WEBSOCKET_DEBUG environment variable. (jberger)
+
+-------------------------------------------------------------------
Old:
----
Mojolicious-6.40.tar.gz
New:
----
Mojolicious-6.42.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Mojolicious.spec ++++++
--- /var/tmp/diff_new_pack.COY4ue/_old 2016-01-28 17:24:41.000000000 +0100
+++ /var/tmp/diff_new_pack.COY4ue/_new 2016-01-28 17:24:41.000000000 +0100
@@ -17,7 +17,7 @@
Name: perl-Mojolicious
-Version: 6.40
+Version: 6.42
Release: 0
%define cpan_name Mojolicious
Summary: Real-time web framework
++++++ Mojolicious-6.40.tar.gz -> Mojolicious-6.42.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/Changes new/Mojolicious-6.42/Changes
--- old/Mojolicious-6.40/Changes 2016-01-13 19:13:50.000000000 +0100
+++ new/Mojolicious-6.42/Changes 2016-01-24 23:00:27.000000000 +0100
@@ -1,4 +1,16 @@
+6.42 2016-01-24
+ - Fixed use of deprecated Perl feature in Mojo::JSON.
+ - Fixed validation filter bugs in Mojolicious::Validator::Validation.
+
+6.41 2016-01-20
+ - Added support for validation filters.
+ - Added filters attribute to Mojolicious::Validator.
+ - Added add_filter method to Mojolicious::Validator.
+ - Added filter arguments to optional and required methods in
+ Mojolicious::Validator::Validation.
+ - Fixed MOJO_WEBSOCKET_DEBUG environment variable. (jberger)
+
6.40 2016-01-13
- Removed client_challenge, client_handshake, server_handshake and server_open
methods from Mojo::Transaction::WebSocket. (batman, sri)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/META.json new/Mojolicious-6.42/META.json
--- old/Mojolicious-6.40/META.json 2016-01-13 21:07:28.000000000 +0100
+++ new/Mojolicious-6.42/META.json 2016-01-24 23:01:37.000000000 +0100
@@ -58,5 +58,5 @@
},
"x_IRC" : "irc://irc.perl.org/#mojo"
},
- "version" : "6.40"
+ "version" : "6.42"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/META.yml new/Mojolicious-6.42/META.yml
--- old/Mojolicious-6.40/META.yml 2016-01-13 21:07:28.000000000 +0100
+++ new/Mojolicious-6.42/META.yml 2016-01-24 23:01:37.000000000 +0100
@@ -31,4 +31,4 @@
homepage: http://mojolicious.org
license: http://www.opensource.org/licenses/artistic-license-2.0
repository: https://github.com/kraih/mojo.git
-version: '6.40'
+version: '6.42'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/README.md new/Mojolicious-6.42/README.md
--- old/Mojolicious-6.40/README.md 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/README.md 2016-01-24 04:33:27.000000000 +0100
@@ -11,23 +11,25 @@
## Features
- * An amazing real-time web framework, allowing you to easily grow single
+ * An amazing **real-time web framework**, allowing you to easily grow single
file prototypes into well-structured web applications.
* Powerful out of the box with RESTful routes, plugins, commands, Perl-ish
templates, content negotiation, session management, form validation,
testing framework, static file server, CGI/[PSGI](http://plackperl.org)
detection, first class Unicode support and much more for you to
discover.
+ * A powerful **web development toolkit**, that you can use for all kinds of
+ applications, independently of the web framework.
+ * Full stack HTTP and WebSocket client/server implementation with IPv6, TLS,
+ SNI, IDNA, HTTP/SOCKS5 proxy, Comet (long polling), keep-alive, connection
+ pooling, timeout, cookie, multipart, and gzip compression support.
+ * Built-in non-blocking I/O web server, supporting multiple event loops as
+ well as optional preforking and hot deployment, perfect for building
+ highly scalable web services.
+ * JSON and HTML/XML parser with CSS selector support.
* Very clean, portable and object-oriented pure-Perl API with no hidden
magic and no requirements besides Perl 5.22.0 (versions as old as 5.10.1
can be used too, but may require additional CPAN modules to be installed)
- * Full stack HTTP and WebSocket client/server implementation with IPv6, TLS,
- SNI, IDNA, HTTP/SOCKS5 proxy, Comet (long polling), keep-alive, connection
- pooling, timeout, cookie, multipart, and gzip compression support.
- * Built-in non-blocking I/O web server, supporting multiple event loops as
- well as optional preforking and hot deployment, perfect for building
- highly scalable web services.
- * JSON and HTML/XML parser with CSS selector support.
* Fresh code based upon years of experience developing
[Catalyst](http://www.catalystframework.org), free and open source.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/Base.pm new/Mojolicious-6.42/lib/Mojo/Base.pm
--- old/Mojolicious-6.40/lib/Mojo/Base.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/Base.pm 2016-01-19 19:23:42.000000000 +0100
@@ -115,7 +115,7 @@
use Mojo::Base -base;
has name => 'Nyan';
- has [qw(age weight)] => 4;
+ has ['age', 'weight'] => 4;
package Tiger;
use Mojo::Base 'Cat';
@@ -181,11 +181,11 @@
=head2 has
has 'name';
- has [qw(name1 name2 name3)];
+ has ['name1', 'name2', 'name3'];
has name => 'foo';
has name => sub {...};
- has [qw(name1 name2 name3)] => 'foo';
- has [qw(name1 name2 name3)] => sub {...};
+ has ['name1', 'name2', 'name3'] => 'foo';
+ has ['name1', 'name2', 'name3'] => sub {...};
Create attributes for hash-based objects, just like the L</"attr"> method.
@@ -197,11 +197,11 @@
$object->attr('name');
SubClass->attr('name');
- SubClass->attr([qw(name1 name2 name3)]);
+ SubClass->attr(['name1', 'name2', 'name3']);
SubClass->attr(name => 'foo');
SubClass->attr(name => sub {...});
- SubClass->attr([qw(name1 name2 name3)] => 'foo');
- SubClass->attr([qw(name1 name2 name3)] => sub {...});
+ SubClass->attr(['name1', 'name2', 'name3'] => 'foo');
+ SubClass->attr(['name1', 'name2', 'name3'] => sub {...});
Create attribute accessor for hash-based objects, an array reference can be
used to create more than one at a time. Pass an optional second argument to set
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/Headers.pm new/Mojolicious-6.42/lib/Mojo/Headers.pm
--- old/Mojolicious-6.40/lib/Mojo/Headers.pm 2016-01-13 18:52:30.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/Headers.pm 2016-01-23 01:38:17.000000000 +0100
@@ -482,7 +482,7 @@
my $names = $headers->names;
-Return a list of all currently defined headers.
+Return an array reference with all currently defined headers.
# Names of all headers
say for @{$headers->names};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/IOLoop/Delay.pm new/Mojolicious-6.42/lib/Mojo/IOLoop/Delay.pm
--- old/Mojolicious-6.40/lib/Mojo/IOLoop/Delay.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/IOLoop/Delay.pm 2016-01-19 19:37:41.000000000 +0100
@@ -224,8 +224,8 @@
my $hash = $delay->data;
my $foo = $delay->data('foo');
- $delay = $delay->data({foo => 'bar'});
- $delay = $delay->data(foo => 'bar');
+ $delay = $delay->data({foo => 'bar', baz => 23});
+ $delay = $delay->data(foo => 'bar', baz => 23);
Data shared between all L</"steps">.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/JSON.pm new/Mojolicious-6.42/lib/Mojo/JSON.pm
--- old/Mojolicious-6.40/lib/Mojo/JSON.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/JSON.pm 2016-01-24 19:03:27.000000000 +0100
@@ -1,6 +1,7 @@
package Mojo::JSON;
use Mojo::Base -strict;
+use B;
use Carp 'croak';
use Exporter 'import';
use JSON::PP ();
@@ -248,10 +249,9 @@
# Null
return 'null' unless defined $value;
- # Number (bitwise operators change behavior based on the internal value type)
- my $check = (my $dummy = "0") & $value;
+ # Number
return $value
- if (!($check ^ $check) && length $check)
+ if B::svref_2object(\$value)->FLAGS & (B::SVp_IOK | B::SVp_NOK)
&& 0 + $value eq $value
&& $value * 0 == 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/Parameters.pm new/Mojolicious-6.42/lib/Mojo/Parameters.pm
--- old/Mojolicious-6.40/lib/Mojo/Parameters.pm 2016-01-13 19:03:30.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/Parameters.pm 2016-01-23 01:38:38.000000000 +0100
@@ -283,7 +283,7 @@
my $names = $params->names;
-Return a list of all parameter names.
+Return an array reference with all parameter names.
# Names of all parameters
say for @{$params->names};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/Server/Daemon.pm new/Mojolicious-6.42/lib/Mojo/Server/Daemon.pm
--- old/Mojolicious-6.40/lib/Mojo/Server/Daemon.pm 2016-01-13 07:05:52.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/Server/Daemon.pm 2016-01-19 19:28:55.000000000 +0100
@@ -364,7 +364,7 @@
$daemon->listen(['http://*:8080?reuse=1']);
# Listen on two ports with HTTP and HTTPS at the same time
- $daemon->listen([qw(http://*:3000 https://*:4000)]);
+ $daemon->listen(['http://*:3000', 'https://*:4000']);
# Use a custom certificate and key
$daemon->listen(['https://*:3000?cert=/x/server.crt&key=/y/server.key']);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/Transaction/HTTP.pm new/Mojolicious-6.42/lib/Mojo/Transaction/HTTP.pm
--- old/Mojolicious-6.40/lib/Mojo/Transaction/HTTP.pm 2016-01-13 18:56:08.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/Transaction/HTTP.pm 2016-01-23 01:39:01.000000000 +0100
@@ -305,8 +305,8 @@
my $redirects = $tx->redirects;
-Return a list of all previous transactions that preceded this follow-up
-transaction.
+Return an array reference with all previous transactions that preceded this
+follow-up transaction.
# Paths of all previous requests
say $_->req->url->path for @{$tx->redirects};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/Transaction/WebSocket.pm new/Mojolicious-6.42/lib/Mojo/Transaction/WebSocket.pm
--- old/Mojolicious-6.40/lib/Mojo/Transaction/WebSocket.pm 2016-01-13 18:57:55.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/Transaction/WebSocket.pm 2016-01-19 20:32:28.000000000 +0100
@@ -136,8 +136,8 @@
my $self = shift;
my %protos = map { trim($_) => 1 } split ',',
- $self->req->headers->sec_websocket_protocol;
- return undef unless my $proto = first { $protos{$_} } @_;
+ $self->req->headers->sec_websocket_protocol // '';
+ return undef unless defined(my $proto = first { $protos{$_} } @_);
$self->res->headers->sec_websocket_protocol($proto);
return $proto;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/UserAgent/Proxy.pm new/Mojolicious-6.42/lib/Mojo/UserAgent/Proxy.pm
--- old/Mojolicious-6.40/lib/Mojo/UserAgent/Proxy.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/UserAgent/Proxy.pm 2016-01-19 19:28:23.000000000 +0100
@@ -75,7 +75,7 @@
=head2 not
my $not = $proxy->not;
- $proxy = $proxy->not([qw(localhost intranet.mojolicious.org)]);
+ $proxy = $proxy->not(['localhost', 'intranet.mojolicious.org']);
Domains that don't require a proxy server to be used.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/UserAgent/Transactor.pm new/Mojolicious-6.42/lib/Mojo/UserAgent/Transactor.pm
--- old/Mojolicious-6.40/lib/Mojo/UserAgent/Transactor.pm 2016-01-12 21:25:33.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/UserAgent/Transactor.pm 2016-01-19 19:28:02.000000000 +0100
@@ -114,8 +114,8 @@
# Generator
if (@_ > 1) {
- return $tx unless my $generator = $self->generators->{shift()};
- $self->$generator($tx, @_);
+ my $cb = $self->generators->{shift()};
+ $self->$cb($tx, @_);
}
# Body
@@ -328,6 +328,11 @@
Register a content generator.
+ $t->add_generator(foo => sub {
+ my ($t, $tx, @args) = @_;
+ ...
+ });
+
=head2 endpoint
my ($proto, $host, $port) = $t->endpoint(Mojo::Transaction::HTTP->new);
@@ -411,7 +416,8 @@
An array reference can be used for multiple form values sharing the same name.
# POST request with form values sharing the same name
- my $tx = $t->tx(POST => 'http://example.com' => form => {a => [qw(b c d)]});
+ my $tx = $t->tx(
+ POST => 'http://example.com' => form => {a => ['b', 'c', 'd']});
A hash reference with a C<content> or C<file> value can be used to switch to
the C<multipart/form-data> content type for file uploads.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo/WebSocket.pm new/Mojolicious-6.42/lib/Mojo/WebSocket.pm
--- old/Mojolicious-6.40/lib/Mojo/WebSocket.pm 2016-01-13 18:57:11.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo/WebSocket.pm 2016-01-19 16:57:09.000000000 +0100
@@ -3,7 +3,7 @@
use Config;
use Exporter 'import';
-use Mojo::Util qw(b64_encode sha1_bytes xor_encode);
+use Mojo::Util qw(b64_encode dumper sha1_bytes xor_encode);
use constant DEBUG => $ENV{MOJO_WEBSOCKET_DEBUG} || 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojo.pm new/Mojolicious-6.42/lib/Mojo.pm
--- old/Mojolicious-6.40/lib/Mojo.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojo.pm 2016-01-24 06:10:28.000000000 +0100
@@ -31,7 +31,7 @@
=head1 NAME
-Mojo - Duct tape for the HTML5 web!
+Mojo - Web development toolkit
=head1 SYNOPSIS
@@ -58,9 +58,11 @@
=head1 DESCRIPTION
-A flexible runtime environment for Perl real-time web frameworks, with all the
-basic tools and helpers needed to write simple web applications and higher
-level web frameworks, such as L<Mojolicious>.
+A powerful web development toolkit, with all the basic tools and helpers needed
+to write simple web applications and higher level web frameworks, such as
+L<Mojolicious>. Some of the most commonly used tools are L<Mojo::UserAgent>,
+L<Mojo::DOM>, L<Mojo::JSON>, L<Mojo::Server::Daemon>, L<Mojo::Server::Prefork>,
+L<Mojo::IOLoop> and L<Mojo::Template>.
See L<Mojolicious::Guides> for more!
@@ -115,8 +117,8 @@
my $hash = $app->config;
my $foo = $app->config('foo');
- $app = $app->config({foo => 'bar'});
- $app = $app->config(foo => 'bar');
+ $app = $app->config({foo => 'bar', baz => 23});
+ $app = $app->config(foo => 'bar', baz => 23);
Application configuration.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Controller.pm new/Mojolicious-6.42/lib/Mojolicious/Controller.pm
--- old/Mojolicious-6.40/lib/Mojolicious/Controller.pm 2016-01-12 21:50:53.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Controller.pm 2016-01-20 06:04:52.000000000 +0100
@@ -575,7 +575,7 @@
my $value = $c->param('foo');
$c = $c->param(foo => 'ba;r');
- $c = $c->param(foo => qw(ba;r baz));
+ $c = $c->param(foo => 'ba;r', 'baz');
$c = $c->param(foo => ['ba;r', 'baz']);
Access route placeholder values that are not reserved stash values, file
@@ -866,8 +866,8 @@
my $hash = $c->stash;
my $foo = $c->stash('foo');
- $c = $c->stash({foo => 'bar'});
- $c = $c->stash(foo => 'bar');
+ $c = $c->stash({foo => 'bar', baz => 23});
+ $c = $c->stash(foo => 'bar', baz => 23);
Non-persistent data storage and exchange for the current request, application
wide default values can be set with L<Mojolicious/"defaults">. Some stash
@@ -929,7 +929,7 @@
# Validate GET/POST parameter
my $validation = $c->validation;
- $validation->required('title')->size(3, 50);
+ $validation->required('title', 'trim')->size(3, 50);
my $title = $validation->param('title');
# Validate file upload
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Guides/Contributing.pod new/Mojolicious-6.42/lib/Mojolicious/Guides/Contributing.pod
--- old/Mojolicious-6.40/lib/Mojolicious/Guides/Contributing.pod 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Guides/Contributing.pod 2016-01-24 04:16:08.000000000 +0100
@@ -88,9 +88,9 @@
=head2 Mission statement
-L<Mojo> is a runtime environment for Perl real-time web frameworks. It provides
-all the basic tools and helpers needed to write simple web applications and
-higher level web frameworks, such as L<Mojolicious>.
+L<Mojo> is a web development toolkit, with all the basic tools and helpers
+needed to write simple web applications and higher level web frameworks, such as
+L<Mojolicious>.
All components should be reusable in other projects, and in a UNIXish way only
loosely coupled.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Guides/Rendering.pod new/Mojolicious-6.42/lib/Mojolicious/Guides/Rendering.pod
--- old/Mojolicious-6.40/lib/Mojolicious/Guides/Rendering.pod 2016-01-13 19:13:08.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Guides/Rendering.pod 2016-01-19 19:18:41.000000000 +0100
@@ -301,7 +301,7 @@
through the L<Mojolicious::Controller/"stash">.
$c->stash(description => 'web framework');
- $c->stash(frameworks => [qw(Catalyst Mojolicious)]);
+ $c->stash(frameworks => ['Catalyst', 'Mojolicious']);
$c->stash(spinoffs => {minion => 'job queue'});
%= $description
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Guides/Routing.pod new/Mojolicious-6.42/lib/Mojolicious/Guides/Routing.pod
--- old/Mojolicious-6.40/lib/Mojolicious/Guides/Routing.pod 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Guides/Routing.pod 2016-01-19 19:19:46.000000000 +0100
@@ -156,7 +156,7 @@
=head2 Minimal route
The attribute L<Mojolicious/"routes"> contains a router you can use to generate
-route structures, they match in the same order in which they were defined.
+route structures.
# Application
package MyApp;
@@ -175,7 +175,9 @@
1;
The minimal route above will load and instantiate the class
-C<MyApp::Controller::Foo> and call its C<welcome> method.
+C<MyApp::Controller::Foo> and call its C<welcome> method. Routes are usually
+configured in the C<startup> method of the application class, but the router can
+be accessed from everywhere (even at runtime).
# Controller
package MyApp::Controller::Foo;
@@ -191,8 +193,11 @@
1;
-Routes are usually configured in the C<startup> method of the application
-class, but the router can be accessed from everywhere (even at runtime).
+All routes match in the same order in which they were defined, and matching
+stops as soon as a suitable route has been found. So you can improve the routing
+performance by declaring your most frequently accessed routes first. A routing
+cache will also be used automatically to handle sudden traffic spikes more
+gracefully.
=head2 Routing destination
@@ -224,7 +229,7 @@
$r->post('/hello')->to(controller => 'foo', action => 'hello');
# GET|POST /bye -> {controller => 'foo', action => 'bye'}
- $r->any([qw(GET POST)] => '/bye')->to(controller => 'foo', action => 'bye');
+ $r->any(['GET', 'POST'] => '/bye')->to(controller => 'foo', action => 'bye');
# * /whatever -> {controller => 'foo', action => 'whatever'}
$r->any('/whatever')->to(controller => 'foo', action => 'whatever');
@@ -302,6 +307,10 @@
$cats->get('/nyan')->to(action => 'nyan');
$cats->get('/lol');
+With a few common prefixes you can also greatly improve the routing performance
+of applications with many routes, because children are only tried if the prefix
+matched first.
+
=head2 Special stash values
When the dispatcher sees C<controller> and C<action> values in the stash it
@@ -500,7 +509,7 @@
# /fry -> undef
# /bender -> {controller => 'foo', action => 'bar', name => 'bender'}
# /leela -> {controller => 'foo', action => 'bar', name => 'leela'}
- $r->get('/:name' => [name => [qw(bender leela)]])->to('foo#bar');
+ $r->get('/:name' => [name => ['bender', 'leela']])->to('foo#bar');
You can also adjust the regular expressions behind placeholders directly, just
make sure not to use C<^> and C<$> or capturing groups C<(...)>, because
@@ -595,7 +604,7 @@
# /foo.txt -> undef
# /foo.rss -> {controller => 'foo', action => 'bar', format => 'rss'}
# /foo.xml -> {controller => 'foo', action => 'bar', format => 'xml'}
- $r->get('/foo' => [format => [qw(rss xml)]])->to('foo#bar');
+ $r->get('/foo' => [format => ['rss', 'xml']])->to('foo#bar');
A C<format> value can also be passed to L<Mojolicious::Controller/"url_for">.
@@ -621,7 +630,7 @@
# /baz.xml -> undef
my $inactive = $r->under([format => 0]);
$inactive->get('/foo')->to('foo#bar');
- $inactive->get('/baz' => [format => [qw(txt html)]])->to('baz#yada');
+ $inactive->get('/baz' => [format => ['txt', 'html']])->to('baz#yada');
=head2 WebSockets
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Guides/Tutorial.pod new/Mojolicious-6.42/lib/Mojolicious/Guides/Tutorial.pod
--- old/Mojolicious-6.40/lib/Mojolicious/Guides/Tutorial.pod 2016-01-13 19:05:44.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Guides/Tutorial.pod 2016-01-19 19:20:21.000000000 +0100
@@ -7,7 +7,7 @@
=head1 TUTORIAL
-A quick example driven introduction to the wonders of L<Mojolicious::Lite>.
+A quick example-driven introduction to the wonders of L<Mojolicious::Lite>.
Almost everything you'll learn here also applies to full L<Mojolicious>
applications.
@@ -383,7 +383,7 @@
};
# GET|POST|PATCH /bye
- any [qw(GET POST PATCH)] => '/bye' => sub {
+ any ['GET', 'POST', 'PATCH'] => '/bye' => sub {
my $c = shift;
$c->render(text => 'Bye World!');
};
@@ -429,7 +429,7 @@
# /test
# /123
- any '/:foo' => [foo => [qw(test 123)]] => sub {
+ any '/:foo' => [foo => ['test', '123']] => sub {
my $c = shift;
my $foo = $c->param('foo');
$c->render(text => "Our :foo placeholder matched $foo");
@@ -581,7 +581,7 @@
# /hello.json
# /hello.txt
- get '/hello' => [format => [qw(json txt)]] => sub {
+ get '/hello' => [format => ['json', 'txt']] => sub {
my $c = shift;
return $c->render(json => {hello => 'world'})
if $c->stash('format') eq 'json';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Guides.pod new/Mojolicious-6.42/lib/Mojolicious/Guides.pod
--- old/Mojolicious-6.40/lib/Mojolicious/Guides.pod 2016-01-10 21:28:01.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Guides.pod 2016-01-24 04:19:02.000000000 +0100
@@ -84,9 +84,9 @@
=head1 HIGHLIGHTS
-L<Mojolicious> and L<Mojolicious::Lite> are the sum of many parts, small
-building blocks that can be used independently, these are the most prominent
-ones.
+L<Mojolicious> and L<Mojolicious::Lite> are the sum of many parts, built on top
+of the L<Mojo> web development toolkit. Small building blocks that can be used
+independently for all kinds of applications, these are the most prominent ones.
=over 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Lite.pm new/Mojolicious-6.42/lib/Mojolicious/Lite.pm
--- old/Mojolicious-6.40/lib/Mojolicious/Lite.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Lite.pm 2016-01-19 19:26:47.000000000 +0100
@@ -96,8 +96,8 @@
my $route = any '/:foo' => sub {...};
my $route = any '/:foo' => {foo => 'bar'} => sub {...};
my $route = any '/:foo' => [foo => qr/\w+/] => sub {...};
- my $route = any [qw(GET POST)] => '/:foo' => sub {...};
- my $route = any [qw(GET POST)] => '/:foo' => [foo => qr/\w+/] => sub {...};
+ my $route = any ['GET', 'POST'] => '/:foo' => sub {...};
+ my $route = any ['GET', 'POST'] => '/:foo' => [foo => qr/\w+/] => sub {...};
Generate route with L<Mojolicious::Routes::Route/"any">, matching any of the
listed HTTP request methods or all. See also L<Mojolicious::Guides::Tutorial>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Plugin/DefaultHelpers.pm new/Mojolicious-6.42/lib/Mojolicious/Plugin/DefaultHelpers.pm
--- old/Mojolicious-6.40/lib/Mojolicious/Plugin/DefaultHelpers.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Plugin/DefaultHelpers.pm 2016-01-19 19:26:20.000000000 +0100
@@ -219,7 +219,7 @@
=head2 c
- %= c(qw(a b c))->shuffle->join
+ %= c('a', 'b', 'c')->shuffle->join
Turn list into a L<Mojo::Collection> object.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Plugin/TagHelpers.pm new/Mojolicious-6.42/lib/Mojolicious/Plugin/TagHelpers.pm
--- old/Mojolicious-6.40/lib/Mojolicious/Plugin/TagHelpers.pm 2016-01-13 18:54:26.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Plugin/TagHelpers.pm 2016-01-19 19:25:49.000000000 +0100
@@ -553,11 +553,11 @@
=head2 select_field
- %= select_field country => [qw(de en)]
+ %= select_field country => ['de', 'en']
%= select_field country => [[Germany => 'de'], 'en'], id => 'eu'
%= select_field country => [[Germany => 'de', selected => 'selected'], 'en']
%= select_field country => [c(EU => [[Germany => 'de'], 'en'], id => 'eu')]
- %= select_field country => [c(EU => [qw(de en)]), c(Asia => [qw(cn jp)])]
+ %= select_field country => [c(EU => ['de', 'en']), c(Asia => ['cn', 'jp'])]
Generate C<select> and C<option> tags from array references and C<optgroup>
tags from L<Mojo::Collection> objects. Previous input values will automatically
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Renderer.pm new/Mojolicious-6.42/lib/Mojolicious/Renderer.pm
--- old/Mojolicious-6.40/lib/Mojolicious/Renderer.pm 2016-01-13 19:13:26.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Renderer.pm 2016-01-15 18:01:51.000000000 +0100
@@ -372,12 +372,23 @@
Register a handler.
+ $renderer->add_handler(foo => sub {
+ my ($renderer, $c, $output, $options) = @_;
+ ...
+ $$output = 'Hello World!';
+ });
+
=head2 add_helper
$renderer = $renderer->add_helper(url_for => sub {...});
Register a helper.
+ $renderer->add_helper(foo => sub {
+ my ($c, @args) = @_;
+ ...
+ });
+
=head2 get_data_template
my $template = $renderer->get_data_template({
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Routes/Route.pm new/Mojolicious-6.42/lib/Mojolicious/Routes/Route.pm
--- old/Mojolicious-6.40/lib/Mojolicious/Routes/Route.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Routes/Route.pm 2016-01-19 19:21:37.000000000 +0100
@@ -302,8 +302,8 @@
my $route = $r->any('/:foo' => sub {...});
my $route = $r->any('/:foo' => {foo => 'bar'} => sub {...});
my $route = $r->any('/:foo' => [foo => qr/\w+/] => sub {...});
- my $route = $r->any([qw(GET POST)] => '/:foo' => sub {...});
- my $route = $r->any([qw(GET POST)] => '/:foo' => [foo => qr/\w+/]);
+ my $route = $r->any(['GET', 'POST'] => '/:foo' => sub {...});
+ my $route = $r->any(['GET', 'POST'] => '/:foo' => [foo => qr/\w+/]);
Generate L<Mojolicious::Routes::Route> object matching any of the listed HTTP
request methods or all. See also L<Mojolicious::Guides::Tutorial> for many more
@@ -564,14 +564,14 @@
my $methods = $r->via;
$r = $r->via('GET');
- $r = $r->via(qw(GET POST));
- $r = $r->via([qw(GET POST)]);
+ $r = $r->via('GET', 'POST');
+ $r = $r->via(['GET', 'POST']);
Restrict HTTP methods this route is allowed to handle, defaults to no
restrictions.
# Route with two methods and destination
- $r->route('/foo')->via(qw(GET POST))->to('foo#bar');
+ $r->route('/foo')->via('GET', 'POST')->to('foo#bar');
=head2 websocket
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Routes.pm new/Mojolicious-6.42/lib/Mojolicious/Routes.pm
--- old/Mojolicious-6.40/lib/Mojolicious/Routes.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Routes.pm 2016-01-19 19:22:21.000000000 +0100
@@ -257,7 +257,7 @@
=head2 hidden
my $hidden = $r->hidden;
- $r = $r->hidden([qw(attr has new)]);
+ $r = $r->hidden(['attr', 'has', 'new']);
Controller attributes and methods that are hidden from router, defaults to
C<attr>, C<has>, C<new> and C<tap>.
@@ -290,12 +290,23 @@
Register a condition.
+ $r->add_condition(foo => sub {
+ my ($route, $c, $captures, $arg) = @_;
+ ...
+ return 1;
+ });
+
=head2 add_shortcut
$r = $r->add_shortcut(foo => sub {...});
Register a shortcut.
+ $r->add_shortcut(foo => sub {
+ my ($route, @args) = @_;
+ ...
+ });
+
=head2 continue
$r->continue(Mojolicious::Controller->new);
@@ -311,7 +322,7 @@
=head2 hide
- $r = $r->hide(qw(foo bar));
+ $r = $r->hide('foo', 'bar');
Hide controller attributes and methods from router.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Types.pm new/Mojolicious-6.42/lib/Mojolicious/Types.pm
--- old/Mojolicious-6.40/lib/Mojolicious/Types.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Types.pm 2016-01-19 19:25:06.000000000 +0100
@@ -140,7 +140,7 @@
my $type = $types->type('png');
$types = $types->type(png => 'image/png');
- $types = $types->type(json => [qw(application/json text/x-json)]);
+ $types = $types->type(json => ['application/json', 'text/x-json']);
Get or set MIME types for file extension, alternatives are only used for
detection.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Validator/Validation.pm new/Mojolicious-6.42/lib/Mojolicious/Validator/Validation.pm
--- old/Mojolicious-6.40/lib/Mojolicious/Validator/Validation.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Validator/Validation.pm 2016-01-24 00:43:47.000000000 +0100
@@ -64,12 +64,16 @@
sub is_valid { exists $_[0]->output->{$_[1] // $_[0]->topic} }
sub optional {
- my ($self, $name) = @_;
+ my ($self, $name, @filters) = @_;
- my $input = $self->input->{$name};
- my @input = ref $input eq 'ARRAY' ? @$input : $input;
- $self->output->{$name} = $input
- unless grep { !defined($_) || $_ eq '' } @input;
+ return $self->topic($name) unless defined(my $input = $self->input->{$name});
+
+ my @input = ref $input eq 'ARRAY' ? @$input : ($input);
+ for my $cb (map { $self->validator->filters->{$_} } @filters) {
+ @input = map { $self->$cb($name, $_) } @input;
+ }
+ $self->output->{$name} = @input > 1 ? \@input : $input[0]
+ unless grep { $_ eq '' } @input;
return $self->topic($name);
}
@@ -79,8 +83,8 @@
sub passed { [sort keys %{shift->output}] }
sub required {
- my ($self, $name) = @_;
- return $self if $self->optional($name)->is_valid;
+ my ($self, $name) = (shift, shift);
+ return $self if $self->optional($name, @_)->is_valid;
return $self->error($name => ['required']);
}
@@ -101,7 +105,7 @@
my $validation
= Mojolicious::Validator::Validation->new(validator => $validator);
$validation->input({foo => 'bar'});
- $validation->required('foo')->in(qw(bar baz));
+ $validation->required('foo')->in('bar', 'baz');
say $validation->param('foo');
=head1 DESCRIPTION
@@ -191,7 +195,7 @@
my $names = $validation->failed;
-Return a list of all names for values that failed validation.
+Return an array reference with all names for values that failed validation.
# Names of all values that failed
say for @{$validation->failed};
@@ -220,8 +224,12 @@
=head2 optional
$validation = $validation->optional('foo');
+ $validation = $validation->optional('foo', 'filter1', 'filter2');
+
+Change validation L</"topic"> and apply filters.
-Change validation L</"topic">.
+ # Trim value and check size
+ $validation->optional('user', 'trim')->size(1, 15);
=head2 param
@@ -234,7 +242,7 @@
my $names = $validation->passed;
-Return a list of all names for values that passed validation.
+Return an array reference with all names for values that passed validation.
# Names of all values that passed
say for @{$validation->passed};
@@ -242,9 +250,13 @@
=head2 required
$validation = $validation->required('foo');
+ $validation = $validation->required('foo', 'filter1', 'filter2');
+
+Change validation L</"topic">, apply filters, and make sure a value is present
+and not an empty string.
-Change validation L</"topic"> and make sure a value is present and not an empty
-string.
+ # Trim value and check size
+ $validation->required('user', 'trim')->size(1, 15);
=head1 AUTOLOAD
@@ -255,10 +267,10 @@
# Call validation checks
$validation->required('foo')->size(2, 5)->like(qr/^[A-Z]/);
$validation->optional('bar')->equal_to('foo');
- $validation->optional('baz')->in(qw(test 123));
+ $validation->optional('baz')->in('test', '123');
# Longer version
- $validation->required('foo')->check('size', 2,5)->check('like', qr/^[A-Z]/);
+ $validation->required('foo')->check('size', 2, 5)->check('like', qr/^[A-Z]/);
=head1 SEE ALSO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious/Validator.pm new/Mojolicious-6.42/lib/Mojolicious/Validator.pm
--- old/Mojolicious-6.40/lib/Mojolicious/Validator.pm 2016-01-09 05:25:41.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious/Validator.pm 2016-01-20 06:04:56.000000000 +0100
@@ -1,6 +1,7 @@
package Mojolicious::Validator;
use Mojo::Base -base;
+use Mojo::Util 'trim';
use Mojolicious::Validator::Validation;
has checks => sub {
@@ -12,8 +13,10 @@
upload => sub { !ref $_[2] || !$_[2]->isa('Mojo::Upload') }
};
};
+has filters => sub { {trim => \&_trim} };
-sub add_check { $_[0]->checks->{$_[1]} = $_[2] and return $_[0] }
+sub add_check { $_[0]->checks->{$_[1]} = $_[2] and return $_[0] }
+sub add_filter { $_[0]->filters->{$_[1]} = $_[2] and return $_[0] }
sub validation {
Mojolicious::Validator::Validation->new(validator => shift);
@@ -37,6 +40,8 @@
return $len < $min || $len > $max;
}
+sub _trim { trim $_[2] }
+
1;
=encoding utf8
@@ -71,7 +76,7 @@
=head2 in
- $validation = $validation->in(qw(foo bar baz));
+ $validation = $validation->in('foo', 'bar', 'baz');
String value needs to match one of the values in the list.
@@ -94,6 +99,17 @@
Value needs to be a L<Mojo::Upload> object, representing a file upload.
+=head1 FILTERS
+
+These filters are available by default.
+
+=head2 trim
+
+ $validation = $validation->optional('foo', 'trim');
+
+Trim whitespace characters from both ends of string value with
+L<Mojo::Util/"trim">.
+
=head1 ATTRIBUTES
L<Mojolicious::Validator> implements the following attributes.
@@ -117,6 +133,24 @@
Register a validation check.
+ $validator->add_check(foo => sub {
+ my ($validation, $name, $value, @args) = @_;
+ ...
+ return undef;
+ });
+
+=head2 add_filter
+
+ $validator = $validator->add_filter(trim => sub {...});
+
+Register a new filter.
+
+ $validator->add_filter(foo => sub {
+ my ($validation, $name, $value) = @_;
+ ...
+ return $value;
+ });
+
=head2 validation
my $validation = $validator->validation;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/lib/Mojolicious.pm new/Mojolicious-6.42/lib/Mojolicious.pm
--- old/Mojolicious-6.40/lib/Mojolicious.pm 2016-01-11 19:14:50.000000000 +0100
+++ new/Mojolicious-6.42/lib/Mojolicious.pm 2016-01-20 21:02:19.000000000 +0100
@@ -43,7 +43,7 @@
has validator => sub { Mojolicious::Validator->new };
our $CODENAME = 'Clinking Beer Mugs';
-our $VERSION = '6.40';
+our $VERSION = '6.42';
sub AUTOLOAD {
my $self = shift;
@@ -523,6 +523,12 @@
return $value ne 'foo';
});
+ # Add validation filter
+ $app->validator->add_filter(quotemeta => sub {
+ my ($validation, $name, $value) = @_;
+ return quotemeta $value;
+ });
+
=head1 METHODS
L<Mojolicious> inherits all methods from L<Mojo> and implements the following
@@ -549,8 +555,8 @@
my $hash = $app->defaults;
my $foo = $app->defaults('foo');
- $app = $app->defaults({foo => 'bar'});
- $app = $app->defaults(foo => 'bar');
+ $app = $app->defaults({foo => 'bar', baz => 23});
+ $app = $app->defaults(foo => 'bar', baz => 23);
Default values for L<Mojolicious::Controller/"stash">, assigned for every new
request.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/t/mojolicious/validation_lite_app.t new/Mojolicious-6.42/t/mojolicious/validation_lite_app.t
--- old/Mojolicious-6.40/t/mojolicious/validation_lite_app.t 2016-01-12 23:31:46.000000000 +0100
+++ new/Mojolicious-6.42/t/mojolicious/validation_lite_app.t 2016-01-24 00:44:26.000000000 +0100
@@ -9,7 +9,7 @@
use Test::Mojo;
# Custom check
-app->validator->add_check(two => sub { length $_[2] == 2 ? undef : 'ohoh' });
+app->validator->add_check(two => sub { length $_[2] == 2 ? undef : "e:$_[1]" });
any '/' => sub {
my $c = shift;
@@ -161,6 +161,27 @@
is_deeply $validation->error('bar'), [qw(size 1 1 6)], 'right error';
is_deeply $validation->failed, ['bar'], 'right names';
+# Trim
+$validation = $t->app->validation->input({foo => ' bar', baz => [' 0 ', 1]});
+ok $validation->required('foo', 'trim')->in('bar')->is_valid, 'valid';
+is_deeply $validation->output, {foo => 'bar'}, 'right result';
+ok !$validation->optional('missing', 'trim')->is_valid, 'not valid';
+ok $validation->optional('baz', 'trim')->like(qr/^\d$/)->is_valid, 'valid';
+is_deeply $validation->output, {foo => 'bar', baz => [0, 1]}, 'right result';
+$validation = $t->app->validation->input({nothing => ' '});
+ok !$validation->required('nothing', 'trim')->is_valid, 'not valid';
+is_deeply $validation->output, {}, 'right result';
+ok $validation->required('nothing')->is_valid, 'valid';
+is_deeply $validation->output, {nothing => ' '}, 'right result';
+
+# Custom filter
+$t->app->validator->add_filter(quote => sub {qq{$_[1]="$_[2]"}});
+$validation = $t->app->validation->input({foo => [' bar', 'baz']});
+ok $validation->required('foo', 'trim', 'quote')->like(qr/"/)->is_valid,
+ 'valid';
+is_deeply $validation->output, {foo => ['foo="bar"', 'foo="baz"']},
+ 'right result';
+
# Multiple empty values
$validation = $t->app->validation;
ok !$validation->has_data, 'no data';
@@ -306,7 +327,7 @@
}
);
$t->get_ok('/?foo=too_long&bar=too_long_too&baz=way_too_long&yada=whatever')
- ->status_is(200)->text_is('div:root' => 'two ohoh')
+ ->status_is(200)->text_is('div:root' => 'two e:foo')
->text_is('label.custom.my-field-with-error[for="foo"]' => '<Foo>')
->element_exists('input.custom.my-field-with-error[type="text"]')
->element_exists('textarea.my-field-with-error')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-6.40/t/mojolicious/websocket_lite_app.t new/Mojolicious-6.42/t/mojolicious/websocket_lite_app.t
--- old/Mojolicious-6.40/t/mojolicious/websocket_lite_app.t 2016-01-11 06:57:53.000000000 +0100
+++ new/Mojolicious-6.42/t/mojolicious/websocket_lite_app.t 2016-01-19 20:32:25.000000000 +0100
@@ -29,7 +29,7 @@
websocket '/protocols' => sub {
my $c = shift;
- $c->send($c->tx->with_protocols('foo', 'bar', 'baz') // 'none');
+ $c->send($c->tx->with_protocols('foo', 'bar', 'baz', '0') // 'none');
$c->send($c->tx->protocol // 'none');
};
@@ -225,12 +225,20 @@
is $t->tx->protocol, 'foo', 'right protocol';
is $t->tx->res->headers->sec_websocket_protocol, 'foo',
'right "Sec-WebSocket-Protocol" value';
+$t->websocket_ok('/protocols' => ['0'])->message_ok->message_is('0')
+ ->message_ok->message_is('0')->finish_ok;
+is $t->tx->protocol, '0', 'right protocol';
+is $t->tx->res->headers->sec_websocket_protocol, '0',
+ 'right "Sec-WebSocket-Protocol" value';
$t->websocket_ok('/protocols' => [''])->message_ok->message_is('none')
->message_ok->message_is('none')->finish_ok;
is $t->tx->protocol, undef, 'no protocol';
$t->websocket_ok('/protocols' => ['', '', ''])->message_ok->message_is('none')
->message_ok->message_is('none')->finish_ok;
is $t->tx->protocol, undef, 'no protocol';
+$t->websocket_ok('/protocols')->message_ok->message_is('none')
+ ->message_ok->message_is('none')->finish_ok;
+is $t->tx->protocol, undef, 'no protocol';
# JSON roundtrips (with a lot of different tests)
$t->websocket_ok('/json')->send_ok({json => {test => 23, snowman => '☃'}})
1
0
Hello community,
here is the log from the commit of package ghc-fclabels for openSUSE:Factory checked in at 2016-01-28 17:23:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-fclabels (Old)
and /work/SRC/openSUSE:Factory/.ghc-fclabels.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-fclabels"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-fclabels/ghc-fclabels.changes 2015-09-17 09:19:17.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-fclabels.new/ghc-fclabels.changes 2016-01-28 17:24:39.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 20 09:43:35 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 2.0.2.4
+* Allow transformers 0.5.*.
+
+-------------------------------------------------------------------
Old:
----
fclabels-2.0.2.3.tar.gz
New:
----
fclabels-2.0.2.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-fclabels.spec ++++++
--- /var/tmp/diff_new_pack.CnXA01/_old 2016-01-28 17:24:39.000000000 +0100
+++ /var/tmp/diff_new_pack.CnXA01/_new 2016-01-28 17:24:39.000000000 +0100
@@ -21,7 +21,7 @@
%bcond_without tests
Name: ghc-fclabels
-Version: 2.0.2.3
+Version: 2.0.2.4
Release: 0
Summary: First class accessor labels implemented as lenses
License: BSD-3-Clause
++++++ fclabels-2.0.2.3.tar.gz -> fclabels-2.0.2.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fclabels-2.0.2.3/CHANGELOG new/fclabels-2.0.2.4/CHANGELOG
--- old/fclabels-2.0.2.3/CHANGELOG 2015-09-04 19:49:24.000000000 +0200
+++ new/fclabels-2.0.2.4/CHANGELOG 2016-01-18 14:18:19.000000000 +0100
@@ -1,8 +1,12 @@
CHANGELOG
+2.0.2.3 to 2.0.2.4
+
+ - Allow transformers 0.5.*.
+
2.0.2.2 to 2.0.2.3
- - Allow HUNit 1.3.*
+ - Allow HUnit 1.3.*
2.0.2.1 to 2.0.2.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fclabels-2.0.2.3/fclabels.cabal new/fclabels-2.0.2.4/fclabels.cabal
--- old/fclabels-2.0.2.3/fclabels.cabal 2015-09-04 19:49:24.000000000 +0200
+++ new/fclabels-2.0.2.4/fclabels.cabal 2016-01-18 14:18:19.000000000 +0100
@@ -1,5 +1,5 @@
Name: fclabels
-Version: 2.0.2.3
+Version: 2.0.2.4
Author: Sebastiaan Visser, Erik Hesselink, Chris Eidhof, Sjoerd Visscher
with lots of help and feedback from others.
Synopsis: First class accessor labels implemented as lenses.
@@ -81,7 +81,7 @@
base < 5
, template-haskell >= 2.2 && < 2.11
, mtl >= 1.0 && < 2.3
- , transformers >= 0.2 && < 0.5
+ , transformers >= 0.2 && < 0.6
Source-Repository head
Type: git
1
0
Hello community,
here is the log from the commit of package ghc-errors for openSUSE:Factory checked in at 2016-01-28 17:23:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-errors (Old)
and /work/SRC/openSUSE:Factory/.ghc-errors.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-errors"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-errors/ghc-errors.changes 2015-12-29 12:59:24.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-errors.new/ghc-errors.changes 2016-01-28 17:24:38.000000000 +0100
@@ -1,0 +2,11 @@
+Wed Jan 20 09:14:30 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 2.1.1
+* Increase upper bound on transformers-compat
+
+-------------------------------------------------------------------
+Mon Jan 11 07:51:40 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 2.1.0
+
+-------------------------------------------------------------------
Old:
----
errors-2.0.1.tar.gz
New:
----
errors-2.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-errors.spec ++++++
--- /var/tmp/diff_new_pack.yi2PNP/_old 2016-01-28 17:24:38.000000000 +0100
+++ /var/tmp/diff_new_pack.yi2PNP/_new 2016-01-28 17:24:38.000000000 +0100
@@ -18,7 +18,7 @@
%global pkg_name errors
Name: ghc-errors
-Version: 2.0.1
+Version: 2.1.1
Release: 0
Summary: Simplified error-handling
Group: System/Libraries
@@ -34,6 +34,7 @@
BuildRequires: ghc-safe-devel
BuildRequires: ghc-transformers-compat-devel
BuildRequires: ghc-transformers-devel
+BuildRequires: ghc-unexceptionalio-devel
# End cabal-rpm deps
%description
++++++ errors-2.0.1.tar.gz -> errors-2.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/errors-2.0.1/Control/Error/Util.hs new/errors-2.1.1/Control/Error/Util.hs
--- old/errors-2.0.1/Control/Error/Util.hs 2015-09-15 20:38:27.000000000 +0200
+++ new/errors-2.1.1/Control/Error/Util.hs 2016-01-16 23:09:57.000000000 +0100
@@ -51,7 +51,7 @@
) where
import Control.Applicative (Applicative, pure, (<$>))
-import qualified Control.Exception as Ex
+import Control.Exception (Handler(..), IOException, SomeException)
import Control.Monad (liftM)
import Control.Monad.IO.Class (MonadIO(liftIO))
import Control.Monad.Trans.Except (ExceptT(ExceptT), runExceptT)
@@ -61,6 +61,10 @@
import Data.Maybe (fromMaybe)
import System.Exit (ExitCode)
import System.IO (hPutStr, hPutStrLn, stderr)
+import UnexceptionalIO (UIO, Unexceptional)
+
+import qualified Control.Exception as Exception
+import qualified UnexceptionalIO as UIO
-- | Fold an 'ExceptT' by providing one continuation for each constructor
exceptT :: Monad m => (a -> m c) -> (b -> m c) -> ExceptT a m b -> m c
@@ -231,31 +235,12 @@
errLn :: String -> IO ()
errLn = hPutStrLn stderr
--- | Catch 'Ex.IOException's and convert them to the 'ExceptT' monad
-tryIO :: (MonadIO m) => IO a -> ExceptT Ex.IOException m a
-tryIO = ExceptT . liftIO . Ex.try
+-- | Catch 'IOException's and convert them to the 'ExceptT' monad
+tryIO :: MonadIO m => IO a -> ExceptT IOException m a
+tryIO = ExceptT . liftIO . Exception.try
{-| Catch all exceptions, except for asynchronous exceptions found in @base@
and convert them to the 'ExceptT' monad
-}
-syncIO :: MonadIO m => IO a -> ExceptT Ex.SomeException m a
-syncIO a = ExceptT . liftIO $ Ex.catches (Right <$> a)
- [ Ex.Handler $ \e -> Ex.throw (e :: Ex.ArithException)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.ArrayException)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.AssertionFailed)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.AsyncException)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.BlockedIndefinitelyOnMVar)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.BlockedIndefinitelyOnSTM)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.Deadlock)
- , Ex.Handler $ \e -> Ex.throw (e :: Dynamic)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.ErrorCall)
- , Ex.Handler $ \e -> Ex.throw (e :: ExitCode)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.NestedAtomically)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.NoMethodError)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.NonTermination)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.PatternMatchFail)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.RecConError)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.RecSelError)
- , Ex.Handler $ \e -> Ex.throw (e :: Ex.RecUpdError)
- , Ex.Handler $ return . Left
- ]
+syncIO :: Unexceptional m => IO a -> ExceptT SomeException m a
+syncIO = ExceptT . UIO.liftUIO . UIO.fromIO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/errors-2.0.1/errors.cabal new/errors-2.1.1/errors.cabal
--- old/errors-2.0.1/errors.cabal 2015-09-15 20:38:27.000000000 +0200
+++ new/errors-2.1.1/errors.cabal 2016-01-16 23:09:57.000000000 +0100
@@ -1,5 +1,5 @@
Name: errors
-Version: 2.0.1
+Version: 2.1.1
Cabal-Version: >=1.8.0.2
Build-Type: Simple
License: BSD3
@@ -25,7 +25,8 @@
base >= 4 && < 5 ,
safe >= 0.3.3 && < 0.4,
transformers >= 0.2 && < 0.5,
- transformers-compat >= 0.4 && < 0.5
+ transformers-compat >= 0.4 && < 0.6,
+ unexceptionalio >= 0.3 && < 0.4
Exposed-Modules:
Control.Error,
Control.Error.Safe,
1
0
Hello community,
here is the log from the commit of package ghc-distributive for openSUSE:Factory checked in at 2016-01-28 17:23:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-distributive (Old)
and /work/SRC/openSUSE:Factory/.ghc-distributive.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-distributive"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-distributive/ghc-distributive.changes 2015-05-22 16:36:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-distributive.new/ghc-distributive.changes 2016-01-28 17:24:37.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Jan 26 08:40:30 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.5.0.2
+* Added flags for removing some dependencies.
+* upport doctests when building to non-standard locations (such as when using stack.)
+* Support base-orphans
+
+-------------------------------------------------------------------
Old:
----
distributive-0.4.4.tar.gz
New:
----
distributive-0.5.0.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-distributive.spec ++++++
--- /var/tmp/diff_new_pack.iKKsux/_old 2016-01-28 17:24:38.000000000 +0100
+++ /var/tmp/diff_new_pack.iKKsux/_new 2016-01-28 17:24:38.000000000 +0100
@@ -21,7 +21,7 @@
%bcond_with tests
Name: ghc-distributive
-Version: 0.4.4
+Version: 0.5.0.2
Release: 0
Summary: Distributive functors -- Dual to Traversable
License: BSD-2-Clause
@@ -34,6 +34,7 @@
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-rpm-macros
# Begin cabal-rpm deps:
+BuildRequires: ghc-base-orphans-devel
BuildRequires: ghc-tagged-devel
BuildRequires: ghc-transformers-compat-devel
BuildRequires: ghc-transformers-devel
++++++ distributive-0.4.4.tar.gz -> distributive-0.5.0.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/distributive-0.4.4/.ghci new/distributive-0.5.0.2/.ghci
--- old/distributive-0.4.4/.ghci 2014-05-05 22:51:17.000000000 +0200
+++ new/distributive-0.5.0.2/.ghci 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-:set -isrc -idist/build/autogen -optP-include -optPdist/build/autogen/cabal_macros.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/distributive-0.4.4/.travis.yml new/distributive-0.5.0.2/.travis.yml
--- old/distributive-0.4.4/.travis.yml 2014-05-05 22:51:17.000000000 +0200
+++ new/distributive-0.5.0.2/.travis.yml 2016-01-17 01:07:48.000000000 +0100
@@ -1,17 +1,118 @@
-language: haskell
-before_install:
- # Uncomment whenever hackage is down.
- # - mkdir -p ~/.cabal && cp config ~/.cabal/config && cabal update
+# This file has been generated -- see https://github.com/hvr/multi-ghc-travis
+language: c
+sudo: false
+
+cache:
+ directories:
+ - $HOME/.cabsnap
+ - $HOME/.cabal/packages
+ - $HOME/.stack
+
+before_cache:
+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
+
+matrix:
+ include:
+ - env: CABALVER=1.18 GHCVER=7.4.2 BUILD=cabal
+ compiler: ": #GHC 7.4.2"
+ addons: {apt: {packages: [cabal-install-1.18,ghc-7.4.2,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
+
+ - env: CABALVER=1.18 GHCVER=7.6.3 BUILD=cabal
+ compiler: ": #GHC 7.6.3"
+ addons: {apt: {packages: [cabal-install-1.18,ghc-7.6.3,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
+
+ - env: CABALVER=1.18 GHCVER=7.8.4 BUILD=cabal
+ compiler: ": #GHC 7.8.4"
+ addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
+
+# - env: BUILD=stack STACK_YAML=stack-7.8.yaml STACK_OPTIONS=--skip-ghc-check
+# addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
+
+# - env: BUILD=stack STACK_YAML=stack-7.8.yaml
+# os: osx
- # Try installing some of the build-deps with apt-get for speed.
- - ./travis-cabal-apt-install --only-dependencies --force-reinstall $mode
+ - env: CABALVER=1.22 GHCVER=7.10.1 BUILD=cabal
+ compiler: ": #GHC 7.10.1"
+ addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.1,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
+ - env: CABALVER=1.22 GHCVER=7.10.2 BUILD=cabal
+ compiler: ": #GHC 7.10.2"
+ addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.2,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
+
+ - env: BUILD=stack STACK_OPTIONS=--skip-ghc-check
+ addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.2,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}
+
+ - env: BUILD=stack
+ os: osx
+
+
+before_install:
+ - unset CC
+ - case "$BUILD" in
+ stack)
+ export STACK_VERSION=0.1.3.0;
+ export PATH=~/bin:$PATH;
+ mkdir -p ~/bin;
+ travis_retry curl -L https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSIO… | gunzip > ~/bin/stack;
+ chmod a+x ~/bin/stack;
+ scripts/travis_long stack --no-terminal setup;;
+ cabal)
+ export HAPPYVER=1.19.5
+ export ALEXVER=3.1.4
+ export PATH=~/.cabal/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:/opt/happy/$HAPPYVER/bin:/opt/alex/$ALEXVER/bin:$PATH;;
+ esac
install:
- - cabal configure -flib-Werror $mode
- - cabal build
+ - case "$BUILD" in
+ stack)
+ scripts/travis_long stack --no-terminal $STACK_OPTIONS build --only-snapshot -j2;;
+ cabal)
+ echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
+ cabal --version;
+ if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
+ then
+ zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
+ $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
+ fi;
+ travis_retry cabal update;
+ cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt;
+ sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt;
+ if diff -u installplan.txt $HOME/.cabsnap/installplan.txt; then
+ echo "cabal build-cache HIT";
+ rm -rfv .ghc;
+ cp -a $HOME/.cabsnap/ghc $HOME/.ghc;
+ cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
+ else
+ echo "cabal build-cache MISS";
+ rm -rf $HOME/.cabsnap;
+ mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
+ cabal install --only-dependencies --enable-tests --enable-benchmarks;
+ if [ "$GHCVER" = "7.10.1" ]; then cabal install Cabal-1.22.4.0; fi;
+ fi;
+ if [ ! -d $HOME/.cabsnap ]; then
+ echo "snapshotting package-db to build-cache";
+ mkdir $HOME/.cabsnap;
+ cp -a $HOME/.ghc $HOME/.cabsnap/ghc;
+ cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;
+ fi;;
+ esac
+
+# snapshot package-db on cache miss
+# Here starts the actual work to be performed for the package under test;
+# any command which exits with a non-zero exit code causes the build to fail.
script:
- - $script
+ - case "$BUILD" in
+ stack)
+ scripts/travis_long stack --no-terminal $STACK_OPTIONS build -j2;;
+ cabal)
+ cabal configure --enable-tests -v2;
+ cabal build;
+ cabal test;
+ cabal bench || true;
+ cabal sdist || true;
+ SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && (cd dist && cabal install --force-reinstalls "$SRC_TGZ");;
+ esac
notifications:
irc:
@@ -19,7 +120,5 @@
- "irc.freenode.org#haskell-lens"
skip_join: true
template:
- - "\x0313distributive\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"
-
-env:
- - mode="--enable-tests" script="cabal test"
+ - "\x0313distributive\x0f/\x0306%{branch}\x0f \x0314%{commit}\x0f %{message} \x0302\x1f%{build_url}\x0f"
+# EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/distributive-0.4.4/CHANGELOG.markdown new/distributive-0.5.0.2/CHANGELOG.markdown
--- old/distributive-0.4.4/CHANGELOG.markdown 2014-05-05 22:51:17.000000000 +0200
+++ new/distributive-0.5.0.2/CHANGELOG.markdown 2016-01-17 01:07:48.000000000 +0100
@@ -1,3 +1,17 @@
+0.5.0.2
+-------
+* A more elegant fix for builds on GHC 7.2
+
+0.5.0.1
+-------
+* Fix builds on GHC 7.2
+
+0.5
+---
+* Added flags for removing some dependencies.
+* Support `doctests` when building to non-standard locations (such as when using `stack`.)
+* Support `base-orphans`
+
0.4.4
-----
* `transformers 0.4` compatibility
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/distributive-0.4.4/LICENSE new/distributive-0.5.0.2/LICENSE
--- old/distributive-0.4.4/LICENSE 2014-05-05 22:51:17.000000000 +0200
+++ new/distributive-0.5.0.2/LICENSE 2016-01-17 01:07:48.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright 2011-2014 Edward Kmett
+Copyright 2011-2016 Edward Kmett
All rights reserved.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/distributive-0.4.4/README.markdown new/distributive-0.5.0.2/README.markdown
--- old/distributive-0.4.4/README.markdown 2014-05-05 22:51:17.000000000 +0200
+++ new/distributive-0.5.0.2/README.markdown 2016-01-17 01:07:48.000000000 +0100
@@ -1,7 +1,7 @@
distributive
============
-[![Build Status](https://secure.travis-ci.org/ekmett/distributive.png?branch=master)…
+[![Hackage](https://img.shields.io/hackage/v/distributive.svg)](https://hackage.haskell.org/package/distributive) [![Build Status](https://secure.travis-ci.org/ekmett/distributive.png?branch=master)…
This package provides the notion that is categorically dual to `Traversable`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/distributive-0.4.4/Setup.lhs new/distributive-0.5.0.2/Setup.lhs
--- old/distributive-0.4.4/Setup.lhs 2014-05-05 22:51:17.000000000 +0200
+++ new/distributive-0.5.0.2/Setup.lhs 2016-01-17 01:07:48.000000000 +0100
@@ -30,6 +30,10 @@
withTestLBI pkg lbi $ \suite suitecfg -> do
rewriteFile (dir </> "Build_" ++ testName suite ++ ".hs") $ unlines
[ "module Build_" ++ testName suite ++ " where"
+ , ""
+ , "autogen_dir :: String"
+ , "autogen_dir = " ++ show dir
+ , ""
, "deps :: [String]"
, "deps = " ++ (show $ formatdeps (testDeps libcfg suitecfg))
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/distributive-0.4.4/distributive.cabal new/distributive-0.5.0.2/distributive.cabal
--- old/distributive-0.4.4/distributive.cabal 2014-05-05 22:51:17.000000000 +0200
+++ new/distributive-0.5.0.2/distributive.cabal 2016-01-17 01:07:48.000000000 +0100
@@ -1,6 +1,6 @@
name: distributive
category: Data Structures
-version: 0.4.4
+version: 0.5.0.2
license: BSD3
cabal-version: >= 1.8
license-file: LICENSE
@@ -9,12 +9,11 @@
stability: provisional
homepage: http://github.com/ekmett/distributive/
bug-reports: http://github.com/ekmett/distributive/issues
-copyright: Copyright (C) 2011-2014 Edward A. Kmett
+copyright: Copyright (C) 2011-2016 Edward A. Kmett
synopsis: Distributive functors -- Dual to Traversable
description: Distributive functors -- Dual to Traversable
build-type: Custom
extra-source-files:
- .ghci
.travis.yml
.vim.custom
config
@@ -26,15 +25,19 @@
type: git
location: git://github.com/ekmett/distributive.git
-flag lib-Werror
+flag tagged
manual: True
- default: False
+ default: True
+ description:
+ You can disable the use of the `tagged` package using `-f-tagged`.
+ .
+ Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
library
build-depends:
base >= 4 && < 5,
- tagged >= 0.7 && < 1,
- transformers >= 0.2 && < 0.5,
+ base-orphans >= 0.5 && < 1,
+ transformers >= 0.2 && < 0.6,
transformers-compat >= 0.3 && < 1
hs-source-dirs: src
@@ -43,12 +46,14 @@
if impl(ghc>=7.2)
exposed-modules: Data.Distributive.Generic
+
+ if flag(tagged)
+ build-depends: tagged >= 0.7 && < 1
+
+ if impl(ghc>=7.2 && < 7.6)
build-depends: ghc-prim
- if flag(lib-Werror)
- ghc-options: -Werror
- else
- ghc-options: -Wall
+ ghc-options: -Wall
-- Verify the results of the examples
test-suite doctests
@@ -60,6 +65,4 @@
doctest >= 0.9.1,
filepath >= 1.2
ghc-options: -Wall -threaded
- if impl(ghc<7.6.1)
- ghc-options: -Werror
hs-source-dirs: tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/distributive-0.4.4/src/Data/Distributive/Generic.hs new/distributive-0.5.0.2/src/Data/Distributive/Generic.hs
--- old/distributive-0.4.4/src/Data/Distributive/Generic.hs 2014-05-05 22:51:17.000000000 +0200
+++ new/distributive-0.5.0.2/src/Data/Distributive/Generic.hs 2016-01-17 01:07:48.000000000 +0100
@@ -4,7 +4,7 @@
-----------------------------------------------------------------------------
-- |
-- Module : Data.Distributive
--- Copyright : (C) 2011-2014 Edward Kmett
+-- Copyright : (C) 2011-2016 Edward Kmett
-- License : BSD-style (see the file LICENSE)
--
-- Maintainer : Edward Kmett <ekmett(a)gmail.com>
@@ -45,7 +45,7 @@
sndP (_ :*: r) = r
{-# INLINE gdistribute #-}
-instance (Functor a, Functor b, GDistributive a, GDistributive b) => GDistributive (a :.: b) where
+instance (Functor a, GDistributive a, GDistributive b) => GDistributive (a :.: b) where
gdistribute = Comp1 . fmap gdistribute . gdistribute . fmap unComp1
{-# INLINE gdistribute #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/distributive-0.4.4/src/Data/Distributive.hs new/distributive-0.5.0.2/src/Data/Distributive.hs
--- old/distributive-0.4.4/src/Data/Distributive.hs 2014-05-05 22:51:17.000000000 +0200
+++ new/distributive-0.5.0.2/src/Data/Distributive.hs 2016-01-17 01:07:48.000000000 +0100
@@ -3,7 +3,7 @@
-----------------------------------------------------------------------------
-- |
-- Module : Data.Distributive
--- Copyright : (C) 2011-2014 Edward Kmett
+-- Copyright : (C) 2011-2016 Edward Kmett
-- License : BSD-style (see the file LICENSE)
--
-- Maintainer : Edward Kmett <ekmett(a)gmail.com>
@@ -29,8 +29,18 @@
import Data.Functor.Identity
import Data.Functor.Product
import Data.Functor.Reverse
+import qualified Data.Monoid as Monoid
+import Data.Orphans ()
+
+#if MIN_VERSION_base(4,4,0)
+import Data.Complex
+#endif
+#if (defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 707) || defined(MIN_VERSION_tagged)
import Data.Proxy
+#endif
+#ifdef MIN_VERSION_tagged
import Data.Tagged
+#endif
#ifdef HLINT
{-# ANN module "hlint: ignore Use section" #-}
@@ -125,3 +135,24 @@
instance Distributive f => Distributive (Reverse f) where
distribute = Reverse . collect getReverse
+
+instance Distributive Monoid.Dual where
+ collect f = Monoid.Dual . fmap (Monoid.getDual . f)
+ distribute = Monoid.Dual . fmap Monoid.getDual
+
+instance Distributive Monoid.Product where
+ collect f = Monoid.Product . fmap (Monoid.getProduct . f)
+ distribute = Monoid.Product . fmap Monoid.getProduct
+
+instance Distributive Monoid.Sum where
+ collect f = Monoid.Sum . fmap (Monoid.getSum . f)
+ distribute = Monoid.Sum . fmap Monoid.getSum
+
+#if MIN_VERSION_base(4,4,0)
+instance Distributive Complex where
+ distribute wc = fmap realP wc :+ fmap imagP wc where
+ -- Redefine realPart and imagPart to avoid incurring redundant RealFloat
+ -- constraints on older versions of base
+ realP (r :+ _) = r
+ imagP (_ :+ i) = i
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/distributive-0.4.4/tests/doctests.hs new/distributive-0.5.0.2/tests/doctests.hs
--- old/distributive-0.4.4/tests/doctests.hs 2014-05-05 22:51:17.000000000 +0200
+++ new/distributive-0.5.0.2/tests/doctests.hs 2016-01-17 01:07:48.000000000 +0100
@@ -1,7 +1,10 @@
+{-# LANGUAGE CPP #-}
module Main where
-import Build_doctests (deps)
+import Build_doctests (autogen_dir, deps)
+#if __GLASGOW_HASKELL__ < 710
import Control.Applicative
+#endif
import Control.Monad
import Data.List
import System.Directory
@@ -11,9 +14,9 @@
main :: IO ()
main = getSources >>= \sources -> doctest $
"-isrc"
- : "-idist/build/autogen"
+ : ("-i" ++ autogen_dir)
: "-optP-include"
- : "-optPdist/build/autogen/cabal_macros.h"
+ : ("-optP" ++ autogen_dir ++ "/cabal_macros.h")
: "-hide-all-packages"
: map ("-package="++) deps ++ sources
1
0
Hello community,
here is the log from the commit of package ghc-contravariant for openSUSE:Factory checked in at 2016-01-28 17:23:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-contravariant (Old)
and /work/SRC/openSUSE:Factory/.ghc-contravariant.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-contravariant"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-contravariant/ghc-contravariant.changes 2015-09-17 09:19:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-contravariant.new/ghc-contravariant.changes 2016-01-28 17:24:36.000000000 +0100
@@ -1,0 +2,7 @@
+Fri Jan 22 08:35:07 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 1.4
+* Improved the performance of Deciding at the cost of downgrading it to Trustworthy.
+* Support for transformers 0.5
+
+-------------------------------------------------------------------
Old:
----
contravariant-1.3.3.tar.gz
New:
----
contravariant-1.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-contravariant.spec ++++++
--- /var/tmp/diff_new_pack.0aGwI2/_old 2016-01-28 17:24:37.000000000 +0100
+++ /var/tmp/diff_new_pack.0aGwI2/_new 2016-01-28 17:24:37.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name contravariant
Name: ghc-contravariant
-Version: 1.3.3
+Version: 1.4
Release: 0
Summary: Contravariant functors
License: BSD-3-Clause
@@ -34,6 +34,7 @@
# Begin cabal-rpm deps:
BuildRequires: ghc-StateVar-devel
BuildRequires: ghc-semigroups-devel
+BuildRequires: ghc-tagged-devel
BuildRequires: ghc-transformers-compat-devel
BuildRequires: ghc-transformers-devel
BuildRequires: ghc-void-devel
++++++ contravariant-1.3.3.tar.gz -> contravariant-1.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/contravariant-1.3.3/CHANGELOG.markdown new/contravariant-1.4/CHANGELOG.markdown
--- old/contravariant-1.3.3/CHANGELOG.markdown 2015-09-04 12:33:20.000000000 +0200
+++ new/contravariant-1.4/CHANGELOG.markdown 2016-01-16 22:55:58.000000000 +0100
@@ -1,3 +1,9 @@
+1.4
+---
+* Improved the performance of `Deciding` at the cost of downgrading it to `Trustworthy`.
+* Support for GHC 8
+* Support for `transformers` 0.5
+
1.3.3
-----
* Add `instance Monoid m => Divisible (Const m)`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/contravariant-1.3.3/contravariant.cabal new/contravariant-1.4/contravariant.cabal
--- old/contravariant-1.3.3/contravariant.cabal 2015-09-04 12:33:20.000000000 +0200
+++ new/contravariant-1.4/contravariant.cabal 2016-01-16 22:55:58.000000000 +0100
@@ -1,6 +1,6 @@
name: contravariant
category: Control, Data
-version: 1.3.3
+version: 1.4
license: BSD3
cabal-version: >= 1.6
license-file: LICENSE
@@ -38,6 +38,11 @@
default: True
manual: True
+flag safe
+ description: Get Safe guarantees rather than merely Trustworthy, but with worse constant factors.
+ default: False
+ manual: True
+
flag StateVar
description:
You can disable the use of the `StateVar` package using `-f-StateVar`.
@@ -50,7 +55,7 @@
hs-source-dirs: src
build-depends:
base < 5,
- transformers >= 0.2 && < 0.5,
+ transformers >= 0.2 && < 0.6,
transformers-compat >= 0.3 && < 1,
void >= 0.6 && < 1
@@ -66,6 +71,9 @@
if impl(ghc >= 7.2 && < 7.6)
build-depends: ghc-prim
+ if flag(safe)
+ cpp-options: -DSAFE
+
exposed-modules:
Data.Functor.Contravariant
Data.Functor.Contravariant.Compose
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/contravariant-1.3.3/src/Data/Functor/Contravariant/Divisible.hs new/contravariant-1.4/src/Data/Functor/Contravariant/Divisible.hs
--- old/contravariant-1.3.3/src/Data/Functor/Contravariant/Divisible.hs 2015-09-04 12:33:20.000000000 +0200
+++ new/contravariant-1.4/src/Data/Functor/Contravariant/Divisible.hs 2016-01-16 22:55:58.000000000 +0100
@@ -1,4 +1,7 @@
{-# LANGUAGE CPP #-}
+{-# LANGUAGE TypeOperators #-}
+{-# OPTIONS_GHC -fno-warn-deprecations #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Functor.Contravariant.Divisible
@@ -20,18 +23,48 @@
) where
import Control.Applicative
+import Control.Applicative.Backwards
+import Control.Arrow
+import Control.Monad.Trans.Error
+import Control.Monad.Trans.Except
+import Control.Monad.Trans.Identity
+import Control.Monad.Trans.List
+import Control.Monad.Trans.Maybe
+import qualified Control.Monad.Trans.RWS.Lazy as Lazy
+import qualified Control.Monad.Trans.RWS.Strict as Strict
+import Control.Monad.Trans.Reader
+import qualified Control.Monad.Trans.State.Lazy as Lazy
+import qualified Control.Monad.Trans.State.Strict as Strict
+import qualified Control.Monad.Trans.Writer.Lazy as Lazy
+import qualified Control.Monad.Trans.Writer.Strict as Strict
+
+import Data.Either
+import Data.Functor.Compose
+import Data.Functor.Constant
import Data.Functor.Contravariant
+import Data.Functor.Product
+import Data.Functor.Reverse
+import Data.Void
-#if __GLASGOW_HASKELL__ < 710
-import Data.Monoid
+#if MIN_VERSION_base(4,8,0)
+import Data.Monoid (Alt(..))
+#else
+import Data.Monoid (Monoid(..))
#endif
-import Data.Void
+#if MIN_VERSION_base(4,7,0) || defined(MIN_VERSION_tagged)
+import Data.Proxy
+#endif
#if MIN_VERSION_StateVar
import Data.StateVar
#endif
+#if __GLASGOW_HASKELL__ >= 702
+#define GHC_GENERICS
+import GHC.Generics
+#endif
+
--------------------------------------------------------------------------------
-- * Contravariant Applicative
--------------------------------------------------------------------------------
@@ -53,7 +86,7 @@
-- @
-- delta a = (a,a)
-- @
---
+--
-- @'divide' 'delta'@ should be associative with 'conquer' as a unit
--
-- @
@@ -94,7 +127,7 @@
-- | Redundant, but provided for symmetry.
--
-- @
--- 'conquered' = 'conquer
+-- 'conquered' = 'conquer'
-- @
conquered :: Divisible f => f ()
conquered = conquer
@@ -108,7 +141,7 @@
-- @
liftD :: Divisible f => (a -> b) -> f b -> f a
liftD f = divide ((,) () . f) conquer
-
+
instance Monoid r => Divisible (Op r) where
divide f (Op g) (Op h) = Op $ \a -> case f a of
(b, c) -> g b `mappend` h c
@@ -135,6 +168,118 @@
divide _ (Const a) (Const b) = Const (mappend a b)
conquer = Const mempty
+#if MIN_VERSION_base(4,8,0)
+instance Divisible f => Divisible (Alt f) where
+ divide f (Alt l) (Alt r) = Alt $ divide f l r
+ conquer = Alt conquer
+#endif
+
+#ifdef GHC_GENERICS
+instance Divisible U1 where
+ divide _ U1 U1 = U1
+ conquer = U1
+
+instance Divisible f => Divisible (Rec1 f) where
+ divide f (Rec1 l) (Rec1 r) = Rec1 $ divide f l r
+ conquer = Rec1 conquer
+
+instance Divisible f => Divisible (M1 i c f) where
+ divide f (M1 l) (M1 r) = M1 $ divide f l r
+ conquer = M1 conquer
+
+instance (Divisible f, Divisible g) => Divisible (f :*: g) where
+ divide f (l1 :*: r1) (l2 :*: r2) = divide f l1 l2 :*: divide f r1 r2
+ conquer = conquer :*: conquer
+
+instance (Applicative f, Divisible g) => Divisible (f :.: g) where
+ divide f (Comp1 l) (Comp1 r) = Comp1 (divide f <$> l <*> r)
+ conquer = Comp1 $ pure conquer
+#endif
+
+instance Divisible f => Divisible (Backwards f) where
+ divide f (Backwards l) (Backwards r) = Backwards $ divide f l r
+ conquer = Backwards conquer
+
+instance Divisible m => Divisible (ErrorT e m) where
+ divide f (ErrorT l) (ErrorT r) = ErrorT $ divide (funzip . fmap f) l r
+ conquer = ErrorT conquer
+
+instance Divisible m => Divisible (ExceptT e m) where
+ divide f (ExceptT l) (ExceptT r) = ExceptT $ divide (funzip . fmap f) l r
+ conquer = ExceptT conquer
+
+instance Divisible f => Divisible (IdentityT f) where
+ divide f (IdentityT l) (IdentityT r) = IdentityT $ divide f l r
+ conquer = IdentityT conquer
+
+instance Divisible m => Divisible (ListT m) where
+ divide f (ListT l) (ListT r) = ListT $ divide (funzip . map f) l r
+ conquer = ListT conquer
+
+instance Divisible m => Divisible (MaybeT m) where
+ divide f (MaybeT l) (MaybeT r) = MaybeT $ divide (funzip . fmap f) l r
+ conquer = MaybeT conquer
+
+instance Divisible m => Divisible (ReaderT r m) where
+ divide abc (ReaderT rmb) (ReaderT rmc) = ReaderT $ \r -> divide abc (rmb r) (rmc r)
+ conquer = ReaderT $ \_ -> conquer
+
+instance Divisible m => Divisible (Lazy.RWST r w s m) where
+ divide abc (Lazy.RWST rsmb) (Lazy.RWST rsmc) = Lazy.RWST $ \r s ->
+ divide (\ ~(a, s', w) -> case abc a of
+ ~(b, c) -> ((b, s', w), (c, s', w)))
+ (rsmb r s) (rsmc r s)
+ conquer = Lazy.RWST $ \_ _ -> conquer
+
+instance Divisible m => Divisible (Strict.RWST r w s m) where
+ divide abc (Strict.RWST rsmb) (Strict.RWST rsmc) = Strict.RWST $ \r s ->
+ divide (\(a, s', w) -> case abc a of
+ (b, c) -> ((b, s', w), (c, s', w)))
+ (rsmb r s) (rsmc r s)
+ conquer = Strict.RWST $ \_ _ -> conquer
+
+instance Divisible m => Divisible (Lazy.StateT s m) where
+ divide f (Lazy.StateT l) (Lazy.StateT r) = Lazy.StateT $ \s ->
+ divide (lazyFanout f) (l s) (r s)
+ conquer = Lazy.StateT $ \_ -> conquer
+
+instance Divisible m => Divisible (Strict.StateT s m) where
+ divide f (Strict.StateT l) (Strict.StateT r) = Strict.StateT $ \s ->
+ divide (strictFanout f) (l s) (r s)
+ conquer = Strict.StateT $ \_ -> conquer
+
+instance Divisible m => Divisible (Lazy.WriterT w m) where
+ divide f (Lazy.WriterT l) (Lazy.WriterT r) = Lazy.WriterT $
+ divide (lazyFanout f) l r
+ conquer = Lazy.WriterT conquer
+
+instance Divisible m => Divisible (Strict.WriterT w m) where
+ divide f (Strict.WriterT l) (Strict.WriterT r) = Strict.WriterT $
+ divide (strictFanout f) l r
+ conquer = Strict.WriterT conquer
+
+instance (Applicative f, Divisible g) => Divisible (Compose f g) where
+ divide f (Compose l) (Compose r) = Compose (divide f <$> l <*> r)
+ conquer = Compose $ pure conquer
+
+instance Monoid m => Divisible (Constant m) where
+ divide _ (Constant l) (Constant r) = Constant $ mappend l r
+ conquer = Constant mempty
+
+instance (Divisible f, Divisible g) => Divisible (Product f g) where
+ divide f (Pair l1 r1) (Pair l2 r2) = Pair (divide f l1 l2) (divide f r1 r2)
+ conquer = Pair conquer conquer
+
+instance Divisible f => Divisible (Reverse f) where
+ divide f (Reverse l) (Reverse r) = Reverse $ divide f l r
+ conquer = Reverse conquer
+
+#if MIN_VERSION_base(4,7,0) || defined(MIN_VERSION_tagged)
+instance Divisible Proxy where
+ divide _ Proxy Proxy = Proxy
+ conquer = Proxy
+#endif
+
#if MIN_VERSION_StateVar
instance Divisible SettableStateVar where
divide k (SettableStateVar l) (SettableStateVar r) = SettableStateVar $ \ a -> case k a of
@@ -142,13 +287,24 @@
conquer = SettableStateVar $ \_ -> return ()
#endif
+lazyFanout :: (a -> (b, c)) -> (a, s) -> ((b, s), (c, s))
+lazyFanout f ~(a, s) = case f a of
+ ~(b, c) -> ((b, s), (c, s))
+
+strictFanout :: (a -> (b, c)) -> (a, s) -> ((b, s), (c, s))
+strictFanout f (a, s) = case f a of
+ (b, c) -> ((b, s), (c, s))
+
+funzip :: Functor f => f (a, b) -> (f a, f b)
+funzip = fmap fst &&& fmap snd
+
--------------------------------------------------------------------------------
-- * Contravariant Alternative
--------------------------------------------------------------------------------
-- |
--
--- A 'Divisible' contravariant functor is a monoid object in the category of presheaves
+-- A 'Divisible' contravariant functor is a monoid object in the category of presheaves
-- from Hask to Hask, equipped with Day convolution mapping the cartesian product of the
-- source to the Cartesian product of the target.
--
@@ -210,6 +366,123 @@
lose f = Op $ absurd . f
choose f (Op g) (Op h) = Op $ either g h . f
+#if MIN_VERSION_base(4,8,0)
+instance Decidable f => Decidable (Alt f) where
+ lose = Alt . lose
+ choose f (Alt l) (Alt r) = Alt $ choose f l r
+#endif
+
+#ifdef GHC_GENERICS
+instance Decidable U1 where
+ lose _ = U1
+ choose _ U1 U1 = U1
+
+instance Decidable f => Decidable (Rec1 f) where
+ lose = Rec1 . lose
+ choose f (Rec1 l) (Rec1 r) = Rec1 $ choose f l r
+
+instance Decidable f => Decidable (M1 i c f) where
+ lose = M1 . lose
+ choose f (M1 l) (M1 r) = M1 $ choose f l r
+
+instance (Decidable f, Decidable g) => Decidable (f :*: g) where
+ lose f = lose f :*: lose f
+ choose f (l1 :*: r1) (l2 :*: r2) = choose f l1 l2 :*: choose f r1 r2
+
+instance (Applicative f, Decidable g) => Decidable (f :.: g) where
+ lose = Comp1 . pure . lose
+ choose f (Comp1 l) (Comp1 r) = Comp1 (choose f <$> l <*> r)
+#endif
+
+instance Decidable f => Decidable (Backwards f) where
+ lose = Backwards . lose
+ choose f (Backwards l) (Backwards r) = Backwards $ choose f l r
+
+instance Decidable f => Decidable (IdentityT f) where
+ lose = IdentityT . lose
+ choose f (IdentityT l) (IdentityT r) = IdentityT $ choose f l r
+
+instance Decidable m => Decidable (ReaderT r m) where
+ lose f = ReaderT $ \_ -> lose f
+ choose abc (ReaderT rmb) (ReaderT rmc) = ReaderT $ \r -> choose abc (rmb r) (rmc r)
+
+instance Decidable m => Decidable (Lazy.RWST r w s m) where
+ lose f = Lazy.RWST $ \_ _ -> contramap (\ ~(a, _, _) -> a) (lose f)
+ choose abc (Lazy.RWST rsmb) (Lazy.RWST rsmc) = Lazy.RWST $ \r s ->
+ choose (\ ~(a, s', w) -> either (Left . betuple3 s' w)
+ (Right . betuple3 s' w)
+ (abc a))
+ (rsmb r s) (rsmc r s)
+
+instance Decidable m => Decidable (Strict.RWST r w s m) where
+ lose f = Strict.RWST $ \_ _ -> contramap (\(a, _, _) -> a) (lose f)
+ choose abc (Strict.RWST rsmb) (Strict.RWST rsmc) = Strict.RWST $ \r s ->
+ choose (\(a, s', w) -> either (Left . betuple3 s' w)
+ (Right . betuple3 s' w)
+ (abc a))
+ (rsmb r s) (rsmc r s)
+
+instance Divisible m => Decidable (ListT m) where
+ lose _ = ListT conquer
+ choose f (ListT l) (ListT r) = ListT $ divide ((lefts &&& rights) . map f) l r
+
+instance Divisible m => Decidable (MaybeT m) where
+ lose _ = MaybeT conquer
+ choose f (MaybeT l) (MaybeT r) = MaybeT $
+ divide ( maybe (Nothing, Nothing)
+ (either (\b -> (Just b, Nothing))
+ (\c -> (Nothing, Just c)))
+ . fmap f) l r
+
+instance Decidable m => Decidable (Lazy.StateT s m) where
+ lose f = Lazy.StateT $ \_ -> contramap lazyFst (lose f)
+ choose f (Lazy.StateT l) (Lazy.StateT r) = Lazy.StateT $ \s ->
+ choose (\ ~(a, s') -> either (Left . betuple s') (Right . betuple s') (f a))
+ (l s) (r s)
+
+instance Decidable m => Decidable (Strict.StateT s m) where
+ lose f = Strict.StateT $ \_ -> contramap fst (lose f)
+ choose f (Strict.StateT l) (Strict.StateT r) = Strict.StateT $ \s ->
+ choose (\(a, s') -> either (Left . betuple s') (Right . betuple s') (f a))
+ (l s) (r s)
+
+instance Decidable m => Decidable (Lazy.WriterT w m) where
+ lose f = Lazy.WriterT $ contramap lazyFst (lose f)
+ choose f (Lazy.WriterT l) (Lazy.WriterT r) = Lazy.WriterT $
+ choose (\ ~(a, s') -> either (Left . betuple s') (Right . betuple s') (f a)) l r
+
+instance Decidable m => Decidable (Strict.WriterT w m) where
+ lose f = Strict.WriterT $ contramap fst (lose f)
+ choose f (Strict.WriterT l) (Strict.WriterT r) = Strict.WriterT $
+ choose (\(a, s') -> either (Left . betuple s') (Right . betuple s') (f a)) l r
+
+instance (Applicative f, Decidable g) => Decidable (Compose f g) where
+ lose = Compose . pure . lose
+ choose f (Compose l) (Compose r) = Compose (choose f <$> l <*> r)
+
+instance (Decidable f, Decidable g) => Decidable (Product f g) where
+ lose f = Pair (lose f) (lose f)
+ choose f (Pair l1 r1) (Pair l2 r2) = Pair (choose f l1 l2) (choose f r1 r2)
+
+instance Decidable f => Decidable (Reverse f) where
+ lose = Reverse . lose
+ choose f (Reverse l) (Reverse r) = Reverse $ choose f l r
+
+betuple :: s -> a -> (a, s)
+betuple s a = (a, s)
+
+betuple3 :: s -> w -> a -> (a, s, w)
+betuple3 s w a = (a, s, w)
+
+lazyFst :: (a, b) -> a
+lazyFst ~(a, _) = a
+
+#if MIN_VERSION_base(4,7,0) || defined(MIN_VERSION_tagged)
+instance Decidable Proxy where
+ lose _ = Proxy
+ choose _ Proxy Proxy = Proxy
+#endif
+
#if MIN_VERSION_StateVar
instance Decidable SettableVar where
lose k = SettableStateVar (absurd . k)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/contravariant-1.3.3/src/Data/Functor/Contravariant/Generic.hs new/contravariant-1.4/src/Data/Functor/Contravariant/Generic.hs
--- old/contravariant-1.3.3/src/Data/Functor/Contravariant/Generic.hs 2015-09-04 12:33:20.000000000 +0200
+++ new/contravariant-1.4/src/Data/Functor/Contravariant/Generic.hs 2016-01-16 22:55:58.000000000 +0100
@@ -1,5 +1,9 @@
{-# LANGUAGE CPP #-}
+#ifdef SAFE
{-# LANGUAGE BangPatterns #-}
+#elif __GLASGOW_HASKELL__ >= 704
+{-# LANGUAGE Trustworthy #-}
+#endif
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE FlexibleInstances #-}
@@ -32,6 +36,9 @@
import Data.Functor.Contravariant
import Data.Functor.Contravariant.Divisible
import GHC.Generics
+#ifndef SAFE
+import Unsafe.Coerce
+#endif
-- | This provides machinery for deconstructing an arbitrary 'Generic' instance using a 'Decidable' 'Contravariant' functor.
--
@@ -84,13 +91,13 @@
gdeciding _ _ = conquer
instance GDeciding q V1 where
- gdeciding _ _ = lose (\ !_ -> error "impossible")
+ gdeciding _ _ = glose
instance (GDeciding q f, GDeciding q g) => GDeciding q (f :*: g) where
- gdeciding p q = divide (\(a :*: b) -> (a, b)) (gdeciding p q) (gdeciding p q)
+ gdeciding p q = gdivide (gdeciding p q) (gdeciding p q)
instance (GDeciding q f, GDeciding q g) => GDeciding q (f :+: g) where
- gdeciding p q = choose (\ xs -> case xs of L1 a -> Left a; R1 a -> Right a) (gdeciding p q) (gdeciding p q)
+ gdeciding p q = gchoose (gdeciding p q) (gdeciding p q)
#ifndef HLINT
instance q p => GDeciding q (K1 i p) where
@@ -109,18 +116,44 @@
gdeciding1 _ _ _ = conquer
instance GDeciding1 q V1 where
- gdeciding1 _ _ _ = lose (\ !_ -> error "impossible")
+ gdeciding1 _ _ _ = glose
instance (GDeciding1 q f, GDeciding1 q g) => GDeciding1 q (f :*: g) where
- gdeciding1 p q r = divide (\(a :*: b) -> (a, b)) (gdeciding1 p q r) (gdeciding1 p q r)
+ gdeciding1 p q r = gdivide (gdeciding1 p q r) (gdeciding1 p q r)
instance (GDeciding1 q f, GDeciding1 q g) => GDeciding1 q (f :+: g) where
- gdeciding1 p q r = choose (\ xs -> case xs of L1 a -> Left a; R1 a -> Right a) (gdeciding1 p q r) (gdeciding1 p q r)
+ gdeciding1 p q r = gchoose (gdeciding1 p q r) (gdeciding1 p q r)
+
+
+
+glose :: Decidable f => f (V1 a)
+#ifdef SAFE
+glose = lose (\ !_ -> error "impossible")
+#else
+glose = lose unsafeCoerce
+#endif
+{-# INLINE glose #-}
+
+gdivide :: Divisible f => f (g a) -> f (h a) -> f ((g:*:h) a)
+#ifdef SAFE
+gdivide = divide (\(f:*:g) -> (f,g))
+#else
+gdivide = divide unsafeCoerce
+#endif
+{-# INLINE gdivide #-}
+
+gchoose :: Decidable f => f (g a) -> f (h a) -> f ((g:+:h) a)
+#ifdef SAFE
+gchoose = choose (\xs -> case xs of L1 a -> Left a; R1 b -> Right b)
+#else
+gchoose = choose unsafeCoerce
+#endif
+{-# INLINE gchoose #-}
#ifndef HLINT
instance q p => GDeciding1 q (K1 i p) where
-#endif
gdeciding1 _ q _ = contramap unK1 q
+#endif
instance GDeciding1 q f => GDeciding1 q (M1 i c f) where
gdeciding1 p q r = contramap unM1 (gdeciding1 p q r)
1
0
Hello community,
here is the log from the commit of package ghc-constraints for openSUSE:Factory checked in at 2016-01-28 17:23:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-constraints (Old)
and /work/SRC/openSUSE:Factory/.ghc-constraints.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-constraints"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-constraints/ghc-constraints.changes 2016-01-08 15:23:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-constraints.new/ghc-constraints.changes 2016-01-28 17:24:35.000000000 +0100
@@ -1,0 +2,10 @@
+Wed Jan 20 09:03:54 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.8
+* Remove the need for closed type families from the new Forall.
+* Found a nicer encoding of the initial object in the category of constraints
+ using a nullary constraint.
+* binary 0.8 compatibility
+* transformers 0.5 compatibility
+
+-------------------------------------------------------------------
Old:
----
constraints-0.6.tar.gz
New:
----
constraints-0.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-constraints.spec ++++++
--- /var/tmp/diff_new_pack.DVAEXM/_old 2016-01-28 17:24:36.000000000 +0100
+++ /var/tmp/diff_new_pack.DVAEXM/_new 2016-01-28 17:24:36.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name constraints
Name: ghc-constraints
-Version: 0.6
+Version: 0.8
Release: 0
Summary: Constraint manipulation
License: BSD-2-Clause
++++++ constraints-0.6.tar.gz -> constraints-0.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/constraints-0.6/constraints.cabal new/constraints-0.8/constraints.cabal
--- old/constraints-0.6/constraints.cabal 2015-11-10 14:16:35.000000000 +0100
+++ new/constraints-0.8/constraints.cabal 2016-01-17 03:10:38.000000000 +0100
@@ -1,6 +1,6 @@
name: constraints
category: Constraints
-version: 0.6
+version: 0.8
license: BSD3
cabal-version: >= 1.10
license-file: LICENSE
@@ -17,7 +17,7 @@
This package provides a vocabulary for working with them.
build-type: Simple
-tested-with: GHC == 7.8.3, GHC == 7.7.20131027, GHC == 7.7.20131025
+tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.1, GHC == 7.10.2
extra-source-files: README.markdown
source-repository head
@@ -41,26 +41,24 @@
GADTs
build-depends:
- base >= 4.6 && < 5,
- binary >= 0.7.3 && < 0.8,
+ base >= 4.7 && < 5,
+ binary >= 0.7.3 && < 0.9,
deepseq >= 1.3 && < 1.5,
ghc-prim,
hashable >= 1.2 && < 1.3,
mtl >= 2 && < 2.3,
- transformers >= 0.2 && < 0.5,
+ transformers >= 0.2 && < 0.6,
transformers-compat >= 0.4 && < 1
if impl(ghc < 7.8)
build-depends:
newtype >= 0.2 && < 0.3,
tagged >= 0.2 && < 1
- else
- exposed-modules:
- Data.Constraint.Forall
exposed-modules:
Data.Constraint
Data.Constraint.Deferrable
+ Data.Constraint.Forall
Data.Constraint.Lifting
Data.Constraint.Unsafe
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/constraints-0.6/src/Data/Constraint/Forall.hs new/constraints-0.8/src/Data/Constraint/Forall.hs
--- old/constraints-0.6/src/Data/Constraint/Forall.hs 2015-11-10 14:16:35.000000000 +0100
+++ new/constraints-0.8/src/Data/Constraint/Forall.hs 2016-01-17 03:10:38.000000000 +0100
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE ScopedTypeVariables #-}
@@ -7,11 +8,14 @@
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE Trustworthy #-}
{-# LANGUAGE PolyKinds #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses #-}
+#endif
-----------------------------------------------------------------------------
-- |
-- Module : Data.Constraint.Forall
-- Copyright : (C) 2011-2015 Edward Kmett,
--- (C) 2015 Ørjan Johansen,
+-- (C) 2015 Ørjan Johansen
-- License : BSD-style (see the file LICENSE)
--
-- Maintainer : Edward Kmett <ekmett(a)gmail.com>
@@ -95,22 +99,22 @@
-- which would be disastrous.
-- | A representation of the quantified constraint @forall a. p a@.
-type family Forall (p :: k -> Constraint) :: Constraint where
- Forall p = Forall_ p
+type family Forall (p :: k -> Constraint) :: Constraint
+type instance Forall p = Forall_ p
class p (Skolem p) => Forall_ (p :: k -> Constraint)
instance p (Skolem p) => Forall_ (p :: k -> Constraint)
-- | A representation of the quantified constraint @forall a. p (f a)@.
-type family ForallF (p :: k2 -> Constraint) (f :: k1 -> k2) :: Constraint where
- ForallF p f = ForallF_ p f
+type family ForallF (p :: k2 -> Constraint) (f :: k1 -> k2) :: Constraint
+type instance ForallF p f = ForallF_ p f
class p (f (SkolemF p f)) => ForallF_ (p :: k2 -> Constraint) (f :: k1 -> k2)
instance p (f (SkolemF p f)) => ForallF_ (p :: k2 -> Constraint) (f :: k1 -> k2)
type Forall1 p = Forall p
-- | A representation of the quantified constraint @forall f a. p (t f a)@.
-type family ForallT (p :: k3 -> Constraint) (t :: k1 -> k2 -> k3) :: Constraint where
- ForallT p t = ForallT_ p t
+type family ForallT (p :: k3 -> Constraint) (t :: k1 -> k2 -> k3) :: Constraint
+type instance ForallT p t = ForallT_ p t
class p (t (SkolemT1 p t) (SkolemT2 p t)) => ForallT_ (p :: k3 -> Constraint) (t :: k1 -> k2 -> k3)
instance p (t (SkolemT1 p t) (SkolemT2 p t)) => ForallT_ (p :: k3 -> Constraint) (t :: k1 -> k2 -> k3)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/constraints-0.6/src/Data/Constraint/Lifting.hs new/constraints-0.8/src/Data/Constraint/Lifting.hs
--- old/constraints-0.6/src/Data/Constraint/Lifting.hs 2015-11-10 14:16:35.000000000 +0100
+++ new/constraints-0.8/src/Data/Constraint/Lifting.hs 2016-01-17 03:10:38.000000000 +0100
@@ -112,6 +112,17 @@
instance Traversable f => Lifting Traversable (Compose f) where lifting = Sub Dict
instance Applicative f => Lifting Applicative (Compose f) where lifting = Sub Dict
instance Alternative f => Lifting Alternative (Compose f) where lifting = Sub Dict -- overconstrained
+
+#if MIN_VERSION_transformers(0,5,0)
+instance Show1 f => Lifting Show1 (Compose f) where lifting = Sub Dict
+instance Eq1 f => Lifting Eq1 (Compose f) where lifting = Sub Dict
+instance Ord1 f => Lifting Ord1 (Compose f) where lifting = Sub Dict
+instance Read1 f => Lifting Read1 (Compose f) where lifting = Sub Dict
+instance (Eq1 f, Eq1 g) => Lifting Eq (Compose f g) where lifting = Sub Dict
+instance (Ord1 f, Ord1 g) => Lifting Ord (Compose f g) where lifting = Sub Dict
+instance (Read1 f, Read1 g) => Lifting Read (Compose f g) where lifting = Sub Dict
+instance (Show1 f, Show1 g) => Lifting Show (Compose f g) where lifting = Sub Dict
+#else
instance (Functor f, Show1 f) => Lifting Show1 (Compose f) where lifting = Sub Dict
instance (Functor f, Eq1 f) => Lifting Eq1 (Compose f) where lifting = Sub Dict
instance (Functor f, Ord1 f) => Lifting Ord1 (Compose f) where lifting = Sub Dict
@@ -120,6 +131,7 @@
instance (Functor f, Ord1 f, Ord1 g) => Lifting Ord (Compose f g) where lifting = Sub Dict
instance (Functor f, Read1 f, Read1 g) => Lifting Read (Compose f g) where lifting = Sub Dict
instance (Functor f, Show1 f, Show1 g) => Lifting Show (Compose f g) where lifting = Sub Dict
+#endif
instance Functor f => Lifting Functor (Functor.Product f) where lifting = Sub Dict
instance Foldable f => Lifting Foldable (Functor.Product f) where lifting = Sub Dict
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/constraints-0.6/src/Data/Constraint/Unsafe.hs new/constraints-0.8/src/Data/Constraint/Unsafe.hs
--- old/constraints-0.6/src/Data/Constraint/Unsafe.hs 2015-11-10 14:16:35.000000000 +0100
+++ new/constraints-0.8/src/Data/Constraint/Unsafe.hs 2016-01-17 03:10:38.000000000 +0100
@@ -6,6 +6,9 @@
{-# LANGUAGE Rank2Types #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE Unsafe #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}
+#endif
-----------------------------------------------------------------------------
-- |
-- Module : Data.Constraint.Unsafe
@@ -56,10 +59,19 @@
unsafeUnderive :: Coercible n o => (o -> n) -> t n :- t o
unsafeUnderive _ = unsafeCoerceConstraint
+
-- | Construct an Applicative instance from a Monad
unsafeApplicative :: forall m a. Monad m => (Applicative m => m a) -> m a
+#if __GLASGOW_HASKELL__ < 710
unsafeApplicative m = m \\ trans (unsafeCoerceConstraint :: Applicative (WrappedMonad m) :- Applicative m) ins
+#else
+unsafeApplicative m = m
+#endif
-- | Construct an Alternative instance from a MonadPlus
unsafeAlternative :: forall m a. MonadPlus m => (Alternative m => m a) -> m a
+#if __GLASGOW_HASKELL__ < 710
unsafeAlternative m = m \\ trans (unsafeCoerceConstraint :: Alternative (WrappedMonad m) :- Alternative m) ins
+#else
+unsafeAlternative m = m
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/constraints-0.6/src/Data/Constraint.hs new/constraints-0.8/src/Data/Constraint.hs
--- old/constraints-0.6/src/Data/Constraint.hs 2015-11-10 14:16:35.000000000 +0100
+++ new/constraints-0.8/src/Data/Constraint.hs 2016-01-17 03:10:38.000000000 +0100
@@ -18,6 +18,12 @@
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE RoleAnnotations #-}
#endif
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses #-}
+#endif
+#if __GLASGOW_HASKELL__ >= 708 && __GLASGOW_HASKELL__ < 710
+{-# LANGUAGE NullaryTypeClasses #-}
+#endif
-----------------------------------------------------------------------------
-- |
-- Module : Data.Constraint
@@ -58,6 +64,7 @@
, weaken1, weaken2, contract
, (&&&), (***)
, trans, refl
+ , Bottom
, top, bottom
-- * Dict is fully faithful
, mapDict
@@ -79,7 +86,12 @@
#if __GLASGOW_HASKELL__ >= 707
import Data.Data
#endif
+#if __GLASGOW_HASKELL__ <= 710
import GHC.Prim (Constraint)
+#else
+import GHC.Types (Constraint)
+#endif
+import qualified GHC.Prim as Prim
-- | Values of type @'Dict' p@ capture a dictionary for a constraint of type @p@.
--
@@ -292,21 +304,14 @@
top :: a :- ()
top = Sub Dict
-type family Ex (a :: *) (c :: Constraint) :: Constraint
-type instance Ex () c = ()
-type instance Ex Bool c = c
-
-falso :: (() ~ a) :- Ex a c
-falso = Sub Dict
+-- | 'Any' inhabits every kind, including 'Constraint' but is uninhabited, making it impossible to define an instance.
+class Prim.Any => Bottom where
+ no :: Dict a
-- |
--- A bad type coercion lets you derive any constraint you want.
---
--- These are the initial arrows of the category and @(() ~ Bool)@ is the initial object
---
-- This demonstrates the law of classical logic <http://en.wikipedia.org/wiki/Principle_of_explosion "ex falso quodlibet">
-bottom :: (() ~ Bool) :- c
-bottom = falso
+bottom :: Bottom :- a
+bottom = Sub no
--------------------------------------------------------------------------------
-- Dict is fully faithful
@@ -375,7 +380,7 @@
instance Class () (b :=> a) where cls = Sub Dict
instance Class b a => () :=> Class b a where ins = Sub Dict
-instance (b :=> a) => () :=> b :=> a where ins = Sub Dict
+instance (b :=> a) => () :=> (b :=> a) where ins = Sub Dict
instance Class () () where cls = Sub Dict
instance () :=> () where ins = Sub Dict
1
0
Hello community,
here is the log from the commit of package ghc-cgi for openSUSE:Factory checked in at 2016-01-28 17:23:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-cgi (Old)
and /work/SRC/openSUSE:Factory/.ghc-cgi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-cgi"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-cgi/ghc-cgi.changes 2015-08-25 10:08:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-cgi.new/ghc-cgi.changes 2016-01-28 17:24:34.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Jan 22 08:00:11 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 3001.2.2.3
+* CGI.hs haddock: Use web.archive.org link for CGI specification
+
+-------------------------------------------------------------------
Old:
----
cgi-3001.2.2.2.tar.gz
New:
----
cgi-3001.2.2.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-cgi.spec ++++++
--- /var/tmp/diff_new_pack.4kBb5C/_old 2016-01-28 17:24:35.000000000 +0100
+++ /var/tmp/diff_new_pack.4kBb5C/_new 2016-01-28 17:24:35.000000000 +0100
@@ -18,7 +18,7 @@
%global pkg_name cgi
Name: ghc-cgi
-Version: 3001.2.2.2
+Version: 3001.2.2.3
Release: 0
Summary: A library for writing CGI programs
Group: System/Libraries
++++++ cgi-3001.2.2.2.tar.gz -> cgi-3001.2.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cgi-3001.2.2.2/Network/CGI.hs new/cgi-3001.2.2.3/Network/CGI.hs
--- old/cgi-3001.2.2.2/Network/CGI.hs 2015-04-07 00:45:15.000000000 +0200
+++ new/cgi-3001.2.2.3/Network/CGI.hs 2016-01-20 08:43:22.000000000 +0100
@@ -13,7 +13,7 @@
-- Portability : non-portable (uses Control.Monad.State)
--
-- Simple Library for writing CGI programs.
--- See <http://hoohoo.ncsa.uiuc.edu/cgi/interface.html> for the
+-- See <https://web.archive.org/web/20100109233524/http://hoohoo.ncsa.illinois.edu/…> for the
-- CGI specification.
--
-- This version of the library is for systems with version 2.0 or greater
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cgi-3001.2.2.2/cgi.cabal new/cgi-3001.2.2.3/cgi.cabal
--- old/cgi-3001.2.2.2/cgi.cabal 2015-04-07 00:45:15.000000000 +0200
+++ new/cgi-3001.2.2.3/cgi.cabal 2016-01-20 08:43:22.000000000 +0100
@@ -1,5 +1,5 @@
Name: cgi
-Version: 3001.2.2.2
+Version: 3001.2.2.3
Copyright: Bjorn Bringert, John Chee, Andy Gill, Anders Kaseorg,
Ian Lynagh, Erik Meijer, Sven Panne, Jeremy Shaw
Category: Network
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cgi-3001.2.2.2/changelog new/cgi-3001.2.2.3/changelog
--- old/cgi-3001.2.2.2/changelog 2015-04-07 00:45:15.000000000 +0200
+++ new/cgi-3001.2.2.3/changelog 2016-01-20 08:43:22.000000000 +0100
@@ -1,3 +1,13 @@
+3001.2.2.3
+
+### Changed
+* CGI.hs haddock: Use web.archive.org link for CGI specification
+
+3001.2.2.2
+
+### Changed
+* Added support for building with mtl < 2.2.1 via flags
+
3001.2.2.1
### Changed
1
0
Hello community,
here is the log from the commit of package ghc-cereal for openSUSE:Factory checked in at 2016-01-28 17:23:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-cereal (Old)
and /work/SRC/openSUSE:Factory/.ghc-cereal.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-cereal"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-cereal/ghc-cereal.changes 2015-05-21 08:36:46.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-cereal.new/ghc-cereal.changes 2016-01-28 17:24:33.000000000 +0100
@@ -1,0 +2,11 @@
+Tue Jan 26 08:30:51 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.5.1.0
+* Switch to using the builder provided by the ByteString package
+* Change the encoding of Float and Double with the Serialize class to use the
+ Data.Serialize.IEEE754 module
+* Add support for encoding and decoding ShortByteString
+* New and improved test suite thanks to Kei Hibino
+* Fix two bugs involving the lookAhead combinator and partial chunks.
+
+-------------------------------------------------------------------
Old:
----
cereal-0.4.1.1.tar.gz
New:
----
cereal-0.5.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-cereal.spec ++++++
--- /var/tmp/diff_new_pack.OwosoL/_old 2016-01-28 17:24:34.000000000 +0100
+++ /var/tmp/diff_new_pack.OwosoL/_new 2016-01-28 17:24:34.000000000 +0100
@@ -21,7 +21,7 @@
%global debug_package %{nil}
Name: ghc-cereal
-Version: 0.4.1.1
+Version: 0.5.1.0
Release: 0
Summary: A binary serialization library
License: BSD-3-Clause
++++++ cereal-0.4.1.1.tar.gz -> cereal-0.5.1.0.tar.gz ++++++
++++ 3518 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package cabal-install for openSUSE:Factory checked in at 2016-01-28 17:23:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cabal-install (Old)
and /work/SRC/openSUSE:Factory/.cabal-install.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cabal-install"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cabal-install/cabal-install.changes 2016-01-05 21:54:59.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cabal-install.new/cabal-install.changes 2016-01-28 17:24:32.000000000 +0100
@@ -1,0 +2,5 @@
+Sun Jan 24 10:19:03 UTC 2016 - mimi.vx(a)gmail.com
+
+- relax HTTP dep
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cabal-install.spec ++++++
--- /var/tmp/diff_new_pack.0WThy0/_old 2016-01-28 17:24:33.000000000 +0100
+++ /var/tmp/diff_new_pack.0WThy0/_new 2016-01-28 17:24:33.000000000 +0100
@@ -56,6 +56,7 @@
%prep
%setup -q
+cabal-tweak-dep-ver HTTP "< 4000.3" "< 4000.4"
%build
%ghc_bin_build
1
0
Hello community,
here is the log from the commit of package ghc-cabal-helper for openSUSE:Factory checked in at 2016-01-28 17:23:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-cabal-helper (Old)
and /work/SRC/openSUSE:Factory/.ghc-cabal-helper.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-cabal-helper"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-cabal-helper/ghc-cabal-helper.changes 2016-01-22 01:08:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-cabal-helper.new/ghc-cabal-helper.changes 2016-01-28 17:24:31.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Jan 22 07:55:32 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.6.3.1
+
+-------------------------------------------------------------------
Old:
----
cabal-helper-0.6.3.0.tar.gz
New:
----
cabal-helper-0.6.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-cabal-helper.spec ++++++
--- /var/tmp/diff_new_pack.BjaXtF/_old 2016-01-28 17:24:32.000000000 +0100
+++ /var/tmp/diff_new_pack.BjaXtF/_new 2016-01-28 17:24:32.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name cabal-helper
%bcond_with tests
Name: ghc-cabal-helper
-Version: 0.6.3.0
+Version: 0.6.3.1
Release: 0
Summary: Simple interface to some of Cabal's configuration state used by ghc-mod
License: AGPL-3.0+
++++++ cabal-helper-0.6.3.0.tar.gz -> cabal-helper-0.6.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-helper-0.6.3.0/CabalHelper/Compile.hs new/cabal-helper-0.6.3.1/CabalHelper/Compile.hs
--- old/cabal-helper-0.6.3.0/CabalHelper/Compile.hs 2015-11-25 23:10:09.000000000 +0100
+++ new/cabal-helper-0.6.3.1/CabalHelper/Compile.hs 2016-01-14 19:19:13.000000000 +0100
@@ -97,7 +97,8 @@
compileSandbox :: FilePath -> MaybeT IO (Either ExitCode FilePath)
compileSandbox chdir = do
sandbox <- MaybeT $ getSandboxPkgDb projdir (display buildPlatform) =<< ghcVersion opts
- ver <- MaybeT $ find (== cabalVer) <$> listCabalVersions' opts (Just sandbox)
+ ver <- MaybeT $ logSomeError opts "compileSandbox" $
+ find (== cabalVer) <$> listCabalVersions' opts (Just sandbox)
vLog opts $ logMsg ++ "sandbox package-db"
liftIO $ compileWithPkg chdir (Just sandbox) ver
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-helper-0.6.3.0/CabalHelper/GuessGhc.hs new/cabal-helper-0.6.3.1/CabalHelper/GuessGhc.hs
--- old/cabal-helper-0.6.3.0/CabalHelper/GuessGhc.hs 2015-04-27 21:16:53.000000000 +0200
+++ new/cabal-helper-0.6.3.1/CabalHelper/GuessGhc.hs 2016-01-17 21:29:42.000000000 +0100
@@ -49,11 +49,11 @@
path = ghcPath
dir = takeDirectory path
versionSuffix = takeVersionSuffix (dropExeExtension path)
- guessNormal = dir </> toolname <.> exeExtension
+ guessNormal = dir </> toolname <.> exeExtension'
guessGhcVersioned = dir </> (toolname ++ "-ghc" ++ versionSuffix)
- <.> exeExtension
+ <.> exeExtension'
guessVersioned = dir </> (toolname ++ versionSuffix)
- <.> exeExtension
+ <.> exeExtension'
guesses | null versionSuffix = [guessNormal]
| otherwise = [guessGhcVersioned,
guessVersioned,
@@ -70,7 +70,7 @@
dropExeExtension :: FilePath -> FilePath
dropExeExtension filepath =
case splitExtension filepath of
- (filepath', extension) | extension == exeExtension -> filepath'
+ (filepath', extension) | extension == exeExtension' -> filepath'
| otherwise -> filepath
-- | @takeWhileEndLE p@ is equivalent to @reverse . takeWhile p . reverse@, but
@@ -81,3 +81,6 @@
go x (rest, done)
| not done && p x = (x:rest, False)
| otherwise = (rest, True)
+
+exeExtension' :: FilePath
+exeExtension' = Distribution.Simple.BuildPaths.exeExtension
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-helper-0.6.3.0/CabalHelper/Log.hs new/cabal-helper-0.6.3.1/CabalHelper/Log.hs
--- old/cabal-helper-0.6.3.0/CabalHelper/Log.hs 2015-08-21 06:28:15.000000000 +0200
+++ new/cabal-helper-0.6.3.1/CabalHelper/Log.hs 2016-01-14 19:19:13.000000000 +0100
@@ -2,6 +2,7 @@
import Control.Monad
import Control.Monad.IO.Class
+import Control.Exception as E
import Data.String
import System.IO
import Prelude
@@ -12,3 +13,9 @@
vLog Options { verbose = True } msg =
liftIO $ hPutStrLn stderr msg
vLog _ _ = return ()
+
+logSomeError :: Options -> String -> IO (Maybe a) -> IO (Maybe a)
+logSomeError opts label a = do
+ a `E.catch` \se@(SomeException _) -> do
+ vLog opts $ label ++ ": " ++ show se
+ return Nothing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-helper-0.6.3.0/Distribution/Helper.hs new/cabal-helper-0.6.3.1/Distribution/Helper.hs
--- old/cabal-helper-0.6.3.0/Distribution/Helper.hs 2016-01-10 22:00:45.000000000 +0100
+++ new/cabal-helper-0.6.3.1/Distribution/Helper.hs 2016-01-17 21:26:39.000000000 +0100
@@ -416,7 +416,7 @@
findLibexecExe "cabal-helper-wrapper" = do
libexecdir <- getLibexecDir
let exeName = "cabal-helper-wrapper"
- exe = libexecdir </> exeName <.> exeExtension
+ exe = libexecdir </> exeName <.> exeExtension'
exists <- doesFileExist exe
@@ -476,3 +476,6 @@
lookupEnv' :: String -> IO (Maybe String)
lookupEnv' k = lookup k <$> getEnvironment
+
+exeExtension' :: FilePath
+exeExtension' = Distribution.Simple.BuildPaths.exeExtension
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-helper-0.6.3.0/Setup.hs new/cabal-helper-0.6.3.1/Setup.hs
--- old/cabal-helper-0.6.3.0/Setup.hs 2015-04-27 21:16:53.000000000 +0200
+++ new/cabal-helper-0.6.3.1/Setup.hs 2016-01-14 19:17:15.000000000 +0100
@@ -6,6 +6,7 @@
import Distribution.Simple.Register
import Distribution.Simple.InstallDirs as ID
import Distribution.Simple.LocalBuildInfo
+import Distribution.Simple.Program
import Distribution.PackageDescription
import Control.Applicative
@@ -17,7 +18,8 @@
main :: IO ()
main = defaultMainWithHooks $ simpleUserHooks {
instHook = inst,
- copyHook = copy
+ copyHook = copy,
+ hookedPrograms = [ simpleProgram "cabal" ]
}
-- mostly copypasta from 'defaultInstallHook'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-helper-0.6.3.0/cabal-helper.cabal new/cabal-helper-0.6.3.1/cabal-helper.cabal
--- old/cabal-helper-0.6.3.0/cabal-helper.cabal 2016-01-10 22:00:59.000000000 +0100
+++ new/cabal-helper-0.6.3.1/cabal-helper.cabal 2016-01-18 20:53:46.000000000 +0100
@@ -1,5 +1,5 @@
name: cabal-helper
-version: 0.6.3.0
+version: 0.6.3.1
synopsis: Simple interface to some of Cabal's configuration state used by ghc-mod
description:
@cabal-helper@ provides a library which wraps the internal use of
@@ -87,8 +87,17 @@
Default-Language: Haskell2010
Type: exitcode-stdio-1.0
Main-Is: Spec.hs
+ Other-Modules: CabalHelper.Common
+ CabalHelper.Compile
+ CabalHelper.Data
+ CabalHelper.Log
+ CabalHelper.Sandbox
+ CabalHelper.Types
+ Distribution.Helper
+ Paths_cabal_helper
Hs-Source-Dirs: tests, .
GHC-Options: -Wall
+ Build-Tools: cabal
Build-Depends: base >= 4.5 && < 5
, cabal-helper
, extra
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-helper-0.6.3.0/tests/Spec.hs new/cabal-helper-0.6.3.1/tests/Spec.hs
--- old/cabal-helper-0.6.3.0/tests/Spec.hs 2016-01-10 22:00:45.000000000 +0100
+++ new/cabal-helper-0.6.3.1/tests/Spec.hs 2016-01-17 22:21:02.000000000 +0100
@@ -55,6 +55,10 @@
"1.22.2.0"
, "1.22.3.0"
, "1.22.4.0"
+ , "1.22.5.0"
+ , "1.22.6.0"
+ ]),
+ ("8.0", [
])
]
1
0
Hello community,
here is the log from the commit of package ghc-bifunctors for openSUSE:Factory checked in at 2016-01-28 17:23:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-bifunctors (Old)
and /work/SRC/openSUSE:Factory/.ghc-bifunctors.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-bifunctors"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-bifunctors/ghc-bifunctors.changes 2016-01-08 15:23:11.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-bifunctors.new/ghc-bifunctors.changes 2016-01-28 17:24:31.000000000 +0100
@@ -1,0 +2,9 @@
+Wed Jan 20 08:55:42 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 5.2
+* dded several Arrow-like instances for Tannen so we can use it as the Cayley
+ construction if needed.
+* Added Data.Bifunctor.Sum
+* Added BifunctorFunctor, BifunctorMonad and BifunctorComonad.
+
+-------------------------------------------------------------------
Old:
----
bifunctors-5.1.tar.gz
New:
----
bifunctors-5.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-bifunctors.spec ++++++
--- /var/tmp/diff_new_pack.KK2FzZ/_old 2016-01-28 17:24:31.000000000 +0100
+++ /var/tmp/diff_new_pack.KK2FzZ/_new 2016-01-28 17:24:31.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name bifunctors
Name: ghc-bifunctors
-Version: 5.1
+Version: 5.2
Release: 0
Summary: Bifunctors
License: BSD-2-Clause
@@ -32,6 +32,8 @@
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-rpm-macros
# Begin cabal-rpm deps:
+BuildRequires: ghc-comonad-devel
+BuildRequires: ghc-containers-devel
BuildRequires: ghc-semigroups-devel
BuildRequires: ghc-tagged-devel
BuildRequires: ghc-template-haskell-devel
++++++ bifunctors-5.1.tar.gz -> bifunctors-5.2.tar.gz ++++++
++++ 1684 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package ghc-base-compat for openSUSE:Factory checked in at 2016-01-28 17:23:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-base-compat (Old)
and /work/SRC/openSUSE:Factory/.ghc-base-compat.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-base-compat"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-base-compat/ghc-base-compat.changes 2015-12-24 12:16:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-base-compat.new/ghc-base-compat.changes 2016-01-28 17:24:29.000000000 +0100
@@ -1,0 +2,22 @@
+Wed Jan 20 08:43:57 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.9.0
+* Sync with base-4.9/GHC 8.0
+* Weakened RealFloat constraints on realPart, imagPart, conjugate, mkPolar, and cis
+ in Data.Complex.Compat
+* Backport Foreign.ForeignPtr.Safe and Foreign.Marshal.Safe
+* Generalize filterM, forever, mapAndUnzipM, zipWithM, zipWithM_, replicateM,
+ and replicateM_ in Control.Monad from Monad to Applicative
+* Backport .Unsafe.Compat modules (for Control.Monad.ST, Control.Monad.ST.Lazy,
+ Foreign.ForeignPtr, and Foreign.Marshal)
+* Backport forkFinally and forkOSWithUnmask to Control.Concurrent.Compat
+* Backport Data.Functor.Const
+* Backport modifyIORef', atomicModifyIORef' and atomicWriteIORef to Data.IORef.Compat
+* Data.Ratio.{denominator,numerator} have no Integral constraint anymore
+* Backport modifySTRef' to Data.STRef.Compat
+* Export String, lines, words, unlines, and unwords to Data.String.Compat
+* Generalize Debug.Trace.{traceM, traceShowM} from Monad to Applicative
+* Backport errorWithoutStackTrace to Prelude.Compat
+* Backport unsafeFixIO and unsafeDupablePerformIO to System.IO.Unsafe.Compat
+
+-------------------------------------------------------------------
Old:
----
base-compat-0.8.2.tar.gz
New:
----
base-compat-0.9.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-base-compat.spec ++++++
--- /var/tmp/diff_new_pack.uAgpB6/_old 2016-01-28 17:24:29.000000000 +0100
+++ /var/tmp/diff_new_pack.uAgpB6/_new 2016-01-28 17:24:29.000000000 +0100
@@ -20,7 +20,7 @@
%bcond_with tests
Name: ghc-base-compat
-Version: 0.8.2
+Version: 0.9.0
Release: 0
Summary: A compatibility layer for base
Group: System/Libraries
++++++ base-compat-0.8.2.tar.gz -> base-compat-0.9.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/CHANGES.markdown new/base-compat-0.9.0/CHANGES.markdown
--- old/base-compat-0.8.2/CHANGES.markdown 2015-05-13 08:36:37.000000000 +0200
+++ new/base-compat-0.9.0/CHANGES.markdown 2016-01-15 03:45:49.000000000 +0100
@@ -1,3 +1,26 @@
+## Changes in 0.9.0
+ - Sync with `base-4.9`/GHC 8.0
+ - Weakened `RealFloat` constraints on `realPart`, `imagPart`, `conjugate`,
+ `mkPolar`, and `cis` in `Data.Complex.Compat`
+ - Backport `Foreign.ForeignPtr.Safe` and `Foreign.Marshal.Safe`
+ - Generalize `filterM`, `forever`, `mapAndUnzipM`, `zipWithM`, `zipWithM_`,
+ `replicateM`, and `replicateM_` in `Control.Monad` from `Monad` to
+ `Applicative`
+ - Backport `.Unsafe.Compat` modules (for `Control.Monad.ST`,
+ `Control.Monad.ST.Lazy`, `Foreign.ForeignPtr`, and `Foreign.Marshal`)
+ - Backport `forkFinally` and `forkOSWithUnmask` to `Control.Concurrent.Compat`
+ - Backport `Data.Functor.Const`
+ - Backport `modifyIORef'`, `atomicModifyIORef'` and `atomicWriteIORef` to
+ `Data.IORef.Compat`
+ - `Data.Ratio.{denominator,numerator}` have no `Integral` constraint anymore
+ - Backport `modifySTRef'` to `Data.STRef.Compat`
+ - Export `String`, `lines`, `words`, `unlines`, and `unwords` to
+ `Data.String.Compat`
+ - Generalize `Debug.Trace.{traceM, traceShowM}` from `Monad` to `Applicative`
+ - Backport `errorWithoutStackTrace` to `Prelude.Compat`
+ - Backport `unsafeFixIO` and `unsafeDupablePerformIO` to
+ `System.IO.Unsafe.Compat`
+
## Changes in 0.8.2
- Backport `bitDefault`, `testBitDefault`, and `popCountDefault` in
`Data.Bits.Compat` to all versions of `base`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/LICENSE new/base-compat-0.9.0/LICENSE
--- old/base-compat-0.8.2/LICENSE 2015-05-13 08:36:37.000000000 +0200
+++ new/base-compat-0.9.0/LICENSE 2016-01-15 03:45:49.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright (c) 2012-2015 Simon Hengel <sol(a)typeful.net> and Ryan Scott <ryan.gl.scott(a)ku.edu>
+Copyright (c) 2012-2015 Simon Hengel <sol(a)typeful.net> and Ryan Scott <ryan.gl.scott(a)gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/README.markdown new/base-compat-0.9.0/README.markdown
--- old/base-compat-0.8.2/README.markdown 2015-05-13 08:36:37.000000000 +0200
+++ new/base-compat-0.9.0/README.markdown 2016-01-15 03:45:49.000000000 +0100
@@ -1,4 +1,20 @@
-# A compatibility layer for `base` [![Hackage version](https://img.shields.io/hackage/v/base-compat.svg?style=flat)](http… [![Build Status](https://img.shields.io/travis/haskell-compat/base-compat.svg?style=…
+# A compatibility layer for `base`
+[![Hackage](https://img.shields.io/hackage/v/base-compat.svg)][Hackage: base-compat]
+[![Hackage Dependencies](https://img.shields.io/hackage-deps/v/base-compat.svg)](http:…
+[![Haskell Programming Language](https://img.shields.io/badge/language-Haskell-blue.svg)][Haskell.org]
+[![BSD3 License](http://img.shields.io/badge/license-MIT-brightgreen.svg)][tl;dr Legal: MIT]
+[![Build](https://img.shields.io/travis/haskell-compat/base-compat.svg)](https://travis-ci.org/haskell-compat/base-compat)
+
+[Hackage: base-compat]:
+ http://hackage.haskell.org/package/base-compat
+ "base-compat package on Hackage"
+[Haskell.org]:
+ http://www.haskell.org
+ "The Haskell Programming Language"
+[tl;dr Legal: MIT]:
+ https://tldrlegal.com/license/mit-license
+ "MIT License"
+
## Scope
The scope of `base-compat` is to provide functions available in later versions
@@ -12,13 +28,19 @@
package [`base-orphans`](https://github.com/haskell-compat/base-orphans) for
that.
+In addition, `base-compat` only backports functions. In particular, we
+purposefully do not backport data types or type classes introduced in newer
+versions of `base`. For more info, see the
+[Data types and type classes](#data-types-and-type-classes)
+section.
+
## Basic usage
In your cabal file, you should have something like this:
```
build-depends: base >= 4.3
- , base-compat >= 0.8.0
+ , base-compat >= 0.9.0
```
Then, lets say you want to use the `isRight` function introduced with
@@ -83,7 +105,7 @@
### For compatibility with the latest released version of `base`
* `Prelude.Compat` incorporates the AMP/Foldable/Traversable changes and
- exposes the same interface as `Prelude` from `base-4.8.0.0`
+ exposes the same interface as `Prelude` from `base-4.9.0.0`
* `System.IO.Error.catch` is not re-exported from `Prelude.Compat` for older
versions of `base`
* `Text.Read.Compat.readMaybe`
@@ -93,13 +115,19 @@
* Added `toIntegralSized` to `Data.Bits.Compat` (if using `base-4.7`)
* Added `bool` function to `Data.Bool.Compat`
* Added `isLeft` and `isRight` to `Data.Either.Compat`
+ * Added `forkFinally` to `Control.Concurrent.Compat`
* Added `withMVarMasked` function to `Control.Concurrent.MVar.Compat`
* Added `(<$!>)` function to `Control.Monad.Compat`
+ * Weakened `RealFloat` constraints on `realPart`, `imagPart`, `conjugate`, `mkPolar`,
+ and `cis` in `Data.Complex.Compat`
* Added `($>)` and `void` functions to `Data.Functor.Compat`
* `(&)` function to `Data.Function.Compat`
* `($>)` and `void` functions to `Data.Functor.Compat`
+ * `modifyIORef'`, `atomicModifyIORef'` and `atomicWriteIORef` to `Data.IORef.Compat`
* `dropWhileEnd`, `isSubsequenceOf`, `sortOn`, and `uncons` functions to `Data.List.Compat`
* Correct versions of `nub`, `nubBy`, `union`, and `unionBy` to `Data.List.Compat`
+ * `modifySTRef'` to `Data.STRef.Compat`
+ * `String`, `lines`, `words`, `unlines`, and `unwords` to `Data.String.Compat`
* `makeVersion` function to `Data.Version.Compat`
* `traceId`, `traceShowId`, `traceM`, and `traceShowM` functions to `Debug.Trace.Compat`
* `byteSwap16`, `byteSwap32`, and `byteSwap64` to `Data.Word.Compat`
@@ -109,9 +137,114 @@
* Added `Data.List.Compat.scanl'`
* `showFFloatAlt` and `showGFloatAlt` to `Numeric.Compat`
* `lookupEnv`, `setEnv` and `unsetEnv` to `System.Environment.Compat`
+ * `unsafeFixIO` and `unsafeDupablePerformIO` to `System.IO.Unsafe.IO`
+
+## What is not covered
+
+### Data types and type classes
+`base-compat` purposefully does not export any data types or type classes that
+were introduced in more recent versions of `base`. The main reasoning for this
+policy is that it is not some data types and type classes have had their APIs
+change in different versions of `base`, which makes having a consistent
+compatibility API for them practically impossible.
+
+As an example, consider the `FiniteBits` type class. It was introduced in
+[`base-4.7.0.0`](http://hackage.haskell.org/package/base-4.7.0.0/docs/Data-Bits.html#t:FiniteBits)
+with the following API:
+
+```haskell
+class Bits b => FiniteBits b where
+ finiteBitSize :: b -> Int
+```
-## Supported versions of GHC/base
+However, in [`base-4.8.0.0`](http://hackage.haskell.org/package/base-4.8.0.0/docs/Data-Bits.html#t:FiniteBits),
+`FiniteBits` gained additional functions:
+
+```haskell
+class Bits b => FiniteBits b where
+ finiteBitSize :: b -> Int
+ countLeadingZeros :: b -> Int
+ countTrailingZeros :: b -> Int
+```
+
+This raises the question: how can `FiniteBits` be backported consistently
+across all versions of `base`? One approach is to backport the API exposed in
+`base-4.8.0.0` on versions prior to `4.7.0.0`. The problem with this is that
+`countLeadingZeros` and `countTrailingZeros` are not exposed in `base-4.7.0.0`,
+so instances of `FiniteBits` would have to be declared like this:
+
+```haskell
+instance FiniteBits Foo where
+ finiteBitSize = ...
+#if MIN_VERSION_base(4,8,0) || !(MIN_VERSION_base(4,7,0))
+ countLeadingZeros = ...
+ countTrailingZeros = ...
+#endif
+```
+This is a very unsatisfactory solution, and for this reason, we do not pursue
+it. For similar reasons, we do not backport data types.
+
+### Other compatibility packages
+
+If you _really_ need your favorite data type or type class in `base` to be
+backported, you might be in luck, since several data types have their own
+compatibility packages on Hackage. Here is a list of such packages:
+
+* [`bifunctors`](http://hackage.haskell.org/package/bifunctors)
+ for the [`Bifunctor`](http://hackage.haskell.org/package/base-4.8.0.0/docs/Data-Bifunctor.html#t:Bifunctor)
+ type class, introduced in `base-4.8.0.0`
+* [`generic-deriving`](http://hackage.haskell.org/package/generic-deriving)
+ for everything in the [`GHC.Generics`](http://hackage.haskell.org/package/base-4.8.0.0/docs/GHC-Generics.html)
+ module, introduced to `ghc-prim` in GHC 7.2 (and later moved to `base-4.6.0.0`)
+* [`nats`](http://hackage.haskell.org/package/nats)
+ for the [`Natural`](http://hackage.haskell.org/package/base-4.8.0.0/docs/Numeric-Natural.html)
+ data type, introduced in `base-4.8.0.0`
+* [`semigroups`](http://hackage.haskell.org/package/semigroups)
+ for the [`Semigroup`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Semigroup.html#t:Semigroup)
+ typeclass and the
+ [`NonEmpty`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-List-NonEmpty.html#t:NonEmpty),
+ [`Min`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Semigroup.html#t:Min),
+ [`Max`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Semigroup.html#t:Max),
+ [`First`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Semigroup.html#t:First),
+ [`Last`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Semigroup.html#t:Last),
+ [`WrappedMonoid`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Semigroup.html#t:WrappedMonoid),
+ [`Option`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Semigroup.html#t:Option),
+ and
+ [`Arg`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Semigroup.html#t:Arg)
+ data types, introduced in `base-4.9.0.0`
+* [`tagged`](http://hackage.haskell.org/package/tagged)
+ for the [`Proxy`](http://hackage.haskell.org/package/base-4.7.0.0/docs/Data-Proxy.html#t:Proxy)
+ data type, introduced in `base-4.7.0.0`
+* [`transformers`](http://hackage.haskell.org/package/transformers)
+ for:
+ * The [`Identity`](http://hackage.haskell.org/package/base-4.8.0.0/docs/Data-Functor-Identity.html#t:Identity)
+ data type, introduced in `base-4.8.0.0`
+ * The [`MonadIO`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Control-Monad-IO-Class.html#t:MonadIO),
+ [`Eq1`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Classes.html#t:Eq1),
+ [`Eq2`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Classes.html#t:Eq2),
+ [`Ord1`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Classes.html#t:Ord1),
+ [`Ord2`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Classes.html#t:Ord2),
+ [`Read1`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Classes.html#t:Read1),
+ [`Read2`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Classes.html#t:Read2),
+ [`Show1`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Classes.html#t:Show1),
+ and
+ [`Show2`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Classes.html#t:Show2)
+ typeclasses; and the
+ [`Compose`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Compose.html#t:Compose),
+ [`Product`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Product.html#t:Product),
+ and
+ [`Sum`](http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Functor-Sum.html#t:Sum)
+ data types, introduced in `base-4.9.0.0`
+* [`void`](http://hackage.haskell.org/package/void)
+ for the [`Void`](http://hackage.haskell.org/package/base-4.8.0.0/docs/Data-Void.html#t:Void)
+ data type, introduced in `base-4.8.0.0`
+
+## Supported versions of GHC/`base`
+
+ * `ghc-8.0.1` / `base-4.9.0.0`
+ * `ghc-7.10.3` / `base-4.8.2.0`
+ * `ghc-7.10.2` / `base-4.8.1.0`
* `ghc-7.10.1` / `base-4.8.0.0`
* `ghc-7.8.4` / `base-4.7.0.2`
* `ghc-7.8.3` / `base-4.7.0.1`
@@ -129,16 +262,8 @@
* `ghc-7.0.2` / `base-4.3.1.0`
* `ghc-7.0.1` / `base-4.3.0.0`
-Patches are welcome; add tests for new code!
-
-## Development
+We also make an attempt to keep `base-compat` building with GHC HEAD, but due
+to its volatility, it may not work at any given point in time. If it doesn't,
+please report it!
-For `Prelude.Compat` there is an `Prelude.index` file that was generated from
-the output of
-
- ghc --show-iface Prelude.hi
-
-To verify that `Prelude.Compat` matches the specification given in
-`Prelude.types` run:
-
- ./check-Prelude.sh
+Patches are welcome; add tests for new code!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/base-compat.cabal new/base-compat-0.9.0/base-compat.cabal
--- old/base-compat-0.8.2/base-compat.cabal 2015-05-13 08:36:37.000000000 +0200
+++ new/base-compat-0.9.0/base-compat.cabal 2016-01-15 03:45:49.000000000 +0100
@@ -1,5 +1,5 @@
name: base-compat
-version: 0.8.2
+version: 0.9.0
license: MIT
license-file: LICENSE
copyright: (c) 2012-2015 Simon Hengel,
@@ -7,10 +7,10 @@
(c) 2015 Ryan Scott
author: Simon Hengel <sol(a)typeful.net>,
João Cristóvão <jmacristovao(a)gmail.com>,
- Ryan Scott <ryan.gl.scott(a)ku.edu>
+ Ryan Scott <ryan.gl.scott(a)gmail.com>
maintainer: Simon Hengel <sol(a)typeful.net>,
João Cristóvão <jmacristovao(a)gmail.com>,
- Ryan Scott <ryan.gl.scott(a)ku.edu>
+ Ryan Scott <ryan.gl.scott(a)gmail.com>
build-type: Simple
cabal-version: >= 1.8
category: Compatibility
@@ -24,9 +24,20 @@
for recent changes.
.
Note that @base-compat@ does not add any orphan instances.
- There is a separate package
- @<http://hackage.haskell.org/package/base-orphans base-orphans>@
+ There is a separate package,
+ @<http://hackage.haskell.org/package/base-orphans base-orphans>@,
for that.
+ .
+ In addition, `base-compat` does not backport any data types
+ or type classes. See
+ @<https://github.com/haskell-compat/base-compat#data-types-and-type-classes this section of the README>@
+ for more info.
+tested-with: GHC == 7.0.1, GHC == 7.0.2, GHC == 7.0.3, GHC == 7.0.4
+ , GHC == 7.2.1, GHC == 7.2.2
+ , GHC == 7.4.1, GHC == 7.4.2
+ , GHC == 7.6.1, GHC == 7.6.2, GHC == 7.6.3
+ , GHC == 7.8.1, GHC == 7.8.2, GHC == 7.8.3, GHC == 7.8.4
+ , GHC == 7.10.1, GHC == 7.10.2, GHC == 7.10.3
extra-source-files: CHANGES.markdown, README.markdown
source-repository head
@@ -47,28 +58,42 @@
src
exposed-modules:
+ Control.Concurrent.Compat
Control.Concurrent.MVar.Compat
Control.Monad.Compat
+ Control.Monad.ST.Lazy.Unsafe.Compat
+ Control.Monad.ST.Unsafe.Compat
Data.Bits.Compat
Data.Bool.Compat
+ Data.Complex.Compat
Data.Either.Compat
Data.Foldable.Compat
Data.Function.Compat
Data.Functor.Compat
+ Data.Functor.Const.Compat
+ Data.IORef.Compat
Data.List.Compat
Data.Monoid.Compat
+ Data.Ratio.Compat
+ Data.STRef.Compat
+ Data.String.Compat
Data.Version.Compat
Data.Word.Compat
Debug.Trace.Compat
Foreign.Compat
+ Foreign.ForeignPtr.Safe.Compat
+ Foreign.ForeignPtr.Unsafe.Compat
Foreign.Marshal.Alloc.Compat
Foreign.Marshal.Array.Compat
Foreign.Marshal.Compat
+ Foreign.Marshal.Safe.Compat
+ Foreign.Marshal.Unsafe.Compat
Foreign.Marshal.Utils.Compat
Numeric.Compat
Prelude.Compat
System.Environment.Compat
System.Exit.Compat
+ System.IO.Unsafe.Compat
Text.Read.Compat
test-suite spec
@@ -80,6 +105,24 @@
test
main-is:
Spec.hs
+ other-modules:
+ Control.Monad.CompatSpec
+ Data.Bits.CompatSpec
+ Data.Bool.CompatSpec
+ Data.Either.CompatSpec
+ Data.Function.CompatSpec
+ Data.Functor.CompatSpec
+ Data.IORef.CompatSpec
+ Data.List.CompatSpec
+ Data.Monoid.CompatSpec
+ Data.STRef.CompatSpec
+ Data.Version.CompatSpec
+ Data.Word.CompatSpec
+ Foreign.Marshal.Alloc.CompatSpec
+ Foreign.Marshal.Utils.CompatSpec
+ Numeric.CompatSpec
+ System.Environment.CompatSpec
+ Text.Read.CompatSpec
build-depends:
base >= 4.3 && < 5
, base-compat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Control/Concurrent/Compat.hs new/base-compat-0.9.0/src/Control/Concurrent/Compat.hs
--- old/base-compat-0.8.2/src/Control/Concurrent/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Control/Concurrent/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,44 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+{-# LANGUAGE RankNTypes #-}
+module Control.Concurrent.Compat (
+ module Base
+, forkFinally
+, forkOSWithUnmask
+) where
+
+import Control.Concurrent as Base
+
+#if !(MIN_VERSION_base(4,6,0))
+import Control.Exception
+#endif
+
+#if !(MIN_VERSION_base(4,9,0))
+import GHC.IO (unsafeUnmask)
+import Prelude
+#endif
+
+#if !(MIN_VERSION_base(4,6,0))
+-- | fork a thread and call the supplied function when the thread is about
+-- to terminate, with an exception or a returned value. The function is
+-- called with asynchronous exceptions masked.
+--
+-- > forkFinally action and_then =
+-- > mask $ \restore ->
+-- > forkIO $ try (restore action) >>= and_then
+--
+-- This function is useful for informing the parent when a child
+-- terminates, for example.
+--
+-- /Since: 4.6.0.0/
+forkFinally :: IO a -> (Either SomeException a -> IO ()) -> IO ThreadId
+forkFinally action and_then =
+ mask $ \restore ->
+ forkIO $ try (restore action) >>= and_then
+#endif
+
+#if !(MIN_VERSION_base(4,9,0))
+-- | Like 'forkIOWithUnmask', but the child thread is a bound thread,
+-- as with 'forkOS'.
+forkOSWithUnmask :: ((forall a . IO a -> IO a) -> IO ()) -> IO ThreadId
+forkOSWithUnmask io = forkOS (io unsafeUnmask)
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Control/Monad/Compat.hs new/base-compat-0.9.0/src/Control/Monad/Compat.hs
--- old/base-compat-0.8.2/src/Control/Monad/Compat.hs 2015-05-13 08:36:37.000000000 +0200
+++ new/base-compat-0.9.0/src/Control/Monad/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -19,13 +19,30 @@
, (<$!>)
#endif
+#if !(MIN_VERSION_base(4,9,0))
+, forever
+, filterM
+, mapAndUnzipM
+, zipWithM
+, zipWithM_
+, replicateM
+, replicateM_
+#endif
) where
-#if MIN_VERSION_base(4,8,0)
+#if MIN_VERSION_base(4,9,0)
import Control.Monad as Base
#else
import Control.Monad as Base hiding (
- foldM
+ forever
+ , filterM
+ , mapAndUnzipM
+ , zipWithM
+ , zipWithM_
+ , replicateM
+ , replicateM_
+# if !(MIN_VERSION_base(4,8,0))
+ , foldM
, foldM_
, forM
, forM_
@@ -37,8 +54,9 @@
, sequence_
, unless
, when
+# endif
)
-import Control.Applicative (Alternative(..))
+import Control.Applicative
import Data.Foldable.Compat
import Data.Traversable
import Prelude.Compat
@@ -116,3 +134,51 @@
let z = f x
z `seq` return z
#endif
+
+#if !(MIN_VERSION_base(4,9,0))
+-- | @'forever' act@ repeats the action infinitely.
+forever :: (Applicative f) => f a -> f b
+{-# INLINE forever #-}
+forever a = let a' = a *> a' in a'
+-- Use explicit sharing here, as it is prevents a space leak regardless of
+-- optimizations.
+
+-- | This generalizes the list-based 'filter' function.
+{-# INLINE filterM #-}
+filterM :: (Applicative m) => (a -> m Bool) -> [a] -> m [a]
+filterM p = foldr (\ x -> liftA2 (\ flg -> if flg then (x:) else id) (p x)) (pure [])
+
+-- | The 'mapAndUnzipM' function maps its first argument over a list, returning
+-- the result as a pair of lists. This function is mainly used with complicated
+-- data structures or a state-transforming monad.
+mapAndUnzipM :: (Applicative m) => (a -> m (b,c)) -> [a] -> m ([b], [c])
+{-# INLINE mapAndUnzipM #-}
+mapAndUnzipM f xs = unzip <$> traverse f xs
+
+-- | The 'zipWithM' function generalizes 'zipWith' to arbitrary applicative functors.
+zipWithM :: (Applicative m) => (a -> b -> m c) -> [a] -> [b] -> m [c]
+{-# INLINE zipWithM #-}
+zipWithM f xs ys = sequenceA (zipWith f xs ys)
+
+-- | 'zipWithM_' is the extension of 'zipWithM' which ignores the final result.
+zipWithM_ :: (Applicative m) => (a -> b -> m c) -> [a] -> [b] -> m ()
+{-# INLINE zipWithM_ #-}
+zipWithM_ f xs ys = sequenceA_ (zipWith f xs ys)
+
+-- | @'replicateM' n act@ performs the action @n@ times,
+-- gathering the results.
+replicateM :: (Applicative m) => Int -> m a -> m [a]
+{-# INLINEABLE replicateM #-}
+{-# SPECIALISE replicateM :: Int -> IO a -> IO [a] #-}
+{-# SPECIALISE replicateM :: Int -> Maybe a -> Maybe [a] #-}
+replicateM 0 _ = pure []
+replicateM n x = liftA2 (:) x (replicateM (pred n) x)
+
+-- | Like 'replicateM', but discards the result.
+replicateM_ :: (Applicative m) => Int -> m a -> m ()
+{-# INLINEABLE replicateM_ #-}
+{-# SPECIALISE replicateM_ :: Int -> IO a -> IO () #-}
+{-# SPECIALISE replicateM_ :: Int -> Maybe a -> Maybe () #-}
+replicateM_ 0 _ = pure ()
+replicateM_ n x = x *> replicateM_ (pred n) x
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Control/Monad/ST/Lazy/Unsafe/Compat.hs new/base-compat-0.9.0/src/Control/Monad/ST/Lazy/Unsafe/Compat.hs
--- old/base-compat-0.8.2/src/Control/Monad/ST/Lazy/Unsafe/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Control/Monad/ST/Lazy/Unsafe/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,12 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Control.Monad.ST.Lazy.Unsafe.Compat (
+ -- * Unsafe operations
+ unsafeInterleaveST
+, unsafeIOToST
+) where
+
+#if MIN_VERSION_base(4,6,0)
+import Control.Monad.ST.Lazy.Unsafe (unsafeInterleaveST, unsafeIOToST)
+#else
+import Control.Monad.ST.Lazy (unsafeInterleaveST, unsafeIOToST)
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Control/Monad/ST/Unsafe/Compat.hs new/base-compat-0.9.0/src/Control/Monad/ST/Unsafe/Compat.hs
--- old/base-compat-0.8.2/src/Control/Monad/ST/Unsafe/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Control/Monad/ST/Unsafe/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Control.Monad.ST.Unsafe.Compat (
+ -- * Unsafe operations
+ unsafeInterleaveST
+, unsafeIOToST
+, unsafeSTToIO
+) where
+
+#if MIN_VERSION_base(4,6,0)
+import Control.Monad.ST.Unsafe (unsafeInterleaveST, unsafeIOToST, unsafeSTToIO)
+#else
+import Control.Monad.ST (unsafeInterleaveST, unsafeIOToST, unsafeSTToIO)
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Data/Complex/Compat.hs new/base-compat-0.9.0/src/Data/Complex/Compat.hs
--- old/base-compat-0.8.2/src/Data/Complex/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Data/Complex/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,50 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Data.Complex.Compat (
+ module Base
+#if MIN_VERSION_base(4,4,0) && !(MIN_VERSION_base(4,8,0))
+, realPart
+, imagPart
+, mkPolar
+, cis
+, conjugate
+#endif
+) where
+
+#if !(MIN_VERSION_base(4,4,0)) || MIN_VERSION_base(4,8,0)
+import Data.Complex as Base
+#else
+import Data.Complex as Base hiding (
+ realPart
+ , imagPart
+ , mkPolar
+ , cis
+ , conjugate
+ )
+import Prelude
+#endif
+
+#if MIN_VERSION_base(4,4,0) && !(MIN_VERSION_base(4,8,0))
+-- | Extracts the real part of a complex number.
+realPart :: Complex a -> a
+realPart (x :+ _) = x
+
+-- | Extracts the imaginary part of a complex number.
+imagPart :: Complex a -> a
+imagPart (_ :+ y) = y
+
+-- | The conjugate of a complex number.
+{-# SPECIALISE conjugate :: Complex Double -> Complex Double #-}
+conjugate :: Num a => Complex a -> Complex a
+conjugate (x:+y) = x :+ (-y)
+
+-- | Form a complex number from polar components of magnitude and phase.
+{-# SPECIALISE mkPolar :: Double -> Double -> Complex Double #-}
+mkPolar :: Floating a => a -> a -> Complex a
+mkPolar r theta = r * cos theta :+ r * sin theta
+
+-- | @'cis' t@ is a complex value with magnitude @1@
+-- and phase @t@ (modulo @2*'pi'@).
+{-# SPECIALISE cis :: Double -> Complex Double #-}
+cis :: Floating a => a -> Complex a
+cis theta = cos theta :+ sin theta
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Data/Functor/Const/Compat.hs new/base-compat-0.9.0/src/Data/Functor/Const/Compat.hs
--- old/base-compat-0.8.2/src/Data/Functor/Const/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Data/Functor/Const/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,4 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Data.Functor.Const.Compat (Const(..)) where
+
+import Control.Applicative (Const(..))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Data/IORef/Compat.hs new/base-compat-0.9.0/src/Data/IORef/Compat.hs
--- old/base-compat-0.8.2/src/Data/IORef/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Data/IORef/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,42 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Data.IORef.Compat (
+ module Base
+, modifyIORef'
+, atomicModifyIORef'
+, atomicWriteIORef
+) where
+
+import Data.IORef as Base
+
+#if !(MIN_VERSION_base(4,6,0))
+import Prelude
+
+-- |Strict version of 'modifyIORef'
+--
+-- /Since: 4.6.0.0/
+modifyIORef' :: IORef a -> (a -> a) -> IO ()
+modifyIORef' ref f = do
+ x <- readIORef ref
+ let x' = f x
+ x' `seq` writeIORef ref x'
+
+-- | Strict version of 'atomicModifyIORef'. This forces both the value stored
+-- in the 'IORef' as well as the value returned.
+--
+-- /Since: 4.6.0.0/
+atomicModifyIORef' :: IORef a -> (a -> (a,b)) -> IO b
+atomicModifyIORef' ref f = do
+ b <- atomicModifyIORef ref $ \a ->
+ case f a of
+ v@(a',_) -> a' `seq` v
+ b `seq` return b
+
+-- | Variant of 'writeIORef' with the \"barrier to reordering\" property that
+-- 'atomicModifyIORef' has.
+--
+-- /Since: 4.6.0.0/
+atomicWriteIORef :: IORef a -> a -> IO ()
+atomicWriteIORef ref a = do
+ x <- atomicModifyIORef ref (\_ -> (a, ()))
+ x `seq` return ()
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Data/Ratio/Compat.hs new/base-compat-0.9.0/src/Data/Ratio/Compat.hs
--- old/base-compat-0.8.2/src/Data/Ratio/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Data/Ratio/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,32 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Data.Ratio.Compat (
+ module Base
+#if MIN_VERSION_base(4,4,0) && !(MIN_VERSION_base(4,9,0))
+, denominator
+, numerator
+#endif
+) where
+
+#if !(MIN_VERSION_base(4,4,0)) || MIN_VERSION_base(4,9,0)
+import Data.Ratio as Base
+#else
+import Data.Ratio as Base hiding (
+ denominator
+ , numerator
+ )
+import GHC.Real (Ratio(..))
+#endif
+
+#if MIN_VERSION_base(4,4,0) && !(MIN_VERSION_base(4,9,0))
+-- | Extract the numerator of the ratio in reduced form:
+-- the numerator and denominator have no common factor and the denominator
+-- is positive.
+numerator :: Ratio a -> a
+numerator (x :% _) = x
+
+-- | Extract the denominator of the ratio in reduced form:
+-- the numerator and denominator have no common factor and the denominator
+-- is positive.
+denominator :: Ratio a -> a
+denominator (_ :% y) = y
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Data/STRef/Compat.hs new/base-compat-0.9.0/src/Data/STRef/Compat.hs
--- old/base-compat-0.8.2/src/Data/STRef/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Data/STRef/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,21 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Data.STRef.Compat (
+ module Base
+, modifySTRef'
+) where
+
+import Data.STRef as Base
+
+#if !(MIN_VERSION_base(4,6,0))
+import Control.Monad.ST (ST)
+import Prelude (seq)
+
+-- | Strict version of 'modifySTRef'
+--
+-- /Since: 4.6.0.0/
+modifySTRef' :: STRef s a -> (a -> a) -> ST s ()
+modifySTRef' ref f = do
+ x <- readSTRef ref
+ let x' = f x
+ x' `seq` writeSTRef ref x'
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Data/String/Compat.hs new/base-compat-0.9.0/src/Data/String/Compat.hs
--- old/base-compat-0.8.2/src/Data/String/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Data/String/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Data.String.Compat (
+ module Base
+, String
+, lines
+, words
+, unlines
+, unwords
+) where
+
+import Data.String as Base
+
+#if !(MIN_VERSION_base(4,4,0))
+import Prelude (String, lines, words, unlines, unwords)
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Debug/Trace/Compat.hs new/base-compat-0.9.0/src/Debug/Trace/Compat.hs
--- old/base-compat-0.8.2/src/Debug/Trace/Compat.hs 2015-05-13 08:36:37.000000000 +0200
+++ new/base-compat-0.9.0/src/Debug/Trace/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -6,11 +6,21 @@
, traceM
, traceShowM
) where
+
+#if !(MIN_VERSION_base(4,7,0)) || MIN_VERSION_base(4,9,0)
import Debug.Trace as Base
+#else
+import Debug.Trace as Base hiding (
+ traceM
+ , traceShowM
+ )
+#endif
-#if !(MIN_VERSION_base(4,7,0))
+#if !(MIN_VERSION_base(4,9,0))
import Prelude.Compat
+#endif
+#if !(MIN_VERSION_base(4,7,0))
{-|
Like 'trace' but returns the message instead of a third value.
@@ -26,11 +36,19 @@
-}
traceShowId :: (Show a) => a -> a
traceShowId a = trace (show a) a
+#endif
+#if !(MIN_VERSION_base(4,9,0))
{-|
-Like 'trace' but returning unit in an arbitrary monad. Allows for convenient
-use in do-notation. Note that the application of 'trace' is not an action in the
-monad, as 'traceIO' is in the 'IO' monad.
+Like 'trace' but returning unit in an arbitrary 'Applicative' context. Allows
+for convenient use in do-notation.
+
+Note that the application of 'traceM' is not an action in the 'Applicative'
+context, as 'traceIO' is in the 'IO' type. While the fresh bindings in the
+following example will force the 'traceM' expressions to be reduced every time
+the @do@-block is executed, @traceM "not crashed"@ would only be reduced once,
+and the message would only be printed once. If your monad is in 'MonadIO',
+@liftIO . traceIO@ may be a better option.
> ... = do
> x <- ...
@@ -40,20 +58,20 @@
/Since: 4.7.0.0/
-}
-traceM :: (Monad m) => String -> m ()
-traceM string = trace string $ return ()
+traceM :: (Applicative f) => String -> f ()
+traceM string = trace string $ pure ()
{-|
Like 'traceM', but uses 'show' on the argument to convert it to a 'String'.
> ... = do
> x <- ...
-> traceMShow $ x
+> traceShowM $ x
> y <- ...
-> traceMShow $ x + y
+> traceShowM $ x + y
/Since: 4.7.0.0/
-}
-traceShowM :: (Show a, Monad m) => a -> m ()
+traceShowM :: (Show a, Applicative f) => a -> f ()
traceShowM = traceM . show
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Foreign/ForeignPtr/Safe/Compat.hs new/base-compat-0.9.0/src/Foreign/ForeignPtr/Safe/Compat.hs
--- old/base-compat-0.8.2/src/Foreign/ForeignPtr/Safe/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Foreign/ForeignPtr/Safe/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,34 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Foreign.ForeignPtr.Safe.Compat (
+ -- * Finalised data pointers
+ ForeignPtr
+ , FinalizerPtr
+#if defined(__HUGS__) || defined(__GLASGOW_HASKELL__)
+ , FinalizerEnvPtr
+#endif
+ -- ** Basic operations
+ , newForeignPtr
+ , newForeignPtr_
+ , addForeignPtrFinalizer
+#if defined(__HUGS__) || defined(__GLASGOW_HASKELL__)
+ , newForeignPtrEnv
+ , addForeignPtrFinalizerEnv
+#endif
+ , withForeignPtr
+
+#ifdef __GLASGOW_HASKELL__
+ , finalizeForeignPtr
+#endif
+
+ -- ** Low-level operations
+ , touchForeignPtr
+ , castForeignPtr
+
+ -- ** Allocating managed memory
+ , mallocForeignPtr
+ , mallocForeignPtrBytes
+ , mallocForeignPtrArray
+ , mallocForeignPtrArray0
+ ) where
+
+import Foreign.ForeignPtr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Foreign/ForeignPtr/Unsafe/Compat.hs new/base-compat-0.9.0/src/Foreign/ForeignPtr/Unsafe/Compat.hs
--- old/base-compat-0.8.2/src/Foreign/ForeignPtr/Unsafe/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Foreign/ForeignPtr/Unsafe/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Foreign.ForeignPtr.Unsafe.Compat (
+ -- ** Unsafe low-level operations
+ unsafeForeignPtrToPtr
+) where
+
+#if MIN_VERSION_base(4,6,0)
+import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
+#else
+import Foreign.ForeignPtr (unsafeForeignPtrToPtr)
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Foreign/Marshal/Safe/Compat.hs new/base-compat-0.9.0/src/Foreign/Marshal/Safe/Compat.hs
--- old/base-compat-0.8.2/src/Foreign/Marshal/Safe/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Foreign/Marshal/Safe/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Foreign.Marshal.Safe.Compat (
+ -- | The module "Foreign.Marshal.Safe" re-exports the other modules in the
+ -- @Foreign.Marshal@ hierarchy:
+ module Foreign.Marshal.Alloc
+ , module Foreign.Marshal.Array
+ , module Foreign.Marshal.Error
+ , module Foreign.Marshal.Pool
+ , module Foreign.Marshal.Utils
+ ) where
+
+import Foreign.Marshal.Alloc
+import Foreign.Marshal.Array
+import Foreign.Marshal.Error
+import Foreign.Marshal.Pool
+import Foreign.Marshal.Utils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Foreign/Marshal/Unsafe/Compat.hs new/base-compat-0.9.0/src/Foreign/Marshal/Unsafe/Compat.hs
--- old/base-compat-0.8.2/src/Foreign/Marshal/Unsafe/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/Foreign/Marshal/Unsafe/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,11 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module Foreign.Marshal.Unsafe.Compat (
+ -- * Unsafe functions
+ unsafeLocalState
+) where
+
+#if MIN_VERSION_base(4,6,0)
+import Foreign.Marshal.Unsafe (unsafeLocalState)
+#else
+import Foreign.Marshal (unsafeLocalState)
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/Prelude/Compat.hs new/base-compat-0.9.0/src/Prelude/Compat.hs
--- old/base-compat-0.8.2/src/Prelude/Compat.hs 2015-05-13 08:36:37.000000000 +0200
+++ new/base-compat-0.9.0/src/Prelude/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -1,6 +1,6 @@
{-# LANGUAGE CPP, NoImplicitPrelude #-}
module Prelude.Compat (
-#if MIN_VERSION_base(4,8,0)
+#if MIN_VERSION_base(4,9,0)
module Base
#else
either
@@ -101,6 +101,7 @@
, (||)
, ($)
, error
+, errorWithoutStackTrace
, undefined
, seq
@@ -257,7 +258,7 @@
) where
-#if MIN_VERSION_base(4,8,0)
+#if MIN_VERSION_base(4,9,0)
import Prelude as Base
@@ -290,9 +291,21 @@
, sum
)
-import Data.Word
import Data.Foldable.Compat
import Data.Traversable
-import Data.Monoid
+
+# if !(MIN_VERSION_base(4,8,0))
import Control.Applicative
+import Data.Monoid
+import Data.Word
+# endif
+#endif
+
+#if !(MIN_VERSION_base(4,9,0))
+-- | A variant of 'error' that does not produce a stack trace.
+--
+-- /Since: 4.9.0.0/
+errorWithoutStackTrace :: [Char] -> a
+errorWithoutStackTrace s = error s
+{-# NOINLINE errorWithoutStackTrace #-}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/src/System/IO/Unsafe/Compat.hs new/base-compat-0.9.0/src/System/IO/Unsafe/Compat.hs
--- old/base-compat-0.8.2/src/System/IO/Unsafe/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/src/System/IO/Unsafe/Compat.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,35 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+module System.IO.Unsafe.Compat (
+ module Base
+, unsafeFixIO
+, unsafeDupablePerformIO
+) where
+
+import System.IO.Unsafe as Base
+
+#if !(MIN_VERSION_base(4,5,0))
+import Control.Exception
+import Data.IORef
+import GHC.Base
+import GHC.IO
+
+-- | A slightly faster version of `System.IO.fixIO` that may not be
+-- safe to use with multiple threads. The unsafety arises when used
+-- like this:
+--
+-- > unsafeFixIO $ \r -> do
+-- > forkIO (print r)
+-- > return (...)
+--
+-- In this case, the child thread will receive a @NonTermination@
+-- exception instead of waiting for the value of @r@ to be computed.
+--
+-- /Since: 4.5.0.0/
+unsafeFixIO :: (a -> IO a) -> IO a
+unsafeFixIO k = do
+ ref <- newIORef (throw NonTermination)
+ ans <- unsafeDupableInterleaveIO (readIORef ref)
+ result <- k ans
+ writeIORef ref result
+ return result
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Control/Monad/CompatSpec.hs new/base-compat-0.9.0/test/Control/Monad/CompatSpec.hs
--- old/base-compat-0.8.2/test/Control/Monad/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Control/Monad/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,16 @@
+module Control.Monad.CompatSpec (main, spec) where
+
+import Test.Hspec
+
+import Control.Monad.Compat
+import Prelude ()
+import Prelude.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "(<$!>)" $ do
+ it "is a strict version of (<$>)" $ do
+ not <$!> [True, False] `shouldBe` not <$> [True, False]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/Bits/CompatSpec.hs new/base-compat-0.9.0/test/Data/Bits/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/Bits/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/Bits/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,34 @@
+{-# LANGUAGE CPP #-}
+module Data.Bits.CompatSpec (main, spec) where
+
+import Test.Hspec
+import Data.Bits.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "bitDefault" $
+ it "sets the ith bit with all other bits clear" $ do
+ bitDefault 0 `shouldBe` (1 :: Int)
+ bitDefault 1 `shouldBe` (2 :: Int)
+ bitDefault 2 `shouldBe` (4 :: Int)
+ bitDefault 3 `shouldBe` (8 :: Int)
+ describe "testBitDefault" $
+ it "returns True if the nth bit of the argument is 1" $ do
+ testBitDefault (10 :: Int) 0 `shouldBe` False
+ testBitDefault (10 :: Int) 1 `shouldBe` True
+ testBitDefault (10 :: Int) 2 `shouldBe` False
+ testBitDefault (10 :: Int) 3 `shouldBe` True
+ describe "popCountDefault" $
+ it "returns the number of set bits in the argument" $ do
+ popCountDefault (0 :: Int) `shouldBe` 0
+ popCountDefault (1 :: Int) `shouldBe` 1
+ popCountDefault (10 :: Int) `shouldBe` 2
+#if MIN_VERSION_base(4,7,0)
+ describe "toIntegralSized" $
+ it "converts an Integral type to another as measured by bitSizeMaybe" $ do
+ toIntegralSized (42 :: Integer) `shouldBe` (Just 42 :: Maybe Int)
+ toIntegralSized (12345678901234567890 :: Integer) `shouldBe` (Nothing :: Maybe Int)
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/Bool/CompatSpec.hs new/base-compat-0.9.0/test/Data/Bool/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/Bool/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/Bool/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,18 @@
+module Data.Bool.CompatSpec (main, spec) where
+
+import Test.Hspec
+
+import Data.Bool.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "bool" $ do
+ it "evaluates to first parameter if condition is False" $ do
+ bool "KO" "OK" False `shouldBe` "KO"
+
+ it "evaluates to second parameter if condition is True" $ do
+ bool "KO" "OK" True `shouldBe` "OK"
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/Either/CompatSpec.hs new/base-compat-0.9.0/test/Data/Either/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/Either/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/Either/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,25 @@
+module Data.Either.CompatSpec (main, spec) where
+
+import Test.Hspec
+
+import Data.Either.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "isLeft" $ do
+ it "returns True for a Left value" $ do
+ isLeft (Left "23" :: Either String String) `shouldBe` True
+
+ it "returns False for a Right value" $ do
+ isLeft (Right "23" :: Either String String) `shouldBe` False
+
+ describe "isRight" $ do
+ it "returns False for a Left value" $ do
+ isRight (Left "23" :: Either String String) `shouldBe` False
+
+ it "returns True for a Right value" $ do
+ isRight (Right "23" :: Either String String) `shouldBe` True
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/Function/CompatSpec.hs new/base-compat-0.9.0/test/Data/Function/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/Function/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/Function/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,13 @@
+module Data.Function.CompatSpec (main, spec) where
+
+import Test.Hspec
+import Data.Function.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "&" $ do
+ it "reverses function application" $ do
+ (False & not) `shouldBe` True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/Functor/CompatSpec.hs new/base-compat-0.9.0/test/Data/Functor/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/Functor/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/Functor/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,17 @@
+module Data.Functor.CompatSpec (main, spec) where
+
+import Test.Hspec
+import Data.Functor.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "void" $ do
+ it "discards computation result" $ do
+ void (return 1 :: IO Int) `shouldReturn` ()
+
+ describe "$>" $ do
+ it "is the same as flipped <$" $ do
+ (Just 5 :: Maybe Int) $> 6 `shouldBe` (Just 6 :: Maybe Int)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/IORef/CompatSpec.hs new/base-compat-0.9.0/test/Data/IORef/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/IORef/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/IORef/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,22 @@
+module Data.IORef.CompatSpec (main, spec) where
+
+import Test.Hspec
+
+import Control.Monad
+import Data.IORef.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "modifyIORef'" $
+ it "mutates the contents of an IORef strictly" $ do
+ ref <- newIORef 0
+ replicateM_ 1000000 $ modifyIORef' ref (+1)
+ readIORef ref `shouldReturn` (1000000 :: Int)
+ describe "atomicModifyIORef'" $
+ it "atomically modifies the contents of an IORef strictly" $ do
+ ref <- newIORef 0
+ replicateM_ 1000000 . atomicModifyIORef' ref $ \n -> (n+1, ())
+ readIORef ref `shouldReturn` (1000000 :: Int)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/List/CompatSpec.hs new/base-compat-0.9.0/test/Data/List/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/List/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/List/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,43 @@
+module Data.List.CompatSpec (main, spec) where
+
+import Test.Hspec
+import Data.List.Compat
+
+data Asymmetric = A | B deriving Show
+
+instance Eq Asymmetric where
+ A == _ = True
+ B == _ = False
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "dropWhileEnd" $ do
+ it "drops the largest suffix of a list in which a predicate holds for all elements" $ do
+ dropWhileEnd (== ' ') "foo " `shouldBe` "foo"
+ dropWhileEnd (== ' ') "foo bar" `shouldBe` "foo bar"
+ describe "isSubsequenceOf" $ do
+ it "returns True if the first list is a subsequence of the second list" $ do
+ isSubsequenceOf "GHC" "The Glorious Haskell Compiler" `shouldBe` True
+ isSubsequenceOf "JHC" "The Glorious Haskell Compiler" `shouldBe` False
+ describe "nub" $
+ it "preserves the order of arguments to (==)" $
+ nub [A, B] `shouldBe` [A]
+ describe "nubBy" $
+ it "preserves the order of arguments to the equality function" $
+ nubBy (<) "12" `shouldBe` "1"
+ describe "sortOn" $ do
+ it "sorts a list by comparing the results of a key function applied to each element" $ do
+ sortOn (>='b') "cba" `shouldBe` "acb"
+ describe "uncons" $ do
+ it "decomposes a list into its head and tail" $ do
+ uncons "" `shouldBe` Nothing
+ uncons "12" `shouldBe` Just ('1', "2")
+ describe "union" $
+ it "nubs arguments in the same order as (==)" $ do
+ union [A] [A, B] `shouldBe` [A]
+ describe "unionBy" $
+ it "nubs arguments in the same order as nubBy's equality function" $ do
+ unionBy (<) "1" "21" `shouldBe` "11"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/Monoid/CompatSpec.hs new/base-compat-0.9.0/test/Data/Monoid/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/Monoid/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/Monoid/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,16 @@
+module Data.Monoid.CompatSpec (main, spec) where
+
+import Test.Hspec
+import Test.QuickCheck
+
+import Data.Monoid.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "<>" $ do
+ it "is an infix synonym for mappend" $ do
+ property $ \xs ys -> do
+ xs <> ys `shouldBe` (mappend xs ys :: String)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/STRef/CompatSpec.hs new/base-compat-0.9.0/test/Data/STRef/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/STRef/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/STRef/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,19 @@
+module Data.STRef.CompatSpec (main, spec) where
+
+import Test.Hspec
+
+import Control.Monad
+import Control.Monad.ST
+import Data.STRef.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec =
+ describe "modifySTRef'" $
+ it "should mutate the contents of an STRef strictly" $
+ shouldBe (1000000 :: Int) $ runST $ do
+ ref <- newSTRef 0
+ replicateM_ 1000000 $ modifySTRef' ref (+1)
+ readSTRef ref
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/Version/CompatSpec.hs new/base-compat-0.9.0/test/Data/Version/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/Version/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/Version/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,10 @@
+module Data.Version.CompatSpec (spec) where
+
+import Test.Hspec
+import Data.Version.Compat
+
+spec :: Spec
+spec = do
+ describe "makeVersion" $
+ it "constructs a tagless Version" $
+ makeVersion [1,2,3] `shouldBe` Version [1,2,3] []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Data/Word/CompatSpec.hs new/base-compat-0.9.0/test/Data/Word/CompatSpec.hs
--- old/base-compat-0.8.2/test/Data/Word/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Data/Word/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,22 @@
+module Data.Word.CompatSpec (main, spec) where
+
+import Test.Hspec
+import Data.Word.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "byteSwap16" $
+ it "reverses the order of bytes in a Word16 value" $ do
+ byteSwap16 0x1100 `shouldBe` 0x0011
+ byteSwap16 0x1010 `shouldBe` 0x1010
+ describe "byteSwap32" $
+ it "reverses the order of bytes in a Word32 value" $ do
+ byteSwap32 0x11001010 `shouldBe` 0x10100011
+ byteSwap32 0x10101111 `shouldBe` 0x11111010
+ describe "byteSwap64" $
+ it "reverses the order of bytes in a Word64 value" $ do
+ byteSwap64 0x1010111110101111 `shouldBe` 0x1111101011111010
+ byteSwap64 0x1100000000000011 `shouldBe` 0x1100000000000011
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Foreign/Marshal/Alloc/CompatSpec.hs new/base-compat-0.9.0/test/Foreign/Marshal/Alloc/CompatSpec.hs
--- old/base-compat-0.8.2/test/Foreign/Marshal/Alloc/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Foreign/Marshal/Alloc/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,17 @@
+module Foreign.Marshal.Alloc.CompatSpec (main, spec) where
+
+import Test.Hspec
+
+import Control.Exception
+import Foreign.Marshal.Alloc.Compat
+import Foreign.Storable
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "calloc" $
+ it "allocates memory with bytes of value zero" $ do
+ bracket calloc free $ \ptr -> do
+ peek ptr `shouldReturn` (0 :: Int)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Foreign/Marshal/Utils/CompatSpec.hs new/base-compat-0.9.0/test/Foreign/Marshal/Utils/CompatSpec.hs
--- old/base-compat-0.8.2/test/Foreign/Marshal/Utils/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Foreign/Marshal/Utils/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,20 @@
+module Foreign.Marshal.Utils.CompatSpec (main, spec) where
+
+import Test.Hspec
+
+import Foreign.Marshal.Alloc
+import Foreign.Marshal.Utils.Compat
+import Foreign.Ptr
+import Foreign.Storable
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "fillBytes" $
+ it "fills a given number of bytes in memory area with a byte value" $ do
+ alloca $ \ptr -> do
+ let _ = ptr :: Ptr Int
+ fillBytes ptr 0 $ sizeOf ptr
+ peek ptr `shouldReturn` 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Numeric/CompatSpec.hs new/base-compat-0.9.0/test/Numeric/CompatSpec.hs
--- old/base-compat-0.8.2/test/Numeric/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Numeric/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,24 @@
+module Numeric.CompatSpec (main, spec) where
+
+import Test.Hspec
+import Numeric.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "showFFloatAlt" $ do
+ it "shows a RealFloat value, always using decimal notation" $
+ showFFloatAlt Nothing (12 :: Double) "" `shouldBe` "12.0"
+ it "allows to specify the number of decimal places" $
+ showFFloatAlt (Just 4) (12 :: Double) "" `shouldBe` "12.0000"
+ describe "showGFloatAlt" $ do
+ it "shows a RealFloat value, using decimal notation if the absolute value lies between 0.1 and 9,999,999" $
+ showGFloatAlt Nothing (12 :: Double) "" `shouldBe` "12.0"
+ it "shows a RealFloat value, using decimal notation and specifying the number of decimal places" $
+ showGFloatAlt (Just 4) (12 :: Double) "" `shouldBe` "12.0000"
+ it "shows a RealFloat value, using scientific notation if the absolute value falls outside of the range" $
+ showGFloatAlt Nothing (1234567890 :: Double) "" `shouldBe` "1.23456789e9"
+ it "shows a RealFloat value, using scientific notation and specifying the number of decimal places" $
+ showGFloatAlt (Just 4) (1234567890 :: Double) "" `shouldBe` "1.2346e9"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/System/Environment/CompatSpec.hs new/base-compat-0.9.0/test/System/Environment/CompatSpec.hs
--- old/base-compat-0.8.2/test/System/Environment/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/System/Environment/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,120 @@
+{-# LANGUAGE CPP #-}
+module System.Environment.CompatSpec (main, spec) where
+
+import Test.Hspec
+import Test.QuickCheck
+
+import qualified Control.Exception as E
+import GHC.IO.Exception (IOErrorType (InvalidArgument))
+import System.Environment.Compat
+import System.IO.Error
+
+main :: IO ()
+main = hspec spec
+
+withEnv :: String -> String -> IO a -> IO a
+withEnv k v action = E.bracket save restore $ \_ -> do
+ setEnv k v >> action
+ where
+ save = lookupEnv k
+ restore = maybe (unsetEnv k) (setEnv k)
+
+withoutEnv :: String -> IO a -> IO a
+withoutEnv k action = E.bracket save restore $ \_ -> do
+ unsetEnv k >> action
+ where
+ save = lookupEnv k
+ restore = maybe (unsetEnv k) (setEnv k)
+
+spec :: Spec
+spec = do
+ describe "lookupEnv" $ do
+ it "returns specified environment variable" $ do
+ withEnv "FOOBAR" "23" $ do
+ lookupEnv "FOOBAR" `shouldReturn` Just "23"
+
+ it "returns Nothing if specified environment variable is not set" $ do
+ withoutEnv "FOOBAR" $ do
+ lookupEnv "FOOBAR" `shouldReturn` Nothing
+
+ describe "unsetEnv" $ do
+ it "removes specified environment variable" $ do
+ setEnv "FOO" "foo"
+ unsetEnv "FOO"
+ getEnv "FOO" `shouldThrow` isDoesNotExistError
+
+ it "does nothing if specified environment variable is not set" $ do
+ unsetEnv "BAR"
+ unsetEnv "BAR"
+ getEnv "BAR" `shouldThrow` isDoesNotExistError
+
+ it "throws an exception if key is the empty string" $ do
+ unsetEnv "" `shouldThrow` (== InvalidArgument) . ioeGetErrorType
+
+ it "throws an exception if key contains '='" $ do
+ unsetEnv "some=key" `shouldThrow` (== InvalidArgument) . ioeGetErrorType
+
+ it "works for arbitrary keys" $
+ property $ \k -> ('\NUL' `notElem` k && '=' `notElem` k && (not . null) k) ==> do
+ setEnv k "foo"
+ unsetEnv k
+ getEnv k `shouldThrow` isDoesNotExistError
+
+ describe "setEnv" $ do
+ it "sets specified environment variable to given value" $ do
+ unsetEnv "FOO"
+ setEnv "FOO" "foo"
+ getEnv "FOO" `shouldReturn` "foo"
+
+ it "resets specified environment variable, if it is already set" $ do
+ unsetEnv "FOO"
+ setEnv "FOO" "foo"
+ setEnv "FOO" "bar"
+ getEnv "FOO" `shouldReturn` "bar"
+
+ it "removes specified environment variable when value is the empty string" $ do
+ setEnv "FOO" "foo"
+ setEnv "FOO" ""
+ getEnv "FOO" `shouldThrow` isDoesNotExistError
+
+ it "removes specified environment variable when first character of value is NUL" $ do
+ setEnv "FOO" "foo"
+ setEnv "FOO" "\NULfoo"
+ getEnv "FOO" `shouldThrow` isDoesNotExistError
+
+ it "truncates value at NUL character" $ do
+ unsetEnv "FOO"
+ setEnv "FOO" "foo\NULbar"
+ getEnv "FOO" `shouldReturn` "foo"
+
+ it "truncates key at NUL character" $ do
+ unsetEnv "FOO"
+ setEnv "FOO\NULBAR" "foo"
+ getEnv "FOO" `shouldReturn` "foo"
+
+#if __GLASGOW_HASKELL__ >= 702
+ it "works for unicode" $ do
+ unsetEnv "FOO"
+ setEnv "FOO" "foo-\955-bar"
+ getEnv "FOO" `shouldReturn` "foo-\955-bar"
+#endif
+
+ it "works for arbitrary values" $
+ property $ \v -> ('\NUL' `notElem` v && (not . null) v) ==> do
+ setEnv "FOO" v
+ getEnv "FOO" `shouldReturn` v
+
+ it "works for unicode keys" $ do
+ setEnv "foo-\955-bar" "foo"
+ getEnv "foo-\955-bar" `shouldReturn` "foo"
+
+ it "throws an exception if key is the empty string" $ do
+ setEnv "" "foo" `shouldThrow` (== InvalidArgument) . ioeGetErrorType
+
+ it "throws an exception if key contains '='" $ do
+ setEnv "some=key" "foo" `shouldThrow` (== InvalidArgument) . ioeGetErrorType
+
+ it "works for arbitrary keys" $
+ property $ \k -> ('\NUL' `notElem` k && '=' `notElem` k && (not . null) k) ==> do
+ setEnv k "foo"
+ getEnv k `shouldReturn` "foo"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-compat-0.8.2/test/Text/Read/CompatSpec.hs new/base-compat-0.9.0/test/Text/Read/CompatSpec.hs
--- old/base-compat-0.8.2/test/Text/Read/CompatSpec.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/base-compat-0.9.0/test/Text/Read/CompatSpec.hs 2016-01-15 03:45:49.000000000 +0100
@@ -0,0 +1,24 @@
+module Text.Read.CompatSpec (main, spec) where
+
+import Test.Hspec
+
+import Text.Read.Compat
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = do
+ describe "readMaybe" $ do
+ it "parses a value" $ do
+ readMaybe "23" `shouldBe` (Just 23 :: Maybe Int)
+
+ it "returns Nothing if parsing fails" $ do
+ readMaybe "xx" `shouldBe` (Nothing :: Maybe Int)
+
+ describe "readEither" $ do
+ it "parses a value" $ do
+ readEither "23" `shouldBe` (Right 23 :: Either String Int)
+
+ it "returns Left if parsing fails" $ do
+ readEither "xx" `shouldBe` (Left "Prelude.read: no parse" :: Either String Int)
1
0
Hello community,
here is the log from the commit of package ghc-base-orphans for openSUSE:Factory checked in at 2016-01-28 17:23:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-base-orphans (Old)
and /work/SRC/openSUSE:Factory/.ghc-base-orphans.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-base-orphans"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-base-orphans/ghc-base-orphans.changes 2015-12-23 08:50:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-base-orphans.new/ghc-base-orphans.changes 2016-01-28 17:24:30.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Jan 20 08:48:09 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.5.0
+* Backported instances introduced in GHC 8.0/base-4.9
+
+-------------------------------------------------------------------
Old:
----
base-orphans-0.4.5.tar.gz
New:
----
base-orphans-0.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-base-orphans.spec ++++++
--- /var/tmp/diff_new_pack.HLOfB0/_old 2016-01-28 17:24:30.000000000 +0100
+++ /var/tmp/diff_new_pack.HLOfB0/_new 2016-01-28 17:24:30.000000000 +0100
@@ -20,7 +20,7 @@
%bcond_with tests
Name: ghc-base-orphans
-Version: 0.4.5
+Version: 0.5.0
Release: 0
Summary: Backwards-compatible orphan instances for base
Group: System/Libraries
++++++ base-orphans-0.4.5.tar.gz -> base-orphans-0.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-orphans-0.4.5/CHANGES.markdown new/base-orphans-0.5.0/CHANGES.markdown
--- old/base-orphans-0.4.5/CHANGES.markdown 2015-12-15 18:26:53.000000000 +0100
+++ new/base-orphans-0.5.0/CHANGES.markdown 2016-01-15 03:45:07.000000000 +0100
@@ -1,3 +1,8 @@
+## Changes in 0.5.0
+ - GHC 8.0 compatibility
+ - Backported instances introduced in GHC 8.0/`base-4.9`
+ (see https://github.com/haskell-compat/base-orphans/issues/32)
+
## Changes in 0.4.5
- Import `Control.Monad.Instances` (which exports `Functor` and `Monad`
instances for `(->) r`, and `Functor` instances for `(,) a` and `Either a`)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-orphans-0.4.5/README.markdown new/base-orphans-0.5.0/README.markdown
--- old/base-orphans-0.4.5/README.markdown 2015-12-15 18:26:53.000000000 +0100
+++ new/base-orphans-0.5.0/README.markdown 2016-01-15 03:45:07.000000000 +0100
@@ -31,25 +31,33 @@
## What is covered
- * Added `Applicative` and `Alternative` instances for `ReadP` and `ReadPrec`
- * Added `Bits`, `Bounded`, and `Integral` instances for `CDev`
- * Added `Eq` and `Ord` instances for `Control.Exception.ErrorCall`
- * Added `Eq`, `Ord`, `Read`, and `Show` instances for data types in `GHC.Generics`
- * Added `Functor`, `Applicative`, `Alternative`, and `MonadPlus` instances for `ArrowMonad`
- * Added `Functor`, `Applicative`, and `Monad` instances for `First` and `Last`
- * Added `Monoid`, `Eq`, `Ord`, `Read`, and `Show` instances for `Const`
- * Added `Read` and `Show` instances for `Down`
- * Added `Eq`, `Ord`, `Read`, and `Show` instances for `ZipList`
- * Added `Monad` instance for `WrappedMonad`
- * Added `Data` and `IsList` instances for `Version`
+ * `Applicative` and `Alternative` instances for `ReadP` and `ReadPrec`
* `Applicative` instance for strict and lazy `ST`
+ * `Applicative`, `Foldable`, `Functor`, `Monad`, and `Traversable` instances for `Complex`,
+ `Dual`, `First`, `Last`, `Product`, and `Sum`
* `Bits` instance for `Bool`
+ * `Bits`, `Bounded`, and `Integral` instances for `CDev`
+ * `Bounded`, `Enum`, `Ix`, and `Storable` instances for `Const` and `Identity`
+ * `Data` instances for `All` and `Any`
+ * `Data`, `MonadFix` and `MonadZip` instances for `Alt`, `Dual`, `First`, `Last`,
+ `Product`, and `Sum`
+ * `Data` and `IsList` instances for `Version`
+ * `Eq` and `Ord` instances for `Control.Exception.ErrorCall`
+ * `Eq`, `Ord`, `Read`, and `Show` instances for data types in `GHC.Generics`
+ * `Eq`, `Ord`, `Read`, `Show`, `Foldable`, and `Traversable` instances for `ZipList`
* `Foldable` instance for `Either`, `(,)` and `Const`
* `Functor` instance for `Handler`, `ArgOrder`, `OptDescr`, and `ArgDescr`
+ * `Functor`, `Applicative`, `Alternative`, and `MonadPlus` instances for `ArrowMonad`
+ * `Monad` instance for `(,)`
+ * `Monad` instance for `WrappedMonad`
+ * `MonadZip` instance for `Maybe`
+ * `Monoid`, `Eq`, `Ord`, `Read`, and `Show` instances for `Const`
+ * `Monoid` instances for `Identity` and `IO`
* `Num` instance for `Sum` and `Product`
* `Read` instance for `Fixed`
+ * `Read` and `Show` instances for `Down`
* `Show` instance for `Fingerprint`
- * `Storable` instance for `Complex` and `Ratio`
+ * `Storable` instance for `()`, `Complex`, and `Ratio`
* `Traversable` instance for `Either`, `(,)` and `Const`
* `Typeable` instance for most data types, typeclasses, and promoted data constructors (when possible)
@@ -60,9 +68,14 @@
[`Generics.Deriving.Instances`](https://hackage.haskell.org/package/generic-deriving-1.8.0/docs/Generics-Deriving-Instances.html)
module of the [`generic-deriving`](https://hackage.haskell.org/package/generic-deriving)
library.
+* The `Alternative IO` and `MonadPlus IO` instances. These can be found in the
+ [`Control.Monad.Trans.Error`](http://hackage.haskell.org/package/transformers-0.4.3.0/docs/src/Control-Monad-Trans-Error.html#line-69)
+ module of the [`transformers`](http://hackage.haskell.org/package/transformers) library.
## Supported versions of GHC/`base`
+ * `ghc-8.0.1` / `base-4.9.0.0`
+ * `ghc-7.10.3` / `base-4.8.2.0`
* `ghc-7.10.2` / `base-4.8.1.0`
* `ghc-7.10.1` / `base-4.8.0.0`
* `ghc-7.8.4` / `base-4.7.0.2`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-orphans-0.4.5/base-orphans.cabal new/base-orphans-0.5.0/base-orphans.cabal
--- old/base-orphans-0.4.5/base-orphans.cabal 2015-12-15 18:26:53.000000000 +0100
+++ new/base-orphans-0.5.0/base-orphans.cabal 2016-01-15 03:45:07.000000000 +0100
@@ -1,71 +1,71 @@
--- This file has been generated from package.yaml by hpack version 0.8.0.
---
--- see: https://github.com/sol/hpack
-
-name: base-orphans
-version: 0.4.5
-synopsis: Backwards-compatible orphan instances for base
-description: @base-orphans@ defines orphan instances that mimic instances available in later versions of @base@ to a wider (older) range of compilers. @base-orphans@ does not export anything except the orphan instances themselves and complements @<http://hackage.haskell.org/package/base-compat base-compat>@.
- See the README for what instances are covered: <https://github.com/haskell-compat/base-orphans#readme>. See also the <https://github.com/haskell-compat/base-orphans#what-is-not-covered what is not covered> section.
-category: Compatibility
-homepage: https://github.com/haskell-compat/base-orphans#readme
-bug-reports: https://github.com/haskell-compat/base-orphans/issues
-author: Simon Hengel <sol(a)typeful.net>,
- João Cristóvão <jmacristovao(a)gmail.com>,
- Ryan Scott <ryan.gl.scott(a)gmail.com>
-maintainer: Simon Hengel <sol(a)typeful.net>,
- João Cristóvão <jmacristovao(a)gmail.com>,
- Ryan Scott <ryan.gl.scott(a)gmail.com>
-copyright: (c) 2012-2015 Simon Hengel,
- (c) 2014 João Cristóvão,
- (c) 2015 Ryan Scott
-license: MIT
-license-file: LICENSE
-build-type: Simple
-cabal-version: >= 1.10
-
-extra-source-files:
- CHANGES.markdown
- README.markdown
-
-source-repository head
- type: git
- location: https://github.com/haskell-compat/base-orphans
-
-library
- hs-source-dirs:
- src
- ghc-options: -Wall
- build-depends:
- base >= 4.3 && < 5,
- ghc-prim
- exposed-modules:
- Data.Orphans
- other-modules:
- Data.Orphans.Prelude
- default-language: Haskell2010
-
-test-suite spec
- type: exitcode-stdio-1.0
- main-is: Spec.hs
- hs-source-dirs:
- test
- ghc-options: -Wall
- build-depends:
- base >= 4.3 && < 5,
- base-orphans,
- hspec == 2.*,
- QuickCheck
- other-modules:
- Control.Applicative.OrphansSpec
- Control.Exception.OrphansSpec
- Data.Bits.OrphansSpec
- Data.Foldable.OrphansSpec
- Data.Monoid.OrphansSpec
- Data.Traversable.OrphansSpec
- Data.Version.OrphansSpec
- Foreign.Storable.OrphansSpec
- GHC.Fingerprint.OrphansSpec
- System.Posix.Types.IntWord
- System.Posix.Types.OrphansSpec
- default-language: Haskell2010
+-- This file has been generated from package.yaml by hpack version 0.8.0.
+--
+-- see: https://github.com/sol/hpack
+
+name: base-orphans
+version: 0.5.0
+synopsis: Backwards-compatible orphan instances for base
+description: @base-orphans@ defines orphan instances that mimic instances available in later versions of @base@ to a wider (older) range of compilers. @base-orphans@ does not export anything except the orphan instances themselves and complements @<http://hackage.haskell.org/package/base-compat base-compat>@.
+ See the README for what instances are covered: <https://github.com/haskell-compat/base-orphans#readme>. See also the <https://github.com/haskell-compat/base-orphans#what-is-not-covered what is not covered> section.
+category: Compatibility
+homepage: https://github.com/haskell-compat/base-orphans#readme
+bug-reports: https://github.com/haskell-compat/base-orphans/issues
+author: Simon Hengel <sol(a)typeful.net>,
+ João Cristóvão <jmacristovao(a)gmail.com>,
+ Ryan Scott <ryan.gl.scott(a)gmail.com>
+maintainer: Simon Hengel <sol(a)typeful.net>,
+ João Cristóvão <jmacristovao(a)gmail.com>,
+ Ryan Scott <ryan.gl.scott(a)gmail.com>
+copyright: (c) 2012-2015 Simon Hengel,
+ (c) 2014 João Cristóvão,
+ (c) 2015 Ryan Scott
+license: MIT
+license-file: LICENSE
+build-type: Simple
+cabal-version: >= 1.10
+
+extra-source-files:
+ CHANGES.markdown
+ README.markdown
+
+source-repository head
+ type: git
+ location: https://github.com/haskell-compat/base-orphans
+
+library
+ hs-source-dirs:
+ src
+ ghc-options: -Wall
+ build-depends:
+ base >= 4.3 && < 5,
+ ghc-prim
+ exposed-modules:
+ Data.Orphans
+ other-modules:
+ Data.Orphans.Prelude
+ default-language: Haskell2010
+
+test-suite spec
+ type: exitcode-stdio-1.0
+ main-is: Spec.hs
+ hs-source-dirs:
+ test
+ ghc-options: -Wall
+ build-depends:
+ base >= 4.3 && < 5,
+ base-orphans,
+ hspec == 2.*,
+ QuickCheck
+ other-modules:
+ Control.Applicative.OrphansSpec
+ Control.Exception.OrphansSpec
+ Data.Bits.OrphansSpec
+ Data.Foldable.OrphansSpec
+ Data.Monoid.OrphansSpec
+ Data.Traversable.OrphansSpec
+ Data.Version.OrphansSpec
+ Foreign.Storable.OrphansSpec
+ GHC.Fingerprint.OrphansSpec
+ System.Posix.Types.IntWord
+ System.Posix.Types.OrphansSpec
+ default-language: Haskell2010
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-orphans-0.4.5/src/Data/Orphans/Prelude.hs new/base-orphans-0.5.0/src/Data/Orphans/Prelude.hs
--- old/base-orphans-0.4.5/src/Data/Orphans/Prelude.hs 2015-12-15 18:26:53.000000000 +0100
+++ new/base-orphans-0.5.0/src/Data/Orphans/Prelude.hs 2016-01-15 03:45:07.000000000 +0100
@@ -10,7 +10,7 @@
Note that this module does not export any modules that could introduce name clashes.
-}
module Data.Orphans.Prelude
-#if MIN_VERSION_base(4,8,0)
+#if MIN_VERSION_base(4,9,0)
() where
#else
(module OrphansPrelude) where
@@ -100,4 +100,8 @@
import Control.Concurrent.SampleVar as OrphansPrelude
# endif
+# if MIN_VERSION_base(4,8,0)
+import Data.Functor.Identity as OrphansPrelude
+# endif
+
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/base-orphans-0.4.5/src/Data/Orphans.hs new/base-orphans-0.5.0/src/Data/Orphans.hs
--- old/base-orphans-0.4.5/src/Data/Orphans.hs 2015-12-15 18:26:53.000000000 +0100
+++ new/base-orphans-0.5.0/src/Data/Orphans.hs 2016-01-15 03:45:07.000000000 +0100
@@ -5,6 +5,7 @@
{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
@@ -42,13 +43,16 @@
import Control.Monad.Instances ()
#endif
-#if __GLASGOW_HASKELL__ < 710
-import Control.Exception as Exception
-import Control.Monad.ST.Lazy as Lazy
+#if !(MIN_VERSION_base(4,9,0))
import Data.Data as Data
import qualified Data.Foldable as F (Foldable(..))
import Data.Monoid as Monoid
import qualified Data.Traversable as T (Traversable(..))
+#endif
+
+#if __GLASGOW_HASKELL__ < 710
+import Control.Exception as Exception
+import Control.Monad.ST.Lazy as Lazy
import GHC.Exts as Exts
import GHC.IO.Exception as Exception
import Text.ParserCombinators.ReadP as ReadP
@@ -60,7 +64,7 @@
# endif
#endif
-#if !(MIN_VERSION_base(4,8,0))
+#if !(MIN_VERSION_base(4,9,0))
import Data.Orphans.Prelude
#endif
@@ -392,6 +396,242 @@
pokeElemOff q 1 i
#endif
+#if !(MIN_VERSION_base(4,9,0))
+instance Storable () where
+ sizeOf _ = 0
+ alignment _ = 1
+ peek _ = return ()
+ poke _ _ = return ()
+
+deriving instance Bounded a => Bounded (Const a b)
+deriving instance Enum a => Enum (Const a b)
+deriving instance Ix a => Ix (Const a b)
+deriving instance Storable a => Storable (Const a b)
+
+deriving instance Data All
+deriving instance Data Monoid.Any
+deriving instance Data a => Data (Dual a)
+deriving instance Data a => Data (First a)
+deriving instance Data a => Data (Last a)
+deriving instance Data a => Data (Product a)
+deriving instance Data a => Data (Sum a)
+
+instance F.Foldable Dual where
+ foldMap = coerce
+
+ foldl = coerce
+ foldl1 _ = getDual
+ foldr f z (Dual x) = f x z
+ foldr1 _ = getDual
+# if MIN_VERSION_base(4,6,0)
+ foldl' = coerce
+ foldr' = F.foldr
+# endif
+# if MIN_VERSION_base(4,8,0)
+ elem = (. getDual) #. (==)
+ length _ = 1
+ maximum = getDual
+ minimum = getDual
+ null _ = False
+ product = getDual
+ sum = getDual
+ toList (Dual x) = [x]
+# endif
+
+instance F.Foldable Sum where
+ foldMap = coerce
+
+ foldl = coerce
+ foldl1 _ = getSum
+ foldr f z (Sum x) = f x z
+ foldr1 _ = getSum
+# if MIN_VERSION_base(4,6,0)
+ foldl' = coerce
+ foldr' = F.foldr
+# endif
+# if MIN_VERSION_base(4,8,0)
+ elem = (. getSum) #. (==)
+ length _ = 1
+ maximum = getSum
+ minimum = getSum
+ null _ = False
+ product = getSum
+ sum = getSum
+ toList (Sum x) = [x]
+# endif
+
+instance F.Foldable Product where
+ foldMap = coerce
+
+ foldl = coerce
+ foldl1 _ = getProduct
+ foldr f z (Product x) = f x z
+ foldr1 _ = getProduct
+# if MIN_VERSION_base(4,6,0)
+ foldl' = coerce
+ foldr' = F.foldr
+# endif
+# if MIN_VERSION_base(4,8,0)
+ elem = (. getProduct) #. (==)
+ length _ = 1
+ maximum = getProduct
+ minimum = getProduct
+ null _ = False
+ product = getProduct
+ sum = getProduct
+ toList (Product x) = [x]
+# endif
+
+# if MIN_VERSION_base(4,8,0)
+(#.) :: Coercible b c => (b -> c) -> (a -> b) -> (a -> c)
+(#.) _f = coerce
+# endif
+
+# if !(MIN_VERSION_base(4,7,0))
+coerce :: a -> b
+coerce = unsafeCoerce
+# endif
+
+instance Functor Dual where
+ fmap = coerce
+
+instance Applicative Dual where
+ pure = Dual
+ (<*>) = coerce
+
+instance Monad Dual where
+ return = Dual
+ m >>= k = k (getDual m)
+
+instance Functor Sum where
+ fmap = coerce
+
+instance Applicative Sum where
+ pure = Sum
+ (<*>) = coerce
+
+instance Monad Sum where
+ return = Sum
+ m >>= k = k (getSum m)
+
+instance Functor Product where
+ fmap = coerce
+
+instance Applicative Product where
+ pure = Product
+ (<*>) = coerce
+
+instance Monad Product where
+ return = Product
+ m >>= k = k (getProduct m)
+
+instance F.Foldable First where
+ foldMap f = F.foldMap f . getFirst
+
+instance F.Foldable Last where
+ foldMap f = F.foldMap f . getLast
+
+instance Monoid a => Monoid (IO a) where
+ mempty = pure mempty
+ mappend = liftA2 mappend
+
+-- see: #10190 https://git.haskell.org/ghc.git/commitdiff/9db005a444722e31aca1956b058e069b…
+instance Monoid a => Monad ((,) a) where
+ return x = (mempty, x)
+ (u, a) >>= k = case k a of (v, b) -> (u `mappend` v, b)
+
+instance MonadFix Dual where
+ mfix f = Dual (fix (getDual . f))
+
+instance MonadFix Sum where
+ mfix f = Sum (fix (getSum . f))
+
+instance MonadFix Product where
+ mfix f = Product (fix (getProduct . f))
+
+instance MonadFix First where
+ mfix f = First (mfix (getFirst . f))
+
+instance MonadFix Last where
+ mfix f = Last (mfix (getLast . f))
+
+instance T.Traversable Dual where
+ traverse f (Dual x) = Dual <$> f x
+
+instance T.Traversable Sum where
+ traverse f (Sum x) = Sum <$> f x
+
+instance T.Traversable Product where
+ traverse f (Product x) = Product <$> f x
+
+instance T.Traversable First where
+ traverse f (First x) = First <$> T.traverse f x
+
+instance T.Traversable Last where
+ traverse f (Last x) = Last <$> T.traverse f x
+
+deriving instance F.Foldable ZipList
+deriving instance T.Traversable ZipList
+
+# if MIN_VERSION_base(4,4,0)
+deriving instance Functor Complex
+deriving instance F.Foldable Complex
+deriving instance T.Traversable Complex
+
+instance Applicative Complex where
+ pure a = a :+ a
+ f :+ g <*> a :+ b = f a :+ g b
+
+instance Monad Complex where
+ return a = a :+ a
+ a :+ b >>= f = realPart (f a) :+ imagPart (f b)
+
+-- | Extracts the real part of a complex number.
+realPart :: Complex a -> a
+realPart (x :+ _) = x
+
+-- | Extracts the imaginary part of a complex number.
+imagPart :: Complex a -> a
+imagPart (_ :+ y) = y
+
+instance MonadZip Dual where
+ -- Cannot use coerce, it's unsafe
+ mzipWith = liftM2
+
+instance MonadZip Sum where
+ mzipWith = liftM2
+
+instance MonadZip Product where
+ mzipWith = liftM2
+
+instance MonadZip Maybe where
+ mzipWith = liftM2
+
+instance MonadZip First where
+ mzipWith = liftM2
+
+instance MonadZip Last where
+ mzipWith = liftM2
+# endif
+
+# if MIN_VERSION_base(4,8,0)
+deriving instance (Data (f a), Typeable f, Typeable a)
+ => Data (Alt (f :: * -> *) (a :: *))
+
+instance MonadFix f => MonadFix (Alt f) where
+ mfix f = Alt (mfix (getAlt . f))
+
+instance MonadZip f => MonadZip (Alt f) where
+ mzipWith f (Alt ma) (Alt mb) = Alt (mzipWith f ma mb)
+
+deriving instance Bounded a => Bounded (Identity a)
+deriving instance Enum a => Enum (Identity a)
+deriving instance Ix a => Ix (Identity a)
+deriving instance Monoid a => Monoid (Identity a)
+deriving instance Storable a => Storable (Identity a)
+# endif
+#endif
+
#if __GLASGOW_HASKELL__ < 710
deriving instance Typeable All
deriving instance Typeable AnnotationWrapper
1
0
Hello community,
here is the log from the commit of package ghc-async for openSUSE:Factory checked in at 2016-01-28 17:23:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-async (Old)
and /work/SRC/openSUSE:Factory/.ghc-async.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-async"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-async/ghc-async.changes 2015-05-21 08:11:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-async.new/ghc-async.changes 2016-01-28 17:24:28.000000000 +0100
@@ -1,0 +2,11 @@
+Sun Jan 24 10:10:44 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 2.1.0
+* Bump base dependency to allow 4.10
+* Remove invalid Monad instance for Concurrently
+* Add Monoid and Semigroup instances for Concurrently
+* Add forConcurrently (flipped version of mapConcurrently)
+* Add STM version of all applicable IO functions: waitAnySTM, waitAnyCatchSTM,
+ waitEitherSTM, waitEitherCatchSTM, waitEitherSTM_, and waitBothSTM.
+
+-------------------------------------------------------------------
Old:
----
async-2.0.2.tar.gz
New:
----
async-2.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-async.spec ++++++
--- /var/tmp/diff_new_pack.Fjk1y6/_old 2016-01-28 17:24:29.000000000 +0100
+++ /var/tmp/diff_new_pack.Fjk1y6/_new 2016-01-28 17:24:29.000000000 +0100
@@ -19,14 +19,14 @@
%global pkg_name async
Name: ghc-async
-Version: 2.0.2
+Version: 2.1.0
Release: 0
Summary: Run IO operations asynchronously and wait for their results
License: BSD-3-Clause
Group: System/Libraries
Url: http://hackage.haskell.org/package/%{pkg_name}
-Source0: http://hackage.haskell.org/packages/archive/%{pkg_name}/%{version}/%{pkg_na…
+Source0: http://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ver…
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: ghc-Cabal-devel
++++++ async-2.0.2.tar.gz -> async-2.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/async-2.0.2/Control/Concurrent/Async.hs new/async-2.1.0/Control/Concurrent/Async.hs
--- old/async-2.0.2/Control/Concurrent/Async.hs 2014-12-22 12:32:14.000000000 +0100
+++ new/async-2.1.0/Control/Concurrent/Async.hs 2016-01-05 17:42:20.000000000 +0100
@@ -105,11 +105,17 @@
waitEither_,
waitBoth,
+ -- ** Waiting for multiple 'Async's in STM
+ waitAnySTM, waitAnyCatchSTM,
+ waitEitherSTM, waitEitherCatchSTM,
+ waitEitherSTM_,
+ waitBothSTM,
+
-- ** Linking
link, link2,
-- * Convenient utilities
- race, race_, concurrently, mapConcurrently,
+ race, race_, concurrently, mapConcurrently, forConcurrently,
Concurrently(..),
) where
@@ -122,7 +128,14 @@
#endif
import Control.Monad
import Control.Applicative
+#if !MIN_VERSION_base(4,8,0)
+import Data.Monoid (Monoid(mempty,mappend))
import Data.Traversable
+#endif
+#if MIN_VERSION_base(4,9,0)
+import Data.Semigroup (Semigroup((<>)))
+#endif
+
import GHC.Exts
import GHC.IO hiding (finally, onException)
@@ -316,9 +329,15 @@
-- If multiple 'Async's complete or have completed, then the value
-- returned corresponds to the first completed 'Async' in the list.
--
+{-# INLINE waitAnyCatch #-}
waitAnyCatch :: [Async a] -> IO (Async a, Either SomeException a)
-waitAnyCatch asyncs =
- atomically $
+waitAnyCatch = atomically . waitAnyCatchSTM
+
+-- | A version of 'waitAnyCatch' that can be used inside an STM transaction.
+--
+-- @since 2.1.0
+waitAnyCatchSTM :: [Async a] -> STM (Async a, Either SomeException a)
+waitAnyCatchSTM asyncs =
foldr orElse retry $
map (\a -> do r <- waitCatchSTM a; return (a, r)) asyncs
@@ -336,9 +355,15 @@
-- If multiple 'Async's complete or have completed, then the value
-- returned corresponds to the first completed 'Async' in the list.
--
+{-# INLINE waitAny #-}
waitAny :: [Async a] -> IO (Async a, a)
-waitAny asyncs =
- atomically $
+waitAny = atomically . waitAnySTM
+
+-- | A version of 'waitAny' that can be used inside an STM transaction.
+--
+-- @since 2.1.0
+waitAnySTM :: [Async a] -> STM (Async a, a)
+waitAnySTM asyncs =
foldr orElse retry $
map (\a -> do r <- waitSTM a; return (a, r)) asyncs
@@ -350,11 +375,19 @@
waitAny asyncs `finally` mapM_ cancel asyncs
-- | Wait for the first of two @Async@s to finish.
+{-# INLINE waitEitherCatch #-}
waitEitherCatch :: Async a -> Async b
-> IO (Either (Either SomeException a)
(Either SomeException b))
-waitEitherCatch left right =
- atomically $
+waitEitherCatch left right = atomically (waitEitherCatchSTM left right)
+
+-- | A version of 'waitEitherCatch' that can be used inside an STM transaction.
+--
+-- @since 2.1.0
+waitEitherCatchSTM :: Async a -> Async b
+ -> STM (Either (Either SomeException a)
+ (Either SomeException b))
+waitEitherCatchSTM left right =
(Left <$> waitCatchSTM left)
`orElse`
(Right <$> waitCatchSTM right)
@@ -372,18 +405,30 @@
-- that finished first raised an exception, then the exception is
-- re-thrown by 'waitEither'.
--
+{-# INLINE waitEither #-}
waitEither :: Async a -> Async b -> IO (Either a b)
-waitEither left right =
- atomically $
+waitEither left right = atomically (waitEitherSTM left right)
+
+-- | A version of 'waitEither' that can be used inside an STM transaction.
+--
+-- @since 2.1.0
+waitEitherSTM :: Async a -> Async b -> STM (Either a b)
+waitEitherSTM left right =
(Left <$> waitSTM left)
`orElse`
(Right <$> waitSTM right)
-- | Like 'waitEither', but the result is ignored.
--
+{-# INLINE waitEither_ #-}
waitEither_ :: Async a -> Async b -> IO ()
-waitEither_ left right =
- atomically $
+waitEither_ left right = atomically (waitEitherSTM_ left right)
+
+-- | A version of 'waitEither_' that can be used inside an STM transaction.
+--
+-- @since 2.1.0
+waitEitherSTM_:: Async a -> Async b -> STM ()
+waitEitherSTM_ left right =
(void $ waitSTM left)
`orElse`
(void $ waitSTM right)
@@ -399,9 +444,15 @@
-- an exception before they have both finished, then the exception is
-- re-thrown by 'waitBoth'.
--
+{-# INLINE waitBoth #-}
waitBoth :: Async a -> Async b -> IO (a,b)
-waitBoth left right =
- atomically $ do
+waitBoth left right = atomically (waitBothSTM left right)
+
+-- | A version of 'waitBoth' that can be used inside an STM transaction.
+--
+-- @since 2.1.0
+waitBothSTM :: Async a -> Async b -> STM (a,b)
+waitBothSTM left right = do
a <- waitSTM left
`orElse`
(waitSTM right >> retry)
@@ -519,7 +570,9 @@
`catchAll` (putMVar done . Left)
rid <- forkIO $ restore (right >>= putMVar done . Right . Right)
`catchAll` (putMVar done . Left)
- let stop = killThread lid >> killThread rid
+ let stop = killThread rid >> killThread lid
+ -- kill right before left, to match the semantics of
+ -- the version using withAsync. (#27)
r <- restore (collect done) `onException` stop
stop
return r
@@ -538,6 +591,14 @@
mapConcurrently :: Traversable t => (a -> IO b) -> t a -> IO (t b)
mapConcurrently f = runConcurrently . traverse (Concurrently . f)
+-- | `forConcurrently` is `mapConcurrently` with its arguments flipped
+--
+-- > pages <- forConcurrently ["url1", "url2", "url3"] $ \url -> getURL url
+--
+-- @since 2.1.0
+forConcurrently :: Traversable t => t a -> (a -> IO b)-> IO (t b)
+forConcurrently = flip mapConcurrently
+
-- -----------------------------------------------------------------------------
-- | A value of type @Concurrently a@ is an @IO@ operation that can be
@@ -571,10 +632,23 @@
Concurrently as <|> Concurrently bs =
Concurrently $ either id id <$> race as bs
-instance Monad Concurrently where
- return = pure
- Concurrently a >>= f =
- Concurrently $ a >>= runConcurrently . f
+#if MIN_VERSION_base(4,9,0)
+-- | Only defined by @async@ for @base >= 4.9@
+--
+-- @since 2.1.0
+instance Semigroup a => Semigroup (Concurrently a) where
+ (<>) = liftA2 (<>)
+
+-- | @since 2.1.0
+instance (Semigroup a, Monoid a) => Monoid (Concurrently a) where
+ mempty = pure mempty
+ mappend = (<>)
+#else
+-- | @since 2.1.0
+instance Monoid a => Monoid (Concurrently a) where
+ mempty = pure mempty
+ mappend = liftA2 mappend
+#endif
-- ----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/async-2.0.2/async.cabal new/async-2.1.0/async.cabal
--- old/async-2.0.2/async.cabal 2014-12-22 12:32:14.000000000 +0100
+++ new/async-2.1.0/async.cabal 2016-01-05 17:42:20.000000000 +0100
@@ -1,4 +1,6 @@
name: async
+version: 2.1.0
+-- don't forget to update ./changelog.md!
synopsis: Run IO operations asynchronously and wait for their results
description:
@@ -21,47 +23,7 @@
* The API makes it possible to build a tree of
threads that are automatically killed when
their parent dies (see 'withAsync').
- .
- Changes in 2.0.2:
- .
- * Add a Monad instance for Concurrently
- * Bump base dependency to allow 4.9
- .
- Changes in 2.0.1.6:
- .
- * Add workaround to waitCatch for #14
- .
- Changes in 2.0.1.5:
- .
- * Bump @base@ dependencies for GHC 7.8
- .
- Changes in 2.0.1.4:
- .
- * Bump @base@ dependency of test suite
- .
- Changes in 2.0.1.3:
- .
- * Bump @base@ dependency to allow 4.6
- .
- Changes in 2.0.1.2:
- .
- * Bump @stm@ dependency to 2.4
- .
- Changes in 2.0.1.1:
- .
- * Safe Haskell support: @Control.Concurrent.Async@ is now @Trustworthy@
- .
- Changes in 2.0.1.0:
- .
- * Added a @Functor@ instance for @Async@
- .
- * Added @asyncBound@, @asyncOn@, @asyncWithUnmask@, @asyncOnWithUnmask@, @withAsyncBound@, @withAsyncOn@, @withAsyncWithUnmask@, @withAsyncOnWithUnmask@.
- .
- * Added @mapConcurrently@
- .
- * Added @Concurrently@ (with @Applicative@ and @Alternative@ instances)
-version: 2.0.2
license: BSD3
license-file: LICENSE
author: Simon Marlow
@@ -69,12 +31,13 @@
copyright: (c) Simon Marlow 2012
category: Concurrency
build-type: Simple
-cabal-version: >=1.8
+cabal-version: >=1.10
homepage: https://github.com/simonmar/async
bug-reports: https://github.com/simonmar/async/issues
-tested-with: GHC==7.0.3, GHC==7.2.2, GHC==7.4.1
+tested-with: GHC==7.11.*, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2, GHC==7.2.2, GHC==7.0.4
extra-source-files:
+ changelog.md
bench/race.hs
source-repository head
@@ -82,14 +45,19 @@
location: https://github.com/simonmar/async.git
library
+ default-language: Haskell2010
+ other-extensions: CPP, MagicHash, RankNTypes, UnboxedTuples
+ if impl(ghc>=7.1)
+ other-extensions: Trustworthy
exposed-modules: Control.Concurrent.Async
- build-depends: base >= 4.3 && < 4.9, stm >= 2.2 && < 2.5
+ build-depends: base >= 4.3 && < 4.10, stm >= 2.2 && < 2.5
test-suite test-async
+ default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: test-async.hs
- build-depends: base >= 4.3 && < 4.9,
+ build-depends: base >= 4.3 && < 4.10,
async,
test-framework,
test-framework-hunit,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/async-2.0.2/changelog.md new/async-2.1.0/changelog.md
--- old/async-2.0.2/changelog.md 1970-01-01 01:00:00.000000000 +0100
+++ new/async-2.1.0/changelog.md 2016-01-05 17:42:20.000000000 +0100
@@ -0,0 +1,45 @@
+## Changes in 2.1.0:
+
+ - Bump base dependency to allow 4.10
+ - Remove invalid Monad instance for `Concurrently`
+ - Add `Monoid` and `Semigroup` instances for `Concurrently`
+ - Add `forConcurrently` (flipped version of `mapConcurrently`)
+ - Add STM version of all applicable IO functions:
+ `waitAnySTM`, `waitAnyCatchSTM`, `waitEitherSTM`,
+ `waitEitherCatchSTM`, `waitEitherSTM_`, and `waitBothSTM`.
+
+## Changes in 2.0.2:
+
+ - Add a Monad instance for `Concurrently`
+ - Bump base dependency to allow 4.9
+
+## Changes in 2.0.1.6:
+
+ - Add workaround to waitCatch for #14
+
+## Changes in 2.0.1.5:
+
+ - Bump `base` dependencies for GHC 7.8
+
+## Changes in 2.0.1.4:
+
+ - Bump `base` dependency of test suite
+
+## Changes in 2.0.1.3:
+
+ - Bump `base` dependency to allow 4.6
+
+## Changes in 2.0.1.2:
+
+ - Bump `stm` dependency to 2.4
+
+## Changes in 2.0.1.1:
+
+ - Safe Haskell support: `Control.Concurrent.Async` is now `Trustworthy`
+
+## Changes in 2.0.1.0:
+
+ - Added a `Functor` instance for `Async`
+ - Added `asyncBound`, `asyncOn`, `asyncWithUnmask`, `asyncOnWithUnmask`, `withAsyncBound`, `withAsyncOn`, `withAsyncWithUnmask`, `withAsyncOnWithUnmask`.
+ - Added `mapConcurrently`
+ - Added `Concurrently` (with `Applicative` and `Alternative` instances)
1
0
Hello community,
here is the log from the commit of package ghc-aeson for openSUSE:Factory checked in at 2016-01-28 17:23:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-aeson (Old)
and /work/SRC/openSUSE:Factory/.ghc-aeson.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-aeson"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-aeson/ghc-aeson.changes 2016-01-08 15:22:37.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-aeson.new/ghc-aeson.changes 2016-01-28 17:24:27.000000000 +0100
@@ -2,50 +1,0 @@
-Wed Dec 23 15:40:06 UTC 2015 - mimi.vx(a)gmail.com
-
-- update to 0.10.0.0
-* Performance improvements:
- + Direct encoding via the new toEncoding method is over 2x faster than toJSON.
- (You must write or code-gen a toEncoding implementation to unlock this speedup.
- See below for details.)
- + Improved string decoding gives a 12% speed win in parsing string-heavy JSON
- payloads (very common).
- + Encoding and decoding of time-related types are 10x faster (!!) as a result of
- bypassing Data.Time.Format and the arbitrary-precision Integer type.
- + When using toEncoding, [Char] can be encoded without a conversion to Text.
- This is fast and efficient.
- + Parsing into an Object is now 5% faster and more allocation-efficient.
-* SUBTLE API CHANGES, READ CAREFULLY:
- + With the exception of long-deprecated code, the API changes below should be
- upwards compatible from older versions of aeson. If you run into upgrade
- problems, please file an issue with details.
- + The ToJSON class has a new method, toEncoding, that allows direct encoding
- from a Haskell value to a lazy bytestring without construction of an
- intermediate Value.
- + The performance benefits of direct encoding are significant: more than 2x
- faster than before, with less than 1/3 the memory usage.
- + To preserve API compatibility across upgrades from older versions of this
- library, the default implementation of toEncoding uses toJSON. You will not
- see any performance improvement unless you write an implementation of
- toEncoding, which can be very simple:
- instance ToJSON Coord where
- toEncoding = genericToEncoding defaultOptions
- (Behind the scenes, the encode function uses toEncoding now, so if you
- implement toEncoding for your types, you should see a speedup immediately.)
- + If you use Template Haskell or GHC Generics to auto-generate your ToJSON
- instances, you'll benefit from fast toEncoding implementations for free!
- + When converting from a Value to a target Haskell type, FromJSON instances now
- provide much better error messages, including a complete JSON path from the
- root of the object to the offending element. This greatly eases debugging.
- + It is now possible to use Template Haskell to generate FromJSON and ToJSON
- instances for types in data families.
- + If you use Template Haskell or generics, and used to use the camelTo function
- to rename fields, the new camelTo2 function is smarter. For example, camelTo
- will rename CamelAPICase to camelapi_case (ugh!), while camelTo2 will map
- it to camel_api_case (yay!).
- + New ToJSON and FromJSON instances for the following time-related types: Day,
- LocalTime.
- + The Result type is now an instance of Foldable and Traversable.
- + The Data.Aeson.Generic module has been removed. It was deprecated in late 2013.
- + The instance of Monad for the Result type lacked an implementation of fail
- (oops). This has been corrected.
-
--------------------------------------------------------------------
Old:
----
aeson-0.10.0.0.tar.gz
New:
----
aeson-0.9.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-aeson.spec ++++++
--- /var/tmp/diff_new_pack.9IKUB4/_old 2016-01-28 17:24:28.000000000 +0100
+++ /var/tmp/diff_new_pack.9IKUB4/_new 2016-01-28 17:24:28.000000000 +0100
@@ -20,8 +20,8 @@
%bcond_with tests
-Name: ghc-aeson
-Version: 0.10.0.0
+Name: ghc-%{pkg_name}
+Version: 0.9.0.1
Release: 0
Summary: Fast JSON parsing and encoding
License: BSD-3-Clause
@@ -41,6 +41,7 @@
BuildRequires: ghc-dlist-devel
BuildRequires: ghc-hashable-devel
BuildRequires: ghc-mtl-devel
+BuildRequires: ghc-old-locale-devel
BuildRequires: ghc-scientific-devel
BuildRequires: ghc-syb-devel
BuildRequires: ghc-template-haskell-devel
++++++ aeson-0.10.0.0.tar.gz -> aeson-0.9.0.1.tar.gz ++++++
++++ 12680 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-dfVFS for openSUSE:Factory checked in at 2016-01-28 17:23:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-dfVFS (Old)
and /work/SRC/openSUSE:Factory/.python-dfVFS.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-dfVFS"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-dfVFS/python-dfVFS.changes 2015-08-21 12:43:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-dfVFS.new/python-dfVFS.changes 2016-01-28 17:24:24.000000000 +0100
@@ -1,0 +2,9 @@
+Wed Dec 2 21:00:42 UTC 2015 - Greg.Freemyer(a)gmail.com
+
+- update to v0~20160108
+ * still pre-release and no ChangeLog available
+ * required by plaso v1.4.0 which is in feature freeze at this point
+- update pyvshadow requires to version v0~20160110
+- add Requires: pyfsntfs
+
+-------------------------------------------------------------------
Old:
----
dfvfs-20150708.tar.gz
New:
----
dfvfs-20160108.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-dfVFS.spec ++++++
--- /var/tmp/diff_new_pack.A9WWUQ/_old 2016-01-28 17:24:27.000000000 +0100
+++ /var/tmp/diff_new_pack.A9WWUQ/_new 2016-01-28 17:24:27.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-dfVFS
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,7 @@
#
-%define timestamp 20150708
+%define timestamp 20160108
Name: python-dfVFS
Version: 0~%{timestamp}
Release: 0
@@ -31,6 +31,7 @@
BuildRequires: python-setuptools
Requires: pybde
Requires: pyewf
+Requires: pyfsntfs
Requires: pyqcow
Requires: pysigscan
Requires: pysmdev
@@ -41,7 +42,7 @@
Requires: pytsk
Requires: pyvhdi
Requires: pyvmdk
-Requires: pyvshadow
+Requires: pyvshadow >= 0~20160110
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
++++++ dfvfs-20150708.tar.gz -> dfvfs-20160108.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-dfVFS/dfvfs-20150708.tar.gz /work/SRC/openSUSE:Factory/.python-dfVFS.new/dfvfs-20160108.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package libfsntfs for openSUSE:Factory checked in at 2016-01-28 17:23:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libfsntfs (Old)
and /work/SRC/openSUSE:Factory/.libfsntfs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libfsntfs"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libfsntfs/libfsntfs.changes 2015-12-09 22:22:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libfsntfs.new/libfsntfs.changes 2016-01-28 17:24:22.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Jan 26 03:09:55 UTC 2016 - Greg.Freemyer(a)gmail.com
+
+- correct "Provides: pyfsntfs" line, erroneously said pylnk previously
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libfsntfs.spec ++++++
--- /var/tmp/diff_new_pack.GWTd9s/_old 2016-01-28 17:24:23.000000000 +0100
+++ /var/tmp/diff_new_pack.GWTd9s/_new 2016-01-28 17:24:23.000000000 +0100
@@ -94,7 +94,7 @@
Group: Development/Libraries/Python
Requires: %lname = %version
Requires: python
-Provides: pylnk = %version
+Provides: pyfsntfs = %version
%description -n python-%name
Python binding for libfsntfs, which can access the NTFS filesystem.
1
0
Hello community,
here is the log from the commit of package freeradius-server for openSUSE:Factory checked in at 2016-01-28 17:23:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/freeradius-server (Old)
and /work/SRC/openSUSE:Factory/.freeradius-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "freeradius-server"
Changes:
--------
--- /work/SRC/openSUSE:Factory/freeradius-server/freeradius-server.changes 2015-10-06 13:27:59.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.freeradius-server.new/freeradius-server.changes 2016-01-28 17:24:17.000000000 +0100
@@ -1,0 +2,8 @@
+Mon Jan 25 18:48:55 UTC 2016 - michael(a)stroeder.com
+
+- removed installation of experimental module rlm_sqlhpwippool.so
+- update to 3.0.11
+ * for a detailed list of changes look at:
+ /usr/share/doc/packages/freeradius-server/ChangeLog
+
+-------------------------------------------------------------------
Old:
----
freeradius-server-3.0.10.tar.bz2
freeradius-server-3.0.10.tar.bz2.sig
New:
----
freeradius-server-3.0.11.tar.bz2
freeradius-server-3.0.11.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ freeradius-server.spec ++++++
--- /var/tmp/diff_new_pack.CRLcan/_old 2016-01-28 17:24:19.000000000 +0100
+++ /var/tmp/diff_new_pack.CRLcan/_new 2016-01-28 17:24:19.000000000 +0100
@@ -20,7 +20,7 @@
%define apxs2 apxs2-prefork
%define apache2_sysconfdir %(%{_sbindir}/%{apxs2} -q SYSCONFDIR)
Name: freeradius-server
-Version: 3.0.10
+Version: 3.0.11
Release: 0
Summary: Very Highly Configurable Radius Server
License: GPL-2.0 and LGPL-2.1
@@ -618,7 +618,6 @@
%{_libdir}/freeradius/rlm_unpack.so
%{_libdir}/freeradius/rlm_cache_memcached.so
%{_libdir}/freeradius/rlm_cache_rbtree.so
-%{_libdir}/freeradius/rlm_sqlhpwippool.so
%files utils
%defattr(-,root,root)
++++++ freeradius-server-3.0.10.tar.bz2 -> freeradius-server-3.0.11.tar.bz2 ++++++
++++ 11460 lines of diff (skipped)
++++++ freeradius-server-rlm_sql_unixodbc-configure.patch ++++++
--- /var/tmp/diff_new_pack.CRLcan/_old 2016-01-28 17:24:22.000000000 +0100
+++ /var/tmp/diff_new_pack.CRLcan/_new 2016-01-28 17:24:22.000000000 +0100
@@ -1,5 +1,5 @@
---- freeradius-server-3.0.9-orig/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure 2015-07-08 22:43:41.921011659 +0200
-+++ freeradius-server-3.0.9/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure 2015-07-08 22:45:58.874299508 +0200
+--- freeradius-server-3.0.11.orig/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure 2016-01-25 19:27:03.000000000 +0100
++++ freeradius-server-3.0.11/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure 2016-01-25 20:42:24.835741109 +0100
@@ -1843,7 +1843,7 @@
fi
1
0
Hello community,
here is the log from the commit of package ubuntu-mate-artwork for openSUSE:Factory checked in at 2016-01-28 17:23:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ubuntu-mate-artwork (Old)
and /work/SRC/openSUSE:Factory/.ubuntu-mate-artwork.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ubuntu-mate-artwork"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ubuntu-mate-artwork/ubuntu-mate-artwork.changes 2016-01-05 09:41:54.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ubuntu-mate-artwork.new/ubuntu-mate-artwork.changes 2016-01-28 17:24:12.000000000 +0100
@@ -1,0 +2,12 @@
+Mon Jan 25 19:56:45 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to 16.04.1:
+ * Basic "app-notification" theming to avoid weirdness in Nautilus.
+ * Update the nautilus.css with the current upstream one, it could
+ probably be tweaked a bit and has references to colour used
+ upstream but those don't look out of place with our theme and
+ is better than what we had.
+ * Add MATE colourised icons for categories (lp#1530446).
+ * Add new community contributed wallpapers.
+
+-------------------------------------------------------------------
Old:
----
ubuntu-mate-artwork_16.04.0.tar.xz
New:
----
ubuntu-mate-artwork_16.04.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ubuntu-mate-artwork.spec ++++++
--- /var/tmp/diff_new_pack.w21h9n/_old 2016-01-28 17:24:17.000000000 +0100
+++ /var/tmp/diff_new_pack.w21h9n/_new 2016-01-28 17:24:17.000000000 +0100
@@ -17,8 +17,9 @@
%define _name ubuntu-mate
+%define _version 16.04.0
Name: ubuntu-mate-artwork
-Version: 16.04.0
+Version: 16.04.1
Release: 0
Summary: Ubuntu MATE themes and artwork
License: GPL-3.0+ and CC-BY-SA-4.0 and CC-BY-SA-3.0
@@ -124,7 +125,7 @@
The default Ubuntu MATE wallpapers for the Ubuntu MATE releases.
%prep
-%setup -q
+%setup -q -n %{name}-%{_version}
%patch0 -p1
%patch1 -p1
# Remove unwanted: Debian package, GRUB theme, Plymouth theme, odd script, LightDM defaults.
++++++ ubuntu-mate-artwork_16.04.0.tar.xz -> ubuntu-mate-artwork_16.04.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/ubuntu-mate-artwork/ubuntu-mate-artwork_16.04.0.tar.xz /work/SRC/openSUSE:Factory/.ubuntu-mate-artwork.new/ubuntu-mate-artwork_16.04.1.tar.xz differ: char 25, line 1
1
0
Hello community,
here is the log from the commit of package ubuntu-themes for openSUSE:Factory checked in at 2016-01-28 17:23:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ubuntu-themes (Old)
and /work/SRC/openSUSE:Factory/.ubuntu-themes.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ubuntu-themes"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ubuntu-themes/ubuntu-themes.changes 2015-12-20 10:52:56.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ubuntu-themes.new/ubuntu-themes.changes 2016-01-28 17:24:10.000000000 +0100
@@ -1,0 +2,6 @@
+Mon Jan 25 19:56:45 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to 14.04~bzr20160120:
+ * Scrollbars: Fix through drawing on webkit.
+
+-------------------------------------------------------------------
Old:
----
ubuntu-themes_14.04+16.04.20151216.orig.tar.gz
New:
----
ubuntu-themes_14.04+16.04.20160120.orig.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ubuntu-themes.spec ++++++
--- /var/tmp/diff_new_pack.6ethTN/_old 2016-01-28 17:24:12.000000000 +0100
+++ /var/tmp/diff_new_pack.6ethTN/_new 2016-01-28 17:24:12.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ubuntu-themes
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,9 +16,9 @@
#
-%define _version 14.04+16.04.20151216
+%define _version 14.04+16.04.20160120
Name: ubuntu-themes
-Version: 14.04~bzr20151216
+Version: 14.04~bzr20160120
Release: 0
Summary: Eyecandy from Ubuntu
License: GPL-3.0+
++++++ ubuntu-themes_14.04+16.04.20151216.orig.tar.gz -> ubuntu-themes_14.04+16.04.20160120.orig.tar.gz ++++++
/work/SRC/openSUSE:Factory/ubuntu-themes/ubuntu-themes_14.04+16.04.20151216.orig.tar.gz /work/SRC/openSUSE:Factory/.ubuntu-themes.new/ubuntu-themes_14.04+16.04.20160120.orig.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package libvirt-python for openSUSE:Factory checked in at 2016-01-28 17:23:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt-python (Old)
and /work/SRC/openSUSE:Factory/.libvirt-python.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt-python"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt-python/libvirt-python.changes 2016-01-15 10:42:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libvirt-python.new/libvirt-python.changes 2016-01-28 17:24:09.000000000 +0100
@@ -1,0 +2,6 @@
+Mon Jan 18 19:35:09 UTC 2016 - jfehlig(a)suse.com
+
+- Update to 1.3.1
+ - Add all new APIs and constants in libvirt 1.3.1
+
+-------------------------------------------------------------------
Old:
----
libvirt-python-1.3.0.tar.gz
libvirt-python-1.3.0.tar.gz.asc
New:
----
libvirt-python-1.3.1.tar.gz
libvirt-python-1.3.1.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvirt-python.spec ++++++
--- /var/tmp/diff_new_pack.tlOPdN/_old 2016-01-28 17:24:10.000000000 +0100
+++ /var/tmp/diff_new_pack.tlOPdN/_new 2016-01-28 17:24:10.000000000 +0100
@@ -18,7 +18,7 @@
Name: libvirt-python
Url: http://libvirt.org/
-Version: 1.3.0
+Version: 1.3.1
Release: 0
Summary: Library providing a simple virtualization API
License: LGPL-2.1+
++++++ libvirt-python-1.3.0.tar.gz -> libvirt-python-1.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.3.0/ChangeLog new/libvirt-python-1.3.1/ChangeLog
--- old/libvirt-python-1.3.0/ChangeLog 2015-12-09 10:21:28.000000000 +0100
+++ new/libvirt-python-1.3.1/ChangeLog 2016-01-17 03:50:36.000000000 +0100
@@ -1,3 +1,9 @@
+2016-01-17 Daniel Veillard <veillard(a)redhat.com>
+
+ Version bump to 1.3.1
+ For release but no change from 1.3.0
+
+
2015-11-24 Pavel Hrdina <phrdina(a)redhat.com>
Post-release version bump to 1.3.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.3.0/PKG-INFO new/libvirt-python-1.3.1/PKG-INFO
--- old/libvirt-python-1.3.0/PKG-INFO 2015-12-09 10:21:29.000000000 +0100
+++ new/libvirt-python-1.3.1/PKG-INFO 2016-01-17 03:50:36.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: libvirt-python
-Version: 1.3.0
+Version: 1.3.1
Summary: The libvirt virtualization API
Home-page: http://www.libvirt.org
Author: Libvirt Maintainers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.3.0/libvirt-python.spec new/libvirt-python-1.3.1/libvirt-python.spec
--- old/libvirt-python-1.3.0/libvirt-python.spec 2015-12-09 10:21:28.000000000 +0100
+++ new/libvirt-python-1.3.1/libvirt-python.spec 2016-01-17 03:50:36.000000000 +0100
@@ -6,7 +6,7 @@
Summary: The libvirt virtualization API python2 binding
Name: libvirt-python
-Version: 1.3.0
+Version: 1.3.1
Release: 1%{?dist}%{?extra_release}
Source0: http://libvirt.org/sources/python/%{name}-%{version}.tar.gz
Url: http://libvirt.org
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.3.0/setup.py new/libvirt-python-1.3.1/setup.py
--- old/libvirt-python-1.3.0/setup.py 2015-12-09 10:19:07.000000000 +0100
+++ new/libvirt-python-1.3.1/setup.py 2016-01-17 03:35:05.000000000 +0100
@@ -311,7 +311,7 @@
_c_modules, _py_modules = get_module_lists()
setup(name = 'libvirt-python',
- version = '1.3.0',
+ version = '1.3.1',
url = 'http://www.libvirt.org',
maintainer = 'Libvirt Maintainers',
maintainer_email = 'libvir-list(a)redhat.com',
1
0
Hello community,
here is the log from the commit of package machinery for openSUSE:Factory checked in at 2016-01-28 17:23:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/machinery (Old)
and /work/SRC/openSUSE:Factory/.machinery.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "machinery"
Changes:
--------
--- /work/SRC/openSUSE:Factory/machinery/machinery.changes 2016-01-16 11:57:09.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.machinery.new/machinery.changes 2016-01-28 17:24:08.000000000 +0100
@@ -1,0 +2,12 @@
+Mon Jan 25 16:49:58 CET 2016 - thardeck(a)suse.de
+
+- update to version 1.17.0
+ * Fix reset button in HTML view (gh#SUSE/machinery#1899)
+ * Align config-files scope in HTML view (gh#SUSE/machinery#1814)
+ * Allow closing file dialog (in WebUI) by pressing ESC
+ * Support inspection of Ubuntu 14.04 systems
+ * New `--ssh-identity-file` option to specify a SSH private key when inspecting
+ a remote system
+ * New `--ssh-port` option to specify an SSH port when inspecting a remote system
+
+-------------------------------------------------------------------
Old:
----
machinery-tool-1.16.4.gem
New:
----
machinery-tool-1.17.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ machinery.spec ++++++
--- /var/tmp/diff_new_pack.f4sTvo/_old 2016-01-28 17:24:09.000000000 +0100
+++ /var/tmp/diff_new_pack.f4sTvo/_new 2016-01-28 17:24:09.000000000 +0100
@@ -17,7 +17,7 @@
Name: machinery
-Version: 1.16.4
+Version: 1.17.0
Release: 0
%define binary_name machinery
%define mod_name machinery-tool
++++++ machinery-tool-1.16.4.gem -> machinery-tool-1.17.0.gem ++++++
++++ 6072 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package caja for openSUSE:Factory checked in at 2016-01-28 17:23:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/caja (Old)
and /work/SRC/openSUSE:Factory/.caja.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "caja"
Changes:
--------
--- /work/SRC/openSUSE:Factory/caja/caja.changes 2015-12-24 12:17:45.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.caja.new/caja.changes 2016-01-28 17:24:06.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Jan 25 15:46:12 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to 1.12.3:
+ * Fix wrong text colour in icon view with some light themes.
+ * Fix crash due to unneeded assert.
+
+-------------------------------------------------------------------
Old:
----
caja-1.12.2.tar.xz
New:
----
caja-1.12.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ caja.spec ++++++
--- /var/tmp/diff_new_pack.CmcRZ6/_old 2016-01-28 17:24:07.000000000 +0100
+++ /var/tmp/diff_new_pack.CmcRZ6/_new 2016-01-28 17:24:07.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package caja
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
%define typelib typelib-1_0-Caja-2_0
%define _version 1.12
Name: caja
-Version: 1.12.2
+Version: 1.12.3
Release: 0
Summary: File manager for the MATE desktop
License: GPL-2.0 and LGPL-2.0
++++++ caja-1.12.2.tar.xz -> caja-1.12.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/NEWS new/caja-1.12.3/NEWS
--- old/caja-1.12.2/NEWS 2015-12-23 14:00:45.000000000 +0100
+++ new/caja-1.12.3/NEWS 2016-01-25 12:29:44.000000000 +0100
@@ -1,3 +1,7 @@
+Major changes in 1.12.3 are:
+* Fix wrong text color in icon view with some light themes
+* Fix crash due to unneeded assert
+
Major changes in 1.12.2 are:
* Set smclient mode to "no restart" when either running as root
or on other desktops
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/configure new/caja-1.12.3/configure
--- old/caja-1.12.2/configure 2015-12-23 14:07:31.000000000 +0100
+++ new/caja-1.12.3/configure 2016-01-25 12:30:41.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for caja 1.12.2.
+# Generated by GNU Autoconf 2.69 for caja 1.12.3.
#
# Report bugs to <http://www.mate-desktop.org>.
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='caja'
PACKAGE_TARNAME='caja'
-PACKAGE_VERSION='1.12.2'
-PACKAGE_STRING='caja 1.12.2'
+PACKAGE_VERSION='1.12.3'
+PACKAGE_STRING='caja 1.12.3'
PACKAGE_BUGREPORT='http://www.mate-desktop.org'
PACKAGE_URL=''
@@ -1475,7 +1475,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 caja 1.12.2 to adapt to many kinds of systems.
+\`configure' configures caja 1.12.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1545,7 +1545,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of caja 1.12.2:";;
+ short | recursive ) echo "Configuration of caja 1.12.3:";;
esac
cat <<\_ACEOF
@@ -1696,7 +1696,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-caja configure 1.12.2
+caja configure 1.12.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2065,7 +2065,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by caja $as_me 1.12.2, which was
+It was created by caja $as_me 1.12.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2975,7 +2975,7 @@
# Define the identity of the package.
PACKAGE='caja'
- VERSION='1.12.2'
+ VERSION='1.12.3'
cat >>confdefs.h <<_ACEOF
@@ -17169,7 +17169,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by caja $as_me 1.12.2, which was
+This file was extended by caja $as_me 1.12.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17235,7 +17235,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-caja config.status 1.12.2
+caja config.status 1.12.3
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/caja-1.12.2/configure.ac new/caja-1.12.3/configure.ac
--- old/caja-1.12.2/configure.ac 2015-12-23 14:00:45.000000000 +0100
+++ new/caja-1.12.3/configure.ac 2016-01-25 12:29:44.000000000 +0100
@@ -19,7 +19,7 @@
m4_define(caja_extension_current, 5)
m4_define(caja_extension_revision, 0)
-AC_INIT([caja], [1.12.2], [http://www.mate-desktop.org])
+AC_INIT([caja], [1.12.3], [http://www.mate-desktop.org])
# GLib min/max required versions
AC_DEFINE([GLIB_VERSION_MAX_ALLOWED], [GLIB_VERSION_2_36],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/data/caja-autorun-software.desktop.in new/caja-1.12.3/data/caja-autorun-software.desktop.in
--- old/caja-1.12.2/data/caja-autorun-software.desktop.in 2015-12-23 14:07:37.000000000 +0100
+++ new/caja-1.12.3/data/caja-autorun-software.desktop.in 2016-01-25 12:30:47.000000000 +0100
@@ -11,4 +11,4 @@
X-MATE-Bugzilla-Bugzilla=MATE
X-MATE-Bugzilla-Product=caja
X-MATE-Bugzilla-Component=general
-X-MATE-Bugzilla-Version=1.12.2
+X-MATE-Bugzilla-Version=1.12.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/data/caja-browser.desktop.in new/caja-1.12.3/data/caja-browser.desktop.in
--- old/caja-1.12.2/data/caja-browser.desktop.in 2015-12-23 14:07:37.000000000 +0100
+++ new/caja-1.12.3/data/caja-browser.desktop.in 2016-01-25 12:30:47.000000000 +0100
@@ -14,4 +14,4 @@
X-MATE-Bugzilla-Bugzilla=MATE
X-MATE-Bugzilla-Product=caja
X-MATE-Bugzilla-Component=general
-X-MATE-Bugzilla-Version=1.12.2
+X-MATE-Bugzilla-Version=1.12.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/data/caja-computer.desktop.in new/caja-1.12.3/data/caja-computer.desktop.in
--- old/caja-1.12.2/data/caja-computer.desktop.in 2015-12-23 14:07:37.000000000 +0100
+++ new/caja-1.12.3/data/caja-computer.desktop.in 2016-01-25 12:30:47.000000000 +0100
@@ -14,4 +14,4 @@
X-MATE-Bugzilla-Bugzilla=MATE
X-MATE-Bugzilla-Product=caja
X-MATE-Bugzilla-Component=general
-X-MATE-Bugzilla-Version=1.12.2
+X-MATE-Bugzilla-Version=1.12.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/data/caja-file-management-properties.desktop.in new/caja-1.12.3/data/caja-file-management-properties.desktop.in
--- old/caja-1.12.2/data/caja-file-management-properties.desktop.in 2015-12-23 14:07:37.000000000 +0100
+++ new/caja-1.12.3/data/caja-file-management-properties.desktop.in 2016-01-25 12:30:47.000000000 +0100
@@ -12,4 +12,4 @@
X-MATE-Bugzilla-Bugzilla=MATE
X-MATE-Bugzilla-Product=caja
X-MATE-Bugzilla-Component=Preferences
-X-MATE-Bugzilla-Version=1.12.2
+X-MATE-Bugzilla-Version=1.12.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/data/caja-folder-handler.desktop.in new/caja-1.12.3/data/caja-folder-handler.desktop.in
--- old/caja-1.12.2/data/caja-folder-handler.desktop.in 2015-12-23 14:07:37.000000000 +0100
+++ new/caja-1.12.3/data/caja-folder-handler.desktop.in 2016-01-25 12:30:47.000000000 +0100
@@ -13,4 +13,4 @@
X-MATE-Bugzilla-Bugzilla=MATE
X-MATE-Bugzilla-Product=caja
X-MATE-Bugzilla-Component=general
-X-MATE-Bugzilla-Version=1.12.2
+X-MATE-Bugzilla-Version=1.12.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/data/caja.desktop new/caja-1.12.3/data/caja.desktop
--- old/caja-1.12.2/data/caja.desktop 2015-12-23 14:07:52.000000000 +0100
+++ new/caja-1.12.3/data/caja.desktop 2016-01-25 12:31:18.000000000 +0100
@@ -229,7 +229,7 @@
X-MATE-Bugzilla-Bugzilla=MATE
X-MATE-Bugzilla-Product=caja
X-MATE-Bugzilla-Component=general
-X-MATE-Bugzilla-Version=1.12.2
+X-MATE-Bugzilla-Version=1.12.3
X-MATE-Autostart-Phase=Desktop
X-MATE-Autostart-Notify=true
X-MATE-AutoRestart=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/data/caja.desktop.in new/caja-1.12.3/data/caja.desktop.in
--- old/caja-1.12.2/data/caja.desktop.in 2015-12-23 14:07:37.000000000 +0100
+++ new/caja-1.12.3/data/caja.desktop.in 2016-01-25 12:30:47.000000000 +0100
@@ -11,7 +11,7 @@
X-MATE-Bugzilla-Bugzilla=MATE
X-MATE-Bugzilla-Product=caja
X-MATE-Bugzilla-Component=general
-X-MATE-Bugzilla-Version=1.12.2
+X-MATE-Bugzilla-Version=1.12.3
X-MATE-Autostart-Phase=Desktop
X-MATE-Autostart-Notify=true
X-MATE-AutoRestart=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/docs/caja-file-management-properties.1 new/caja-1.12.3/docs/caja-file-management-properties.1
--- old/caja-1.12.2/docs/caja-file-management-properties.1 2015-07-16 09:11:15.000000000 +0200
+++ new/caja-1.12.3/docs/caja-file-management-properties.1 2016-01-11 12:31:37.000000000 +0100
@@ -11,7 +11,7 @@
.PP
File Management Preferences allows the user to configure the way caja behaves.
.PP
-You can specify appearance preferences for the Default View; and defaults for Icon, Compact, List, and Tree View; and select sort options and display options. You can configure Caja to recognize Single or Double Click input; as well as Include a Delete command and menu option that bypasses the Trash. Caja File Management Preferences (\fBcaja-file-management-properties\fR) also allows you to tell Caja how to handle certain files; whether to View or Run excutable text files; Automatically view or play Media like CDs, DVDs, or photos, and which applications to use when performing these tasks. Among some other options, this dialog also allows you to adjust file-preview settings, and settings for installed plugins if they exist.
+You can specify appearance preferences for the Default View; and defaults for Icon, Compact, List, and Tree View; and select sort options and display options. You can configure Caja to recognize Single or Double Click input; as well as Include a Delete command and menu option that bypasses the Trash. Caja File Management Preferences (\fBcaja-file-management-properties\fR) also allows you to tell Caja how to handle certain files; whether to View or Run executable text files; Automatically view or play Media like CDs, DVDs, or photos, and which applications to use when performing these tasks. Among some other options, this dialog also allows you to adjust file-preview settings, and settings for installed plugins if they exist.
.SH "BUGS"
.SS Should you encounter any bugs, they may be reported at:
http://github.com/mate-desktop/caja/issues
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/libcaja-private/caja-icon-container.c new/caja-1.12.3/libcaja-private/caja-icon-container.c
--- old/caja-1.12.2/libcaja-private/caja-icon-container.c 2015-10-19 15:07:09.000000000 +0200
+++ new/caja-1.12.3/libcaja-private/caja-icon-container.c 2016-01-25 12:29:41.000000000 +0100
@@ -9434,7 +9434,8 @@
}
else
{
- if (container->details->use_drop_shadows || eel_background_is_dark (background))
+ if (container->details->use_drop_shadows ||
+ (eel_background_is_dark (background) && eel_background_is_set(background)))
{
setup_gc_with_fg (container, LABEL_COLOR, 0xEFEFEF);
setup_gc_with_fg (container,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/caja-1.12.2/src/caja-pathbar.c new/caja-1.12.3/src/caja-pathbar.c
--- old/caja-1.12.2/src/caja-pathbar.c 2015-10-19 15:07:09.000000000 +0200
+++ new/caja-1.12.3/src/caja-pathbar.c 2016-01-25 12:29:41.000000000 +0100
@@ -326,6 +326,9 @@
g_free (p);
path_bar->home_path = g_file_new_for_path (g_get_home_dir ());
path_bar->root_path = g_file_new_for_path ("/");
+ path_bar->current_path = NULL;
+ path_bar->current_button_data = NULL;
+
desktop_is_home = g_file_equal (path_bar->home_path, path_bar->desktop_path);
g_signal_connect_swapped (caja_preferences, "changed::" CAJA_PREFERENCES_DESKTOP_IS_HOME_DIR,
@@ -1858,8 +1861,8 @@
return;
}
- g_assert (path_bar->current_path != NULL);
- g_assert (path_bar->current_button_data != NULL);
+ g_return_if_fail (path_bar->current_path != NULL);
+ g_return_if_fail (path_bar->current_button_data != NULL);
current_button_data = path_bar->current_button_data;
1
0
Hello community,
here is the log from the commit of package mate-panel for openSUSE:Factory checked in at 2016-01-28 17:23:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mate-panel (Old)
and /work/SRC/openSUSE:Factory/.mate-panel.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mate-panel"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mate-panel/mate-panel.changes 2016-01-12 16:12:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.mate-panel.new/mate-panel.changes 2016-01-28 17:24:04.000000000 +0100
@@ -1,0 +2,10 @@
+Mon Jan 25 15:46:12 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to 1.12.2:
+ * Drawer applet: Fix occasional stretching of drawer's panel over
+ the entire screen.
+ * Drawer applet: Fix occasional crash on applet removing.
+ * GTK+3: Fix infinite loop with some themes.
+ * Some more fixes.
+
+-------------------------------------------------------------------
Old:
----
mate-panel-1.12.1.tar.xz
New:
----
mate-panel-1.12.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mate-panel.spec ++++++
--- /var/tmp/diff_new_pack.R9hfXW/_old 2016-01-28 17:24:05.000000000 +0100
+++ /var/tmp/diff_new_pack.R9hfXW/_new 2016-01-28 17:24:05.000000000 +0100
@@ -21,7 +21,7 @@
%define typelib typelib-1_0-MatePanelApplet-4_0
%define _version 1.12
Name: mate-panel
-Version: 1.12.1
+Version: 1.12.2
Release: 0
Summary: MATE Desktop Panel
License: GPL-2.0+
++++++ mate-panel-1.12.1.tar.xz -> mate-panel-1.12.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mate-panel-1.12.1/NEWS new/mate-panel-1.12.2/NEWS
--- old/mate-panel-1.12.1/NEWS 2015-11-30 08:39:30.000000000 +0100
+++ new/mate-panel-1.12.2/NEWS 2016-01-25 09:29:41.000000000 +0100
@@ -1,3 +1,10 @@
+1.12.2
+ * Drawer applet: fix occasional stretching of drawer's panel
+ over the entire screen
+ * Drawer applet: fix occasional crash on applet removing
+ * GTK+3: fix infinite loop with some themes
+ * Some more fixes
+
1.12.1
* GTK+3: fix background in some themes
* Some more fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mate-panel-1.12.1/aclocal.m4 new/mate-panel-1.12.2/aclocal.m4
--- old/mate-panel-1.12.1/aclocal.m4 2015-11-30 08:39:57.000000000 +0100
+++ new/mate-panel-1.12.2/aclocal.m4 2016-01-25 12:36:01.000000000 +0100
@@ -693,7 +693,7 @@
DISABLE_DEPRECATED=""
if test $USE_MAINTAINER_MODE = yes; then
- DOMAINS="G ATK PANGO GDK GDK_PIXBUF GTK MATECONF MATECOMPONENT MATECOMPONENT_UI MATE LIBGLADE VTE MATE_VFS WNCK LIBSOUP"
+ DOMAINS="G ATK PANGO GDK GDK_PIXBUF GTK MATE LIBGLADE VTE WNCK LIBSOUP"
for DOMAIN in $DOMAINS; do
DISABLE_DEPRECATED="$DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_SINGLE_INCLUDES"
done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mate-panel-1.12.1/applets/wncklet/workspace-switcher.c new/mate-panel-1.12.2/applets/wncklet/workspace-switcher.c
--- old/mate-panel-1.12.1/applets/wncklet/workspace-switcher.c 2015-11-11 09:39:07.000000000 +0100
+++ new/mate-panel-1.12.2/applets/wncklet/workspace-switcher.c 2015-12-17 11:57:39.000000000 +0100
@@ -489,6 +489,9 @@
GtkActionGroup* action_group;
gchar* ui_path;
gboolean display_names;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GtkCssProvider *provider;
+#endif
pager = g_new0(PagerData, 1);
@@ -543,6 +546,17 @@
pager->wm = PAGER_WM_UNKNOWN;
wnck_pager_set_shadow_type(WNCK_PAGER(pager->pager), GTK_SHADOW_IN);
+#if GTK_CHECK_VERSION (3, 0, 0)
+ provider = gtk_css_provider_new ();
+ gtk_css_provider_load_from_data (provider,
+ "WnckPager:selected {\n"
+ "background-color: #4A90D9; }",
+ -1, NULL);
+ gtk_style_context_add_provider (gtk_widget_get_style_context (pager->pager),
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_FALLBACK);
+ g_object_unref (provider);
+#endif
g_signal_connect(G_OBJECT(pager->pager), "destroy", G_CALLBACK(destroy_pager), pager);
gtk_container_add(GTK_CONTAINER(pager->applet), pager->pager);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mate-panel-1.12.1/configure new/mate-panel-1.12.2/configure
--- old/mate-panel-1.12.1/configure 2015-11-30 08:39:58.000000000 +0100
+++ new/mate-panel-1.12.2/configure 2016-01-25 12:36:02.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for mate-panel 1.12.1.
+# Generated by GNU Autoconf 2.69 for mate-panel 1.12.2.
#
# Report bugs to <https://github.com/mate-desktop/mate-panel/issues>.
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='mate-panel'
PACKAGE_TARNAME='mate-panel'
-PACKAGE_VERSION='1.12.1'
-PACKAGE_STRING='mate-panel 1.12.1'
+PACKAGE_VERSION='1.12.2'
+PACKAGE_STRING='mate-panel 1.12.2'
PACKAGE_BUGREPORT='https://github.com/mate-desktop/mate-panel/issues'
PACKAGE_URL='http://www.mate-desktop.org'
@@ -1508,7 +1508,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 mate-panel 1.12.1 to adapt to many kinds of systems.
+\`configure' configures mate-panel 1.12.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1582,7 +1582,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of mate-panel 1.12.1:";;
+ short | recursive ) echo "Configuration of mate-panel 1.12.2:";;
esac
cat <<\_ACEOF
@@ -1765,7 +1765,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-mate-panel configure 1.12.1
+mate-panel configure 1.12.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2134,7 +2134,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by mate-panel $as_me 1.12.1, which was
+It was created by mate-panel $as_me 1.12.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2999,7 +2999,7 @@
# Define the identity of the package.
PACKAGE='mate-panel'
- VERSION='1.12.1'
+ VERSION='1.12.2'
cat >>confdefs.h <<_ACEOF
@@ -3299,7 +3299,7 @@
DISABLE_DEPRECATED=""
if test $USE_MAINTAINER_MODE = yes; then
- DOMAINS="G ATK PANGO GDK GDK_PIXBUF GTK MATECONF MATECOMPONENT MATECOMPONENT_UI MATE LIBGLADE VTE MATE_VFS WNCK LIBSOUP"
+ DOMAINS="G ATK PANGO GDK GDK_PIXBUF GTK MATE LIBGLADE VTE WNCK LIBSOUP"
for DOMAIN in $DOMAINS; do
DISABLE_DEPRECATED="$DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_SINGLE_INCLUDES"
done
@@ -19226,7 +19226,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mate-panel $as_me 1.12.1, which was
+This file was extended by mate-panel $as_me 1.12.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -19293,7 +19293,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mate-panel config.status 1.12.1
+mate-panel config.status 1.12.2
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/mate-panel-1.12.1/configure.ac new/mate-panel-1.12.2/configure.ac
--- old/mate-panel-1.12.1/configure.ac 2015-11-30 08:38:13.000000000 +0100
+++ new/mate-panel-1.12.2/configure.ac 2016-01-25 09:27:41.000000000 +0100
@@ -1,4 +1,4 @@
-AC_INIT([mate-panel], [1.12.1], [https://github.com/mate-desktop/mate-panel/issues],
+AC_INIT([mate-panel], [1.12.2], [https://github.com/mate-desktop/mate-panel/issues],
[mate-panel], [http://www.mate-desktop.org])
AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE([1.9 no-dist-gzip dist-xz tar-ustar -Wno-portability check-news])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mate-panel-1.12.1/libmate-panel-applet/mate-panel-applet.c new/mate-panel-1.12.2/libmate-panel-applet/mate-panel-applet.c
--- old/mate-panel-1.12.1/libmate-panel-applet/mate-panel-applet.c 2015-11-30 08:37:55.000000000 +0100
+++ new/mate-panel-1.12.2/libmate-panel-applet/mate-panel-applet.c 2016-01-25 09:27:33.000000000 +0100
@@ -1981,7 +1981,6 @@
GtkStyleContext* context;
context = gtk_widget_get_style_context (widget);
- gtk_widget_reset_style (widget);
switch (type) {
case PANEL_NO_BACKGROUND:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mate-panel-1.12.1/mate-panel/drawer.c new/mate-panel-1.12.2/mate-panel/drawer.c
--- old/mate-panel-1.12.1/mate-panel/drawer.c 2015-10-26 12:31:36.000000000 +0100
+++ new/mate-panel-1.12.2/mate-panel/drawer.c 2016-01-11 13:20:35.000000000 +0100
@@ -47,20 +47,26 @@
Drawer *drawer)
{
drawer->toplevel = NULL;
- gtk_widget_destroy (drawer->button);
+
+ if (drawer->button) {
+ gtk_widget_destroy (drawer->button);
+ drawer->button = NULL;
+ }
}
static void
destroy_drawer (GtkWidget *widget,
Drawer *drawer)
{
- if (drawer->toplevel)
+ if (drawer->toplevel) {
gtk_widget_destroy (GTK_WIDGET (drawer->toplevel));
- drawer->toplevel = NULL;
+ drawer->toplevel = NULL;
+ }
- if (drawer->close_timeout_id)
+ if (drawer->close_timeout_id) {
g_source_remove (drawer->close_timeout_id);
- drawer->close_timeout_id = 0;
+ drawer->close_timeout_id = 0;
+ }
}
static void
@@ -302,13 +308,11 @@
{
g_return_if_fail (drawer != NULL);
g_return_if_fail (drawer->toplevel != NULL);
- g_return_if_fail (tooltip != NULL);
-
- if (tooltip && !tooltip [0])
- tooltip = NULL;
- panel_toplevel_set_name (drawer->toplevel, tooltip);
- panel_util_set_tooltip_text (drawer->button, tooltip);
+ if (tooltip != NULL && tooltip [0] != '\0') {
+ panel_toplevel_set_name (drawer->toplevel, tooltip);
+ panel_util_set_tooltip_text (drawer->button, tooltip);
+ }
}
static Drawer *
@@ -413,37 +417,20 @@
}
static void
-panel_drawer_use_custom_icon_changed (GSettings *settings,
+panel_drawer_custom_icon_changed (GSettings *settings,
gchar *key,
Drawer *drawer)
{
- gboolean use_custom_icon;
- char *custom_icon = NULL;
-
- use_custom_icon = g_settings_get_boolean (settings, key);
-
- if (use_custom_icon) {
- custom_icon = g_settings_get_string (settings, PANEL_OBJECT_CUSTOM_ICON_KEY);
- }
-
- button_widget_set_icon_name (BUTTON_WIDGET (drawer->button), custom_icon);
-
- g_free (custom_icon);
-}
+ g_return_if_fail (drawer != NULL);
+ g_return_if_fail (drawer->button != NULL);
-static void
-panel_drawer_custom_icon_changed (GSettings *settings,
- gchar *key,
- Drawer *drawer)
-{
- char *custom_icon;
- custom_icon = g_settings_get_string (settings, key);
+ gboolean use_custom_icon = g_settings_get_boolean (settings, PANEL_OBJECT_USE_CUSTOM_ICON_KEY);
+ char *custom_icon = g_settings_get_string (settings, PANEL_OBJECT_CUSTOM_ICON_KEY);
- if (custom_icon && custom_icon [0]) {
- gboolean use_custom_icon;
- use_custom_icon = g_settings_get_boolean (settings, PANEL_OBJECT_USE_CUSTOM_ICON_KEY);
- if (use_custom_icon)
- button_widget_set_icon_name (BUTTON_WIDGET (drawer->button), custom_icon);
+ if (use_custom_icon && custom_icon != NULL && custom_icon [0] != '\0') {
+ button_widget_set_icon_name (BUTTON_WIDGET (drawer->button), custom_icon);
+ } else {
+ button_widget_set_icon_name (BUTTON_WIDGET (drawer->button), PANEL_ICON_DRAWER);
}
g_free (custom_icon);
@@ -464,7 +451,7 @@
{
g_signal_connect (drawer->info->settings,
"changed::" PANEL_OBJECT_USE_CUSTOM_ICON_KEY,
- G_CALLBACK (panel_drawer_use_custom_icon_changed),
+ G_CALLBACK (panel_drawer_custom_icon_changed),
drawer);
g_signal_connect (drawer->info->settings,
"changed::" PANEL_OBJECT_CUSTOM_ICON_KEY,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mate-panel-1.12.1/mate-panel/mate-panel.desktop.in new/mate-panel-1.12.2/mate-panel/mate-panel.desktop.in
--- old/mate-panel-1.12.1/mate-panel/mate-panel.desktop.in 2015-11-30 08:40:05.000000000 +0100
+++ new/mate-panel-1.12.2/mate-panel/mate-panel.desktop.in 2016-01-25 12:36:09.000000000 +0100
@@ -9,7 +9,7 @@
X-MATE-Bugzilla-Bugzilla=MATE
X-MATE-Bugzilla-Product=mate-panel
X-MATE-Bugzilla-Component=general
-X-MATE-Bugzilla-Version=1.12.1
+X-MATE-Bugzilla-Version=1.12.2
Categories=GTK;System;Core;
OnlyShowIn=MATE;
NoDisplay=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mate-panel-1.12.1/mate-panel/panel-background.c new/mate-panel-1.12.2/mate-panel/panel-background.c
--- old/mate-panel-1.12.1/mate-panel/panel-background.c 2015-11-30 08:37:55.000000000 +0100
+++ new/mate-panel-1.12.2/mate-panel/panel-background.c 2016-01-25 09:27:33.000000000 +0100
@@ -104,7 +104,6 @@
context = gtk_widget_get_style_context (widget);
effective_type = panel_background_effective_type (background);
- gtk_widget_reset_style (widget);
switch (effective_type) {
case PANEL_BACK_NONE:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mate-panel-1.12.1/mate-panel/panel-toplevel.c new/mate-panel-1.12.2/mate-panel/panel-toplevel.c
--- old/mate-panel-1.12.1/mate-panel/panel-toplevel.c 2015-10-26 12:31:36.000000000 +0100
+++ new/mate-panel-1.12.2/mate-panel/panel-toplevel.c 2016-01-25 09:27:33.000000000 +0100
@@ -5078,6 +5078,11 @@
{
g_return_if_fail (PANEL_IS_TOPLEVEL (toplevel));
+ if (toplevel->priv->attached && expand) {
+ g_warning ("attempt to expand attached toplevel; ignoring");
+ return;
+ }
+
expand = expand != FALSE;
if (toplevel->priv->expand == expand)
1
0
Hello community,
here is the log from the commit of package qbittorrent for openSUSE:Factory checked in at 2016-01-28 17:23:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qbittorrent (Old)
and /work/SRC/openSUSE:Factory/.qbittorrent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qbittorrent"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qbittorrent/qbittorrent.changes 2016-01-23 01:16:36.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.qbittorrent.new/qbittorrent.changes 2016-01-28 17:24:02.000000000 +0100
@@ -1,0 +2,9 @@
+Mon Jan 25 10:12:32 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to 3.3.3:
+ * BUGFIX: Temporarily disable "filename" column of peers view.
+ It has a bug that causes frequent crashes.
+ * WEBUI: Move style of dynamic table header to CSS.
+ * WEBUI: Fix unnecessary updates of torrent peers table.
+
+-------------------------------------------------------------------
Old:
----
qbittorrent-3.3.2.tar.xz
New:
----
qbittorrent-3.3.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qbittorrent.spec ++++++
--- /var/tmp/diff_new_pack.ukkPGw/_old 2016-01-28 17:24:02.000000000 +0100
+++ /var/tmp/diff_new_pack.ukkPGw/_new 2016-01-28 17:24:02.000000000 +0100
@@ -19,7 +19,7 @@
%define _name qBittorrent
Name: qbittorrent
-Version: 3.3.2
+Version: 3.3.3
Release: 0
Summary: A BitTorrent client in Qt
License: GPL-2.0+
++++++ qbittorrent-3.3.2.tar.xz -> qbittorrent-3.3.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/Changelog new/qbittorrent-3.3.3/Changelog
--- old/qbittorrent-3.3.2/Changelog 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/Changelog 2016-01-20 23:52:26.000000000 +0100
@@ -1,3 +1,8 @@
+* Thu Jan 21 2016 - sledgehammer999 <sledgehammer999(a)qbittorrent.org> - v3.3.3
+ - BUGFIX: Temporarily disable "filename" column of peers view. It has a bug that causes frequent crashes. See issue #4597.
+ - WEBUI: Move style of dynamic table header to CSS (buinsky)
+ - WEBUI: Fix unnecessary updates of torrent peers table (buinsky)
+
* Tue Jan 19 2016 - sledgehammer999 <sledgehammer999(a)qbittorrent.org> - v3.3.2
- FEATURE: Add a new column to peers list that shows list of files which are downloaded right now from a peer. (evsh)
- FEATURE: Improve the "Watch folders" UI. Closes #4300. You'll need to redo your watch folders settings. (sledgehammer999, glassez)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/dist/mac/Info.plist new/qbittorrent-3.3.3/dist/mac/Info.plist
--- old/qbittorrent-3.3.2/dist/mac/Info.plist 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/dist/mac/Info.plist 2016-01-20 23:52:26.000000000 +0100
@@ -45,7 +45,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>3.3.2</string>
+ <string>3.3.3</string>
<key>CFBundleSignature</key>
<string>qBit</string>
<key>CFBundleExecutable</key>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/dist/windows/options.nsi new/qbittorrent-3.3.3/dist/windows/options.nsi
--- old/qbittorrent-3.3.2/dist/windows/options.nsi 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/dist/windows/options.nsi 2016-01-20 23:52:26.000000000 +0100
@@ -19,7 +19,7 @@
!define CSIDL_APPDATA '0x1A' ;Application Data path
!define CSIDL_LOCALAPPDATA '0x1C' ;Local Application Data path
-!define PROG_VERSION "3.3.2"
+!define PROG_VERSION "3.3.3"
!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_RUN_FUNCTION PageFinishRun
!define MUI_FINISHPAGE_RUN_TEXT $(launch_qbt)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/base/bittorrent/peerinfo.cpp new/qbittorrent-3.3.3/src/base/bittorrent/peerinfo.cpp
--- old/qbittorrent-3.3.2/src/base/bittorrent/peerinfo.cpp 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/base/bittorrent/peerinfo.cpp 2016-01-20 23:52:26.000000000 +0100
@@ -408,8 +408,3 @@
{
return m_flagsDescription;
}
-
-int PeerInfo::downloadingPieceIndex() const
-{
- return m_nativeInfo.downloading_piece_index;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/base/bittorrent/peerinfo.h new/qbittorrent-3.3.3/src/base/bittorrent/peerinfo.h
--- old/qbittorrent-3.3.2/src/base/bittorrent/peerinfo.h 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/base/bittorrent/peerinfo.h 2016-01-20 23:52:26.000000000 +0100
@@ -100,7 +100,6 @@
#ifndef DISABLE_COUNTRIES_RESOLUTION
QString country() const;
#endif
- int downloadingPieceIndex() const;
private:
void calcRelevance(const TorrentHandle *torrent);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/base/bittorrent/torrentinfo.cpp new/qbittorrent-3.3.3/src/base/bittorrent/torrentinfo.cpp
--- old/qbittorrent-3.3.2/src/base/bittorrent/torrentinfo.cpp 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/base/bittorrent/torrentinfo.cpp 2016-01-20 23:52:26.000000000 +0100
@@ -211,20 +211,6 @@
return QByteArray(m_nativeInfo->metadata().get(), m_nativeInfo->metadata_size());
}
-QStringList TorrentInfo::filesForPiece(int pieceIndex) const
-{
- if (pieceIndex < 0)
- return QStringList();
-
- std::vector<libtorrent::file_slice> files(
- nativeInfo()->map_block(pieceIndex, 0, nativeInfo()->piece_length()));
- QStringList res;
- for (const libtorrent::file_slice& s: files) {
- res.append(filePath(s.file_index));
- }
- return res;
-}
-
void TorrentInfo::renameFile(uint index, const QString &newPath)
{
if (!isValid()) return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/base/bittorrent/torrentinfo.h new/qbittorrent-3.3.3/src/base/bittorrent/torrentinfo.h
--- old/qbittorrent-3.3.2/src/base/bittorrent/torrentinfo.h 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/base/bittorrent/torrentinfo.h 2016-01-20 23:52:26.000000000 +0100
@@ -75,7 +75,6 @@
QList<TrackerEntry> trackers() const;
QList<QUrl> urlSeeds() const;
QByteArray metadata() const;
- QStringList filesForPiece(int pieceIndex) const;
void renameFile(uint index, const QString &newPath);
boost::intrusive_ptr<libtorrent::torrent_info> nativeInfo() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/gui/properties/peerlistdelegate.h new/qbittorrent-3.3.3/src/gui/properties/peerlistdelegate.h
--- old/qbittorrent-3.3.2/src/gui/properties/peerlistdelegate.h 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/gui/properties/peerlistdelegate.h 2016-01-20 23:52:26.000000000 +0100
@@ -41,7 +41,7 @@
public:
enum PeerListColumns {COUNTRY, IP, PORT, CONNECTION, FLAGS, CLIENT, PROGRESS, DOWN_SPEED, UP_SPEED,
- TOT_DOWN, TOT_UP, RELEVANCE, DOWNLOADING_PIECE, IP_HIDDEN, COL_COUNT};
+ TOT_DOWN, TOT_UP, RELEVANCE, IP_HIDDEN, COL_COUNT};
public:
PeerListDelegate(QObject *parent) : QItemDelegate(parent) {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/gui/properties/peerlistwidget.cpp new/qbittorrent-3.3.3/src/gui/properties/peerlistwidget.cpp
--- old/qbittorrent-3.3.2/src/gui/properties/peerlistwidget.cpp 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/gui/properties/peerlistwidget.cpp 2016-01-20 23:52:26.000000000 +0100
@@ -78,7 +78,6 @@
m_listModel->setHeaderData(PeerListDelegate::TOT_DOWN, Qt::Horizontal, tr("Downloaded", "i.e: total data downloaded"));
m_listModel->setHeaderData(PeerListDelegate::TOT_UP, Qt::Horizontal, tr("Uploaded", "i.e: total data uploaded"));
m_listModel->setHeaderData(PeerListDelegate::RELEVANCE, Qt::Horizontal, tr("Relevance", "i.e: How relevant this peer is to us. How many pieces it has that we don't."));
- m_listModel->setHeaderData(PeerListDelegate::DOWNLOADING_PIECE, Qt::Horizontal, tr("Files", "i.e. files that are being downloaded right now"));
// Proxy model to support sorting without actually altering the underlying model
m_proxyModel = new PeerListSortModel();
m_proxyModel->setDynamicSortFilter(true);
@@ -283,14 +282,14 @@
QString peerIp = addr.ip.toString();
if (m_peerItems.contains(peerIp)) {
// Update existing peer
- updatePeer(peerIp, torrent, peer);
+ updatePeer(peerIp, peer);
oldeersSet.remove(peerIp);
if (forceHostnameResolution && m_resolver)
m_resolver->resolve(peerIp);
}
else {
// Add new peer
- m_peerItems[peerIp] = addPeer(peerIp, torrent, peer);
+ m_peerItems[peerIp] = addPeer(peerIp, peer);
m_peerAddresses[peerIp] = addr;
// Resolve peer host name is asked
if (m_resolver)
@@ -308,7 +307,7 @@
}
}
-QStandardItem* PeerListWidget::addPeer(const QString& ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer)
+QStandardItem* PeerListWidget::addPeer(const QString &ip, const BitTorrent::PeerInfo &peer)
{
int row = m_listModel->rowCount();
// Adding Peer to peer list
@@ -338,14 +337,10 @@
m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_DOWN), peer.totalDownload());
m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_UP), peer.totalUpload());
m_listModel->setData(m_listModel->index(row, PeerListDelegate::RELEVANCE), peer.relevance());
- QStringList downloadingFiles(torrent->info().filesForPiece(peer.downloadingPieceIndex()));
- m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String(";")));
- m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String("\n")), Qt::ToolTipRole);
-
return m_listModel->item(row, PeerListDelegate::IP);
}
-void PeerListWidget::updatePeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer)
+void PeerListWidget::updatePeer(const QString &ip, const BitTorrent::PeerInfo &peer)
{
QStandardItem *item = m_peerItems.value(ip);
int row = item->row();
@@ -369,9 +364,6 @@
m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_DOWN), peer.totalDownload());
m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_UP), peer.totalUpload());
m_listModel->setData(m_listModel->index(row, PeerListDelegate::RELEVANCE), peer.relevance());
- QStringList downloadingFiles(torrent->info().filesForPiece(peer.downloadingPieceIndex()));
- m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String(";")));
- m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String("\n")), Qt::ToolTipRole);
}
void PeerListWidget::handleResolved(const QString &ip, const QString &hostname)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/gui/properties/peerlistwidget.h new/qbittorrent-3.3.3/src/gui/properties/peerlistwidget.h
--- old/qbittorrent-3.3.2/src/gui/properties/peerlistwidget.h 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/gui/properties/peerlistwidget.h 2016-01-20 23:52:26.000000000 +0100
@@ -68,8 +68,8 @@
~PeerListWidget();
void loadPeers(BitTorrent::TorrentHandle *const torrent, bool forceHostnameResolution = false);
- QStandardItem *addPeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer);
- void updatePeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer);
+ QStandardItem *addPeer(const QString &ip, const BitTorrent::PeerInfo &peer);
+ void updatePeer(const QString &ip, const BitTorrent::PeerInfo &peer);
void updatePeerHostNameResolutionState();
void updatePeerCountryResolutionState();
void clear();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/webui/www/public/css/dynamicTable.css new/qbittorrent-3.3.3/src/webui/www/public/css/dynamicTable.css
--- old/qbittorrent-3.3.2/src/webui/www/public/css/dynamicTable.css 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/webui/www/public/css/dynamicTable.css 2016-01-20 23:52:26.000000000 +0100
@@ -88,3 +88,7 @@
white-space: nowrap;
max-width: 300px;
}
+
+tr.dynamicTableHeader {
+ cursor: pointer;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/webui/www/public/properties_content.html new/qbittorrent-3.3.3/src/webui/www/public/properties_content.html
--- old/qbittorrent-3.3.2/src/webui/www/public/properties_content.html 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/webui/www/public/properties_content.html 2016-01-20 23:52:26.000000000 +0100
@@ -67,7 +67,7 @@
<div id="peers">
<table class="torrentTable" cellpadding="0" cellspacing="0" style="width: 100%">
<thead>
- <tr id="torrentPeersTableHeader">
+ <tr id="torrentPeersTableHeader" class="dynamicTableHeader">
</tr>
</thead>
<tbody id="torrentPeersTable"></tbody>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/webui/www/public/scripts/dynamicTable.js new/qbittorrent-3.3.3/src/webui/www/public/scripts/dynamicTable.js
--- old/qbittorrent-3.3.2/src/webui/www/public/scripts/dynamicTable.js 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/webui/www/public/scripts/dynamicTable.js 2016-01-20 23:52:26.000000000 +0100
@@ -212,8 +212,11 @@
if (tr.hasClass('selected'))
tr.removeClass('selected');
}
+ this.onSelectedRowChanged();
},
+ onSelectedRowChanged : function () {},
+
updateRowData : function (data) {
var rowId = data['rowId'];
var row;
@@ -350,7 +353,6 @@
} else {
// Simple selection
this._this.selectRow(this.rowId);
- updatePropertiesPanel();
}
}
return false;
@@ -439,18 +441,18 @@
Extends: DynamicTable,
initColumns : function () {
- this.newColumn('priority', 'width: 30px; cursor: pointer', '#');
- this.newColumn('state_icon', 'width: 16px', '');
- this.newColumn('name', 'min-width: 200px; cursor: pointer', 'QBT_TR(Name)QBT_TR');
- this.newColumn('size', 'width: 100px; cursor: pointer', 'QBT_TR(Size)QBT_TR');
- this.newColumn('progress', 'width: 80px; cursor: pointer', 'QBT_TR(Done)QBT_TR');
- this.newColumn('num_seeds', 'width: 100px; cursor: pointer', 'QBT_TR(Seeds)QBT_TR');
- this.newColumn('num_leechs', 'width: 100px; cursor: pointer', 'QBT_TR(Peers)QBT_TR');
- this.newColumn('dlspeed', 'width: 100px; cursor: pointer', 'QBT_TR(Down Speed)QBT_TR');
- this.newColumn('upspeed', 'width: 100px; cursor: pointer', 'QBT_TR(Up Speed)QBT_TR');
- this.newColumn('eta', 'width: 100px; cursor: pointer', 'QBT_TR(ETA)QBT_TR');
- this.newColumn('ratio', 'width: 100px; cursor: pointer', 'QBT_TR(Ratio)QBT_TR');
- this.newColumn('label', 'width: 100px; cursor: pointer', 'QBT_TR(Label)QBT_TR');
+ this.newColumn('priority', 'width: 30px', '#');
+ this.newColumn('state_icon', 'width: 16px; cursor: default', '');
+ this.newColumn('name', 'min-width: 200px', 'QBT_TR(Name)QBT_TR');
+ this.newColumn('size', 'width: 100px', 'QBT_TR(Size)QBT_TR');
+ this.newColumn('progress', 'width: 80px', 'QBT_TR(Done)QBT_TR');
+ this.newColumn('num_seeds', 'width: 100px', 'QBT_TR(Seeds)QBT_TR');
+ this.newColumn('num_leechs', 'width: 100px', 'QBT_TR(Peers)QBT_TR');
+ this.newColumn('dlspeed', 'width: 100px', 'QBT_TR(Down Speed)QBT_TR');
+ this.newColumn('upspeed', 'width: 100px', 'QBT_TR(Up Speed)QBT_TR');
+ this.newColumn('eta', 'width: 100px', 'QBT_TR(ETA)QBT_TR');
+ this.newColumn('ratio', 'width: 100px', 'QBT_TR(Ratio)QBT_TR');
+ this.newColumn('label', 'width: 100px', 'QBT_TR(Label)QBT_TR');
this.columns['state_icon'].onclick = '';
this.columns['state_icon'].dataProperties[0] = 'state';
@@ -720,6 +722,10 @@
getCurrentTorrentHash : function () {
return this.getSelectedRowId();
+ },
+
+ onSelectedRowChanged : function () {
+ updatePropertiesPanel();
}
});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/src/webui/www/public/transferlist.html new/qbittorrent-3.3.3/src/webui/www/public/transferlist.html
--- old/qbittorrent-3.3.2/src/webui/www/public/transferlist.html 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/src/webui/www/public/transferlist.html 2016-01-20 23:52:26.000000000 +0100
@@ -1,6 +1,6 @@
<table class="torrentTable" cellpadding="0" cellspacing="0">
<thead>
- <tr id="torrentsTableHeader">
+ <tr id="torrentsTableHeader" class="dynamicTableHeader">
</tr>
</thead>
<tbody id="torrentsTable"></tbody>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qbittorrent-3.3.2/version.pri new/qbittorrent-3.3.3/version.pri
--- old/qbittorrent-3.3.2/version.pri 2016-01-19 00:50:18.000000000 +0100
+++ new/qbittorrent-3.3.3/version.pri 2016-01-20 23:52:26.000000000 +0100
@@ -3,7 +3,7 @@
# Define version numbers here
VER_MAJOR = 3
VER_MINOR = 3
-VER_BUGFIX = 2
+VER_BUGFIX = 3
VER_BUILD = 0
VER_STATUS = # Should be empty for stable releases!
1
0
Hello community,
here is the log from the commit of package squid for openSUSE:Factory checked in at 2016-01-28 17:23:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/squid (Old)
and /work/SRC/openSUSE:Factory/.squid.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "squid"
Changes:
--------
--- /work/SRC/openSUSE:Factory/squid/squid.changes 2015-12-09 22:34:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.squid.new/squid.changes 2016-01-28 17:23:58.000000000 +0100
@@ -2 +2 @@
-Wed Dec 9 10:11:36 UTC 2015 - mpluskal(a)suse.com
+Sun Jan 24 18:28:45 UTC 2016 - chris(a)computersalat.de
@@ -4,27 +4,37 @@
-- Update to 4.0.3
- * Bug 4372: missing template files
- * Bug 4371: compile errors: no such file or directory:
- DiskIO/*/*DiskIOModule.o
- * Bug 4368: A simpler and more robust HTTP request line parser
- * Fix compile erorr on clang undefined reference to
- '__atomic_load_8'
- * ext_kerberos_ldap_group_acl: Add missing workarounds for
- Heimdal Kerberos
- * ext_ldap_group_acl: Allow unlimited LDAP search filter
- * ext_unix_group_acl: Support -r parameter to strip @REALM from
- usernames
- * ... and much code cleanup and polishing
- * ... and all fixes from squid 3.5.11
-- Changes for squid-4.0.2
- * Regression Bug 4351: compile errors when authentication modules
- disabled
- * Regression fix: HTTP/1.1 Transfer-Encoding:chunked parsing
- * Bug 4359: assertion failure 'Comm::IsConnOpen(conn)' within
- ConnStateData::requestTimeout
- * Bug 4356: segmentation fault using proxy_auth ACL
- * Bug 4352: compile errors in OS X 10.11
- * Bug 4021: ext_user_regex does exact match
- * Bug 3574: avoid crashes, prohibit reconfiguration during
- shutdown
- * Support re-assigning delay pools based on HTTP reply details
- * ... and all fixes from squid 3.5.11
+- Changes to squid-3.5.13 (06 Jan 2016):
+ * Bug 4397: DragonFly BSD, POSIX shared memory is implemented as filepath
+ * Bug 4387: Kerberos build errors on Solaris
+ * TLS: Support Ephemeral Elliptic Curve Diffie-Hellman (EECDH) key exchange
+ * TLS: Complete certificate chains using external intermediate certificates
+ * Avoid memory leaks when an X.509 certificate validator is used with SslBump
+ * Fix connection retry and fallback after failed server TLS connections
+ * Fix GnuTLS detection via pkg-config
+ * Fix startup crash with a misconfigured (too-small) shared memory cache
+ * ... and some documentation updates
+- Changes to squid-3.5.12 (28 Nov 2015):
+ * Bug 4374: refresh_pattern config parser (%)
+ * Bug 4373: assertion 'calloutContext->redirect_state == REDIRECT_NONE'
+ * Bug 4228: links with krb5 libs despite --without options
+ * Fix SSL_get_certificate() problem detection
+ * Fix TLS handshake problem during Renegotiation
+ * Fix cache_peer forceddomain= in CONNECT
+ * Fix status code-based HTTP reason phrase for eCAP-generated messages
+ * Fix build errors in cpuafinity.cc
+ * ... and several documentation updates
+- Changes to squid-3.5.11 (01 Nov 2015):
+ * Bug 3574: crashes on reconfigure and startup
+ * Bug 4347: compile errors with LibreSSL 2.3
+ * Bug 4281: copy-paste typos in src/tools.cc
+ * Bug 4279: No response from proxy for FTP-download of non-existing file
+ * Bug 4188: Bumping intercepted SSL connections does not work on Solaris
+ * Fix incorrect authentication headers on cache digest requests
+ * Fix connection stats, including %<lp, missing for persistent connections
+ * Fix invalid memory access issues in SBuf
+ * Avoid errors when parsing manager ACL in old squid.conf
+- rebase squid-config.patch
+- disable pre scriptlet (sed -i '/emulate_httpd_log/d' /etc/{name}/{name}.conf)
+- downgrade to 3.5.x
+ * cause 4.x is Beta, should not have been here
+ * moved 4.x Beta package to server:proxy:Beta
+- fix ChangeLog
+ * remove 4.x ChangeLog Entries
@@ -39,57 +48,0 @@
-
-
--------------------------------------------------------------------
-Tue Oct 27 17:12:19 UTC 2015 - chris(a)computersalat.de
-
-- update to 4.0.1
- * Bug 4329: GCC 5.2 no known conversion for argument
- * Bug 4292: negotiate_wrapper: Unreleased Resources
- * Bug 4269: ignore-must-revalidate broken
- * Bug 4190: assertion 'hash_remove_link' from Auth::User::cacheCleanup
- * Bug 3920: Splay::remove() reference counting inconsistent
- * Bug 3069: CONNECT method bytes sent logging
- * Bug 2741 partial: libsecurity API for GnuTLS support
- * Bug 1961 partial: redesign of URL handling
- * Fix crash when parsing invalid squid.conf
- * Fix eCAP: Return 'unknown body size' for bodies with unknown body sizes
- * Remove unused OS detection: Sun, SysV, Ultrix, BSDi
- * Remove cache_peer_domain directive
- * RFC 6176 compliance: Remove SSLv2 support
- * HTTP/1.1: Remove refresh_pattern ignore-auth and ignore-must-revalidate
- * Remove GCC 2.x and 3.x detection and support
- * C++11 compiler support is now mandatory
- * Enable flexible transport protocol
- * Enable long (--foo) command line parameters on squid binary
- * Add per-rule refresh_pattern matching statistics
- * Replace sslversion=N with tls-min-version=1.N
- * Replace sslproxy_* directives with tls_outgoing_options
- * Replace GNU atomics and related hacks with C++11 std::atomic
- * Replace external_acl_type format %macros with logformat codes
- * Support Ephemeral Elliptic Curve Diffie-Hellman (EECDH) key exchange
- * Support Secure ICAP services
- * Support rotate=N option on access_log
- * Support bypass for non-HTTP intercepted traffic (on_unsupported_protocol)
- * Support lifetime timeout for persistent connections (pconn_lifetime)
- * Support timeout for URL-rewrite helper lookups (url_rewrite_timeout)
- * Support logging fast things (nanosecond log resolution)
- * Support ICAP/eCAP adaptation for 100-continue responses
- * Support configurable helper queue size, with consistent defaults
- and better overflow handling.
- * Support named service PID file by default (pid_filename)
- * url_lfs_rewrite: Add URL-rewriter based on local file existence
- * negotiate_kerberos_auth: output group= kv-pair
- * helper-mux: add man(8) page
- * purge: convert README to man(1) page
- * basic_msnt_multi_domain_auth: Superceeded by basic_smb_lm_auth
- * basic_sspi_auth: fix MinGW compile errors
- * negotiate_sspi_auth: fix various build errors
- * Crypto-NG: libnettle Base64 algorithm support
- * Parser-NG: HTTP Parser structural redesign
- * libltdl: copyright updated to LGPL version 2.1
- * ... and several performance optimizations
- * ... and many documentation changes
- * ... and much code cleanup and polishing
-- fix dependency (C++11)
- * gcc >= 4.7
-- rebase squid-config.patch
-- rebase and fix squid-brokenad.patch
Old:
----
squid-4.0.3.tar.xz
squid-4.0.3.tar.xz.asc
New:
----
squid-3.5.13.tar.xz
squid-3.5.13.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ squid.spec ++++++
--- /var/tmp/diff_new_pack.xkZAQU/_old 2016-01-28 17:23:59.000000000 +0100
+++ /var/tmp/diff_new_pack.xkZAQU/_new 2016-01-28 17:23:59.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package squid
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,14 +20,14 @@
%define squidconfdir %{_sysconfdir}/squid
Name: squid
-Version: 4.0.3
+Version: 3.5.13
Release: 0
Summary: A fully featured HTTP/1.0 proxy
License: GPL-2.0+
Group: Productivity/Networking/Web/Proxy
-Url: http://www.squid-cache.org/Versions/v4
-Source0: http://www.squid-cache.org/Versions/v4/%{name}-%{version}.tar.xz
-Source1: http://www.squid-cache.org/Versions/v4/%{name}-%{version}.tar.xz.asc
+Url: http://www.squid-cache.org/Versions/v3/3.5
+Source0: http://www.squid-cache.org/Versions/v3/3.5/%{name}-%{version}.tar.xz
+Source1: http://www.squid-cache.org/Versions/v3/3.5/%{name}-%{version}.tar.xz.asc
Source3: squid.init
Source4: squid.sysconfig
@@ -57,7 +57,7 @@
BuildRequires: expat
#
BuildRequires: fdupes
-BuildRequires: gcc-c++ >= 4.7
+BuildRequires: gcc-c++
BuildRequires: krb5-devel
BuildRequires: libcap-devel
BuildRequires: libexpat-devel
@@ -106,20 +106,26 @@
Requires: logrotate
Provides: http_proxy
+# due to package rename
+# Wed Aug 15 17:40:30 UTC 2012
+Provides: %{name}3 = %{version}
+Obsoletes: %{name}3 < %{version}
+
%description
-Squis is a fully-featured HTTP/1.0 proxy which is almost (but not quite - we're getting there!) a fully-featured HTTP/1.1 proxy. Squid offers a rich access control, authorization and logging environment to develop web proxy and content serving applications. Squid offers a rich set of traffic optimization options, most of which are enabled by default for simpler installation and high performance.
+Squid is a fully-featured HTTP/1.0 proxy which is almost (but not quite - we're getting there!) a fully-featured HTTP/1.1 proxy. Squid offers a rich access control, authorization and logging environment to develop web proxy and content serving applications. Squid offers a rich set of traffic optimization options, most of which are enabled by default for simpler installation and high performance.
-Squid 4 represents a new feature release above 3.5.
+Squid 3.5 represents a new feature release above 3.4.
The most important of these new features are:
- Configurable helper queue size
- Helper concurrency channels changes
- SSL support removal
- MSNT-multi-domain helper removal
- Secure ICAP
- Elliptic Curve Diffie-Hellman (ECDH)
- Improved SMP support
+ * Support libecap v1.0
+ * Authentication helper query extensions
+ * Support named services
+ * Upgraded squidclient tool
+ * Helper support for concurrency channels
+ * Native FTP Relay
+ * Receive PROXY protocol, Versions 1 & 2
+ * Basic authentication MSNT helper changes
%prep
%setup -q
@@ -307,12 +313,11 @@
mv %{_sysconfdir}/%{name}.conf %{_sysconfdir}/%{name}/%{name}.conf
fi
fi
-# emulate_httpd_log is gone with 3.5
-if [ -e %{_sysconfdir}/%{name}/%{name}.conf ]; then
- if [ $(grep -c emulate_httpd_log %{_sysconfdir}/%{name}/%{name}.conf) -gt 0 ];then
- sed -i '/emulate_httpd_log/d' %{_sysconfdir}/%{name}/%{name}.conf
- fi
-fi
+# emulate_httpd_log is gone with 3.2 not 3.5
+### rpmlint is complaining about modifying squid.conf
+#if [ -e etc/%{name}/%{name}.conf ]; then
+# sed -i '/emulate_httpd_log/d' /etc/%{name}/%{name}.conf
+#fi
%pretrans -p <lua>
-- Directory to symlink is not working in RPM so workaround it
@@ -435,7 +440,7 @@
%{_sbindir}/digest_edirectory_auth
## will get removed in 3.6 series
# http://www.squid-cache.org/Versions/v3/3.5/RELEASENOTES.html#toc2.8
-#%%{_sbindir}/basic_msnt_multi_domain_auth
+%{_sbindir}/basic_msnt_multi_domain_auth
##
%{_sbindir}/basic_ncsa_auth
%{_sbindir}/basic_nis_auth
@@ -465,7 +470,7 @@
%{_sbindir}/ext_session_acl
%{_sbindir}/ext_unix_group_acl
%{_sbindir}/ext_wbinfo_group_acl
-%{_sbindir}/helper-mux
+%{_sbindir}/helper-mux.pl
%{_sbindir}/log_db_daemon
%{_sbindir}/log_file_daemon
%{_sbindir}/negotiate_kerberos_auth
@@ -485,7 +490,6 @@
%{_sbindir}/unlinkd
%{_sbindir}/url_fake_rewrite
%{_sbindir}/url_fake_rewrite.sh
-%{_sbindir}/url_lfs_rewrite
%if 0%{?suse_version}
%{_sbindir}/rc%{name}
%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
++++++ squid-4.0.3.tar.xz -> squid-3.5.13.tar.xz ++++++
++++ 165399 lines of diff (skipped)
++++++ squid-4.0.3.tar.xz.asc -> squid-3.5.13.tar.xz.asc ++++++
--- /work/SRC/openSUSE:Factory/squid/squid-4.0.3.tar.xz.asc 2015-12-09 22:34:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.squid.new/squid-3.5.13.tar.xz.asc 2016-01-28 17:23:58.000000000 +0100
@@ -1,8 +1,8 @@
-File: squid-4.0.3.tar.xz
-Date: Sat Nov 28 16:16:30 UTC 2015
-Size: 2341200
-MD5 : 1b2c7e775d494993ea260ba959515162
-SHA1: 039396491f13c2da8f20252cce16509ce31ccaf3
+File: squid-3.5.13.tar.xz
+Date: Thu Jan 7 04:33:15 UTC 2016
+Size: 2379460
+MD5 : 7a22503cfc99e1f89cb309b5facfbbc3
+SHA1: 3c45f8a8522c67c633c85c65dbfe63ccaf6df0e8
Key : 0xFF5CF463 <squid3(a)treenet.co.nz>
fingerprint = EA31 CC5E 9488 E516 8D2D CC5E B268 E706 FF5C F463
keyring = http://www.squid-cache.org/pgp.asc
@@ -10,11 +10,11 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
-iQEcBAABAgAGBQJWWdSjAAoJELJo5wb/XPRjxtQIAMmFTrgiFwNo0gioSaUG7m8l
-7VlewDor+dRzhJ+KYPt0VhLbO8V6KjgoDmp1ISDpnQ3PgQaFP1v0tLLh5pfGRuUf
-rO8OQEowrmxIu/oe9/8Reh3ci1nsT/xXFC1DBWxhVwzy1I081xzmuEDS5s0OqhtE
-PlcyOPmWhT5fYiNfzmdIuJC+3NWW8k82nOtbFlR4vWdjtHWaIaZjgb3MCW3Y2mgb
-1dPSEUDLbB7V70qN8iE9pwh923eRMo7Y6u9ejImxbYzwZVA3kn/bnqyPFCAbYVmg
-D6fPumqfh5wab2Et1csNNK2daxpEelaAFTFX7eEUBLfRWCepDYU1U5KKtUxNaeg=
-=eU8K
+iQEcBAABAgAGBQJWkOegAAoJELJo5wb/XPRjWIcIAK0RQqBz4QcEE6bZba5qLK+l
+T/hoKPMNi2QTjpR4WGIWhuw2YoX9HrWUceP8BZ0HsA9HssAG8Te5du0hjjOHNbxy
+3jMdSchM3KVLw7xlotDsp3CWRzFgYp3UE5Czcvy4vakggGNTPJ7NddgX1dda3ChG
+tl4yDlzOw6hkab4wEGbT0V8/WUbNEWtGFtZNCFdhL1hdtfKBXqtLwSo3/vLxqFJT
+85aQNU5C6bOAiz4LBLhIv7uY81vwIK73zFgGsiY3RBXe0ekC7Q9TvAh5wkejLM/b
+mp4xVXk6ZJXFBggbeUzBVR+OGEl4GhqEwI+6MULTc6DXVE4m5PvpF6wcn5yf9yg=
+=U8vk
-----END PGP SIGNATURE-----
++++++ squid-brokenad.patch ++++++
--- /var/tmp/diff_new_pack.xkZAQU/_old 2016-01-28 17:24:01.000000000 +0100
+++ /var/tmp/diff_new_pack.xkZAQU/_new 2016-01-28 17:24:01.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- helpers/external_acl/kerberos_ldap_group/support_krb5.cc.orig
+++ helpers/external_acl/kerberos_ldap_group/support_krb5.cc
-@@ -80,7 +80,7 @@ k5_error(const char* msg, krb5_error_cod
+@@ -81,7 +81,7 @@ k5_error(const char* msg, krb5_error_cod
* create Kerberos memory cache
*/
int
@@ -10,59 +10,59 @@
+krb5_create_cache(struct main_args *margs, char *domain)
{
- krb5_keytab keytab = NULL;
-@@ -288,8 +288,17 @@ krb5_create_cache(char *domain)
- if (code) {
- k5_error("Error while unparsing principal name",code);
- } else {
-- debug((char *) "%s| %s: DEBUG: Found principal name: %s\n", LogTime(), PROGRAM, principal_name);
-- found = 1;
-+ if (margs->brokenad == 1) {
-+ if (!strncmp(principal_name,"HTTP/",strlen("HTTP/"))==0){
-+ debug((char *) "%s| %s: DEBUG: Found principal without 'HTTP/' service name: %s NOT USING IT\n", LogTime(), PROGRAM, principal_name);
-+ } else {
-+ debug((char *) "%s| %s: DEBUG: Found principal with 'HTTP/' service name: %s\n", LogTime(), PROGRAM, principal_name);
-+ found = 1;
-+ }
+ krb5_keytab keytab = 0;
+@@ -178,8 +178,17 @@ krb5_create_cache(char *domain)
+ if (code) {
+ k5_error("Error while unparsing principal name",code);
+ } else {
+- debug((char *) "%s| %s: DEBUG: Found principal name: %s\n", LogTime(), PROGRAM, principal_name);
+- found = 1;
++ if (margs->brokenad == 1) {
++ if (!strncmp(principal_name,"HTTP/",strlen("HTTP/"))==0){
++ debug((char *) "%s| %s: DEBUG: Found principal without 'HTTP/' service name: %s NOT USING IT\n", LogTime(), PROGRAM, principal_name);
+ } else {
-+ debug((char *) "%s| %s: DEBUG: Found principal name: %s\n", LogTime(), PROGRAM, principal_name);
++ debug((char *) "%s| %s: DEBUG: Found principal with 'HTTP/' service name: %s\n", LogTime(), PROGRAM, principal_name);
+ found = 1;
+ }
- }
++ } else {
++ debug((char *) "%s| %s: DEBUG: Found principal name: %s\n", LogTime(), PROGRAM, principal_name);
++ found = 1;
++ }
}
+ }
#if USE_HEIMDAL_KRB5 || ( HAVE_KRB5_KT_FREE_ENTRY && HAVE_DECL_KRB5_KT_FREE_ENTRY )
Index: helpers/external_acl/kerberos_ldap_group/kerberos_ldap_group.cc
===================================================================
--- helpers/external_acl/kerberos_ldap_group/kerberos_ldap_group.cc.orig
+++ helpers/external_acl/kerberos_ldap_group/kerberos_ldap_group.cc
-@@ -79,6 +79,7 @@ init_args(struct main_args *margs)
+@@ -61,6 +61,7 @@ init_args(struct main_args *margs)
+ margs->rc_allow = 0;
margs->AD = 0;
margs->mdepth = 5;
- margs->nokerberos = 0;
+ margs->brokenad = 0;
margs->ddomain = NULL;
margs->groups = NULL;
margs->ndoms = NULL;
-@@ -202,7 +203,7 @@ main(int argc, char *const argv[])
+@@ -179,7 +180,7 @@ main(int argc, char *const argv[])
init_args(&margs);
-- while (-1 != (opt = getopt(argc, argv, "diasng:D:N:S:u:U:t:T:p:l:b:m:h"))) {
-+ while (-1 != (opt = getopt(argc, argv, "diasnxg:D:N:S:u:U:t:T:p:l:b:m:h"))) {
+- while (-1 != (opt = getopt(argc, argv, "diasg:D:N:S:u:U:t:T:p:l:b:m:h"))) {
++ while (-1 != (opt = getopt(argc, argv, "diasxg:D:N:S:u:U:t:T:p:l:b:m:h"))) {
switch (opt) {
case 'd':
debug_enabled = 1;
-@@ -219,6 +220,9 @@ main(int argc, char *const argv[])
- case 'n':
- margs.nokerberos = 1;
+@@ -231,6 +232,9 @@ main(int argc, char *const argv[])
+ case 'S':
+ margs.llist = xstrdup(optarg);
break;
+ case 'x':
+ margs.brokenad = 1;
+ break;
- case 'g':
- margs.glist = xstrdup(optarg);
- break;
-@@ -274,6 +278,7 @@ main(int argc, char *const argv[])
+ case 'h':
+ fprintf(stderr, "Usage: \n");
+ fprintf(stderr, "squid_kerb_ldap [-d] [-i] -g group list [-D domain] [-N netbios domain map] [-s] [-u ldap user] [-p ldap user password] [-l ldap url] [-b ldap bind path] [-a] [-m max depth] [-h]\n");
+@@ -247,6 +251,7 @@ main(int argc, char *const argv[])
fprintf(stderr, "-l ldap url\n");
fprintf(stderr, "-b ldap bind path\n");
fprintf(stderr, "-s use SSL encryption with Kerberos authentication\n");
@@ -74,18 +74,18 @@
===================================================================
--- helpers/external_acl/kerberos_ldap_group/support.h.orig
+++ helpers/external_acl/kerberos_ldap_group/support.h
-@@ -106,6 +106,7 @@ struct main_args {
+@@ -105,6 +105,7 @@ struct main_args {
+ int rc_allow;
int AD;
int mdepth;
- int nokerberos;
+ int brokenad;
char *ddomain;
struct gdstruct *groups;
struct ndstruct *ndoms;
-@@ -181,7 +182,7 @@ struct kstruct {
- char* mem_ccache[MAX_DOMAINS];
- int ncache;
- };
+@@ -164,7 +165,7 @@ int create_nd(struct main_args *margs);
+ int create_ls(struct main_args *margs);
+
+ #ifdef HAVE_KRB5
-int krb5_create_cache(char *domain);
+int krb5_create_cache(struct main_args *margs, char *domain);
void krb5_cleanup(void);
@@ -95,12 +95,12 @@
===================================================================
--- helpers/external_acl/kerberos_ldap_group/support_ldap.cc.orig
+++ helpers/external_acl/kerberos_ldap_group/support_ldap.cc
-@@ -902,7 +902,7 @@ get_memberof(struct main_args *margs, ch
- kc = 1;
- debug((char *) "%s| %s: DEBUG: Kerberos is disabled. Use username/password with ldap url instead\n", LogTime(), PROGRAM);
- } else {
-- kc = krb5_create_cache(domain);
-+ kc = krb5_create_cache(margs,domain);
- if (kc) {
- error((char *) "%s| %s: ERROR: Error during setup of Kerberos credential cache\n", LogTime(), PROGRAM);
- }
+@@ -898,7 +898,7 @@ get_memberof(struct main_args *margs, ch
+ debug((char *) "%s| %s: DEBUG: Setup Kerberos credential cache\n", LogTime(), PROGRAM);
+
+ #if HAVE_KRB5
+- kc = krb5_create_cache(domain);
++ kc = krb5_create_cache(margs,domain);
+ if (kc) {
+ error((char *) "%s| %s: ERROR: Error during setup of Kerberos credential cache\n", LogTime(), PROGRAM);
+ }
++++++ squid-config.patch ++++++
--- /var/tmp/diff_new_pack.xkZAQU/_old 2016-01-28 17:24:01.000000000 +0100
+++ /var/tmp/diff_new_pack.xkZAQU/_new 2016-01-28 17:24:01.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- src/cf.data.pre.orig
+++ src/cf.data.pre
-@@ -1498,6 +1498,8 @@ http_access deny manager
+@@ -1464,6 +1464,8 @@ http_access deny manager
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
@@ -11,7 +11,7 @@
http_access allow localhost
# And finally deny all other access to this proxy
-@@ -3672,6 +3674,10 @@ DOC_START
+@@ -3761,6 +3763,10 @@ DOC_START
Instead, if you want Squid to use the entire disk drive,
subtract 20% and use that value.
@@ -22,7 +22,7 @@
'L1' is the number of first-level subdirectories which
will be created under the 'Directory'. The default is 16.
-@@ -3790,7 +3796,7 @@ DOC_START
+@@ -3879,7 +3885,7 @@ DOC_START
NOCOMMENT_START
# Uncomment and adjust the following to add a disk cache directory.
@@ -31,7 +31,7 @@
NOCOMMENT_END
DOC_END
-@@ -4504,7 +4510,7 @@ DOC_END
+@@ -4576,7 +4582,7 @@ DOC_END
NAME: logfile_rotate
TYPE: int
@@ -39,4 +39,4 @@
+DEFAULT: 0
LOC: Config.Log.rotateNumber
DOC_START
- Specifies the default number of logfile rotations to make when you
+ Specifies the number of logfile rotations to make when you
1
0
Hello community,
here is the log from the commit of package rubygem-puppet for openSUSE:Factory checked in at 2016-01-28 17:23:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-puppet (Old)
and /work/SRC/openSUSE:Factory/.rubygem-puppet.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-puppet"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-puppet/rubygem-puppet.changes 2015-12-09 22:33:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-puppet.new/rubygem-puppet.changes 2016-01-28 17:23:56.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Jan 22 17:15:04 UTC 2016 - kstreitova(a)suse.com
+
+- Update to 3.8.5
+ https://docs.puppetlabs.com/puppet/3.8/reference/release_notes.html#puppet-…
+
+-------------------------------------------------------------------
Old:
----
puppet-3.8.4.gem
New:
----
puppet-3.8.5.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-puppet.spec ++++++
--- /var/tmp/diff_new_pack.PLXK0l/_old 2016-01-28 17:23:57.000000000 +0100
+++ /var/tmp/diff_new_pack.PLXK0l/_new 2016-01-28 17:23:57.000000000 +0100
@@ -24,7 +24,7 @@
#
Name: rubygem-puppet
-Version: 3.8.4
+Version: 3.8.5
Release: 0
%define mod_name puppet
%define mod_full_name %{mod_name}-%{version}
++++++ puppet-3.8.4.gem -> puppet-3.8.5.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ext/build_defaults.yaml new/ext/build_defaults.yaml
--- old/ext/build_defaults.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/ext/build_defaults.yaml 1970-01-01 01:00:00.000000000 +0100
@@ -19,17 +19,17 @@
ref: 'refs/tags/3.8.3'
repo: 'git://github.com/puppetlabs/puppet_for_the_win.git'
facter:
- ref: 'refs/tags/2.4.4'
+ ref: 'refs/tags/2.4.5'
repo: 'git://github.com/puppetlabs/facter.git'
hiera:
ref: 'refs/tags/1.3.4'
repo: 'git://github.com/puppetlabs/hiera.git'
sys:
ref:
- x86: 'refs/tags/1.9.3-p551.6'
- x64: 'refs/tags/2.0.0.9-x64'
+ x86: 'refs/tags/1.9.3-p551.8'
+ x64: 'refs/tags/2.0.0.11-x64'
repo: 'git://github.com/puppetlabs/puppet-win32-ruby.git'
-apt_host: 'apt.puppetlabs.com'
+apt_signing_server: 'apt.puppetlabs.com'
apt_repo_url: 'http://apt.puppetlabs.com'
apt_repo_path: '/opt/repository/incoming'
ips_repo: '/var/pkgrepo'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/daemon.rb new/lib/puppet/daemon.rb
--- old/lib/puppet/daemon.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/daemon.rb 1970-01-01 01:00:00.000000000 +0100
@@ -24,6 +24,7 @@
SIGNAL_CHECK_INTERVAL = 5
attr_accessor :agent, :server, :argv
+ attr_reader :signals
def initialize(pidfile, scheduler = Puppet::Scheduler::Scheduler.new())
@scheduler = scheduler
@@ -107,13 +108,21 @@
# Trap a couple of the main signals. This should probably be handled
# in a way that anyone else can register callbacks for traps, but, eh.
def set_signal_traps
- signals = {:INT => :stop, :TERM => :stop }
- # extended signals not supported under windows
- signals.update({:HUP => :restart, :USR1 => :reload, :USR2 => :reopen_logs }) unless Puppet.features.microsoft_windows?
- signals.each do |signal, method|
+ [:INT, :TERM].each do |signal|
Signal.trap(signal) do
- Puppet.notice "Caught #{signal}; storing #{method}"
- @signals << method
+ Puppet.notice "Caught #{signal}; exiting"
+ stop
+ end
+ end
+
+ # extended signals not supported under windows
+ if !Puppet.features.microsoft_windows?
+ signals = {:HUP => :restart, :USR1 => :reload, :USR2 => :reopen_logs }
+ signals.each do |signal, method|
+ Signal.trap(signal) do
+ Puppet.notice "Caught #{signal}; storing #{method}"
+ @signals << method
+ end
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/node.rb new/lib/puppet/node.rb
--- old/lib/puppet/node.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/node.rb 1970-01-01 01:00:00.000000000 +0100
@@ -18,6 +18,8 @@
::PSON.register_document_type('Node',self)
+ ENVIRONMENT = 'environment'.freeze
+
def self.from_data_hash(data)
raise ArgumentError, "No name provided in serialized data" unless name = data['name']
@@ -58,7 +60,7 @@
if @environment
@environment
else
- if env = parameters["environment"]
+ if env = parameters[ENVIRONMENT]
self.environment = env
elsif environment_name
self.environment = environment_name
@@ -80,6 +82,13 @@
else
@environment = env
end
+
+ # Keep environment_name attribute and parameter in sync if they have been set
+ unless @environment.nil?
+ @parameters[ENVIRONMENT] = @environment.name if @parameters.include?(ENVIRONMENT)
+ self.environment_name = @environment.name if instance_variable_defined?(:@environment_name)
+ end
+ @environment
end
def has_environment_instance?
@@ -129,7 +138,7 @@
@parameters[name] = value unless @parameters.include?(name)
end
- @parameters["environment"] ||= self.environment.name.to_s
+ @parameters[ENVIRONMENT] ||= self.environment.name.to_s
end
# Calculate the list of names we might use for looking
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/pops/evaluator/access_operator.rb new/lib/puppet/pops/evaluator/access_operator.rb
--- old/lib/puppet/pops/evaluator/access_operator.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/pops/evaluator/access_operator.rb 1970-01-01 01:00:00.000000000 +0100
@@ -39,7 +39,7 @@
fail(Puppet::Pops::Issues::BAD_STRING_SLICE_ARITY, @semantic.left_expr, {:actual => keys.size})
when 1
# Note that Ruby 1.8.7 requires a length of 1 to produce a String
- k1 = coerce_numeric(keys[0], @semantic.keys, scope)
+ k1 = coerce_numeric(keys[0], @semantic.keys[0], scope)
bad_access_key_type(o, 0, k1, Integer) unless k1.is_a?(Integer)
k2 = 1
k1 = k1 < 0 ? o.length + k1 : k1 # abs pos
@@ -50,8 +50,8 @@
o[ k1, k2 ]
end
when 2
- k1 = coerce_numeric(keys[0], @semantic.keys, scope)
- k2 = coerce_numeric(keys[1], @semantic.keys, scope)
+ k1 = coerce_numeric(keys[0], @semantic.keys[0], scope)
+ k2 = coerce_numeric(keys[1], @semantic.keys[1], scope)
[k1, k2].each_with_index { |k,i| bad_access_key_type(o, i, k, Integer) unless k.is_a?(Integer) }
k1 = k1 < 0 ? o.length + k1 : k1 # abs pos (negative is count from end)
@@ -317,6 +317,9 @@
end
ranged_integer = Puppet::Pops::Types::PIntegerType.new()
from, to = keys
+ # NOTE! Do not merge the following line to 4.x. It has the same check in the initialize method
+ raise ArgumentError, "'from' must be less or equal to 'to'. Got (#{from}, #{to}" if from.is_a?(Numeric) && to.is_a?(Numeric) && from > to
+
ranged_integer.from = from == :default ? nil : from
ranged_integer.to = to == :default ? nil : to
ranged_integer
@@ -333,6 +336,9 @@
end
ranged_float = Puppet::Pops::Types::PFloatType.new()
from, to = keys
+ # NOTE! Do not merge the following line to 4.x. It has the same check in the initialize method
+ raise ArgumentError, "'from' must be less or equal to 'to'. Got (#{from}, #{to}" if from.is_a?(Numeric) && to.is_a?(Numeric) && from > to
+
ranged_float.from = from == :default || from.nil? ? nil : Float(from)
ranged_float.to = to == :default || to.nil? ? nil : Float(to)
ranged_float
@@ -428,6 +434,9 @@
end
ranged_integer = Puppet::Pops::Types::PIntegerType.new()
from, to = keys
+ # NOTE! Do not merge the following line to 4.x. It has the same check in the initialize method
+ raise ArgumentError, "'from' must be less or equal to 'to'. Got (#{from}, #{to}" if from.is_a?(Numeric) && to.is_a?(Numeric) && from > to
+
ranged_integer.from = from == :default ? nil : from
ranged_integer.to = to == :default ? nil : to
ranged_integer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/pops/issues.rb new/lib/puppet/pops/issues.rb
--- old/lib/puppet/pops/issues.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/pops/issues.rb 1970-01-01 01:00:00.000000000 +0100
@@ -546,6 +546,10 @@
"Resource Override can only operate on resources, got: #{label.label(actual)}"
end
+ DUPLICATE_PARAMETER = hard_issue :DUPLICATE_PARAMETER, :param_name do
+ "The parameter '#{param_name}' is declared more than once in the parameter list"
+ end
+
RESERVED_PARAMETER = hard_issue :RESERVED_PARAMETER, :container, :param_name do
"The parameter $#{param_name} redefines a built in parameter in #{label.the(container)}"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/pops/types/type_calculator.rb new/lib/puppet/pops/types/type_calculator.rb
--- old/lib/puppet/pops/types/type_calculator.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/pops/types/type_calculator.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1069,11 +1069,7 @@
to = range.to
x = from.nil? ? 1 : from
y = to.nil? ? TheInfinity : to
- if x < y
- [x, y]
- else
- [y, x]
- end
+ [x, y]
end
# @api private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/pops/types/type_factory.rb new/lib/puppet/pops/types/type_factory.rb
--- old/lib/puppet/pops/types/type_factory.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/pops/types/type_factory.rb 1970-01-01 01:00:00.000000000 +0100
@@ -17,6 +17,9 @@
# @api public
#
def self.range(from, to)
+ # NOTE! Do not merge the following line to 4.x. It has the same check in the initialize method
+ raise ArgumentError, "'from' must be less or equal to 'to'. Got (#{from}, #{to}" if from.is_a?(Numeric) && to.is_a?(Numeric) && from > to
+
t = Types::PIntegerType.new()
# optimize eq with symbol (faster when it is left)
t.from = from unless (:default == from || from == 'default')
@@ -28,6 +31,9 @@
# @api public
#
def self.float_range(from, to)
+ # NOTE! Do not merge the following line to 4.x. It has the same check in the initialize method
+ raise ArgumentError, "'from' must be less or equal to 'to'. Got (#{from}, #{to}" if from.is_a?(Numeric) && to.is_a?(Numeric) && from > to
+
t = Types::PFloatType.new()
# optimize eq with symbol (faster when it is left)
t.from = Float(from) unless :default == from || from.nil?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/pops/types/types.rb new/lib/puppet/pops/types/types.rb
--- old/lib/puppet/pops/types/types.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/pops/types/types.rb 1970-01-01 01:00:00.000000000 +0100
@@ -121,11 +121,7 @@
def range
f = from || NEGATIVE_INFINITY
t = to || INFINITY
- if f < t
- [f, t]
- else
- [t,f]
- end
+ [f, t]
end
# Returns Enumerator if no block is given
@@ -133,11 +129,7 @@
def each
return self.to_enum unless block_given?
return nil if from.nil? || to.nil?
- if to < from
- from.downto(to) {|x| yield x }
- else
- from.upto(to) {|x| yield x }
- end
+ from.upto(to) {|x| yield x }
end
def hash
@@ -212,11 +204,7 @@
return [0, INFINITY] if size_type.nil?
f = size_type.from || 0
t = size_type.to || INFINITY
- if f < t
- [f, t]
- else
- [t,f]
- end
+ [f, t]
end
def hash
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/pops/validation/checker4_0.rb new/lib/puppet/pops/validation/checker4_0.rb
--- old/lib/puppet/pops/validation/checker4_0.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/pops/validation/checker4_0.rb 1970-01-01 01:00:00.000000000 +0100
@@ -233,6 +233,7 @@
def check_EppExpression(o)
if o.eContainer.is_a?(Puppet::Pops::Model::LambdaExpression)
internal_check_no_capture(o.eContainer, o)
+ internal_check_parameter_name_uniqueness(o.eContainer)
end
end
@@ -327,12 +328,14 @@
def check_HostClassDefinition(o)
check_NamedDefinition(o)
internal_check_no_capture(o)
+ internal_check_parameter_name_uniqueness(o)
internal_check_reserved_params(o)
end
def check_ResourceTypeDefinition(o)
check_NamedDefinition(o)
internal_check_no_capture(o)
+ internal_check_parameter_name_uniqueness(o)
internal_check_reserved_params(o)
end
@@ -366,6 +369,13 @@
end
end
+ def internal_check_parameter_name_uniqueness(o)
+ unique = Set.new
+ o.parameters.each do |p|
+ acceptor.accept(Issues::DUPLICATE_PARAMETER, p, {:param_name => p.name}) unless unique.add?(p.name)
+ end
+ end
+
def check_IfExpression(o)
rvalue(o.test)
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/provider/group/windows_adsi.rb new/lib/puppet/provider/group/windows_adsi.rb
--- old/lib/puppet/provider/group/windows_adsi.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/provider/group/windows_adsi.rb 1970-01-01 01:00:00.000000000 +0100
@@ -39,6 +39,11 @@
return '' if users.nil? or !users.kind_of?(Array)
users = users.map do |user_name|
sid = Puppet::Util::Windows::SID.name_to_sid_object(user_name)
+ if !sid
+ resource.debug("#{user_name} (unresolvable to SID)")
+ next user_name
+ end
+
if sid.account =~ /\\/
account, _ = Puppet::Util::Windows::ADSI::User.parse_name(sid.account)
else
@@ -50,6 +55,10 @@
return users.join(',')
end
+ def member_valid?(user_name)
+ ! Puppet::Util::Windows::SID.name_to_sid_object(user_name).nil?
+ end
+
def group
@group ||= Puppet::Util::Windows::ADSI::Group.new(@resource[:name])
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/provider/package/pip.rb new/lib/puppet/provider/package/pip.rb
--- old/lib/puppet/provider/package/pip.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/provider/package/pip.rb 1970-01-01 01:00:00.000000000 +0100
@@ -3,6 +3,7 @@
require 'puppet/provider/package'
require 'xmlrpc/client'
+require 'puppet/util/http_proxy'
Puppet::Type.type(:package).provide :pip,
:parent => ::Puppet::Provider::Package do
@@ -56,7 +57,16 @@
# cache of PyPI's package list so this operation will always have to
# ask the web service.
def latest
- client = XMLRPC::Client.new2("http://pypi.python.org/pypi")
+ http_proxy_host = Puppet::Util::HttpProxy.http_proxy_host
+ http_proxy_port = Puppet::Util::HttpProxy.http_proxy_port
+ if http_proxy_host && http_proxy_port
+ proxy = "#{http_proxy_host}:#{http_proxy_port}"
+ else
+ # nil is acceptable
+ proxy = http_proxy_host
+ end
+
+ client = XMLRPC::Client.new2("http://pypi.python.org/pypi", proxy)
client.http_header_extra = {"Content-Type" => "text/xml"}
client.timeout = 10
result = client.call("package_releases", @resource[:name])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/provider/service/launchd.rb new/lib/puppet/provider/service/launchd.rb
--- old/lib/puppet/provider/service/launchd.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/provider/service/launchd.rb 1970-01-01 01:00:00.000000000 +0100
@@ -205,6 +205,12 @@
# format.
def self.read_plist(path)
begin
+ return Plist::parse_xml(path)
+ rescue ArgumentError => detail
+ Puppet.debug("Error reading #{path}: #{detail}. Retrying with plutil.")
+ end
+
+ begin
Plist::parse_xml(plutil('-convert', 'xml1', '-o', '/dev/stdout', path))
rescue Puppet::ExecutionFailure => detail
Puppet.warning("Cannot read file #{path}; Puppet is skipping it. \n" +
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/provider/service/upstart.rb new/lib/puppet/provider/service/upstart.rb
--- old/lib/puppet/provider/service/upstart.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/provider/service/upstart.rb 1970-01-01 01:00:00.000000000 +0100
@@ -151,7 +151,11 @@
end
def status
- return super if not is_upstart?
+ if (@resource[:hasstatus] == :false) ||
+ @resource[:status] ||
+ ! is_upstart?
+ return super
+ end
output = status_exec(@resource[:name].split)
if output =~ /start\//
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/resource.rb new/lib/puppet/resource.rb
--- old/lib/puppet/resource.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/resource.rb 1970-01-01 01:00:00.000000000 +0100
@@ -387,7 +387,7 @@
begin
Puppet::DataBinding.indirection.find(
name,
- :environment => scope.environment.to_s,
+ :environment => scope.environment,
:variables => scope)
rescue Puppet::DataBinding::LookupError => e
raise Puppet::Error.new("Error from DataBinding '#{Puppet[:data_binding_terminus]}' while looking up '#{name}': #{e.message}", e)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/type/group.rb new/lib/puppet/type/group.rb
--- old/lib/puppet/type/group.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/type/group.rb 1970-01-01 01:00:00.000000000 +0100
@@ -80,7 +80,9 @@
newproperty(:members, :array_matching => :all, :required_features => :manages_members) do
desc "The members of the group. For directory services where group
- membership is stored in the group objects, not the users."
+ membership is stored in the group objects, not the users. Use
+ with auth_membership to determine whether the specified members
+ are inclusive or the minimum."
def change_to_s(currentvalue, newvalue)
currentvalue = currentvalue.join(",") if currentvalue != :absent
@@ -99,16 +101,26 @@
def is_to_s(currentvalue)
if provider.respond_to?(:members_to_s)
currentvalue = '' if currentvalue.nil?
- return provider.members_to_s(currentvalue.split(','))
+ currentvalue = currentvalue.is_a?(Array) ? currentvalue : currentvalue.split(',')
+
+ return provider.members_to_s(currentvalue)
end
super(currentvalue)
end
alias :should_to_s :is_to_s
+
+ validate do |value|
+ if provider.respond_to?(:member_valid?)
+ return provider.member_valid?(value)
+ end
+ end
end
newparam(:auth_membership, :boolean => true, :parent => Puppet::Parameter::Boolean) do
- desc "whether the provider is authoritative for group membership."
+ desc "Whether the provider is authoritative for group membership. This
+ must be set to true to allow setting the group to no members with
+ `members => [],`."
defaultto true
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/util/windows/security.rb new/lib/puppet/util/windows/security.rb
--- old/lib/puppet/util/windows/security.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/util/windows/security.rb 1970-01-01 01:00:00.000000000 +0100
@@ -372,7 +372,10 @@
dacl.allow(well_known_nobody_sid, nobody_allow)
# TODO: system should be first?
- dacl.allow(well_known_system_sid, system_allow)
+ flags = !isdir ? 0 :
+ Puppet::Util::Windows::AccessControlEntry::CONTAINER_INHERIT_ACE |
+ Puppet::Util::Windows::AccessControlEntry::OBJECT_INHERIT_ACE
+ dacl.allow(well_known_system_sid, system_allow, flags)
# add inherit-only aces for child dirs and files that are created within the dir
inherit_only = Puppet::Util::Windows::AccessControlEntry::INHERIT_ONLY_ACE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet/version.rb new/lib/puppet/version.rb
--- old/lib/puppet/version.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet/version.rb 1970-01-01 01:00:00.000000000 +0100
@@ -7,7 +7,7 @@
module Puppet
- PUPPETVERSION = '3.8.4'
+ PUPPETVERSION = '3.8.5'
##
# version is a public API method intended to always provide a fast and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 1970-01-01 01:00:00.000000000 +0100
+++ new/metadata 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: puppet
version: !ruby/object:Gem::Version
- version: 3.8.4
+ version: 3.8.5
prerelease:
platform: ruby
authors:
@@ -9,7 +9,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2015-11-03 00:00:00.000000000 Z
+date: 2016-01-21 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: facter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/integration/util/windows/security_spec.rb new/spec/integration/util/windows/security_spec.rb
--- old/spec/integration/util/windows/security_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/integration/util/windows/security_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -237,6 +237,24 @@
system_aces.each do |ace|
ace.mask.should == klass::FILE_ALL_ACCESS && ! ace.inherited?
end
+
+ if Puppet::FileSystem.directory?(path)
+ system_aces.each do |ace|
+ ace.object_inherit?.should be_true
+ ace.container_inherit?.should be_true
+ end
+
+ # it's critically important that this file be default created
+ # and that this file not have it's owner / group / mode set by winsec
+ nested_file = File.join(path, 'nested_file')
+ File.new(nested_file, 'w').close
+
+ system_aces = winsec.get_aces_for_path_by_sid(nested_file, sids[:system])
+ # even when SYSTEM is the owner (in CI), there should be an inherited SYSTEM
+ system_aces.any? do |ace|
+ ace.mask == klass::FILE_ALL_ACCESS && ace.inherited?
+ end.should be_true
+ end
end
describe "for modes that require deny aces" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/daemon_spec.rb new/spec/unit/daemon_spec.rb
--- old/spec/unit/daemon_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/daemon_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -47,15 +47,24 @@
let(:server) { stub("Server", :start => nil, :wait_for_shutdown => nil) }
describe "when setting signal traps" do
- signals = {:INT => :stop, :TERM => :stop }
- signals.update({:HUP => :restart, :USR1 => :reload, :USR2 => :reopen_logs}) unless Puppet.features.microsoft_windows?
- signals.each do |signal, method|
- it "should log and call #{method} when it receives #{signal}" do
- Signal.expects(:trap).with(signal).yields
+ [:INT, :TERM].each do |signal|
+ it "logs a notice and exits when sent #{signal}" do
+ Signal.stubs(:trap).with(signal).yields
+ Puppet.expects(:notice).with("Caught #{signal}; exiting")
+ daemon.expects(:stop)
- Puppet.expects(:notice)
+ daemon.set_signal_traps
+ end
+ end
+
+ {:HUP => :restart, :USR1 => :reload, :USR2 => :reopen_logs}.each do |signal, method|
+ it "logs a notice and remembers to call #{method} when it receives #{signal}" do
+ Signal.stubs(:trap).with(signal).yields
+ Puppet.expects(:notice).with("Caught #{signal}; storing #{method}")
daemon.set_signal_traps
+
+ expect(daemon.signals).to eq([method])
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/node_spec.rb new/spec/unit/node_spec.rb
--- old/spec/unit/node_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/node_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -48,6 +48,14 @@
node.parameters["environment"] = :bar
node.environment.name.should == :bar
end
+
+ it "should allow its environment parameter to be set by attribute after initialization" do
+ node = Puppet::Node.new("foo", { :parameters => { 'environment' => :foo } })
+ node.environment_name = :foo
+ node.environment = :bar
+ expect(node.environment_name).to eq(:bar)
+ expect(node.parameters['environment']).to eq(:bar)
+ end
end
it "can survive a round-trip through YAML" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/pops/evaluator/access_ops_spec.rb new/spec/unit/pops/evaluator/access_ops_spec.rb
--- old/spec/unit/pops/evaluator/access_ops_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/pops/evaluator/access_ops_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -123,9 +123,9 @@
expect(evaluate(expr)).to eql(range(1,1))
end
- it 'produces an Integer[from, <from]' do
+ it 'gives an error for Integer[from, <from]' do
expr = fqr('Integer')[1,0]
- expect(evaluate(expr)).to eql(range(1,0))
+ expect{evaluate(expr)}.to raise_error(/'from' must be less or equal to 'to'/)
end
it 'produces an error for Integer[] if there are more than 2 keys' do
@@ -154,9 +154,9 @@
expect(evaluate(expr)).to eql(float_range(1.0,1.0))
end
- it 'produces a Float[from, <from]' do
+ it 'gives an error for Float[from, <from]' do
expr = fqr('Float')[1.0,0.0]
- expect(evaluate(expr)).to eql(float_range(1.0,0.0))
+ expect{evaluate(expr)}.to raise_error(/'from' must be less or equal to 'to'/)
end
it 'produces an error for Float[] if there are more than 2 keys' do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/pops/parser/parser_rspec_helper.rb new/spec/unit/pops/parser/parser_rspec_helper.rb
--- old/spec/unit/pops/parser/parser_rspec_helper.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/pops/parser/parser_rspec_helper.rb 1970-01-01 01:00:00.000000000 +0100
@@ -8,4 +8,9 @@
parser = Puppet::Pops::Parser::Parser.new()
parser.parse_string(code)
end
+
+ def parse_epp(code)
+ parser = Puppet::Pops::Parser::EppParser.new()
+ parser.parse_string(code)
+ end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/pops/validator/validator_spec.rb new/spec/unit/pops/validator/validator_spec.rb
--- old/spec/unit/pops/validator/validator_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/pops/validator/validator_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -177,6 +177,18 @@
end
end
+ context 'for parameter names' do
+ ['class', 'define'].each do |word|
+ it "should require that #{word} parameter names are unique" do
+ expect(validate(parse("#{word} foo($a = 10, $a = 20) {}"))).to have_issue(Puppet::Pops::Issues::DUPLICATE_PARAMETER)
+ end
+ end
+
+ it "should require that template parameter names are unique" do
+ expect(validate(parse_epp("<%-| $a, $a |-%><%= $a == doh %>"))).to have_issue(Puppet::Pops::Issues::DUPLICATE_PARAMETER)
+ end
+ end
+
context 'for reserved parameter names' do
['name', 'title'].each do |word|
it "produces an error when $#{word} is used as a parameter in a class" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/provider/group/windows_adsi_spec.rb new/spec/unit/provider/group/windows_adsi_spec.rb
--- old/spec/unit/provider/group/windows_adsi_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/provider/group/windows_adsi_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -35,11 +35,13 @@
let(:user1) { stub(:account => 'user1', :domain => '.', :to_s => 'user1sid') }
let(:user2) { stub(:account => 'user2', :domain => '.', :to_s => 'user2sid') }
let(:user3) { stub(:account => 'user3', :domain => '.', :to_s => 'user3sid') }
+ let(:invalid_user) { SecureRandom.uuid }
before :each do
Puppet::Util::Windows::SID.stubs(:name_to_sid_object).with('user1').returns(user1)
Puppet::Util::Windows::SID.stubs(:name_to_sid_object).with('user2').returns(user2)
Puppet::Util::Windows::SID.stubs(:name_to_sid_object).with('user3').returns(user3)
+ Puppet::Util::Windows::SID.stubs(:name_to_sid_object).with(invalid_user).returns(nil)
end
describe "#members_insync?" do
@@ -123,6 +125,9 @@
it "should return a user string like DOMAIN\\USER,DOMAIN2\\USER2" do
provider.members_to_s(['user1', 'user2']).should == '.\user1,.\user2'
end
+ it "should return the username when it cannot be resolved to a SID (for the sake of resource_harness error messages)" do
+ expect(provider.members_to_s([invalid_user])).to eq("#{invalid_user}")
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/provider/package/pip_spec.rb new/spec/unit/provider/package/pip_spec.rb
--- old/spec/unit/provider/package/pip_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/provider/package/pip_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -12,7 +12,6 @@
@client = stub_everything('client')
@client.stubs(:call).with('package_releases', 'real_package').returns(["1.3", "1.2.5", "1.2.4"])
@client.stubs(:call).with('package_releases', 'fake_package').returns([])
- XMLRPC::Client.stubs(:new2).returns(@client)
end
describe "parse" do
@@ -118,23 +117,53 @@
end
describe "latest" do
+ context "connecting directly" do
- it "should find a version number for real_package" do
- @resource[:name] = "real_package"
- @provider.latest.should_not == nil
- end
+ before :each do
+ XMLRPC::Client.expects(:new2).with("http://pypi.python.org/pypi", nil).returns(@client)
+ end
- it "should not find a version number for fake_package" do
- @resource[:name] = "fake_package"
- @provider.latest.should == nil
- end
+ it "should find a version number for real_package" do
+ @resource[:name] = "real_package"
+ @provider.latest.should_not == nil
+ end
+
+ it "should not find a version number for fake_package" do
+ @resource[:name] = "fake_package"
+ @provider.latest.should == nil
+ end
+
+ it "should handle a timeout gracefully" do
+ @resource[:name] = "fake_package"
+ @client.stubs(:call).raises(Timeout::Error)
+ lambda { @provider.latest }.should raise_error(Puppet::Error)
+ end
- it "should handle a timeout gracefully" do
- @resource[:name] = "fake_package"
- @client.stubs(:call).raises(Timeout::Error)
- lambda { @provider.latest }.should raise_error(Puppet::Error)
end
+ context "connecting via a proxy" do
+ before :each do
+ Puppet::Util::HttpProxy.expects(:http_proxy_host).returns 'some_host'
+ Puppet::Util::HttpProxy.expects(:http_proxy_port).returns 'some_port'
+ XMLRPC::Client.expects(:new2).with("http://pypi.python.org/pypi", "some_host:some_port").returns(@client)
+ end
+
+ it "should find a version number for real_package" do
+ @resource[:name] = "real_package"
+ @provider.latest.should_not == nil
+ end
+
+ it "should not find a version number for fake_package" do
+ @resource[:name] = "fake_package"
+ @provider.latest.should == nil
+ end
+
+ it "should handle a timeout gracefully" do
+ @resource[:name] = "fake_package"
+ @client.stubs(:call).raises(Timeout::Error)
+ lambda { @provider.latest }.should raise_error(Puppet::Error)
+ end
+ end
end
describe "install" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/provider/service/launchd_spec.rb new/spec/unit/provider/service/launchd_spec.rb
--- old/spec/unit/provider/service/launchd_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/provider/service/launchd_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -274,6 +274,7 @@
}
end
let(:busted_plist_path) { '/Library/LaunchAgents/org.busted.plist' }
+ let(:binary_plist_path) { '/Library/LaunchAgents/org.binary.plist' }
it "[17624] should warn that the plist in question is being skipped" do
provider.expects(:launchd_paths).returns(['/Library/LaunchAgents'])
@@ -284,6 +285,8 @@
end
it "[15929] should skip plists that plutil cannot read" do
+ Plist.expects(:parse_xml).with(busted_plist_path).raises(ArgumentError, 'boom')
+ Puppet.expects(:debug).with("Error reading #{busted_plist_path}: boom. Retrying with plutil.")
provider.expects(:plutil).with('-convert', 'xml1', '-o', '/dev/stdout',
busted_plist_path).raises(Puppet::ExecutionFailure, 'boom')
Puppet.expects(:warning).with("Cannot read file #{busted_plist_path}; " +
@@ -291,6 +294,14 @@
"Details: boom")
provider.read_plist(busted_plist_path)
end
+
+ it "should read binary plists with plutil" do
+ Plist.expects(:parse_xml).with(binary_plist_path).raises(ArgumentError, 'boom')
+ Puppet.expects(:debug).with("Error reading #{binary_plist_path}: boom. Retrying with plutil.")
+ provider.expects(:plutil).with('-convert', 'xml1', '-o', '/dev/stdout', binary_plist_path).returns('plist')
+ Plist.expects(:parse_xml).with('plist').returns('plist_map')
+ expect(provider.read_plist(binary_plist_path)).to eq('plist_map')
+ end
end
it "should return the cached value when available" do
provider.instance_variable_set(:@label_to_path_map, {'xx'=>'yy'})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/unit/provider/service/upstart_spec.rb new/spec/unit/provider/service/upstart_spec.rb
--- old/spec/unit/provider/service/upstart_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/provider/service/upstart_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -100,6 +100,63 @@
provider.status.should == :running
end
+ describe "when a special status command is specifed" do
+ it "should use the provided status command" do
+ resource = Puppet::Type.type(:service).new(:name => 'foo', :provider => :upstart, :status => '/bin/foo')
+ provider = provider_class.new(resource)
+ provider.stubs(:is_upstart?).returns(true)
+
+ provider.expects(:status_exec).with(['foo']).never
+ provider.expects(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
+ Process::Status.any_instance.stubs(:exitstatus).returns(0)
+ provider.status
+ end
+
+ it "should return :stopped when the provided status command return non-zero" do
+ resource = Puppet::Type.type(:service).new(:name => 'foo', :provider => :upstart, :status => '/bin/foo')
+ provider = provider_class.new(resource)
+ provider.stubs(:is_upstart?).returns(true)
+
+ provider.expects(:status_exec).with(['foo']).never
+ provider.expects(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
+ $CHILD_STATUS.stubs(:exitstatus).returns 1
+ provider.status.should == :stopped
+ end
+
+ it "should return :running when the provided status command return zero" do
+ resource = Puppet::Type.type(:service).new(:name => 'foo', :provider => :upstart, :status => '/bin/foo')
+ provider = provider_class.new(resource)
+ provider.stubs(:is_upstart?).returns(true)
+
+ provider.expects(:status_exec).with(['foo']).never
+ provider.expects(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
+ $CHILD_STATUS.stubs(:exitstatus).returns 0
+ provider.status.should == :running
+ end
+ end
+
+ describe "when :hasstatus is set to false" do
+ it "should return :stopped if the pid can not be found" do
+ resource = Puppet::Type.type(:service).new(:name => 'foo', :hasstatus => false, :provider => :upstart)
+ provider = provider_class.new(resource)
+ provider.stubs(:is_upstart?).returns(true)
+
+ provider.expects(:status_exec).with(['foo']).never
+ provider.expects(:getpid).returns nil
+ provider.status.should == :stopped
+ end
+
+ it "should return :running if the pid can be found" do
+ resource = Puppet::Type.type(:service).new(:name => 'foo', :hasstatus => false, :provider => :upstart)
+ provider = provider_class.new(resource)
+ provider.stubs(:is_upstart?).returns(true)
+
+ provider.expects(:status_exec).with(['foo']).never
+ provider.expects(:getpid).returns 2706
+ provider.status.should == :running
+ end
+ end
+
it "should properly handle services with 'start' in their name" do
resource = Puppet::Type.type(:service).new(:name => "foostartbar", :provider => :upstart)
provider = provider_class.new(resource)
1
0
Hello community,
here is the log from the commit of package rubygem-puppet-syntax for openSUSE:Factory checked in at 2016-01-28 17:23:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-puppet-syntax (Old)
and /work/SRC/openSUSE:Factory/.rubygem-puppet-syntax.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-puppet-syntax"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-puppet-syntax/rubygem-puppet-syntax.changes 2015-05-16 07:14:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-puppet-syntax.new/rubygem-puppet-syntax.changes 2016-01-28 17:23:55.000000000 +0100
@@ -1,0 +2,11 @@
+Fri Jan 22 17:46:06 UTC 2016 - kstreitova(a)suse.com
+
+- Version bump 2.1.0
+ * Support Puppet 4. Many thanks to @DavidS
+ * Support validation of EPP templates. Thanks to @trlinkin
+ * Test improvements and refactoring, including Travis CI tests against Puppet 4. Thanks to @trlinkin
+ * Don't error when a tag metaparameter is present. Thank you @dhardy92
+ * Report the filename of invalid hiera data files. Thanks @danzilio
+- run spec-cleaner
+
+-------------------------------------------------------------------
Old:
----
puppet-syntax-2.0.0.gem
New:
----
puppet-syntax-2.1.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-puppet-syntax.spec ++++++
--- /var/tmp/diff_new_pack.vmxVW4/_old 2016-01-28 17:23:56.000000000 +0100
+++ /var/tmp/diff_new_pack.vmxVW4/_new 2016-01-28 17:23:56.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-puppet-syntax
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,20 +15,21 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-Name: rubygem-puppet-syntax
-Version: 2.0.0
-Release: 0
+
%define mod_name puppet-syntax
%define mod_full_name %{mod_name}-%{version}
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: ruby-macros >= 5
-BuildRequires: %{ruby}
-BuildRequires: %{rubygem gem2rpm}
-Url: https://github.com/gds-operations/puppet-syntax
-Source: http://rubygems.org/gems/%{mod_full_name}.gem
+Name: rubygem-puppet-syntax
+Version: 2.1.0
+Release: 0
Summary: Syntax checks for Puppet manifests, templates, and Hiera YAML
License: MIT
Group: Development/Languages/Ruby
+Url: https://github.com/gds-operations/puppet-syntax
+Source: http://rubygems.org/gems/%{mod_full_name}.gem
+BuildRequires: %{rubygem gem2rpm}
+BuildRequires: %{ruby}
+BuildRequires: ruby-macros >= 5
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Syntax checks for Puppet manifests and templates.
++++++ puppet-syntax-2.0.0.gem -> puppet-syntax-2.1.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.travis.yml new/.travis.yml
--- old/.travis.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/.travis.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +1,27 @@
---
language: ruby
+# Workaround https://github.com/bundler/bundler/issues/3558
+before_install: gem install bundler
script: bundle exec rake
rvm:
- 1.9.3
+ - 2.1.6
env:
- PUPPET_VERSION="~> 3.0.0"
- PUPPET_VERSION="~> 3.1.0"
- PUPPET_VERSION="~> 3.2.0"
- PUPPET_VERSION="~> 3.4.0"
- PUPPET_VERSION="~> 3.7.3"
+ - PUPPET_VERSION="~> 4.2.0"
+ - PUPPET_VERSION="~> 4.3.0"
- PUPPET_VERSION=">= 0"
matrix:
+ exclude:
+ - rvm: 2.1.6
+ env: PUPPET_VERSION="~> 3.2.0"
+ - rvm: 2.1.6
+ env: PUPPET_VERSION="~> 3.1.0"
+ - rvm: 2.1.6
+ env: PUPPET_VERSION="~> 3.0.0"
allow_failures:
- env: PUPPET_VERSION=">= 0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG new/CHANGELOG
--- old/CHANGELOG 1970-01-01 01:00:00.000000000 +0100
+++ new/CHANGELOG 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +1,10 @@
+2016-01-18 Release 2.1.0
+- Support Puppet 4. Many thanks to @DavidS
+- Support validation of EPP templates. Thanks to @trlinkin
+- Test improvements and refactoring, including Travis CI tests against Puppet 4. Thanks to @trlinkin
+- Don't error when a tag metaparameter is present. Thank you @dhardy92
+- Report the filename of invalid hiera data files. Thanks @danzilio
+
2015-02-25 Release 2.0.0
- Removed support for Puppet version 2.7.x
- New option, fail_on_deprecation_notices, which defaults to true (compatible
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet-syntax/hiera.rb new/lib/puppet-syntax/hiera.rb
--- old/lib/puppet-syntax/hiera.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet-syntax/hiera.rb 1970-01-01 01:00:00.000000000 +0100
@@ -11,7 +11,7 @@
begin
YAML.load_file(hiera_file)
rescue Exception => error
- errors << error
+ errors << "ERROR: Failed to parse #{hiera_file}: #{error}"
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet-syntax/manifests.rb new/lib/puppet-syntax/manifests.rb
--- old/lib/puppet-syntax/manifests.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet-syntax/manifests.rb 1970-01-01 01:00:00.000000000 +0100
@@ -36,6 +36,11 @@
e =~ /^You cannot collect( exported resources)? without storeconfigs being set/
}
+ # tag parameter in class raise warnings notice in output that prevent from succeed
+ output.reject! { |e|
+ e =~ /^tag is a metaparam; this value will inherit to all contained resources in the /
+ }
+
deprecations = output.select { |e|
e =~ /^Deprecation notice:|is deprecated/
}
@@ -48,7 +53,7 @@
private
def validate_manifest(file)
- Puppet[:parser] = 'future' if PuppetSyntax.future_parser
+ Puppet[:parser] = 'future' if PuppetSyntax.future_parser and Puppet::PUPPETVERSION.to_i < 4
Puppet::Face[:parser, :current].validate(file)
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet-syntax/tasks/puppet-syntax.rb new/lib/puppet-syntax/tasks/puppet-syntax.rb
--- old/lib/puppet-syntax/tasks/puppet-syntax.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet-syntax/tasks/puppet-syntax.rb 1970-01-01 01:00:00.000000000 +0100
@@ -30,6 +30,12 @@
desc 'Syntax check Puppet manifests'
task :manifests do |t|
+ if Puppet::PUPPETVERSION.to_i >= 4 and PuppetSyntax.future_parser
+ info <<-EOS
+[INFO] Puppet 4 has been detected and `future_parser` has been set to
+'true'. The `future_parser setting will be ignored.
+ EOS
+ end
$stderr.puts "---> #{t.name}"
files = FileList["**/*.pp"]
files.reject! { |f| File.directory?(f) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet-syntax/templates.rb new/lib/puppet-syntax/templates.rb
--- old/lib/puppet-syntax/templates.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet-syntax/templates.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +1,5 @@
require 'erb'
+require 'puppet'
require 'stringio'
module PuppetSyntax
@@ -10,19 +11,11 @@
$stderr = warnings = StringIO.new()
errors = []
- filelist.each do |erb_file|
- begin
- erb = ERB.new(File.read(erb_file), nil, '-')
- erb.filename = erb_file
- erb.result
- rescue NameError
- # This is normal because we don't have the variables that would
- # ordinarily be bound by the parent Puppet manifest.
- rescue TypeError
- # This is normal because we don't have the variables that would
- # ordinarily be bound by the parent Puppet manifest.
- rescue SyntaxError => error
- errors << error
+ filelist.each do |file|
+ if File.extname(file) == '.epp' or PuppetSyntax.epp_only
+ errors.concat validate_epp(file)
+ else
+ errors.concat validate_erb(file)
end
end
@@ -32,5 +25,42 @@
errors
end
+
+ def validate_epp(filename)
+ if Puppet::PUPPETVERSION.to_i < 4
+ raise "Cannot validate EPP without Puppet 4"
+ end
+
+ require 'puppet/pops'
+ errors = []
+ begin
+ parser = Puppet::Pops::Parser::EvaluatingParser::EvaluatingEppParser.new()
+ parser.parse_file(filename)
+ rescue => detail
+ errors << detail
+ end
+
+ errors
+ end
+
+ def validate_erb(filename)
+ errors = []
+
+ begin
+ erb = ERB.new(File.read(filename), nil, '-')
+ erb.filename = filename
+ erb.result
+ rescue NameError => error
+ # This is normal because we don't have the variables that would
+ # ordinarily be bound by the parent Puppet manifest.
+ rescue TypeError
+ # This is normal because we don't have the variables that would
+ # ordinarily be bound by the parent Puppet manifest.
+ rescue SyntaxError => error
+ errors << error
+ end
+
+ errors
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet-syntax/version.rb new/lib/puppet-syntax/version.rb
--- old/lib/puppet-syntax/version.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet-syntax/version.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +1,3 @@
module PuppetSyntax
- VERSION = "2.0.0"
+ VERSION = "2.1.0"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/puppet-syntax.rb new/lib/puppet-syntax.rb
--- old/lib/puppet-syntax.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/puppet-syntax.rb 1970-01-01 01:00:00.000000000 +0100
@@ -10,6 +10,6 @@
@fail_on_deprecation_notices = true
class << self
- attr_accessor :exclude_paths, :future_parser, :hieradata_paths, :fail_on_deprecation_notices
+ attr_accessor :exclude_paths, :future_parser, :hieradata_paths, :fail_on_deprecation_notices, :epp_only
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 1970-01-01 01:00:00.000000000 +0100
+++ new/metadata 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: puppet-syntax
version: !ruby/object:Gem::Version
- version: 2.0.0
+ version: 2.1.0
prerelease:
platform: ruby
authors:
@@ -9,7 +9,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2015-02-26 00:00:00.000000000 Z
+date: 2016-01-18 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: rake
@@ -90,9 +90,14 @@
- spec/fixtures/test_module/manifests/future_syntax.pp
- spec/fixtures/test_module/manifests/pass.pp
- spec/fixtures/test_module/manifests/pass_storeconfigs.pp
+- spec/fixtures/test_module/manifests/tag_notice.pp
+- spec/fixtures/test_module/templates/fail_error.epp
- spec/fixtures/test_module/templates/fail_error.erb
+- spec/fixtures/test_module/templates/fail_error_also.epp
- spec/fixtures/test_module/templates/fail_warning.erb
+- spec/fixtures/test_module/templates/pass.epp
- spec/fixtures/test_module/templates/pass.erb
+- spec/fixtures/test_module/templates/pass_also.epp
- spec/fixtures/test_module/templates/pass_unbound_var.erb
- spec/fixtures/test_module/templates/typeerror_shouldwin.erb
- spec/puppet-syntax/hiera_spec.rb
@@ -116,7 +121,7 @@
version: '0'
segments:
- 0
- hash: 2080509366784508245
+ hash: 1512611786751491860
required_rubygems_version: !ruby/object:Gem::Requirement
none: false
requirements:
@@ -125,7 +130,7 @@
version: '0'
segments:
- 0
- hash: 2080509366784508245
+ hash: 1512611786751491860
requirements: []
rubyforge_project:
rubygems_version: 1.8.23.2
@@ -142,9 +147,14 @@
- spec/fixtures/test_module/manifests/future_syntax.pp
- spec/fixtures/test_module/manifests/pass.pp
- spec/fixtures/test_module/manifests/pass_storeconfigs.pp
+- spec/fixtures/test_module/manifests/tag_notice.pp
+- spec/fixtures/test_module/templates/fail_error.epp
- spec/fixtures/test_module/templates/fail_error.erb
+- spec/fixtures/test_module/templates/fail_error_also.epp
- spec/fixtures/test_module/templates/fail_warning.erb
+- spec/fixtures/test_module/templates/pass.epp
- spec/fixtures/test_module/templates/pass.erb
+- spec/fixtures/test_module/templates/pass_also.epp
- spec/fixtures/test_module/templates/pass_unbound_var.erb
- spec/fixtures/test_module/templates/typeerror_shouldwin.erb
- spec/puppet-syntax/hiera_spec.rb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/fixtures/test_module/manifests/tag_notice.pp new/spec/fixtures/test_module/manifests/tag_notice.pp
--- old/spec/fixtures/test_module/manifests/tag_notice.pp 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/fixtures/test_module/manifests/tag_notice.pp 1970-01-01 01:00:00.000000000 +0100
@@ -0,0 +1,5 @@
+class tag_parameter_test ($tag=undef){
+ notify { 'tag_should pass':
+ message => 'with flying colours',
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/fixtures/test_module/templates/fail_error.epp new/spec/fixtures/test_module/templates/fail_error.epp
--- old/spec/fixtures/test_module/templates/fail_error.epp 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/fixtures/test_module/templates/fail_error.epp 1970-01-01 01:00:00.000000000 +0100
@@ -0,0 +1,3 @@
+This is plain text
+<% This is not valid EPP %>
+This is also plain text
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/fixtures/test_module/templates/fail_error_also.epp new/spec/fixtures/test_module/templates/fail_error_also.epp
--- old/spec/fixtures/test_module/templates/fail_error_also.epp 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/fixtures/test_module/templates/fail_error_also.epp 1970-01-01 01:00:00.000000000 +0100
@@ -0,0 +1,3 @@
+This is plain text
+<% } %>
+This is also plain text
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/fixtures/test_module/templates/pass.epp new/spec/fixtures/test_module/templates/pass.epp
--- old/spec/fixtures/test_module/templates/pass.epp 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/fixtures/test_module/templates/pass.epp 1970-01-01 01:00:00.000000000 +0100
@@ -0,0 +1,3 @@
+<%# VALID COMMENT %>
+<% $valid = 'valid' -%>
+This is a <%= $valid %> template.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/fixtures/test_module/templates/pass_also.epp new/spec/fixtures/test_module/templates/pass_also.epp
--- old/spec/fixtures/test_module/templates/pass_also.epp 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/fixtures/test_module/templates/pass_also.epp 1970-01-01 01:00:00.000000000 +0100
@@ -0,0 +1,3 @@
+<%# VALID COMMENT %>
+<% $valid = 'valid' -%>
+This is a <%= $valid %> template.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/puppet-syntax/hiera_spec.rb new/spec/puppet-syntax/hiera_spec.rb
--- old/spec/puppet-syntax/hiera_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/puppet-syntax/hiera_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -14,14 +14,9 @@
end
it "should return an error from invalid YAML" do
- case RUBY_VERSION
- when /1.8/
- files = fixture_hiera('hiera_bad_18.yaml')
- expected = /syntax error on line 3, col -1: `'/
- else
- files = fixture_hiera('hiera_bad.yaml')
- expected = /scanning a directive at line 1 column 1/
- end
+ hiera_yaml = RUBY_VERSION =~ /1.8/ ? 'hiera_bad_18.yaml' : 'hiera_bad.yaml'
+ files = fixture_hiera(hiera_yaml)
+ expected = /ERROR: Failed to parse #{files[0]}:/
res = subject.check(files)
expect(res.size).to be == 1
expect(res.first).to match(expected)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/puppet-syntax/manifests_spec.rb new/spec/puppet-syntax/manifests_spec.rb
--- old/spec/puppet-syntax/manifests_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/puppet-syntax/manifests_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -16,13 +16,27 @@
expect(has_errors).to eq(false)
end
+ it 'should return nothing from a valid file with a class using tag parameter' do
+ files = fixture_manifests('tag_notice.pp')
+ output, has_errors = subject.check(files)
+
+ expect(output).to eq([])
+ expect(has_errors).to eq(false)
+ end
+
it 'should return an error from an invalid file' do
files = fixture_manifests('fail_error.pp')
output, has_errors = subject.check(files)
- expect(output.size).to eq(1)
- expect(output[0]).to match(/Syntax error at .*:3$/)
- expect(has_errors).to eq(true)
+ if Puppet::PUPPETVERSION.to_i >= 4
+ expect(output.size).to eq(3)
+ expect(output[2]).to match(/Found 2 errors. Giving up/)
+ expect(has_errors).to eq(true)
+ else
+ expect(output.size).to eq(1)
+ expect(output[0]).to match(/Syntax error at .*:3$/)
+ expect(has_errors).to eq(true)
+ end
end
it 'should return a warning from an invalid file' do
@@ -30,9 +44,10 @@
output, has_errors = subject.check(files)
expect(output.size).to eq(2)
- expect(output[0]).to match(/Unrecognised escape sequence '\\\[' .* at line 3$/)
- expect(output[1]).to match(/Unrecognised escape sequence '\\\]' .* at line 3$/)
expect(has_errors).to eq(true)
+
+ expect(output[0]).to match(/Unrecogni(s|z)ed escape sequence '\\\['/)
+ expect(output[1]).to match(/Unrecogni(s|z)ed escape sequence '\\\]'/)
end
it 'should ignore warnings about storeconfigs' do
@@ -56,18 +71,37 @@
files = fixture_manifests(['fail_error.pp', 'fail_warning.pp'])
output, has_errors = subject.check(files)
- expect(output.size).to eq(3)
- expect(output[0]).to match(/Syntax error at '\}' .*:3$/)
- expect(output[1]).to match(/Unrecognised escape sequence '\\\[' .* at line 3$/)
- expect(output[2]).to match(/Unrecognised escape sequence '\\\]' .* at line 3$/)
expect(has_errors).to eq(true)
+ if Puppet::PUPPETVERSION.to_i >= 4
+ expect(output.size).to eq(5)
+ expect(output[0]).to match(/This Name has no effect. A Host Class Definition can not end with a value-producing expression without other effect at \S*\/fail_error.pp:2:32$/)
+ expect(output[1]).to match(/This Name has no effect. A value(-producing expression without other effect may only be placed last in a block\/sequence| was produced and then forgotten.*) at \S*\/fail_error.pp:2:3$/)
+ expect(output[2]).to match('Found 2 errors. Giving up')
+ expect(output[3]).to match(/Unrecogni(s|z)ed escape sequence '\\\['/)
+ expect(output[4]).to match(/Unrecogni(s|z)ed escape sequence '\\\]'/)
+ else
+ expect(output.size).to eq(3)
+ expect(output[0]).to match(/Syntax error at '\}' .*:3$/)
+ expect(output[1]).to match(/Unrecogni(s|z)ed escape sequence '\\\['/)
+ expect(output[2]).to match(/Unrecogni(s|z)ed escape sequence '\\\]'/)
+ end
end
describe 'deprecation notices' do
- # These tests should fail in Puppet 4, but we need to wait for the release
- # before we'll know exactly how to test it.
- if Puppet::Util::Package.versioncmp(Puppet.version, '3.7') >= 0
- context 'on puppet >= 3.7' do
+ case Puppet.version.to_f
+ when 4.0..4.99
+ context 'on puppet 4.0.0 and above' do
+ it 'should instead be failures' do
+ files = fixture_manifests('deprecation_notice.pp')
+ output, has_errors = subject.check(files)
+
+ expect(has_errors).to eq(true)
+ expect(output.size).to eq(1)
+ expect(output[0]).to match (/Node inheritance is not supported in Puppet >= 4.0.0/)
+ end
+ end
+ when 3.7, 3.8
+ context 'on puppet 3.7 and 3.8' do
it 'should return deprecation notices as warnings' do
files = fixture_manifests('deprecation_notice.pp')
output, has_errors = subject.check(files)
@@ -78,7 +112,7 @@
expect(output[1]).to match(/Deprecation notice:/)
end
end
- elsif Puppet::Util::Package.versioncmp(Puppet.version, '3.5') >= 0
+ when 3.5, 3.6
context 'on puppet 3.5 and 3.6' do
it 'should return deprecation notices as warnings' do
files = fixture_manifests('deprecation_notice.pp')
@@ -89,8 +123,8 @@
expect(output[0]).to match(/The use of 'import' is deprecated/)
end
end
- elsif Puppet::Util::Package.versioncmp(Puppet.version, '3.5') < 0
- context 'on puppet < 3.5' do
+ when 3.0..3.4
+ context 'on puppet 3.0 to 3.4' do
it 'should not print deprecation notices' do
files = fixture_manifests('deprecation_notice.pp')
output, has_errors = subject.check(files)
@@ -104,15 +138,27 @@
describe 'future_parser' do
context 'future_parser = false (default)' do
- it 'should fail without setting future option to true on future manifest' do
- expect(PuppetSyntax.future_parser).to eq(false)
+ if Puppet::Util::Package.versioncmp(Puppet.version, '4.0') < 0
+ it 'should fail without setting future option to true on future manifest on Puppet < 4.0.0' do
+ expect(PuppetSyntax.future_parser).to eq(false)
- files = fixture_manifests(['future_syntax.pp'])
- output, has_errors = subject.check(files)
+ files = fixture_manifests(['future_syntax.pp'])
+ output, has_errors = subject.check(files)
- expect(output.size).to eq(1)
- expect(output[0]).to match(/Syntax error at '='; expected '\}' .*:2$/)
- expect(has_errors).to eq(true)
+ expect(output.size).to eq(1)
+ expect(output[0]).to match(/Syntax error at '='; expected '\}' .*:2$/)
+ expect(has_errors).to eq(true)
+ end
+ else
+ it 'should succeed on Puppet >= 4.0.0' do
+ expect(PuppetSyntax.future_parser).to eq(false)
+
+ files = fixture_manifests(['future_syntax.pp'])
+ output, has_errors = subject.check(files)
+
+ expect(output.size).to eq(0)
+ expect(has_errors).to eq(false)
+ end
end
end
@@ -121,8 +167,8 @@
PuppetSyntax.future_parser = true
}
- if Puppet::Util::Package.versioncmp(Puppet.version, '3.2') >= 0
- context 'Puppet >= 3.2' do
+ if Puppet::Util::Package.versioncmp(Puppet.version, '3.2') >= 0 and Puppet::PUPPETVERSION.to_i < 4
+ context 'Puppet >= 3.2 < 4' do
it 'should pass with future option set to true on future manifest' do
files = fixture_manifests(['future_syntax.pp'])
output, has_errors = subject.check(files)
@@ -131,7 +177,7 @@
expect(has_errors).to eq(false)
end
end
- context 'Puppet >= 3.7' do
+ context 'Puppet >= 3.7 < 4' do
# Certain elements of the future parser weren't added until 3.7
if Puppet::Util::Package.versioncmp(Puppet.version, '3.7') >= 0
it 'should fail on what were deprecation notices in the non-future parser' do
@@ -144,7 +190,7 @@
end
end
end
- else
+ elsif Puppet::Util::Package.versioncmp(Puppet.version, '3.2') < 0
context 'Puppet < 3.2' do
it 'should return an error that the parser option is not supported' do
files = fixture_manifests(['future_syntax.pp'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/puppet-syntax/tasks/puppet-syntax_spec.rb new/spec/puppet-syntax/tasks/puppet-syntax_spec.rb
--- old/spec/puppet-syntax/tasks/puppet-syntax_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/puppet-syntax/tasks/puppet-syntax_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +1,5 @@
require 'spec_helper'
+require 'puppet-syntax/tasks/puppet-syntax'
describe 'PuppetSyntax rake tasks' do
it 'should generate FileList of manifests relative to Rakefile' do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/puppet-syntax/templates_spec.rb new/spec/puppet-syntax/templates_spec.rb
--- old/spec/puppet-syntax/templates_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/puppet-syntax/templates_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -59,4 +59,72 @@
expect(res).to match([])
end
+
+ if Puppet::PUPPETVERSION.to_i < 4
+ context 'on Puppet < 4.0.0' do
+ it 'should throw an exception when parsing EPP files' do
+ file = fixture_templates('pass.epp')
+ expect{ subject.check(file) }.to raise_error(/Cannot validate EPP without Puppet 4/)
+ end
+
+ context "when the 'epp_only' options is set" do
+ before(:each) {
+ PuppetSyntax.epp_only = true
+ }
+
+ it 'should throw an exception for any file' do
+ file = fixture_templates('pass.erb')
+ expect{ subject.check(file) }.to raise_error(/Cannot validate EPP without Puppet 4/)
+ end
+ end
+ end
+ end
+
+ if Puppet::PUPPETVERSION.to_i >= 4
+ context 'on Puppet >= 4.0.0' do
+ it 'should return nothing from a valid file' do
+ files = fixture_templates('pass.epp')
+ res = subject.check(files)
+
+ expect(res).to match([])
+ end
+
+ it 'should catch SyntaxError' do
+ files = fixture_templates('fail_error.epp')
+ res = subject.check(files)
+
+ expect(res.size).to eq(1)
+ expect(res[0]).to match(/This Type-Name has no effect/)
+ end
+
+ it 'should read more than one valid file' do
+ files = fixture_templates(['pass.epp', 'pass_also.epp'])
+ res = subject.check(files)
+
+ expect(res).to match([])
+ end
+
+ it 'should continue after finding an error in the first file' do
+ files = fixture_templates(['fail_error.epp', 'fail_error_also.epp'])
+ res = subject.check(files)
+
+ expect(res.size).to eq(2)
+ expect(res[0]).to match(/This Type-Name has no effect/)
+ expect(res[1]).to match(/Syntax error at '}' at \S*\/fail_error_also.epp:2:4/)
+ end
+
+ context "when the 'epp_only' options is set" do
+ before(:each) {
+ PuppetSyntax.epp_only = true
+ }
+
+ it 'should process an ERB as EPP and find an error' do
+ files = fixture_templates('pass.erb')
+ res = subject.check(files)
+
+ expect(res.size).to eq(1)
+ end
+ end
+ end
+ end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/puppet-syntax_spec.rb new/spec/puppet-syntax_spec.rb
--- old/spec/puppet-syntax_spec.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/spec/puppet-syntax_spec.rb 1970-01-01 01:00:00.000000000 +0100
@@ -29,4 +29,9 @@
expect(PuppetSyntax.fail_on_deprecation_notices).to eq(false)
end
+ it 'should support forcing EPP only templates' do
+ PuppetSyntax.epp_only = true
+ expect(PuppetSyntax.epp_only).to eq(true)
+ end
+
end
1
0
Hello community,
here is the log from the commit of package libvshadow for openSUSE:Factory checked in at 2016-01-28 17:23:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvshadow (Old)
and /work/SRC/openSUSE:Factory/.libvshadow.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvshadow"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvshadow/libvshadow.changes 2015-01-30 15:04:52.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libvshadow.new/libvshadow.changes 2016-01-28 17:23:53.000000000 +0100
@@ -1,0 +2,8 @@
+Mon Jan 25 12:27:50 UTC 2016 - Greg.Freemyer(a)gmail.com
+
+- update to v0~20160110
+ * worked on Python 3 support
+ * worked on win2k3 format support
+ * introduced new function has_in_volume_data
+
+-------------------------------------------------------------------
Old:
----
libvshadow-alpha-20150106.tar.gz
New:
----
libvshadow-alpha-20160110.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvshadow.spec ++++++
--- /var/tmp/diff_new_pack.kJzmvn/_old 2016-01-28 17:23:54.000000000 +0100
+++ /var/tmp/diff_new_pack.kJzmvn/_new 2016-01-28 17:23:54.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libvshadow
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
Name: libvshadow
%define lname libvshadow1
-%define timestamp 20150106
+%define timestamp 20160110
Version: 0~%{timestamp}
Release: 0
Summary: Library to access the Volume Shadow Snapshot (VSS) format
++++++ libvshadow-alpha-20150106.tar.gz -> libvshadow-alpha-20160110.tar.gz ++++++
++++ 26196 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package bundle-lang-common for openSUSE:Factory checked in at 2016-01-28 17:23:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bundle-lang-common (Old)
and /work/SRC/openSUSE:Factory/.bundle-lang-common.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bundle-lang-common"
Changes:
--------
--- /work/SRC/openSUSE:Factory/bundle-lang-common/bundle-lang-common.changes 2016-01-03 13:27:33.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.bundle-lang-common.new/bundle-lang-common.changes 2016-01-28 17:23:50.000000000 +0100
@@ -1,0 +2,5 @@
+Mon Jan 25 10:31:05 UTC 2016 - dimstar(a)opensuse.org
+
+- Update package list.
+
+-------------------------------------------------------------------
bundle-lang-gnome.changes: same change
bundle-lang-kde.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bundle-lang-common.spec ++++++
--- /var/tmp/diff_new_pack.Sivdll/_old 2016-01-28 17:23:51.000000000 +0100
+++ /var/tmp/diff_new_pack.Sivdll/_new 2016-01-28 17:23:51.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package bundle-lang-common
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
++++++ bundle-lang-gnome.spec ++++++
++++ 1160 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/bundle-lang-common/bundle-lang-gnome.spec
++++ and /work/SRC/openSUSE:Factory/.bundle-lang-common.new/bundle-lang-gnome.spec
bundle-lang-kde.spec: same change
++++++ bundle-lang-other.spec ++++++
--- /var/tmp/diff_new_pack.Sivdll/_old 2016-01-28 17:23:51.000000000 +0100
+++ /var/tmp/diff_new_pack.Sivdll/_new 2016-01-28 17:23:51.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package bundle-lang-other
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
++++++ packages.txt ++++++
--- /var/tmp/diff_new_pack.Sivdll/_old 2016-01-28 17:23:51.000000000 +0100
+++ /var/tmp/diff_new_pack.Sivdll/_new 2016-01-28 17:23:51.000000000 +0100
@@ -58,7 +58,7 @@
dasher-lang gnome-extras
dconf-editor-lang gnome-extras
decibel-audio-player-lang gnome-extras
-deja-dup-lang gnome
+deja-dup-lang gnome-extras
devhelp-lang gnome-extras
dia-lang gnome-extras
docky-lang gnome-extras
@@ -100,14 +100,14 @@
gedit-latex-lang gnome-extras
gedit-plugins-lang gnome-extras
geeqie-lang gnome-extras
-gegl-0_2-lang gnome
+gegl-0_2-lang gnome-extras
gegl-0_3-lang gnome
genius-lang gnome-extras
gftp-common-lang gnome-extras
ghex-lang gnome-extras
giggle-lang gnome-extras
gimp-gap-lang gnome-extras
-gimp-lang gnome
+gimp-lang gnome-extras
gimp-plugin-lqr-lang gnome-extras
gimp-save-for-web-lang gnome-extras
girl-lang gnome-extras
@@ -277,11 +277,11 @@
krb5-auth-dialog-lang gnome-extras
kross-lang kde
kscreen5-lang kde
+kscreenlocker-lang kde
kservice-lang kde
ksshaskpass5-lang kde
ksysguard5-lang kde
ktexteditor-lang kde
-ktorrent-lang kde
kwallet-tools-lang kde
kwalletd5-lang kde
kwin5-lang kde
@@ -343,7 +343,7 @@
libgweather-lang gnome
libinfinity-lang gnome-extras
libiptcdata-lang gnome
-libkfbapi-lang kde
+libkgapi-lang kde
libksysguard5-lang kde
libktorrent5-lang kde
libosinfo-lang gnome
@@ -358,7 +358,7 @@
libsocialweb-lang gnome
libsoup-lang common
libwebkit2gtk3-lang gnome
-libwebkitgtk2-lang gnome
+libwebkitgtk2-lang gnome-extras
libwebkitgtk3-lang gnome
libwnck-lang gnome
libwnck2-lang gnome-extras
@@ -416,7 +416,6 @@
seahorse-sharing-lang gnome-extras
sed-lang common
shared-mime-info-lang common
-shotwell-lang gnome-extras
simple-scan-lang gnome
smuxi-engine-campfire-lang gnome-extras
smuxi-engine-irc-lang gnome-extras
1
0
Hello community,
here is the log from the commit of package cabal-rpm for openSUSE:Factory checked in at 2016-01-28 17:23:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cabal-rpm (Old)
and /work/SRC/openSUSE:Factory/.cabal-rpm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cabal-rpm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cabal-rpm/cabal-rpm.changes 2015-10-20 00:04:39.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cabal-rpm.new/cabal-rpm.changes 2016-01-28 17:23:49.000000000 +0100
@@ -1,0 +2,8 @@
+Mon Jan 25 09:20:25 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.9.9
+- drop remove_exclusivearch.patch
+- drop cabal-rpm.1 manpage, use instead link to upstream cblrpm.1
+* couple of minor improvements for SUSE packaging
+
+-------------------------------------------------------------------
Old:
----
cabal-rpm-0.9.8.tar.gz
cabal-rpm.1
New:
----
cabal-rpm-0.9.9.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cabal-rpm.spec ++++++
--- /var/tmp/diff_new_pack.dsT9st/_old 2016-01-28 17:23:50.000000000 +0100
+++ /var/tmp/diff_new_pack.dsT9st/_new 2016-01-28 17:23:50.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package cabal-rpm
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,13 @@
Name: cabal-rpm
-Version: 0.9.8
+Version: 0.9.9
Release: 0
Summary: RPM packaging tool for Haskell Cabal-based packages
License: GPL-3.0+
Group: Development/Tools/Other
Url: https://hackage.haskell.org/package/%{name}
Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.t…
-Source2: cabal-rpm.1
BuildRequires: ghc-Cabal-devel
# Begin cabal-rpm deps:
BuildRequires: ghc-directory-devel
@@ -53,16 +52,15 @@
%setup -q
%build
-%define cabal_configure_options --flags="-old-locale"
%{ghc_bin_build}
%install
%{ghc_bin_install}
install -p -m 0644 -D man/cblrpm.1 %{buildroot}%{_mandir}/man1/cblrpm.1
-install -p -m 0644 %{SOURCE2} %{buildroot}%{_mandir}/man1/
ln -s cblrpm %{buildroot}%{_bindir}/%{name}
+ln -s %{_mandir}/man1/cblrpm.1 %{buildroot}%{_mandir}/man1/%{name}.1
%files
%defattr(-,root,root,-)
++++++ cabal-rpm-0.9.8.tar.gz -> cabal-rpm-0.9.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-rpm-0.9.8/ChangeLog new/cabal-rpm-0.9.9/ChangeLog
--- old/cabal-rpm-0.9.8/ChangeLog 2015-10-08 05:36:01.000000000 +0200
+++ new/cabal-rpm-0.9.9/ChangeLog 2016-01-25 10:33:19.000000000 +0100
@@ -1,3 +1,6 @@
+* 0.9.9 (2016-01-25)
+- couple of minor improvements for SUSE packaging
+
* 0.9.8 (2015-10-08)
- better %license logic
- fix handling of versions without '.'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-rpm-0.9.8/cabal-rpm.cabal new/cabal-rpm-0.9.9/cabal-rpm.cabal
--- old/cabal-rpm-0.9.8/cabal-rpm.cabal 2015-10-08 05:36:01.000000000 +0200
+++ new/cabal-rpm-0.9.9/cabal-rpm.cabal 2016-01-25 10:33:19.000000000 +0100
@@ -1,5 +1,5 @@
Name: cabal-rpm
-Version: 0.9.8
+Version: 0.9.9
Synopsis: RPM packaging tool for Haskell Cabal-based packages
Description:
This package provides a RPM packaging tool for Haskell Cabal-based packages.
@@ -17,7 +17,7 @@
Author: Jens Petersen <juhp(a)community.haskell.org>, Bryan O'Sullivan <bos(a)serpentine.com>
Maintainer: Jens Petersen <petersen(a)fedoraproject.org>
Copyright: 2007-2008 Bryan O'Sullivan <bos(a)serpentine.com>,
- 2012-2015 Jens Petersen <petersen(a)fedoraproject.org>
+ 2012-2016 Jens Petersen <petersen(a)fedoraproject.org>
Category: Distribution
Build-type: Simple
Extra-source-files: README.md ChangeLog man/cblrpm.1.md man/cblrpm.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-rpm-0.9.8/src/Commands/Spec.hs new/cabal-rpm-0.9.9/src/Commands/Spec.hs
--- old/cabal-rpm-0.9.8/src/Commands/Spec.hs 2015-10-08 05:36:01.000000000 +0200
+++ new/cabal-rpm-0.9.9/src/Commands/Spec.hs 2016-01-25 10:33:19.000000000 +0100
@@ -3,7 +3,7 @@
-- |
-- Module : Commands.Spec
-- Copyright : (C) 2007-2008 Bryan O'Sullivan
--- (C) 2012-2015 Jens Petersen
+-- (C) 2012-2016 Jens Petersen
--
-- Maintainer : Jens Petersen <petersen(a)fedoraproject.org>
-- Stability : alpha
@@ -32,7 +32,7 @@
import Data.List (groupBy, intercalate, isPrefixOf, isSuffixOf,
sort, (\\))
import Data.Maybe (fromMaybe)
-import Data.Time.Clock (UTCTime, getCurrentTime)
+import Data.Time.Clock (getCurrentTime)
import Data.Time.Format (formatTime)
import Data.Version (showVersion)
@@ -58,13 +58,15 @@
import qualified Paths_cabal_rpm (version)
-defaultRelease :: FilePath -> UTCTime -> IO String
-defaultRelease cabalPath now = do
+defaultRelease :: FilePath -> Distro -> IO String
+defaultRelease cabalPath distro = do
let pkgDir = takeDirectory cabalPath
scmRepo <- isScmDir pkgDir
- return $ if scmRepo
- then formatTime defaultTimeLocale "0.%Y%m%d" now
- else "1"
+ if scmRepo
+ then do
+ now <- getCurrentTime
+ return $ formatTime defaultTimeLocale "0.%Y%m%d" now
+ else return $ if (distro == SUSE) then "0" else "1"
rstrip :: (Char -> Bool) -> String -> String
rstrip p = reverse . dropWhile p . reverse
@@ -80,15 +82,11 @@
verbose = rpmVerbosity flags
hasExec = hasExes pkgDesc
hasLib = hasLibs pkgDesc
- now <- getCurrentTime
- defRelease <- defaultRelease cabalPath now
(pkgname, binlib) <- getPkgName mspec pkgDesc (rpmBinary flags)
let pkg_name = if pkgname == name then "%{name}" else "%{pkg_name}"
basename | binlib = "%{pkg_name}"
| hasExecPkg = name
| otherwise = "ghc-%{pkg_name}"
- version = packageVersion pkg
- release = fromMaybe defRelease (rpmRelease flags)
specFile = fromMaybe "" mdest </> pkgname ++ ".spec"
hasExecPkg = binlib || (hasExec && not hasLib)
-- run commands before opening file to prevent empty file on error
@@ -119,6 +117,7 @@
if distro /= SUSE
then put "# https://fedoraproject.org/wiki/Packaging:Haskell"
else do
+ now <- getCurrentTime
let year = formatTime defaultTimeLocale "%Y" now
put "#"
put $ "# spec file for package " ++ pkgname
@@ -178,6 +177,9 @@
-- putDef "debug_package" "%{nil}"
-- putNewline
+ defRelease <- defaultRelease cabalPath distro
+ let version = packageVersion pkg
+ release = fromMaybe defRelease (rpmRelease flags)
putHdr "Name" (if binlib then "%{pkg_name}" else basename)
putHdr "Version" version
putHdr "Release" $ release ++ (if distro == SUSE then [] else "%{?dist}")
@@ -205,7 +207,8 @@
unless (null $ alldeps ++ extraTestDeps) $ do
put "# Begin cabal-rpm deps:"
mapM_ (putHdr "BuildRequires") alldeps
- when (any (\ d -> d `elem` map showDep ["template-haskell", "hamlet"]) deps) $
+ when (distro /= SUSE &&
+ any (\ d -> d `elem` map showDep ["template-haskell", "hamlet"]) deps) $
putHdr "ExclusiveArch" "%{ghc_arches_with_ghci}"
unless (null extraTestDeps) $ do
put "%if %{with tests}"
@@ -349,6 +352,7 @@
put "%changelog"
unless (distro == SUSE) $ do
+ now <- getCurrentTime
let date = formatTime defaultTimeLocale "%a %b %e %Y" now
put $ "*" +-+ date +-+ "Fedora Haskell SIG <haskell(a)lists.fedoraproject.org> - " ++ version ++ "-" ++ release
put $ "- spec file generated by cabal-rpm-" ++ showVersion Paths_cabal_rpm.version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-rpm-0.9.8/src/Dependencies.hs new/cabal-rpm-0.9.9/src/Dependencies.hs
--- old/cabal-rpm-0.9.8/src/Dependencies.hs 2015-10-08 05:36:01.000000000 +0200
+++ new/cabal-rpm-0.9.9/src/Dependencies.hs 2016-01-25 10:33:19.000000000 +0100
@@ -1,6 +1,6 @@
-- |
-- Module : Dependencies
--- Copyright : (C) 2012-2015 Jens Petersen
+-- Copyright : (C) 2012-2016 Jens Petersen
--
-- Maintainer : Jens Petersen <petersen(a)fedoraproject.org>
-- Stability : alpha
@@ -123,7 +123,7 @@
-> String -- ^self
-> [String] -- ^depends
testsuiteDependencies pkgDesc self =
- map showDep . delete self . filter excludedPkgs . nub . map depName $ concatMap targetBuildDepends $ map testBuildInfo $ testSuites pkgDesc
+ map showDep . delete self . filter excludedPkgs . nub . map depName $ concatMap (targetBuildDepends . testBuildInfo) (testSuites pkgDesc)
missingPackages :: PackageDescription -> IO [String]
missingPackages pkgDesc = do
1
0
Hello community,
here is the log from the commit of package wrk for openSUSE:Factory checked in at 2016-01-28 17:23:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wrk (Old)
and /work/SRC/openSUSE:Factory/.wrk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wrk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/wrk/wrk.changes 2015-08-05 06:51:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.wrk.new/wrk.changes 2016-01-28 17:23:48.000000000 +0100
@@ -1,0 +2,5 @@
+Mon Jan 25 07:46:48 UTC 2016 - mpluskal(a)suse.com
+
+- Install to /usr/bin (boo#963355)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wrk.spec ++++++
--- /var/tmp/diff_new_pack.hYHmZf/_old 2016-01-28 17:23:49.000000000 +0100
+++ /var/tmp/diff_new_pack.hYHmZf/_new 2016-01-28 17:23:49.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package wrk
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -48,12 +48,12 @@
make %{?_smp_mflags} OPTFLAGS="%{optflags}"
%install
-install -D -m 0755 wrk %{buildroot}%{_sbindir}/wrk
+install -D -m 0755 wrk %{buildroot}%{_bindir}/wrk
%files
%defattr(-,root,root)
%doc LICENSE README NOTICE
%doc scripts/
-%{_sbindir}/wrk
+%{_bindir}/wrk
%changelog
1
0
Hello community,
here is the log from the commit of package 3omns for openSUSE:Factory checked in at 2016-01-28 17:22:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/3omns (Old)
and /work/SRC/openSUSE:Factory/.3omns.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "3omns"
Changes:
--------
--- /work/SRC/openSUSE:Factory/3omns/3omns.changes 2015-09-30 05:52:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.3omns.new/3omns.changes 2016-01-28 17:23:47.000000000 +0100
@@ -1,0 +2,23 @@
+Sat Jan 23 11:29:00 UTC 2016 - nemysis(a)openSUSE.org
+
+- Recreate tarball, new GitHub commit
+ Please look 'git log' and announce message:
+
+ * Add bot.lua to dist
+
+ * Fixed some bot AI bugs
+ * Revamped networking code to add reliability
+ * Added the -R command line option to print resources path
+
+- license update: GPL-3.0+ No indication that this is GPL-3.0 (only)
+- Add BuildRequires for bitstream-vera-fonts
+- Add Requires for bitstream-vera-fonts, thanks dstoecker
+- Replace bundled font with a symlink to an identical system font
+- Remove COPYING.font from Documentation
+
+-------------------------------------------------------------------
+Fri Jan 1 12:04:44 UTC 2016 - rpm(a)fthiessen.de
+
+- Fixed lua dependencies so it will also build on openSUSE <= 13.2
+
+-------------------------------------------------------------------
Old:
----
3omns-0.1+git-21292f0.tar.bz2
New:
----
3omns-0.1+git-ded6410.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ 3omns.spec ++++++
--- /var/tmp/diff_new_pack.pw09HU/_old 2016-01-28 17:23:48.000000000 +0100
+++ /var/tmp/diff_new_pack.pw09HU/_new 2016-01-28 17:23:48.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package 3omns
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,12 +20,12 @@
Version: 0.1
Release: 0
Summary: Old-school Arcade-style Tile-based Bomb-dropping Deathmatch Game
-License: GPL-3.0
+License: GPL-3.0+
Group: Amusements/Games/Action/Arcade
Url: https://chazomaticus.github.io/3omns/
# Downloaded from https://github.com/chazomaticus/3omns
# Packed as tar.bz2
-Source0: %{name}-%{version}+git-21292f0.tar.bz2
+Source0: %{name}-%{version}+git-ded6410.tar.bz2
%if 0%{?suse_version}
BuildRequires: fdupes
BuildRequires: hicolor-icon-theme
@@ -34,19 +34,21 @@
BuildRequires: asciidoc
BuildRequires: autoconf
BuildRequires: automake
+BuildRequires: bitstream-vera-fonts
BuildRequires: docbook-xsl-stylesheets
BuildRequires: docbook_5
BuildRequires: glibc-devel
BuildRequires: libxml2-devel
BuildRequires: libxslt-devel
-BuildRequires: pkgconfig(SDL2_image)
-BuildRequires: pkgconfig(SDL2_ttf)
%if 0%{?suse_version} > 1320
BuildRequires: lua52-devel
%else
-BuildRequires: pkgconfig(lua)
+BuildRequires: lua-devel >= 5.2
%endif
+BuildRequires: pkgconfig(SDL2_image)
+BuildRequires: pkgconfig(SDL2_ttf)
BuildRequires: pkgconfig(sdl2)
+Requires: bitstream-vera-fonts
%description
3omns is an old-school arcade-style tile-based bomb-dropping deathmatch game.
@@ -65,6 +67,10 @@
%install
%make_install
+# Use system fonts instead of bundling our own
+rm -f %{buildroot}%{_datadir}/%{name}/ttf/Vera.ttf
+ln -s ../../fonts/truetype/Vera.ttf %{buildroot}%{_datadir}/%{name}/ttf/Vera.ttf
+
%if 0%{?suse_version}
%suse_update_desktop_file %{name}
%fdupes -s %{buildroot}%{_prefix}
@@ -72,7 +78,7 @@
%files
%defattr(-,root,root,-)
-%doc COPYING COPYING.font NEWS README
+%doc COPYING NEWS README
%{_bindir}/%{name}
%{_mandir}/man6/%{name}.6%{ext_man}
%{_datadir}/applications/%{name}.desktop
++++++ 3omns-0.1+git-21292f0.tar.bz2 -> 3omns-0.1+git-ded6410.tar.bz2 ++++++
1
0
Hello community,
here is the log from the commit of package edgar for openSUSE:Factory checked in at 2016-01-28 17:22:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/edgar (Old)
and /work/SRC/openSUSE:Factory/.edgar.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "edgar"
Changes:
--------
--- /work/SRC/openSUSE:Factory/edgar/edgar.changes 2015-12-09 22:15:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.edgar.new/edgar.changes 2016-01-28 17:23:42.000000000 +0100
@@ -1,0 +2,7 @@
+Sat Jan 23 19:08:45 UTC 2016 - nemysis(a)openSUSE.org
+
+- Update to 1.23, announce message:
+
+ * Updated French and German translations
+
+-------------------------------------------------------------------
Old:
----
edgar-1.22.tar.gz
New:
----
edgar-1.23.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ edgar.spec ++++++
--- /var/tmp/diff_new_pack.gAoNeP/_old 2016-01-28 17:23:47.000000000 +0100
+++ /var/tmp/diff_new_pack.gAoNeP/_new 2016-01-28 17:23:47.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package edgar
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: edgar
-Version: 1.22
+Version: 1.23
Release: 0
Summary: 2D platform game with a persistent world
License: GPL-2.0
@@ -70,7 +70,7 @@
%endif
%files -f %name.lang
-%defattr(-,root,root)
+%defattr(-,root,root,-)
%doc doc/*
%attr(-,root,games) %{_bindir}/%{name}
%{_mandir}/man6/%{name}.6%{ext_man}
++++++ edgar-1.22.tar.gz -> edgar-1.23.tar.gz ++++++
/work/SRC/openSUSE:Factory/edgar/edgar-1.22.tar.gz /work/SRC/openSUSE:Factory/.edgar.new/edgar-1.23.tar.gz differ: char 29, line 2
1
0
Hello community,
here is the log from the commit of package chromium for openSUSE:Factory checked in at 2016-01-28 17:22:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chromium (Old)
and /work/SRC/openSUSE:Factory/.chromium.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium"
Changes:
--------
--- /work/SRC/openSUSE:Factory/chromium/chromium.changes 2016-01-01 19:50:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.chromium.new/chromium.changes 2016-01-28 17:23:08.000000000 +0100
@@ -1,0 +2,21 @@
+Fri Jan 22 19:08:56 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to Chromium 48.0.2564.82
+ * Security fixes:
+ - CVE-2016-1612: Bad cast in V8 (boo#963184)
+ - CVE-2016-1613: Use-after-free in PDFium (boo#963185)
+ - CVE-2016-1614: Information leak in Blink (boo#963186)
+ - CVE-2016-1615: Origin confusion in Omnibox (boo#963187)
+ - CVE-2016-1616: URL Spoofing (boo#963188)
+ - CVE-2016-1617: History sniffing with HSTS and CSP (boo#963189)
+ - CVE-2016-1618: Weak random number generator in Blink (boo#963190)
+ - CVE-2016-1619: Out-of-bounds read in PDFium (boo#963191)
+ - CVE-2016-1620 chromium-browser: various fixes (boo#963192)
+
+-------------------------------------------------------------------
+Thu Jan 14 15:22:38 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to Chromium 47.0.2526.111.
+ * No changelog available
+
+-------------------------------------------------------------------
Old:
----
chromium-47.0.2526.106.tar.xz
New:
----
chromium-48.0.2564.82.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ chromium.spec ++++++
--- /var/tmp/diff_new_pack.qRGV3j/_old 2016-01-28 17:23:38.000000000 +0100
+++ /var/tmp/diff_new_pack.qRGV3j/_new 2016-01-28 17:23:38.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package chromium
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
%bcond_without libva
Name: chromium
-Version: 47.0.2526.106
+Version: 48.0.2564.82
Release: 0
Summary: Google's opens source browser project
License: BSD-3-Clause and LGPL-2.1+
++++++ chromium-47.0.2526.106.tar.xz -> chromium-48.0.2564.82.tar.xz ++++++
/work/SRC/openSUSE:Factory/chromium/chromium-47.0.2526.106.tar.xz /work/SRC/openSUSE:Factory/.chromium.new/chromium-48.0.2564.82.tar.xz differ: char 27, line 1
++++++ chromium-enable-vaapi.patch ++++++
++++ 1679 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/chromium/chromium-enable-vaapi.patch
++++ and /work/SRC/openSUSE:Factory/.chromium.new/chromium-enable-vaapi.patch
1
0
28 Jan '16
Hello community,
here is the log from the commit of package rubygem-exception_notification for openSUSE:Factory checked in at 2016-01-28 17:22:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-exception_notification (Old)
and /work/SRC/openSUSE:Factory/.rubygem-exception_notification.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-exception_notification"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-exception_notification/rubygem-exception_notification.changes 2016-01-12 16:12:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-exception_notification.new/rubygem-exception_notification.changes 2016-01-28 17:22:57.000000000 +0100
@@ -1,0 +2,20 @@
+Thu Jan 21 05:34:37 UTC 2016 - coolo(a)suse.com
+
+- updated to version 4.1.4
+ see installed CHANGELOG.rdoc
+
+-------------------------------------------------------------------
+Wed Dec 23 05:33:29 UTC 2015 - coolo(a)suse.com
+
+- updated to version 4.1.3
+ see installed CHANGELOG.rdoc
+
+ == undefined
+
+ * enhancements
+ * Add a way to have a backtrace callback on notifiers (by @pcboy)
+
+ * bug fixes
+ * Fix incompatible character encodings error (by @san650)
+
+-------------------------------------------------------------------
Old:
----
exception_notification-4.1.2.gem
New:
----
exception_notification-4.1.4.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-exception_notification.spec ++++++
--- /var/tmp/diff_new_pack.mgbyWJ/_old 2016-01-28 17:22:58.000000000 +0100
+++ /var/tmp/diff_new_pack.mgbyWJ/_new 2016-01-28 17:22:58.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-exception_notification
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
#
Name: rubygem-exception_notification
-Version: 4.1.2
+Version: 4.1.4
Release: 0
%define mod_name exception_notification
%define mod_full_name %{mod_name}-%{version}
++++++ exception_notification-4.1.2.gem -> exception_notification-4.1.4.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.rdoc new/CHANGELOG.rdoc
--- old/CHANGELOG.rdoc 2015-12-04 21:45:42.000000000 +0100
+++ new/CHANGELOG.rdoc 2016-01-07 22:21:05.000000000 +0100
@@ -1,3 +1,17 @@
+== 4.1.4
+
+* bug fixes
+ * HTML-escape exception messages sent to hipchat
+ * Send the correct options in send_notice
+
+== 4.1.3
+
+* enhancements
+ * Add a way to have a backtrace callback on notifiers (by @pcboy)
+
+* bug fixes
+ * Fix incompatible character encodings error (by @san650)
+
== 4.1.2
* enhancements
* Change format of Slack notifications (by @eldano)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2015-12-04 21:45:42.000000000 +0100
+++ new/README.md 2016-01-07 22:21:05.000000000 +0100
@@ -7,26 +7,21 @@
**THIS README IS FOR THE MASTER BRANCH AND REFLECTS THE WORK CURRENTLY EXISTING ON THE MASTER BRANCH. IF YOU ARE WISHING TO USE A NON-MASTER BRANCH OF EXCEPTION NOTIFICATION, PLEASE CONSULT THAT BRANCH'S README AND NOT THIS ONE.**
--
-
-The Exception Notification gem provides a set of [notifiers](#notifiers) for sending notifications when errors occur in a Rack/Rails application.
-
-The built-in notifiers can deliver notifications by [email](#email-notifier), [campfire rooms](#campfire-notifier) or via [webhooks](#webhook-notifier).
+---
+The Exception Notification gem provides a set of [notifiers](#notifiers) for sending notifications when errors occur in a Rack/Rails application. The built-in notifiers can deliver notifications by [email](#email-notifier), [Campfire](#campfire-notifier), [HipChat](#hipchat-notifier), [Slack](#slack-notifier), [IRC](#irc-notifier) or via custom [WebHooks](#webhook-notifier).
There's a great [Railscast about Exception Notification](http://railscasts.com/episodes/104-exception-notifications-re… you can see that may help you getting started.
[Follow us on Twitter](https://twitter.com/exception_notif) to get updates and notices about new releases.
-
## Requirements
-* Ruby 1.9.3 or greater
-* Rails 3.1 or greater, Sinatra or another Rack-based application.
+* Ruby 2.0 or greater
+* Rails 4.0 or greater, Sinatra or another Rack-based application.
For previous releases, please checkout [this](#versions).
-
## Getting Started
Add the following line to your application's Gemfile:
@@ -35,7 +30,9 @@
gem 'exception_notification'
```
-As of Rails 3 ExceptionNotification is used as a rack middleware, or in the environment you want it to run. In most cases you would want ExceptionNotification to run on production. Thus, you can make it work by putting the following lines in your `config/environments/production.rb`:
+### Rails
+
+ExceptionNotification is used as a rack middleware, or in the environment you want it to run. In most cases you would want ExceptionNotification to run on production. Thus, you can make it work by putting the following lines in your `config/environments/production.rb`:
```ruby
Rails.application.config.middleware.use ExceptionNotification::Rack,
@@ -46,24 +43,38 @@
}
```
-> **Note**: In order to enable delivery notifications by email make sure you have [ActionMailer configured](#actionmailer-configuration).
+**Note**: In order to enable delivery notifications by email make sure you have [ActionMailer configured](#actionmailer-configuration).
+### Rack/Sinatra
In order to use ExceptionNotification with Sinatra, please take a look in the [example application](https://github.com/smartinez87/exception_notification/tree/mas….
+## Notifiers
+
+ExceptionNotification relies on notifiers to deliver notifications when errors occur in your applications. By default, six notifiers are available:
+
+* [Campfire notifier](#campfire-notifier)
+* [Email notifier](#email-notifier)
+* [HipChat notifier](#hipchat-notifier)
+* [IRC notifier](#irc-notifier)
+* [Slack notifier](#slack-notifier)
+* [WebHook notifier](#webhook-notifier)
-### Upgrading to 4.x version
+But, you also can easily implement your own [custom notifier](#custom-notifier).
-As of 4.x version the configuration syntax has changed. All email related options MUST BE nested under the `:email` key. Thus, previous configuration like:
+### Campfire notifier
+
+This notifier sends notifications to your Campfire room.
+
+#### Usage
+
+Just add the [tinder](https://github.com/collectiveidea/tinder) gem to your `Gemfile`:
```ruby
-Rails.application.config.middleware.use ExceptionNotifier,
- :email_prefix => "[PREFIX] ",
- :sender_address => %{"notifier" <notifier(a)example.com>},
- :exception_recipients => %w{exceptions(a)example.com}
+gem 'tinder'
```
-becomes:
+To configure it, you need to set the `subdomain`, `token` and `room_name` options, like this:
```ruby
Rails.application.config.middleware.use ExceptionNotification::Rack,
@@ -71,21 +82,42 @@
:email_prefix => "[PREFIX] ",
:sender_address => %{"notifier" <notifier(a)example.com>},
:exception_recipients => %w{exceptions(a)example.com}
+ },
+ :campfire => {
+ :subdomain => 'my_subdomain',
+ :token => 'my_token',
+ :room_name => 'my_room'
}
```
-Beside that, the rack middleware was renamed to `ExceptionNotification::Rack`.
+#### Options
-## Notifiers
+##### subdomain
-ExceptionNotification relies on notifiers to deliver notifications when errors occur in your applications. By default, three notifiers are available: [email notifier](#email-notifier), [campfire notifier](#campfire-notifier) and [webhook notifier](#webhook-notifier). But, you also can easily implement your own [custom notifier](#custom-notifier).
+*String, required*
+Your subdomain at Campfire.
+
+##### room_name
+
+*String, required*
+
+The Campfire room where the notifications must be published to.
+
+##### token
+
+*String, required*
+
+The API token to allow access to your Campfire account.
+
+
+For more options to set Campfire, like _ssl_, check [here](https://github.com/collectiveidea/tinder/blob/master/lib/tinder/campf….
### Email notifier
The Email notifier sends notifications by email. The notifications/emails sent includes information about the current request, session, and environment, and also gives a backtrace of the exception.
-After an exception notification has been delivered the rack environment variable 'exception_notifier.delivered' will be set to true.
+After an exception notification has been delivered the rack environment variable `exception_notifier.delivered` will be set to true.
#### ActionMailer configuration
@@ -110,21 +142,18 @@
Who the message is from.
-
##### exception_recipients
*String/Array of strings, default: []*
Who the message is destined for, can be a string of addresses, or an array of addresses.
-
##### email_prefix
*String, default: [ERROR]*
The subject's prefix of the message.
-
##### sections
*Array of strings, default: %w(request session environment backtrace)*
@@ -174,7 +203,6 @@
In the above case, `@document` and `@person` would be made available to the email renderer, allowing your new section(s) to access and display them. See the existing sections defined by the plugin for examples of how to write your own.
-
##### background_sections
*Array of strings, default: %w(backtrace data)*
@@ -191,7 +219,6 @@
}
```
-
##### email_headers
*Hash of strings, default: {}*
@@ -208,28 +235,24 @@
}
```
-
##### verbose_subject
*Boolean, default: true*
If enabled, include the exception message in the subject. Use `:verbose_subject => false` to exclude it.
-
##### normalize_subject
*Boolean, default: false*
If enabled, remove numbers from subject so they thread as a single one. Use `:normalize_subject => true` to enable it.
-
##### email_format
*Symbol, default: :text*
By default, ExceptionNotification sends emails in plain text, in order to sends multipart notifications (aka HTML emails) use `:email_format => :html`.
-
##### delivery_method
*Symbol, default: :smtp*
@@ -267,73 +290,18 @@
A complete list of `smtp_settings` options can be found in the [ActionMailer Configuration documentation](http://api.rubyonrails.org/classes/ActionMailer/Base.html#cl….
-
##### mailer_parent
*String, default: ActionMailer::Base*
The parent mailer which ExceptionNotification mailer inherit from.
-
##### deliver_with
*Symbol, default: :deliver_now
The method name to send emalis using ActionMailer.
-
-### Campfire notifier
-
-This notifier sends notifications to your Campfire room.
-
-#### Usage
-
-Just add the [tinder](https://github.com/collectiveidea/tinder) gem to your `Gemfile`:
-
-```ruby
-gem 'tinder'
-```
-
-To configure it, you need to set the `subdomain`, `token` and `room_name` options, like this:
-
-```ruby
-Rails.application.config.middleware.use ExceptionNotification::Rack,
- :email => {
- :email_prefix => "[PREFIX] ",
- :sender_address => %{"notifier" <notifier(a)example.com>},
- :exception_recipients => %w{exceptions(a)example.com}
- },
- :campfire => {
- :subdomain => 'my_subdomain',
- :token => 'my_token',
- :room_name => 'my_room'
- }
-```
-
-#### Options
-
-##### subdomain
-
-*String, required*
-
-Your subdomain at Campfire.
-
-##### room_name
-
-*String, required*
-
-The Campfire room where the notifications must be published to.
-
-##### token
-
-*String, required*
-
-The API token to allow access to your Campfire account.
-
-
-For more options to set Campfire, like _ssl_, check [here](https://github.com/collectiveidea/tinder/blob/master/lib/tinder/campf….
-
-
### HipChat notifier
This notifier sends notifications to your Hipchat room.
@@ -395,67 +363,6 @@
For all options & possible values see [Hipchat API](https://www.hipchat.com/docs/api/method/rooms/message).
-### Webhook notifier
-
-This notifier ships notifications over the HTTP protocol.
-
-#### Usage
-
-Just add the [HTTParty](https://github.com/jnunemaker/httparty) gem to your `Gemfile`:
-
-```ruby
-gem 'httparty'
-```
-
-To configure it, you need to set the `url` option, like this:
-
-```ruby
-Rails.application.config.middleware.use ExceptionNotification::Rack,
- :email => {
- :email_prefix => "[PREFIX] ",
- :sender_address => %{"notifier" <notifier(a)example.com>},
- :exception_recipients => %w{exceptions(a)example.com}
- },
- :webhook => {
- :url => 'http://domain.com:5555/hubot/path'
- }
-```
-
-By default, the WebhookNotifier will call the URLs using the POST method. But, you can change this using the `http_method` option.
-
-```ruby
-Rails.application.config.middleware.use ExceptionNotification::Rack,
- :email => {
- :email_prefix => "[PREFIX] ",
- :sender_address => %{"notifier" <notifier(a)example.com>},
- :exception_recipients => %w{exceptions(a)example.com}
- },
- :webhook => {
- :url => 'http://domain.com:5555/hubot/path',
- :http_method => :get
- }
-```
-
-Besides the `url` and `http_method` options, all the other options are passed directly to HTTParty. Thus, if the HTTP server requires authentication, you can include the following options:
-
-```ruby
-Rails.application.config.middleware.use ExceptionNotification::Rack,
- :email => {
- :email_prefix => "[PREFIX] ",
- :sender_address => %{"notifier" <notifier(a)example.com>},
- :exception_recipients => %w{exceptions(a)example.com}
- },
- :webhook => {
- :url => 'http://domain.com:5555/hubot/path',
- :basic_auth => {
- :username => 'alice',
- :password => 'password'
- }
- }
-```
-
-For more HTTParty options, check out the [documentation](https://github.com/jnunemaker/httparty).
-
### IRC notifier
This notifier sends notifications to an IRC channel using the carrier-pigeon gem.
@@ -638,6 +545,68 @@
Contains additional payload for a message (e.g avatar, attachments, etc). See [slack-notifier](https://github.com/stevenosloan/slack-notifier#additional-p… for more information.. Default: '{}'
+
+### WebHook notifier
+
+This notifier ships notifications over the HTTP protocol.
+
+#### Usage
+
+Just add the [HTTParty](https://github.com/jnunemaker/httparty) gem to your `Gemfile`:
+
+```ruby
+gem 'httparty'
+```
+
+To configure it, you need to set the `url` option, like this:
+
+```ruby
+Rails.application.config.middleware.use ExceptionNotification::Rack,
+ :email => {
+ :email_prefix => "[PREFIX] ",
+ :sender_address => %{"notifier" <notifier(a)example.com>},
+ :exception_recipients => %w{exceptions(a)example.com}
+ },
+ :webhook => {
+ :url => 'http://domain.com:5555/hubot/path'
+ }
+```
+
+By default, the WebhookNotifier will call the URLs using the POST method. But, you can change this using the `http_method` option.
+
+```ruby
+Rails.application.config.middleware.use ExceptionNotification::Rack,
+ :email => {
+ :email_prefix => "[PREFIX] ",
+ :sender_address => %{"notifier" <notifier(a)example.com>},
+ :exception_recipients => %w{exceptions(a)example.com}
+ },
+ :webhook => {
+ :url => 'http://domain.com:5555/hubot/path',
+ :http_method => :get
+ }
+```
+
+Besides the `url` and `http_method` options, all the other options are passed directly to HTTParty. Thus, if the HTTP server requires authentication, you can include the following options:
+
+```ruby
+Rails.application.config.middleware.use ExceptionNotification::Rack,
+ :email => {
+ :email_prefix => "[PREFIX] ",
+ :sender_address => %{"notifier" <notifier(a)example.com>},
+ :exception_recipients => %w{exceptions(a)example.com}
+ },
+ :webhook => {
+ :url => 'http://domain.com:5555/hubot/path',
+ :basic_auth => {
+ :username => 'alice',
+ :password => 'password'
+ }
+ }
+```
+
+For more HTTParty options, check out the [documentation](https://github.com/jnunemaker/httparty).
+
### Custom notifier
Simply put, notifiers are objects which respond to `#call(exception, options)` method. Thus, a lambda can be used as a notifier as follow:
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exception_notification.gemspec new/exception_notification.gemspec
--- old/exception_notification.gemspec 2015-12-04 21:45:42.000000000 +0100
+++ new/exception_notification.gemspec 2016-01-07 22:21:05.000000000 +0100
@@ -1,8 +1,7 @@
Gem::Specification.new do |s|
s.name = 'exception_notification'
- s.version = '4.1.2'
+ s.version = '4.1.4'
s.authors = ["Jamis Buck", "Josh Peek"]
- s.date = %q{2015-12-04}
s.summary = "Exception notification for Rails apps"
s.homepage = "http://smartinez87.github.com/exception_notification"
s.email = "smartinez87(a)gmail.com"
@@ -21,7 +20,7 @@
s.add_development_dependency "rails", "~> 4.0"
s.add_development_dependency "resque", "~> 1.2.0"
- # Sidekiq 3.2.2 does not support Ruby 1.9.
+ # Sidekiq 3.2.2 does not support Ruby 1.9.
s.add_development_dependency "sidekiq", "~> 3.0.0", "< 3.2.2"
s.add_development_dependency "tinder", "~> 1.8"
s.add_development_dependency "httparty", "~> 0.10.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exception_notifier/base_notifier.rb new/lib/exception_notifier/base_notifier.rb
--- old/lib/exception_notifier/base_notifier.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/exception_notifier/base_notifier.rb 2016-01-07 22:21:05.000000000 +0100
@@ -0,0 +1,25 @@
+module ExceptionNotifier
+ class BaseNotifier
+ attr_accessor :base_options
+
+ def initialize(options={})
+ @base_options = options
+ end
+
+ def send_notice(exception, options, message, message_opts=nil)
+ _pre_callback(exception, options, message, message_opts)
+ result = yield(message, message_opts)
+ _post_callback(exception, options, message, message_opts)
+ result
+ end
+
+ def _pre_callback(exception, options, message, message_opts)
+ @base_options[:pre_callback].call(options, self, exception.backtrace, message, message_opts) if @base_options[:pre_callback].respond_to?(:call)
+ end
+
+ def _post_callback(exception, options, message, message_opts)
+ @base_options[:post_callback].call(options, self, exception.backtrace, message, message_opts) if @base_options[:post_callback].respond_to?(:call)
+ end
+
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exception_notifier/campfire_notifier.rb new/lib/exception_notifier/campfire_notifier.rb
--- old/lib/exception_notifier/campfire_notifier.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/lib/exception_notifier/campfire_notifier.rb 2016-01-07 22:21:05.000000000 +0100
@@ -1,11 +1,12 @@
module ExceptionNotifier
- class CampfireNotifier
+ class CampfireNotifier < BaseNotifier
attr_accessor :subdomain
attr_accessor :token
attr_accessor :room
def initialize(options)
+ super
begin
subdomain = options.delete(:subdomain)
room_name = options.delete(:room_name)
@@ -20,7 +21,9 @@
if active?
message = "A new exception occurred: '#{exception.message}'"
message += " on '#{exception.backtrace.first}'" if exception.backtrace
- @room.paste message message
+ send_notice(exception, options, message) do |msg, _|
+ @room.paste msg
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exception_notifier/email_notifier.rb new/lib/exception_notifier/email_notifier.rb
--- old/lib/exception_notifier/email_notifier.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/lib/exception_notifier/email_notifier.rb 2016-01-07 22:21:05.000000000 +0100
@@ -4,7 +4,9 @@
require 'pp'
module ExceptionNotifier
- class EmailNotifier < Struct.new(:sender_address, :exception_recipients,
+ class EmailNotifier < BaseNotifier
+ attr_accessor(:sender_address, :exception_recipients,
+ :pre_callback, :post_callback,
:email_prefix, :email_format, :sections, :background_sections,
:verbose_subject, :normalize_subject, :delivery_method, :mailer_settings,
:email_headers, :mailer_parent, :template_path, :deliver_with)
@@ -78,6 +80,12 @@
end
end
+ helper_method :safe_encode
+
+ def safe_encode(value)
+ value.encode("utf-8", invalid: :replace, undef: :replace, replace: "_")
+ end
+
def html_mail?
@options[:email_format] == :html
end
@@ -115,20 +123,22 @@
end
def initialize(options)
+ super
delivery_method = (options[:delivery_method] || :smtp)
mailer_settings_key = "#{delivery_method}_settings".to_sym
options[:mailer_settings] = options.delete(mailer_settings_key)
- super(*options.reverse_merge(EmailNotifier.default_options).values_at(
+ options.reverse_merge(EmailNotifier.default_options).select{|k,v|[
:sender_address, :exception_recipients,
+ :pre_callback, :post_callback,
:email_prefix, :email_format, :sections, :background_sections,
:verbose_subject, :normalize_subject, :delivery_method, :mailer_settings,
- :email_headers, :mailer_parent, :template_path, :deliver_with))
+ :email_headers, :mailer_parent, :template_path, :deliver_with].include?(k)}.each{|k,v| send("#{k}=", v)}
end
def options
@options ||= {}.tap do |opts|
- each_pair { |k,v| opts[k] = v }
+ self.instance_variables.each { |var| opts[var[1..-1].to_sym] = self.instance_variable_get(var) }
end
end
@@ -147,9 +157,13 @@
env = options[:env]
default_options = self.options
if env.nil?
- mailer.background_exception_notification(exception, options, default_options)
+ send_notice(exception, options, nil, default_options) do |_, default_opts|
+ mailer.background_exception_notification(exception, options, default_opts)
+ end
else
- mailer.exception_notification(env, exception, options, default_options)
+ send_notice(exception, options, nil, default_options) do |_, default_opts|
+ mailer.exception_notification(env, exception, options, default_opts)
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exception_notifier/hipchat_notifier.rb new/lib/exception_notifier/hipchat_notifier.rb
--- old/lib/exception_notifier/hipchat_notifier.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/lib/exception_notifier/hipchat_notifier.rb 2016-01-07 22:21:05.000000000 +0100
@@ -1,11 +1,12 @@
module ExceptionNotifier
- class HipchatNotifier
+ class HipchatNotifier < BaseNotifier
attr_accessor :from
attr_accessor :room
attr_accessor :message_options
def initialize(options)
+ super
begin
api_token = options.delete(:api_token)
room_name = options.delete(:room_name)
@@ -15,7 +16,7 @@
@from = options.delete(:from) || 'Exception'
@room = HipChat::Client.new(api_token, opts)[room_name]
@message_template = options.delete(:message_template) || ->(exception) {
- msg = "A new exception occurred: '#{exception.message}'"
+ msg = "A new exception occurred: '#{Rack::Utils.escape_html(exception.message)}'"
msg += " on '#{exception.backtrace.first}'" if exception.backtrace
msg
}
@@ -30,7 +31,9 @@
return if !active?
message = @message_template.call(exception)
- @room.send(@from, message, @message_options)
+ send_notice(exception, options, message, @message_options) do |msg, message_opts|
+ @room.send(@from, msg, message_opts)
+ end
end
private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exception_notifier/irc_notifier.rb new/lib/exception_notifier/irc_notifier.rb
--- old/lib/exception_notifier/irc_notifier.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/lib/exception_notifier/irc_notifier.rb 2016-01-07 22:21:05.000000000 +0100
@@ -1,6 +1,7 @@
module ExceptionNotifier
- class IrcNotifier
+ class IrcNotifier < BaseNotifier
def initialize(options)
+ super
@config = OpenStruct.new
parse_options(options)
end
@@ -8,7 +9,11 @@
def call(exception, options={})
message = "'#{exception.message}'"
message += " on '#{exception.backtrace.first}'" if exception.backtrace
- send_message([*(a)config.prefix, *message].join(' ')) if active?
+ if active?
+ send_notice(exception, options, message) do |msg, _|
+ send_message([*(a)config.prefix, *msg].join(' '))
+ end
+ end
end
def send_message(message)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exception_notifier/slack_notifier.rb new/lib/exception_notifier/slack_notifier.rb
--- old/lib/exception_notifier/slack_notifier.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/lib/exception_notifier/slack_notifier.rb 2016-01-07 22:21:05.000000000 +0100
@@ -1,10 +1,11 @@
module ExceptionNotifier
- class SlackNotifier
+ class SlackNotifier < BaseNotifier
include ExceptionNotifier::BacktraceCleaner
attr_accessor :notifier
def initialize(options)
+ super
begin
@ignore_data_if = options[:ignore_data_if]
@@ -38,7 +39,11 @@
attchs = [color: 'danger', text: text, fields: fields, mrkdwn_in: %w(text fields)]
- @notifier.ping '', @message_opts.merge(attachments: attchs) if valid?
+ if valid?
+ send_notice(exception, options, clean_message, @message_opts.merge(attachments: attchs)) do |msg, message_opts|
+ @notifier.ping '', message_opts
+ end
+ end
end
protected
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exception_notifier/views/exception_notifier/_environment.text.erb new/lib/exception_notifier/views/exception_notifier/_environment.text.erb
--- old/lib/exception_notifier/views/exception_notifier/_environment.text.erb 2015-12-04 21:45:42.000000000 +0100
+++ new/lib/exception_notifier/views/exception_notifier/_environment.text.erb 2016-01-07 22:21:05.000000000 +0100
@@ -1,5 +1,5 @@
<% filtered_env = @request.filtered_env -%>
<% max = filtered_env.keys.map(&:to_s).max { |a, b| a.length <=> b.length } -%>
<% filtered_env.keys.map(&:to_s).sort.each do |key| -%>
-* <%= raw("%-*s: %s" % [max.length, key, inspect_object(filtered_env[key])]) %>
+* <%= raw safe_encode("%-*s: %s" % [max.length, key, inspect_object(filtered_env[key])]) %>
<% end -%>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exception_notifier/views/exception_notifier/_request.text.erb new/lib/exception_notifier/views/exception_notifier/_request.text.erb
--- old/lib/exception_notifier/views/exception_notifier/_request.text.erb 2015-12-04 21:45:42.000000000 +0100
+++ new/lib/exception_notifier/views/exception_notifier/_request.text.erb 2016-01-07 22:21:05.000000000 +0100
@@ -1,7 +1,7 @@
-* URL : <%= raw @request.url %>
+* URL : <%= raw safe_encode @request.url %>
* HTTP Method: <%= raw @request.request_method %>
* IP address : <%= raw @request.remote_ip %>
-* Parameters : <%= raw @request.filtered_parameters.inspect %>
+* Parameters : <%= raw safe_encode @request.filtered_parameters.inspect %>
* Timestamp : <%= raw Time.current %>
* Server : <%= raw Socket.gethostname %>
<% if defined?(Rails) && Rails.respond_to?(:root) %>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exception_notifier/webhook_notifier.rb new/lib/exception_notifier/webhook_notifier.rb
--- old/lib/exception_notifier/webhook_notifier.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/lib/exception_notifier/webhook_notifier.rb 2016-01-07 22:21:05.000000000 +0100
@@ -1,9 +1,10 @@
require 'action_dispatch'
module ExceptionNotifier
- class WebhookNotifier
+ class WebhookNotifier < BaseNotifier
def initialize(options)
+ super
@default_options = options
end
@@ -23,7 +24,7 @@
options[:body][:exception] = {:error_class => exception.class.to_s,
:message => exception.message.inspect,
:backtrace => exception.backtrace}
- options[:body][:data] = (env['exception_notifier.exception_data'] || {}).merge(options[:data] || {})
+ options[:body][:data] = (env && env['exception_notifier.exception_data'] || {}).merge(options[:data] || {})
unless env.nil?
request = ActionDispatch::Request.new(env)
@@ -38,8 +39,9 @@
options[:body][:session] = request.session
options[:body][:environment] = request.filtered_env
end
-
- HTTParty.send(http_method, url, options)
+ send_notice(exception, options, nil, @default_options) do |msg, opts|
+ HTTParty.send(http_method, url, opts)
+ end
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/exception_notifier.rb new/lib/exception_notifier.rb
--- old/lib/exception_notifier.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/lib/exception_notifier.rb 2016-01-07 22:21:05.000000000 +0100
@@ -1,6 +1,7 @@
require 'logger'
require 'active_support/core_ext/string/inflections'
require 'active_support/core_ext/module/attribute_accessors'
+require 'exception_notifier/base_notifier'
module ExceptionNotifier
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2015-12-04 21:45:42.000000000 +0100
+++ new/metadata 2016-01-07 22:21:05.000000000 +0100
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: exception_notification
version: !ruby/object:Gem::Version
- version: 4.1.2
+ version: 4.1.4
platform: ruby
authors:
- Jamis Buck
@@ -9,7 +9,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2015-12-04 00:00:00.000000000 Z
+date: 2016-01-07 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: actionmailer
@@ -242,6 +242,7 @@
- lib/exception_notification/resque.rb
- lib/exception_notification/sidekiq.rb
- lib/exception_notifier.rb
+- lib/exception_notifier/base_notifier.rb
- lib/exception_notifier/campfire_notifier.rb
- lib/exception_notifier/email_notifier.rb
- lib/exception_notifier/hipchat_notifier.rb
@@ -353,7 +354,7 @@
version: 1.8.11
requirements: []
rubyforge_project:
-rubygems_version: 2.4.5
+rubygems_version: 2.4.5.1
signing_key:
specification_version: 4
summary: Exception notification for Rails apps
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/dummy/config/environment.rb new/test/dummy/config/environment.rb
--- old/test/dummy/config/environment.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/test/dummy/config/environment.rb 2016-01-07 22:21:05.000000000 +0100
@@ -8,7 +8,9 @@
:exception_recipients => %w{dummyexceptions(a)example.com},
:email_headers => { "X-Custom-Header" => "foobar" },
:sections => ['new_section', 'request', 'session', 'environment', 'backtrace'],
- :background_sections => %w(new_bkg_section backtrace data)
+ :background_sections => %w(new_bkg_section backtrace data),
+ :pre_callback => proc { |opts, notifier, backtrace, message, message_opts| message_opts[:pre_callback_called] = 1 },
+ :post_callback => proc { |opts, notifier, backtrace, message, message_opts| message_opts[:post_callback_called] = 1 }
}
# Initialize the rails application
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/exception_notifier/campfire_notifier_test.rb new/test/exception_notifier/campfire_notifier_test.rb
--- old/test/exception_notifier/campfire_notifier_test.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/test/exception_notifier/campfire_notifier_test.rb 2016-01-07 22:21:05.000000000 +0100
@@ -46,6 +46,30 @@
assert_nil campfire.call(fake_exception)
end
+ test "should call pre/post_callback if specified" do
+ pre_callback_called, post_callback_called = 0,0
+ Tinder::Campfire.stubs(:new).returns(Object.new)
+
+ campfire = ExceptionNotifier::CampfireNotifier.new(
+ {
+ :subdomain => 'test',
+ :token => 'test_token',
+ :room_name => 'test_room',
+ :pre_callback => proc { |opts, notifier, backtrace, message, message_opts|
+ pre_callback_called += 1
+ },
+ :post_callback => proc { |opts, notifier, backtrace, message, message_opts|
+ post_callback_called += 1
+ }
+ }
+ )
+ campfire.room = Object.new
+ campfire.room.stubs(:paste).returns(fake_notification)
+ campfire.call(fake_exception)
+ assert_equal(1, pre_callback_called)
+ assert_equal(1, post_callback_called)
+ end
+
private
def fake_notification
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/exception_notifier/email_notifier_test.rb new/test/exception_notifier/email_notifier_test.rb
--- old/test/exception_notifier/email_notifier_test.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/test/exception_notifier/email_notifier_test.rb 2016-01-07 22:21:05.000000000 +0100
@@ -13,6 +13,11 @@
end
end
+ test "should call pre/post_callback if specified" do
+ assert_equal @email_notifier.options[:pre_callback_called], 1
+ assert_equal @email_notifier.options[:post_callback_called], 1
+ end
+
test "should have default sender address overridden" do
assert_equal @email_notifier.sender_address, %("Dummy Notifier" <dummynotifier(a)example.com>)
end
@@ -150,6 +155,26 @@
assert_nil @ignored_mail
end
+ test "should encode environment strings" do
+ email_notifier = ExceptionNotifier::EmailNotifier.new(
+ :sender_address => "<dummynotifier(a)example.com>",
+ :exception_recipients => %w{dummyexceptions(a)example.com},
+ :deliver_with => :deliver_now
+ )
+
+ mail = email_notifier.create_email(
+ @exception,
+ :env => {
+ "REQUEST_METHOD" => "GET",
+ "rack.input" => "",
+ "invalid_encoding" => "R\xC3\xA9sum\xC3\xA9".force_encoding(Encoding::ASCII),
+ },
+ :email_format => :text
+ )
+
+ assert_match /invalid_encoding\s+: R__sum__/, mail.encoded
+ end
+
if defined?(Rails) && ('4.2'...'5.0').cover?(Rails.version)
test "should be able to specify ActionMailer::MessageDelivery method" do
email_notifier = ExceptionNotifier::EmailNotifier.new(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/exception_notifier/hipchat_notifier_test.rb new/test/exception_notifier/hipchat_notifier_test.rb
--- old/test/exception_notifier/hipchat_notifier_test.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/test/exception_notifier/hipchat_notifier_test.rb 2016-01-07 22:21:05.000000000 +0100
@@ -16,6 +16,24 @@
hipchat.call(fake_exception)
end
+ test "should call pre/post_callback if specified" do
+ pre_callback_called, post_callback_called = 0,0
+ options = {
+ :api_token => 'good_token',
+ :room_name => 'room_name',
+ :color => 'yellow',
+ :pre_callback => proc { |*| pre_callback_called += 1},
+ :post_callback => proc { |*| post_callback_called += 1}
+ }
+
+ HipChat::Room.any_instance.expects(:send).with('Exception', fake_body, { :color => 'yellow' }.merge(options.except(:api_token, :room_name)))
+
+ hipchat = ExceptionNotifier::HipchatNotifier.new(options)
+ hipchat.call(fake_exception)
+ assert_equal(1, pre_callback_called)
+ assert_equal(1, post_callback_called)
+ end
+
test "should send hipchat notification without backtrace info if properly configured" do
options = {
:api_token => 'good_token',
@@ -86,6 +104,22 @@
hipchat.call(fake_exception)
end
+ test "should send hipchat notification with HTML-escaped meessage if using default message_template" do
+ options = {
+ :api_token => 'good_token',
+ :room_name => 'room_name',
+ :color => 'yellow',
+ }
+
+ exception = fake_exception_with_html_characters
+ body = "A new exception occurred: '#{Rack::Utils.escape_html(exception.message)}' on '#{exception.backtrace.first}'"
+
+ HipChat::Room.any_instance.expects(:send).with('Exception', body, { :color => 'yellow' })
+
+ hipchat = ExceptionNotifier::HipchatNotifier.new(options)
+ hipchat.call(exception)
+ end
+
test "should use APIv1 if api_version is not specified" do
options = {
:api_token => 'good_token',
@@ -123,6 +157,14 @@
rescue Exception => e
e
end
+ end
+
+ def fake_exception_with_html_characters
+ exception = begin
+ raise StandardError.new('an error with <html> characters')
+ rescue Exception => e
+ e
+ end
end
def fake_body_without_backtrace
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/exception_notifier/irc_notifier_test.rb new/test/exception_notifier/irc_notifier_test.rb
--- old/test/exception_notifier/irc_notifier_test.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/test/exception_notifier/irc_notifier_test.rb 2016-01-07 22:21:05.000000000 +0100
@@ -16,6 +16,25 @@
irc.call(fake_exception)
end
+ test "should call pre/post_callback if specified" do
+ pre_callback_called, post_callback_called = 0,0
+
+ options = {
+ :domain => 'irc.example.com',
+ :pre_callback => proc { |*| pre_callback_called += 1},
+ :post_callback => proc { |*| post_callback_called += 1}
+ }
+
+ CarrierPigeon.expects(:send).with(has_key(:uri)) do |v|
+ /divided by 0/.match(v[:message])
+ end
+
+ irc = ExceptionNotifier::IrcNotifier.new(options)
+ irc.call(fake_exception)
+ assert_equal(1, pre_callback_called)
+ assert_equal(1, post_callback_called)
+ end
+
test "should send irc notification without backtrace info if properly configured" do
options = {
:domain => 'irc.example.com'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/exception_notifier/slack_notifier_test.rb new/test/exception_notifier/slack_notifier_test.rb
--- old/test/exception_notifier/slack_notifier_test.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/test/exception_notifier/slack_notifier_test.rb 2016-01-07 22:21:05.000000000 +0100
@@ -110,6 +110,35 @@
slack_notifier.call(@exception, notification_options)
end
+ test "should call pre/post_callback proc if specified" do
+ post_callback_called = 0
+ options = {
+ webhook_url: "http://slack.webhook.url",
+ username: "test",
+ custom_hook: "hook",
+ :pre_callback => proc { |opts, notifier, backtrace, message, message_opts|
+ (message_opts[:attachments] = []) << { text: "#{backtrace.join("\n")}", color: 'danger' }
+ },
+ :post_callback => proc { |opts, notifier, backtrace, message, message_opts|
+ post_callback_called = 1
+ },
+ additional_parameters: {
+ icon_url: "icon",
+ }
+ }
+
+ Slack::Notifier.any_instance.expects(:ping).with('',
+ {:icon_url => 'icon',
+ :attachments => [
+ {:text => "backtrace line 1\nbacktrace line 2",
+ :color => 'danger'}
+ ]})
+
+ slack_notifier = ExceptionNotifier::SlackNotifier.new(options)
+ slack_notifier.call(@exception)
+ assert_equal(post_callback_called, 1)
+ end
+
private
def fake_exception
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/exception_notifier/webhook_notifier_test.rb new/test/exception_notifier/webhook_notifier_test.rb
--- old/test/exception_notifier/webhook_notifier_test.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/test/exception_notifier/webhook_notifier_test.rb 2016-01-07 22:21:05.000000000 +0100
@@ -25,6 +25,12 @@
assert response[:body][:data][:extra_data].has_key?(:data_item1)
end
+ test "should call pre/post_callback if specified" do
+ HTTParty.stubs(:send).returns(fake_response)
+ webhook = ExceptionNotifier::WebhookNotifier.new({:url => 'http://localhost:8000'})
+ webhook.call(fake_exception)
+ end
+
private
def fake_response
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/exception_notifier_test.rb new/test/exception_notifier_test.rb
--- old/test/exception_notifier_test.rb 2015-12-04 21:45:42.000000000 +0100
+++ new/test/exception_notifier_test.rb 2016-01-07 22:21:05.000000000 +0100
@@ -98,4 +98,5 @@
ExceptionNotifier.unregister_exception_notifier(:test)
end
+
end
1
0
Hello community,
here is the log from the commit of package gnu_parallel for openSUSE:Factory checked in at 2016-01-28 17:22:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnu_parallel (Old)
and /work/SRC/openSUSE:Factory/.gnu_parallel.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnu_parallel"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnu_parallel/gnu_parallel.changes 2015-12-24 12:17:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gnu_parallel.new/gnu_parallel.changes 2016-01-28 17:22:55.000000000 +0100
@@ -1,0 +2,19 @@
+Sun Jan 24 09:26:20 UTC 2016 - mpluskal(a)suse.com
+
+- Update to 20160122
+ * --sql DBURL uses DBURL as storage for jobs and output. It does
+ not run any jobs so it requires at least one --sqlworker. DBURL
+ must point to a table.
+ * --sqlworker DBURL gets jobs from DBURL and stores the result
+ back to DBURL.
+ * --sqlandworker is a shorthand for --sql and --sqlworker.
+ * --sqlworker requires the output of a single job to fit in
+ memory.
+ * --results now also saves a file called 'seq' containing the
+ sequence number.
+ * If $PARALLEL_ENV is a file, then that file will be read into
+ $PARALLEL_ENV.
+ * man parallel_tutorial has been given an overhaul.
+ * --workdir now accepts replacementstrings.
+
+-------------------------------------------------------------------
Old:
----
parallel-20151222.tar.bz2
parallel-20151222.tar.bz2.sig
New:
----
parallel-20160122.tar.bz2
parallel-20160122.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnu_parallel.spec ++++++
--- /var/tmp/diff_new_pack.hpLUys/_old 2016-01-28 17:22:57.000000000 +0100
+++ /var/tmp/diff_new_pack.hpLUys/_new 2016-01-28 17:22:57.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package gnu_parallel
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: gnu_parallel
-Version: 20151222
+Version: 20160122
Release: 0
Summary: Shell tool for executing jobs in parallel
License: GPL-3.0+
++++++ parallel-20151222.tar.bz2 -> parallel-20160122.tar.bz2 ++++++
++++ 14070 lines of diff (skipped)
++++++ parallel-20151222.tar.bz2.sig -> parallel-20160122.tar.bz2.sig ++++++
--- /work/SRC/openSUSE:Factory/gnu_parallel/parallel-20151222.tar.bz2.sig 2015-12-24 12:17:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gnu_parallel.new/parallel-20160122.tar.bz2.sig 2016-01-28 17:22:56.000000000 +0100
@@ -2,7 +2,7 @@
# To check the signature run:
# echo | gpg
-# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-20151222.tar.bz2.sig
+# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-20160122.tar.bz2.sig
echo | gpg 2>/dev/null
gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve $0
@@ -11,32 +11,32 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
-iQTwBAABCgAGBQJWeYTWAAoJENGrRRaIiIiIP+kmoKeCUOFNU0+ltKpu+35MU9JQ
-AzC9jjjer6TucYzAs1LJKgbM1wAm0KQHy34NyURBq752uORytFUlXTj6ET6oIwhv
-AL0viaPNCBLXzPlpgUu7oCHYiSi5D8DwOm9dNtSxwqJkI+q2DuDFTDis41i6SMJ8
-aUPb345YzUvQfPVh5l0VXW/pLNfOV3aht5M85ayRdivBZ7S/67id27h9PbeUSTM9
-612GnoW3fm5arQifQal5ik6H50s6Brm+wPR+FSHFzNBD91zOAqq8kYuijJKx/Hpt
-afqUBwfa1CGOyzJuc4bpffAFZwEoUuH9CJUo13uzCVJ0pVRo/oMXc+/4YQ3ARt/h
-jviXE6YX+vLnOZd3HbOB5dJacH7CnMsXLophPB6SbQsvWmD+2Lj8ZoOtQBQHCfKD
-hXkCo3IG8AA+7wxv2E5kZcYnwqakLeiauFAS3RvO3JrO8+sAKN5R+lsVEOa8ZV4z
-cPkLMYiGdszScosntQU3SlyHykpKonQUnqmB6tlt8kiLTqVij/aU4e9/n00R3cfB
-YlLoOFYTe4zn6f5nv4nN8O26zZtzNJrdJMt1kSeS/VY1W682wpP4ES4wpf+J4ZXZ
-njCbjZyghyT1TtpvSGRm/CppGZHSuYkbNMoHfq5iFWNKf8cPnZEOnAu8RizQgiD0
-Z/7JiEQOTdsKjCBEGUTXenBWfd1Q+cZrBMwMmCWfc5gLPdj9/ovAs7cyA2vhcbe4
-4CxandBXOXPWJrKEmKLuZrDCbPfbeGraG4Js6iYaNtFHTszCz9sO4RjsfPO4Bo9j
-x7UpUptsdAgk0iRUjMhrJY3k4HFpxRhWVYh3Qw1cpQ4wWKnzJDC1fyjoXD4nA0MH
-+xXhAEkRdscslBFluZE+rN8NcKEZ3VSUIXcjz3vYidXPniBq9eLxQgN+kaECkxCO
-zrs0OU963w09xfeZrRW+KuLxhAZXEZPJuaHmIHq51aC+5raLCHA1R7x16+1Moyp0
-JH8psDFNs3gboTeUzfHuO1ioNoln9VOMkARec48iiQyL4TUGw8pmxBGeiAi2AFOE
-OOlR9lm/tZBV76PxUX0K4GlWUDBiurfypYXvOZowR0rAbB5uotoxn5sQSYF1qNcV
-5GscXtRvr41EJI6f3NcrmLw2TzrKjYh4RsGpq/c1mn4Ax6nobqXb5oF4sYX+W7yP
-W6lcIZ75GWBVVdWd6GZ9YIUKq2fZ2wWrgZWuLG7Urp9hC6Cgz8bvLbapJTPQMBWL
-QXOH+UirxLFo3O8xBb1MzrDVz+ib27OZgQbRtOAL7HnNP0G7UV3gQwqXDfe+iPPq
-5kzYxv0CrP6CreUWDfsAl1FBvkbw4BvlT729eY56KZYPBGBT9VZvyVQ4l7R9RU/X
-xAF/Fwse2D18Sy+ylDmeYCUXoBiSDPmF53sORsgEay4viE7rLUypI1EQxErOXwMV
-1d+NP1eP0FprLovHdSiVOnZjuQTpi/uuWyRkoBuu0fXlofvlhTLnvsAvmqfTP8b6
-km5WR9GsNqeIhzbleFlMF7RMvbL1AOY8hfxT1qsnB/GPJQWqFQSAQUjEHU/DjdsI
-0hEel0n2SPzkeRwLrvV5JkSUJ2S/TqwotrJ1YZnxvJhzKVCzgS4ahZs0RSu8mpBe
-EDaqj5KeXIxjLl38K+LLwZSMsA==
-=tHYa
+iQTwBAABCgAGBQJWo0LhAAoJENGrRRaIiIiI7FEmnj2pBNeU+Fg9KhlOHpQp2WhX
+upcnCkXHh9qQuUGGxkbQcNUXNfPwi1EzWOBm//A/lhZi7j8B1pDgTHK3t+mn8GVL
+WWh0IinYTw80rLqGwV+Zll8DBi/O5WTKRyXqDPExvDxge7Y85mLsPcS8SEslG+cK
+pUsLExXijtdjQ+1r8x97+klNIZFQBfhvWB3RHMIZPi+ivFdzVRg0eU7sD22LDPTG
+62PRRECfJwlSjL1F4GJzXztSuIalk42yRy5UUrF64Rx5iPWaJQLX0U7hvqeTz8d+
+YBC3clrqil3hLYLG6Dedh93wQgsEPyTirUXxqThw1ikfaagto1r65ht5Hx9bMIf4
+eK/0LVxVI2tJxVwV4W7TyBC/QykBErlfhHRSuceTTNC0yPks1ia4KDcpTISSQuGH
+gHPBpnML0sHEW1vL3f4JYkLXRl2+Ji4epzY/PBP2P1KbbWqMD7hu8mzHKJw2NKdb
+RnIgPPx7XWUz6MmTm7qqQbHgZtolksAsTs06/M6G+M7TZ9lyopafhLE3Zuj2HJ5r
+5WQRy45wJ+n+vbfkZ+VXv6O7dAOhRdCB/pBpT2a76vRMfrK0X5rcxSyywABh4BlO
+Xq5CMhKu9bqBJtGzu/VvG2gHZkkEjcYtkVRdR7HTQ4FV8Gbq1pEAQ9QXBnQvy13+
+ZbaixIo5Hz+Vi16TIMC+yMg7qRZu9fif9MqtcO+Hl79et0VFaeMRDzKVhkuHA4j9
+GYWSV0K2EzXwTxcvVuPDuGtvYPQbELt5TxekdXQNKAtWU9cCuQ+5X9rVcszgprcd
+faZly4fnd1UPtxsilVfeGm4EAWZxYSBNQiSORhjbcR/jH/Bb3KTL8V2qyVGvgkeo
+kwX0YuUnVoHA82nbKL7Sj/Xuf5ygLBE3ogGIU9CPPASbt64qa4IEZu1MMI+Pa5Vw
+qtrURGfZohObJQ0jKPnMlLcKLlY4MXBQrYnH+xV/6BC5MnFicjncJmtaQ8t+C64+
+jefqIfEzbUVoS2VcORtSvybU+X8nro6ymhOjlCYOFMpIcxHKPSl6p5i2LlfqT8AA
+zYm+il2tcpOI4sSpSurc1XBjImdtEXaBZ33IeOouqiI7KmWI2DV6dvrBHWfNSt8t
+30OWWjp9QLDBBbepfYOHYsvoe9yKtadYHbXLXxst0y2j5oEgSINVOUfGERe3bDt0
+lBG6RLlGD8iC4oCHcnmuayGbO9/kIvOB2Gt98XNe8kfagoDh/stS2LWUy6hx/H8z
+vogCebQmw+xDHQejisIZXogQ0nTj1RwcHtUpGwDOwSIq5TC/eIvi3mifP7LJF/S9
+uMVFwpcTcQFLc6hKJT/3dFppwhE7sGY9o0C0AXyZzPV10hjs4TFpUDtdDbEpq2uQ
+qDfWO+V1cYcVpccU+lQ6u67do2y0qUgrOt53quY+zBRLDUhKnX2SCp+8yvLhkweH
+CggO4/YKzBl3/BMl79K4HRuJrvlxS1lcpgD8yHymObtD1fnxD6TP4fQlCRP8yjvo
+KR3mMvcLDtGntV1XyLrX6lccvUH8IZvpADPrl4opUOZTyWZY92vUuqnuWzvT2QAL
+/fswn6WeUCZJfmRIR2eUMQvLg8F+u8HtenwKKCguxszRaDSIKX4/0B+vkeMuWllZ
+s9DbzSDiWUcm6PpEdT1K+eQG+w==
+=4Qzi
-----END PGP SIGNATURE-----
1
0
Hello community,
here is the log from the commit of package privoxy for openSUSE:Factory checked in at 2016-01-28 17:22:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/privoxy (Old)
and /work/SRC/openSUSE:Factory/.privoxy.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "privoxy"
Changes:
--------
--- /work/SRC/openSUSE:Factory/privoxy/privoxy.changes 2015-01-29 09:58:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.privoxy.new/privoxy.changes 2016-01-28 17:22:45.000000000 +0100
@@ -1,0 +2,15 @@
+Sat Jan 23 19:46:10 UTC 2016 - astieger(a)suse.com
+
+- Privoxy 3.0.24
+ Includes fixes for two security issues that may be used to
+ remotely trigger crashes on platforms that carefully check memory
+ accesses.
+ * Security fixes (denial of service):
+ + Prevent invalid reads in case of corrupt chunk-encoded
+ content. CVE-2016-1982 [boo#963151]
+ + Remove empty Host headers in client requests. Previously
+ they would result in invalid reads. CVE-2016-1983 [boo#963152]
+ * General bug fixes and improvements
+ * White and blacklist updates
+
+-------------------------------------------------------------------
Old:
----
privoxy-3.0.23-stable-src.tar.gz
New:
----
privoxy-3.0.24-stable-src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ privoxy.spec ++++++
--- /var/tmp/diff_new_pack.2Rk6P8/_old 2016-01-28 17:22:46.000000000 +0100
+++ /var/tmp/diff_new_pack.2Rk6P8/_new 2016-01-28 17:22:46.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package privoxy
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -30,7 +30,7 @@
%endif
%endif
Name: privoxy
-Version: 3.0.23
+Version: 3.0.24
Release: 0
Summary: The Internet Junkbuster - HTTP Proxy Server
License: GPL-2.0+
@@ -227,7 +227,7 @@
%{_sysconfdir}/NetworkManager/dispatcher.d/privoxyd
%dir %{_sysconfdir}/NetworkManager
%dir %{_sysconfdir}/NetworkManager/dispatcher.d
-%doc %{_mandir}/man1/privoxy.1.gz
+%{_mandir}/man1/privoxy.1.gz
%config(noreplace) %{_sysconfdir}/logrotate.d/privoxy
%dir /%{chroot}/etc
%config(noreplace) /%{chroot}%{_sysconfdir}/config
++++++ privoxy-3.0.23-stable-src.tar.gz -> privoxy-3.0.24-stable-src.tar.gz ++++++
++++ 4407 lines of diff (skipped)
1
0
28 Jan '16
Hello community,
here is the log from the commit of package epiphany-branding-openSUSE for openSUSE:Factory checked in at 2016-01-28 17:22:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/epiphany-branding-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.epiphany-branding-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "epiphany-branding-openSUSE"
Changes:
--------
--- /work/SRC/openSUSE:Factory/epiphany-branding-openSUSE/epiphany-branding-SLED.changes 2015-10-30 13:43:37.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.epiphany-branding-openSUSE.new/epiphany-branding-SLED.changes 2016-01-28 17:22:44.000000000 +0100
@@ -1,0 +2,14 @@
+Sat Jan 22 18:30:00 UTC 2016 - dimstar(a)opensuse.org
+
+- Make build not rely on lsb and opensuse-release (no constant
+ rebuild in Tumbleweed):
+ + Drop lsb/lsb-release BuildRequires.
+ + Drop opensuse-release BuildRequires.
+ + Use %{suse_version} in build section to inject proper values
+ into branding.conf. On Tumbleweed we no longer use the snapshot
+ version (which is anyway useless) but simply inject
+ 'Tumbleweed'. We currently detect openSUSE 13.1, 13.2,
+ Leap 42.1, SLE12 and Tumbleweed systems. All others will have
+ 'SUSE/undef' in the browsers user agent string.
+
+-------------------------------------------------------------------
epiphany-branding-openSUSE.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ epiphany-branding-SLED.spec ++++++
--- /var/tmp/diff_new_pack.bLCwb7/_old 2016-01-28 17:22:45.000000000 +0100
+++ /var/tmp/diff_new_pack.bLCwb7/_new 2016-01-28 17:22:45.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package epiphany-branding-SLED
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -38,13 +38,6 @@
# WARNING: As this package conflicts with epiphany-branding-SLED, you cannot
# reuse build root. You have to build in a clean build root every time!
BuildRequires: epiphany-branding-upstream >= 3.11.2
-%if 0%{suse_version} > 1110
-BuildRequires: lsb-release
-%else
-BuildRequires: lsb
-%endif
-BuildRequires: suse-release
-%define distro_version %(lsb_release -r -s)
%define epiphany_version %(rpm -q --qf '%%{version}' epiphany)
Requires: epiphany = %{epiphany_version}
Provides: epiphany-branding = %{epiphany_version}
@@ -71,7 +64,28 @@
cp -a %{SOURCE0} .
%build
-sed "s,@distroversion@,%{distro_version},g;s,@pkgversion@,%{epiphany_version},g" %{SOURCE1} > branding.conf
+case "%{?suse_version}" in
+ 1330)
+ DISTRO="Tumbleweed"
+ ;;
+ 1320)
+ DISTRO="13.2"
+ ;;
+ 1315)
+%if %{?is_opensuse}
+ DISTRO="Leap 42.1"
+%else
+ DISTRO="SLE12"
+%endif
+ ;;
+ 1310)
+ DISTRO="13.1"
+ ;;
+ *)
+ DISTRO="undef"
+ ;;
+esac
+sed "s,@distroversion@,$DISTRO,g;s,@pkgversion@,%{epiphany_version},g" %{SOURCE1} > branding.conf
%install
# custom bookmarks
epiphany-branding-openSUSE.spec: same change
++++++ epiphany-branding.changes.in ++++++
--- /var/tmp/diff_new_pack.bLCwb7/_old 2016-01-28 17:22:45.000000000 +0100
+++ /var/tmp/diff_new_pack.bLCwb7/_new 2016-01-28 17:22:45.000000000 +0100
@@ -1,4 +1,18 @@
-------------------------------------------------------------------
+Sat Jan 22 18:30:00 UTC 2016 - dimstar(a)opensuse.org
+
+- Make build not rely on lsb and opensuse-release (no constant
+ rebuild in Tumbleweed):
+ + Drop lsb/lsb-release BuildRequires.
+ + Drop opensuse-release BuildRequires.
+ + Use %{suse_version} in build section to inject proper values
+ into branding.conf. On Tumbleweed we no longer use the snapshot
+ version (which is anyway useless) but simply inject
+ 'Tumbleweed'. We currently detect openSUSE 13.1, 13.2,
+ Leap 42.1, SLE12 and Tumbleweed systems. All others will have
+ 'SUSE/undef' in the browsers user agent string.
+
+-------------------------------------------------------------------
Mon Oct 12 15:23:23 UTC 2015 - zaitor(a)opensuse.org
- Bump version to 42.1, to prepare for next version of openSUSE.
++++++ epiphany-branding.spec.in ++++++
--- /var/tmp/diff_new_pack.bLCwb7/_old 2016-01-28 17:22:45.000000000 +0100
+++ /var/tmp/diff_new_pack.bLCwb7/_new 2016-01-28 17:22:45.000000000 +0100
@@ -37,13 +37,6 @@
# WARNING: As this package conflicts with epiphany-branding-%{branding_name}, you cannot
# reuse build root. You have to build in a clean build root every time!
BuildRequires: epiphany-branding-upstream >= 3.11.2
-%if 0%{suse_version} > 1110
-BuildRequires: lsb-release
-%else
-BuildRequires: lsb
-%endif
-BuildRequires: suse-release
-%define distro_version %(lsb_release -r -s)
%define epiphany_version %(rpm -q --qf '%%{version}' epiphany)
Requires: epiphany = %{epiphany_version}
Provides: epiphany-branding = %{epiphany_version}
@@ -70,7 +63,28 @@
cp -a %{SOURCE0} .
%build
-sed "s,@distroversion@,%{distro_version},g;s,@pkgversion@,%{epiphany_version},g" %{SOURCE1} > branding.conf
+case "%{?suse_version}" in
+ 1330)
+ DISTRO="Tumbleweed"
+ ;;
+ 1320)
+ DISTRO="13.2"
+ ;;
+ 1315)
+%if %{?is_opensuse}
+ DISTRO="Leap 42.1"
+%else
+ DISTRO="SLE12"
+%endif
+ ;;
+ 1310)
+ DISTRO="13.1"
+ ;;
+ *)
+ DISTRO="undef"
+ ;;
+esac
+sed "s,@distroversion@,$DISTRO,g;s,@pkgversion@,%{epiphany_version},g" %{SOURCE1} > branding.conf
%install
# custom bookmarks
1
0
Hello community,
here is the log from the commit of package dateutils for openSUSE:Factory checked in at 2016-01-28 17:22:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dateutils (Old)
and /work/SRC/openSUSE:Factory/.dateutils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dateutils"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dateutils/dateutils.changes 2016-01-12 16:13:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.dateutils.new/dateutils.changes 2016-01-28 17:22:40.000000000 +0100
@@ -1,0 +2,10 @@
+Fri Jan 22 22:45:28 UTC 2016 - sweet_f_a(a)gmx.de
+
+- bump version 0.3.5, this is a bugfix release.
+ * Bugfixes:
+ - bug/40, distinguish between numerals-only dates and durations
+ - tests will succeed independent of current date
+ * See info page examples and/or README.
+- remove dateutils-0.3.4-fix-test-126.patch (upstream applied)
+
+-------------------------------------------------------------------
Old:
----
dateutils-0.3.4-fix-test-126.patch
dateutils-0.3.4.tar.xz
New:
----
dateutils-0.3.5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dateutils.spec ++++++
--- /var/tmp/diff_new_pack.Abpt6b/_old 2016-01-28 17:22:41.000000000 +0100
+++ /var/tmp/diff_new_pack.Abpt6b/_new 2016-01-28 17:22:41.000000000 +0100
@@ -16,7 +16,7 @@
#
-%define xversion 0.3.4
+%define xversion 0.3.5
%define have_octave 0
@@ -39,15 +39,13 @@
%endif
Name: dateutils
-Version: 0.3.4
+Version: 0.3.5
Release: 0
Summary: Nifty command line date and time utilities
License: BSD-3-Clause
Group: Productivity/Text/Utilities
Url: https://github.com/hroptatyr/dateutils/
Source: https://bitbucket.org/hroptatyr/dateutils/downloads/%{name}-%{version}.tar.…
-# PATCH-FIX-UPSTREAM dateutils-0.3.4-fix-test-126 -- Fix the test that was failing due to year change (from upstream)
-Patch: dateutils-0.3.4-fix-test-126.patch
BuildRequires: pkgconfig
BuildRequires: xz
%if 0%{?suse_version}
@@ -80,7 +78,6 @@
%prep
%setup -q -n %{name}-%{xversion}
-%patch -p1
%build
%configure \
++++++ dateutils-0.3.4.tar.xz -> dateutils-0.3.5.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/.version new/dateutils-0.3.5/.version
--- old/dateutils-0.3.4/.version 2015-08-28 14:07:53.000000000 +0200
+++ new/dateutils-0.3.5/.version 2016-01-22 12:03:34.000000000 +0100
@@ -1 +1 @@
-v0.3.4
+v0.3.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/README.md new/dateutils-0.3.5/README.md
--- old/dateutils-0.3.4/README.md 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/README.md 2016-01-22 12:01:32.000000000 +0100
@@ -38,8 +38,8 @@
Examples
========
-I love everything to be explained by example to get a first
-impression. So here it comes.
+I love everything explained by example to get a first impression.
+So here it comes.
dateseq
-------
@@ -258,6 +258,18 @@
=>
2011-08-01
+ Find the next Monday from the current date (today is 2016-01-08):
+
+ $ dateround today Mon
+ =>
+ 2015-01-11
+
+ Go back to last September, then round to the end of the month:
+
+ $ dateround today -- -Sep +31d
+ =>
+ 2015-09-30
+
Round a stream of dates strictly to the next month's first:
$ dateround -S -n 1 <<EOF
@@ -309,9 +321,12 @@
datesort
-----
- New in the 0.3 series of dateutils.
A tool to bring the lines of a file into chronological order.
+ At the moment the `datesort` tool depends on `sort(1)` with support
+ for fields, in particular `-t` to select a separator and `-k` to sort
+ by a particular field.
+
$ datesort <<EOF
2009-06-03 caev="DVCA" secu="VOD" exch="XLON" xdte="2009-06-03" nett/GBX="5.2"
2011-11-16 caev="DVCA" secu="VOD" exch="XLON" xdte="2011-11-16" nett/GBX="3.05"
@@ -328,12 +343,9 @@
2013-06-12 caev="DVCA" secu="VOD" exch="XLON" xdte="2013-06-12" nett/GBX="6.92"
2013-11-20 caev="DVCA" secu="VOD" exch="XLON" xdte="2013-11-20" nett/GBX="3.53"
- At the moment the `datesort` tool is built upon `sort(1)` and `cut(1)`.
-
datezone
--------
- New in the 0.3 series of dateutils.
A tool to quickly inspect date/time values in different timezones.
The result will be a matrix that shows every date-time value in every
timezone:
@@ -363,25 +375,29 @@
strptime
--------
- A tool that brings the flexibility of strptime(3) to the command
- line. While date(1) has support for output formats, it lacks any kind
- of support to read arbitrary input from the domain of dates, in
- particular when the input format is specifically known beforehand and
- only matching dates/times shall be considered.
-
- Usually, to print something like `Mon, May-01/2000` in ISO 8601,
- people come up with the most prolific recommendations like using perl
- or sed or awk or any two of them, or they come up with a pageful of
- shell code full of bashisms, and when sufficiently pestered they
- "improve" their variant to a dozen pages of portable shell code.
+ A tool that brings the flexibility of [`strptime(3)`][1] to the
+ command line. While (at least GNU) [`date(1)`][2] has support for
+ output formats, it lacks any kind of support to read arbitrary input
+ from the domain of dates, in particular when the input format is
+ specifically known beforehand and only matching dates/times shall be
+ considered.
- The strptime tool does the job just fine
+ With the `strptime` tool reading weird dates like `Mon, May-01/2000`
+ becomes a matter of
strptime -i "%a, %b-%d/%Y" "Mon, May-01/2000"
=>
2000-05-01
- just like you would have done in C.
+ just as you would have done in C.
+
+ Note that `strptime` actually uses the system libc's strptime routine,
+ and for output the system's strftime routine. Input and output
+ modifiers will therefore vary between systems.
+
+ For a portable parser/printer combination use `dateconv` as described
+ above. Its input and output format specifiers are independent of the
+ C runtime.
Similar projects
@@ -396,6 +412,10 @@
Use the one that best fits your purpose. And in case you happen to like
mine, vote: [dateutils' openhub page](https://www.openhub.net/p/dateutils)
+
+ [1]: http://linux.die.net/man/3/strptime
+ [2]: http://linux.die.net/man/1/date
+
<!--
Local variables:
mode: auto-fill
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/build-aux/yuck-scmver.c new/dateutils-0.3.5/build-aux/yuck-scmver.c
--- old/dateutils-0.3.4/build-aux/yuck-scmver.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/build-aux/yuck-scmver.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** yuck-scmver.c -- snarf versions off project cwds
*
- * Copyright (C) 2013-2015 Sebastian Freundt
+ * Copyright (C) 2013-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/build-aux/yuck-scmver.h new/dateutils-0.3.5/build-aux/yuck-scmver.h
--- old/dateutils-0.3.4/build-aux/yuck-scmver.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/build-aux/yuck-scmver.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** yuck-version.h -- snarf versions off project cwds
*
- * Copyright (C) 2013-2015 Sebastian Freundt
+ * Copyright (C) 2013-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/build-aux/yuck.c new/dateutils-0.3.5/build-aux/yuck.c
--- old/dateutils-0.3.4/build-aux/yuck.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/build-aux/yuck.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** yuck.c -- generate umbrella commands
*
- * Copyright (C) 2013-2015 Sebastian Freundt
+ * Copyright (C) 2013-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/configure new/dateutils-0.3.5/configure
--- old/dateutils-0.3.4/configure 2015-08-28 14:07:45.000000000 +0200
+++ new/dateutils-0.3.5/configure 2016-01-22 12:03:27.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for dateutils 0.3.4.
+# Generated by GNU Autoconf 2.68 for dateutils 0.3.5.
#
# Report bugs to <https://github.com/hroptatyr/dateutils/issues>.
#
@@ -14,7 +14,7 @@
# gives unlimited permission to copy, distribute and modify it.
#
# # #### Configuration script for dateutils and friends.
-# #### Copyright (C) 2011-2015 Sebastian Freundt
+# #### Copyright (C) 2011-2016 Sebastian Freundt
#
# ### Don't edit this script!
# ### This script was automatically generated by the `autoconf' program
@@ -580,8 +580,8 @@
# Identity of this package.
PACKAGE_NAME='dateutils'
PACKAGE_TARNAME='dateutils'
-PACKAGE_VERSION='0.3.4'
-PACKAGE_STRING='dateutils 0.3.4'
+PACKAGE_VERSION='0.3.5'
+PACKAGE_STRING='dateutils 0.3.5'
PACKAGE_BUGREPORT='https://github.com/hroptatyr/dateutils/issues'
PACKAGE_URL=''
@@ -1487,7 +1487,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 dateutils 0.3.4 to adapt to many kinds of systems.
+\`configure' configures dateutils 0.3.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1557,7 +1557,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of dateutils 0.3.4:";;
+ short | recursive ) echo "Configuration of dateutils 0.3.5:";;
esac
cat <<\_ACEOF
@@ -1702,7 +1702,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-dateutils configure 0.3.4
+dateutils configure 0.3.5
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1710,7 +1710,7 @@
gives unlimited permission to copy, distribute and modify it.
#### Configuration script for dateutils and friends.
-#### Copyright (C) 2011-2015 Sebastian Freundt
+#### Copyright (C) 2011-2016 Sebastian Freundt
### Don't edit this script!
### This script was automatically generated by the `autoconf' program
@@ -2127,7 +2127,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by dateutils $as_me 0.3.4, which was
+It was created by dateutils $as_me 0.3.5, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2950,7 +2950,7 @@
# Define the identity of the package.
PACKAGE='dateutils'
- VERSION='0.3.4'
+ VERSION='0.3.5'
cat >>confdefs.h <<_ACEOF
@@ -19707,7 +19707,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by dateutils $as_me 0.3.4, which was
+This file was extended by dateutils $as_me 0.3.5, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -19777,7 +19777,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-dateutils config.status 0.3.4
+dateutils config.status 0.3.5
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/configure.ac new/dateutils-0.3.5/configure.ac
--- old/dateutils-0.3.4/configure.ac 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/configure.ac 2016-01-22 12:01:32.000000000 +0100
@@ -3,7 +3,7 @@
dnl -------------------------------------------------------------------------
AC_PREREQ([2.63])
-AC_INIT([dateutils], [0.3.4], [https://github.com/hroptatyr/dateutils/issues])
+AC_INIT([dateutils], [0.3.5], [https://github.com/hroptatyr/dateutils/issues])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADER([src/config.h])
AC_CONFIG_MACRO_DIR([m4])
@@ -15,7 +15,7 @@
AC_COPYRIGHT([dnl
#### Configuration script for dateutils and friends.
-#### Copyright (C) 2011-2015 Sebastian Freundt
+#### Copyright (C) 2011-2016 Sebastian Freundt
### Don't edit this script!
### This script was automatically generated by the `autoconf' program
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/contrib/leaps.c new/dateutils-0.3.5/contrib/leaps.c
--- old/dateutils-0.3.4/contrib/leaps.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/contrib/leaps.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** leaps.c -- materialised leap seconds
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/contrib/leaps.h new/dateutils-0.3.5/contrib/leaps.h
--- old/dateutils-0.3.4/contrib/leaps.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/contrib/leaps.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** leaps.h -- materialised leap seconds
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/contrib/tzconv.c new/dateutils-0.3.5/contrib/tzconv.c
--- old/dateutils-0.3.4/contrib/tzconv.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/contrib/tzconv.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** tzconv.c -- convert matlab dates between timezones
*
- * Copyright (C) 2013-2014 Sebastian Freundt
+ * Copyright (C) 2013-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/contrib/tzraw.c new/dateutils-0.3.5/contrib/tzraw.c
--- old/dateutils-0.3.4/contrib/tzraw.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/contrib/tzraw.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** tzraw.c -- reader for olson database zoneinfo files
*
- * Copyright (C) 2009-2015 Sebastian Freundt
+ * Copyright (C) 2009-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/contrib/tzraw.h new/dateutils-0.3.5/contrib/tzraw.h
--- old/dateutils-0.3.4/contrib/tzraw.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/contrib/tzraw.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** tzraw.h -- reader for olson database zoneinfo files
*
- * Copyright (C) 2009-2015 Sebastian Freundt
+ * Copyright (C) 2009-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dadd.manu new/dateutils-0.3.5/info/dadd.manu
--- old/dateutils-0.3.4/info/dadd.manu 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/dadd.manu 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATEADD "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATEADD "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
dateadd - Add DURATION to DATE/TIME and print the result.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dateadd.manu new/dateutils-0.3.5/info/dateadd.manu
--- old/dateutils-0.3.4/info/dateadd.manu 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/dateadd.manu 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATEADD "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATEADD "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
dateadd - Add DURATION to DATE/TIME and print the result.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dateconv.man new/dateutils-0.3.5/info/dateconv.man
--- old/dateutils-0.3.4/info/dateconv.man 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/dateconv.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATECONV "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATECONV "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
dateconv - Convert DATE/TIMEs between calendrical systems.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/datediff.mand new/dateutils-0.3.5/info/datediff.mand
--- old/dateutils-0.3.4/info/datediff.mand 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/datediff.mand 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATEDIFF "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATEDIFF "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
datediff - Compute duration from DATE/TIME (the reference date/time) to the other
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dategrep.man new/dateutils-0.3.5/info/dategrep.man
--- old/dateutils-0.3.4/info/dategrep.man 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/dategrep.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATEGREP "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATEGREP "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
dategrep - Grep standard input for lines that match EXPRESSION.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dateround.manu new/dateutils-0.3.5/info/dateround.manu
--- old/dateutils-0.3.4/info/dateround.manu 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/dateround.manu 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATEROUND "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATEROUND "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
dateround - Round DATE/TIME to the next occurrence of RNDSPEC.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dateseq.manu new/dateutils-0.3.5/info/dateseq.manu
--- old/dateutils-0.3.4/info/dateseq.manu 2015-08-28 14:08:27.000000000 +0200
+++ new/dateutils-0.3.5/info/dateseq.manu 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATESEQ "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATESEQ "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
dateseq - Generate a sequence of date/times from FIRST to LAST, optionally in steps of
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/datesort.man new/dateutils-0.3.5/info/datesort.man
--- old/dateutils-0.3.4/info/datesort.man 2015-08-28 14:08:27.000000000 +0200
+++ new/dateutils-0.3.5/info/datesort.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATESORT "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATESORT "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
datesort - Sort contents of FILE chronologically.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/datetest.man new/dateutils-0.3.5/info/datetest.man
--- old/dateutils-0.3.4/info/datetest.man 2015-08-28 14:08:27.000000000 +0200
+++ new/dateutils-0.3.5/info/datetest.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATETEST "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATETEST "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
datetest - Like test(1) but for dates.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dateutils.info new/dateutils-0.3.5/info/dateutils.info
--- old/dateutils-0.3.4/info/dateutils.info 2015-08-28 14:08:27.000000000 +0200
+++ new/dateutils-0.3.5/info/dateutils.info 2016-01-22 12:04:01.000000000 +0100
@@ -28,7 +28,7 @@
This manual documents the dateutils package.
- Copyright (C) 2011-2015 Sebastian Freundt.
+ Copyright (C) 2011-2016 Sebastian Freundt.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dateutils.texi new/dateutils-0.3.5/info/dateutils.texi
--- old/dateutils-0.3.4/info/dateutils.texi 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/info/dateutils.texi 2016-01-22 12:01:32.000000000 +0100
@@ -30,7 +30,7 @@
This manual documents the dateutils package.
-Copyright @copyright{} 2011-2015 Sebastian Freundt.
+Copyright @copyright{} 2011-2016 Sebastian Freundt.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -54,7 +54,7 @@
@center Sebastian Freundt
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 2011-2015 Sebastian Freundt.
+Copyright @copyright{} 2011-2016 Sebastian Freundt.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/datezone.man new/dateutils-0.3.5/info/datezone.man
--- old/dateutils-0.3.4/info/datezone.man 2015-08-28 14:08:27.000000000 +0200
+++ new/dateutils-0.3.5/info/datezone.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATEZONE "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATEZONE "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
datezone - Convert DATE/TIMEs between timezones.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dconv.man new/dateutils-0.3.5/info/dconv.man
--- old/dateutils-0.3.4/info/dconv.man 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/dconv.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATECONV "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATECONV "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
dateconv - Convert DATE/TIMEs between calendrical systems.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/ddiff.mand new/dateutils-0.3.5/info/ddiff.mand
--- old/dateutils-0.3.4/info/ddiff.mand 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/ddiff.mand 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATEDIFF "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATEDIFF "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
datediff - Compute duration from DATE/TIME (the reference date/time) to the other
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dgrep.man new/dateutils-0.3.5/info/dgrep.man
--- old/dateutils-0.3.4/info/dgrep.man 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/dgrep.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATEGREP "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATEGREP "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
dategrep - Grep standard input for lines that match EXPRESSION.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dround.manu new/dateutils-0.3.5/info/dround.manu
--- old/dateutils-0.3.4/info/dround.manu 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/dround.manu 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATEROUND "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATEROUND "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
dateround - Round DATE/TIME to the next occurrence of RNDSPEC.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dseq.manu new/dateutils-0.3.5/info/dseq.manu
--- old/dateutils-0.3.4/info/dseq.manu 2015-08-28 14:08:27.000000000 +0200
+++ new/dateutils-0.3.5/info/dseq.manu 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATESEQ "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATESEQ "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
dateseq - Generate a sequence of date/times from FIRST to LAST, optionally in steps of
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dsort.man new/dateutils-0.3.5/info/dsort.man
--- old/dateutils-0.3.4/info/dsort.man 2015-08-28 14:08:27.000000000 +0200
+++ new/dateutils-0.3.5/info/dsort.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATESORT "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATESORT "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
datesort - Sort contents of FILE chronologically.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dtest.man new/dateutils-0.3.5/info/dtest.man
--- old/dateutils-0.3.4/info/dtest.man 2015-08-28 14:08:27.000000000 +0200
+++ new/dateutils-0.3.5/info/dtest.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATETEST "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATETEST "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
datetest - Like test(1) but for dates.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/dzone.man new/dateutils-0.3.5/info/dzone.man
--- old/dateutils-0.3.4/info/dzone.man 2015-08-28 14:08:27.000000000 +0200
+++ new/dateutils-0.3.5/info/dzone.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH DATEZONE "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH DATEZONE "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
datezone - Convert DATE/TIMEs between timezones.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/info/strptime.man new/dateutils-0.3.5/info/strptime.man
--- old/dateutils-0.3.4/info/strptime.man 2015-08-28 14:08:26.000000000 +0200
+++ new/dateutils-0.3.5/info/strptime.man 2016-01-22 12:04:01.000000000 +0100
@@ -1,5 +1,5 @@
.\" auto generated by yuck -*- nroff -*-
-.TH STRPTIME "1" "August 2015" "dateutils 0.3.4" "User Commands"
+.TH STRPTIME "1" "January 2016" "dateutils 0.3.5" "User Commands"
.SH NAME
strptime - Parse input from stdin according to one of the given formats FORMATs.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/bizda.c new/dateutils-0.3.5/lib/bizda.c
--- old/dateutils-0.3.4/lib/bizda.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/bizda.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** bizda.c -- guts for bizda dates
*
- * Copyright (C) 2010-2015 Sebastian Freundt
+ * Copyright (C) 2010-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/boops.h new/dateutils-0.3.5/lib/boops.h
--- old/dateutils-0.3.4/lib/boops.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/boops.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** boops.h -- byte-order operations
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
* Copyright (C) 2012 Ruediger Meier
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/daisy.c new/dateutils-0.3.5/lib/daisy.c
--- old/dateutils-0.3.4/lib/daisy.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/daisy.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** daisy.c -- guts for daisy dates
*
- * Copyright (C) 2010-2015 Sebastian Freundt
+ * Copyright (C) 2010-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/date-core-private.h new/dateutils-0.3.5/lib/date-core-private.h
--- old/dateutils-0.3.4/lib/date-core-private.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/date-core-private.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** date-core-private.h -- our universe of dates, private bits
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/date-core-strpf.c new/dateutils-0.3.5/lib/date-core-strpf.c
--- old/dateutils-0.3.4/lib/date-core-strpf.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/date-core-strpf.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** date-core-strpf.c -- parser and formatter funs for date-core
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/date-core-strpf.h new/dateutils-0.3.5/lib/date-core-strpf.h
--- old/dateutils-0.3.4/lib/date-core-strpf.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/date-core-strpf.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** date-core-strpf.h -- parser and formatter funs for date-core
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/date-core.c new/dateutils-0.3.5/lib/date-core.c
--- old/dateutils-0.3.4/lib/date-core.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/date-core.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** date-core.c -- our universe of dates
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/date-core.h new/dateutils-0.3.5/lib/date-core.h
--- old/dateutils-0.3.4/lib/date-core.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/date-core.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** date-core.h -- our universe of dates
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/dt-core-private.h new/dateutils-0.3.5/lib/dt-core-private.h
--- old/dateutils-0.3.4/lib/dt-core-private.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/dt-core-private.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dt-core-private.h -- our universe of datetimes, private bits
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/dt-core-strpf.c new/dateutils-0.3.5/lib/dt-core-strpf.c
--- old/dateutils-0.3.4/lib/dt-core-strpf.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/dt-core-strpf.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dt-core-strpf.c -- parser and formatter funs for dt-core
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/dt-core-strpf.h new/dateutils-0.3.5/lib/dt-core-strpf.h
--- old/dateutils-0.3.4/lib/dt-core-strpf.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/dt-core-strpf.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dt-core-strpf.h -- parser and formatter funs for dt-core
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/dt-core-tz-glue.c new/dateutils-0.3.5/lib/dt-core-tz-glue.c
--- old/dateutils-0.3.4/lib/dt-core-tz-glue.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/dt-core-tz-glue.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dt-core-tz-glue.c -- gluing date/times and tzs
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/dt-core-tz-glue.h new/dateutils-0.3.5/lib/dt-core-tz-glue.h
--- old/dateutils-0.3.4/lib/dt-core-tz-glue.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/dt-core-tz-glue.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dt-core-tz-glue.h -- glue between tzraw and dt-core
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/dt-core.c new/dateutils-0.3.5/lib/dt-core.c
--- old/dateutils-0.3.4/lib/dt-core.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/dt-core.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dt-core.c -- our universe of datetimes
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
@@ -593,8 +593,13 @@
* no format specifiers */
case DT_JDN:
+ /* we demand a float representation from start to finish */
res.d.jdn = (dt_jdn_t)strtod(str, &on);
+ if (UNLIKELY(*on < '\0' || *on > ' ')) {
+ /* nah, that's not a distinguished float */
+ goto fucked;
+ }
/* fix up const-ness problem */
sp = on;
/* don't worry about time slot or date/time sandwiches */
@@ -603,10 +608,8 @@
case DT_LDN:
res.d.ldn = (dt_ldn_t)strtoi(str, &sp);
- if (*sp != '.') {
- dt_make_d_only(&res, DT_LDN);
- } else {
- /* yes, big cluster fuck */
+ if (*sp == '.') {
+ /* oooh, a double it seems */
double tmp = strtod(sp, &on);
/* fix up const-ness problem */
@@ -620,6 +623,12 @@
tmp -= (double)res.t.hms.s;
res.t.hms.ns = (tmp *= NANOS_PER_SEC);
dt_make_sandwich(&res, DT_LDN, DT_HMS);
+ } else if (UNLIKELY(*sp < '\0' || *sp > ' ')) {
+ /* not on my turf */
+ goto fucked;
+ } else {
+ /* looking good */
+ dt_make_d_only(&res, DT_LDN);
}
goto sober;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/dt-core.h new/dateutils-0.3.5/lib/dt-core.h
--- old/dateutils-0.3.4/lib/dt-core.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/dt-core.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dt-core.h -- our universe of datetimes
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/generics.h new/dateutils-0.3.5/lib/generics.h
--- old/dateutils-0.3.4/lib/generics.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/generics.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** generics.h -- type invariant generic funs
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/leaps.c new/dateutils-0.3.5/lib/leaps.c
--- old/dateutils-0.3.4/lib/leaps.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/leaps.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** leaps.c -- materialised leap seconds
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/leaps.h new/dateutils-0.3.5/lib/leaps.h
--- old/dateutils-0.3.4/lib/leaps.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/leaps.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** leaps.h -- materialised leap seconds
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/ltrcc.c new/dateutils-0.3.5/lib/ltrcc.c
--- old/dateutils-0.3.4/lib/ltrcc.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/ltrcc.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** ltrcc.c -- leapseconds materialiser
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/nifty.h new/dateutils-0.3.5/lib/nifty.h
--- old/dateutils-0.3.4/lib/nifty.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/nifty.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** nifty.h -- generally handy macroes
*
- * Copyright (C) 2009-2015 Sebastian Freundt
+ * Copyright (C) 2009-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/strops.c new/dateutils-0.3.5/lib/strops.c
--- old/dateutils-0.3.4/lib/strops.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/strops.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** strops.c -- useful string operations
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/strops.h new/dateutils-0.3.5/lib/strops.h
--- old/dateutils-0.3.4/lib/strops.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/strops.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** strops.h -- useful string operations
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/time-core-private.h new/dateutils-0.3.5/lib/time-core-private.h
--- old/dateutils-0.3.4/lib/time-core-private.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/time-core-private.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** time-core-private.h -- our universe of times, private bits
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/time-core-strpf.c new/dateutils-0.3.5/lib/time-core-strpf.c
--- old/dateutils-0.3.4/lib/time-core-strpf.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/time-core-strpf.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** time-core-strpf.c -- parser and formatter funs for time-core
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/time-core-strpf.h new/dateutils-0.3.5/lib/time-core-strpf.h
--- old/dateutils-0.3.4/lib/time-core-strpf.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/time-core-strpf.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** time-core-strpf.h -- parser and formatter funs for time-core
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/time-core.c new/dateutils-0.3.5/lib/time-core.c
--- old/dateutils-0.3.4/lib/time-core.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/time-core.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** time-core.c -- our universe of times
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/time-core.h new/dateutils-0.3.5/lib/time-core.h
--- old/dateutils-0.3.4/lib/time-core.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/time-core.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** time-core.h -- our universe of times
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/token.c new/dateutils-0.3.5/lib/token.c
--- old/dateutils-0.3.4/lib/token.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/token.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** token.c -- tokeniser specs and stuff
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/token.h new/dateutils-0.3.5/lib/token.h
--- old/dateutils-0.3.4/lib/token.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/token.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** token.h -- tokeniser specs and stuff
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/tzmap.c new/dateutils-0.3.5/lib/tzmap.c
--- old/dateutils-0.3.4/lib/tzmap.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/tzmap.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** tzmap.c -- zonename maps
*
- * Copyright (C) 2014-2015 Sebastian Freundt
+ * Copyright (C) 2014-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/tzmap.h new/dateutils-0.3.5/lib/tzmap.h
--- old/dateutils-0.3.4/lib/tzmap.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/tzmap.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** tzmap.h -- zonename maps
*
- * Copyright (C) 2014-2015 Sebastian Freundt
+ * Copyright (C) 2014-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/tzraw.c new/dateutils-0.3.5/lib/tzraw.c
--- old/dateutils-0.3.4/lib/tzraw.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/tzraw.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** tzraw.c -- reader for olson database zoneinfo files
*
- * Copyright (C) 2009-2015 Sebastian Freundt
+ * Copyright (C) 2009-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/tzraw.h new/dateutils-0.3.5/lib/tzraw.h
--- old/dateutils-0.3.4/lib/tzraw.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/tzraw.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** tzraw.h -- reader for olson database zoneinfo files
*
- * Copyright (C) 2009-2015 Sebastian Freundt
+ * Copyright (C) 2009-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/version.c new/dateutils-0.3.5/lib/version.c
--- old/dateutils-0.3.4/lib/version.c 2015-08-28 14:08:06.000000000 +0200
+++ new/dateutils-0.3.5/lib/version.c 2016-01-22 12:03:44.000000000 +0100
@@ -1,4 +1,4 @@
/* -*- c -*- */
#include "version.h"
-const char dateutils_version_string[] = "0.3.4";
+const char dateutils_version_string[] = "0.3.5";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/yd.c new/dateutils-0.3.5/lib/yd.c
--- old/dateutils-0.3.4/lib/yd.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/yd.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** yd.c -- guts for yd dates that consist of a year and a year-day
*
- * Copyright (C) 2010-2015 Sebastian Freundt
+ * Copyright (C) 2010-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/ymcw.c new/dateutils-0.3.5/lib/ymcw.c
--- old/dateutils-0.3.4/lib/ymcw.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/ymcw.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** ymcw.c -- guts for ymcw dates
*
- * Copyright (C) 2010-2015 Sebastian Freundt
+ * Copyright (C) 2010-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/ymd.c new/dateutils-0.3.5/lib/ymd.c
--- old/dateutils-0.3.4/lib/ymd.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/ymd.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** ymd.c -- guts for ymd dates
*
- * Copyright (C) 2010-2015 Sebastian Freundt
+ * Copyright (C) 2010-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/lib/ywd.c new/dateutils-0.3.5/lib/ywd.c
--- old/dateutils-0.3.4/lib/ywd.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/lib/ywd.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** ywd.c -- guts for ywd dates
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/m4/clitosis.m4 new/dateutils-0.3.5/m4/clitosis.m4
--- old/dateutils-0.3.4/m4/clitosis.m4 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/m4/clitosis.m4 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
dnl clitosis.m4 --- checks necessary for the clitosis test harness
dnl
-dnl Copyright (C) 2013-2015 Sebastian Freundt
+dnl Copyright (C) 2013-2016 Sebastian Freundt
dnl
dnl Author: Sebastian Freundt <hroptatyr(a)fresse.org>
dnl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/m4/sxe-compiler.m4 new/dateutils-0.3.5/m4/sxe-compiler.m4
--- old/dateutils-0.3.4/m4/sxe-compiler.m4 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/m4/sxe-compiler.m4 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
dnl compiler.m4 --- compiler magic
dnl
-dnl Copyright (C) 2005-2015 Sebastian Freundt
+dnl Copyright (C) 2005-2016 Sebastian Freundt
dnl Copyright (c) 2005 Steven G. Johnson
dnl Copyright (c) 2005 Matteo Frigo
dnl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/m4/sxe-libtool.m4 new/dateutils-0.3.5/m4/sxe-libtool.m4
--- old/dateutils-0.3.4/m4/sxe-libtool.m4 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/m4/sxe-libtool.m4 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
dnl sxe-libtool.m4 -- just a quick libtoolish macros
dnl
-dnl Copyright (C) 2007-2014 Sebastian Freundt.
+dnl Copyright (C) 2007-2016 Sebastian Freundt.
dnl
dnl This file is part of unserding
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/m4/yuck.m4 new/dateutils-0.3.5/m4/yuck.m4
--- old/dateutils-0.3.4/m4/yuck.m4 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/m4/yuck.m4 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
dnl yuck.m4 --- yuck goodies
dnl
-dnl Copyright (C) 2013-2015 Sebastian Freundt
+dnl Copyright (C) 2013-2016 Sebastian Freundt
dnl
dnl Author: Sebastian Freundt <hroptatyr(a)fresse.org>
dnl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/alist.c new/dateutils-0.3.5/src/alist.c
--- old/dateutils-0.3.4/src/alist.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/alist.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** alist.c -- bog standard associative lists
*
- * Copyright (C) 2010-2015 Sebastian Freundt
+ * Copyright (C) 2010-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/alist.h new/dateutils-0.3.5/src/alist.h
--- old/dateutils-0.3.4/src/alist.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/alist.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** alist.h -- bog standard associative lists
*
- * Copyright (C) 2010-2015 Sebastian Freundt
+ * Copyright (C) 2010-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dadd.c new/dateutils-0.3.5/src/dadd.c
--- old/dateutils-0.3.4/src/dadd.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dadd.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dadd.c -- perform simple date arithmetic, date plus duration
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
@@ -218,7 +218,6 @@
yuck_t argi[1U];
struct dt_dt_s d;
struct __strpdtdur_st_s st = __strpdtdur_st_initialiser();
- char *inp;
const char *ofmt;
char **fmt;
size_t nfmt;
@@ -260,34 +259,37 @@
dt_set_base(base);
}
+ /* sanity checks, decide whether we're a mass date adder
+ * or a mass duration adder, or both, a date and durations are
+ * present on the command line */
+ with (const char *inp = argi->args[0U]) {
+ /* date parsing needed postponing as we need to find out
+ * about the durations */
+ if (!dt_unk_p(dt_io_strpdt(inp, fmt, nfmt, NULL))) {
+ dt_given_p = true;
+ }
+ }
+
/* check first arg, if it's a date the rest of the arguments are
* durations, if not, dates must be read from stdin */
- for (size_t i = 0; i < argi->nargs; i++) {
- inp = argi->args[i];
+ for (size_t i = dt_given_p; i < argi->nargs; i++) {
+ const char *inp = argi->args[i];
do {
if (dt_io_strpdtdur(&st, inp) < 0) {
- if (UNLIKELY(i == 0)) {
- /* that's ok, must be a date then */
- dt_given_p = true;
- } else {
- serror("Error: \
+ serror("Error: \
cannot parse duration string `%s'", st.istr);
- rc = 1;
- goto dur_out;
- }
+ rc = 1;
+ goto dur_out;
}
} while (__strpdtdur_more_p(&st));
}
/* check if there's only d durations */
hackz = durs_only_d_p(st.durs, st.ndurs) ? NULL : fromz;
- /* sanity checks, decide whether we're a mass date adder
- * or a mass duration adder, or both, a date and durations are
- * present on the command line */
+ /* read the first argument again in light of a completely parsed
+ * duration sequence */
if (dt_given_p) {
- /* date parsing needed postponing as we need to find out
- * about the durations */
- inp = argi->args[0U];
+ const char *inp = argi->args[0U];
if (dt_unk_p(d = dt_io_strpdt(inp, fmt, nfmt, hackz))) {
error("\
Error: cannot interpret date/time string `%s'", inp);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dconv.c new/dateutils-0.3.5/src/dconv.c
--- old/dateutils-0.3.4/src/dconv.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dconv.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dconv.c -- convert calendrical and time stamp systems
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/ddiff.c new/dateutils-0.3.5/src/ddiff.c
--- old/dateutils-0.3.4/src/ddiff.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/ddiff.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** ddiff.c -- perform simple date arithmetic, date minus date
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dexpr-parser.y new/dateutils-0.3.5/src/dexpr-parser.y
--- old/dateutils-0.3.4/src/dexpr-parser.y 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dexpr-parser.y 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dexpr-parser.y -- parsing date expressions -*- c -*-
*
- * Copyright (C) 2002-2015 Sebastian Freundt
+ * Copyright (C) 2002-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)fresse.org>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dexpr-scanner.c new/dateutils-0.3.5/src/dexpr-scanner.c
--- old/dateutils-0.3.4/src/dexpr-scanner.c 2015-08-28 14:08:17.000000000 +0200
+++ new/dateutils-0.3.5/src/dexpr-scanner.c 2016-01-22 12:03:54.000000000 +0100
@@ -503,7 +503,7 @@
#line 1 "dexpr-scanner.l"
/*** dexpr.l -- date/time expressions for dateutils -*- C -*-
*
- * Copyright (C) 2002-2015 Sebastian Freundt
+ * Copyright (C) 2002-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)fresse.org>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dexpr-scanner.l new/dateutils-0.3.5/src/dexpr-scanner.l
--- old/dateutils-0.3.4/src/dexpr-scanner.l 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dexpr-scanner.l 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dexpr.l -- date/time expressions for dateutils -*- C -*-
*
- * Copyright (C) 2002-2015 Sebastian Freundt
+ * Copyright (C) 2002-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)fresse.org>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dgrep.c new/dateutils-0.3.5/src/dgrep.c
--- old/dateutils-0.3.4/src/dgrep.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dgrep.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dgrep.c -- grep for lines with dates
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dround.c new/dateutils-0.3.5/src/dround.c
--- old/dateutils-0.3.4/src/dround.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dround.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dround.c -- perform simple date arithmetic, round to duration
*
- * Copyright (C) 2012-2015 Sebastian Freundt
+ * Copyright (C) 2012-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dsort.c new/dateutils-0.3.5/src/dsort.c
--- old/dateutils-0.3.4/src/dsort.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dsort.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dsort.c -- sort FILEs or stdin chronologically
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dt-io-zone.c new/dateutils-0.3.5/src/dt-io-zone.c
--- old/dateutils-0.3.4/src/dt-io-zone.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dt-io-zone.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dt-io-zone.c -- abstract from raw zone interface
*
- * Copyright (C) 2010-2015 Sebastian Freundt
+ * Copyright (C) 2010-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dt-io-zone.h new/dateutils-0.3.5/src/dt-io-zone.h
--- old/dateutils-0.3.4/src/dt-io-zone.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dt-io-zone.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dt-io-zone.h -- abstract from raw zone interface
*
- * Copyright (C) 2009-2015 Sebastian Freundt
+ * Copyright (C) 2009-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dtest.c new/dateutils-0.3.5/src/dtest.c
--- old/dateutils-0.3.4/src/dtest.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dtest.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dtest.c -- like test(1) but for dates
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/dzone.c new/dateutils-0.3.5/src/dzone.c
--- old/dateutils-0.3.4/src/dzone.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/dzone.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** dzone.c -- convert date/times between timezones
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/prchunk.c new/dateutils-0.3.5/src/prchunk.c
--- old/dateutils-0.3.4/src/prchunk.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/prchunk.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** prchunk.c -- guessing line oriented data formats
*
- * Copyright (C) 2010-2015 Sebastian Freundt
+ * Copyright (C) 2010-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/prchunk.h new/dateutils-0.3.5/src/prchunk.h
--- old/dateutils-0.3.4/src/prchunk.h 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/prchunk.h 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** prchunk.h -- guessing line oriented data formats
*
- * Copyright (C) 2010-2015 Sebastian Freundt
+ * Copyright (C) 2010-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/src/strptime.c new/dateutils-0.3.5/src/strptime.c
--- old/dateutils-0.3.4/src/strptime.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/src/strptime.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** strptime.c -- a shell interface to strptime(3)
*
- * Copyright (C) 2011-2015 Sebastian Freundt
+ * Copyright (C) 2011-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/test/Makefile.am new/dateutils-0.3.5/test/Makefile.am
--- old/dateutils-0.3.4/test/Makefile.am 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/test/Makefile.am 2016-01-22 12:01:32.000000000 +0100
@@ -33,7 +33,7 @@
## our friendly helper
include clitosis.am
-AM_CLIT_LOG_FLAGS = -v --builddir "$(top_builddir)/src" --timeout 20 --keep-going
+AM_CLIT_LOG_FLAGS = -v --builddir "$(top_builddir)/src" --timeout 300 --keep-going
TESTS_ENVIRONMENT += GPERF=$(GPERF)
TESTS_ENVIRONMENT += GDATE=$(GDATE)
@@ -298,6 +298,7 @@
dt_tests += dadd.086.clit
dt_tests += dadd.087.clit
dt_tests += dadd.088.clit
+dt_tests += dadd.089.clit
dt_tests += dtest.001.clit
dt_tests += dtest.002.clit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/test/Makefile.in new/dateutils-0.3.5/test/Makefile.in
--- old/dateutils-0.3.4/test/Makefile.in 2015-08-28 14:07:48.000000000 +0200
+++ new/dateutils-0.3.5/test/Makefile.in 2016-01-22 12:03:30.000000000 +0100
@@ -554,37 +554,37 @@
dadd.076.clit dadd.077.clit dadd.078.clit dadd.079.clit \
dadd.080.clit dadd.081.clit dadd.082.clit dadd.083.clit \
dadd.084.clit dadd.085.clit dadd.086.clit dadd.087.clit \
- dadd.088.clit dtest.001.clit dtest.002.clit dtest.003.clit \
- dtest.004.clit dtest.005.clit dtest.006.clit dtest.007.clit \
- dtest.008.clit dtest.009.clit ddiff.001.clit ddiff.002.clit \
- ddiff.003.clit ddiff.004.clit ddiff.005.clit ddiff.006.clit \
- ddiff.007.clit ddiff.008.clit ddiff.009.clit ddiff.010.clit \
- ddiff.011.clit ddiff.012.clit ddiff.013.clit ddiff.014.clit \
- ddiff.015.clit ddiff.016.clit ddiff.017.clit ddiff.018.clit \
- ddiff.019.clit ddiff.020.clit ddiff.021.clit ddiff.022.clit \
- ddiff.023.clit ddiff.024.clit ddiff.025.clit ddiff.026.clit \
- ddiff.027.clit ddiff.028.clit ddiff.029.clit ddiff.030.clit \
- ddiff.031.clit ddiff.032.clit ddiff.033.clit ddiff.034.clit \
- ddiff.035.clit ddiff.036.clit ddiff.037.clit ddiff.038.clit \
- ddiff.039.clit ddiff.040.clit ddiff.041.clit ddiff.042.clit \
- ddiff.043.clit ddiff.044.clit ddiff.045.clit ddiff.046.clit \
- ddiff.047.clit ddiff.048.clit ddiff.049.clit ddiff.050.clit \
- ddiff.051.clit ddiff.052.clit ddiff.053.clit ddiff.054.clit \
- ddiff.055.clit ddiff.056.clit ddiff.057.clit ddiff.058.clit \
- ddiff.059.clit ddiff.060.clit ddiff.061.clit ddiff.062.clit \
- ddiff.063.clit ddiff.064.clit ddiff.065.clit ddiff.066.clit \
- ddiff.067.clit ddiff.068.clit ddiff.069.clit ddiff.070.clit \
- dgrep.001.clit dgrep.002.clit dgrep.003.clit dgrep.004.clit \
- dgrep.005.clit dgrep.006.clit dgrep.007.clit dgrep.008.clit \
- dgrep.009.clit dgrep.010.clit dgrep.011.clit dgrep.012.clit \
- dgrep.013.clit dgrep.014.clit dgrep.015.clit dgrep.016.clit \
- dgrep.017.clit dgrep.018.clit dgrep.019.clit dgrep.020.clit \
- dgrep.021.clit dgrep.022.clit dgrep.023.clit dgrep.024.clit \
- dgrep.025.clit dgrep.026.clit dgrep.027.clit dgrep.028.clit \
- dgrep.029.clit dgrep.030.clit dgrep.031.clit dgrep.032.clit \
- dgrep.033.clit dgrep.034.clit dgrep.035.clit dgrep.036.clit \
- dgrep.037.clit dgrep.038.clit dgrep.039.clit dgrep.040.clit \
- dround.001.clit dround.002.clit dround.003.clit \
+ dadd.088.clit dadd.089.clit dtest.001.clit dtest.002.clit \
+ dtest.003.clit dtest.004.clit dtest.005.clit dtest.006.clit \
+ dtest.007.clit dtest.008.clit dtest.009.clit ddiff.001.clit \
+ ddiff.002.clit ddiff.003.clit ddiff.004.clit ddiff.005.clit \
+ ddiff.006.clit ddiff.007.clit ddiff.008.clit ddiff.009.clit \
+ ddiff.010.clit ddiff.011.clit ddiff.012.clit ddiff.013.clit \
+ ddiff.014.clit ddiff.015.clit ddiff.016.clit ddiff.017.clit \
+ ddiff.018.clit ddiff.019.clit ddiff.020.clit ddiff.021.clit \
+ ddiff.022.clit ddiff.023.clit ddiff.024.clit ddiff.025.clit \
+ ddiff.026.clit ddiff.027.clit ddiff.028.clit ddiff.029.clit \
+ ddiff.030.clit ddiff.031.clit ddiff.032.clit ddiff.033.clit \
+ ddiff.034.clit ddiff.035.clit ddiff.036.clit ddiff.037.clit \
+ ddiff.038.clit ddiff.039.clit ddiff.040.clit ddiff.041.clit \
+ ddiff.042.clit ddiff.043.clit ddiff.044.clit ddiff.045.clit \
+ ddiff.046.clit ddiff.047.clit ddiff.048.clit ddiff.049.clit \
+ ddiff.050.clit ddiff.051.clit ddiff.052.clit ddiff.053.clit \
+ ddiff.054.clit ddiff.055.clit ddiff.056.clit ddiff.057.clit \
+ ddiff.058.clit ddiff.059.clit ddiff.060.clit ddiff.061.clit \
+ ddiff.062.clit ddiff.063.clit ddiff.064.clit ddiff.065.clit \
+ ddiff.066.clit ddiff.067.clit ddiff.068.clit ddiff.069.clit \
+ ddiff.070.clit dgrep.001.clit dgrep.002.clit dgrep.003.clit \
+ dgrep.004.clit dgrep.005.clit dgrep.006.clit dgrep.007.clit \
+ dgrep.008.clit dgrep.009.clit dgrep.010.clit dgrep.011.clit \
+ dgrep.012.clit dgrep.013.clit dgrep.014.clit dgrep.015.clit \
+ dgrep.016.clit dgrep.017.clit dgrep.018.clit dgrep.019.clit \
+ dgrep.020.clit dgrep.021.clit dgrep.022.clit dgrep.023.clit \
+ dgrep.024.clit dgrep.025.clit dgrep.026.clit dgrep.027.clit \
+ dgrep.028.clit dgrep.029.clit dgrep.030.clit dgrep.031.clit \
+ dgrep.032.clit dgrep.033.clit dgrep.034.clit dgrep.035.clit \
+ dgrep.036.clit dgrep.037.clit dgrep.038.clit dgrep.039.clit \
+ dgrep.040.clit dround.001.clit dround.002.clit dround.003.clit \
dround.004.clit dround.005.clit dround.006.clit \
dround.007.clit dround.008.clit dround.009.clit \
dround.010.clit dround.011.clit dround.012.clit \
@@ -707,7 +707,7 @@
clitosis_CPPFLAGS = -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 \
-D_BSD_SOURCE -D_ALL_SOURCE -D_NETBSD_SOURCE -UHAVE_VERSION_H
clitosis_LDADD = $(am__append_1)
-AM_CLIT_LOG_FLAGS = -v --builddir "$(top_builddir)/src" --timeout 20 --keep-going
+AM_CLIT_LOG_FLAGS = -v --builddir "$(top_builddir)/src" --timeout 300 --keep-going
dtcore_strp_LDADD = $(DT_LIBS)
dtcore_conv_LDADD = $(DT_LIBS)
dtcore_add_LDADD = $(DT_LIBS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/test/clitosis.c new/dateutils-0.3.5/test/clitosis.c
--- old/dateutils-0.3.4/test/clitosis.c 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/test/clitosis.c 2016-01-22 12:01:32.000000000 +0100
@@ -1,6 +1,6 @@
/*** clitosis.c -- command-line-interface tester on shell input syntax
*
- * Copyright (C) 2013-2015 Sebastian Freundt
+ * Copyright (C) 2013-2016 Sebastian Freundt
*
* Author: Sebastian Freundt <freundt(a)ga-group.nl>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/test/dadd.089.clit new/dateutils-0.3.5/test/dadd.089.clit
--- old/dateutils-0.3.4/test/dadd.089.clit 1970-01-01 01:00:00.000000000 +0100
+++ new/dateutils-0.3.5/test/dadd.089.clit 2016-01-22 12:01:32.000000000 +0100
@@ -0,0 +1,7 @@
+#!/usr/bin/clitoris
+
+## this is don_crissti's issue
+## http://unix.stackexchange.com/questions/24626/quickly-calculate-date-differ…
+$ dadd -i '%m%d%Y' 01012015 +1d
+2015-01-02
+$
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/test/dconv.126.clit new/dateutils-0.3.5/test/dconv.126.clit
--- old/dateutils-0.3.4/test/dconv.126.clit 2015-08-28 14:04:43.000000000 +0200
+++ new/dateutils-0.3.5/test/dconv.126.clit 2016-01-22 12:01:32.000000000 +0100
@@ -1,8 +1,8 @@
#!/usr/bin/clitoris ## -*- shell-script -*-
-$ dconv -i '%_b%_y' K5 -f '%Y-%m'
-2015-05
-$ dconv -i '%_b%_y' Z2 -f '%Y-%m'
+$ dconv -i '%_b%_y' K7 -f '%Y-%m' -b 2016-01-01
+2017-05
+$ dconv -i '%_b%_y' Z2 -f '%Y-%m' -b 2016-01-01
2022-12
$
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dateutils-0.3.4/version.mk new/dateutils-0.3.5/version.mk
--- old/dateutils-0.3.4/version.mk 2015-08-28 14:07:53.000000000 +0200
+++ new/dateutils-0.3.5/version.mk 2016-01-22 12:03:34.000000000 +0100
@@ -1,3 +1,3 @@
-VERSION = 0.3.4
+VERSION = 0.3.5
PACKAGE_VERSION = $(VERSION)
PACKAGE_STRING = $(PACKAGE) $(VERSION)
1
0
Hello community,
here is the log from the commit of package mate-tweak for openSUSE:Factory checked in at 2016-01-28 17:22:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mate-tweak (Old)
and /work/SRC/openSUSE:Factory/.mate-tweak.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mate-tweak"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mate-tweak/mate-tweak.changes 2016-01-12 16:14:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.mate-tweak.new/mate-tweak.changes 2016-01-28 17:22:39.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Jan 22 23:45:12 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to 3.5.4.
+- Remove mate-tweak-no-dock-lacking-warnings.patch: fixed upstream.
+
+-------------------------------------------------------------------
Old:
----
mate-tweak-3.5.3.tar.gz
mate-tweak-no-dock-lacking-warnings.patch
New:
----
mate-tweak-3.5.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mate-tweak.spec ++++++
--- /var/tmp/diff_new_pack.24AVcU/_old 2016-01-28 17:22:40.000000000 +0100
+++ /var/tmp/diff_new_pack.24AVcU/_new 2016-01-28 17:22:40.000000000 +0100
@@ -17,9 +17,9 @@
%define _name mate_tweak
-%define _rev 998ebdda6538
+%define _rev 67b861cfc2ca
Name: mate-tweak
-Version: 3.5.3
+Version: 3.5.4
Release: 0
Summary: MATE desktop tweak tool
License: GPL-2.0+
@@ -28,8 +28,6 @@
Source: https://bitbucket.org/ubuntu-mate/%{name}/get/%{version}.tar.gz#/%{name}-%{…
# PATCH-FIX-OPENSUSE mate-tweak-use-matemenu.patch sor.alexei(a)meowr.ru -- Layouts are patched to use mate-menu instead of mintMenu or gnome-main-menu.
Patch0: %{name}-use-matemenu.patch
-# PATCH-FIX-UPSTREAM mate-tweak-no-dock-lacking-warnings.patch sor.alexei(a)meowr.ru -- Do not show Python warnings if no dock is present.
-Patch1: %{name}-no-dock-lacking-warnings.patch
BuildRequires: fdupes
BuildRequires: gobject-introspection-devel
BuildRequires: intltool
@@ -42,6 +40,7 @@
Requires: mate-panel
Requires: python3-configobj
Requires: python3-gobject
+Requires: python3-psutil
# For privilege granting.
Requires: xdg-utils
Recommends: %{name}-lang
@@ -62,8 +61,7 @@
%prep
%setup -q -n ubuntu-mate-%{name}-%{_rev}
%patch0 -p1
-%patch1 -p1
-# Make the world a bit simpler.
+# Make world a bit simpler.
sed -i "s/'pkexec', '/'xdg-su', '-c /g" %{name}
sed -i '/polkit/d' setup.py
@@ -91,10 +89,14 @@
%defattr(-,root,root)
%doc COPYING README.md
%{_bindir}/%{name}
+%{_bindir}/marco-*
+%{_bindir}/metacity-*
%{_libexecdir}/%{name}/
%{python3_sitelib}/%{_name}-*
%{_datadir}/%{name}/
%{_datadir}/applications/%{name}.desktop
+%dir %{_datadir}/mate/
+%{_datadir}/mate/applications/
%{_mandir}/man?/%{name}.?%{?ext_man}
%files lang -f %{name}.lang
++++++ mate-tweak-3.5.3.tar.gz -> mate-tweak-3.5.4.tar.gz ++++++
++++ 56275 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package mopac7 for openSUSE:Factory checked in at 2016-01-28 17:22:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mopac7 (Old)
and /work/SRC/openSUSE:Factory/.mopac7.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mopac7"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mopac7/mopac7.changes 2015-03-03 11:14:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.mopac7.new/mopac7.changes 2016-01-28 17:22:38.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Jan 22 19:42:00 UTC 2016 - mpluskal(a)suse.com
+
+- Cleanup spec file
+- Do not ship .la file
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mopac7.spec ++++++
--- /var/tmp/diff_new_pack.jh0sge/_old 2016-01-28 17:22:39.000000000 +0100
+++ /var/tmp/diff_new_pack.jh0sge/_new 2016-01-28 17:22:39.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package mopac7
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -27,12 +27,12 @@
Source0: http://www.bioinformatics.org/ghemical/download/current/%{name}-%{version}.…
Patch1: mopac7-1.14-random_data.patch
Patch2: mopac7-1.14-libdir.patch
-BuildRequires: automake
BuildRequires: autoconf
-BuildRequires: pkg-config
+BuildRequires: automake
+BuildRequires: f2c
BuildRequires: gcc-fortran
BuildRequires: libtool
-Requires: %{libname} = %{version}
+BuildRequires: pkg-config
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -56,7 +56,7 @@
%package -n %{libname}-devel
Summary: Header files and static libraries from %{name}
Group: Development/Languages/C and C++
-Requires: %{libname} >= %{version}
+Requires: %{libname} = %{version}-%{release}
%description -n %{libname}-devel
MOPAC7 is a semi-empirical quantum-mechanics code written by James J. P.
@@ -73,8 +73,9 @@
find . -name ".cvsignore" -exec rm -f {} \;
%build
-./autogen.sh
-%configure --disable-static
+autoreconf -fiv
+%configure \
+ --disable-static
make %{?_smp_mflags}
%install
@@ -82,8 +83,8 @@
mkdir -p %{buildroot}%{_bindir}
libtool --mode=install install -m 755 fortran/%{name} %{buildroot}%{_bindir}/%{name}
sed -e "s|\./src|%{_bindir}|g" run_mopac7 > %{buildroot}%{_bindir}/run_mopac7
-chmod 755 %{buildroot}%{_bindir}/*
rm tests/Makefile*
+find %{buildroot} -type f -name "*.la" -delete -print
%post -n %{libname} -p /sbin/ldconfig
@@ -91,20 +92,18 @@
%files
%defattr(-,root,root)
-%doc AUTHORS COPYING ChangeLog NEWS README
-%doc tests
+%doc AUTHORS COPYING ChangeLog NEWS README tests
+%attr(755,root,root) %{_bindir}/run_mopac7
%{_bindir}/%{name}
-%{_bindir}/run_mopac7
%files -n %{libname}
%defattr(-,root,root)
-%{_libdir}/*.so.*
+%{_libdir}/libmopac7.so.*
%files -n %{libname}-devel
%defattr(-,root,root)
%{_includedir}/%{name}
-%{_libdir}/*.so
-%{_libdir}/libmopac7.la
-%{_libdir}/pkgconfig/*.pc
+%{_libdir}/libmopac7.so
+%{_libdir}/pkgconfig/libmopac7.pc
%changelog
1
0
Hello community,
here is the log from the commit of package rubygem-bundler for openSUSE:Factory checked in at 2016-01-28 17:22:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-bundler (Old)
and /work/SRC/openSUSE:Factory/.rubygem-bundler.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-bundler"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-bundler/rubygem-bundler.changes 2015-08-14 14:46:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-bundler.new/rubygem-bundler.changes 2016-01-28 17:22:35.000000000 +0100
@@ -1,0 +2,113 @@
+Tue Jan 5 14:16:56 UTC 2016 - mrueckert(a)suse.de
+
+- update to version 1.11.2
+ - _really_ stop calling `required_ruby_version` on nil
+ @specifications (#4147, @indirect)
+- update to version 1.11.1
+ - lazy-load Psych, again (#4149, @indirect)
+ - allow gemspec gems on other platforms (#4150, @indirect)
+ - fix --no-coc and --no-mit flags on `gem` (#4148,
+ @RochesterinNYC)
+ - stop calling `required_ruby_version` on nil @specifications
+ (#4147, @indirect)
+- update to version 1.11.0
+ - fail gracefully when trying to execute a non-executable file
+ (#4081, @fotanus)
+ - fix a crash when pushing a gem via `rake release` (@segiddins)
+ - actual Gemfile and lockfile filenames are used in messages
+ (#3672, @segiddins)
+ - the git remote for `rake release` is now customizable
+ (@skateman)
+ - file access permissions errors are now much more friendly
+ (#3703, #3735, #3858, #3988, #4009 @repinel, @Elffers,
+ @segiddins, @agis-)
+ - add support for showing help for plugin commands (@tf)
+ - send `X-Gemfile-Source` header to source mirrors (@agis-)
+ - show what version upstream dependencies were resolved to in
+ conflict messages (@segiddins)
+ - add support for using bundler setting to add private access
+ credentials for git sources (@frsyuki)
+ - take into consideration HTTP proxy settings in `.gemrc`
+ (@PG-kura)
+ - allow specifying a gem host to push to in the `GEM_HOST`
+ environment variable (@pmenglund)
+ - when gempec `required_ruby_version` is available and the
+ Gemfile specifies a ruby version, resolve for the given ruby
+ version (@segiddins)
+ - allow setting a `silence_root_warning` setting to silence the
+ warning when `bundle install` is run as root (@blackxored)
+ - update the `bundle gem` code of conduct template to Contributor
+ Covenant v1.3.0 (@CoralineAda)
+ - add support for specifying gems to update when running `bundle
+ lock` via `--update gem1 gem2` (@JuanitoFatas)
+ - added support for MRI 2.3 (@amatsuda)
+ - show a helpful message when requiring a file in `bundler
+ require` fails (#3960, @agis-)
+ - include git revision hash when printing a git source (#3433,
+ @agis-)
+ - improve hint when a resolution conflict occurs (@seanlinsley)
+ - show a friendly error when a git ref is not found (#3879,
+ @agis-)
+ - improve error message when sources are not absolute URIs
+ (#3925, @agis-)
+ - add `pkg` to rake's clobber list (#3676, @jasonkarns)
+ - retry fetching specs when fetching version metadata fails
+ (@jingweno)
+ - avoid showing bundler version warning messages twice (@fotanus)
+ - fix running `bundle check` with `--path` when the gems are only
+ installed globally (@akihiro17)
+ - fix `bin/setup` from `bundle gem` assuming `bash` is in `/bin`
+ - fail more gracefully when an HTTP remote is unreachable (#3765,
+ @steverob)
+ - fix a warning running `bundle exec` on jruby 9.0.0.0
+ (@deivid-rodriguez, @mastfish)
+ - fix the `bundle gem` readme when no tests are generated
+ (@roseweixel)
+ - the dependencies on test gems in `bundle gem` are now locked to
+ major versions (#3811, @indirect)
+ - fix the paths for native extensions generated by `--standalone`
+ (#3813, @AlexanderPavlenko)
+ - fix trying to cache a gem that has no source (@EduardoBautista)
+ - fix `--source` option to `bundle update` causing incorrect gem
+ unlocking (#3759, #3761, @neoeno)
+ - fix handling an empty `BUNDLE_GEMFILE` environment variables
+ (#3678, @agis-)
+ - avoid cleaning up gem extension directory in `bundle clean`
+ (@Sirupsen)
+ - fix the `ssl_verify_mode` setting not being treated as a number
+ (@goughy000)
+ - fix not retrying on zlib errors (#4047, @andremedeiros)
+ - fix a warning being shown for using `URI.encode`
+ (@EduardoBautista)
+ - fix handling of fatal HTTP errors (#3830, @indirect)
+ - ensure all `sudo` access is done in a thread-safe manner
+ (#3910, @agis-)
+ - fix caching gems with a path with the same prefix as the
+ bundled application (@indirect)
+ - fix showing gemspec validation errors on `bundle exec` (#3895,
+ @agis-)
+ - distinguish Gemfile syntax and evaluation errors (#3783,
+ @agis-)
+ - fix nested Gemfile sources not restoring the previous source
+ (#3974, @agis-)
+ - fix the `RUBYLIB` environment variable not being cleaned
+ (#3982, @agis-)
+ - fix handling a dependency missing from `Gemfile.lock` so
+ parallel installation does not deadlock (#4012, @lukaso)
+ - also print gemspecs in `bundle env` output (@agis-)
+ - fix handling when a `path` source does not have a gemspec but a
+ lockfile says there is (#4004, @segiddins)
+ - show a warning when the `RUBYGEMS_GEMDEPS` environment variable
+ is set (#3656, @agis-)
+ - fix handling invalid RubyGems configuration files (#4042,
+ @agis-)
+ - fix `bundle console` falling back to `irb` when the preferred
+ console is unavailable (@felixbuenemann)
+ - restrict platforms when referencing a `gemspec` in the
+ `Gemfile` to those defined in the gemspec (#4102, @smellsblue)
+ - speed up dependency resolution in pathological cases by 25x
+ (#3803, @segiddins)
+ - drop string allocations when searching for gems (@jrafanie)
+- refreshed gemspec_remove_pem.patch
+
+-------------------------------------------------------------------
Old:
----
bundler-1.10.6.gem
New:
----
bundler-1.11.2.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-bundler.spec ++++++
--- /var/tmp/diff_new_pack.iDjHWK/_old 2016-01-28 17:22:36.000000000 +0100
+++ /var/tmp/diff_new_pack.iDjHWK/_new 2016-01-28 17:22:36.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-bundler
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
#
Name: rubygem-bundler
-Version: 1.10.6
+Version: 1.11.2
Release: 0
%define mod_name bundler
%define mod_full_name %{mod_name}-%{version}
++++++ bundler-1.10.6.gem -> bundler-1.11.2.gem ++++++
++++ 10483 lines of diff (skipped)
++++++ gemspec_remove_pem.patch ++++++
--- /var/tmp/diff_new_pack.iDjHWK/_old 2016-01-28 17:22:36.000000000 +0100
+++ /var/tmp/diff_new_pack.iDjHWK/_new 2016-01-28 17:22:36.000000000 +0100
@@ -1,6 +1,6 @@
-Index: bundler-1.10.6/lib/bundler/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem
+Index: bundler-1.11.6/lib/bundler/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem
===================================================================
---- bundler-1.10.6.orig/lib/bundler/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem
+--- bundler-1.11.2/lib/bundler/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem
+++ /dev/null
@@ -1,14 +0,0 @@
------BEGIN CERTIFICATE-----
@@ -17,9 +17,9 @@
-lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
-AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
------END CERTIFICATE-----
-Index: bundler-1.10.6/lib/bundler/ssl_certs/DigiCertHighAssuranceEVRootCA.pem
+Index: bundler-1.11.2/lib/bundler/ssl_certs/DigiCertHighAssuranceEVRootCA.pem
===================================================================
---- bundler-1.10.6.orig/lib/bundler/ssl_certs/DigiCertHighAssuranceEVRootCA.pem
+--- bundler-1.11.2/lib/bundler/ssl_certs/DigiCertHighAssuranceEVRootCA.pem
+++ /dev/null
@@ -1,23 +0,0 @@
------BEGIN CERTIFICATE-----
@@ -45,9 +45,9 @@
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
-+OkuE6N36B9K
------END CERTIFICATE-----
-Index: bundler-1.10.6/lib/bundler/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem
+Index: bundler-1.11.2/lib/bundler/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem
===================================================================
---- bundler-1.10.6.orig/lib/bundler/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem
+--- bundler-1.11.2/lib/bundler/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN CERTIFICATE-----
@@ -78,9 +78,9 @@
-95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
-2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
-Index: bundler-1.10.6/lib/bundler/ssl_certs/GeoTrustGlobalCA.pem
+Index: bundler-1.11.2/lib/bundler/ssl_certs/GeoTrustGlobalCA.pem
===================================================================
---- bundler-1.10.6.orig/lib/bundler/ssl_certs/GeoTrustGlobalCA.pem
+--- bundler-1.11.2/lib/bundler/ssl_certs/GeoTrustGlobalCA.pem
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
@@ -103,9 +103,9 @@
-hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
-5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
------END CERTIFICATE-----
-Index: bundler-1.10.6/lib/bundler/ssl_certs/AddTrustExternalCARoot-2048.pem
+Index: bundler-1.11.2/lib/bundler/ssl_certs/AddTrustExternalCARoot-2048.pem
===================================================================
---- bundler-1.10.6.orig/lib/bundler/ssl_certs/AddTrustExternalCARoot-2048.pem
+--- bundler-1.11.2/lib/bundler/ssl_certs/AddTrustExternalCARoot-2048.pem
+++ /dev/null
@@ -1,25 +0,0 @@
------BEGIN CERTIFICATE-----
@@ -133,9 +133,9 @@
-c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
-mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-Index: bundler-1.10.6/lib/bundler/ssl_certs/AddTrustExternalCARoot.pem
+Index: bundler-1.11.2/lib/bundler/ssl_certs/AddTrustExternalCARoot.pem
===================================================================
---- bundler-1.10.6.orig/lib/bundler/ssl_certs/AddTrustExternalCARoot.pem
+--- bundler-1.11.2/lib/bundler/ssl_certs/AddTrustExternalCARoot.pem
+++ /dev/null
@@ -1,32 +0,0 @@
------BEGIN CERTIFICATE-----
@@ -170,10 +170,10 @@
-PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
-pu/xO28QOG8=
------END CERTIFICATE-----
-Index: bundler-1.10.6/bundler-1.10.6.gemspec
+Index: bundler-1.11.2/bundler-1.11.2.gemspec
===================================================================
---- bundler-1.10.6.orig/bundler-1.10.6.gemspec
-+++ bundler-1.10.6/bundler-1.10.6.gemspec
+--- bundler-1.11.2/bundler-1.11.2.gemspec
++++ bundler-1.11.2/bundler-1.11.2.gemspec
@@ -42,5 +42,8 @@ Gem::Specification.new do |s|
s.add_dependency(%q<ronn>, ["~> 0.7.3"])
s.add_dependency(%q<rspec>, ["~> 3.0"])
1
0
Hello community,
here is the log from the commit of package rubygem-amq-protocol for openSUSE:Factory checked in at 2016-01-28 17:22:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-amq-protocol (Old)
and /work/SRC/openSUSE:Factory/.rubygem-amq-protocol.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-amq-protocol"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-amq-protocol/rubygem-amq-protocol.changes 2015-12-01 09:18:45.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-amq-protocol.new/rubygem-amq-protocol.changes 2016-01-28 17:22:34.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Dec 18 05:28:32 UTC 2015 - coolo(a)suse.com
+
+- updated to version 2.0.1
+ see installed ChangeLog.md
+
+-------------------------------------------------------------------
Old:
----
amq-protocol-2.0.0.gem
New:
----
amq-protocol-2.0.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-amq-protocol.spec ++++++
--- /var/tmp/diff_new_pack.FeSmCv/_old 2016-01-28 17:22:35.000000000 +0100
+++ /var/tmp/diff_new_pack.FeSmCv/_new 2016-01-28 17:22:35.000000000 +0100
@@ -24,7 +24,7 @@
#
Name: rubygem-amq-protocol
-Version: 2.0.0
+Version: 2.0.1
Release: 0
%define mod_name amq-protocol
%define mod_full_name %{mod_name}-%{version}
++++++ amq-protocol-2.0.0.gem -> amq-protocol-2.0.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2015-08-15 11:07:32.000000000 +0200
+++ new/README.md 2015-12-17 14:41:10.000000000 +0100
@@ -10,8 +10,7 @@
## Supported Ruby Versions
amq-protocol `1.9.2` was the last version to support Ruby 1.8 and 1.9.
-
-amq-protocol `2.0.0` and later will only support Ruby 2.0+.
+amq-protocol `2.0.0` and later only supports Ruby 2.0+.
## Installation
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/amq/protocol/client.rb new/lib/amq/protocol/client.rb
--- old/lib/amq/protocol/client.rb 2015-08-15 11:07:32.000000000 +0200
+++ new/lib/amq/protocol/client.rb 2015-12-17 14:41:10.000000000 +0100
@@ -1437,7 +1437,8 @@
result = [60, 0].pack(PACK_UINT16_X2)
result += AMQ::Pack.pack_uint64_big_endian(body_size)
result += [flags].pack(PACK_UINT16)
- result + pieces.join(EMPTY_STRING)
+ pieces_joined = pieces.join(EMPTY_STRING)
+ result.force_encoding(pieces_joined.encoding) + pieces_joined
end
# THIS DECODES ONLY FLAGS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/amq/protocol/table.rb new/lib/amq/protocol/table.rb
--- old/lib/amq/protocol/table.rb 2015-08-15 11:07:32.000000000 +0200
+++ new/lib/amq/protocol/table.rb 2015-12-17 14:41:10.000000000 +0100
@@ -41,11 +41,11 @@
buffer << TYPE_HASH
buffer << self.encode(value)
else
- buffer << TableValueEncoder.encode(value)
+ buffer << TableValueEncoder.encode(value).force_encoding(buffer.encoding)
end
end
- [buffer.bytesize].pack(PACK_UINT32) + buffer
+ [buffer.bytesize].pack(PACK_UINT32).force_encoding(buffer.encoding) + buffer
end
@@ -66,6 +66,12 @@
when TYPE_STRING
v, offset = TableValueDecoder.decode_string(data, offset)
v
+ when TYPE_BYTE_ARRAY
+ # Ruby doesn't have a direct counterpart to
+ # ByteBuffer or byte[], so using a string feels
+ # more appropriate than an array of fixnums
+ v, offset = TableValueDecoder.decode_string(data, offset)
+ v
when TYPE_INTEGER
v, offset = TableValueDecoder.decode_integer(data, offset)
v
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/amq/protocol/table_value_decoder.rb new/lib/amq/protocol/table_value_decoder.rb
--- old/lib/amq/protocol/table_value_decoder.rb 2015-08-15 11:07:32.000000000 +0200
+++ new/lib/amq/protocol/table_value_decoder.rb 2015-12-17 14:41:10.000000000 +0100
@@ -35,6 +35,12 @@
when TYPE_STRING
v, offset = decode_string(data, offset)
v
+ when TYPE_BYTE_ARRAY
+ # Ruby doesn't have a direct counterpart to
+ # ByteBuffer or byte[], so using a string feels
+ # more appropriate than an array of fixnums
+ v, offset = decode_string(data, offset)
+ v
when TYPE_INTEGER
v, offset = decode_integer(data, offset)
v
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/amq/protocol/version.rb new/lib/amq/protocol/version.rb
--- old/lib/amq/protocol/version.rb 2015-08-15 11:07:32.000000000 +0200
+++ new/lib/amq/protocol/version.rb 2015-12-17 14:41:10.000000000 +0100
@@ -1,5 +1,5 @@
module AMQ
module Protocol
- VERSION = "2.0.0"
+ VERSION = "2.0.1"
end # Protocol
end # AMQ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2015-08-15 11:07:32.000000000 +0200
+++ new/metadata 2015-12-17 14:41:10.000000000 +0100
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: amq-protocol
version: !ruby/object:Gem::Version
- version: 2.0.0
+ version: 2.0.1
platform: ruby
authors:
- Jakub Stastny
@@ -11,7 +11,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2015-08-15 00:00:00.000000000 Z
+date: 2015-12-17 00:00:00.000000000 Z
dependencies: []
description: |2
amq-protocol is an AMQP 0.9.1 serialization library for Ruby. It is not a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/amq/protocol/table_spec.rb new/spec/amq/protocol/table_spec.rb
--- old/spec/amq/protocol/table_spec.rb 2015-08-15 11:07:32.000000000 +0200
+++ new/spec/amq/protocol/table_spec.rb 2015-12-17 14:41:10.000000000 +0100
@@ -93,6 +93,12 @@
it "is capable of decoding string table values" do
input = { "stringvalue" => "string" }
expect(Table.decode(Table.encode(input))).to eq(input)
+
+ expect(Table.decode("\x00\x00\x00\x17\vstringvalueS\x00\x00\x00\x06string")).to eq(input)
+ end
+
+ it "is capable of decoding byte array table values (as Ruby strings)" do
+ expect(Table.decode("\x00\x00\x00\x17\vstringvaluex\x00\x00\x00\x06string")).to eq({"stringvalue" => "string"})
end
it "is capable of decoding string table values with UTF-8 characters" do
1
0
Hello community,
here is the log from the commit of package librecad for openSUSE:Factory checked in at 2016-01-28 17:22:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/librecad (Old)
and /work/SRC/openSUSE:Factory/.librecad.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "librecad"
Changes:
--------
--- /work/SRC/openSUSE:Factory/librecad/librecad.changes 2015-09-13 09:45:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.librecad.new/librecad.changes 2016-01-28 17:22:33.000000000 +0100
@@ -1,0 +2,9 @@
+Mon Jan 18 07:43:39 UTC 2016 - jslaby(a)suse.com
+
+- Update to new upstream release 2.0.9:
+ * Mostly a bug fixing release
+ * Fixed a few crashes due to undo and deleted entities
+ * More at:
+ http://forum.librecad.org/2-0-9-released-td5712809.html
+
+-------------------------------------------------------------------
Old:
----
2.0.8.tar.gz
New:
----
2.0.9.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ librecad.spec ++++++
--- /var/tmp/diff_new_pack.nLGAbv/_old 2016-01-28 17:22:34.000000000 +0100
+++ /var/tmp/diff_new_pack.nLGAbv/_new 2016-01-28 17:22:34.000000000 +0100
@@ -17,7 +17,7 @@
Name: librecad
-Version: 2.0.8
+Version: 2.0.9
Release: 0
Summary: Computer-aided design (CAD) software package for 2D design and drafting
License: GPL-2.0 and (Apache-2.0 or SUSE-GPL-3.0+-with-font-exception)
@@ -26,7 +26,7 @@
#Git-Clone: git://github.com/LibreCAD/LibreCAD
#Git-Web: http://github.com/LibreCAD/LibreCAD/tags
-Source: https://github.com/LibreCAD/LibreCAD/archive/2.0.8.tar.gz
+Source: https://github.com/LibreCAD/LibreCAD/archive/%{version}.tar.gz
# Version is actually 8, not 3 (it is 3 in the filename due to how MediaWiki
# works -- see http://wiki.librecad.org/index.php/File:Architect3-LCAD.zip)
Source2: http://wiki.librecad.org/images/d/d9/Architect3-LCAD.zip
++++++ 2.0.8.tar.gz -> 2.0.9.tar.gz ++++++
/work/SRC/openSUSE:Factory/librecad/2.0.8.tar.gz /work/SRC/openSUSE:Factory/.librecad.new/2.0.9.tar.gz differ: char 25, line 1
1
0
Hello community,
here is the log from the commit of package hugin for openSUSE:Factory checked in at 2016-01-28 17:22:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hugin (Old)
and /work/SRC/openSUSE:Factory/.hugin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hugin"
Changes:
--------
--- /work/SRC/openSUSE:Factory/hugin/hugin.changes 2015-09-08 17:41:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.hugin.new/hugin.changes 2016-01-28 17:22:31.000000000 +0100
@@ -0,0 +1,6 @@
+-------------------------------------------------------------------
+Sun Jan 17 18:54:02 UTC 2016 - p.drouand(a)gmail.com
+
+- Remove useless tclap dependency
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hugin.spec ++++++
--- /var/tmp/diff_new_pack.k7iDwn/_old 2016-01-28 17:22:32.000000000 +0100
+++ /var/tmp/diff_new_pack.k7iDwn/_new 2016-01-28 17:22:32.000000000 +0100
@@ -42,7 +42,6 @@
BuildRequires: python-wxWidgets >= 2.7.0
BuildRequires: sqlite3-devel
BuildRequires: swig
-BuildRequires: tclap
BuildRequires: update-desktop-files
BuildRequires: vigra-devel
BuildRequires: wxWidgets-devel
1
0
Hello community,
here is the log from the commit of package pngcrush for openSUSE:Factory checked in at 2016-01-28 17:22:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pngcrush (Old)
and /work/SRC/openSUSE:Factory/.pngcrush.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pngcrush"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pngcrush/pngcrush.changes 2015-03-27 09:41:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.pngcrush.new/pngcrush.changes 2016-01-28 17:22:30.000000000 +0100
@@ -1,0 +2,15 @@
+Sun Jan 17 15:04:31 UTC 2016 - jengelh(a)inai.de
+
+- Update to new upstream release 1.7.92
+* Fixed segfault while writing a -loco MNG
+* Eliminated a potential overflow while adding iTXt chunk
+* Fixed a double-free bug (CVE-2015-7700). There was a "free" of
+ the sPLT chunk structure in pngcrush and then again in png.c.
+* Increased some buffer sizes in an attempt to prevent possible
+ overflows.
+* Increased maximum size of a text chunk input from 260 to 2048
+ (STR_BUF_SIZE) bytes, to agree with the help screen
+* Fixed bug that caused text chunks after IDAT to be written only
+ when the "-save" option is used.
+
+-------------------------------------------------------------------
Old:
----
pngcrush-1.7.85.tar.gz
New:
----
pngcrush-1.7.92.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pngcrush.spec ++++++
--- /var/tmp/diff_new_pack.E8O7eC/_old 2016-01-28 17:22:31.000000000 +0100
+++ /var/tmp/diff_new_pack.E8O7eC/_new 2016-01-28 17:22:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package pngcrush
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
Name: pngcrush
-Version: 1.7.85
+Version: 1.7.92
Release: 0
Summary: Optimizer for PNG Files that can also insert or delete specified Chunks
License: Zlib
Group: Productivity/Graphics/Other
Url: http://pmt.sourceforge.net/pngcrush/
-Source: http://prdownloads.sourceforge.net/pmt/pngcrush-%{version}.tar.gz
+Source: http://downloads.sf.net/pmt/%{name}-%{version}.tar.gz
Patch1: pngcrush-makefile-add-optflags.diff
BuildRequires: glibc-devel
BuildRequires: libpng-devel
@@ -33,7 +33,7 @@
%description
pngcrush is an excellent batch-mode compression utility for PNG
images. Depending on the application that created the original PNGs, it can
-improve the file size anywhere from a few percent to 40% or more (completely
+improve the file size anywhere from a few percent to 40%% or more (completely
losslessly). The utility also allows specified PNG chunks (e.g. text comments)
to be inserted or deleted, and it can fix incorrect gamma info written by
Photoshop 5.0 as well as the erroneous iCCP chunk written by Photoshop 5.5.
++++++ pngcrush-1.7.85.tar.gz -> pngcrush-1.7.92.tar.gz ++++++
++++ 7457 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package umbrello for openSUSE:Factory checked in at 2016-01-28 17:22:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/umbrello (Old)
and /work/SRC/openSUSE:Factory/.umbrello.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "umbrello"
Changes:
--------
--- /work/SRC/openSUSE:Factory/umbrello/umbrello.changes 2016-01-10 13:07:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.umbrello.new/umbrello.changes 2016-01-28 17:22:28.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:37:24 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
umbrello-15.12.0.tar.xz
New:
----
umbrello-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ umbrello.spec ++++++
--- /var/tmp/diff_new_pack.BZH4wd/_old 2016-01-28 17:22:29.000000000 +0100
+++ /var/tmp/diff_new_pack.BZH4wd/_new 2016-01-28 17:22:29.000000000 +0100
@@ -24,7 +24,7 @@
License: GPL-2.0 and GFDL-1.2
Group: Development/Tools/Other
Url: http://www.kde.org/
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: %{name}-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ umbrello-15.12.0.tar.xz -> umbrello-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/.arcconfig new/umbrello-15.12.1/.arcconfig
--- old/umbrello-15.12.0/.arcconfig 1970-01-01 01:00:00.000000000 +0100
+++ new/umbrello-15.12.1/.arcconfig 2016-01-07 00:18:00.000000000 +0100
@@ -0,0 +1,4 @@
+{
+ "phabricator.uri" : "https://phabricator.kde.org/project/profile/60/",
+ "history.immutable" : true
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/.reviewboardrc new/umbrello-15.12.1/.reviewboardrc
--- old/umbrello-15.12.0/.reviewboardrc 1970-01-01 01:00:00.000000000 +0100
+++ new/umbrello-15.12.1/.reviewboardrc 2016-01-07 00:18:00.000000000 +0100
@@ -0,0 +1,3 @@
+REPOSITORY = "git://anongit.kde.org/umbrello"
+REVIEWBOARD_URL = "https://git.reviewboard.kde.org"
+TARGET_GROUPS = "umbrello"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/CMakeLists.txt new/umbrello-15.12.1/CMakeLists.txt
--- old/umbrello-15.12.0/CMakeLists.txt 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/CMakeLists.txt 2016-01-07 00:18:00.000000000 +0100
@@ -3,7 +3,7 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "15")
set (KDE_APPLICATIONS_VERSION_MINOR "12")
-set (KDE_APPLICATIONS_VERSION_MICRO "0")
+set (KDE_APPLICATIONS_VERSION_MICRO "1")
set(UMBRELLO_VERSION_MAJOR "2")
set(UMBRELLO_VERSION_MINOR "18")
@@ -180,6 +180,7 @@
message(STATUS "Using automoc4 version ${AUTOMOC4_VERSION}")
message(STATUS "Using cmake version ${CMAKE_VERSION}")
+message(STATUS "Using Qt version ${QT_MIN_VERSION}")
find_package(LibXslt)
set_package_properties(LibXslt PROPERTIES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/basictypes.h new/umbrello-15.12.1/umbrello/basictypes.h
--- old/umbrello-15.12.0/umbrello/basictypes.h 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/basictypes.h 2016-01-07 00:18:00.000000000 +0100
@@ -339,4 +339,14 @@
} // end namespace Uml
+static inline QString toString(Uml::ProgrammingLanguage::Enum lang)
+{
+ return Uml::ProgrammingLanguage::toString(lang);
+}
+
+static inline QString toString(Uml::Visibility::Enum visibility)
+{
+ return Uml::Visibility::toString(visibility);
+}
+
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/codegenerators/python/pythonwriter.cpp new/umbrello-15.12.1/umbrello/codegenerators/python/pythonwriter.cpp
--- old/umbrello-15.12.0/umbrello/codegenerators/python/pythonwriter.cpp 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/codegenerators/python/pythonwriter.cpp 2016-01-07 00:18:00.000000000 +0100
@@ -24,6 +24,7 @@
#include <QFile>
#include <QRegExp>
+#include <QTextCodec>
#include <QTextStream>
static const char *reserved_words[] = {
@@ -219,6 +220,7 @@
h<<str<<m_endl;
}
+ h << "# coding=" << h.codec()->name() << m_endl;
// generate import statement for superclasses and take packages into account
str = cleanName(c->name());
QString pkg = cleanName(c->package());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/dialogs/classpropertiesdialog.cpp new/umbrello-15.12.1/umbrello/dialogs/classpropertiesdialog.cpp
--- old/umbrello-15.12.0/umbrello/dialogs/classpropertiesdialog.cpp 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/dialogs/classpropertiesdialog.cpp 2016-01-07 00:18:00.000000000 +0100
@@ -94,6 +94,7 @@
if (w->baseType() == WidgetBase::wt_Class
|| w->baseType() == WidgetBase::wt_Interface
+ || w->baseType() == WidgetBase::wt_Enum
|| w->baseType() == WidgetBase::wt_Package) {
setupPages(true);
} else if (w->baseType() == WidgetBase::wt_Component) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/dialogs/pages/classgeneralpage.cpp new/umbrello-15.12.1/umbrello/dialogs/pages/classgeneralpage.cpp
--- old/umbrello-15.12.0/umbrello/dialogs/pages/classgeneralpage.cpp 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/dialogs/pages/classgeneralpage.cpp 2016-01-07 00:18:00.000000000 +0100
@@ -110,7 +110,7 @@
++row;
}
- if (t == UMLObject::ot_Class || t == UMLObject::ot_Interface) {
+ if (t == UMLObject::ot_Class || t == UMLObject::ot_Interface || t == UMLObject::ot_Enum) {
m_packageWidget = new UMLPackageWidget(m_pObject);
m_packageWidget->addToLayout(m_pNameLayout, row);
++row;
@@ -282,7 +282,7 @@
if (m_pObject) {
UMLObject::ObjectType t = m_pObject->baseType();
- if (t == UMLObject::ot_Class || t == UMLObject::ot_Interface) {
+ if (t == UMLObject::ot_Class || t == UMLObject::ot_Interface || t == UMLObject::ot_Enum) {
m_packageWidget->apply();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/dialogs/widgets/resolutionwidget.h new/umbrello-15.12.1/umbrello/dialogs/widgets/resolutionwidget.h
--- old/umbrello-15.12.0/umbrello/dialogs/widgets/resolutionwidget.h 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/dialogs/widgets/resolutionwidget.h 2016-01-07 00:18:00.000000000 +0100
@@ -31,7 +31,7 @@
{
Q_OBJECT
public:
- ResolutionWidget(QWidget *parent = 0);
+ explicit ResolutionWidget(QWidget *parent = 0);
void addToLayout(QHBoxLayout *layout);
float currentResolution();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/dialogs/widgets/umlpackagewidget.h new/umbrello-15.12.1/umbrello/dialogs/widgets/umlpackagewidget.h
--- old/umbrello-15.12.0/umbrello/dialogs/widgets/umlpackagewidget.h 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/dialogs/widgets/umlpackagewidget.h 2016-01-07 00:18:00.000000000 +0100
@@ -24,7 +24,7 @@
{
Q_OBJECT
public:
- UMLPackageWidget(UMLObject *o, QWidget *parent = 0);
+ explicit UMLPackageWidget(UMLObject *o, QWidget *parent = 0);
~UMLPackageWidget();
void addToLayout(QGridLayout *layout, int row);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/main.cpp new/umbrello-15.12.1/umbrello/main.cpp
--- old/umbrello-15.12.0/umbrello/main.cpp 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/main.cpp 2016-01-07 00:18:00.000000000 +0100
@@ -26,7 +26,6 @@
#include <kconfig.h>
#include <KLocalizedString>
#include <ktip.h>
-#include <kwindowsystem.h>
#if QT_VERSION >= 0x050000
#include <QApplication>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/pics/global/CMakeLists.txt new/umbrello-15.12.1/umbrello/pics/global/CMakeLists.txt
--- old/umbrello-15.12.0/umbrello/pics/global/CMakeLists.txt 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/pics/global/CMakeLists.txt 2016-01-07 00:18:00.000000000 +0100
@@ -1,5 +1,5 @@
if(NOT BUILD_KF5)
- kde4_install_icons(${ICON_INSTALL_DIR})
+ add_subdirectory(kde4)
else()
ecm_install_icons(
ICONS 16-apps-umbrello.png
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/pics/global/kde4/CMakeLists.txt new/umbrello-15.12.1/umbrello/pics/global/kde4/CMakeLists.txt
--- old/umbrello-15.12.0/umbrello/pics/global/kde4/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/pics/global/kde4/CMakeLists.txt 2016-01-07 00:18:00.000000000 +0100
@@ -0,0 +1,3 @@
+if(NOT BUILD_KF5)
+ kde4_install_icons(${ICON_INSTALL_DIR})
+endif()
Files old/umbrello-15.12.0/umbrello/pics/global/kde4/hi128-apps-umbrello.png and new/umbrello-15.12.1/umbrello/pics/global/kde4/hi128-apps-umbrello.png differ
Files old/umbrello-15.12.0/umbrello/pics/global/kde4/hi16-apps-umbrello.png and new/umbrello-15.12.1/umbrello/pics/global/kde4/hi16-apps-umbrello.png differ
Files old/umbrello-15.12.0/umbrello/pics/global/kde4/hi16-mimetypes-application-x-uml.png and new/umbrello-15.12.1/umbrello/pics/global/kde4/hi16-mimetypes-application-x-uml.png differ
Files old/umbrello-15.12.0/umbrello/pics/global/kde4/hi22-apps-umbrello.png and new/umbrello-15.12.1/umbrello/pics/global/kde4/hi22-apps-umbrello.png differ
Files old/umbrello-15.12.0/umbrello/pics/global/kde4/hi32-apps-umbrello.png and new/umbrello-15.12.1/umbrello/pics/global/kde4/hi32-apps-umbrello.png differ
Files old/umbrello-15.12.0/umbrello/pics/global/kde4/hi32-mimetypes-application-x-uml.png and new/umbrello-15.12.1/umbrello/pics/global/kde4/hi32-mimetypes-application-x-uml.png differ
Files old/umbrello-15.12.0/umbrello/pics/global/kde4/hi48-apps-umbrello.png and new/umbrello-15.12.1/umbrello/pics/global/kde4/hi48-apps-umbrello.png differ
Files old/umbrello-15.12.0/umbrello/pics/global/kde4/hi64-apps-umbrello.png and new/umbrello-15.12.1/umbrello/pics/global/kde4/hi64-apps-umbrello.png differ
Files old/umbrello-15.12.0/umbrello/pics/global/kde4/hisc-apps-umbrello.svgz and new/umbrello-15.12.1/umbrello/pics/global/kde4/hisc-apps-umbrello.svgz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/stereotypesmodel.h new/umbrello-15.12.1/umbrello/stereotypesmodel.h
--- old/umbrello-15.12.0/umbrello/stereotypesmodel.h 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/stereotypesmodel.h 2016-01-07 00:18:00.000000000 +0100
@@ -25,7 +25,7 @@
{
Q_OBJECT
public:
- StereotypesModel(UMLStereotypeList *stereotypes);
+ explicit StereotypesModel(UMLStereotypeList *stereotypes);
int rowCount(const QModelIndex &parent) const;
int columnCount(const QModelIndex &parent) const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/umlmodel/association.cpp new/umbrello-15.12.1/umbrello/umlmodel/association.cpp
--- old/umbrello-15.12.0/umbrello/umlmodel/association.cpp 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/umlmodel/association.cpp 2016-01-07 00:18:00.000000000 +0100
@@ -118,13 +118,17 @@
string += m_pRole[RoleType::A]->object()->name();
string += QLatin1Char(':');
string += m_pRole[RoleType::A]->name();
+ } else {
+ string += QLatin1String("null");
}
- string += QLatin1Char(':') + Uml::AssociationType::toStringI18n(m_AssocType) + QLatin1Char(':');
+ string += QLatin1Char(' ') + Uml::AssociationType::toStringI18n(m_AssocType) + QLatin1Char(' ');
if(m_pRole[RoleType::B])
{
string += m_pRole[RoleType::B]->object()->name();
string += QLatin1Char(':');
string += m_pRole[RoleType::B]->name();
+ } else {
+ string += QLatin1String("null");
}
return string;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/umlviewimageexportermodel.h new/umbrello-15.12.1/umbrello/umlviewimageexportermodel.h
--- old/umbrello-15.12.0/umbrello/umlviewimageexportermodel.h 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/umlviewimageexportermodel.h 2016-01-07 00:18:00.000000000 +0100
@@ -40,7 +40,7 @@
static QString imageTypeToMimeType(const QString& imageType);
static QString mimeTypeToImageType(const QString& mimeType);
- UMLViewImageExporterModel(float resolution = 0.0);
+ explicit UMLViewImageExporterModel(float resolution = 0.0);
virtual ~UMLViewImageExporterModel();
#if QT_VERSION >= 0x050000
QString exportView(UMLScene* scene, const QString &imageType, const QUrl &url) const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/umbrello/umlwidgets/associationwidget.cpp new/umbrello-15.12.1/umbrello/umlwidgets/associationwidget.cpp
--- old/umbrello-15.12.0/umbrello/umlwidgets/associationwidget.cpp 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/umbrello/umlwidgets/associationwidget.cpp 2016-01-07 00:18:00.000000000 +0100
@@ -1544,6 +1544,7 @@
{
QString string;
static const QChar colon(QLatin1Char(':'));
+ static const QChar space(QLatin1Char(' '));
if (widgetForRole(RoleType::A)) {
string = widgetForRole(RoleType::A)->name();
@@ -1553,9 +1554,9 @@
if (m_role[RoleType::A].roleWidget) {
string += m_role[RoleType::A].roleWidget->text();
}
- string.append(colon);
+ string.append(space);
string.append(Uml::AssociationType::toStringI18n(associationType()));
- string.append(colon);
+ string.append(space);
if (widgetForRole(RoleType::B)) {
string += widgetForRole(RoleType::B)->name();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/unittests/TEST_cppwriter.cpp new/umbrello-15.12.1/unittests/TEST_cppwriter.cpp
--- old/umbrello-15.12.0/unittests/TEST_cppwriter.cpp 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/unittests/TEST_cppwriter.cpp 2016-01-07 00:18:00.000000000 +0100
@@ -41,7 +41,7 @@
{
CppWriter* cpp = new CppWriter();
Uml::ProgrammingLanguage::Enum lang = cpp->language();
- QCOMPARE(lang, Uml::ProgrammingLanguage::Cpp);
+ QVERIFY(lang == Uml::ProgrammingLanguage::Cpp);
}
void TEST_cppwriter::test_writeClass()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/unittests/TEST_pythonwriter.cpp new/umbrello-15.12.1/unittests/TEST_pythonwriter.cpp
--- old/umbrello-15.12.0/unittests/TEST_pythonwriter.cpp 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/unittests/TEST_pythonwriter.cpp 2016-01-07 00:18:00.000000000 +0100
@@ -41,7 +41,7 @@
{
PythonWriter* py = new PythonWriter();
Uml::ProgrammingLanguage::Enum lang = py->language();
- QCOMPARE(lang, Uml::ProgrammingLanguage::Python);
+ QVERIFY(lang == Uml::ProgrammingLanguage::Python);
}
void TEST_pythonwriter::test_writeClass()
@@ -51,6 +51,7 @@
UMLAttribute* attr;
attr = c->createAttribute("name_");
attr = c->createAttribute("address_");
+ c->addAttribute(attr);
py->writeClass(c);
// does the just created file exist?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umbrello-15.12.0/unittests/TEST_umlobject.cpp new/umbrello-15.12.1/unittests/TEST_umlobject.cpp
--- old/umbrello-15.12.0/unittests/TEST_umlobject.cpp 2015-12-09 08:17:56.000000000 +0100
+++ new/umbrello-15.12.1/unittests/TEST_umlobject.cpp 2016-01-07 00:18:00.000000000 +0100
@@ -200,15 +200,15 @@
void TEST_UMLObject::test_setVisibility()
{
UMLObject a("Test A");
- QCOMPARE(a.visibility(), Uml::Visibility::Public);
+ QVERIFY(a.visibility() == Uml::Visibility::Public);
a.setVisibilityCmd(Uml::Visibility::Protected);
- QCOMPARE(a.visibility(), Uml::Visibility::Protected);
+ QVERIFY(a.visibility() == Uml::Visibility::Protected);
a.setVisibilityCmd(Uml::Visibility::Private);
- QCOMPARE(a.visibility(), Uml::Visibility::Private);
+ QVERIFY(a.visibility() == Uml::Visibility::Private);
a.setVisibilityCmd(Uml::Visibility::Implementation);
- QCOMPARE(a.visibility(), Uml::Visibility::Implementation);
+ QVERIFY(a.visibility() == Uml::Visibility::Implementation);
a.setVisibilityCmd(Uml::Visibility::FromParent);
- QCOMPARE(a.visibility(), Uml::Visibility::FromParent);
+ QVERIFY(a.visibility() == Uml::Visibility::FromParent);
}
void TEST_UMLObject::test_toString()
1
0
Hello community,
here is the log from the commit of package svgpart for openSUSE:Factory checked in at 2016-01-28 17:22:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/svgpart (Old)
and /work/SRC/openSUSE:Factory/.svgpart.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "svgpart"
Changes:
--------
--- /work/SRC/openSUSE:Factory/svgpart/svgpart.changes 2016-01-10 13:07:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.svgpart.new/svgpart.changes 2016-01-28 17:22:27.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:36:58 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
svgpart-15.12.0.tar.xz
New:
----
svgpart-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ svgpart.spec ++++++
--- /var/tmp/diff_new_pack.jv4JZJ/_old 2016-01-28 17:22:28.000000000 +0100
+++ /var/tmp/diff_new_pack.jv4JZJ/_new 2016-01-28 17:22:28.000000000 +0100
@@ -17,7 +17,7 @@
Name: svgpart
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: SVG viewer component
License: GPL-2.0+
++++++ svgpart-15.12.0.tar.xz -> svgpart-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package step for openSUSE:Factory checked in at 2016-01-28 17:22:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/step (Old)
and /work/SRC/openSUSE:Factory/.step.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "step"
Changes:
--------
--- /work/SRC/openSUSE:Factory/step/step.changes 2016-01-10 13:07:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.step.new/step.changes 2016-01-28 17:22:26.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:36:52 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
step-15.12.0.tar.xz
New:
----
step-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ step.spec ++++++
--- /var/tmp/diff_new_pack.72WUfE/_old 2016-01-28 17:22:27.000000000 +0100
+++ /var/tmp/diff_new_pack.72WUfE/_new 2016-01-28 17:22:27.000000000 +0100
@@ -17,7 +17,7 @@
Name: step
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: An interactive physics simulator
License: GPL-2.0+
++++++ step-15.12.0.tar.xz -> step-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package rocs for openSUSE:Factory checked in at 2016-01-28 17:22:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rocs (Old)
and /work/SRC/openSUSE:Factory/.rocs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rocs"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rocs/rocs.changes 2016-01-10 13:07:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rocs.new/rocs.changes 2016-01-28 17:22:25.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:36:39 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
rocs-15.12.0.tar.xz
New:
----
rocs-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rocs.spec ++++++
--- /var/tmp/diff_new_pack.nUrp4R/_old 2016-01-28 17:22:26.000000000 +0100
+++ /var/tmp/diff_new_pack.nUrp4R/_new 2016-01-28 17:22:26.000000000 +0100
@@ -17,7 +17,7 @@
Name: rocs
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Graph Theory IDE
License: GPL-3.0+
++++++ rocs-15.12.0.tar.xz -> rocs-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rocs-15.12.0/libgraphtheory/editorplugins/assignvalues/assignvaluesplugin.json new/rocs-15.12.1/libgraphtheory/editorplugins/assignvalues/assignvaluesplugin.json
--- old/rocs-15.12.0/libgraphtheory/editorplugins/assignvalues/assignvaluesplugin.json 2015-11-14 18:26:40.000000000 +0100
+++ new/rocs-15.12.1/libgraphtheory/editorplugins/assignvalues/assignvaluesplugin.json 2015-12-13 12:49:28.000000000 +0100
@@ -22,6 +22,7 @@
"Description[tr]": "Değerleri grafik kenarlarına ve düğümlerine ata.",
"Description[uk]": "Додавання значень до ребер та вузлів графу.",
"Description[x-test]": "xxAssign values to graph edges and nodes.xx",
+ "Description[zh_TW]": "指定值給圖形邊緣與節點。",
"Id": "rocs_assignvaluesplugin",
"License": "GPL",
"Name": "Assign Values Plugin",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rocs-15.12.0/libgraphtheory/editorplugins/generategraph/generategraphplugin.json new/rocs-15.12.1/libgraphtheory/editorplugins/generategraph/generategraphplugin.json
--- old/rocs-15.12.0/libgraphtheory/editorplugins/generategraph/generategraphplugin.json 2015-11-14 18:26:40.000000000 +0100
+++ new/rocs-15.12.1/libgraphtheory/editorplugins/generategraph/generategraphplugin.json 2015-12-13 12:49:28.000000000 +0100
@@ -22,6 +22,7 @@
"Description[tr]": "Bu, bir desene göre bir grafik oluşturur.",
"Description[uk]": "Створює новий граф за шаблоном.",
"Description[x-test]": "xxThis generates a new graph by a pattern.xx",
+ "Description[zh_TW]": "依樣式產生新的圖形。",
"Id": "rocs_generategraphplugin",
"License": "GPL",
"Name": "Generate Graph",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rocs-15.12.0/libgraphtheory/editorplugins/transformedges/transformedgesplugin.json new/rocs-15.12.1/libgraphtheory/editorplugins/transformedges/transformedgesplugin.json
--- old/rocs-15.12.0/libgraphtheory/editorplugins/transformedges/transformedgesplugin.json 2015-11-14 18:26:40.000000000 +0100
+++ new/rocs-15.12.1/libgraphtheory/editorplugins/transformedges/transformedgesplugin.json 2015-12-13 12:49:28.000000000 +0100
@@ -22,6 +22,7 @@
"Description[tr]": "Grafik kenarlarını bir dönüştürme kuralı ile dönüştür.",
"Description[uk]": "Перетворити ребра графу за правилом перетворення.",
"Description[x-test]": "xxTransform graph edges by a transformation rule.xx",
+ "Description[zh_TW]": "依轉換規則來轉換圖形邊緣。",
"Id": "rocs_transformedges",
"License": "GPL",
"Name": "Transform Edges",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rocs-15.12.0/libgraphtheory/fileformats/dot/dotfileformat.json new/rocs-15.12.1/libgraphtheory/fileformats/dot/dotfileformat.json
--- old/rocs-15.12.0/libgraphtheory/fileformats/dot/dotfileformat.json 2015-11-14 18:26:40.000000000 +0100
+++ new/rocs-15.12.1/libgraphtheory/fileformats/dot/dotfileformat.json 2015-12-13 12:49:28.000000000 +0100
@@ -23,6 +23,7 @@
"Description[tr]": "Graphviz grafik belgelerini oku ve yaz (DOT)",
"Description[uk]": "Читання і запис файлів документів графів Graphviz (DOT)",
"Description[x-test]": "xxRead and write Graphviz graph documents (DOT)xx",
+ "Description[zh_TW]": "讀寫 Graphviz 圖形檔 (DOT)。",
"Id": "rocs_dotfileformat",
"License": "GPL",
"Name": "DOT Graph File Format",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rocs-15.12.0/libgraphtheory/fileformats/gml/gmlfileformat.json new/rocs-15.12.1/libgraphtheory/fileformats/gml/gmlfileformat.json
--- old/rocs-15.12.0/libgraphtheory/fileformats/gml/gmlfileformat.json 2015-11-14 18:26:40.000000000 +0100
+++ new/rocs-15.12.1/libgraphtheory/fileformats/gml/gmlfileformat.json 2015-12-13 12:49:28.000000000 +0100
@@ -23,6 +23,7 @@
"Description[tr]": "Graph İşaret Dili belgelerini oku ve yaz (GML)",
"Description[uk]": "Читання і запис файлів у форматі Graph Markup Language (GML).",
"Description[x-test]": "xxRead and write Graph Markup Language documents (GML)xx",
+ "Description[zh_TW]": "讀寫 Graph Markup Language 文件 (GML) 。",
"Id": "rocs_gmlfileformat",
"License": "GPL",
"Name": "GML File Format",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rocs-15.12.0/libgraphtheory/fileformats/rocs1/rocs1fileformat.json new/rocs-15.12.1/libgraphtheory/fileformats/rocs1/rocs1fileformat.json
--- old/rocs-15.12.0/libgraphtheory/fileformats/rocs1/rocs1fileformat.json 2015-11-14 18:26:40.000000000 +0100
+++ new/rocs-15.12.1/libgraphtheory/fileformats/rocs1/rocs1fileformat.json 2015-12-13 12:49:28.000000000 +0100
@@ -23,6 +23,7 @@
"Description[tr]": "Rocs Grafik Dosya Biçimi (eski)",
"Description[uk]": "формат файлів графів Rocs (застарілий)",
"Description[x-test]": "xxRocs Graph File Format (old)xx",
+ "Description[zh_TW]": "Rocs 圖形檔格式(舊式)",
"Id": "rocs_rocs1fileformat",
"License": "GPL",
"Name": "Rocs File Format (old)",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rocs-15.12.0/libgraphtheory/fileformats/rocs2/rocs2fileformat.json new/rocs-15.12.1/libgraphtheory/fileformats/rocs2/rocs2fileformat.json
--- old/rocs-15.12.0/libgraphtheory/fileformats/rocs2/rocs2fileformat.json 2015-11-14 18:26:40.000000000 +0100
+++ new/rocs-15.12.1/libgraphtheory/fileformats/rocs2/rocs2fileformat.json 2015-12-13 12:49:28.000000000 +0100
@@ -23,6 +23,7 @@
"Description[tr]": "Rocs Grafik Dosya Biçimi",
"Description[uk]": "формат файлів графів Rocs",
"Description[x-test]": "xxRocs Graph File Formatxx",
+ "Description[zh_TW]": "Rocs 圖形檔格式",
"Id": "rocs_rocs2fileformat",
"License": "GPL",
"Name": "Rocs File Format",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rocs-15.12.0/libgraphtheory/fileformats/tgf/tgffileformat.json new/rocs-15.12.1/libgraphtheory/fileformats/tgf/tgffileformat.json
--- old/rocs-15.12.0/libgraphtheory/fileformats/tgf/tgffileformat.json 2015-11-14 18:26:40.000000000 +0100
+++ new/rocs-15.12.1/libgraphtheory/fileformats/tgf/tgffileformat.json 2015-12-13 12:49:28.000000000 +0100
@@ -22,6 +22,7 @@
"Description[tr]": "Grafik belgelerini Açık Grafik Biçiminde oku ve yaz (TGF)",
"Description[uk]": "Читання і запис документів графів у форматі звичайного графу (TGF)",
"Description[x-test]": "xxRead and write graph documents in Trivial Graph Format (TGF)xx",
+ "Description[zh_TW]": "讀寫 Trivial Graph Format (TGF) 格式的圖形檔。",
"Id": "rocs_tgffileformat",
"License": "GPL",
"Name": "TGF Graph File Format",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rocs-15.12.0/libgraphtheory/fileformats/tikz/tikzfileformat.json new/rocs-15.12.1/libgraphtheory/fileformats/tikz/tikzfileformat.json
--- old/rocs-15.12.0/libgraphtheory/fileformats/tikz/tikzfileformat.json 2015-11-14 18:26:40.000000000 +0100
+++ new/rocs-15.12.1/libgraphtheory/fileformats/tikz/tikzfileformat.json 2015-12-13 12:49:28.000000000 +0100
@@ -22,6 +22,7 @@
"Description[tr]": "LaTeX belgelerinde kullanmak üzere grafik belgelerini PGF/TikZ biçiminde yazar",
"Description[uk]": "Запис документів графів у форматі PGF/TikZ з метою наступного використання у документах LaTeX",
"Description[x-test]": "xxWrites graph documents in PGF/TikZ format for use in LaTeX documentsxx",
+ "Description[zh_TW]": "寫入 PGF/TikZ 格式的圖形文件,以便在 LaTeX 文件中使用",
"Id": "rocs_tikzfileformat",
"License": "GPL",
"Name": "PGF/TikZ Graph File Export Plugin",
1
0
Hello community,
here is the log from the commit of package poxml for openSUSE:Factory checked in at 2016-01-28 17:22:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/poxml (Old)
and /work/SRC/openSUSE:Factory/.poxml.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "poxml"
Changes:
--------
--- /work/SRC/openSUSE:Factory/poxml/poxml.changes 2016-01-10 13:07:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.poxml.new/poxml.changes 2016-01-28 17:22:24.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:36:32 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
poxml-15.12.0.tar.xz
New:
----
poxml-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ poxml.spec ++++++
--- /var/tmp/diff_new_pack.8rkGzA/_old 2016-01-28 17:22:25.000000000 +0100
+++ /var/tmp/diff_new_pack.8rkGzA/_new 2016-01-28 17:22:25.000000000 +0100
@@ -28,7 +28,7 @@
License: GPL-2.0 and GFDL-1.2
Group: System/GUI/KDE
Url: http://www.kde.org/
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: %{name}-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ poxml-15.12.0.tar.xz -> poxml-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package picmi for openSUSE:Factory checked in at 2016-01-28 17:22:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/picmi (Old)
and /work/SRC/openSUSE:Factory/.picmi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "picmi"
Changes:
--------
--- /work/SRC/openSUSE:Factory/picmi/picmi.changes 2016-01-10 13:07:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.picmi.new/picmi.changes 2016-01-28 17:22:23.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:36:26 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
picmi-15.12.0.tar.xz
New:
----
picmi-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ picmi.spec ++++++
--- /var/tmp/diff_new_pack.VGEHng/_old 2016-01-28 17:22:24.000000000 +0100
+++ /var/tmp/diff_new_pack.VGEHng/_new 2016-01-28 17:22:24.000000000 +0100
@@ -36,7 +36,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Logic
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: picmi-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ picmi-15.12.0.tar.xz -> picmi-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picmi-15.12.0/org.kde.picmi.appdata.xml new/picmi-15.12.1/org.kde.picmi.appdata.xml
--- old/picmi-15.12.0/org.kde.picmi.appdata.xml 2015-11-12 04:32:05.000000000 +0100
+++ new/picmi-15.12.1/org.kde.picmi.appdata.xml 2016-01-07 02:33:18.000000000 +0100
@@ -14,6 +14,7 @@
<summary xml:lang="de">Rätselspiel auf der Grundlage von Zahlenlogik</summary>
<summary xml:lang="en-GB">Puzzle game based on number logic</summary>
<summary xml:lang="es">Juego de rompecabezas basado en lógica numérica</summary>
+ <summary xml:lang="fi">Lukulogiikkaan perustuva arvoituspeli</summary>
<summary xml:lang="gl">Quebracabezas baseado en lóxica numérica</summary>
<summary xml:lang="nl">Een logisch spel met nummers</summary>
<summary xml:lang="pl">Układanka z elementami logiki numerycznej</summary>
@@ -28,6 +29,7 @@
<summary xml:lang="sv">Pusselspel baserat på sifferlogik</summary>
<summary xml:lang="uk">Гра-головоломка, заснована на інтерпретації чисел</summary>
<summary xml:lang="x-test">xxPuzzle game based on number logicxx</summary>
+ <summary xml:lang="zh-TW">數字邏輯的解謎遊戲</summary>
<description>
<p>
The goal is to reveal the hidden pattern in the board by coloring or
@@ -39,6 +41,7 @@
<p xml:lang="ca-valencia">L'objectiu és descobrir el patró ocult en el taulell acolorint o deixant en blanc les cel·les en una quadrícula d'acord amb els nombres indicats en el lateral de la quadrícula. És un joc d'un jugador.</p>
<p xml:lang="en-GB">The goal is to reveal the hidden pattern in the board by coloring or leaving blank the cells in a grid according to numbers given at the side of the grid. This is a single player game.</p>
<p xml:lang="es">El objetivo consiste en revelar el patrón oculto en el tablero coloreando o dejando en blanco las casillas de una rejilla según los números que se muestran al lado de la rejilla. Este juego es para un único jugador.</p>
+ <p xml:lang="fi">Tavoitteena on paljastaa laudan salainen hahmo värittämällä tai jättämällä tyhjiksi ruudukon soluja sen sivulla annettujen lukujen mukaan. Tämä on yksinpeli.</p>
<p xml:lang="gl">O obxectivo consiste en descubrir o padrón oculto no taboleiro. Para facelo, ten que colorar ou deixar en branco celas nunha grade segundo os números que aparecen nas celas contiguas. Trátase dun xogo para un único xogador.</p>
<p xml:lang="nl">Het doel is het onthullen van het verborgen patroon in het bord door kleuren of leeg laten van de cellen in een raster volgens cijfers gegeven aan de rand van het raster. Dit is een spel voor een enkele speler.</p>
<p xml:lang="pl">Celem jest odkrycie ukrytego wzoru na planszy poprzez kolorowanie lub pozostawianie kratek pustych według liczb podawanych na boku siatki. Jest to gra dla jednego gracza.</p>
@@ -53,6 +56,7 @@
<p xml:lang="sv">Målet är att avslöja det dolda mönstret på spelbrädet genom att färglägga eller lämna rutorna tomma i ett rutmönster enligt de tal som anges vid sidan om rutmönstret. Detta är ett spel för en ensam spelare.</p>
<p xml:lang="uk">Метою гри є визначення прихованого візерунка у полі для гри зафарбовуванням комірок поля відповідно до чисел, які наведено за бічною рискою поля. Грати у гру одночасно можна лише один гравець.</p>
<p xml:lang="x-test">xxThe goal is to reveal the hidden pattern in the board by coloring or leaving blank the cells in a grid according to numbers given at the side of the grid. This is a single player game.xx</p>
+ <p xml:lang="zh-TW">單人遊戲,依據棋盤側邊的數字來標記或留白棋盤上的每一格。</p>
</description>
<url type="homepage">https://projects.kde.org/projects/kde/kdegames/picmi</url>
<screenshots>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picmi-15.12.0/src/main.cpp new/picmi-15.12.1/src/main.cpp
--- old/picmi-15.12.0/src/main.cpp 2015-11-12 04:32:05.000000000 +0100
+++ new/picmi-15.12.1/src/main.cpp 2016-01-07 02:33:18.000000000 +0100
@@ -63,6 +63,8 @@
MainWindow *w = new MainWindow;
w->show();
-
+
+ app.setWindowIcon(QIcon::fromTheme(QStringLiteral("picmi")));
+
return app.exec();
}
1
0
Hello community,
here is the log from the commit of package parley for openSUSE:Factory checked in at 2016-01-28 17:22:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/parley (Old)
and /work/SRC/openSUSE:Factory/.parley.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "parley"
Changes:
--------
--- /work/SRC/openSUSE:Factory/parley/parley.changes 2016-01-10 13:07:13.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.parley.new/parley.changes 2016-01-28 17:22:21.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:36:14 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
parley-15.12.0.tar.xz
New:
----
parley-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ parley.spec ++++++
--- /var/tmp/diff_new_pack.u0D4i3/_old 2016-01-28 17:22:22.000000000 +0100
+++ /var/tmp/diff_new_pack.u0D4i3/_new 2016-01-28 17:22:22.000000000 +0100
@@ -17,7 +17,7 @@
Name: parley
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Vocabulary Trainer
License: GPL-2.0+
++++++ parley-15.12.0.tar.xz -> parley-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/parley-15.12.0/CMakeLists.txt new/parley-15.12.1/CMakeLists.txt
--- old/parley-15.12.0/CMakeLists.txt 2015-11-04 18:09:15.000000000 +0100
+++ new/parley-15.12.1/CMakeLists.txt 2015-12-28 18:02:58.000000000 +0100
@@ -158,5 +158,5 @@
#add_subdirectory(plasmoid)
-install(FILES parley.appdata.xml DESTINATION ${KDE_INSTALL_DATAROOTDIR}/appdata/)
+install(FILES org.kde.parley.appdata.xml DESTINATION ${KDE_INSTALL_DATAROOTDIR}/appdata/)
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/parley-15.12.0/org.kde.parley.appdata.xml new/parley-15.12.1/org.kde.parley.appdata.xml
--- old/parley-15.12.0/org.kde.parley.appdata.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/parley-15.12.1/org.kde.parley.appdata.xml 2015-12-28 18:02:58.000000000 +0100
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component type="desktop">
+ <id>org.kde.parley.desktop</id>
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>GPL-2.0+</project_license>
+ <name>Parley</name>
+ <name xml:lang="ast">Parley</name>
+ <name xml:lang="bs">Parley</name>
+ <name xml:lang="ca">Parley</name>
+ <name xml:lang="ca-valencia">Parley</name>
+ <name xml:lang="cs">Parley</name>
+ <name xml:lang="da">Parley</name>
+ <name xml:lang="de">Parley</name>
+ <name xml:lang="en-GB">Parley</name>
+ <name xml:lang="es">Parley</name>
+ <name xml:lang="et">Parley</name>
+ <name xml:lang="fi">Parley</name>
+ <name xml:lang="gl">Parley</name>
+ <name xml:lang="it">Parley</name>
+ <name xml:lang="ko">Parley</name>
+ <name xml:lang="lt">Parley</name>
+ <name xml:lang="nds">Parley</name>
+ <name xml:lang="nl">Parley</name>
+ <name xml:lang="pl">Parley</name>
+ <name xml:lang="pt">Parley</name>
+ <name xml:lang="pt-BR">Parley</name>
+ <name xml:lang="ru">Parley</name>
+ <name xml:lang="sk">Parley</name>
+ <name xml:lang="sl">Parley</name>
+ <name xml:lang="sv">Parley</name>
+ <name xml:lang="tr">Parley</name>
+ <name xml:lang="uk">Parley</name>
+ <name xml:lang="x-test">xxParleyxx</name>
+ <name xml:lang="zh-CN">Parley</name>
+ <name xml:lang="zh-TW">語言_Parley</name>
+ <summary>Vocabulary Trainer</summary>
+ <summary xml:lang="ast">Entrenador de vocabulariu</summary>
+ <summary xml:lang="bs">Trener riječnika</summary>
+ <summary xml:lang="ca">Entrenador de vocabulari</summary>
+ <summary xml:lang="ca-valencia">Entrenador de vocabulari</summary>
+ <summary xml:lang="cs">Učitel slovní zásoby</summary>
+ <summary xml:lang="de">Vokabeltrainer</summary>
+ <summary xml:lang="en-GB">Vocabulary Trainer</summary>
+ <summary xml:lang="es">Entrenador de vocabulario</summary>
+ <summary xml:lang="et">Sõnavara treening</summary>
+ <summary xml:lang="fi">Sanaston harjoitusohjelma</summary>
+ <summary xml:lang="gl">Adestrador de vocabulario</summary>
+ <summary xml:lang="it">Apprendimento di vocaboli</summary>
+ <summary xml:lang="ko">어휘 연습 도구</summary>
+ <summary xml:lang="lt">Žodyno treniruoklis</summary>
+ <summary xml:lang="nds">Vokaveln lehren</summary>
+ <summary xml:lang="nl">Woordjes oefenen</summary>
+ <summary xml:lang="pl">Trening słownictwa</summary>
+ <summary xml:lang="pt">Treinador do Vocabulário</summary>
+ <summary xml:lang="pt-BR">Treinador de vocabulário</summary>
+ <summary xml:lang="ru">Программа для изучения новой лексики</summary>
+ <summary xml:lang="sk">Tréner slovnej zásoby</summary>
+ <summary xml:lang="sl">Učenje besedišča</summary>
+ <summary xml:lang="sv">Ordförrådsträning</summary>
+ <summary xml:lang="tr">Kelime Çalıştırıcı</summary>
+ <summary xml:lang="uk">Словниковий тренажер</summary>
+ <summary xml:lang="x-test">xxVocabulary Trainerxx</summary>
+ <summary xml:lang="zh-CN">词汇练习器</summary>
+ <summary xml:lang="zh-TW">字彙訓練師</summary>
+ <description>
+ <p>Parley is a vocabulary trainer. It helps you to memorize your vocabulary, for example when you are trying to learn a foreign language. It supports many language specific features, but can be used for other learning tasks as well. It uses the spaced repetition learning method, which makes learning optimal. Vocabulary collections can be downloaded by "Get Hot New Stuff" or created with the built-in editor.</p>
+ <p xml:lang="ast">Parley ye un entrenador de vocabulariu. Ayúdate a memorizar el to vocabulariu, por exemplu cuando intentes deprender una llingua foriata. Sofita munches carauterístiques específiques de llingua, pero tamién pue usase pa otres xeres de deprendimientu. Usa'l métodu de deprendizax de repitición espaciada, que fai óptimu'l deprendimientu. Les coleiciones de vocabulariu puen baxase de "Consigui material nuevu" o crease col editor integráu.</p>
+ <p xml:lang="bs">Parlej je trener rječnika. Pomaže vam da zapamtite svoj rječnik, na primer, kada pokušavate da naučite strani jezik. On podržava mnoge jezičke specifičnosti, ali se može koristiti za druge zadatke učenja jednako dobro. On koristi raspoređeni metod ponavljanja učenja , što čini učenje optimalno. Vokabular kolekcije možete preuzeti sa "Dobavi nove dobre stvari" ili kreirati sa ugrađenim urednikom.</p>
+ <p xml:lang="ca">El Parley és un entrenador de vocabulari. Us ajuda a memoritzar vocabulari, per exemple quan esteu intentant aprendre un idioma estranger. Accepta moltes funcionalitats específiques d'idioma, però també es pot utilitzar per altres tasques d'aprenentatge. Utilitza el mètode d'aprenentatge de repetició espaiada, que optimitza l'aprenentatge. Les col·leccions dels vocabularis es poden baixar amb «Obtén les novetats» (Get Hot New Stuff) o es poden crear amb l'editor integrat.</p>
+ <p xml:lang="ca-valencia">El Parley és un entrenador de vocabulari. Vos ajuda a memoritzar vocabulari, per exemple quan esteu intentant aprendre un idioma estranger. Accepta moltes funcionalitats específiques d'idioma, però també es pot utilitzar per altres tasques d'aprenentatge. Utilitza el mètode d'aprenentatge de repetició espaiada, que optimitza l'aprenentatge. Les col·leccions dels vocabularis es poden baixar amb «Obtén les novetats» (Get Hot New Stuff) o es poden crear amb l'editor integrat.</p>
+ <p xml:lang="en-GB">Parley is a vocabulary trainer. It helps you to memorise your vocabulary, for example when you are trying to learn a foreign language. It supports many language specific features, but can be used for other learning tasks as well. It uses the spaced repetition learning method, which makes learning optimal. Vocabulary collections can be downloaded by "Get Hot New Stuff" or created with the built-in editor.</p>
+ <p xml:lang="es">Parley es un entrenador de vocabulario. Ayuda a memorizar vocabulario, por ejemplo, cuando se está intentando aprender un idioma extranjero. Cuenta con muchas funcionalidades específicas para los idiomas, pero también se puede utilizar para otras tareas de aprendizaje. Utiliza el método de repetición espaciada, que proporciona un aprendizaje óptimo. Las colecciones de vocabulario se pueden descargar mediante la opción «Obtener nuevo material» o crear mediante el editor incorporado.</p>
+ <p xml:lang="et">Parley on sõnavara harjutamise rakendus. See aitab sõnu meelde jätta, millest on kasu, kui õpid näiteks võõrkeelt. Toetatud on paljud keelespetsiifilised võimalused, kuid rakendust saab kasutada ka muudeks õppimisülesanneteks. Siin kasutatakse ajas hajutatud kordamise meetodit, mis muudab omandamise optimaalseks. Sõnavarakogusid saab alla laadida internetist või luua neid ise kaasasoleva redaktoriga.</p>
+ <p xml:lang="fi">Parley on sanaston harjoitusohjelma. Se auttaa oppimaan sanastoja ulkoa esimerkiksi, kun yrität oppia vierasta kieltä. Se tukee useita kielikohtaisia piirteitä, mutta sitä voi käyttää muuhunkin opiskeluun. Se käyttää aikavälikertauksen oppimismenetelmää, joka optimoi oppimisen. Sanastoja voi ladata käyttämällä ”Lataa uusia sanastoja” -ominaisuutta tai niitä voi luoda sisäänrakennetussa muokkaimessa.</p>
+ <p xml:lang="gl">Parley é un adestrador de vocabulario. Axúdao a memorizar un vocabulario, como por exemplo o vocabulario dun idioma que está a aprender. Conta con vocabulario de moitos idiomas, pero tamén se pode empregar para aprender outras cousas. Emprega o método de ensino de repetición espazada, que optimiza a aprendizaxe. Pode descargar coleccións de vocabulario empregando «Get Hot New Stuff» ou crear as súas propias coleccións co editor integrado.</p>
+ <p xml:lang="it">Parley è un programma per l'pprendimento di vocaboli. Ti aiuta a memorizzare vocaboli, ad esempio quando stai imparando una lingua straniera. Supporta molte caratteristiche specifiche di varie lingue, ma può essere usato anche per imparare altre cose. Usa la ripetizione dilazionata come metodo di apprendimento, migliorando l'apprendimento. Collezioni di vocaboli possono essere scaricate usando il sistema delle «Novità», oppure create con l'editor integrato.</p>
+ <p xml:lang="nds">Parley is en Vokavel-Lehrprogramm. Dat hölpt Di bi't Lehren vun Dien Wöör, a.B. ut en butenlannsch Spraak. Dat ünnerstütt vele Spraakfunkschonen, man lett sik ok för anner Saken bruken. De Lehrmetood is de Wedderhalen mit Afstand, wat dat Lehren verbetert. Vokavelsetten kannst Du över „Deegte niege Saken“ daalladen oder mit den inbuut Editor sülven opstellen.</p>
+ <p xml:lang="nl">Met Parley kunt u woordjes oefenen. Het helpt uw woordenschat uit te breiden, bijvoorbeeld bij het leren van een vreemde taal. Veel taaleigen zaken worden ondersteund, maar u kunt Parley ook gebruiken voor andere leeroefeningen. Het gebruikt de "spaced repetition" leermethode (met geregelde herhalingen), om optimaal te kunnen leren. Woordenlijsten kunnen worden gedownload, of met het ingebouwde bewerkingsprogramma zelf worden gemaakt.</p>
+ <p xml:lang="pl">Parley jest programem do ćwiczenia słownictwa. Pomaga zapamiętać słownictwo np. w przypadku nauki obcego języka. Zapewnia wiele możliwości zależnych od języka, lecz można go użyć także do nauki innych rzeczy. Używa metody nauki polegającej na powtarzaniu w czasie, co sprawia, że nauka jest optymalna. Zbiory słownictwa można pobrać poprzez usługę "Get Hot New Stuff" lub utworzyć poprzez wbudowany edytor.</p>
+ <p xml:lang="pt">O Parley é um treinador de vocabulários. Ajuda-o a memorizar o seu vocabulário, quando por exemplo está a tentar aprender uma língua estrangeira. Ele suporta muitas funcionalidades específicas das línguas, mas também poderá ser usado para outras tarefas de aprendizagem. Ele usa o método de aprendizagem por repetição espaçada, o que torna a aprendizagem óptima. As colecções de vocabulários poderão ser obtidas pelo mecanismo para "Obter Coisas Novas" ou criadas com o editor incorporado.</p>
+ <p xml:lang="pt-BR">Parley é um treinador de vocabulários. Ele o ajuda a memorizar seu vocabulário, quando, por exemplo, você estiver tentando aprender um idioma estrangeiro. Ele tem suporte a muitas funcionalidades específicas de idiomas, mas também pode ser usado para outras tarefas de aprendizagem. Ele usa o método de aprendizagem por repetição espaçada, o que torna a aprendizagem ótima. As coleções de vocabulários poderão ser obtidas pela funcionalidade "Obter novidades" ou criadas com o editor incorporado.</p>
+ <p xml:lang="ru">Parley — программа для тренировки словарного запаса, например при изучении иностранного языка. Учитываются особенности языков, но тем не менее возможно заучивать не только переводы слов, но и другую информацию. В программе используется техника интервальных повторений, ускоряющая заучивание. Можно создавать свои файлы словарей. Также доступны готовые файлы, предоставленные другими пользователями Parley, которые можно загрузить прямо из программы.</p>
+ <p xml:lang="sk">Parley je tréner slovnej zásoby. Pomôže vám naučiť sa slovnú zásobu, napríklad keď sa snažíte naučiť cudzí jazyk. Podporuje mnoho jazykovo špecifických funkcií, ale dá sa použiť aj na iné výukové účely. Používa metódu rozloženého opakovania učenia, ktorá robí výuku optimálnou. Kolekcie slovnej zásoby sa dajú stiahnuť cez "Získať nový materiál" alebo vytvoriť cez zabudovaný editor.</p>
+ <p xml:lang="sl">Parley vam lahko pomaga pri učenju besedišča, če se na primer poskušate naučiti tuj jezik. Podpira zmožnosti, ki so določene za nek jezik, lahko pa ga uporabite tudi za druge stvari. Uporablja posebne metode, ki optimizirajo učenje. Zbirke besedišč lahko prejmete s pomočjo "Dobi vroče novosti" ali pa uporabite vgrajen urejevalnik.</p>
+ <p xml:lang="sv">Parley är ett är program för ordförrådsövning. Det hjälper dig att memorera ditt ordförråd, till exempel när du försöker lära dig ett främmande språk. Det stöder en mängd språkspecifika funktioner, men kan dessutom användas för andra inlärningsuppgifter. Det använder inlärningsmetoden med utspridd upprepning, vilket gör inlärning optimal. Ordförrådsamlingar kan laddas ner med "Hämta heta nyheter" eller skapas med den inbyggda editorn.</p>
+ <p xml:lang="tr">Parley bir kelime çalıştırıcıdır. Kelimeleri hatırlamanıza yardımcı olur, yeni bir dil öğrenmeye çalışırken faydalıdır. Dillere özel bir çok özelliği destekler ama diğer öğrenme görevleri için de kullanılabilir. Öğrenmeyi kolaylaştıran tekrarlı öğrenme yöntemini kullanır. Kelime listeleri "Yeni Liste İndir" bağlantısından indirilebilir veya gömülü düzenleyici ile oluşturulabilir.</p>
+ <p xml:lang="uk">Parley — програма для вивчення мов. Вона допоможе вам поповнити ваш словниковий запас і вивчити правила іноземної мови. У програмі передбачено багато специфічних для мов можливостей. Втім, нею можна скористатися і для виконання інших завдань з вивчення даних. У програмі використано методику навчання за допомогою повторення зі змінним інтервалом, яка оптимізує процес навчання. Збірки словників можна отримати з інтернету або створити за допомогою вбудованого до програми редактора.</p>
+ <p xml:lang="x-test">xxParley is a vocabulary trainer. It helps you to memorize your vocabulary, for example when you are trying to learn a foreign language. It supports many language specific features, but can be used for other learning tasks as well. It uses the spaced repetition learning method, which makes learning optimal. Vocabulary collections can be downloaded by "Get Hot New Stuff" or created with the built-in editor.xx</p>
+ <p xml:lang="zh-TW">Parley 是一套字彙訓練程式。它能協助您在學習外語時記憶字彙。它支援多種語言功能,也可以用於其他領域的訓練。字彙可以從「取得新禮物」中下載,或是自行透過內建編輯器建立。</p>
+ <p>Training Modes:</p>
+ <p xml:lang="ast">Moos d'entretenimientu</p>
+ <p xml:lang="bs">Režimi treninga</p>
+ <p xml:lang="ca">Modes d'entrenament:</p>
+ <p xml:lang="ca-valencia">Modes d'entrenament:</p>
+ <p xml:lang="de">Übungsmodi:</p>
+ <p xml:lang="en-GB">Training Modes:</p>
+ <p xml:lang="es">Modos de entrenamiento:</p>
+ <p xml:lang="et">Harjutamisviisid:</p>
+ <p xml:lang="fi">Harjoitustavat:</p>
+ <p xml:lang="gl">Modos de adestramento:</p>
+ <p xml:lang="it">Modalità di apprendimento:</p>
+ <p xml:lang="ko">연습 모드:</p>
+ <p xml:lang="nds">Ööv-Bedriefoorden:</p>
+ <p xml:lang="nl">Oefenmethodes:</p>
+ <p xml:lang="pl">Tryby ćwiczeń"</p>
+ <p xml:lang="pt">Modos de Treino:</p>
+ <p xml:lang="pt-BR">Modos de treinamento:</p>
+ <p xml:lang="ru">Режимы обучения:</p>
+ <p xml:lang="sk">Režimy tréningu:</p>
+ <p xml:lang="sl">Načini učenja:</p>
+ <p xml:lang="sv">Övningsmetoder:</p>
+ <p xml:lang="tr">Çalışma Kipleri:</p>
+ <p xml:lang="uk">Режими навчання:</p>
+ <p xml:lang="x-test">xxTraining Modes:xx</p>
+ <p xml:lang="zh-CN">训练模式:</p>
+ <p xml:lang="zh-TW">訓練模式:</p>
+ <ul>
+ <li>Flash Cards</li>
+ <li xml:lang="ast">Tarxetes</li>
+ <li xml:lang="bs">Memorijske kartice</li>
+ <li xml:lang="ca">Fitxes ràpides</li>
+ <li xml:lang="ca-valencia">Fitxes ràpides</li>
+ <li xml:lang="cs">Kartičky</li>
+ <li xml:lang="de">Karteikarten</li>
+ <li xml:lang="en-GB">Flash Cards</li>
+ <li xml:lang="es">Tarjetas</li>
+ <li xml:lang="et">Sähvikud</li>
+ <li xml:lang="fi">Kysymyskortit</li>
+ <li xml:lang="gl">Tarxetas</li>
+ <li xml:lang="it">Carte mnemoniche</li>
+ <li xml:lang="ko">플래시 카드</li>
+ <li xml:lang="lt">Kortelės</li>
+ <li xml:lang="nds">Naslakoorten</li>
+ <li xml:lang="nl">Oefenkaarten</li>
+ <li xml:lang="pl">Fiszki</li>
+ <li xml:lang="pt">Cartões</li>
+ <li xml:lang="pt-BR">Cartões</li>
+ <li xml:lang="ru">Карточки</li>
+ <li xml:lang="sk">Učebné karty</li>
+ <li xml:lang="sl">Karte</li>
+ <li xml:lang="sv">Snabbkort</li>
+ <li xml:lang="tr">Hafıza Kartları</li>
+ <li xml:lang="uk">Навчальні картки.</li>
+ <li xml:lang="x-test">xxFlash Cardsxx</li>
+ <li xml:lang="zh-CN">题卡</li>
+ <li xml:lang="zh-TW">閃卡</li>
+ <li>Mixed Letters (order the letters of a word)</li>
+ <li xml:lang="ast">Lletres mestes (ordena les lletres d'un pallabra)</li>
+ <li xml:lang="bs">Miješana slova (redoslijed slova riječi)</li>
+ <li xml:lang="ca">Lletres barrejades (ordre de les lletres d'una paraula)</li>
+ <li xml:lang="ca-valencia">Lletres barrejades (orde de les lletres d'una paraula)</li>
+ <li xml:lang="de">Gemischte Buchstaben (Buchstaben in der richtigen Reihenfolge anordnen)</li>
+ <li xml:lang="en-GB">Mixed Letters (order the letters of a word)</li>
+ <li xml:lang="es">Mezcla de letras (ordenar las letras de una palabra)</li>
+ <li xml:lang="et">Segatud tähed (tähtede järjestamine nagu anagrammis)</li>
+ <li xml:lang="fi">Sekoitetut kirjaimet (järjestä sanan kirjaimet)</li>
+ <li xml:lang="gl">Letras mesturadas (ordenar as letras dunha palabra)</li>
+ <li xml:lang="it">Lettere mescolate (ordina le lettere di una parola)</li>
+ <li xml:lang="nds">Mischt Bookstaven (Bookstaven vun en Woort ornen)</li>
+ <li xml:lang="nl">Gehutselde letters (zet de letters in het woord in de goede volgorde)</li>
+ <li xml:lang="pl">Mieszane litery (ułóż litery słowa)</li>
+ <li xml:lang="pt">Letras Misturadas (ordenar as letras de uma palavra)</li>
+ <li xml:lang="pt-BR">Letras misturadas (ordenar as letras de uma palavra)</li>
+ <li xml:lang="ru">Перемешанные буквы (нужно восстановить правильный порядок букв в слове)</li>
+ <li xml:lang="sk">Zmiešané písmená (poradie písmen v slove)</li>
+ <li xml:lang="sl">Pomešane črke (postavite črke besede v pravilni vrstni red)</li>
+ <li xml:lang="sv">Blandade bokstäver (ordna bokstäverna i ett ord)</li>
+ <li xml:lang="tr">Karışık Harfler (kelimenin harflerini sıraya dizin)</li>
+ <li xml:lang="uk">Відновлення порядку літер (різновид анаграми).</li>
+ <li xml:lang="x-test">xxMixed Letters (order the letters of a word)xx</li>
+ <li xml:lang="zh-CN">混合字母 (一个单词的字母顺序)</li>
+ <li xml:lang="zh-TW">混合字母(單字字母順序)</li>
+ <li>Multiple Choice</li>
+ <li xml:lang="ast">Escoyeta múltiple</li>
+ <li xml:lang="bs">Višestruki izbor</li>
+ <li xml:lang="ca">Elecció múltiple</li>
+ <li xml:lang="ca-valencia">Elecció múltiple</li>
+ <li xml:lang="cs">S nabídkou možností</li>
+ <li xml:lang="de">Mehrfachauswahl</li>
+ <li xml:lang="en-GB">Multiple Choice</li>
+ <li xml:lang="es">Varias opciones</li>
+ <li xml:lang="et">Mitmene valik</li>
+ <li xml:lang="fi">Monivalinta</li>
+ <li xml:lang="gl">Opcións múltiplas</li>
+ <li xml:lang="it">Scelta multipla</li>
+ <li xml:lang="ko">객관식</li>
+ <li xml:lang="lt">Pasirinkimas iš kelių atsakymų</li>
+ <li xml:lang="nds">Mehrfachköör</li>
+ <li xml:lang="nl">Meerkeuze</li>
+ <li xml:lang="pl">Wiele odpowiedzi</li>
+ <li xml:lang="pt">Escolha Múltipla</li>
+ <li xml:lang="pt-BR">Múltipla escolha</li>
+ <li xml:lang="ru">Вопросы с вариантами ответа</li>
+ <li xml:lang="sk">Viacnásobné možnosti</li>
+ <li xml:lang="sl">Več možnosti</li>
+ <li xml:lang="sv">Flerval</li>
+ <li xml:lang="tr">Çoktan Seçmeli</li>
+ <li xml:lang="uk">Вибір з варіантів.</li>
+ <li xml:lang="x-test">xxMultiple Choicexx</li>
+ <li xml:lang="zh-CN">多项选择</li>
+ <li xml:lang="zh-TW">多重選擇</li>
+ <li>Written</li>
+ <li xml:lang="bs">Napisano</li>
+ <li xml:lang="ca">Escrita</li>
+ <li xml:lang="ca-valencia">Escrita</li>
+ <li xml:lang="cs">Písemný</li>
+ <li xml:lang="de">Schriftlich</li>
+ <li xml:lang="en-GB">Written</li>
+ <li xml:lang="es">Escrito</li>
+ <li xml:lang="et">Kirjalik</li>
+ <li xml:lang="fi">Kirjallinen</li>
+ <li xml:lang="gl">Escrito</li>
+ <li xml:lang="it">Scritto</li>
+ <li xml:lang="ko">주관식</li>
+ <li xml:lang="lt">Rašyba</li>
+ <li xml:lang="nds">Schreven</li>
+ <li xml:lang="nl">Geschreven</li>
+ <li xml:lang="pl">Pisemny</li>
+ <li xml:lang="pt">Escrito</li>
+ <li xml:lang="pt-BR">Escrita</li>
+ <li xml:lang="ru">Письменные задания</li>
+ <li xml:lang="sk">Napísané</li>
+ <li xml:lang="sl">Pisno</li>
+ <li xml:lang="sv">Skrivet</li>
+ <li xml:lang="tr">Yazılı</li>
+ <li xml:lang="uk">Письмовий.</li>
+ <li xml:lang="x-test">xxWrittenxx</li>
+ <li xml:lang="zh-CN">写作</li>
+ <li xml:lang="zh-TW">已寫入</li>
+ <li>Language specific trainings: article, comparison forms, conjugations, synonymes/antonyms/paraphrases</li>
+ <li xml:lang="ast">Entrenamientos específicos de lligua: artículos, formes de comparanza, conxugaciones, sinónimos/anotónimos/paráfrasis</li>
+ <li xml:lang="bs">Jezički posebna obuka: članovi, oblici poređenja, konjugacija, sinonimi/antonimi/parafraze</li>
+ <li xml:lang="ca">Entrenaments específics d'idioma: article, formes de comparació, conjugacions, sinònims/antònims/paràfrasis</li>
+ <li xml:lang="ca-valencia">Entrenaments específics d'idioma: article, formes de comparació, conjugacions, sinònims/antònims/paràfrasis</li>
+ <li xml:lang="de">Sprachspezifische Übungen: Artikel, Vergleichsformen, Konjugationen, Synonyme, Antonyme, Umschreibungen</li>
+ <li xml:lang="en-GB">Language specific trainings: article, comparison forms, conjugations, synonymes/antonyms/paraphrases</li>
+ <li xml:lang="es">Entrenamiento específico para idiomas: artículo, formas comparativas, conjugaciones, sinónimos, antónimos y paráfrasis.</li>
+ <li xml:lang="et">Keelespetsiifilised harjutused: artiklid, võrdlusvormid, käänamine, pööramine, sünonüümid, antonüümid, parafraasid</li>
+ <li xml:lang="fi">Kielikohtaiset harjoitukset: artikkelit, vertailumuodot, taivutusmuodot, synonyymit/antonyymit/parafraasit</li>
+ <li xml:lang="gl">Adestramentos de idioma: artigos, formas de comparación,conxugación, sinónimos, antónimos e perífrases.</li>
+ <li xml:lang="it">Apprendimenti specifici per le lingue: articoli, forme di confronto, coniugazioni, sinomini/antonimi/parafrasi</li>
+ <li xml:lang="nds">Besünner Spraaklexen: Artikeln, Stiegformen, Böögformen, Liekwöör, Güntwöör, Ümschrieven</li>
+ <li xml:lang="nl">Taaleigen oefeningen: lidwoorden, vergelijkingen, vervoegingen, synoniemen/antoniemen/paragrafen</li>
+ <li xml:lang="pl">Ćwiczenia wyjątkowe dla języka: rodzajnik, formy porównawcze, odmiany, synonimy/antonimy/parafrazy</li>
+ <li xml:lang="pt">Treinos específicos da língua: artigos, formas de comparação, conjugações, sinónimos/antónimos/parágrafos</li>
+ <li xml:lang="pt-BR">Treinamentos específicos de idioma: artigo, formas de comparação, conjugações, sinônimos/antônimos/paráfrases</li>
+ <li xml:lang="ru">Задания, зависящие от языка: артикли, степени сравнения, спряжение глаголов, синонимы и антонимы</li>
+ <li xml:lang="sk">Tréning závislý na jazyku: článok, porovnanie foriem, konjugácie, synonymá/antonymá/odseky</li>
+ <li xml:lang="sl">Vadbe določene za jezik: členi, primerjalne oblike, spregatve, sopomenke/protipomenke/parafraze</li>
+ <li xml:lang="sv">Språkspecifika övningar: artiklar, kompareringsformer, konjugeringar, synonymer/antonymer/omskrivningar</li>
+ <li xml:lang="tr">Dile özel çalışmalar: makale, karşılaştırma formları, çekimler, eş anlamlılar / zıt anlamlılar / başka kelimelerle açıklamalar</li>
+ <li xml:lang="uk">Специфічні для мови режими: артиклі, ступені порівняння, спряження, синоніми, антоніми, парафрази.</li>
+ <li xml:lang="x-test">xxLanguage specific trainings: article, comparison forms, conjugations, synonymes/antonyms/paraphrasesxx</li>
+ <li xml:lang="zh-TW">語言指定訓練:冠詞、比較級、詞形變化、同義/反義/譯述等</li>
+ </ul>
+ </description>
+ <url type="homepage">http://edu.kde.org/parley/</url>
+ <url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&product=parley</url>
+ <url type="help">http://docs.kde.org/stable/en/kdeedu/parley/index.html</url>
+ <screenshots>
+ <screenshot type="default">
+ <image>http://kde.org/images/screenshots/parley.png</image>
+ </screenshot>
+ </screenshots>
+ <project_group>KDE</project_group>
+ <provides>
+ <binary>parley</binary>
+ </provides>
+</component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/parley-15.12.0/parley.appdata.xml new/parley-15.12.1/parley.appdata.xml
--- old/parley-15.12.0/parley.appdata.xml 2015-11-04 18:09:15.000000000 +0100
+++ new/parley-15.12.1/parley.appdata.xml 1970-01-01 01:00:00.000000000 +0100
@@ -1,269 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<component type="desktop">
- <id>org.kde.parley.desktop</id>
- <metadata_license>CC0-1.0</metadata_license>
- <project_license>GPL-2.0+</project_license>
- <name>Parley</name>
- <name xml:lang="ast">Parley</name>
- <name xml:lang="bs">Parley</name>
- <name xml:lang="ca">Parley</name>
- <name xml:lang="ca-valencia">Parley</name>
- <name xml:lang="cs">Parley</name>
- <name xml:lang="da">Parley</name>
- <name xml:lang="de">Parley</name>
- <name xml:lang="en-GB">Parley</name>
- <name xml:lang="es">Parley</name>
- <name xml:lang="et">Parley</name>
- <name xml:lang="fi">Parley</name>
- <name xml:lang="gl">Parley</name>
- <name xml:lang="it">Parley</name>
- <name xml:lang="ko">Parley</name>
- <name xml:lang="lt">Parley</name>
- <name xml:lang="nds">Parley</name>
- <name xml:lang="nl">Parley</name>
- <name xml:lang="pl">Parley</name>
- <name xml:lang="pt">Parley</name>
- <name xml:lang="pt-BR">Parley</name>
- <name xml:lang="ru">Parley</name>
- <name xml:lang="sk">Parley</name>
- <name xml:lang="sl">Parley</name>
- <name xml:lang="sv">Parley</name>
- <name xml:lang="tr">Parley</name>
- <name xml:lang="uk">Parley</name>
- <name xml:lang="x-test">xxParleyxx</name>
- <name xml:lang="zh-CN">Parley</name>
- <name xml:lang="zh-TW">語言_Parley</name>
- <summary>Vocabulary Trainer</summary>
- <summary xml:lang="ast">Entrenador de vocabulariu</summary>
- <summary xml:lang="bs">Trener riječnika</summary>
- <summary xml:lang="ca">Entrenador de vocabulari</summary>
- <summary xml:lang="ca-valencia">Entrenador de vocabulari</summary>
- <summary xml:lang="cs">Učitel slovní zásoby</summary>
- <summary xml:lang="de">Vokabeltrainer</summary>
- <summary xml:lang="en-GB">Vocabulary Trainer</summary>
- <summary xml:lang="es">Entrenador de vocabulario</summary>
- <summary xml:lang="et">Sõnavara treening</summary>
- <summary xml:lang="fi">Sanaston harjoitusohjelma</summary>
- <summary xml:lang="gl">Adestrador de vocabulario</summary>
- <summary xml:lang="it">Apprendimento di vocaboli</summary>
- <summary xml:lang="ko">어휘 연습 도구</summary>
- <summary xml:lang="lt">Žodyno treniruoklis</summary>
- <summary xml:lang="nds">Vokaveln lehren</summary>
- <summary xml:lang="nl">Woordjes oefenen</summary>
- <summary xml:lang="pl">Trening słownictwa</summary>
- <summary xml:lang="pt">Treinador do Vocabulário</summary>
- <summary xml:lang="pt-BR">Treinador de vocabulário</summary>
- <summary xml:lang="ru">Программа для изучения новой лексики</summary>
- <summary xml:lang="sk">Tréner slovnej zásoby</summary>
- <summary xml:lang="sl">Učenje besedišča</summary>
- <summary xml:lang="sv">Ordförrådsträning</summary>
- <summary xml:lang="tr">Kelime Çalıştırıcı</summary>
- <summary xml:lang="uk">Словниковий тренажер</summary>
- <summary xml:lang="x-test">xxVocabulary Trainerxx</summary>
- <summary xml:lang="zh-CN">词汇练习器</summary>
- <summary xml:lang="zh-TW">字彙訓練師</summary>
- <description>
- <p>Parley is a vocabulary trainer. It helps you to memorize your vocabulary, for example when you are trying to learn a foreign language. It supports many language specific features, but can be used for other learning tasks as well. It uses the spaced repetition learning method, which makes learning optimal. Vocabulary collections can be downloaded by "Get Hot New Stuff" or created with the built-in editor.</p>
- <p xml:lang="ast">Parley ye un entrenador de vocabulariu. Ayúdate a memorizar el to vocabulariu, por exemplu cuando intentes deprender una llingua foriata. Sofita munches carauterístiques específiques de llingua, pero tamién pue usase pa otres xeres de deprendimientu. Usa'l métodu de deprendizax de repitición espaciada, que fai óptimu'l deprendimientu. Les coleiciones de vocabulariu puen baxase de "Consigui material nuevu" o crease col editor integráu.</p>
- <p xml:lang="bs">Parlej je trener rječnika. Pomaže vam da zapamtite svoj rječnik, na primer, kada pokušavate da naučite strani jezik. On podržava mnoge jezičke specifičnosti, ali se može koristiti za druge zadatke učenja jednako dobro. On koristi raspoređeni metod ponavljanja učenja , što čini učenje optimalno. Vokabular kolekcije možete preuzeti sa "Dobavi nove dobre stvari" ili kreirati sa ugrađenim urednikom.</p>
- <p xml:lang="ca">El Parley és un entrenador de vocabulari. Us ajuda a memoritzar vocabulari, per exemple quan esteu intentant aprendre un idioma estranger. Accepta moltes funcionalitats específiques d'idioma, però també es pot utilitzar per altres tasques d'aprenentatge. Utilitza el mètode d'aprenentatge de repetició espaiada, que optimitza l'aprenentatge. Les col·leccions dels vocabularis es poden baixar amb «Obtén les novetats» (Get Hot New Stuff) o es poden crear amb l'editor integrat.</p>
- <p xml:lang="ca-valencia">El Parley és un entrenador de vocabulari. Vos ajuda a memoritzar vocabulari, per exemple quan esteu intentant aprendre un idioma estranger. Accepta moltes funcionalitats específiques d'idioma, però també es pot utilitzar per altres tasques d'aprenentatge. Utilitza el mètode d'aprenentatge de repetició espaiada, que optimitza l'aprenentatge. Les col·leccions dels vocabularis es poden baixar amb «Obtén les novetats» (Get Hot New Stuff) o es poden crear amb l'editor integrat.</p>
- <p xml:lang="en-GB">Parley is a vocabulary trainer. It helps you to memorise your vocabulary, for example when you are trying to learn a foreign language. It supports many language specific features, but can be used for other learning tasks as well. It uses the spaced repetition learning method, which makes learning optimal. Vocabulary collections can be downloaded by "Get Hot New Stuff" or created with the built-in editor.</p>
- <p xml:lang="es">Parley es un entrenador de vocabulario. Ayuda a memorizar vocabulario, por ejemplo, cuando se está intentando aprender un idioma extranjero. Cuenta con muchas funcionalidades específicas para los idiomas, pero también se puede utilizar para otras tareas de aprendizaje. Utiliza el método de repetición espaciada, que proporciona un aprendizaje óptimo. Las colecciones de vocabulario se pueden descargar mediante la opción «Obtener nuevo material» o crear mediante el editor incorporado.</p>
- <p xml:lang="et">Parley on sõnavara harjutamise rakendus. See aitab sõnu meelde jätta, millest on kasu, kui õpid näiteks võõrkeelt. Toetatud on paljud keelespetsiifilised võimalused, kuid rakendust saab kasutada ka muudeks õppimisülesanneteks. Siin kasutatakse ajas hajutatud kordamise meetodit, mis muudab omandamise optimaalseks. Sõnavarakogusid saab alla laadida internetist või luua neid ise kaasasoleva redaktoriga.</p>
- <p xml:lang="fi">Parley on sanaston harjoitusohjelma. Se auttaa oppimaan sanastoja ulkoa esimerkiksi, kun yrität oppia vierasta kieltä. Se tukee useita kielikohtaisia piirteitä, mutta sitä voi käyttää muuhunkin opiskeluun. Se käyttää aikavälikertauksen oppimismenetelmää, joka optimoi oppimisen. Sanastoja voi ladata käyttämällä ”Lataa uusia sanastoja” -ominaisuutta tai niitä voi luoda sisäänrakennetussa muokkaimessa.</p>
- <p xml:lang="gl">Parley é un adestrador de vocabulario. Axúdao a memorizar un vocabulario, como por exemplo o vocabulario dun idioma que está a aprender. Conta con vocabulario de moitos idiomas, pero tamén se pode empregar para aprender outras cousas. Emprega o método de ensino de repetición espazada, que optimiza a aprendizaxe. Pode descargar coleccións de vocabulario empregando «Get Hot New Stuff» ou crear as súas propias coleccións co editor integrado.</p>
- <p xml:lang="it">Parley è un programma per l'pprendimento di vocaboli. Ti aiuta a memorizzare vocaboli, ad esempio quando stai imparando una lingua straniera. Supporta molte caratteristiche specifiche di varie lingue, ma può essere usato anche per imparare altre cose. Usa la ripetizione dilazionata come metodo di apprendimento, migliorando l'apprendimento. Collezioni di vocaboli possono essere scaricate usando il sistema delle «Novità», oppure create con l'editor integrato.</p>
- <p xml:lang="nds">Parley is en Vokavel-Lehrprogramm. Dat hölpt Di bi't Lehren vun Dien Wöör, a.B. ut en butenlannsch Spraak. Dat ünnerstütt vele Spraakfunkschonen, man lett sik ok för anner Saken bruken. De Lehrmetood is de Wedderhalen mit Afstand, wat dat Lehren verbetert. Vokavelsetten kannst Du över „Deegte niege Saken“ daalladen oder mit den inbuut Editor sülven opstellen.</p>
- <p xml:lang="nl">Met Parley kunt u woordjes oefenen. Het helpt uw woordenschat uit te breiden, bijvoorbeeld bij het leren van een vreemde taal. Veel taaleigen zaken worden ondersteund, maar u kunt Parley ook gebruiken voor andere leeroefeningen. Het gebruikt de "spaced repetition" leermethode (met geregelde herhalingen), om optimaal te kunnen leren. Woordenlijsten kunnen worden gedownload, of met het ingebouwde bewerkingsprogramma zelf worden gemaakt.</p>
- <p xml:lang="pl">Parley jest programem do ćwiczenia słownictwa. Pomaga zapamiętać słownictwo np. w przypadku nauki obcego języka. Zapewnia wiele możliwości zależnych od języka, lecz można go użyć także do nauki innych rzeczy. Używa metody nauki polegającej na powtarzaniu w czasie, co sprawia, że nauka jest optymalna. Zbiory słownictwa można pobrać poprzez usługę "Get Hot New Stuff" lub utworzyć poprzez wbudowany edytor.</p>
- <p xml:lang="pt">O Parley é um treinador de vocabulários. Ajuda-o a memorizar o seu vocabulário, quando por exemplo está a tentar aprender uma língua estrangeira. Ele suporta muitas funcionalidades específicas das línguas, mas também poderá ser usado para outras tarefas de aprendizagem. Ele usa o método de aprendizagem por repetição espaçada, o que torna a aprendizagem óptima. As colecções de vocabulários poderão ser obtidas pelo mecanismo para "Obter Coisas Novas" ou criadas com o editor incorporado.</p>
- <p xml:lang="pt-BR">Parley é um treinador de vocabulários. Ele o ajuda a memorizar seu vocabulário, quando, por exemplo, você estiver tentando aprender um idioma estrangeiro. Ele tem suporte a muitas funcionalidades específicas de idiomas, mas também pode ser usado para outras tarefas de aprendizagem. Ele usa o método de aprendizagem por repetição espaçada, o que torna a aprendizagem ótima. As coleções de vocabulários poderão ser obtidas pela funcionalidade "Obter novidades" ou criadas com o editor incorporado.</p>
- <p xml:lang="ru">Parley — программа для тренировки словарного запаса, например при изучении иностранного языка. Учитываются особенности языков, но тем не менее возможно заучивать не только переводы слов, но и другую информацию. В программе используется техника интервальных повторений, ускоряющая заучивание. Можно создавать свои файлы словарей. Также доступны готовые файлы, предоставленные другими пользователями Parley, которые можно загрузить прямо из программы.</p>
- <p xml:lang="sk">Parley je tréner slovnej zásoby. Pomôže vám naučiť sa slovnú zásobu, napríklad keď sa snažíte naučiť cudzí jazyk. Podporuje mnoho jazykovo špecifických funkcií, ale dá sa použiť aj na iné výukové účely. Používa metódu rozloženého opakovania učenia, ktorá robí výuku optimálnou. Kolekcie slovnej zásoby sa dajú stiahnuť cez "Získať nový materiál" alebo vytvoriť cez zabudovaný editor.</p>
- <p xml:lang="sl">Parley vam lahko pomaga pri učenju besedišča, če se na primer poskušate naučiti tuj jezik. Podpira zmožnosti, ki so določene za nek jezik, lahko pa ga uporabite tudi za druge stvari. Uporablja posebne metode, ki optimizirajo učenje. Zbirke besedišč lahko prejmete s pomočjo "Dobi vroče novosti" ali pa uporabite vgrajen urejevalnik.</p>
- <p xml:lang="sv">Parley är ett är program för ordförrådsövning. Det hjälper dig att memorera ditt ordförråd, till exempel när du försöker lära dig ett främmande språk. Det stöder en mängd språkspecifika funktioner, men kan dessutom användas för andra inlärningsuppgifter. Det använder inlärningsmetoden med utspridd upprepning, vilket gör inlärning optimal. Ordförrådsamlingar kan laddas ner med "Hämta heta nyheter" eller skapas med den inbyggda editorn.</p>
- <p xml:lang="tr">Parley bir kelime çalıştırıcıdır. Kelimeleri hatırlamanıza yardımcı olur, yeni bir dil öğrenmeye çalışırken faydalıdır. Dillere özel bir çok özelliği destekler ama diğer öğrenme görevleri için de kullanılabilir. Öğrenmeyi kolaylaştıran tekrarlı öğrenme yöntemini kullanır. Kelime listeleri "Yeni Liste İndir" bağlantısından indirilebilir veya gömülü düzenleyici ile oluşturulabilir.</p>
- <p xml:lang="uk">Parley — програма для вивчення мов. Вона допоможе вам поповнити ваш словниковий запас і вивчити правила іноземної мови. У програмі передбачено багато специфічних для мов можливостей. Втім, нею можна скористатися і для виконання інших завдань з вивчення даних. У програмі використано методику навчання за допомогою повторення зі змінним інтервалом, яка оптимізує процес навчання. Збірки словників можна отримати з інтернету або створити за допомогою вбудованого до програми редактора.</p>
- <p xml:lang="x-test">xxParley is a vocabulary trainer. It helps you to memorize your vocabulary, for example when you are trying to learn a foreign language. It supports many language specific features, but can be used for other learning tasks as well. It uses the spaced repetition learning method, which makes learning optimal. Vocabulary collections can be downloaded by "Get Hot New Stuff" or created with the built-in editor.xx</p>
- <p xml:lang="zh-TW">Parley 是一套字彙訓練程式。它能協助您在學習外語時記憶字彙。它支援多種語言功能,也可以用於其他領域的訓練。字彙可以從「取得新禮物」中下載,或是自行透過內建編輯器建立。</p>
- <p>Training Modes:</p>
- <p xml:lang="ast">Moos d'entretenimientu</p>
- <p xml:lang="bs">Režimi treninga</p>
- <p xml:lang="ca">Modes d'entrenament:</p>
- <p xml:lang="ca-valencia">Modes d'entrenament:</p>
- <p xml:lang="de">Übungsmodi:</p>
- <p xml:lang="en-GB">Training Modes:</p>
- <p xml:lang="es">Modos de entrenamiento:</p>
- <p xml:lang="et">Harjutamisviisid:</p>
- <p xml:lang="fi">Harjoitustavat:</p>
- <p xml:lang="gl">Modos de adestramento:</p>
- <p xml:lang="it">Modalità di apprendimento:</p>
- <p xml:lang="ko">연습 모드:</p>
- <p xml:lang="nds">Ööv-Bedriefoorden:</p>
- <p xml:lang="nl">Oefenmethodes:</p>
- <p xml:lang="pl">Tryby ćwiczeń"</p>
- <p xml:lang="pt">Modos de Treino:</p>
- <p xml:lang="pt-BR">Modos de treinamento:</p>
- <p xml:lang="ru">Режимы обучения:</p>
- <p xml:lang="sk">Režimy tréningu:</p>
- <p xml:lang="sl">Načini učenja:</p>
- <p xml:lang="sv">Övningsmetoder:</p>
- <p xml:lang="tr">Çalışma Kipleri:</p>
- <p xml:lang="uk">Режими навчання:</p>
- <p xml:lang="x-test">xxTraining Modes:xx</p>
- <p xml:lang="zh-CN">训练模式:</p>
- <p xml:lang="zh-TW">訓練模式:</p>
- <ul>
- <li>Flash Cards</li>
- <li xml:lang="ast">Tarxetes</li>
- <li xml:lang="bs">Memorijske kartice</li>
- <li xml:lang="ca">Fitxes ràpides</li>
- <li xml:lang="ca-valencia">Fitxes ràpides</li>
- <li xml:lang="cs">Kartičky</li>
- <li xml:lang="de">Karteikarten</li>
- <li xml:lang="en-GB">Flash Cards</li>
- <li xml:lang="es">Tarjetas</li>
- <li xml:lang="et">Sähvikud</li>
- <li xml:lang="fi">Kysymyskortit</li>
- <li xml:lang="gl">Tarxetas</li>
- <li xml:lang="it">Carte mnemoniche</li>
- <li xml:lang="ko">플래시 카드</li>
- <li xml:lang="lt">Kortelės</li>
- <li xml:lang="nds">Naslakoorten</li>
- <li xml:lang="nl">Oefenkaarten</li>
- <li xml:lang="pl">Fiszki</li>
- <li xml:lang="pt">Cartões</li>
- <li xml:lang="pt-BR">Cartões</li>
- <li xml:lang="ru">Карточки</li>
- <li xml:lang="sk">Učebné karty</li>
- <li xml:lang="sl">Karte</li>
- <li xml:lang="sv">Snabbkort</li>
- <li xml:lang="tr">Hafıza Kartları</li>
- <li xml:lang="uk">Навчальні картки.</li>
- <li xml:lang="x-test">xxFlash Cardsxx</li>
- <li xml:lang="zh-CN">题卡</li>
- <li xml:lang="zh-TW">閃卡</li>
- <li>Mixed Letters (order the letters of a word)</li>
- <li xml:lang="ast">Lletres mestes (ordena les lletres d'un pallabra)</li>
- <li xml:lang="bs">Miješana slova (redoslijed slova riječi)</li>
- <li xml:lang="ca">Lletres barrejades (ordre de les lletres d'una paraula)</li>
- <li xml:lang="ca-valencia">Lletres barrejades (orde de les lletres d'una paraula)</li>
- <li xml:lang="de">Gemischte Buchstaben (Buchstaben in der richtigen Reihenfolge anordnen)</li>
- <li xml:lang="en-GB">Mixed Letters (order the letters of a word)</li>
- <li xml:lang="es">Mezcla de letras (ordenar las letras de una palabra)</li>
- <li xml:lang="et">Segatud tähed (tähtede järjestamine nagu anagrammis)</li>
- <li xml:lang="fi">Sekoitetut kirjaimet (järjestä sanan kirjaimet)</li>
- <li xml:lang="gl">Letras mesturadas (ordenar as letras dunha palabra)</li>
- <li xml:lang="it">Lettere mescolate (ordina le lettere di una parola)</li>
- <li xml:lang="nds">Mischt Bookstaven (Bookstaven vun en Woort ornen)</li>
- <li xml:lang="nl">Gehutselde letters (zet de letters in het woord in de goede volgorde)</li>
- <li xml:lang="pl">Mieszane litery (ułóż litery słowa)</li>
- <li xml:lang="pt">Letras Misturadas (ordenar as letras de uma palavra)</li>
- <li xml:lang="pt-BR">Letras misturadas (ordenar as letras de uma palavra)</li>
- <li xml:lang="ru">Перемешанные буквы (нужно восстановить правильный порядок букв в слове)</li>
- <li xml:lang="sk">Zmiešané písmená (poradie písmen v slove)</li>
- <li xml:lang="sl">Pomešane črke (postavite črke besede v pravilni vrstni red)</li>
- <li xml:lang="sv">Blandade bokstäver (ordna bokstäverna i ett ord)</li>
- <li xml:lang="tr">Karışık Harfler (kelimenin harflerini sıraya dizin)</li>
- <li xml:lang="uk">Відновлення порядку літер (різновид анаграми).</li>
- <li xml:lang="x-test">xxMixed Letters (order the letters of a word)xx</li>
- <li xml:lang="zh-CN">混合字母 (一个单词的字母顺序)</li>
- <li xml:lang="zh-TW">混合字母(單字字母順序)</li>
- <li>Multiple Choice</li>
- <li xml:lang="ast">Escoyeta múltiple</li>
- <li xml:lang="bs">Višestruki izbor</li>
- <li xml:lang="ca">Elecció múltiple</li>
- <li xml:lang="ca-valencia">Elecció múltiple</li>
- <li xml:lang="cs">S nabídkou možností</li>
- <li xml:lang="de">Mehrfachauswahl</li>
- <li xml:lang="en-GB">Multiple Choice</li>
- <li xml:lang="es">Varias opciones</li>
- <li xml:lang="et">Mitmene valik</li>
- <li xml:lang="fi">Monivalinta</li>
- <li xml:lang="gl">Opcións múltiplas</li>
- <li xml:lang="it">Scelta multipla</li>
- <li xml:lang="ko">객관식</li>
- <li xml:lang="lt">Pasirinkimas iš kelių atsakymų</li>
- <li xml:lang="nds">Mehrfachköör</li>
- <li xml:lang="nl">Meerkeuze</li>
- <li xml:lang="pl">Wiele odpowiedzi</li>
- <li xml:lang="pt">Escolha Múltipla</li>
- <li xml:lang="pt-BR">Múltipla escolha</li>
- <li xml:lang="ru">Вопросы с вариантами ответа</li>
- <li xml:lang="sk">Viacnásobné možnosti</li>
- <li xml:lang="sl">Več možnosti</li>
- <li xml:lang="sv">Flerval</li>
- <li xml:lang="tr">Çoktan Seçmeli</li>
- <li xml:lang="uk">Вибір з варіантів.</li>
- <li xml:lang="x-test">xxMultiple Choicexx</li>
- <li xml:lang="zh-CN">多项选择</li>
- <li xml:lang="zh-TW">多重選擇</li>
- <li>Written</li>
- <li xml:lang="bs">Napisano</li>
- <li xml:lang="ca">Escrita</li>
- <li xml:lang="ca-valencia">Escrita</li>
- <li xml:lang="cs">Písemný</li>
- <li xml:lang="de">Schriftlich</li>
- <li xml:lang="en-GB">Written</li>
- <li xml:lang="es">Escrito</li>
- <li xml:lang="et">Kirjalik</li>
- <li xml:lang="fi">Kirjallinen</li>
- <li xml:lang="gl">Escrito</li>
- <li xml:lang="it">Scritto</li>
- <li xml:lang="ko">주관식</li>
- <li xml:lang="lt">Rašyba</li>
- <li xml:lang="nds">Schreven</li>
- <li xml:lang="nl">Geschreven</li>
- <li xml:lang="pl">Pisemny</li>
- <li xml:lang="pt">Escrito</li>
- <li xml:lang="pt-BR">Escrita</li>
- <li xml:lang="ru">Письменные задания</li>
- <li xml:lang="sk">Napísané</li>
- <li xml:lang="sl">Pisno</li>
- <li xml:lang="sv">Skrivet</li>
- <li xml:lang="tr">Yazılı</li>
- <li xml:lang="uk">Письмовий.</li>
- <li xml:lang="x-test">xxWrittenxx</li>
- <li xml:lang="zh-CN">写作</li>
- <li xml:lang="zh-TW">已寫入</li>
- <li>Language specific trainings: article, comparison forms, conjugations, synonymes/antonyms/paraphrases</li>
- <li xml:lang="ast">Entrenamientos específicos de lligua: artículos, formes de comparanza, conxugaciones, sinónimos/anotónimos/paráfrasis</li>
- <li xml:lang="bs">Jezički posebna obuka: članovi, oblici poređenja, konjugacija, sinonimi/antonimi/parafraze</li>
- <li xml:lang="ca">Entrenaments específics d'idioma: article, formes de comparació, conjugacions, sinònims/antònims/paràfrasis</li>
- <li xml:lang="ca-valencia">Entrenaments específics d'idioma: article, formes de comparació, conjugacions, sinònims/antònims/paràfrasis</li>
- <li xml:lang="de">Sprachspezifische Übungen: Artikel, Vergleichsformen, Konjugationen, Synonyme, Antonyme, Umschreibungen</li>
- <li xml:lang="en-GB">Language specific trainings: article, comparison forms, conjugations, synonymes/antonyms/paraphrases</li>
- <li xml:lang="es">Entrenamiento específico para idiomas: artículo, formas comparativas, conjugaciones, sinónimos, antónimos y paráfrasis.</li>
- <li xml:lang="et">Keelespetsiifilised harjutused: artiklid, võrdlusvormid, käänamine, pööramine, sünonüümid, antonüümid, parafraasid</li>
- <li xml:lang="fi">Kielikohtaiset harjoitukset: artikkelit, vertailumuodot, taivutusmuodot, synonyymit/antonyymit/parafraasit</li>
- <li xml:lang="gl">Adestramentos de idioma: artigos, formas de comparación,conxugación, sinónimos, antónimos e perífrases.</li>
- <li xml:lang="it">Apprendimenti specifici per le lingue: articoli, forme di confronto, coniugazioni, sinomini/antonimi/parafrasi</li>
- <li xml:lang="nds">Besünner Spraaklexen: Artikeln, Stiegformen, Böögformen, Liekwöör, Güntwöör, Ümschrieven</li>
- <li xml:lang="nl">Taaleigen oefeningen: lidwoorden, vergelijkingen, vervoegingen, synoniemen/antoniemen/paragrafen</li>
- <li xml:lang="pl">Ćwiczenia wyjątkowe dla języka: rodzajnik, formy porównawcze, odmiany, synonimy/antonimy/parafrazy</li>
- <li xml:lang="pt">Treinos específicos da língua: artigos, formas de comparação, conjugações, sinónimos/antónimos/parágrafos</li>
- <li xml:lang="pt-BR">Treinamentos específicos de idioma: artigo, formas de comparação, conjugações, sinônimos/antônimos/paráfrases</li>
- <li xml:lang="ru">Задания, зависящие от языка: артикли, степени сравнения, спряжение глаголов, синонимы и антонимы</li>
- <li xml:lang="sk">Tréning závislý na jazyku: článok, porovnanie foriem, konjugácie, synonymá/antonymá/odseky</li>
- <li xml:lang="sl">Vadbe določene za jezik: členi, primerjalne oblike, spregatve, sopomenke/protipomenke/parafraze</li>
- <li xml:lang="sv">Språkspecifika övningar: artiklar, kompareringsformer, konjugeringar, synonymer/antonymer/omskrivningar</li>
- <li xml:lang="tr">Dile özel çalışmalar: makale, karşılaştırma formları, çekimler, eş anlamlılar / zıt anlamlılar / başka kelimelerle açıklamalar</li>
- <li xml:lang="uk">Специфічні для мови режими: артиклі, ступені порівняння, спряження, синоніми, антоніми, парафрази.</li>
- <li xml:lang="x-test">xxLanguage specific trainings: article, comparison forms, conjugations, synonymes/antonyms/paraphrasesxx</li>
- <li xml:lang="zh-TW">語言指定訓練:冠詞、比較級、詞形變化、同義/反義/譯述等</li>
- </ul>
- </description>
- <url type="homepage">http://edu.kde.org/parley/</url>
- <url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&product=parley</url>
- <url type="help">http://docs.kde.org/stable/en/kdeedu/parley/index.html</url>
- <screenshots>
- <screenshot type="default">
- <image>http://kde.org/images/screenshots/parley.png</image>
- </screenshot>
- </screenshots>
- <project_group>KDE</project_group>
- <provides>
- <binary>parley</binary>
- </provides>
-</component>
1
0
Hello community,
here is the log from the commit of package palapeli for openSUSE:Factory checked in at 2016-01-28 17:22:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/palapeli (Old)
and /work/SRC/openSUSE:Factory/.palapeli.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "palapeli"
Changes:
--------
--- /work/SRC/openSUSE:Factory/palapeli/palapeli.changes 2016-01-10 13:07:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.palapeli.new/palapeli.changes 2016-01-28 17:22:20.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:36:05 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
palapeli-15.12.0.tar.xz
New:
----
palapeli-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ palapeli.spec ++++++
--- /var/tmp/diff_new_pack.6OXM3W/_old 2016-01-28 17:22:20.000000000 +0100
+++ /var/tmp/diff_new_pack.6OXM3W/_new 2016-01-28 17:22:20.000000000 +0100
@@ -21,7 +21,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Puzzle
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: palapeli-%{version}.tar.xz
BuildRequires: libkdegames4-devel
++++++ palapeli-15.12.0.tar.xz -> palapeli-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package okteta for openSUSE:Factory checked in at 2016-01-28 17:22:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/okteta (Old)
and /work/SRC/openSUSE:Factory/.okteta.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "okteta"
Changes:
--------
--- /work/SRC/openSUSE:Factory/okteta/okteta.changes 2016-01-10 13:07:09.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.okteta.new/okteta.changes 2016-01-28 17:22:18.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:35:38 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
okteta-15.12.0.tar.xz
New:
----
okteta-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ okteta.spec ++++++
--- /var/tmp/diff_new_pack.zlFDi6/_old 2016-01-28 17:22:19.000000000 +0100
+++ /var/tmp/diff_new_pack.zlFDi6/_new 2016-01-28 17:22:19.000000000 +0100
@@ -39,7 +39,7 @@
License: GPL-2.0 and GFDL-1.2
Group: Development/Tools/Other
Url: http://www.kde.org/
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: okteta-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ okteta-15.12.0.tar.xz -> okteta-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package lskat for openSUSE:Factory checked in at 2016-01-28 17:22:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lskat (Old)
and /work/SRC/openSUSE:Factory/.lskat.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lskat"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lskat/lskat.changes 2016-01-10 13:07:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.lskat.new/lskat.changes 2016-01-28 17:22:17.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:34:32 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
lskat-15.12.0.tar.xz
New:
----
lskat-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lskat.spec ++++++
--- /var/tmp/diff_new_pack.EFuYow/_old 2016-01-28 17:22:18.000000000 +0100
+++ /var/tmp/diff_new_pack.EFuYow/_new 2016-01-28 17:22:18.000000000 +0100
@@ -23,7 +23,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Card
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: lskat-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ lskat-15.12.0.tar.xz -> lskat-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package lokalize for openSUSE:Factory checked in at 2016-01-28 17:22:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lokalize (Old)
and /work/SRC/openSUSE:Factory/.lokalize.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lokalize"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lokalize/lokalize.changes 2016-01-10 13:07:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.lokalize.new/lokalize.changes 2016-01-28 17:22:15.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:34:23 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
lokalize-15.12.0.tar.xz
New:
----
lokalize-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lokalize.spec ++++++
--- /var/tmp/diff_new_pack.CWmAyH/_old 2016-01-28 17:22:16.000000000 +0100
+++ /var/tmp/diff_new_pack.CWmAyH/_new 2016-01-28 17:22:16.000000000 +0100
@@ -17,7 +17,7 @@
Name: lokalize
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: KDE Translation Editor
License: GPL-2.0+
++++++ lokalize-15.12.0.tar.xz -> lokalize-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lokalize-15.12.0/lokalize.appdata.xml new/lokalize-15.12.1/lokalize.appdata.xml
--- old/lokalize-15.12.0/lokalize.appdata.xml 2015-12-09 11:13:15.000000000 +0100
+++ new/lokalize-15.12.1/lokalize.appdata.xml 2015-12-30 11:51:27.000000000 +0100
@@ -16,6 +16,7 @@
<name xml:lang="fr">Lokalize</name>
<name xml:lang="gl">Lokalize</name>
<name xml:lang="it">Lokalize</name>
+ <name xml:lang="lt">Lokalize</name>
<name xml:lang="nl">Lokalize</name>
<name xml:lang="nn">Lokalize</name>
<name xml:lang="pl">Lokalize</name>
@@ -45,6 +46,7 @@
<summary xml:lang="fr">Outil de traduction assistée par ordinateur</summary>
<summary xml:lang="gl">Sistema de tradución asistida por computador.</summary>
<summary xml:lang="it">Sistema di traduzione assistita</summary>
+ <summary xml:lang="lt">Kompiuterizuota vertimo sistema</summary>
<summary xml:lang="nl">Computerondersteund vertaalsysteem</summary>
<summary xml:lang="nn">Dataassistert omsetjing</summary>
<summary xml:lang="pl">System tłumaczeń wspomagany komputerowo</summary>
1
0
Hello community,
here is the log from the commit of package libkmahjongg for openSUSE:Factory checked in at 2016-01-28 17:22:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libkmahjongg (Old)
and /work/SRC/openSUSE:Factory/.libkmahjongg.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkmahjongg"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libkmahjongg/libkmahjongg.changes 2016-01-10 13:07:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libkmahjongg.new/libkmahjongg.changes 2016-01-28 17:22:14.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:34:02 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
libkmahjongg-15.12.0.tar.xz
New:
----
libkmahjongg-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libkmahjongg.spec ++++++
--- /var/tmp/diff_new_pack.EMyM18/_old 2016-01-28 17:22:15.000000000 +0100
+++ /var/tmp/diff_new_pack.EMyM18/_new 2016-01-28 17:22:15.000000000 +0100
@@ -21,7 +21,7 @@
License: GPL-2.0+
Group: System/GUI/KDE
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: libkmahjongg-%{version}.tar.xz
BuildRequires: fdupes
++++++ libkmahjongg-15.12.0.tar.xz -> libkmahjongg-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkmahjongg-15.12.0/CMakeLists.txt new/libkmahjongg-15.12.1/CMakeLists.txt
--- old/libkmahjongg-15.12.0/CMakeLists.txt 2015-11-04 18:12:15.000000000 +0100
+++ new/libkmahjongg-15.12.1/CMakeLists.txt 2016-01-05 16:01:00.000000000 +0100
@@ -65,8 +65,6 @@
install(TARGETS KF5KMahjongglib EXPORT KF5KMahjonggLibraryDepends
${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
-install(TARGETS KF5KMahjongglib ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
-
########### install files ###############
install(FILES
1
0
Hello community,
here is the log from the commit of package libkeduvocdocument for openSUSE:Factory checked in at 2016-01-28 17:22:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libkeduvocdocument (Old)
and /work/SRC/openSUSE:Factory/.libkeduvocdocument.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkeduvocdocument"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libkeduvocdocument/libkeduvocdocument.changes 2016-01-10 13:07:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libkeduvocdocument.new/libkeduvocdocument.changes 2016-01-28 17:22:12.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:33:05 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
libkeduvocdocument-15.12.0.tar.xz
New:
----
libkeduvocdocument-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libkeduvocdocument.spec ++++++
--- /var/tmp/diff_new_pack.vgIYQk/_old 2016-01-28 17:22:12.000000000 +0100
+++ /var/tmp/diff_new_pack.vgIYQk/_new 2016-01-28 17:22:12.000000000 +0100
@@ -17,7 +17,7 @@
Name: libkeduvocdocument
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Library for KDE Education Applications
License: GPL-2.0+
++++++ libkeduvocdocument-15.12.0.tar.xz -> libkeduvocdocument-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package libkdeedu4 for openSUSE:Factory checked in at 2016-01-28 17:22:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libkdeedu4 (Old)
and /work/SRC/openSUSE:Factory/.libkdeedu4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkdeedu4"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libkdeedu4/libkdeedu4.changes 2016-01-10 13:07:00.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libkdeedu4.new/libkdeedu4.changes 2016-01-28 17:22:11.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:32:42 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
libkdeedu-15.12.0.tar.xz
New:
----
libkdeedu-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libkdeedu4.spec ++++++
--- /var/tmp/diff_new_pack.Os9w3T/_old 2016-01-28 17:22:12.000000000 +0100
+++ /var/tmp/diff_new_pack.Os9w3T/_new 2016-01-28 17:22:12.000000000 +0100
@@ -17,7 +17,7 @@
Name: libkdeedu4
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Library for KDE Education Applications
License: GPL-2.0+
++++++ libkdeedu-15.12.0.tar.xz -> libkdeedu-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kwordquiz for openSUSE:Factory checked in at 2016-01-28 17:22:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwordquiz (Old)
and /work/SRC/openSUSE:Factory/.kwordquiz.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwordquiz"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kwordquiz/kwordquiz.changes 2016-01-10 13:06:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kwordquiz.new/kwordquiz.changes 2016-01-28 17:22:10.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:32:13 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kwordquiz-15.12.0.tar.xz
New:
----
kwordquiz-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kwordquiz.spec ++++++
--- /var/tmp/diff_new_pack.hxPW7w/_old 2016-01-28 17:22:10.000000000 +0100
+++ /var/tmp/diff_new_pack.hxPW7w/_new 2016-01-28 17:22:10.000000000 +0100
@@ -17,7 +17,7 @@
Name: kwordquiz
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Vocabulary Trainer
License: GPL-2.0+
@@ -76,11 +76,12 @@
%{_kf5_applicationsdir}/org.kde.kwordquiz.desktop
%{_kf5_appsdir}/kwordquiz/
%{_kf5_bindir}/kwordquiz
-%{_kf5_sharedir}/appdata/kwordquiz.appdata.xml
+%{_kf5_sharedir}/appdata/org.kde.kwordquiz.appdata.xml
%{_kf5_iconsdir}/hicolor/*/apps/kwordquiz.*
%{_kf5_iconsdir}/hicolor/*/mimetypes/application-x-kwordquiz.png
%{_kf5_configkcfgdir}/
%_datadir/knotifications5/
%_datadir/kxmlgui5/kwordquiz/
+%_kf5_configdir/kwordquiz.knsrc
%changelog
++++++ kwordquiz-15.12.0.tar.xz -> kwordquiz-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwordquiz-15.12.0/CMakeLists.txt new/kwordquiz-15.12.1/CMakeLists.txt
--- old/kwordquiz-15.12.0/CMakeLists.txt 2015-11-04 15:28:10.000000000 +0100
+++ new/kwordquiz-15.12.1/CMakeLists.txt 2015-12-28 18:13:00.000000000 +0100
@@ -48,5 +48,5 @@
add_subdirectory(doc)
add_subdirectory(src)
-install(FILES kwordquiz.appdata.xml DESTINATION ${KDE_INSTALL_DATAROOTDIR}/appdata/)
+install(FILES org.kde.kwordquiz.appdata.xml DESTINATION ${KDE_INSTALL_DATAROOTDIR}/appdata/)
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwordquiz-15.12.0/kwordquiz.appdata.xml new/kwordquiz-15.12.1/kwordquiz.appdata.xml
--- old/kwordquiz-15.12.0/kwordquiz.appdata.xml 2015-11-04 15:28:10.000000000 +0100
+++ new/kwordquiz-15.12.1/kwordquiz.appdata.xml 1970-01-01 01:00:00.000000000 +0100
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<component type="desktop">
- <id>org.kde.kwordquiz.desktop</id>
- <metadata_license>CC0-1.0</metadata_license>
- <project_license>GPL-2.0+</project_license>
- <name>KWordQuiz</name>
- <name xml:lang="ast">KWordQuiz</name>
- <name xml:lang="bs">KWordQuiz</name>
- <name xml:lang="ca">KWordQuiz</name>
- <name xml:lang="ca-valencia">KWordQuiz</name>
- <name xml:lang="cs">KWordQuiz</name>
- <name xml:lang="da">KWordQuiz</name>
- <name xml:lang="de">KWordQuiz</name>
- <name xml:lang="en-GB">KWordQuiz</name>
- <name xml:lang="es">KWordQuiz</name>
- <name xml:lang="et">KWordQuiz</name>
- <name xml:lang="fi">KWordQuiz</name>
- <name xml:lang="fr">KWordQuiz</name>
- <name xml:lang="gl">KWordQuiz</name>
- <name xml:lang="it">KWordQuiz</name>
- <name xml:lang="ko">KWordQuiz</name>
- <name xml:lang="lt">KWordQuiz</name>
- <name xml:lang="nds">KWordQuiz</name>
- <name xml:lang="nl">KWordQuiz</name>
- <name xml:lang="pl">KWordQuiz</name>
- <name xml:lang="pt">KWordQuiz</name>
- <name xml:lang="pt-BR">KWordQuiz</name>
- <name xml:lang="ru">KWordQuiz</name>
- <name xml:lang="sk">KWordQuiz</name>
- <name xml:lang="sl">KWordQuiz</name>
- <name xml:lang="sv">KWordQuiz</name>
- <name xml:lang="tr">KWordQuiz</name>
- <name xml:lang="uk">KWordQuiz</name>
- <name xml:lang="x-test">xxKWordQuizxx</name>
- <name xml:lang="zh-CN">KWordQuiz</name>
- <name xml:lang="zh-TW">語言_KWordQuiz</name>
- <summary>Flash Card Trainer</summary>
- <summary xml:lang="ast">Entrenador de tarxetes</summary>
- <summary xml:lang="bs">Učitelj fleš karticama</summary>
- <summary xml:lang="ca">Entrenador per targetes ràpides</summary>
- <summary xml:lang="ca-valencia">Entrenador per targetes ràpides</summary>
- <summary xml:lang="cs">Procvičování slovní zásoby s kartičkami</summary>
- <summary xml:lang="de">Karteikartentrainer</summary>
- <summary xml:lang="en-GB">Flash Card Trainer</summary>
- <summary xml:lang="es">Entrenador de tarjetas</summary>
- <summary xml:lang="et">Sähvikute treening</summary>
- <summary xml:lang="fi">Sanaston harjoittelu kysymyskorteilla</summary>
- <summary xml:lang="fr">Entraînement aux cartes mémoire</summary>
- <summary xml:lang="gl">Adestrador de vocabulario</summary>
- <summary xml:lang="it">Apprendimento con carte mnemoniche</summary>
- <summary xml:lang="ko">플래시 카드 트레이너</summary>
- <summary xml:lang="lt">Mokymasis iš kortelių</summary>
- <summary xml:lang="nds">Koorten-Lehrprogramm</summary>
- <summary xml:lang="nl">Woorden oefenen</summary>
- <summary xml:lang="pl">Ćwiczenie z fiszkami</summary>
- <summary xml:lang="pt">Treinador de Cartões</summary>
- <summary xml:lang="pt-BR">Treinador de cartões</summary>
- <summary xml:lang="ru">Программа для изучения новой лексики</summary>
- <summary xml:lang="sk">Precvičovanie slovnej zásoby s kartičkami</summary>
- <summary xml:lang="sl">Učenje s spominskimi kartami</summary>
- <summary xml:lang="sv">Flash Card Trainer</summary>
- <summary xml:lang="tr">Fiş Çalıştırıcı</summary>
- <summary xml:lang="uk">Тренування словникового запасу</summary>
- <summary xml:lang="x-test">xxFlash Card Trainerxx</summary>
- <summary xml:lang="zh-TW">閃卡訓練師</summary>
- <description>
- <p>KWordQuiz is a general purpose flash card program. It can be used for vocabulary learning and many other subjects. It provides an editor and five different flashcard quiz modes. It uses the KVTML file format and contributed files can be downloaded from within the application.</p>
- <p xml:lang="ast">KWordQuiz ye un programa de tarxetes. Pue usase pal deprendimientu de vocabulariu y munches otres asignatures. Apurre un editor y 5 moos estremaos de tarxetes. Usa'l formatu de ficheru KVTML y puen baxase dende l'aplicación ficheros d'otros contribuyentes.</p>
- <p xml:lang="bs">KWordQuiz je program opšte namjene fleš kartica. Može se koristiti za učenje riječi i s mnogim drugim temama. On pruža urednik i pet različitih flashcard kviz režima. Koristi format KVTML datoteke i doprinesni fajlovi mogu se preuzeti u okviru same aplikacije.</p>
- <p xml:lang="ca">El KWordQuiz és un programa de targetes ràpides de propòsit general. Es pot utilitzar per aprendre vocabulari altres temes. Proporciona un editor i cinc modes diferents de targetes ràpides. Utilitza el format de fitxer KVTML i es poden baixar fitxers de col·laboracions a l'aplicació.</p>
- <p xml:lang="ca-valencia">El KWordQuiz és un programa de targetes ràpides de propòsit general. Es pot utilitzar per aprendre vocabulari altres temes. Proporciona un editor i cinc modes diferents de targetes ràpides. Utilitza el format de fitxer KVTML i es poden baixar fitxers de col·laboracions a l'aplicació.</p>
- <p xml:lang="en-GB">KWordQuiz is a general purpose flash card program. It can be used for vocabulary learning and many other subjects. It provides an editor and five different flashcard quiz modes. It uses the KVTML file format and contributed files can be downloaded from within the application.</p>
- <p xml:lang="es">KWordQuiz es un programa de tarjetas de propósito general. Se puede utilizar para aprender vocabulario y otras muchas tareas. Proporciona un editor y cinco modos de tarjetas diferentes. Utiliza el formato de archivo KVTML y los archivos con los que han contribuido los usuarios se pueden descargar desde la aplicación.</p>
- <p xml:lang="et">KWordQuiz on üldotstarbeline sähvikute rakendus. Seda saab kasutada sõnavara omandamiseks, aga veel paljuks muuks. Rakendus pakub redaktorit ja viit eri viisi korraldada sähvikute abil viktoriine. Failivorminguks on KVTML, mis lubab otse rakenduses alla laadida teiste kasutajate loodud huvitavaid faile.</p>
- <p xml:lang="fi">KWordQuiz on yleiskäyttöinen kysymyskorttiohjelma. Sitä voi käyttää sanastojen ja monen muun harjoittelemiseen. Siinä on muokkain ja viisi erilaista kyselytapaa. Se käyttää KVTML-tiedostomuotoa ja lahjoitettuja tiedostoja voi ladata suoraan ohjelmasta.</p>
- <p xml:lang="fr">KWordQuiz est un programme générique pour les cartes mémoire. Il peut être utilisé pour apprendre du vocabulaire et plein d'autres choses. Il fournit un éditeur et cinq modes de quiz différents. Il utilise le format de fichier KVTML et des extensions conformes à ce format peuvent être téléchargés à partir de l'application.</p>
- <p xml:lang="gl">KWordQuiz é un programa de fichas de propósito xeral. Pode usarse para adestrar vocabulario e para moitas outras cousas. Fornece un editor e cinco modos distintos de preguntas mediante fichas. Usa o formato de ficheiro KVTML e os ficheiros doados poden descargarse desde o propio programa.</p>
- <p xml:lang="it">KWordQuiz è un programma di carte mnemoniche. Può essere usato per l'apprendimento di vocaboli e moltre altre materie. Fornisce un editor e cinque diversi tipi di quiz con carte menmoniche. Usa il formato di file KVTML e permette di scaricare file inviati da altri utenti.</p>
- <p xml:lang="nds">KWordQuiz is en allmeen Naslakoortprogramm. Du kannst dat för't Öven vun Wöör, man ok to anner Saken bruken. Dat hett en Editor un fief Affraag-Bedriefoorden. As Dateiformaat warrt dat KVTML-Formaat bruukt un vun Brukers bidragen Dateien laat sik binnen dat Programm daalladen.</p>
- <p xml:lang="nl">KWordQuiz is een draaikaart programma voor algemene doeleinden. Het kan gebruikt worden voor het leren van woordjes en vele andere onderwerpen. Het biedt een editor en vijf verschillende manieren om draaikaarten te gebruiken. Het gebruikt het KVTML bestandsformaat en aanvullende bestanden kunnen gedownload worden vanuit de toepassing.</p>
- <p xml:lang="pl">KWordQuiz jest programem do ćwiczenia na fiszkach ogólnego przeznaczenia. Dostarcza edytor i pięć różnych trybów quizów na fiszkach. Program używa formatu plików KVTML, a pliki stworzone przez innych użytkowników można pobrać z wewnątrz programu.</p>
- <p xml:lang="pt">O KWordQuiz é um programa de cartões de uso geral. Poderá ser usado para a aprendizagem de vocabulário e para muitos outros assuntos. Oferece um editor e cinco modos diferentes de questionários por cartões. Ele usa o formato de ficheiros KVTML e os ficheiros contribuídos poderão ser transferidos a partir da aplicação.</p>
- <p xml:lang="pt-BR">KWordQuiz é um programa de cartões de uso geral. Ele pode ser usado para aprendizagem de vocabulário e muitos outros assuntos. Oferece um editor e cinco modos diferentes de perguntas em forma de cartões. Ele usa o formato de arquivo KVTML e os arquivos disponibilizados por terceiros podem ser baixados a partir do aplicativo.</p>
- <p xml:lang="ru">KWordQuiz — программа для заучивания новых слов по системе Лейтнера, то есть с помощью карточек. Таким же образом в этой программе можно учить не только слова, но и например ответы на вопросы из различных областей знаний. В программу встроен редактор карточек. На ваш выбор есть пять режимов тренировки. Файлы сохраняются в формате KVTML. Готовые файлы, предоставленные другими пользователями KWordQuiz, можно загрузить прямо из программы.</p>
- <p xml:lang="sk">KWordQuiz je všeobecný kartový program. Dá sa použiť na učenie slovnej zásoby a na mnoho iných účelov. Obsahuje editor a 5 rôznych režimov kvízov s kartami. Používa formát súborov KVTML a súbory sa dajú stiahnuť priamo z aplikácie.</p>
- <p xml:lang="sl">KWordQuiz je splošen program za učenje s spominskimi kartami. Uporabite ga lahko za učenje besedišča in drugih zadev. Ponuja urejevalnik in pet različnih načinov kviza s spominskimi kartami. Uporabniško prispevane datoteke KVTML, ki jih uporablja, lahko prejmete znotraj programa.</p>
- <p xml:lang="sv">Kwordquiz är ett generellt program för snabbkort. Det kan användas för inlärning av ordförråd och många andra ämnen. Det tillhandahåller en editor och fem olika frågemetoder för snabbkort. Det använder filformatet KVTML, och bidragna filer kan laddas ner inne i programmet.</p>
- <p xml:lang="tr">KWordQuiz genel amaçlı bir fiş çalıştırma programıdır. Kelime öğrenmek veya başka bir çok konu için kullanılabilir. Bir düzenleyici ve beş farklı fiş sınav kipi içerir. KVTML dosya biçimini kullanır ve katkı verilmiş dosyalar uygulama içinden indirilebilir.</p>
- <p xml:lang="uk">KWordQuiz — програма для навчання за допомогою карток загального призначення. Нею можна скористатися для поповнення словникового запасу іноземною мовою або вивчення інших дисциплін. У програмі передбачено редактор та п’ть різних режимів навчання за допомогою карток. Для даних використовується формат файлів KVTML, файли даних, створені іншими користувачами, можна отримати безпосередньо за допомогою програми.</p>
- <p xml:lang="x-test">xxKWordQuiz is a general purpose flash card program. It can be used for vocabulary learning and many other subjects. It provides an editor and five different flashcard quiz modes. It uses the KVTML file format and contributed files can be downloaded from within the application.xx</p>
- <p xml:lang="zh-TW">KWordQuiz 是一套閃卡記憶訓練程式。它可以用於字彙學習,還有許多其它的用途。它提供了一個編輯器與五種不同的閃卡模式。它使用 KVTML 檔案格式,並且可以下載其他人所製作的閃卡檔。</p>
- </description>
- <url type="homepage">http://edu.kde.org/kwordquiz/</url>
- <url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&product=kwordquiz</url>
- <url type="help">http://docs.kde.org/stable/en/kdeedu/kwordquiz/index.html</url>
- <screenshots>
- <screenshot type="default">
- <image>http://kde.org/images/screenshots/kwordquiz.png</image>
- </screenshot>
- </screenshots>
- <project_group>KDE</project_group>
- <provides>
- <binary>kwordquiz</binary>
- </provides>
-</component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwordquiz-15.12.0/org.kde.kwordquiz.appdata.xml new/kwordquiz-15.12.1/org.kde.kwordquiz.appdata.xml
--- old/kwordquiz-15.12.0/org.kde.kwordquiz.appdata.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/kwordquiz-15.12.1/org.kde.kwordquiz.appdata.xml 2015-12-28 18:13:00.000000000 +0100
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component type="desktop">
+ <id>org.kde.kwordquiz.desktop</id>
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>GPL-2.0+</project_license>
+ <name>KWordQuiz</name>
+ <name xml:lang="ast">KWordQuiz</name>
+ <name xml:lang="bs">KWordQuiz</name>
+ <name xml:lang="ca">KWordQuiz</name>
+ <name xml:lang="ca-valencia">KWordQuiz</name>
+ <name xml:lang="cs">KWordQuiz</name>
+ <name xml:lang="da">KWordQuiz</name>
+ <name xml:lang="de">KWordQuiz</name>
+ <name xml:lang="en-GB">KWordQuiz</name>
+ <name xml:lang="es">KWordQuiz</name>
+ <name xml:lang="et">KWordQuiz</name>
+ <name xml:lang="fi">KWordQuiz</name>
+ <name xml:lang="fr">KWordQuiz</name>
+ <name xml:lang="gl">KWordQuiz</name>
+ <name xml:lang="it">KWordQuiz</name>
+ <name xml:lang="ko">KWordQuiz</name>
+ <name xml:lang="lt">KWordQuiz</name>
+ <name xml:lang="nds">KWordQuiz</name>
+ <name xml:lang="nl">KWordQuiz</name>
+ <name xml:lang="pl">KWordQuiz</name>
+ <name xml:lang="pt">KWordQuiz</name>
+ <name xml:lang="pt-BR">KWordQuiz</name>
+ <name xml:lang="ru">KWordQuiz</name>
+ <name xml:lang="sk">KWordQuiz</name>
+ <name xml:lang="sl">KWordQuiz</name>
+ <name xml:lang="sv">KWordQuiz</name>
+ <name xml:lang="tr">KWordQuiz</name>
+ <name xml:lang="uk">KWordQuiz</name>
+ <name xml:lang="x-test">xxKWordQuizxx</name>
+ <name xml:lang="zh-CN">KWordQuiz</name>
+ <name xml:lang="zh-TW">語言_KWordQuiz</name>
+ <summary>Flash Card Trainer</summary>
+ <summary xml:lang="ast">Entrenador de tarxetes</summary>
+ <summary xml:lang="bs">Učitelj fleš karticama</summary>
+ <summary xml:lang="ca">Entrenador per targetes ràpides</summary>
+ <summary xml:lang="ca-valencia">Entrenador per targetes ràpides</summary>
+ <summary xml:lang="cs">Procvičování slovní zásoby s kartičkami</summary>
+ <summary xml:lang="de">Karteikartentrainer</summary>
+ <summary xml:lang="en-GB">Flash Card Trainer</summary>
+ <summary xml:lang="es">Entrenador de tarjetas</summary>
+ <summary xml:lang="et">Sähvikute treening</summary>
+ <summary xml:lang="fi">Sanaston harjoittelu kysymyskorteilla</summary>
+ <summary xml:lang="fr">Entraînement aux cartes mémoire</summary>
+ <summary xml:lang="gl">Adestrador de vocabulario</summary>
+ <summary xml:lang="it">Apprendimento con carte mnemoniche</summary>
+ <summary xml:lang="ko">플래시 카드 트레이너</summary>
+ <summary xml:lang="lt">Mokymasis iš kortelių</summary>
+ <summary xml:lang="nds">Koorten-Lehrprogramm</summary>
+ <summary xml:lang="nl">Woorden oefenen</summary>
+ <summary xml:lang="pl">Ćwiczenie z fiszkami</summary>
+ <summary xml:lang="pt">Treinador de Cartões</summary>
+ <summary xml:lang="pt-BR">Treinador de cartões</summary>
+ <summary xml:lang="ru">Программа для изучения новой лексики</summary>
+ <summary xml:lang="sk">Precvičovanie slovnej zásoby s kartičkami</summary>
+ <summary xml:lang="sl">Učenje s spominskimi kartami</summary>
+ <summary xml:lang="sv">Flash Card Trainer</summary>
+ <summary xml:lang="tr">Fiş Çalıştırıcı</summary>
+ <summary xml:lang="uk">Тренування словникового запасу</summary>
+ <summary xml:lang="x-test">xxFlash Card Trainerxx</summary>
+ <summary xml:lang="zh-TW">閃卡訓練師</summary>
+ <description>
+ <p>KWordQuiz is a general purpose flash card program. It can be used for vocabulary learning and many other subjects. It provides an editor and five different flashcard quiz modes. It uses the KVTML file format and contributed files can be downloaded from within the application.</p>
+ <p xml:lang="ast">KWordQuiz ye un programa de tarxetes. Pue usase pal deprendimientu de vocabulariu y munches otres asignatures. Apurre un editor y 5 moos estremaos de tarxetes. Usa'l formatu de ficheru KVTML y puen baxase dende l'aplicación ficheros d'otros contribuyentes.</p>
+ <p xml:lang="bs">KWordQuiz je program opšte namjene fleš kartica. Može se koristiti za učenje riječi i s mnogim drugim temama. On pruža urednik i pet različitih flashcard kviz režima. Koristi format KVTML datoteke i doprinesni fajlovi mogu se preuzeti u okviru same aplikacije.</p>
+ <p xml:lang="ca">El KWordQuiz és un programa de targetes ràpides de propòsit general. Es pot utilitzar per aprendre vocabulari altres temes. Proporciona un editor i cinc modes diferents de targetes ràpides. Utilitza el format de fitxer KVTML i es poden baixar fitxers de col·laboracions a l'aplicació.</p>
+ <p xml:lang="ca-valencia">El KWordQuiz és un programa de targetes ràpides de propòsit general. Es pot utilitzar per aprendre vocabulari altres temes. Proporciona un editor i cinc modes diferents de targetes ràpides. Utilitza el format de fitxer KVTML i es poden baixar fitxers de col·laboracions a l'aplicació.</p>
+ <p xml:lang="en-GB">KWordQuiz is a general purpose flash card program. It can be used for vocabulary learning and many other subjects. It provides an editor and five different flashcard quiz modes. It uses the KVTML file format and contributed files can be downloaded from within the application.</p>
+ <p xml:lang="es">KWordQuiz es un programa de tarjetas de propósito general. Se puede utilizar para aprender vocabulario y otras muchas tareas. Proporciona un editor y cinco modos de tarjetas diferentes. Utiliza el formato de archivo KVTML y los archivos con los que han contribuido los usuarios se pueden descargar desde la aplicación.</p>
+ <p xml:lang="et">KWordQuiz on üldotstarbeline sähvikute rakendus. Seda saab kasutada sõnavara omandamiseks, aga veel paljuks muuks. Rakendus pakub redaktorit ja viit eri viisi korraldada sähvikute abil viktoriine. Failivorminguks on KVTML, mis lubab otse rakenduses alla laadida teiste kasutajate loodud huvitavaid faile.</p>
+ <p xml:lang="fi">KWordQuiz on yleiskäyttöinen kysymyskorttiohjelma. Sitä voi käyttää sanastojen ja monen muun harjoittelemiseen. Siinä on muokkain ja viisi erilaista kyselytapaa. Se käyttää KVTML-tiedostomuotoa ja lahjoitettuja tiedostoja voi ladata suoraan ohjelmasta.</p>
+ <p xml:lang="fr">KWordQuiz est un programme générique pour les cartes mémoire. Il peut être utilisé pour apprendre du vocabulaire et plein d'autres choses. Il fournit un éditeur et cinq modes de quiz différents. Il utilise le format de fichier KVTML et des extensions conformes à ce format peuvent être téléchargés à partir de l'application.</p>
+ <p xml:lang="gl">KWordQuiz é un programa de fichas de propósito xeral. Pode usarse para adestrar vocabulario e para moitas outras cousas. Fornece un editor e cinco modos distintos de preguntas mediante fichas. Usa o formato de ficheiro KVTML e os ficheiros doados poden descargarse desde o propio programa.</p>
+ <p xml:lang="it">KWordQuiz è un programma di carte mnemoniche. Può essere usato per l'apprendimento di vocaboli e moltre altre materie. Fornisce un editor e cinque diversi tipi di quiz con carte menmoniche. Usa il formato di file KVTML e permette di scaricare file inviati da altri utenti.</p>
+ <p xml:lang="nds">KWordQuiz is en allmeen Naslakoortprogramm. Du kannst dat för't Öven vun Wöör, man ok to anner Saken bruken. Dat hett en Editor un fief Affraag-Bedriefoorden. As Dateiformaat warrt dat KVTML-Formaat bruukt un vun Brukers bidragen Dateien laat sik binnen dat Programm daalladen.</p>
+ <p xml:lang="nl">KWordQuiz is een draaikaart programma voor algemene doeleinden. Het kan gebruikt worden voor het leren van woordjes en vele andere onderwerpen. Het biedt een editor en vijf verschillende manieren om draaikaarten te gebruiken. Het gebruikt het KVTML bestandsformaat en aanvullende bestanden kunnen gedownload worden vanuit de toepassing.</p>
+ <p xml:lang="pl">KWordQuiz jest programem do ćwiczenia na fiszkach ogólnego przeznaczenia. Dostarcza edytor i pięć różnych trybów quizów na fiszkach. Program używa formatu plików KVTML, a pliki stworzone przez innych użytkowników można pobrać z wewnątrz programu.</p>
+ <p xml:lang="pt">O KWordQuiz é um programa de cartões de uso geral. Poderá ser usado para a aprendizagem de vocabulário e para muitos outros assuntos. Oferece um editor e cinco modos diferentes de questionários por cartões. Ele usa o formato de ficheiros KVTML e os ficheiros contribuídos poderão ser transferidos a partir da aplicação.</p>
+ <p xml:lang="pt-BR">KWordQuiz é um programa de cartões de uso geral. Ele pode ser usado para aprendizagem de vocabulário e muitos outros assuntos. Oferece um editor e cinco modos diferentes de perguntas em forma de cartões. Ele usa o formato de arquivo KVTML e os arquivos disponibilizados por terceiros podem ser baixados a partir do aplicativo.</p>
+ <p xml:lang="ru">KWordQuiz — программа для заучивания новых слов по системе Лейтнера, то есть с помощью карточек. Таким же образом в этой программе можно учить не только слова, но и например ответы на вопросы из различных областей знаний. В программу встроен редактор карточек. На ваш выбор есть пять режимов тренировки. Файлы сохраняются в формате KVTML. Готовые файлы, предоставленные другими пользователями KWordQuiz, можно загрузить прямо из программы.</p>
+ <p xml:lang="sk">KWordQuiz je všeobecný kartový program. Dá sa použiť na učenie slovnej zásoby a na mnoho iných účelov. Obsahuje editor a 5 rôznych režimov kvízov s kartami. Používa formát súborov KVTML a súbory sa dajú stiahnuť priamo z aplikácie.</p>
+ <p xml:lang="sl">KWordQuiz je splošen program za učenje s spominskimi kartami. Uporabite ga lahko za učenje besedišča in drugih zadev. Ponuja urejevalnik in pet različnih načinov kviza s spominskimi kartami. Uporabniško prispevane datoteke KVTML, ki jih uporablja, lahko prejmete znotraj programa.</p>
+ <p xml:lang="sv">Kwordquiz är ett generellt program för snabbkort. Det kan användas för inlärning av ordförråd och många andra ämnen. Det tillhandahåller en editor och fem olika frågemetoder för snabbkort. Det använder filformatet KVTML, och bidragna filer kan laddas ner inne i programmet.</p>
+ <p xml:lang="tr">KWordQuiz genel amaçlı bir fiş çalıştırma programıdır. Kelime öğrenmek veya başka bir çok konu için kullanılabilir. Bir düzenleyici ve beş farklı fiş sınav kipi içerir. KVTML dosya biçimini kullanır ve katkı verilmiş dosyalar uygulama içinden indirilebilir.</p>
+ <p xml:lang="uk">KWordQuiz — програма для навчання за допомогою карток загального призначення. Нею можна скористатися для поповнення словникового запасу іноземною мовою або вивчення інших дисциплін. У програмі передбачено редактор та п’ть різних режимів навчання за допомогою карток. Для даних використовується формат файлів KVTML, файли даних, створені іншими користувачами, можна отримати безпосередньо за допомогою програми.</p>
+ <p xml:lang="x-test">xxKWordQuiz is a general purpose flash card program. It can be used for vocabulary learning and many other subjects. It provides an editor and five different flashcard quiz modes. It uses the KVTML file format and contributed files can be downloaded from within the application.xx</p>
+ <p xml:lang="zh-TW">KWordQuiz 是一套閃卡記憶訓練程式。它可以用於字彙學習,還有許多其它的用途。它提供了一個編輯器與五種不同的閃卡模式。它使用 KVTML 檔案格式,並且可以下載其他人所製作的閃卡檔。</p>
+ </description>
+ <url type="homepage">http://edu.kde.org/kwordquiz/</url>
+ <url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&product=kwordquiz</url>
+ <url type="help">http://docs.kde.org/stable/en/kdeedu/kwordquiz/index.html</url>
+ <screenshots>
+ <screenshot type="default">
+ <image>http://kde.org/images/screenshots/kwordquiz.png</image>
+ </screenshot>
+ </screenshots>
+ <project_group>KDE</project_group>
+ <provides>
+ <binary>kwordquiz</binary>
+ </provides>
+</component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwordquiz-15.12.0/src/CMakeLists.txt new/kwordquiz-15.12.1/src/CMakeLists.txt
--- old/kwordquiz-15.12.0/src/CMakeLists.txt 2015-11-04 15:28:10.000000000 +0100
+++ new/kwordquiz-15.12.1/src/CMakeLists.txt 2015-12-28 18:13:00.000000000 +0100
@@ -98,8 +98,8 @@
install( PROGRAMS org.kde.kwordquiz.desktop DESTINATION ${KDE_INSTALL_APPDIR} )
install( FILES kwordquiz.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR} )
-install( FILES kwordquiz.knsrc DESTINATION ${KDE_INSTALL_KNOTIFY5RCDIR} )
-install( FILES kwordquiz.notifyrc DESTINATION ${KDE_INSTALL_DATADIR}/kwordquiz )
+install( FILES kwordquiz.knsrc DESTINATION ${KDE_INSTALL_CONFDIR} )
+install( FILES kwordquiz.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFY5RCDIR} )
install(FILES
kwordquizui.rc
DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/kwordquiz)
1
0
Hello community,
here is the log from the commit of package kuser for openSUSE:Factory checked in at 2016-01-28 17:22:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kuser (Old)
and /work/SRC/openSUSE:Factory/.kuser.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kuser"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kuser/kuser.changes 2016-01-10 13:06:54.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kuser.new/kuser.changes 2016-01-28 17:22:09.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:31:58 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kuser-15.12.0.tar.xz
New:
----
kuser-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kuser.spec ++++++
--- /var/tmp/diff_new_pack.V9jikB/_old 2016-01-28 17:22:10.000000000 +0100
+++ /var/tmp/diff_new_pack.V9jikB/_new 2016-01-28 17:22:10.000000000 +0100
@@ -19,7 +19,7 @@
Name: kuser
BuildRequires: libkdepimlibs4-devel
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: User Account Manager
License: GPL-2.0+
++++++ kuser-15.12.0.tar.xz -> kuser-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kubrick for openSUSE:Factory checked in at 2016-01-28 17:22:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kubrick (Old)
and /work/SRC/openSUSE:Factory/.kubrick.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubrick"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kubrick/kubrick.changes 2016-01-10 13:06:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kubrick.new/kubrick.changes 2016-01-28 17:22:08.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:31:52 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kubrick-15.12.0.tar.xz
New:
----
kubrick-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kubrick.spec ++++++
--- /var/tmp/diff_new_pack.pNfLYJ/_old 2016-01-28 17:22:09.000000000 +0100
+++ /var/tmp/diff_new_pack.pNfLYJ/_new 2016-01-28 17:22:09.000000000 +0100
@@ -24,7 +24,7 @@
License: GPL-2.0+
Group: Amusements/Games/Logic
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kubrick-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kubrick-15.12.0.tar.xz -> kubrick-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kturtle for openSUSE:Factory checked in at 2016-01-28 17:22:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kturtle (Old)
and /work/SRC/openSUSE:Factory/.kturtle.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kturtle"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kturtle/kturtle.changes 2016-01-10 13:06:51.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kturtle.new/kturtle.changes 2016-01-28 17:22:07.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:31:47 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kturtle-15.12.0.tar.xz
New:
----
kturtle-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kturtle.spec ++++++
--- /var/tmp/diff_new_pack.DAXG4u/_old 2016-01-28 17:22:07.000000000 +0100
+++ /var/tmp/diff_new_pack.DAXG4u/_new 2016-01-28 17:22:07.000000000 +0100
@@ -21,7 +21,7 @@
License: GPL-2.0+
Group: Amusements/Teaching/Mathematics
Url: http://edu.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: %{name}-%{version}.tar.xz
BuildRequires: update-desktop-files
++++++ kturtle-15.12.0.tar.xz -> kturtle-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package ktuberling for openSUSE:Factory checked in at 2016-01-28 17:22:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktuberling (Old)
and /work/SRC/openSUSE:Factory/.ktuberling.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktuberling"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktuberling/ktuberling.changes 2016-01-10 13:06:48.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktuberling.new/ktuberling.changes 2016-01-28 17:22:04.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:31:35 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktuberling-15.12.0.tar.xz
New:
----
ktuberling-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktuberling.spec ++++++
--- /var/tmp/diff_new_pack.HcwhPr/_old 2016-01-28 17:22:05.000000000 +0100
+++ /var/tmp/diff_new_pack.HcwhPr/_new 2016-01-28 17:22:05.000000000 +0100
@@ -42,7 +42,7 @@
License: GPL-2.0+
Group: Amusements/Toys/Other
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: ktuberling-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ ktuberling-15.12.0.tar.xz -> ktuberling-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktuberling-15.12.0/main.cpp new/ktuberling-15.12.1/main.cpp
--- old/ktuberling-15.12.0/main.cpp 2015-12-09 13:00:01.000000000 +0100
+++ new/ktuberling-15.12.1/main.cpp 2016-01-07 13:53:40.000000000 +0100
@@ -65,5 +65,7 @@
}
+ app.setWindowIcon(QIcon::fromTheme(QStringLiteral("ktuberling")));
+
return app.exec();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktuberling-15.12.0/org.kde.ktuberling.desktop new/ktuberling-15.12.1/org.kde.ktuberling.desktop
--- old/ktuberling-15.12.0/org.kde.ktuberling.desktop 2015-12-09 13:00:01.000000000 +0100
+++ new/ktuberling-15.12.1/org.kde.ktuberling.desktop 2016-01-07 13:53:40.000000000 +0100
@@ -135,6 +135,7 @@
Comment[pl]=Prosta gra twórcza kierowana dla dzieci i dorosłych
Comment[pt]=Um jogo de construção simples, adequado tanto para crianças como adultos
Comment[pt_BR]=Um jogo de construção simples, adequado para crianças e adultos
+Comment[ru]=Игра-конструктор для детей, а также взрослых, впадающих в детство
Comment[sk]=Jednoduchá výstavbová hra vhodná pre deti a dospelých
Comment[sl]=Preprosta igra sestavljanja primerna za mlajše in starejše otroke
Comment[sr]=Једноставна игра конструисања погодна и за децу и за одрасле
@@ -145,6 +146,7 @@
Comment[tr]=Çocukların ve yetişkinlerin hoşlanacağı basit bir inşaat oyunu
Comment[uk]=Проста гра-складанка для дітей та дорослих.
Comment[x-test]=xxA simple constructor game suitable for children and adults alikexx
+Comment[zh_TW]=適合小孩與童心未泯的大人們的簡單遊戲
Type=Application
X-DocPath=ktuberling/index.html
Terminal=false
1
0
Hello community,
here is the log from the commit of package ktp-text-ui for openSUSE:Factory checked in at 2016-01-28 17:22:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-text-ui (Old)
and /work/SRC/openSUSE:Factory/.ktp-text-ui.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-text-ui"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-text-ui/ktp-text-ui.changes 2016-01-10 13:06:46.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktp-text-ui.new/ktp-text-ui.changes 2016-01-28 17:22:03.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:31:24 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktp-text-ui-15.12.0.tar.xz
New:
----
ktp-text-ui-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-text-ui.spec ++++++
--- /var/tmp/diff_new_pack.Appjuc/_old 2016-01-28 17:22:04.000000000 +0100
+++ /var/tmp/diff_new_pack.Appjuc/_new 2016-01-28 17:22:04.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktp-text-ui
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Telepathy chat handler for KDE
License: GPL-2.0+
++++++ ktp-text-ui-15.12.0.tar.xz -> ktp-text-ui-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-text-ui-15.12.0/CMakeLists.txt new/ktp-text-ui-15.12.1/CMakeLists.txt
--- old/ktp-text-ui-15.12.0/CMakeLists.txt 2015-12-08 17:08:39.000000000 +0100
+++ new/ktp-text-ui-15.12.1/CMakeLists.txt 2016-01-07 00:24:18.000000000 +0100
@@ -5,7 +5,7 @@
# KDE Application Version, managed by release script
set(KDE_APPLICATIONS_VERSION_MAJOR "15")
set(KDE_APPLICATIONS_VERSION_MINOR "12")
-set(KDE_APPLICATIONS_VERSION_MICRO "0")
+set(KDE_APPLICATIONS_VERSION_MICRO "1")
set(KTP_TEXT_UI_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
set(KTP_MESSAGE_FILTER_FRAMEWORK_VERSION "5")
set(IS_KTP_INTERNAL_MODULE TRUE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-text-ui-15.12.0/app/chat-window.cpp new/ktp-text-ui-15.12.1/app/chat-window.cpp
--- old/ktp-text-ui-15.12.0/app/chat-window.cpp 2015-12-08 17:08:39.000000000 +0100
+++ new/ktp-text-ui-15.12.1/app/chat-window.cpp 2016-01-07 00:24:18.000000000 +0100
@@ -312,7 +312,7 @@
}
tab->setFocus();
- tab->updateSendMessageShortcuts(m_sendMessage->shortcut());
+ tab->updateSendMessageShortcuts(m_sendMessage->shortcuts());
// block text input if key is being generated for this account
if(m_proxyService->isOngoingGeneration(QDBusObjectPath(tab->account()->objectPath()))) {
tab->blockTextInput(true);
@@ -1341,7 +1341,7 @@
void ChatWindow::updateSendMessageShortcuts()
{
- QKeySequence newSendMessageShortcuts = m_sendMessage->shortcut();
+ QList<QKeySequence> newSendMessageShortcuts = m_sendMessage->shortcuts();
for (int i = 0; i < m_tabWidget->count(); i++) {
ChatTab* tab = qobject_cast<ChatTab*>(m_tabWidget->widget(i));
tab->updateSendMessageShortcuts(newSendMessageShortcuts);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-text-ui-15.12.0/lib/chat-text-edit.cpp new/ktp-text-ui-15.12.1/lib/chat-text-edit.cpp
--- old/ktp-text-ui-15.12.0/lib/chat-text-edit.cpp 2015-12-08 17:08:39.000000000 +0100
+++ new/ktp-text-ui-15.12.1/lib/chat-text-edit.cpp 2016-01-07 00:24:18.000000000 +0100
@@ -148,7 +148,7 @@
key = QKeySequence(keyEvent->modifiers() | keyEvent->key());
}
- if (m_sendMessageShortcuts.matches(key) == QKeySequence::ExactMatch) {
+ if (m_sendMessageShortcuts.contains(key)) {
// keyPressEvent() handles Control modifier wrong, so we need that thing
// to be in event().
this->sendMessage();
@@ -203,7 +203,7 @@
Q_EMIT returnKeyPressed();
}
-void ChatTextEdit::setSendMessageShortcuts(const QKeySequence &shortcuts)
+void ChatTextEdit::setSendMessageShortcuts(const QList<QKeySequence> &shortcuts)
{
m_sendMessageShortcuts = shortcuts;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-text-ui-15.12.0/lib/chat-text-edit.h new/ktp-text-ui-15.12.1/lib/chat-text-edit.h
--- old/ktp-text-ui-15.12.0/lib/chat-text-edit.h 2015-12-08 17:08:39.000000000 +0100
+++ new/ktp-text-ui-15.12.1/lib/chat-text-edit.h 2016-01-07 00:24:18.000000000 +0100
@@ -71,7 +71,7 @@
* Updates internal message sending shortcuts. Must be called on every window
* creation and every message sending shortcuts change.
*/
- void setSendMessageShortcuts(const QKeySequence &shortcuts);
+ void setSendMessageShortcuts(const QList<QKeySequence> &shortcuts);
private:
QStringList m_history;
@@ -84,7 +84,7 @@
int m_completionPosition;
bool m_continuousCompletion;
- QKeySequence m_sendMessageShortcuts;
+ QList<QKeySequence> m_sendMessageShortcuts;
};
#endif // CHATTEXTEDIT_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-text-ui-15.12.0/lib/chat-widget.cpp new/ktp-text-ui-15.12.1/lib/chat-widget.cpp
--- old/ktp-text-ui-15.12.0/lib/chat-widget.cpp 2015-12-08 17:08:39.000000000 +0100
+++ new/ktp-text-ui-15.12.1/lib/chat-widget.cpp 2016-01-07 00:24:18.000000000 +0100
@@ -644,7 +644,7 @@
}
}
-void ChatWidget::updateSendMessageShortcuts(const QKeySequence &shortcuts)
+void ChatWidget::updateSendMessageShortcuts(const QList<QKeySequence> &shortcuts)
{
d->ui.sendMessageBox->setSendMessageShortcuts(shortcuts);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-text-ui-15.12.0/lib/chat-widget.h new/ktp-text-ui-15.12.1/lib/chat-widget.h
--- old/ktp-text-ui-15.12.0/lib/chat-widget.h 2015-12-08 17:08:39.000000000 +0100
+++ new/ktp-text-ui-15.12.1/lib/chat-widget.h 2016-01-07 00:24:18.000000000 +0100
@@ -134,7 +134,7 @@
*/
void acknowledgeMessages();
- void updateSendMessageShortcuts(const QKeySequence &shortcuts);
+ void updateSendMessageShortcuts(const QList<QKeySequence> &shortcuts);
void reloadTheme();
1
0
Hello community,
here is the log from the commit of package ktp-send-file for openSUSE:Factory checked in at 2016-01-28 17:22:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-send-file (Old)
and /work/SRC/openSUSE:Factory/.ktp-send-file.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-send-file"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-send-file/ktp-send-file.changes 2016-01-10 13:06:45.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktp-send-file.new/ktp-send-file.changes 2016-01-28 17:22:02.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:31:16 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktp-send-file-15.12.0.tar.xz
New:
----
ktp-send-file-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-send-file.spec ++++++
--- /var/tmp/diff_new_pack.cHwoW5/_old 2016-01-28 17:22:03.000000000 +0100
+++ /var/tmp/diff_new_pack.cHwoW5/_new 2016-01-28 17:22:03.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktp-send-file
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: File manager plugin
License: LGPL-2.1+
++++++ ktp-send-file-15.12.0.tar.xz -> ktp-send-file-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-send-file-15.12.0/CMakeLists.txt new/ktp-send-file-15.12.1/CMakeLists.txt
--- old/ktp-send-file-15.12.0/CMakeLists.txt 2015-12-08 17:08:19.000000000 +0100
+++ new/ktp-send-file-15.12.1/CMakeLists.txt 2016-01-07 00:23:48.000000000 +0100
@@ -5,7 +5,7 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "15")
set (KDE_APPLICATIONS_VERSION_MINOR "12")
-set (KDE_APPLICATIONS_VERSION_MICRO "0")
+set (KDE_APPLICATIONS_VERSION_MICRO "1")
set (KTP_SEND_FILE_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
set(IS_KTP_INTERNAL_MODULE TRUE)
1
0
Hello community,
here is the log from the commit of package ktp-kded-module for openSUSE:Factory checked in at 2016-01-28 17:21:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-kded-module (Old)
and /work/SRC/openSUSE:Factory/.ktp-kded-module.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-kded-module"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-kded-module/ktp-kded-module.changes 2016-01-10 13:06:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktp-kded-module.new/ktp-kded-module.changes 2016-01-28 17:22:00.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:31:10 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktp-kded-module-15.12.0.tar.xz
New:
----
ktp-kded-module-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-kded-module.spec ++++++
--- /var/tmp/diff_new_pack.SJn7ZV/_old 2016-01-28 17:22:00.000000000 +0100
+++ /var/tmp/diff_new_pack.SJn7ZV/_new 2016-01-28 17:22:00.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktp-kded-module
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: KDED module that manages the telepathy interactions with the KDE Desktop
License: LGPL-2.1+
++++++ ktp-kded-module-15.12.0.tar.xz -> ktp-kded-module-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-kded-module-15.12.0/CMakeLists.txt new/ktp-kded-module-15.12.1/CMakeLists.txt
--- old/ktp-kded-module-15.12.0/CMakeLists.txt 2015-12-08 17:07:59.000000000 +0100
+++ new/ktp-kded-module-15.12.1/CMakeLists.txt 2016-01-07 00:23:19.000000000 +0100
@@ -5,7 +5,7 @@
# KDE Application Version, managed by release script
set(KDE_APPLICATIONS_VERSION_MAJOR "15")
set(KDE_APPLICATIONS_VERSION_MINOR "12")
-set(KDE_APPLICATIONS_VERSION_MICRO "0")
+set(KDE_APPLICATIONS_VERSION_MICRO "1")
set(KTP_KDED_MODULE_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
cmake_policy(SET CMP0002 OLD)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-kded-module-15.12.0/config/kcm_ktp_integration_module.desktop new/ktp-kded-module-15.12.1/config/kcm_ktp_integration_module.desktop
--- old/ktp-kded-module-15.12.0/config/kcm_ktp_integration_module.desktop 2015-12-08 17:07:59.000000000 +0100
+++ new/ktp-kded-module-15.12.1/config/kcm_ktp_integration_module.desktop 2016-01-07 00:23:19.000000000 +0100
@@ -83,7 +83,7 @@
Comment[kk]=Лезде хабарласу мен VoIP жалпы баптауы
Comment[km]=ការកំណត់ទូទៅសម្រាប់ការផ្ញើសារបន្ទាន់ និង VoIP
Comment[ko]=인스턴트 메시지 및 VoIP 일반 설정
-Comment[lt]=Bendri Pokalbių ir VoIP nustatymai
+Comment[lt]=Bendros pokalbių ir VoIP nuostatos
Comment[nb]=Generelle instillinger for lynmeldinger og VoIP
Comment[nds]=Allmeen Instellen för Kortnarichten un VoIP
Comment[nl]=Algemene instellingen voor Instant Messaging en VoIP
1
0
Hello community,
here is the log from the commit of package ktp-filetransfer-handler for openSUSE:Factory checked in at 2016-01-28 17:21:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-filetransfer-handler (Old)
and /work/SRC/openSUSE:Factory/.ktp-filetransfer-handler.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-filetransfer-handler"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-filetransfer-handler/ktp-filetransfer-handler.changes 2016-01-10 13:06:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktp-filetransfer-handler.new/ktp-filetransfer-handler.changes 2016-01-28 17:21:59.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:31:05 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktp-filetransfer-handler-15.12.0.tar.xz
New:
----
ktp-filetransfer-handler-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-filetransfer-handler.spec ++++++
--- /var/tmp/diff_new_pack.TTXZJC/_old 2016-01-28 17:21:59.000000000 +0100
+++ /var/tmp/diff_new_pack.TTXZJC/_new 2016-01-28 17:21:59.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktp-filetransfer-handler
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Telepathy filetransfer handler
License: GPL-2.0+
++++++ ktp-filetransfer-handler-15.12.0.tar.xz -> ktp-filetransfer-handler-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-filetransfer-handler-15.12.0/CMakeLists.txt new/ktp-filetransfer-handler-15.12.1/CMakeLists.txt
--- old/ktp-filetransfer-handler-15.12.0/CMakeLists.txt 2015-12-08 17:07:40.000000000 +0100
+++ new/ktp-filetransfer-handler-15.12.1/CMakeLists.txt 2016-01-07 00:22:50.000000000 +0100
@@ -5,7 +5,7 @@
# KDE Application Version, managed by release script
set(KDE_APPLICATIONS_VERSION_MAJOR "15")
set(KDE_APPLICATIONS_VERSION_MINOR "12")
-set(KDE_APPLICATIONS_VERSION_MICRO "0")
+set(KDE_APPLICATIONS_VERSION_MICRO "1")
set(KTP_FILETRANSFER_HANDLER_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
find_package(ECM 1.3.0 REQUIRED NO_MODULE)
1
0
Hello community,
here is the log from the commit of package ktp-desktop-applets for openSUSE:Factory checked in at 2016-01-28 17:21:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-desktop-applets (Old)
and /work/SRC/openSUSE:Factory/.ktp-desktop-applets.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-desktop-applets"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-desktop-applets/ktp-desktop-applets.changes 2016-01-10 13:06:40.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktp-desktop-applets.new/ktp-desktop-applets.changes 2016-01-28 17:21:58.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:30:59 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktp-desktop-applets-15.12.0.tar.xz
New:
----
ktp-desktop-applets-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-desktop-applets.spec ++++++
--- /var/tmp/diff_new_pack.IHYJEb/_old 2016-01-28 17:21:58.000000000 +0100
+++ /var/tmp/diff_new_pack.IHYJEb/_new 2016-01-28 17:21:58.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktp-desktop-applets
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Telepathy presence applet
License: GPL-2.0+ and LGPL-2.1+
++++++ ktp-desktop-applets-15.12.0.tar.xz -> ktp-desktop-applets-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-desktop-applets-15.12.0/CMakeLists.txt new/ktp-desktop-applets-15.12.1/CMakeLists.txt
--- old/ktp-desktop-applets-15.12.0/CMakeLists.txt 2015-12-08 17:07:20.000000000 +0100
+++ new/ktp-desktop-applets-15.12.1/CMakeLists.txt 2016-01-07 00:22:24.000000000 +0100
@@ -5,7 +5,7 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "15")
set (KDE_APPLICATIONS_VERSION_MINOR "12")
-set (KDE_APPLICATIONS_VERSION_MICRO "0")
+set (KDE_APPLICATIONS_VERSION_MICRO "1")
set(KTP_DESKTOP_APPLETS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-desktop-applets-15.12.0/contactlist/org.kde.ktp-contactlist/contents/ui/ListContactDelegate.qml new/ktp-desktop-applets-15.12.1/contactlist/org.kde.ktp-contactlist/contents/ui/ListContactDelegate.qml
--- old/ktp-desktop-applets-15.12.0/contactlist/org.kde.ktp-contactlist/contents/ui/ListContactDelegate.qml 2015-12-08 17:07:20.000000000 +0100
+++ new/ktp-desktop-applets-15.12.1/contactlist/org.kde.ktp-contactlist/contents/ui/ListContactDelegate.qml 2016-01-07 00:22:24.000000000 +0100
@@ -25,7 +25,6 @@
PlasmaComponents.ListItem {
id: delegate
enabled: true
- property bool isCurrent: delegate.ListView.view.currentIndex==index
ExtraComponents.QPixmapItem {
id: avatarLabel
@@ -46,11 +45,6 @@
text: model.display
elide: Text.ElideRight
- //consider this a workaround, because the breeze's listitem doesn't
- //display very clearly what's the current item
- styleColor: theme.viewFocusColor
- style: delegate.isCurrent ? Text.Raised : Text.Normal
-
anchors {
left: avatarLabel.right
right: presenceLabel.left
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-desktop-applets-15.12.0/person/org.kde.person/metadata.desktop.cmake new/ktp-desktop-applets-15.12.1/person/org.kde.person/metadata.desktop.cmake
--- old/ktp-desktop-applets-15.12.0/person/org.kde.person/metadata.desktop.cmake 2015-12-08 17:07:20.000000000 +0100
+++ new/ktp-desktop-applets-15.12.1/person/org.kde.person/metadata.desktop.cmake 2016-01-07 00:22:24.000000000 +0100
@@ -18,7 +18,7 @@
Name[lt]=Asmuo
Name[nl]=Persoon
Name[nn]=Person
-Name[pl]=Osoba
+Name[pl]=Ludzie
Name[pt]=Pessoa
Name[pt_BR]=Pessoa
Name[ro]=Persoană
@@ -52,7 +52,7 @@
Comment[ko]=특정 사람과 빠르게 대화합니다
Comment[nl]=Maakt een persoon gemakkelijk toegankelijk
Comment[nn]=Gjer ein person lett tilgjengeleg
-Comment[pl]=Czyni osobę łatwo dostępną
+Comment[pl]=Czyni ludzi łatwo dostępnymi
Comment[pt]=Torna uma pessoa facilmente acessível
Comment[pt_BR]=Torna uma pessoa facilmente acessível
Comment[ro]=Face o persoană să fie accesibilă ușor
1
0
Hello community,
here is the log from the commit of package ktp-contact-list for openSUSE:Factory checked in at 2016-01-28 17:21:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-contact-list (Old)
and /work/SRC/openSUSE:Factory/.ktp-contact-list.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-contact-list"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-contact-list/ktp-contact-list.changes 2016-01-10 13:06:37.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktp-contact-list.new/ktp-contact-list.changes 2016-01-28 17:21:56.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:30:47 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktp-contact-list-15.12.0.tar.xz
New:
----
ktp-contact-list-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-contact-list.spec ++++++
--- /var/tmp/diff_new_pack.ubGF8o/_old 2016-01-28 17:21:57.000000000 +0100
+++ /var/tmp/diff_new_pack.ubGF8o/_new 2016-01-28 17:21:57.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktp-contact-list
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Telepathy contact list
License: LGPL-2.1+
++++++ ktp-contact-list-15.12.0.tar.xz -> ktp-contact-list-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-contact-list-15.12.0/CMakeLists.txt new/ktp-contact-list-15.12.1/CMakeLists.txt
--- old/ktp-contact-list-15.12.0/CMakeLists.txt 2015-12-08 17:06:42.000000000 +0100
+++ new/ktp-contact-list-15.12.1/CMakeLists.txt 2016-01-07 00:21:19.000000000 +0100
@@ -5,7 +5,7 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "15")
set (KDE_APPLICATIONS_VERSION_MINOR "12")
-set (KDE_APPLICATIONS_VERSION_MICRO "0")
+set (KDE_APPLICATIONS_VERSION_MICRO "1")
set(KTP_CONTACT_LIST_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
1
0
Hello community,
here is the log from the commit of package ktp-contact-runner for openSUSE:Factory checked in at 2016-01-28 17:21:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-contact-runner (Old)
and /work/SRC/openSUSE:Factory/.ktp-contact-runner.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-contact-runner"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-contact-runner/ktp-contact-runner.changes 2016-01-10 13:06:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktp-contact-runner.new/ktp-contact-runner.changes 2016-01-28 17:21:57.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:30:52 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktp-contact-runner-15.12.0.tar.xz
New:
----
ktp-contact-runner-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-contact-runner.spec ++++++
--- /var/tmp/diff_new_pack.lPzHbG/_old 2016-01-28 17:21:57.000000000 +0100
+++ /var/tmp/diff_new_pack.lPzHbG/_new 2016-01-28 17:21:57.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktp-contact-runner
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Telepathy Krunner plugin
License: LGPL-2.1+
++++++ ktp-contact-runner-15.12.0.tar.xz -> ktp-contact-runner-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-contact-runner-15.12.0/CMakeLists.txt new/ktp-contact-runner-15.12.1/CMakeLists.txt
--- old/ktp-contact-runner-15.12.0/CMakeLists.txt 2015-12-08 17:07:01.000000000 +0100
+++ new/ktp-contact-runner-15.12.1/CMakeLists.txt 2016-01-07 00:21:51.000000000 +0100
@@ -5,7 +5,7 @@
# KDE Application Version, managed by release script
set(KDE_APPLICATIONS_VERSION_MAJOR "15")
set(KDE_APPLICATIONS_VERSION_MINOR "12")
-set(KDE_APPLICATIONS_VERSION_MICRO "0")
+set(KDE_APPLICATIONS_VERSION_MICRO "1")
set(KTP_CONTACT_RUNNER_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
set(IS_KTP_INTERNAL_MODULE TRUE)
1
0
Hello community,
here is the log from the commit of package ktp-auth-handler for openSUSE:Factory checked in at 2016-01-28 17:21:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-auth-handler (Old)
and /work/SRC/openSUSE:Factory/.ktp-auth-handler.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-auth-handler"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-auth-handler/ktp-auth-handler.changes 2016-01-10 13:06:33.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktp-auth-handler.new/ktp-auth-handler.changes 2016-01-28 17:21:55.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:30:28 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktp-auth-handler-15.12.0.tar.xz
New:
----
ktp-auth-handler-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-auth-handler.spec ++++++
--- /var/tmp/diff_new_pack.A8yR1P/_old 2016-01-28 17:21:56.000000000 +0100
+++ /var/tmp/diff_new_pack.A8yR1P/_new 2016-01-28 17:21:56.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktp-auth-handler
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Telepathy auth handler
License: LGPL-2.1+
++++++ ktp-auth-handler-15.12.0.tar.xz -> ktp-auth-handler-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-auth-handler-15.12.0/CMakeLists.txt new/ktp-auth-handler-15.12.1/CMakeLists.txt
--- old/ktp-auth-handler-15.12.0/CMakeLists.txt 2015-12-08 17:06:02.000000000 +0100
+++ new/ktp-auth-handler-15.12.1/CMakeLists.txt 2016-01-07 00:20:23.000000000 +0100
@@ -3,7 +3,7 @@
# KDE Application Version, managed by release script
set(KDE_APPLICATIONS_VERSION_MAJOR "15")
set(KDE_APPLICATIONS_VERSION_MINOR "12")
-set(KDE_APPLICATIONS_VERSION_MICRO "0")
+set(KDE_APPLICATIONS_VERSION_MICRO "1")
set(KTP_AUTH_HANDLER_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
1
0
Hello community,
here is the log from the commit of package ktp-approver for openSUSE:Factory checked in at 2016-01-28 17:21:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-approver (Old)
and /work/SRC/openSUSE:Factory/.ktp-approver.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-approver"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-approver/ktp-approver.changes 2016-01-10 13:06:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktp-approver.new/ktp-approver.changes 2016-01-28 17:21:54.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:30:22 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktp-approver-15.12.0.tar.xz
New:
----
ktp-approver-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-approver.spec ++++++
--- /var/tmp/diff_new_pack.fG6zTQ/_old 2016-01-28 17:21:55.000000000 +0100
+++ /var/tmp/diff_new_pack.fG6zTQ/_new 2016-01-28 17:21:55.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktp-approver
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: KDE Channel Approver for Telepathy
License: LGPL-2.1+
++++++ ktp-approver-15.12.0.tar.xz -> ktp-approver-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-approver-15.12.0/CMakeLists.txt new/ktp-approver-15.12.1/CMakeLists.txt
--- old/ktp-approver-15.12.0/CMakeLists.txt 2015-12-08 17:05:42.000000000 +0100
+++ new/ktp-approver-15.12.1/CMakeLists.txt 2016-01-07 00:19:56.000000000 +0100
@@ -3,7 +3,7 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "15")
set (KDE_APPLICATIONS_VERSION_MINOR "12")
-set (KDE_APPLICATIONS_VERSION_MICRO "0")
+set (KDE_APPLICATIONS_VERSION_MICRO "1")
set(KTP_APPROVER_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
1
0
Hello community,
here is the log from the commit of package ktp-accounts-kcm for openSUSE:Factory checked in at 2016-01-28 17:21:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktp-accounts-kcm (Old)
and /work/SRC/openSUSE:Factory/.ktp-accounts-kcm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktp-accounts-kcm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktp-accounts-kcm/ktp-accounts-kcm.changes 2016-01-10 13:06:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktp-accounts-kcm.new/ktp-accounts-kcm.changes 2016-01-28 17:21:53.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:30:16 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktp-accounts-kcm-15.12.0.tar.xz
New:
----
ktp-accounts-kcm-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktp-accounts-kcm.spec ++++++
--- /var/tmp/diff_new_pack.0SnOI8/_old 2016-01-28 17:21:54.000000000 +0100
+++ /var/tmp/diff_new_pack.0SnOI8/_new 2016-01-28 17:21:54.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktp-accounts-kcm
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: KCM Module for configuring Telepathy Instant Messaging Accounts
License: LGPL-2.1+
++++++ ktp-accounts-kcm-15.12.0.tar.xz -> ktp-accounts-kcm-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-15.12.0/CMakeLists.txt new/ktp-accounts-kcm-15.12.1/CMakeLists.txt
--- old/ktp-accounts-kcm-15.12.0/CMakeLists.txt 2015-12-08 17:05:23.000000000 +0100
+++ new/ktp-accounts-kcm-15.12.1/CMakeLists.txt 2016-01-07 00:19:29.000000000 +0100
@@ -12,7 +12,7 @@
# KDE Application Version, managed by release script
set (KDE_APPLICATIONS_VERSION_MAJOR "15")
set (KDE_APPLICATIONS_VERSION_MINOR "12")
-set (KDE_APPLICATIONS_VERSION_MICRO "0")
+set (KDE_APPLICATIONS_VERSION_MICRO "1")
set(KTP_ACCOUNTS_KCM_SONUMBER "9")
set(KTP_ACCOUNTS_KCM_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ktp-accounts-kcm-15.12.0/src/KCMTelepathyAccounts/ktpaccountskcminternal-accountuiplugin.desktop new/ktp-accounts-kcm-15.12.1/src/KCMTelepathyAccounts/ktpaccountskcminternal-accountuiplugin.desktop
--- old/ktp-accounts-kcm-15.12.0/src/KCMTelepathyAccounts/ktpaccountskcminternal-accountuiplugin.desktop 2015-12-08 17:05:23.000000000 +0100
+++ new/ktp-accounts-kcm-15.12.1/src/KCMTelepathyAccounts/ktpaccountskcminternal-accountuiplugin.desktop 2016-01-07 00:19:29.000000000 +0100
@@ -23,7 +23,7 @@
Comment[kk]=Telepathy KCM модуль тіркелгі пайдаланушы интерфейс плагиндері
Comment[km]=គណនី Telepathy នៃកម្មវិធីជំនួយចំណុចប្រទាក់អ្នកប្រើម៉ូឌុល KCM
Comment[ko]=Telepathy 계정 KCM 모듈 계정 사용자 인터페이스 플러그인
-Comment[lt]=Telepathy paskyros KCM modulis paskyros naudotojo sąsajos priedai
+Comment[lt]=Telepathy paskyros KCM modulis paskyros naudotojo sąsajos papildiniai
Comment[mr]=टेलिपथी खाते KCM विभाग खाते वापरकर्ता संवाद प्लगइन
Comment[nb]=Program tillegg for brukerflater til Telepathy-kontoer med KCM modulkonto
Comment[nds]=KCM-Moduul för Böversietmodulen vun Telepathy-Kontos
1
0
Hello community,
here is the log from the commit of package ktouch for openSUSE:Factory checked in at 2016-01-28 17:21:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktouch (Old)
and /work/SRC/openSUSE:Factory/.ktouch.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktouch"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktouch/ktouch.changes 2016-01-10 13:06:27.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktouch.new/ktouch.changes 2016-01-28 17:21:51.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:30:07 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktouch-15.12.0.tar.xz
New:
----
ktouch-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktouch.spec ++++++
--- /var/tmp/diff_new_pack.HVRWUb/_old 2016-01-28 17:21:52.000000000 +0100
+++ /var/tmp/diff_new_pack.HVRWUb/_new 2016-01-28 17:21:52.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktouch
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Touch Typing Tutor
License: GPL-2.0+
++++++ ktouch-15.12.0.tar.xz -> ktouch-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package ktimer for openSUSE:Factory checked in at 2016-01-28 17:21:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktimer (Old)
and /work/SRC/openSUSE:Factory/.ktimer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ktimer"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ktimer/ktimer.changes 2016-01-10 13:06:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ktimer.new/ktimer.changes 2016-01-28 17:21:50.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:29:53 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ktimer-15.12.0.tar.xz
New:
----
ktimer-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ktimer.spec ++++++
--- /var/tmp/diff_new_pack.RSMr04/_old 2016-01-28 17:21:51.000000000 +0100
+++ /var/tmp/diff_new_pack.RSMr04/_new 2016-01-28 17:21:51.000000000 +0100
@@ -17,7 +17,7 @@
Name: ktimer
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Countdown Launcher
License: GPL-2.0+
++++++ ktimer-15.12.0.tar.xz -> ktimer-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kteatime for openSUSE:Factory checked in at 2016-01-28 17:21:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kteatime (Old)
and /work/SRC/openSUSE:Factory/.kteatime.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kteatime"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kteatime/kteatime.changes 2016-01-10 13:06:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kteatime.new/kteatime.changes 2016-01-28 17:21:49.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:29:44 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kteatime-15.12.0.tar.xz
New:
----
kteatime-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kteatime.spec ++++++
--- /var/tmp/diff_new_pack.Kcglb6/_old 2016-01-28 17:21:50.000000000 +0100
+++ /var/tmp/diff_new_pack.Kcglb6/_new 2016-01-28 17:21:50.000000000 +0100
@@ -37,7 +37,7 @@
License: GPL-2.0+
Group: Amusements/Toys/Other
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: %{name}-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ kteatime-15.12.0.tar.xz -> kteatime-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kteatime-15.12.0/src/kteatime.notifyrc new/kteatime-15.12.1/src/kteatime.notifyrc
--- old/kteatime-15.12.0/src/kteatime.notifyrc 2015-12-09 11:14:04.000000000 +0100
+++ new/kteatime-15.12.1/src/kteatime.notifyrc 2016-01-07 22:32:48.000000000 +0100
@@ -192,7 +192,7 @@
Comment[x-test]=xxTea is readyxx
Comment[zh_CN]=茶沏好了
Comment[zh_TW]=茶煮好了
-Sound=KDE-Sys-App-Message.ogg
+Sound=Oxygen-Sys-App-Message.ogg
Action=Sound
[Event/reminder]
@@ -312,5 +312,5 @@
Comment[x-test]=xxTea is getting lonely.xx
Comment[zh_CN]=茶都凉了
Comment[zh_TW]=茶煮好了,怎麼沒人喝。
-Sound=KDE-Sys-App-Special.ogg
+Sound=Oxygen-Sys-App-Special.ogg
Action=Sound
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kteatime-15.12.0/src/main.cpp new/kteatime-15.12.1/src/main.cpp
--- old/kteatime-15.12.0/src/main.cpp 2015-12-09 11:14:04.000000000 +0100
+++ new/kteatime-15.12.1/src/main.cpp 2016-01-07 22:32:48.000000000 +0100
@@ -50,6 +50,8 @@
aboutData.addCredit(i18n("Daniel Teske"), i18n("Many patches"), QStringLiteral("teske(a)bigfoot.com"));
+ aboutData.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails"));
+
/**
* right dbus prefix == org.kde.
*/
1
0
Hello community,
here is the log from the commit of package ksystemlog for openSUSE:Factory checked in at 2016-01-28 17:21:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ksystemlog (Old)
and /work/SRC/openSUSE:Factory/.ksystemlog.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ksystemlog"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ksystemlog/ksystemlog.changes 2016-01-10 13:06:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ksystemlog.new/ksystemlog.changes 2016-01-28 17:21:48.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:29:35 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ksystemlog-15.12.0.tar.xz
New:
----
ksystemlog-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ksystemlog.spec ++++++
--- /var/tmp/diff_new_pack.2KJ9Lp/_old 2016-01-28 17:21:49.000000000 +0100
+++ /var/tmp/diff_new_pack.2KJ9Lp/_new 2016-01-28 17:21:49.000000000 +0100
@@ -26,7 +26,7 @@
BuildRequires: pkgconfig(Qt5Test) >= 5.2.0
BuildRequires: pkgconfig(Qt5Widgets) >= 5.2.0
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: System Log Viewer Tool
License: GPL-2.0
++++++ ksystemlog-15.12.0.tar.xz -> ksystemlog-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kstars for openSUSE:Factory checked in at 2016-01-28 17:21:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kstars (Old)
and /work/SRC/openSUSE:Factory/.kstars.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kstars"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kstars/kstars.changes 2016-01-10 13:06:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kstars.new/kstars.changes 2016-01-28 17:21:47.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:28:52 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kstars-15.12.0.tar.xz
New:
----
kstars-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kstars.spec ++++++
--- /var/tmp/diff_new_pack.hTgjcj/_old 2016-01-28 17:21:48.000000000 +0100
+++ /var/tmp/diff_new_pack.hTgjcj/_new 2016-01-28 17:21:48.000000000 +0100
@@ -17,7 +17,7 @@
Name: kstars
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Desktop Planetarium
License: GPL-2.0+
++++++ kstars-15.12.0.tar.xz -> kstars-15.12.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/kstars/kstars-15.12.0.tar.xz /work/SRC/openSUSE:Factory/.kstars.new/kstars-15.12.1.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package ksquares for openSUSE:Factory checked in at 2016-01-28 17:21:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ksquares (Old)
and /work/SRC/openSUSE:Factory/.ksquares.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ksquares"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ksquares/ksquares.changes 2016-01-10 13:06:14.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ksquares.new/ksquares.changes 2016-01-28 17:21:45.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:28:15 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ksquares-15.12.0.tar.xz
New:
----
ksquares-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ksquares.spec ++++++
--- /var/tmp/diff_new_pack.MdlamZ/_old 2016-01-28 17:21:46.000000000 +0100
+++ /var/tmp/diff_new_pack.MdlamZ/_new 2016-01-28 17:21:46.000000000 +0100
@@ -43,7 +43,7 @@
License: GPL-2.0+
Group: Amusements/Games/Action/Arcade
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: ksquares-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ ksquares-15.12.0.tar.xz -> ksquares-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kspaceduel for openSUSE:Factory checked in at 2016-01-28 17:21:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kspaceduel (Old)
and /work/SRC/openSUSE:Factory/.kspaceduel.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kspaceduel"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kspaceduel/kspaceduel.changes 2016-01-10 13:06:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kspaceduel.new/kspaceduel.changes 2016-01-28 17:21:44.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:28:09 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kspaceduel-15.12.0.tar.xz
New:
----
kspaceduel-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kspaceduel.spec ++++++
--- /var/tmp/diff_new_pack.xPbPkE/_old 2016-01-28 17:21:45.000000000 +0100
+++ /var/tmp/diff_new_pack.xPbPkE/_new 2016-01-28 17:21:45.000000000 +0100
@@ -23,7 +23,7 @@
License: GPL-2.0+
Group: Amusements/Games/Action/Arcade
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kspaceduel-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kspaceduel-15.12.0.tar.xz -> kspaceduel-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package ksnakeduel for openSUSE:Factory checked in at 2016-01-28 17:21:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ksnakeduel (Old)
and /work/SRC/openSUSE:Factory/.ksnakeduel.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ksnakeduel"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ksnakeduel/ksnakeduel.changes 2016-01-10 13:06:11.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ksnakeduel.new/ksnakeduel.changes 2016-01-28 17:21:43.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:27:52 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ksnakeduel-15.12.0.tar.xz
New:
----
ksnakeduel-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ksnakeduel.spec ++++++
--- /var/tmp/diff_new_pack.ht2SfB/_old 2016-01-28 17:21:44.000000000 +0100
+++ /var/tmp/diff_new_pack.ht2SfB/_new 2016-01-28 17:21:44.000000000 +0100
@@ -23,7 +23,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Puzzle
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: ksnakeduel-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ ksnakeduel-15.12.0.tar.xz -> ksnakeduel-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package ksirk for openSUSE:Factory checked in at 2016-01-28 17:21:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ksirk (Old)
and /work/SRC/openSUSE:Factory/.ksirk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ksirk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ksirk/ksirk.changes 2016-01-10 13:06:07.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ksirk.new/ksirk.changes 2016-01-28 17:21:41.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:27:39 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
ksirk-15.12.0.tar.xz
New:
----
ksirk-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ksirk.spec ++++++
--- /var/tmp/diff_new_pack.XBrO8g/_old 2016-01-28 17:21:42.000000000 +0100
+++ /var/tmp/diff_new_pack.XBrO8g/_new 2016-01-28 17:21:42.000000000 +0100
@@ -21,7 +21,7 @@
License: GPL-2.0+ and LGPL-2.0+
Group: Amusements/Games/Strategy/Turn Based
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: ksirk-%{version}.tar.xz
BuildRequires: libkdegames4-devel
++++++ ksirk-15.12.0.tar.xz -> ksirk-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kshisen for openSUSE:Factory checked in at 2016-01-28 17:21:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kshisen (Old)
and /work/SRC/openSUSE:Factory/.kshisen.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kshisen"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kshisen/kshisen.changes 2016-01-10 13:06:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kshisen.new/kshisen.changes 2016-01-28 17:21:40.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:27:28 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kshisen-15.12.0.tar.xz
New:
----
kshisen-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kshisen.spec ++++++
--- /var/tmp/diff_new_pack.Z6M9Ea/_old 2016-01-28 17:21:40.000000000 +0100
+++ /var/tmp/diff_new_pack.Z6M9Ea/_new 2016-01-28 17:21:40.000000000 +0100
@@ -41,7 +41,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Other
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kshisen-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ kshisen-15.12.0.tar.xz -> kshisen-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kshisen-15.12.0/CMakeLists.txt new/kshisen-15.12.1/CMakeLists.txt
--- old/kshisen-15.12.0/CMakeLists.txt 2015-11-29 21:46:45.000000000 +0100
+++ new/kshisen-15.12.1/CMakeLists.txt 2016-01-06 07:31:09.000000000 +0100
@@ -32,8 +32,7 @@
-DQT_NO_CAST_TO_ASCII
-DQT_NO_CAST_FROM_BYTEARRAY
-DQT_NO_URL_CAST_FROM_STRING
- -DQT_USE_QSTRINGBUILDER
- -DTRANSLATION_DOMAIN="kshisen")
+ -DQT_USE_QSTRINGBUILDER)
add_subdirectory(src)
add_subdirectory(sounds)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kshisen-15.12.0/org.kde.kshisen.appdata.xml new/kshisen-15.12.1/org.kde.kshisen.appdata.xml
--- old/kshisen-15.12.0/org.kde.kshisen.appdata.xml 2015-11-29 21:46:45.000000000 +0100
+++ new/kshisen-15.12.1/org.kde.kshisen.appdata.xml 2016-01-06 07:31:09.000000000 +0100
@@ -10,6 +10,7 @@
<name xml:lang="de">KShisen</name>
<name xml:lang="en-GB">KShisen</name>
<name xml:lang="es">KShisen</name>
+ <name xml:lang="fi">KShisen</name>
<name xml:lang="gl">KShisen</name>
<name xml:lang="nl">KShisen</name>
<name xml:lang="pl">KShisen</name>
@@ -25,6 +26,7 @@
<name xml:lang="uk">KShisen</name>
<name xml:lang="x-test">xxKShisenxx</name>
<name xml:lang="zh-CN">KShisen</name>
+ <name xml:lang="zh-TW">KShisen</name>
<summary>Shisen-Sho Mahjongg-like Tile Game</summary>
<summary xml:lang="ca">Joc de mosaics Shisen-Sho a l'estil Mahjongg</summary>
<summary xml:lang="ca-valencia">Joc de mosaics Shisen-Sho a l'estil Mahjongg</summary>
@@ -32,6 +34,7 @@
<summary xml:lang="de">Spiel mit Mahjongg-Spielsteinen</summary>
<summary xml:lang="en-GB">Shisen-Sho Mahjongg-like Tile Game</summary>
<summary xml:lang="es">Juego de fichas similar al Shisen-Sho Mahjongg</summary>
+ <summary xml:lang="fi">Shisen-sho, mahjongmainen laattapeli</summary>
<summary xml:lang="gl">Xogo de fichas Shisen-so ao estilo do Mahjongg</summary>
<summary xml:lang="nl">Shisen-Sho Mahjongg-achtig stenenspel</summary>
<summary xml:lang="pl">Gra typu Shisen-Sho Mahjongg</summary>
@@ -47,6 +50,7 @@
<summary xml:lang="uk">Шісен-шо, схожа на маджонґ гра з плитками</summary>
<summary xml:lang="x-test">xxShisen-Sho Mahjongg-like Tile Gamexx</summary>
<summary xml:lang="zh-CN">类似连连看的麻将游戏</summary>
+ <summary xml:lang="zh-TW">四川省麻將牌遊戲</summary>
<description>
<p>
KShisen is a solitaire-like game played using the standard set of Mahjong tiles. Unlike Mahjong however, KShisen has only one layer of scrambled tiles.
@@ -55,6 +59,7 @@
<p xml:lang="ca-valencia">El KShisen és un joc de tipus solitari que es juga usant el conjunt de fitxers estàndard del Mahjong. A diferència del Mahjong, el KShisen només té una capa de fitxes barrejades.</p>
<p xml:lang="en-GB">KShisen is a solitaire-like game played using the standard set of Mahjong tiles. Unlike Mahjong however, KShisen has only one layer of scrambled tiles.</p>
<p xml:lang="es">KShisen es un juego de solitario que se juega usando las fichas típicas del Mahjong. Al contrario del Mahjong, KShisen solo tiene una capa de fichas barajadas.</p>
+ <p xml:lang="fi">KShisen on pasianssimainen peli, joka käyttää tavallisia mahjong-tiiliä. Mahjongista poiketen KShisenissä on kuitenkin vain yksi kerros sekoitettuja tiiliä.</p>
<p xml:lang="gl">O KShisen é un xogo similar ao solitario que se xoga usando as pezas estándar do Mahjong. Porén, a diferenza do Mahjong, o KShisen ten unicamente unha capa de pezas desordenadas.</p>
<p xml:lang="nl">KShisen is een solitaire-achtig spel dat wordt gespeeld met de standaard set Mahjong stenen. Anders dan Mahjong heeft KShisen slechts één laag door elkaar gehaalde stenen.</p>
<p xml:lang="pl">KShisen jest grą typu pasjans z standardowym zestawem kamieni Mahjong. W odróżnieniu od Mahjonga, KShisen ma tylko jedną warstwę rozrzuconych kamieni.</p>
@@ -70,6 +75,7 @@
<p xml:lang="uk">KShisen — гра, подібна до пасьянсу, у якій використовуються плитки маджонґа. Втім, на відміну від класичної гри у маджонґ, у KShisen ви матимете справу лише з одним шаром плиток.</p>
<p xml:lang="x-test">xxKShisen is a solitaire-like game played using the standard set of Mahjong tiles. Unlike Mahjong however, KShisen has only one layer of scrambled tiles.xx</p>
<p xml:lang="zh-CN">KShisen 是一个使用麻将牌的类牌游戏。和麻将配对不同的是,KShisen 只有一层打乱的牌。</p>
+ <p xml:lang="zh-TW">KShisen 是類似四川省麻將的個人遊戲。不過它只有一層。</p>
</description>
<url type="homepage">http://games.kde.org/game.php?game=kshisen</url>
<url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&product=kshisen</url>
1
0
Hello community,
here is the log from the commit of package kremotecontrol for openSUSE:Factory checked in at 2016-01-28 17:21:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kremotecontrol (Old)
and /work/SRC/openSUSE:Factory/.kremotecontrol.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kremotecontrol"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kremotecontrol/kremotecontrol.changes 2016-01-10 13:06:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kremotecontrol.new/kremotecontrol.changes 2016-01-28 17:21:38.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:26:52 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kremotecontrol-15.12.0.tar.xz
New:
----
kremotecontrol-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kremotecontrol.spec ++++++
--- /var/tmp/diff_new_pack.pWMqso/_old 2016-01-28 17:21:39.000000000 +0100
+++ /var/tmp/diff_new_pack.pWMqso/_new 2016-01-28 17:21:39.000000000 +0100
@@ -17,7 +17,7 @@
Name: kremotecontrol
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: KDE Frontend for the Linux Infrared Remote Control system
License: GPL-2.0+
++++++ kremotecontrol-15.12.0.tar.xz -> kremotecontrol-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kppp for openSUSE:Factory checked in at 2016-01-28 17:21:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kppp (Old)
and /work/SRC/openSUSE:Factory/.kppp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kppp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kppp/kppp.changes 2016-01-10 13:06:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kppp.new/kppp.changes 2016-01-28 17:21:37.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:26:28 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kppp-15.12.0.tar.xz
New:
----
kppp-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kppp.spec ++++++
--- /var/tmp/diff_new_pack.xq8nND/_old 2016-01-28 17:21:38.000000000 +0100
+++ /var/tmp/diff_new_pack.xq8nND/_new 2016-01-28 17:21:38.000000000 +0100
@@ -18,7 +18,7 @@
Name: kppp
BuildRequires: libkde4-devel
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Internet Dial-Up Tool
License: GPL-2.0+
++++++ kppp-15.12.0.tar.xz -> kppp-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package konquest for openSUSE:Factory checked in at 2016-01-28 17:21:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/konquest (Old)
and /work/SRC/openSUSE:Factory/.konquest.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "konquest"
Changes:
--------
--- /work/SRC/openSUSE:Factory/konquest/konquest.changes 2016-01-10 13:05:56.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.konquest.new/konquest.changes 2016-01-28 17:21:36.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:25:20 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
konquest-15.12.0.tar.xz
New:
----
konquest-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ konquest.spec ++++++
--- /var/tmp/diff_new_pack.T1Wc2m/_old 2016-01-28 17:21:36.000000000 +0100
+++ /var/tmp/diff_new_pack.T1Wc2m/_new 2016-01-28 17:21:36.000000000 +0100
@@ -23,7 +23,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Puzzle
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: konquest-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ konquest-15.12.0.tar.xz -> konquest-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kollision for openSUSE:Factory checked in at 2016-01-28 17:21:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kollision (Old)
and /work/SRC/openSUSE:Factory/.kollision.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kollision"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kollision/kollision.changes 2016-01-10 13:05:52.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kollision.new/kollision.changes 2016-01-28 17:21:34.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:24:49 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kollision-15.12.0.tar.xz
New:
----
kollision-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kollision.spec ++++++
--- /var/tmp/diff_new_pack.d1TSLM/_old 2016-01-28 17:21:35.000000000 +0100
+++ /var/tmp/diff_new_pack.d1TSLM/_new 2016-01-28 17:21:35.000000000 +0100
@@ -42,7 +42,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Puzzle
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kollision-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ kollision-15.12.0.tar.xz -> kollision-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kollision-15.12.0/CMakeLists.txt new/kollision-15.12.1/CMakeLists.txt
--- old/kollision-15.12.0/CMakeLists.txt 2015-11-11 10:09:57.000000000 +0100
+++ new/kollision-15.12.1/CMakeLists.txt 2016-01-05 23:32:54.000000000 +0100
@@ -34,8 +34,6 @@
include(KDECMakeSettings)
add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
-add_definitions(-DTRANSLATION_DOMAIN="kollision")
-
add_subdirectory(pictures)
add_subdirectory(sounds)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kollision-15.12.0/main.cpp new/kollision-15.12.1/main.cpp
--- old/kollision-15.12.0/main.cpp 2015-11-11 10:09:57.000000000 +0100
+++ new/kollision-15.12.1/main.cpp 2016-01-05 23:32:54.000000000 +0100
@@ -22,6 +22,8 @@
{
QApplication app(argc, argv);
+ KLocalizedString::setApplicationDomain("kollision");
+
Kdelibs4ConfigMigrator migrate(QStringLiteral("kollision"));
migrate.setConfigFiles(QStringList() << QStringLiteral("kollisionrc"));
migrate.setUiFiles(QStringList() << QStringLiteral("kollisionui.rc"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kollision-15.12.0/org.kde.kollision.appdata.xml new/kollision-15.12.1/org.kde.kollision.appdata.xml
--- old/kollision-15.12.0/org.kde.kollision.appdata.xml 2015-11-11 10:09:57.000000000 +0100
+++ new/kollision-15.12.1/org.kde.kollision.appdata.xml 2016-01-05 23:32:54.000000000 +0100
@@ -13,6 +13,7 @@
<summary xml:lang="de">Ein einfaches Ausweich-Ballspiel</summary>
<summary xml:lang="en-GB">Casual ball game</summary>
<summary xml:lang="es">Juego de bolas distraído</summary>
+ <summary xml:lang="fi">Rento pallopeli</summary>
<summary xml:lang="gl">Xogo de bólas para distraerse</summary>
<summary xml:lang="nl">Balspel ter verstrooiing</summary>
<summary xml:lang="pl">Zwyczajna gra w piłkę</summary>
@@ -28,6 +29,7 @@
<summary xml:lang="uk">Казуальна гра з кульками</summary>
<summary xml:lang="x-test">xxCasual ball gamexx</summary>
<summary xml:lang="zh-CN">休闲球游戏</summary>
+ <summary xml:lang="zh-TW">丟球遊戲</summary>
<description>
<p>
Kollision is a casual game where you need to throw your ball and avoid the
@@ -38,6 +40,7 @@
<p xml:lang="de">Kollision ist ein Spiel, in dem Sie mit Ihrem Ball allen anderen Bällen auf dem Spielfeld solange wie möglich ausweichen müssen.</p>
<p xml:lang="en-GB">Kollision is a casual game where you need to throw your ball and avoid the others balls on the table as long as possible.</p>
<p xml:lang="es">Kollision es un juego de bolas distraído en el que debe lanzar una bola y evitar al resto de bolas del tablero tanto tiempo como sea posible.</p>
+ <p xml:lang="fi">Kollision on rento peli, jossa heität palloa ja yrität vältellä toisten palloja laudalla niin pitkään kuin mahdollista.</p>
<p xml:lang="gl">Kollision é un xogo para distraerse no que te que tirar a súa bóla e evitar o resto de bólas do taboleiro tanto tempo como poida.</p>
<p xml:lang="nl">Kollision is een spel ter verstrooiing waarin u uw bal moet gooien en de andere ballen op de tafel zo lang mogelijk moet vermijden.</p>
<p xml:lang="pl">Kollision jest zwyczajną grą, w której musisz rzucić swoją piłkę na stół i unikać piłek innych tak długo jak to możliwe.</p>
@@ -53,6 +56,7 @@
<p xml:lang="uk">Kollision — казуальна гра, у якій ви кидаєте кульку так, щоб вона якомога довше не стикалася з іншими кульками на полі.</p>
<p xml:lang="x-test">xxKollision is a casual game where you need to throw your ball and avoid the others balls on the table as long as possible.xx</p>
<p xml:lang="zh-CN">Kollision 是一个休闲游戏,扔出球的同时并尽量躲避其他在桌子上的球。</p>
+ <p xml:lang="zh-TW">Kollision 是一套簡單的休閒遊戲,您要丟出球並盡量避免碰到桌上的其他球。</p>
</description>
<url type="homepage">https://projects.kde.org/projects/kde/kdegames/kollision</url>
<screenshots>
1
0
Hello community,
here is the log from the commit of package kolf for openSUSE:Factory checked in at 2016-01-28 17:21:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kolf (Old)
and /work/SRC/openSUSE:Factory/.kolf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kolf"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kolf/kolf.changes 2016-01-10 13:05:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kolf.new/kolf.changes 2016-01-28 17:21:33.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:24:37 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kolf-15.12.0.tar.xz
New:
----
kolf-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kolf.spec ++++++
--- /var/tmp/diff_new_pack.UpjNJ9/_old 2016-01-28 17:21:34.000000000 +0100
+++ /var/tmp/diff_new_pack.UpjNJ9/_new 2016-01-28 17:21:34.000000000 +0100
@@ -21,7 +21,7 @@
License: GPL-2.0+ and LGPL-2.0+
Group: Amusements/Games/Board/Puzzle
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kolf-%{version}.tar.xz
BuildRequires: libkdegames4-devel
++++++ kolf-15.12.0.tar.xz -> kolf-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package knetwalk for openSUSE:Factory checked in at 2016-01-28 17:21:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/knetwalk (Old)
and /work/SRC/openSUSE:Factory/.knetwalk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "knetwalk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/knetwalk/knetwalk.changes 2016-01-10 13:05:49.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.knetwalk.new/knetwalk.changes 2016-01-28 17:21:32.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:24:29 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
knetwalk-15.12.0.tar.xz
New:
----
knetwalk-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ knetwalk.spec ++++++
--- /var/tmp/diff_new_pack.mvpube/_old 2016-01-28 17:21:33.000000000 +0100
+++ /var/tmp/diff_new_pack.mvpube/_new 2016-01-28 17:21:33.000000000 +0100
@@ -58,7 +58,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Puzzle
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: knetwalk-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ knetwalk-15.12.0.tar.xz -> knetwalk-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/knetwalk-15.12.0/src/main.cpp new/knetwalk-15.12.1/src/main.cpp
--- old/knetwalk-15.12.0/src/main.cpp 2015-10-28 21:28:32.000000000 +0100
+++ new/knetwalk-15.12.1/src/main.cpp 2016-01-05 23:29:04.000000000 +0100
@@ -37,6 +37,8 @@
{
QApplication app(argc, argv);
+ KLocalizedString::setApplicationDomain("knetwalk");
+
Kdelibs4ConfigMigrator migrate(QStringLiteral("knetwalk"));
migrate.setConfigFiles(QStringList() << QStringLiteral("knetwalkrc"));
migrate.setUiFiles(QStringList() << QStringLiteral("knetwalkui.rc"));
1
0
Hello community,
here is the log from the commit of package knavalbattle for openSUSE:Factory checked in at 2016-01-28 17:21:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/knavalbattle (Old)
and /work/SRC/openSUSE:Factory/.knavalbattle.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "knavalbattle"
Changes:
--------
--- /work/SRC/openSUSE:Factory/knavalbattle/knavalbattle.changes 2016-01-10 13:05:48.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.knavalbattle.new/knavalbattle.changes 2016-01-28 17:21:31.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:24:22 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
knavalbattle-15.12.0.tar.xz
New:
----
knavalbattle-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ knavalbattle.spec ++++++
--- /var/tmp/diff_new_pack.SzV28o/_old 2016-01-28 17:21:32.000000000 +0100
+++ /var/tmp/diff_new_pack.SzV28o/_new 2016-01-28 17:21:32.000000000 +0100
@@ -46,7 +46,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Other
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: knavalbattle-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ knavalbattle-15.12.0.tar.xz -> knavalbattle-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kmouth for openSUSE:Factory checked in at 2016-01-28 17:21:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kmouth (Old)
and /work/SRC/openSUSE:Factory/.kmouth.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmouth"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kmouth/kmouth.changes 2016-01-10 13:05:46.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kmouth.new/kmouth.changes 2016-01-28 17:21:29.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:23:49 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kmouth-15.12.0.tar.xz
New:
----
kmouth-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kmouth.spec ++++++
--- /var/tmp/diff_new_pack.O6ohbn/_old 2016-01-28 17:21:30.000000000 +0100
+++ /var/tmp/diff_new_pack.O6ohbn/_new 2016-01-28 17:21:30.000000000 +0100
@@ -27,7 +27,7 @@
License: GPL-2.0+
Group: System/GUI/KDE
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: %{name}-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kmouth-15.12.0.tar.xz -> kmouth-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package klines for openSUSE:Factory checked in at 2016-01-28 17:21:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/klines (Old)
and /work/SRC/openSUSE:Factory/.klines.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "klines"
Changes:
--------
--- /work/SRC/openSUSE:Factory/klines/klines.changes 2016-01-10 13:05:41.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.klines.new/klines.changes 2016-01-28 17:21:28.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:22:37 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
klines-15.12.0.tar.xz
New:
----
klines-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ klines.spec ++++++
--- /var/tmp/diff_new_pack.UxzkDk/_old 2016-01-28 17:21:29.000000000 +0100
+++ /var/tmp/diff_new_pack.UxzkDk/_new 2016-01-28 17:21:29.000000000 +0100
@@ -50,7 +50,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Puzzle
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: klines-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ klines-15.12.0.tar.xz -> klines-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klines-15.12.0/themes/egyptian.desktop new/klines-15.12.1/themes/egyptian.desktop
--- old/klines-15.12.0/themes/egyptian.desktop 2015-11-09 16:39:00.000000000 +0100
+++ new/klines-15.12.1/themes/egyptian.desktop 2015-12-26 12:39:10.000000000 +0100
@@ -75,7 +75,7 @@
Description[nds]=Ägyptsch Musterstil för KLines
Description[nl]=Thema in Egyptische stijl voor klines.
Description[nn]=Egyptisk tema for klines.
-Description[pl]=Wystrój w stylu Egipskim dla Klines.
+Description[pl]=Wystrój w stylu Egipskim dla KLinii.
Description[pt]=Um tema de estilo Egípcio para o KLines.
Description[pt_BR]=Um tema de estilo egípcio para o klines.
Description[ru]=Оформление в египетском стиле для KLines.
1
0
Hello community,
here is the log from the commit of package kjumpingcube for openSUSE:Factory checked in at 2016-01-28 17:21:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kjumpingcube (Old)
and /work/SRC/openSUSE:Factory/.kjumpingcube.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kjumpingcube"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kjumpingcube/kjumpingcube.changes 2016-01-10 13:05:36.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kjumpingcube.new/kjumpingcube.changes 2016-01-28 17:21:27.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:21:59 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kjumpingcube-15.12.0.tar.xz
New:
----
kjumpingcube-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kjumpingcube.spec ++++++
--- /var/tmp/diff_new_pack.0qvc0i/_old 2016-01-28 17:21:28.000000000 +0100
+++ /var/tmp/diff_new_pack.0qvc0i/_new 2016-01-28 17:21:28.000000000 +0100
@@ -42,7 +42,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Puzzle
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kjumpingcube-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ kjumpingcube-15.12.0.tar.xz -> kjumpingcube-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kiten for openSUSE:Factory checked in at 2016-01-28 17:21:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kiten (Old)
and /work/SRC/openSUSE:Factory/.kiten.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kiten"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kiten/kiten.changes 2016-01-10 13:05:34.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kiten.new/kiten.changes 2016-01-28 17:21:26.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:21:32 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kiten-15.12.0.tar.xz
New:
----
kiten-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kiten.spec ++++++
--- /var/tmp/diff_new_pack.F9zfQ4/_old 2016-01-28 17:21:27.000000000 +0100
+++ /var/tmp/diff_new_pack.F9zfQ4/_new 2016-01-28 17:21:27.000000000 +0100
@@ -17,7 +17,7 @@
Name: kiten
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Japanese Reference/Study Tool
License: GPL-2.0+
++++++ kiten-15.12.0.tar.xz -> kiten-15.12.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/kiten/kiten-15.12.0.tar.xz /work/SRC/openSUSE:Factory/.kiten.new/kiten-15.12.1.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package kiriki for openSUSE:Factory checked in at 2016-01-28 17:21:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kiriki (Old)
and /work/SRC/openSUSE:Factory/.kiriki.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kiriki"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kiriki/kiriki.changes 2016-01-10 13:05:33.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kiriki.new/kiriki.changes 2016-01-28 17:21:24.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:21:20 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kiriki-15.12.0.tar.xz
New:
----
kiriki-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kiriki.spec ++++++
--- /var/tmp/diff_new_pack.3DMq8S/_old 2016-01-28 17:21:25.000000000 +0100
+++ /var/tmp/diff_new_pack.3DMq8S/_new 2016-01-28 17:21:25.000000000 +0100
@@ -50,7 +50,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Other
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kiriki-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kiriki-15.12.0.tar.xz -> kiriki-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiriki-15.12.0/src/main.cpp new/kiriki-15.12.1/src/main.cpp
--- old/kiriki-15.12.0/src/main.cpp 2015-11-11 10:46:47.000000000 +0100
+++ new/kiriki-15.12.1/src/main.cpp 2016-01-07 02:57:20.000000000 +0100
@@ -34,5 +34,6 @@
KDBusService service;
kiriki *w = new kiriki();
w->show();
+ app.setWindowIcon(QIcon::fromTheme(QStringLiteral("kiriki")));
return app.exec();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiriki-15.12.0/src/org.kde.kiriki.appdata.xml new/kiriki-15.12.1/src/org.kde.kiriki.appdata.xml
--- old/kiriki-15.12.0/src/org.kde.kiriki.appdata.xml 2015-11-11 10:46:47.000000000 +0100
+++ new/kiriki-15.12.1/src/org.kde.kiriki.appdata.xml 2016-01-07 02:57:20.000000000 +0100
@@ -10,6 +10,7 @@
<name xml:lang="de">Kiriki</name>
<name xml:lang="en-GB">Kiriki</name>
<name xml:lang="es">Kiriki</name>
+ <name xml:lang="fi">Kiriki</name>
<name xml:lang="gl">Kiriki</name>
<name xml:lang="nl">Kiriki</name>
<name xml:lang="pl">Kiriki</name>
@@ -25,6 +26,7 @@
<name xml:lang="uk">Kiriki</name>
<name xml:lang="x-test">xxKirikixx</name>
<name xml:lang="zh-CN">Kiriki</name>
+ <name xml:lang="zh-TW">Kiriki</name>
<summary>Yahtzee-like Dice Game</summary>
<summary xml:lang="ca">Joc de daus com el Yahtzee</summary>
<summary xml:lang="ca-valencia">Joc de daus com el Yahtzee</summary>
@@ -32,6 +34,7 @@
<summary xml:lang="de">„Kniffel“-Würfelspiel</summary>
<summary xml:lang="en-GB">Yahtzee-like Dice Game</summary>
<summary xml:lang="es">Juego de dados similar al Yahtzee</summary>
+ <summary xml:lang="fi">Yatzy-mainen noppapeli</summary>
<summary xml:lang="gl">Xogo de dados ao estilo do «Yahtzee»</summary>
<summary xml:lang="nl">Yahtzee-achtig dobbelsteenspel</summary>
<summary xml:lang="pl">Gra kostką typu Yahtzee</summary>
@@ -47,6 +50,7 @@
<summary xml:lang="uk">Гра схожа на покер з кістками</summary>
<summary xml:lang="x-test">xxYahtzee-like Dice Gamexx</summary>
<summary xml:lang="zh-CN">类似 Yahtzee 的骰子游戏</summary>
+ <summary xml:lang="zh-TW">類似 Yahtzee 的骰子遊戲</summary>
<description>
<p>
Kiriki is an addictive and fun dice game, designed to be played by as many as six players.
@@ -56,6 +60,7 @@
<p xml:lang="ca-valencia">El Kiriki és un joc de daus addictiu i divertit, dissenyat per jugar-se fins a sis jugadors. Els participants tenen que recollir punts tirant cinc daus fins a tres vegades per cada torn.</p>
<p xml:lang="en-GB">Kiriki is an addictive and fun dice game, designed to be played by as many as six players. Participants have to collect points by rolling five dice for up to three times per single turn.</p>
<p xml:lang="es">Kiriki es un juego de dados divertido y adictivo, en el que pueden participar hasta seis jugadores. Los participantes deben reunir puntos tirando cinco dados hasta tres veces en cada turno.</p>
+ <p xml:lang="fi">Kiriki on hauska ja koukuttava noppapeli, joka on suunniteltu jopa kuudelle pelaajalle. Pelaajat keräävät pisteitä heittämällä viittä noppaa enintään kolmesti kullakin vuorolla.</p>
<p xml:lang="gl">Kiriki é un xogo de dados adictivo e divertido, deseñado para ata 6 xogadores. Os xogadores teñen que reunir puntos tirando 5 dados ata 3 veces por quenda.</p>
<p xml:lang="nl">Kiriki is een verslavend en plezierig spel met dobbelstenen, ontworpen om gespeeld te worden door zoveel als zes spelers. Deelnemers moeten punten verzamelen door vijf dobbelstenen tot drie keer per enkele beurt te gooien.</p>
<p xml:lang="pl">Kirki jest uzależniającą i ciekawą grą kostką, stworzoną do gry nawet w sześć osób. Gracze zbierają punkty rzucając pięcioma kostkami do trzech razy na turę. </p>
@@ -71,6 +76,7 @@
<p xml:lang="uk">Kiriki — захоплива гра у кістки. Її створено для гри, у якій братимуть участь не більше шести гравців. Учасники гри збирають очки, виконуючи до трьох кидків п’яти кісток кожного ходу.</p>
<p xml:lang="x-test">xxKiriki is an addictive and fun dice game, designed to be played by as many as six players. Participants have to collect points by rolling five dice for up to three times per single turn.xx</p>
<p xml:lang="zh-CN">Kiriki 是一个吸引人的有趣的骰子游戏,设计最多六人游玩。参与者通过每轮最多重投三次骰子来收集点数。</p>
+ <p xml:lang="zh-TW">Kiriki 是個有趣的骰子遊戲,最多可以六個人玩。玩的人一輪擲五顆骰子,最多三次,並計算總點數。</p>
</description>
<url type="homepage">http://games.kde.org/game.php?game=kiriki</url>
<url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&product=kiriki</url>
1
0
Hello community,
here is the log from the commit of package killbots for openSUSE:Factory checked in at 2016-01-28 17:21:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/killbots (Old)
and /work/SRC/openSUSE:Factory/.killbots.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "killbots"
Changes:
--------
--- /work/SRC/openSUSE:Factory/killbots/killbots.changes 2016-01-10 13:05:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.killbots.new/killbots.changes 2016-01-28 17:21:23.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:20:45 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
killbots-15.12.0.tar.xz
New:
----
killbots-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ killbots.spec ++++++
--- /var/tmp/diff_new_pack.Ej3v3e/_old 2016-01-28 17:21:24.000000000 +0100
+++ /var/tmp/diff_new_pack.Ej3v3e/_new 2016-01-28 17:21:24.000000000 +0100
@@ -38,7 +38,7 @@
License: GPL-2.0+
Group: System/GUI/KDE
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: killbots-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ killbots-15.12.0.tar.xz -> killbots-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kigo for openSUSE:Factory checked in at 2016-01-28 17:21:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kigo (Old)
and /work/SRC/openSUSE:Factory/.kigo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kigo"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kigo/kigo.changes 2016-01-10 13:05:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kigo.new/kigo.changes 2016-01-28 17:21:22.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:20:35 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kigo-15.12.0.tar.xz
New:
----
kigo-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kigo.spec ++++++
--- /var/tmp/diff_new_pack.GCylpr/_old 2016-01-28 17:21:22.000000000 +0100
+++ /var/tmp/diff_new_pack.GCylpr/_new 2016-01-28 17:21:22.000000000 +0100
@@ -23,7 +23,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Other
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kigo-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kigo-15.12.0.tar.xz -> kigo-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kig for openSUSE:Factory checked in at 2016-01-28 17:21:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kig (Old)
and /work/SRC/openSUSE:Factory/.kig.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kig"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kig/kig.changes 2016-01-10 13:05:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kig.new/kig.changes 2016-01-28 17:21:20.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:20:26 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kig-15.12.0.tar.xz
New:
----
kig-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kig.spec ++++++
--- /var/tmp/diff_new_pack.HNJ56E/_old 2016-01-28 17:21:21.000000000 +0100
+++ /var/tmp/diff_new_pack.HNJ56E/_new 2016-01-28 17:21:21.000000000 +0100
@@ -17,7 +17,7 @@
Name: kig
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Interactive Geometry
License: GPL-2.0+
++++++ kig-15.12.0.tar.xz -> kig-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package khangman for openSUSE:Factory checked in at 2016-01-28 17:21:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/khangman (Old)
and /work/SRC/openSUSE:Factory/.khangman.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "khangman"
Changes:
--------
--- /work/SRC/openSUSE:Factory/khangman/khangman.changes 2016-01-10 13:05:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.khangman.new/khangman.changes 2016-01-28 17:21:18.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:20:01 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
khangman-15.12.0.tar.xz
New:
----
khangman-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ khangman.spec ++++++
--- /var/tmp/diff_new_pack.nDlOyw/_old 2016-01-28 17:21:19.000000000 +0100
+++ /var/tmp/diff_new_pack.nDlOyw/_new 2016-01-28 17:21:19.000000000 +0100
@@ -17,7 +17,7 @@
Name: khangman
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Hangman Game
License: GPL-2.0+
++++++ khangman-15.12.0.tar.xz -> khangman-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khangman-15.12.0/CMakeLists.txt new/khangman-15.12.1/CMakeLists.txt
--- old/khangman-15.12.0/CMakeLists.txt 2015-11-04 15:25:39.000000000 +0100
+++ new/khangman-15.12.1/CMakeLists.txt 2016-01-07 23:50:25.000000000 +0100
@@ -47,6 +47,6 @@
add_subdirectory( icons )
-install(FILES khangman.appdata.xml DESTINATION ${KDE_INSTALL_DATAROOTDIR}/appdata/)
+install(FILES org.kde.khangman.appdata.xml DESTINATION ${KDE_INSTALL_DATAROOTDIR}/appdata/)
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khangman-15.12.0/khangman.appdata.xml new/khangman-15.12.1/khangman.appdata.xml
--- old/khangman-15.12.0/khangman.appdata.xml 2015-11-04 15:25:39.000000000 +0100
+++ new/khangman-15.12.1/khangman.appdata.xml 1970-01-01 01:00:00.000000000 +0100
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<component type="desktop">
- <id>org.kde.khangman.desktop</id>
- <metadata_license>CC0-1.0</metadata_license>
- <project_license>GPL-2.0+</project_license>
- <name>KHangMan</name>
- <name xml:lang="ast">KHangMan</name>
- <name xml:lang="bs">KHangMan</name>
- <name xml:lang="ca">KHangMan</name>
- <name xml:lang="ca-valencia">KHangMan</name>
- <name xml:lang="cs">KHangMan</name>
- <name xml:lang="da">KHangMan</name>
- <name xml:lang="de">KHangMan</name>
- <name xml:lang="en-GB">KHangMan</name>
- <name xml:lang="es">KHangMan</name>
- <name xml:lang="et">KHangMan</name>
- <name xml:lang="fi">KHangMan</name>
- <name xml:lang="fr">KHangMan</name>
- <name xml:lang="gl">KHangMan</name>
- <name xml:lang="hu">KHangMan</name>
- <name xml:lang="it">KHangMan</name>
- <name xml:lang="ko">KHangMan</name>
- <name xml:lang="lt">KHangMan</name>
- <name xml:lang="nds">KHangMan</name>
- <name xml:lang="nl">KHangMan</name>
- <name xml:lang="pl">KWisielec</name>
- <name xml:lang="pt">KHangMan</name>
- <name xml:lang="pt-BR">KHangMan</name>
- <name xml:lang="sk">KHangMan</name>
- <name xml:lang="sl">KHangMan</name>
- <name xml:lang="sv">Hänga gubben</name>
- <name xml:lang="tr">KHangMan</name>
- <name xml:lang="uk">KHangMan</name>
- <name xml:lang="x-test">xxKHangManxx</name>
- <name xml:lang="zh-CN">KHangMan</name>
- <name xml:lang="zh-TW">語言_KHangMan</name>
- <summary>Hangman Game</summary>
- <summary xml:lang="ast">El xuegu del aforcáu</summary>
- <summary xml:lang="bs">Igra vješala</summary>
- <summary xml:lang="ca">Joc del penjat</summary>
- <summary xml:lang="ca-valencia">Joc del penjat</summary>
- <summary xml:lang="cs">Hra Hangman</summary>
- <summary xml:lang="de">Buchstabierspiel</summary>
- <summary xml:lang="en-GB">Hangman Game</summary>
- <summary xml:lang="es">Juego del ahorcado</summary>
- <summary xml:lang="et">Poomismäng</summary>
- <summary xml:lang="fi">Hirsipuupeli</summary>
- <summary xml:lang="fr">Jeu de pendu</summary>
- <summary xml:lang="gl">O xogo do aforcado.</summary>
- <summary xml:lang="hu">Akasztófajáték</summary>
- <summary xml:lang="it">Gioco dell'impiccato</summary>
- <summary xml:lang="ko">행맨 게임</summary>
- <summary xml:lang="lt">Budelio žaidimas</summary>
- <summary xml:lang="nds">Galgenmanntje-Speel</summary>
- <summary xml:lang="nl">Het spel Galgje</summary>
- <summary xml:lang="pl">Gra w Wisielca</summary>
- <summary xml:lang="pt">Jogo do Enforcado</summary>
- <summary xml:lang="pt-BR">Jogo da forca</summary>
- <summary xml:lang="sk">Hra Hangman</summary>
- <summary xml:lang="sl">Igra vislic</summary>
- <summary xml:lang="sv">Hänga gubben-spel</summary>
- <summary xml:lang="tr">Adam Asmaca Oyunu</summary>
- <summary xml:lang="uk">Гра Hangman</summary>
- <summary xml:lang="x-test">xxHangman Gamexx</summary>
- <summary xml:lang="zh-CN">吊颈人游戏</summary>
- <summary xml:lang="zh-TW">劊子手(hangman)遊戲</summary>
- <description>
- <p>KHangMan is a game based on the well-known hangman game. It is aimed at children aged six and over. The game has several categories of words to play with, for example: Animals (animals words) and three difficulty categories: Easy, Medium and Hard. A word is picked at random, the letters are hidden, and you must guess the word by trying one letter after another. Each time you guess a wrong letter, part of a picture of a hangman is drawn. You must guess the word before being hanged! You have 10 tries.</p>
- <p xml:lang="ast">KHangMan ye un xuegu basáu nel bien conocíu aforcáu. Tien como oxetivu a guaḥes mayores de 6 años. El xuegu tien delles estayes de pallabres coles que xugase, por exemplu: Animales (pallabres d'animales) y 3 estayes de dificultá; fácil, media y difícil. Les pallabres cuéyense al debalu, anúbrense les lletres, y tienes d'aldovinar la pallabra escribiendo una lletra dempués d'otra. Cada vez que suxeras una lletra incorreuta, dibuxaráse una parte de la semeya del home aforcáu. ¡Tienes d'aldovinar la pallabra enantes d'aforcate! Tienes 10 intentos.</p>
- <p xml:lang="bs">KHangMan je igra bazirana na poznatoj igri vješala. Namijenjena je djeci uzrasta od šest i više godina. Igra ima nekoliko kategorija riječi da se igraju, na primjer: Životinje (riječi životinje ) i tri težine kategorije: lakii, srednje i teško. Riječ je izabrananasumice, slova su skrivenae, i morate pogodite reč pokušavajući jedno slovoo za drugom. Svaki put kada probate pogrešno slovo,nacrta se dio obješenog.. Morate pogoditi riječ pre nego što je obješen! Imate 10 pokušaja.</p>
- <p xml:lang="ca">El KHangMan és un joc basat en el conegut joc del penjat. Està dirigit a nens de 6 anys o més. El joc disposa de diverses categories de paraules amb les quals jugar, per exemple: Animals (noms d'animals) i tres nivells de dificultat: fàcil, mitjà i difícil. Es tria una paraula aleatòriament, les lletres resten ocultes i s'ha d'endevinar la paraula provant una lletra rere l'altra. Cada vegada que s'escriu una lletra errònia es va dibuixant la imatge del penjat. Haureu d'endevinar-la abans de quedar penjat! Disposareu de 10 intents.</p>
- <p xml:lang="ca-valencia">El KHangMan és un joc basat en el conegut joc del penjat. Està dirigit a nens de 6 anys o més. El joc disposa de diverses categories de paraules amb les quals jugar, per exemple: Animals (noms d'animals) i tres nivells de dificultat: fàcil, mitjà i difícil. Es tria una paraula aleatòriament, les lletres resten ocultes i s'ha d'endevinar la paraula provant una lletra rere l'altra. Cada vegada que s'escriu una lletra errònia es va dibuixant la imatge del penjat. Haureu d'endevinar-la abans de quedar penjat! Disposareu de 10 intents.</p>
- <p xml:lang="de">KHangMan ist ein Spiel, das auf dem wohlbekannten Galgenmännchen basiert. Es ist ein Spiel für Kinder ab 6 Jahren mit verschiedenen Wort-Kategorien, zum Beispiel Tiere (Tiernamen) und weitere drei Kategorien mit unterschiedlichen Schwierigkeitsstufen: Leicht, Mittel und Schwer. Ein Wort wird zufällig ausgewählt, die Buchstaben verdeckt und Sie müssen das Wort raten, indem Sie einen Buchstaben nach dem anderen eingeben. Jedesmal, wenn Sie einen falschen Buchstaben eingeben, wird ein weiterer Teil des Galgenmännchens gezeichnet. Sie müssen das gesuchte Wort erraten, ehe das Galgenmännchen fertig gezeichnet ist! Dafür haben Sie 10 Versuche.</p>
- <p xml:lang="en-GB">KHangMan is a game based on the well-known hangman game. It is aimed at children aged six and over. The game has several categories of words to play with, for example: Animals (animals words) and three difficulty categories: Easy, Medium and Hard. A word is picked at random, the letters are hidden, and you must guess the word by trying one letter after another. Each time you guess a wrong letter, part of a picture of a hangman is drawn. You must guess the word before being hanged! You have 10 tries.</p>
- <p xml:lang="es">KHangMan es un juego basado en el conocido pasatiempo del ahorcado. Está dirigido a niños de seis años o más. El juego tiene varias categorías de palabras con las que jugar, por ejemplo: Animales (palabras relacionadas con animales) y tres categorías de distinta dificultad: fácil, media y difícil. Se selecciona una palabra de forma aleatoria, las letras se ocultan y se debe adivinar la palabra una letra tras otra. Cada vez que se falla en una letra, se dibuja una parte de la imagen del ahorcado. ¡Tiene que adivinar la palabra antes de que le cuelguen! Para ello tiene 10 intentos.</p>
- <p xml:lang="et">KHangMan tugineb tuntud poomismängule. See on mõeldud enam kui kuueaastastele lastele. Mängul on neli raskusastet (loomad ehk loomanimed, lihtne, keskmine ja raske). Sõna valitakse juhuslikult, tähed on peidetud ning sul tuleb sõna tähti ükshaaval pakkudes ära arvata. Iga kord, kui pakud vale tähe, joonistatakse poomispildile kriipsuke juurde. Nii et parem arva sõna ära, enne kui pooja oma tegevusega lõpule jõuab! Pakkuda saab 10 korda.</p>
- <p xml:lang="fi">KHangMan perustuu tunnettuun hirsipuupeliin ja on suunnattu kuusivuotiaille sekä sitä vanhemmille lapsille. Pelissä on useita pelattavia sanaryhmiä kuten esimerkiksi eläimet (eläinsanat) sekä kolme vaikeusryhmää: helppo, keskitaso and vaikea. Sana valitaan satunnaisesti, kirjaimet piilotetaan, ja pelaajan täytyy arvata sana yrittämällä yhtä kirjainta toisen jälkeen. Jokaisesta väärin arvatusta kirjaimesta piirretään seuraava osa hirsipuuhun. Sana täytyy arvata ennen kuin tulee hirtetyksi! Pelissä on 10 yritystä.</p>
- <p xml:lang="fr">KHangMan est un jeu de pendu. Il est conçu pour les enfants de six ans et plus. Le jeu offre plusieurs catégories de mots, par exemple les animaux, et trois niveaux de difficulté : facile, moyen et difficile. Un mot est choisi au hasard, les lettres sont cachées et vous devez deviner le mot en proposant une lettre après l'autre. À chaque fois que vous proposez une mauvaise lettre, une partie du dessin du pendu est affichée. Vous devez deviner le mot avant d'être pendu ! Vous avez 10 essais.</p>
- <p xml:lang="gl">KHangMan é un xogo baseado no coñecido xogo do enforcado. Está dirixido a rapaces de seis anos para riba. O xogo ten varias categorías de palabras coas que xogar (por exemplo «Animais», palabras relacionadas con animais) e tres categorías de dificultade: doado, medio e difícil.Escóllese unha palabra ao chou, acóchanse as letras e hai que adiviñar a palabra tentando letra a letra. Cada vez que se propón unha letra errada, debúxase unha parte dunha imaxe dun enforcado. Hai que adiviñar a palabra antes de que che colguen! Tes dez intentos.</p>
- <p xml:lang="it">KHangMan è basato sul ben noto gioco dell'impiccato. È pensato per i bambini da sei anni in su. Il gioco ha diverse categorie di parole con cui giocare tra cui Animali (parole di animali) e tre livelli di difficoltà: facile, medio e difficile. Una parola è scelta a caso, le lettere sono nascoste, e bisogna indovinare la parola provando una lettera alla volta. Ogni volta che provi una lettera sbagliata, compare parte dell'immagine di un impiccato. Devi indovinare la parola prima di farti impiccare! Hai a disposizione dieci tentativi.</p>
- <p xml:lang="nds">KHangMan is en Speel, dat op dat begäng Speel „Galgenraden“ opbuut. Dat is för Kinners vun söss Johr af. Dat Speel hett en Reeg Woortkategorien, so as „Deerten“, un de dree Swoorheitstopen „Eenfach“, „Middel“ un „Swoor“. Dat Woort warrt tofällig utsöcht, de Bookstaven sünd toeerst versteken, un Du muttst de an na den annern raden. Raadst Du verkehrt, warrt en mehr Deel vun den Mann an'n Galgen maalt. Du muttst dat Woort raadt hebben, ehr he fardig is! Du hest 10 Versöök.</p>
- <p xml:lang="nl">KHangMan is een spel dat is gebaseerd op het welbekende galgje. Het richt zich op kinderen van zes jaar en ouder. Het spel kent verschillende categorieën te spelen woorden waaronder: Dieren (dierenwoorden) en drie moeilijkheidsgraden, Eenvoudig, Middel en Moeilijk. Woorden worden willekeurig gekozen en de letters ervan worden verborgen. U raadt het woord door een voor een letters op te geven. Telkens als u een verkeerde letter raadt wordt er een gedeelte van de galg-afbeelding getekend. U moet het woord raden voordat u wordt opgehangen! U hebt 10 pogingen.</p>
- <p xml:lang="pl">KWisielec jest grą opartą na dobrze znanej grze w wisielca. Skierowana jest do dzieci w wieku powyżej sześciu lat. Gra ma kilka kategorii słów, którymi można zagrać, na przykład: Zwierzęta (słowa zwierzęce) i trzy kategorie trudności: Łatwa, Średnia i Trudna. Słowo jest wybierane losowo, litery są schowane, a ty musisz odgadnąć słowo próbując literkę po literce. Za każdym razem, gdy źle odgadniesz literkę, rysowana jest część wisielca. Musisz odgadnąć słowo przed powieszeniem! Masz 10 podejść.</p>
- <p xml:lang="pt">O KHangMan é um jogo baseado no conhecido jogo da forca. Destina-se a crianças com seis ou mais anos. O jogo tem diversas categorias de palavras com as quais jogar, como por exemplo: Animais (palavras de animais) e três categorias de dificuldade: Fácil, Médio e Difícil. É escolhida uma palavra de forma aleatória, as letras são escondidas e deverá adivinhar a palavra, escrevendo para tal uma letra após outra. De cada vez que errar uma letra, é desenhada parte da figura de um enforcado. Deverá desenhar a palavra antes que o enforcado fique completo! Tem 10 tentativas.</p>
- <p xml:lang="pt-BR">KHangMan é um jogo baseado no conhecido jogo da forca. É destinado às crianças com seis ou mais anos. O jogo tem diversas categorias de palavras com as quais jogar, como por exemplo: Animais (palavras de animais) e três categorias de dificuldade: Fácil, Médio e Difícil. Uma palavra é escolhida aleatoriamente, sendo ocultas as suas letras, para que você possa adivinhar a palavra, digitando uma letra após a outra. Cada vez que escolher uma letra errada, é desenhada uma parte de um enforcado. Você deverá adivinhar a palavra antes de ficar enforcado! Você tem 10 tentativas.</p>
- <p xml:lang="sk">KHangMan je hra založená na známej hre Kat. Je určená pre deti od 6 rokov. Hra má niekoľko kategórií slov na hranie, napríklad zvieratá a tri stupne obtiažnosti: ľahká, stredná a ťažká. Slová sa vyberajú náhodne, písmená sa skryjú a musíte uhádnuť slovo skúšaním jedného písmena za druhým. Vždy keď neuhádnete písmeno, nakreslí sa časť obrázku kata. Musíte uhádnuť slovo skôr, ako vás kat popraví! Máte 10 pokusov.</p>
- <p xml:lang="sl">KHangMan je igra, ki temelji na dobro poznani igri vislic. Ciljna starostna skupina so otroci starejši od pet let. Igra ima številne kategorije besed (npr. Živali) in tri težavnostne stopnje: Lahko, Srednje in Težko. Beseda je naključno izbrana, črke so skrite, igralec pa mora besedo uganiti tako da posamično ugiba črke. Vsakič, ko je izbrana črka napačna, je izrisan del vislic. Besedo morate rešiti preden vas obesijo, pri tem pa vam je na voljo 10 poskusov.</p>
- <p xml:lang="sv">Hänga gubben är ett spel baserat på det välkända Hänga gubben spelet. Det är avsett för barn i åldrarna sex och uppåt. Spelet har flera ordkategorier att spela med, däribland Djur (djurord), och tre svårighetsnivåer: Lätt, Normal och Svår. Ett ord väljes slumpmässigt, bokstäverna är dolda och du måste gissa ordet genom att försöka med en bokstav i taget. Varje gång du gissar fel bokstav, ritas en del av bilden av en hängd gubbe. Du måste gissa ordet innan du blir hängd! Du har tio försök.</p>
- <p xml:lang="tr">KHangMan, iyi bilinen adam asmaca oyununa dayanır. Altı yaş ve üzeri çocuklara yöneliktir. Oyunun Hayvanlar (hayvan kelimeleri) gibi çeşitli kelime kategorileri ve Kolay, Orta ve Zor olmak üzere üç zorluk seviyesi vardır. Bir kelime harfleri gizli bir şekilde rasgele seçilir ve harf harf kelimeyi tahmin etmeniz gerekir. Her hatalı harf tahmininizde asılan adamın bir parçası çizilir. Tamamen asılmadan kelimeyi tahmin etmeniz gerekir. 10 deneme hakkınız vardır.</p>
- <p xml:lang="uk">KHangMan — це гра, заснована на відомій грі у ката. Її призначено для дітей віком від шести років. У грі є декілька категорій слів, зокрема Тварини (назви тварин), і три категорії складності: Проста, Середня і Складна. Слово вибирається випадковим чином, і всі його літери на початку сховані від вас. Ви повинні вгадати слово, послідовно намагаючись вгадати його літери. Кожного разу, коли ви називатимете літеру, якої у слові немає, домальовуватиметься частина зображення людини на шибениці. Ви повинні вгадати слово, перш ніж вас повісять! У вас десять спроб.</p>
- <p xml:lang="x-test">xxKHangMan is a game based on the well-known hangman game. It is aimed at children aged six and over. The game has several categories of words to play with, for example: Animals (animals words) and three difficulty categories: Easy, Medium and Hard. A word is picked at random, the letters are hidden, and you must guess the word by trying one letter after another. Each time you guess a wrong letter, part of a picture of a hangman is drawn. You must guess the word before being hanged! You have 10 tries.xx</p>
- <p xml:lang="zh-TW">KHangMan 是一套基於廣為人知的劊子手遊戲 hangman 的遊戲。目標是讓六歲以上的孩子們學習單字。這個遊戲有一些不同類別的單字,例如動物(跟動物相關的單字),有三種不同困難等級。隨機選取單字,但將字母隱藏,您必須一個個猜測字母。每次猜錯,就會劃出一部份被吊住的人,必須在人被吊死之前猜對!您會有十次機會。</p>
- </description>
- <url type="homepage">http://edu.kde.org/khangman/</url>
- <url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&product=khangman</url>
- <url type="help">http://docs.kde.org/stable/en/kdeedu/khangman/index.html</url>
- <screenshots>
- <screenshot type="default">
- <image>http://kde.org/images/screenshots/khangman.png</image>
- </screenshot>
- </screenshots>
- <project_group>KDE</project_group>
- <provides>
- <binary>khangman</binary>
- </provides>
-</component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khangman-15.12.0/org.kde.khangman.appdata.xml new/khangman-15.12.1/org.kde.khangman.appdata.xml
--- old/khangman-15.12.0/org.kde.khangman.appdata.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/khangman-15.12.1/org.kde.khangman.appdata.xml 2016-01-07 23:50:25.000000000 +0100
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component type="desktop">
+ <id>org.kde.khangman.desktop</id>
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>GPL-2.0+</project_license>
+ <name>KHangMan</name>
+ <name xml:lang="ast">KHangMan</name>
+ <name xml:lang="bs">KHangMan</name>
+ <name xml:lang="ca">KHangMan</name>
+ <name xml:lang="ca-valencia">KHangMan</name>
+ <name xml:lang="cs">KHangMan</name>
+ <name xml:lang="da">KHangMan</name>
+ <name xml:lang="de">KHangMan</name>
+ <name xml:lang="en-GB">KHangMan</name>
+ <name xml:lang="es">KHangMan</name>
+ <name xml:lang="et">KHangMan</name>
+ <name xml:lang="fi">KHangMan</name>
+ <name xml:lang="fr">KHangMan</name>
+ <name xml:lang="gl">KHangMan</name>
+ <name xml:lang="hu">KHangMan</name>
+ <name xml:lang="it">KHangMan</name>
+ <name xml:lang="ko">KHangMan</name>
+ <name xml:lang="lt">KHangMan</name>
+ <name xml:lang="nds">KHangMan</name>
+ <name xml:lang="nl">KHangMan</name>
+ <name xml:lang="pl">KWisielec</name>
+ <name xml:lang="pt">KHangMan</name>
+ <name xml:lang="pt-BR">KHangMan</name>
+ <name xml:lang="sk">KHangMan</name>
+ <name xml:lang="sl">KHangMan</name>
+ <name xml:lang="sv">Hänga gubben</name>
+ <name xml:lang="tr">KHangMan</name>
+ <name xml:lang="uk">KHangMan</name>
+ <name xml:lang="x-test">xxKHangManxx</name>
+ <name xml:lang="zh-CN">KHangMan</name>
+ <name xml:lang="zh-TW">語言_KHangMan</name>
+ <summary>Hangman Game</summary>
+ <summary xml:lang="ast">El xuegu del aforcáu</summary>
+ <summary xml:lang="bs">Igra vješala</summary>
+ <summary xml:lang="ca">Joc del penjat</summary>
+ <summary xml:lang="ca-valencia">Joc del penjat</summary>
+ <summary xml:lang="cs">Hra Hangman</summary>
+ <summary xml:lang="de">Buchstabierspiel</summary>
+ <summary xml:lang="en-GB">Hangman Game</summary>
+ <summary xml:lang="es">Juego del ahorcado</summary>
+ <summary xml:lang="et">Poomismäng</summary>
+ <summary xml:lang="fi">Hirsipuupeli</summary>
+ <summary xml:lang="fr">Jeu de pendu</summary>
+ <summary xml:lang="gl">O xogo do aforcado.</summary>
+ <summary xml:lang="hu">Akasztófajáték</summary>
+ <summary xml:lang="it">Gioco dell'impiccato</summary>
+ <summary xml:lang="ko">행맨 게임</summary>
+ <summary xml:lang="lt">Budelio žaidimas</summary>
+ <summary xml:lang="nds">Galgenmanntje-Speel</summary>
+ <summary xml:lang="nl">Het spel Galgje</summary>
+ <summary xml:lang="pl">Gra w Wisielca</summary>
+ <summary xml:lang="pt">Jogo do Enforcado</summary>
+ <summary xml:lang="pt-BR">Jogo da forca</summary>
+ <summary xml:lang="sk">Hra Hangman</summary>
+ <summary xml:lang="sl">Igra vislic</summary>
+ <summary xml:lang="sv">Hänga gubben-spel</summary>
+ <summary xml:lang="tr">Adam Asmaca Oyunu</summary>
+ <summary xml:lang="uk">Гра Hangman</summary>
+ <summary xml:lang="x-test">xxHangman Gamexx</summary>
+ <summary xml:lang="zh-CN">吊颈人游戏</summary>
+ <summary xml:lang="zh-TW">劊子手(hangman)遊戲</summary>
+ <description>
+ <p>KHangMan is a game based on the well-known hangman game. It is aimed at children aged six and over. The game has several categories of words to play with, for example: Animals (animals words) and three difficulty categories: Easy, Medium and Hard. A word is picked at random, the letters are hidden, and you must guess the word by trying one letter after another. Each time you guess a wrong letter, part of a picture of a hangman is drawn. You must guess the word before being hanged! You have 10 tries.</p>
+ <p xml:lang="ast">KHangMan ye un xuegu basáu nel bien conocíu aforcáu. Tien como oxetivu a guaḥes mayores de 6 años. El xuegu tien delles estayes de pallabres coles que xugase, por exemplu: Animales (pallabres d'animales) y 3 estayes de dificultá; fácil, media y difícil. Les pallabres cuéyense al debalu, anúbrense les lletres, y tienes d'aldovinar la pallabra escribiendo una lletra dempués d'otra. Cada vez que suxeras una lletra incorreuta, dibuxaráse una parte de la semeya del home aforcáu. ¡Tienes d'aldovinar la pallabra enantes d'aforcate! Tienes 10 intentos.</p>
+ <p xml:lang="bs">KHangMan je igra bazirana na poznatoj igri vješala. Namijenjena je djeci uzrasta od šest i više godina. Igra ima nekoliko kategorija riječi da se igraju, na primjer: Životinje (riječi životinje ) i tri težine kategorije: lakii, srednje i teško. Riječ je izabrananasumice, slova su skrivenae, i morate pogodite reč pokušavajući jedno slovoo za drugom. Svaki put kada probate pogrešno slovo,nacrta se dio obješenog.. Morate pogoditi riječ pre nego što je obješen! Imate 10 pokušaja.</p>
+ <p xml:lang="ca">El KHangMan és un joc basat en el conegut joc del penjat. Està dirigit a nens de 6 anys o més. El joc disposa de diverses categories de paraules amb les quals jugar, per exemple: Animals (noms d'animals) i tres nivells de dificultat: fàcil, mitjà i difícil. Es tria una paraula aleatòriament, les lletres resten ocultes i s'ha d'endevinar la paraula provant una lletra rere l'altra. Cada vegada que s'escriu una lletra errònia es va dibuixant la imatge del penjat. Haureu d'endevinar-la abans de quedar penjat! Disposareu de 10 intents.</p>
+ <p xml:lang="ca-valencia">El KHangMan és un joc basat en el conegut joc del penjat. Està dirigit a nens de 6 anys o més. El joc disposa de diverses categories de paraules amb les quals jugar, per exemple: Animals (noms d'animals) i tres nivells de dificultat: fàcil, mitjà i difícil. Es tria una paraula aleatòriament, les lletres resten ocultes i s'ha d'endevinar la paraula provant una lletra rere l'altra. Cada vegada que s'escriu una lletra errònia es va dibuixant la imatge del penjat. Haureu d'endevinar-la abans de quedar penjat! Disposareu de 10 intents.</p>
+ <p xml:lang="de">KHangMan ist ein Spiel, das auf dem wohlbekannten Galgenmännchen basiert. Es ist ein Spiel für Kinder ab 6 Jahren mit verschiedenen Wort-Kategorien, zum Beispiel Tiere (Tiernamen) und weitere drei Kategorien mit unterschiedlichen Schwierigkeitsstufen: Leicht, Mittel und Schwer. Ein Wort wird zufällig ausgewählt, die Buchstaben verdeckt und Sie müssen das Wort raten, indem Sie einen Buchstaben nach dem anderen eingeben. Jedesmal, wenn Sie einen falschen Buchstaben eingeben, wird ein weiterer Teil des Galgenmännchens gezeichnet. Sie müssen das gesuchte Wort erraten, ehe das Galgenmännchen fertig gezeichnet ist! Dafür haben Sie 10 Versuche.</p>
+ <p xml:lang="en-GB">KHangMan is a game based on the well-known hangman game. It is aimed at children aged six and over. The game has several categories of words to play with, for example: Animals (animals words) and three difficulty categories: Easy, Medium and Hard. A word is picked at random, the letters are hidden, and you must guess the word by trying one letter after another. Each time you guess a wrong letter, part of a picture of a hangman is drawn. You must guess the word before being hanged! You have 10 tries.</p>
+ <p xml:lang="es">KHangMan es un juego basado en el conocido pasatiempo del ahorcado. Está dirigido a niños de seis años o más. El juego tiene varias categorías de palabras con las que jugar, por ejemplo: Animales (palabras relacionadas con animales) y tres categorías de distinta dificultad: fácil, media y difícil. Se selecciona una palabra de forma aleatoria, las letras se ocultan y se debe adivinar la palabra una letra tras otra. Cada vez que se falla en una letra, se dibuja una parte de la imagen del ahorcado. ¡Tiene que adivinar la palabra antes de que le cuelguen! Para ello tiene 10 intentos.</p>
+ <p xml:lang="et">KHangMan tugineb tuntud poomismängule. See on mõeldud enam kui kuueaastastele lastele. Mängul on neli raskusastet (loomad ehk loomanimed, lihtne, keskmine ja raske). Sõna valitakse juhuslikult, tähed on peidetud ning sul tuleb sõna tähti ükshaaval pakkudes ära arvata. Iga kord, kui pakud vale tähe, joonistatakse poomispildile kriipsuke juurde. Nii et parem arva sõna ära, enne kui pooja oma tegevusega lõpule jõuab! Pakkuda saab 10 korda.</p>
+ <p xml:lang="fi">KHangMan perustuu tunnettuun hirsipuupeliin ja on suunnattu kuusivuotiaille sekä sitä vanhemmille lapsille. Pelissä on useita pelattavia sanaryhmiä kuten esimerkiksi eläimet (eläinsanat) sekä kolme vaikeusryhmää: helppo, keskitaso and vaikea. Sana valitaan satunnaisesti, kirjaimet piilotetaan, ja pelaajan täytyy arvata sana yrittämällä yhtä kirjainta toisen jälkeen. Jokaisesta väärin arvatusta kirjaimesta piirretään seuraava osa hirsipuuhun. Sana täytyy arvata ennen kuin tulee hirtetyksi! Pelissä on 10 yritystä.</p>
+ <p xml:lang="fr">KHangMan est un jeu de pendu. Il est conçu pour les enfants de six ans et plus. Le jeu offre plusieurs catégories de mots, par exemple les animaux, et trois niveaux de difficulté : facile, moyen et difficile. Un mot est choisi au hasard, les lettres sont cachées et vous devez deviner le mot en proposant une lettre après l'autre. À chaque fois que vous proposez une mauvaise lettre, une partie du dessin du pendu est affichée. Vous devez deviner le mot avant d'être pendu ! Vous avez 10 essais.</p>
+ <p xml:lang="gl">KHangMan é un xogo baseado no coñecido xogo do enforcado. Está dirixido a rapaces de seis anos para riba. O xogo ten varias categorías de palabras coas que xogar (por exemplo «Animais», palabras relacionadas con animais) e tres categorías de dificultade: doado, medio e difícil.Escóllese unha palabra ao chou, acóchanse as letras e hai que adiviñar a palabra tentando letra a letra. Cada vez que se propón unha letra errada, debúxase unha parte dunha imaxe dun enforcado. Hai que adiviñar a palabra antes de que che colguen! Tes dez intentos.</p>
+ <p xml:lang="it">KHangMan è basato sul ben noto gioco dell'impiccato. È pensato per i bambini da sei anni in su. Il gioco ha diverse categorie di parole con cui giocare tra cui Animali (parole di animali) e tre livelli di difficoltà: facile, medio e difficile. Una parola è scelta a caso, le lettere sono nascoste, e bisogna indovinare la parola provando una lettera alla volta. Ogni volta che provi una lettera sbagliata, compare parte dell'immagine di un impiccato. Devi indovinare la parola prima di farti impiccare! Hai a disposizione dieci tentativi.</p>
+ <p xml:lang="nds">KHangMan is en Speel, dat op dat begäng Speel „Galgenraden“ opbuut. Dat is för Kinners vun söss Johr af. Dat Speel hett en Reeg Woortkategorien, so as „Deerten“, un de dree Swoorheitstopen „Eenfach“, „Middel“ un „Swoor“. Dat Woort warrt tofällig utsöcht, de Bookstaven sünd toeerst versteken, un Du muttst de an na den annern raden. Raadst Du verkehrt, warrt en mehr Deel vun den Mann an'n Galgen maalt. Du muttst dat Woort raadt hebben, ehr he fardig is! Du hest 10 Versöök.</p>
+ <p xml:lang="nl">KHangMan is een spel dat is gebaseerd op het welbekende galgje. Het richt zich op kinderen van zes jaar en ouder. Het spel kent verschillende categorieën te spelen woorden waaronder: Dieren (dierenwoorden) en drie moeilijkheidsgraden, Eenvoudig, Middel en Moeilijk. Woorden worden willekeurig gekozen en de letters ervan worden verborgen. U raadt het woord door een voor een letters op te geven. Telkens als u een verkeerde letter raadt wordt er een gedeelte van de galg-afbeelding getekend. U moet het woord raden voordat u wordt opgehangen! U hebt 10 pogingen.</p>
+ <p xml:lang="pl">KWisielec jest grą opartą na dobrze znanej grze w wisielca. Skierowana jest do dzieci w wieku powyżej sześciu lat. Gra ma kilka kategorii słów, którymi można zagrać, na przykład: Zwierzęta (słowa zwierzęce) i trzy kategorie trudności: Łatwa, Średnia i Trudna. Słowo jest wybierane losowo, litery są schowane, a ty musisz odgadnąć słowo próbując literkę po literce. Za każdym razem, gdy źle odgadniesz literkę, rysowana jest część wisielca. Musisz odgadnąć słowo przed powieszeniem! Masz 10 podejść.</p>
+ <p xml:lang="pt">O KHangMan é um jogo baseado no conhecido jogo da forca. Destina-se a crianças com seis ou mais anos. O jogo tem diversas categorias de palavras com as quais jogar, como por exemplo: Animais (palavras de animais) e três categorias de dificuldade: Fácil, Médio e Difícil. É escolhida uma palavra de forma aleatória, as letras são escondidas e deverá adivinhar a palavra, escrevendo para tal uma letra após outra. De cada vez que errar uma letra, é desenhada parte da figura de um enforcado. Deverá desenhar a palavra antes que o enforcado fique completo! Tem 10 tentativas.</p>
+ <p xml:lang="pt-BR">KHangMan é um jogo baseado no conhecido jogo da forca. É destinado às crianças com seis ou mais anos. O jogo tem diversas categorias de palavras com as quais jogar, como por exemplo: Animais (palavras de animais) e três categorias de dificuldade: Fácil, Médio e Difícil. Uma palavra é escolhida aleatoriamente, sendo ocultas as suas letras, para que você possa adivinhar a palavra, digitando uma letra após a outra. Cada vez que escolher uma letra errada, é desenhada uma parte de um enforcado. Você deverá adivinhar a palavra antes de ficar enforcado! Você tem 10 tentativas.</p>
+ <p xml:lang="sk">KHangMan je hra založená na známej hre Kat. Je určená pre deti od 6 rokov. Hra má niekoľko kategórií slov na hranie, napríklad zvieratá a tri stupne obtiažnosti: ľahká, stredná a ťažká. Slová sa vyberajú náhodne, písmená sa skryjú a musíte uhádnuť slovo skúšaním jedného písmena za druhým. Vždy keď neuhádnete písmeno, nakreslí sa časť obrázku kata. Musíte uhádnuť slovo skôr, ako vás kat popraví! Máte 10 pokusov.</p>
+ <p xml:lang="sl">KHangMan je igra, ki temelji na dobro poznani igri vislic. Ciljna starostna skupina so otroci starejši od pet let. Igra ima številne kategorije besed (npr. Živali) in tri težavnostne stopnje: Lahko, Srednje in Težko. Beseda je naključno izbrana, črke so skrite, igralec pa mora besedo uganiti tako da posamično ugiba črke. Vsakič, ko je izbrana črka napačna, je izrisan del vislic. Besedo morate rešiti preden vas obesijo, pri tem pa vam je na voljo 10 poskusov.</p>
+ <p xml:lang="sv">Hänga gubben är ett spel baserat på det välkända Hänga gubben spelet. Det är avsett för barn i åldrarna sex och uppåt. Spelet har flera ordkategorier att spela med, däribland Djur (djurord), och tre svårighetsnivåer: Lätt, Normal och Svår. Ett ord väljes slumpmässigt, bokstäverna är dolda och du måste gissa ordet genom att försöka med en bokstav i taget. Varje gång du gissar fel bokstav, ritas en del av bilden av en hängd gubbe. Du måste gissa ordet innan du blir hängd! Du har tio försök.</p>
+ <p xml:lang="tr">KHangMan, iyi bilinen adam asmaca oyununa dayanır. Altı yaş ve üzeri çocuklara yöneliktir. Oyunun Hayvanlar (hayvan kelimeleri) gibi çeşitli kelime kategorileri ve Kolay, Orta ve Zor olmak üzere üç zorluk seviyesi vardır. Bir kelime harfleri gizli bir şekilde rasgele seçilir ve harf harf kelimeyi tahmin etmeniz gerekir. Her hatalı harf tahmininizde asılan adamın bir parçası çizilir. Tamamen asılmadan kelimeyi tahmin etmeniz gerekir. 10 deneme hakkınız vardır.</p>
+ <p xml:lang="uk">KHangMan — це гра, заснована на відомій грі у ката. Її призначено для дітей віком від шести років. У грі є декілька категорій слів, зокрема Тварини (назви тварин), і три категорії складності: Проста, Середня і Складна. Слово вибирається випадковим чином, і всі його літери на початку сховані від вас. Ви повинні вгадати слово, послідовно намагаючись вгадати його літери. Кожного разу, коли ви називатимете літеру, якої у слові немає, домальовуватиметься частина зображення людини на шибениці. Ви повинні вгадати слово, перш ніж вас повісять! У вас десять спроб.</p>
+ <p xml:lang="x-test">xxKHangMan is a game based on the well-known hangman game. It is aimed at children aged six and over. The game has several categories of words to play with, for example: Animals (animals words) and three difficulty categories: Easy, Medium and Hard. A word is picked at random, the letters are hidden, and you must guess the word by trying one letter after another. Each time you guess a wrong letter, part of a picture of a hangman is drawn. You must guess the word before being hanged! You have 10 tries.xx</p>
+ <p xml:lang="zh-TW">KHangMan 是一套基於廣為人知的劊子手遊戲 hangman 的遊戲。目標是讓六歲以上的孩子們學習單字。這個遊戲有一些不同類別的單字,例如動物(跟動物相關的單字),有三種不同困難等級。隨機選取單字,但將字母隱藏,您必須一個個猜測字母。每次猜錯,就會劃出一部份被吊住的人,必須在人被吊死之前猜對!您會有十次機會。</p>
+ </description>
+ <url type="homepage">http://edu.kde.org/khangman/</url>
+ <url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&product=khangman</url>
+ <url type="help">http://docs.kde.org/stable/en/kdeedu/khangman/index.html</url>
+ <screenshots>
+ <screenshot type="default">
+ <image>http://kde.org/images/screenshots/khangman.png</image>
+ </screenshot>
+ </screenshots>
+ <project_group>KDE</project_group>
+ <provides>
+ <binary>khangman</binary>
+ </provides>
+</component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khangman-15.12.0/src/main.cpp new/khangman-15.12.1/src/main.cpp
--- old/khangman-15.12.0/src/main.cpp 2015-11-04 15:25:39.000000000 +0100
+++ new/khangman-15.12.1/src/main.cpp 2016-01-07 23:50:25.000000000 +0100
@@ -126,6 +126,7 @@
i18n("Code for generating icons for the characters toolbar"), QStringLiteral("peter.hedlund(a)kdemail.net"));
aboutData.addCredit(i18n("Inge Wallin"),
i18n("Code cleaning"), QStringLiteral("inge(a)lysator.liu.se"));
+ aboutData.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails"));
KAboutData::setApplicationData(aboutData);
1
0
Hello community,
here is the log from the commit of package kgoldrunner for openSUSE:Factory checked in at 2016-01-28 17:21:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kgoldrunner (Old)
and /work/SRC/openSUSE:Factory/.kgoldrunner.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kgoldrunner"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kgoldrunner/kgoldrunner.changes 2016-01-10 13:05:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kgoldrunner.new/kgoldrunner.changes 2016-01-28 17:21:17.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:19:42 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kgoldrunner-15.12.0.tar.xz
New:
----
kgoldrunner-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kgoldrunner.spec ++++++
--- /var/tmp/diff_new_pack.9GwZ5x/_old 2016-01-28 17:21:17.000000000 +0100
+++ /var/tmp/diff_new_pack.9GwZ5x/_new 2016-01-28 17:21:17.000000000 +0100
@@ -23,7 +23,7 @@
License: GPL-2.0+
Group: Amusements/Games/Action/Arcade
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kgoldrunner-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kgoldrunner-15.12.0.tar.xz -> kgoldrunner-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kgeography for openSUSE:Factory checked in at 2016-01-28 17:21:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kgeography (Old)
and /work/SRC/openSUSE:Factory/.kgeography.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kgeography"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kgeography/kgeography.changes 2016-01-10 13:05:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kgeography.new/kgeography.changes 2016-01-28 17:21:15.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:19:19 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kgeography-15.12.0.tar.xz
New:
----
kgeography-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kgeography.spec ++++++
--- /var/tmp/diff_new_pack.GnuVed/_old 2016-01-28 17:21:16.000000000 +0100
+++ /var/tmp/diff_new_pack.GnuVed/_new 2016-01-28 17:21:16.000000000 +0100
@@ -17,7 +17,7 @@
Name: kgeography
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Geography Trainer
License: GPL-2.0+
++++++ kgeography-15.12.0.tar.xz -> kgeography-15.12.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/kgeography/kgeography-15.12.0.tar.xz /work/SRC/openSUSE:Factory/.kgeography.new/kgeography-15.12.1.tar.xz differ: char 27, line 1
1
0
Hello community,
here is the log from the commit of package kfourinline for openSUSE:Factory checked in at 2016-01-28 17:21:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kfourinline (Old)
and /work/SRC/openSUSE:Factory/.kfourinline.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kfourinline"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kfourinline/kfourinline.changes 2016-01-10 13:05:14.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kfourinline.new/kfourinline.changes 2016-01-28 17:21:14.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:19:09 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kfourinline-15.12.0.tar.xz
New:
----
kfourinline-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kfourinline.spec ++++++
--- /var/tmp/diff_new_pack.XhaaSX/_old 2016-01-28 17:21:15.000000000 +0100
+++ /var/tmp/diff_new_pack.XhaaSX/_new 2016-01-28 17:21:15.000000000 +0100
@@ -45,7 +45,7 @@
License: LGPL-2.0+
Group: Amusements/Toys/Other
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kfourinline-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ kfourinline-15.12.0.tar.xz -> kfourinline-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfourinline-15.12.0/src/kwin4.cpp new/kfourinline-15.12.1/src/kwin4.cpp
--- old/kfourinline-15.12.0/src/kwin4.cpp 2015-11-11 10:43:54.000000000 +0100
+++ new/kfourinline-15.12.1/src/kwin4.cpp 2015-12-22 20:30:42.000000000 +0100
@@ -75,7 +75,7 @@
// Construct the main application window
KWin4App::KWin4App(QWidget *parent)
- : KXmlGuiWindow(parent), mView(0), mDoc(0), mMyChatDlg(0)
+ : KXmlGuiWindow(parent), mView(0), mDoc(0), mMyChatDlg(0), mStatusMsg(nullptr), mStatusMover(nullptr)
{
// default names for players
(void)I18N_NOOP2("default name of first player", "Player 1");
@@ -381,13 +381,11 @@
// Create the status bar with the message part, the player part.
void KWin4App::initStatusBar()
{
- //QT5 statusBar()->insertItem(i18n("Ready"), ID_STATUS_MSG,1);
- //QT5 statusBar()->insertPermanentItem(i18n("This leaves space for the mover"),ID_STATUS_MOVER,0);
- //QT5 statusBar()->setItemAlignment(ID_STATUS_MOVER, Qt::AlignLeft | Qt::AlignVCenter);
- //QT5 statusBar()->setItemAlignment(ID_STATUS_MSG, Qt::AlignLeft | Qt::AlignVCenter);
+ mStatusMsg = new QLabel();
+ mStatusMover = new QLabel();
+ statusBar()->addWidget(mStatusMsg);
+ statusBar()->addPermanentWidget(mStatusMover);
-
- displayStatusbarMover(QLatin1String(""));
displayStatusMessage(i18n("Welcome to Four Wins"));
}
@@ -665,8 +663,7 @@
// Set the given text into the statusbar change status message permanently
void KWin4App::displayStatusMessage(const QString &text)
{
- //QT5 statusBar()->clearMessage();
- //QT5 statusBar()->changeItem(text, ID_STATUS_MSG);
+ mStatusMsg->setText(text);
}
@@ -674,8 +671,7 @@
// the player currently moving change status mover permanently
void KWin4App::displayStatusbarMover(const QString& text)
{
- //QT5 statusBar()->clearMessage();
- //QT5 statusBar()->changeItem(text, ID_STATUS_MOVER);
+ mStatusMover->setText(text);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfourinline-15.12.0/src/kwin4.h new/kfourinline-15.12.1/src/kwin4.h
--- old/kfourinline-15.12.0/src/kwin4.h 2015-11-11 10:43:54.000000000 +0100
+++ new/kfourinline-15.12.1/src/kwin4.h 2015-12-22 20:30:42.000000000 +0100
@@ -31,6 +31,8 @@
#include "kwin4global.h"
#include "thememanager.h"
+#include <QLabel>
+
class KWin4Doc;
class KWin4View;
class KButtonGroup;
@@ -276,6 +278,9 @@
// The chat dialog
ChatDlg *mMyChatDlg;
+ // Status bar texts.
+ QLabel *mStatusMsg;
+ QLabel *mStatusMover;
};
#endif // KWIN4_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kfourinline-15.12.0/src/main.cpp new/kfourinline-15.12.1/src/main.cpp
--- old/kfourinline-15.12.0/src/main.cpp 2015-11-11 10:43:54.000000000 +0100
+++ new/kfourinline-15.12.1/src/main.cpp 2015-12-22 20:30:42.000000000 +0100
@@ -47,7 +47,7 @@
#include <Kdelibs4ConfigMigrator>
#include "kwin4.h"
-#define KWIN4_VERSION "v1.40"
+#define KWIN4_VERSION "v1.41"
// Debug level for the program
1
0
Hello community,
here is the log from the commit of package kfloppy for openSUSE:Factory checked in at 2016-01-28 17:21:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kfloppy (Old)
and /work/SRC/openSUSE:Factory/.kfloppy.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kfloppy"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kfloppy/kfloppy.changes 2016-01-10 13:05:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kfloppy.new/kfloppy.changes 2016-01-28 17:21:13.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:19:03 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kfloppy-15.12.0.tar.xz
New:
----
kfloppy-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kfloppy.spec ++++++
--- /var/tmp/diff_new_pack.ZPAyhk/_old 2016-01-28 17:21:14.000000000 +0100
+++ /var/tmp/diff_new_pack.ZPAyhk/_new 2016-01-28 17:21:14.000000000 +0100
@@ -17,7 +17,7 @@
Name: kfloppy
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Floppy Formatter
License: GPL-2.0+
++++++ kfloppy-15.12.0.tar.xz -> kfloppy-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kdiamond for openSUSE:Factory checked in at 2016-01-28 17:21:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdiamond (Old)
and /work/SRC/openSUSE:Factory/.kdiamond.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdiamond"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdiamond/kdiamond.changes 2016-01-10 13:05:10.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdiamond.new/kdiamond.changes 2016-01-28 17:21:12.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:18:45 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kdiamond-15.12.0.tar.xz
New:
----
kdiamond-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdiamond.spec ++++++
--- /var/tmp/diff_new_pack.JoW9jk/_old 2016-01-28 17:21:13.000000000 +0100
+++ /var/tmp/diff_new_pack.JoW9jk/_new 2016-01-28 17:21:13.000000000 +0100
@@ -38,7 +38,7 @@
License: GPL-2.0+
Group: Amusements/Games/Board/Puzzle
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: kdiamond-%{version}.tar.xz
Obsoletes: %{name}5 < %{version}
++++++ kdiamond-15.12.0.tar.xz -> kdiamond-15.12.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdiamond-15.12.0/src/kdiamond.notifyrc new/kdiamond-15.12.1/src/kdiamond.notifyrc
--- old/kdiamond-15.12.0/src/kdiamond.notifyrc 2015-11-09 16:42:39.000000000 +0100
+++ new/kdiamond-15.12.1/src/kdiamond.notifyrc 2016-01-05 18:05:15.000000000 +0100
@@ -249,7 +249,7 @@
Comment[zh_CN]=已消去的钻石。
Comment[zh_TW]=寶石已移除
Contexts=game
-Sound=KDE-Window-Shade-Down.ogg
+Sound=Oxygen-Window-Shade-Down.ogg
Action=Sound
[Event/move]
@@ -463,5 +463,5 @@
Comment[zh_CN]=时间到。
Comment[zh_TW]=時間到了。
Contexts=game
-Sound=KDE-Im-User-Auth.ogg
+Sound=Oxygen-Im-User-Auth.ogg
Action=Sound
1
0
Hello community,
here is the log from the commit of package kdf for openSUSE:Factory checked in at 2016-01-28 17:21:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdf (Old)
and /work/SRC/openSUSE:Factory/.kdf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdf"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdf/kdf.changes 2016-01-10 13:05:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdf.new/kdf.changes 2016-01-28 17:21:11.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:18:39 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kdf-15.12.0.tar.xz
New:
----
kdf-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdf.spec ++++++
--- /var/tmp/diff_new_pack.6eHnoU/_old 2016-01-28 17:21:12.000000000 +0100
+++ /var/tmp/diff_new_pack.6eHnoU/_new 2016-01-28 17:21:12.000000000 +0100
@@ -17,7 +17,7 @@
Name: kdf
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Disk Usage Viewer
License: GPL-2.0+
++++++ kdf-15.12.0.tar.xz -> kdf-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kdewebdev4 for openSUSE:Factory checked in at 2016-01-28 17:21:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdewebdev4 (Old)
and /work/SRC/openSUSE:Factory/.kdewebdev4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdewebdev4"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdewebdev4/kdewebdev4.changes 2016-01-10 13:05:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdewebdev4.new/kdewebdev4.changes 2016-01-28 17:21:09.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:18:28 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kdewebdev-15.12.0.tar.xz
New:
----
kdewebdev-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdewebdev4.spec ++++++
--- /var/tmp/diff_new_pack.kX9AYw/_old 2016-01-28 17:21:10.000000000 +0100
+++ /var/tmp/diff_new_pack.kX9AYw/_new 2016-01-28 17:21:10.000000000 +0100
@@ -17,7 +17,7 @@
Name: kdewebdev4
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Base package for kdewebdev
License: GPL-2.0+
++++++ kdewebdev-15.12.0.tar.xz -> kdewebdev-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kdesdk4-scripts for openSUSE:Factory checked in at 2016-01-28 17:21:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdesdk4-scripts (Old)
and /work/SRC/openSUSE:Factory/.kdesdk4-scripts.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdesdk4-scripts"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdesdk4-scripts/kdesdk4-scripts.changes 2016-01-10 13:05:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdesdk4-scripts.new/kdesdk4-scripts.changes 2016-01-28 17:21:08.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:18:21 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kde-dev-scripts-15.12.0.tar.xz
New:
----
kde-dev-scripts-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdesdk4-scripts.spec ++++++
--- /var/tmp/diff_new_pack.BYT5iP/_old 2016-01-28 17:21:09.000000000 +0100
+++ /var/tmp/diff_new_pack.BYT5iP/_new 2016-01-28 17:21:09.000000000 +0100
@@ -24,7 +24,7 @@
License: GPL-2.0 and GFDL-1.2
Group: System/GUI/KDE
Url: http://www.kde.org/
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: %{rname}-%{version}.tar.xz
Patch0: %{rname}-4.14.3-fix-bashisms.patch
++++++ kde-dev-scripts-15.12.0.tar.xz -> kde-dev-scripts-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kdesdk-thumbnailers for openSUSE:Factory checked in at 2016-01-28 17:21:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdesdk-thumbnailers (Old)
and /work/SRC/openSUSE:Factory/.kdesdk-thumbnailers.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdesdk-thumbnailers"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdesdk-thumbnailers/kdesdk-thumbnailers.changes 2016-01-10 13:05:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdesdk-thumbnailers.new/kdesdk-thumbnailers.changes 2016-01-28 17:21:07.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:18:14 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kdesdk-thumbnailers-15.12.0.tar.xz
New:
----
kdesdk-thumbnailers-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdesdk-thumbnailers.spec ++++++
--- /var/tmp/diff_new_pack.mqlVfX/_old 2016-01-28 17:21:07.000000000 +0100
+++ /var/tmp/diff_new_pack.mqlVfX/_new 2016-01-28 17:21:07.000000000 +0100
@@ -17,7 +17,7 @@
Name: kdesdk-thumbnailers
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Translation file thumbnail generators
License: GPL-2.0+
++++++ kdesdk-thumbnailers-15.12.0.tar.xz -> kdesdk-thumbnailers-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kdesdk-strigi-analyzers for openSUSE:Factory checked in at 2016-01-28 17:21:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdesdk-strigi-analyzers (Old)
and /work/SRC/openSUSE:Factory/.kdesdk-strigi-analyzers.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdesdk-strigi-analyzers"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdesdk-strigi-analyzers/kdesdk-strigi-analyzers.changes 2016-01-10 13:05:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdesdk-strigi-analyzers.new/kdesdk-strigi-analyzers.changes 2016-01-28 17:21:06.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:18:08 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kdesdk-strigi-analyzers-15.12.0.tar.xz
New:
----
kdesdk-strigi-analyzers-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdesdk-strigi-analyzers.spec ++++++
--- /var/tmp/diff_new_pack.twrQDR/_old 2016-01-28 17:21:07.000000000 +0100
+++ /var/tmp/diff_new_pack.twrQDR/_new 2016-01-28 17:21:07.000000000 +0100
@@ -23,7 +23,7 @@
License: LGPL-2.0+ and GPL-2.0
Group: Productivity/Other
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: %{name}-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kdesdk-strigi-analyzers-15.12.0.tar.xz -> kdesdk-strigi-analyzers-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kdenlive for openSUSE:Factory checked in at 2016-01-28 17:21:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdenlive (Old)
and /work/SRC/openSUSE:Factory/.kdenlive.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdenlive"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdenlive/kdenlive.changes 2016-01-10 13:04:57.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdenlive.new/kdenlive.changes 2016-01-28 17:21:04.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:17:04 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kdenlive-15.12.0.tar.xz
New:
----
kdenlive-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdenlive.spec ++++++
--- /var/tmp/diff_new_pack.Fz3yio/_old 2016-01-28 17:21:05.000000000 +0100
+++ /var/tmp/diff_new_pack.Fz3yio/_new 2016-01-28 17:21:05.000000000 +0100
@@ -19,13 +19,13 @@
%define mlt_version 0.9.6
Name: kdenlive
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Non-linear video editor
License: GPL-3.0+
Group: Productivity/Multimedia/Video/Editors and Convertors
Url: http://www.kdenlive.org/
-Source0: http://download.kde.org/stable/applications/15.12.0/src/%{name}-%{version}.…
+Source0: http://download.kde.org/stable/applications/15.12.1/src/%{name}-%{version}.…
Patch1: use-mlt_datadir.patch
BuildRequires: desktop-file-utils
BuildRequires: fdupes
++++++ kdenlive-15.12.0.tar.xz -> kdenlive-15.12.1.tar.xz ++++++
++++ 4711 lines of diff (skipped)
1
0
28 Jan '16
Hello community,
here is the log from the commit of package kdenetwork-strigi-analyzers for openSUSE:Factory checked in at 2016-01-28 17:21:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdenetwork-strigi-analyzers (Old)
and /work/SRC/openSUSE:Factory/.kdenetwork-strigi-analyzers.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdenetwork-strigi-analyzers"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdenetwork-strigi-analyzers/kdenetwork-strigi-analyzers.changes 2016-01-10 13:04:56.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdenetwork-strigi-analyzers.new/kdenetwork-strigi-analyzers.changes 2016-01-28 17:21:02.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:16:43 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kdenetwork-strigi-analyzers-15.12.0.tar.xz
New:
----
kdenetwork-strigi-analyzers-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdenetwork-strigi-analyzers.spec ++++++
--- /var/tmp/diff_new_pack.WqY8FJ/_old 2016-01-28 17:21:03.000000000 +0100
+++ /var/tmp/diff_new_pack.WqY8FJ/_new 2016-01-28 17:21:03.000000000 +0100
@@ -24,7 +24,7 @@
License: GPL-2.0+
Group: Productivity/Networking/Other
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: %{name}-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kdenetwork-strigi-analyzers-15.12.0.tar.xz -> kdenetwork-strigi-analyzers-15.12.1.tar.xz ++++++
1
0
Hello community,
here is the log from the commit of package kdegraphics-thumbnailers for openSUSE:Factory checked in at 2016-01-28 17:21:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdegraphics-thumbnailers (Old)
and /work/SRC/openSUSE:Factory/.kdegraphics-thumbnailers.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdegraphics-thumbnailers"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdegraphics-thumbnailers/kdegraphics-thumbnailers.changes 2016-01-10 13:04:54.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdegraphics-thumbnailers.new/kdegraphics-thumbnailers.changes 2016-01-28 17:21:00.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:16:36 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kdegraphics-thumbnailers-15.12.0.tar.xz
New:
----
kdegraphics-thumbnailers-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdegraphics-thumbnailers.spec ++++++
--- /var/tmp/diff_new_pack.4UKtu0/_old 2016-01-28 17:21:01.000000000 +0100
+++ /var/tmp/diff_new_pack.4UKtu0/_new 2016-01-28 17:21:01.000000000 +0100
@@ -17,7 +17,7 @@
Name: kdegraphics-thumbnailers
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Summary: Graphics file thumbnail generators
License: LGPL-2.1+
++++++ kdegraphics-thumbnailers-15.12.0.tar.xz -> kdegraphics-thumbnailers-15.12.1.tar.xz ++++++
1
0
28 Jan '16
Hello community,
here is the log from the commit of package kdegraphics-strigi-analyzer for openSUSE:Factory checked in at 2016-01-28 17:20:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdegraphics-strigi-analyzer (Old)
and /work/SRC/openSUSE:Factory/.kdegraphics-strigi-analyzer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdegraphics-strigi-analyzer"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdegraphics-strigi-analyzer/kdegraphics-strigi-analyzer.changes 2016-01-10 13:04:52.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdegraphics-strigi-analyzer.new/kdegraphics-strigi-analyzer.changes 2016-01-28 17:21:00.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Jan 9 18:16:30 UTC 2016 - tittiatcoke(a)gmail.com
+
+- Update to KDE Applications 15.12.1
+ * KDE Applications 15.12.1
+ * https://www.kde.org/announcements/announce-applications-15.12.1.php
+ * boo#961265
+
+
+-------------------------------------------------------------------
Old:
----
kdegraphics-strigi-analyzer-15.12.0.tar.xz
New:
----
kdegraphics-strigi-analyzer-15.12.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdegraphics-strigi-analyzer.spec ++++++
--- /var/tmp/diff_new_pack.TB4tf4/_old 2016-01-28 17:21:00.000000000 +0100
+++ /var/tmp/diff_new_pack.TB4tf4/_new 2016-01-28 17:21:00.000000000 +0100
@@ -25,7 +25,7 @@
License: LGPL-2.1+
Group: Productivity/Graphics/Other
Url: http://www.kde.org
-Version: 15.12.0
+Version: 15.12.1
Release: 0
Source0: %{name}-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kdegraphics-strigi-analyzer-15.12.0.tar.xz -> kdegraphics-strigi-analyzer-15.12.1.tar.xz ++++++
1
0